2016年9月16日金曜日

フォルダ内のBMPファイルだけをbmp2png(コマンドライン版)に渡して変換後にBMPだけ削除する

BMP形式の画像ファイルを作成しまくるプログラムを使っています。
その画像について以下の要求がありました。
  ・画質を劣化させずにファイルサイズを小さくしたい
  ・サムネイル表示したい

ZIPなどで圧縮してしまうとサムネイル表示が出来なくなってしまいます。
ZIPファイル内にある複数の画像のうち、最初の画像だけを表示するソフトなどはありますが、今回の用途ではZIPファイル内の複数の画像をすべてサムネイル表示する必要がありました。

BMPからPNGへの変換なら画質劣化がなく、PNG形式ならサムネイル表示が可能なのでbmp2pngというソフトを使って変換することにしました。

ついでに、変換したら元のBMPファイルは削除したいので、プログラムを作成しました。


プログラムが保存されているフォルダのPathを取得する

プログラムが保存されているフォルダに各種情報を保存するフォルダを作成したりする時に使います。
HTAとWSHとで利用できるオブジェクトが異なります。

2016年9月6日火曜日

ウィンドウが非アクティブ状態の時間をカウントするHTA

常にウィンドウをアクティブにしていたいアプリケーションがありますが、文字通り「常に」だと色々と困ることがあるので、数分程度ならアクティブでなくてもOKですが、アクティブではない状態が数分間続いたら、ウィンドウを再起動するなどして再びアクティブにしたいです。

ウィンドウのfocus、blurイベントを検知してカウントするサンプルを作成しました。

2016年9月5日月曜日

指定日時から相対的な日時を取得するプログラム

用途・目的
「2016/10/1と同じ曜日は、今週だと○月×日」を調べたり
「次の1:00は○月×日 1:00」などを調べたいことがあったので、日時に関するプログラムを作成しました。

タスクマネージャでhtaの実行ファイルの名前を分かりやすくする

HTAアプリを多用していると、プロセスの一覧が以下のように「mshta.exe」だらけになってしまうことがあります。どのプロセスがどのアプリなのか判別しやすくなるようにするプログラムを作成しました。

2016年9月2日金曜日

いつかやるメモ

今やらなければいけないことがあって、他のことは保留にする必要がある状況なのですが、その優先事項を進めるために色々調べる過程で見かけた情報が、今回はちょっと関係無い内容だったけど今後役に立つ事例もありそうだと感じました。
時間ができたらテストしたいので思い出せるようにメモ


AppActivateはHTA内部のスクリプトでは動作しない

動作しませんが実行してもエラーは出ません。
それが良いのか悪いのかは分かりませんが、とりあえず外部スクリプトを作成してそちらから実行するようにすれば動作するようです。

以下がサンプルHTAのソースです。


HTAのプロセスIDを取得する方法

以下の関数を利用すると、HTAでも自身のプロセスIDを取得できます。