(今日の独り言)

 『 AutoHotkey で壁紙チェンジャーを作ってみてくれ』と言われて いろいろと 悩んだ末に なんとか 形になるまでたどり着きました
一番躓いたのは 画像コンバートですね、 SystemParametersInfo が BMPしか受け付けないとはぁ 何たる事ぞ!! 笑)
最初は 「Windows 画像と FAX ビューア」に読み込ませて BMPで書き出すまでを AutoHotkeyでリモート操作して画像を用意していたという
超荒技で作ってました 笑)、 もちろん ダメ出し食らいましたけどね 笑)
いろいろやって なんとか ルーチェさんのHP → http://www.ruche-home.net/ にたどり着き imgctl.dll を使わせてもらう事で とりあえずは解決
注意点は
[]hLib := DllCall("kernel32.dll\LoadLibrary", "Str", "imgctl.dll")[]
などとやって あらかじめ DLLをロードしておかないと
[]DllCall("imgctl.dll\DIBtoBMP", "Str", A_ScriptDir . "<書き出しBMPファイル名>", "UInt", hDIB)[]
の部分が 上手く動作しないという事ですね
もちろん 処理が終わったら DIB や DLL を 開放させる必要がありますね
このサンプルは また後で 書きますです

 しかし もっと簡単には出来ないものかと 考えてしまった私は TurboDelphi に 手を出してしまったのである 笑)
馬鹿な私には C/C++ で DLLを書いても まともに動く事すら 無さそうなので、 「タダ&商用可能&RAD&DLLが作れる」という魅力に惹かれて とりあえず導入 笑)
「タダ&商用可能&RAD&DLLが作れる」なら VSExpressがあるじゃん? と思われるかもしれないですけど まぁ 今回は ちと パス 笑)
実は 昔 ちょっとだけ Borland Delphi 6 を 触った事はあるんですよね、 だから なんとなく どんなものかは知ってます
てか 久々に オブジェクト指向の言語に触れて ついつい ニヤけてしまった 笑)

 で とりあえず あちこちサイトを見ながら 見よう見まねで 読み替えながら
「入力するJpegファイル名」と「出力するBmpファイル名」を 引数に入れれば JpegBMPに変換して BMPとして出力する DLLを作ってみたら
『 え っ ? 笑) 』 と つい口走ってしまうほどあっさりと出来てしまった 笑)、 DIBがどうのこうのとかが 全く無いのは大きいよなぁ 笑)
まぁ データ型とか もっかいちゃんと勉強して、 エラー処理をちゃんとして 対応する画像データの数をある程度増やせば
それなりに使えるものになりそう、 というか こんなに簡単にできるもんなんだなぁと 目から鱗です
うっわぁ Delphi の勉強も 本格的に 始めなきゃならないようだなぁ 笑)