カテゴリー別アーカイブ: プログラミング系

MultiWallpaperのバグ修正

 悩んでいるバグを修正できました。

 原因は予想通りくだらないミスでした。
C#で普通に画像を拡大すると、縁の色が背景色と混ざってしまいます。
MultiWallpaperではそうならないように特別な処理を行って拡大しています。
その処理を行っている関数は引数、返値ともにImage型なんですが、拡大する必要がないときは画像ファイルのImageである引数をそのまま返していました。
後はお分かりの通り、関数の返値をDisposeしたら画像ファイルのImageもDisposeされてしまいましたとさ。
画像ファイルの大きさとモニタの解像度が一致しているときにしか発生しないバグ…なかなか再現できなかったわけです…

MultiWallpaperで悩んでいるバグ

 System.Drawing.Image.get_Width()で、「使用されたパラメータが有効ではありません」という例外が発生します。
ソース的にはImageの変数.Widthで例外が発生しています。
Imageはnullじゃない状態なんですが…何ででしょう…
しかも自分の環境で再現できません…
どう考えてもおかしいんですが、やっぱりいつものようにくだらないミスなんじゃないかと思っています…
思ったところで解決策が見つかるわけでもなく…困り果てたのでブログに投稿してみた次第。

TabCloseButtonを公開

 Firefoxの拡張機能、TabCloseButtonを公開しました。
上リンクの公開ページにも書いてありますが、ネットブックの解像度が低い環境で、タブを非表示にしているときにタブを閉じるボタンが欲しかったので作りました。
Ctrl+Wとかマウスジェスチャとかの手はあるにはあるんですが、使用している工人舎SC3がタッチパネルであり、タッチパネルだけで操作しているときにはこれらは使えないので意味がありません。
Vistaのフリップ機能をCtrl+Wに割り当てていましたが、フリップは少し使いづらかったです…

 Firefox拡張機能開発チュートリアルを非常に参考にさせていただきました。
というかeclipse上のSpket IDEで作成したんですが、元に戻す/やり直しが非常に不安定ですね…
コードを変更しても元に戻せないとか、元に戻した直後でもやり直せないとかいう状態になることが多く不便すぎました。
そして何より、コードを元に戻すつもりでCtrl+Zをしたらプロジェクト作成以前にまで戻ってしまい、やり直すこともできなくなったのが痛かったです…
プロジェクトのファイルは残っていたようですが…
何か他に簡単にFirefoxの拡張機能を作れる環境があったら教えていただきたいです。

で、Vistaの音量ミキサ+α的なソフト

 を作ろうと調べてるわけですが…情報がなさ過ぎ…
とりあえずキーワードとしてはCore Audioとやらを見つけたつもりですが、Vistaの情報とMAC OSの情報とが入り交じってなんとも…
MSDNに何か情報が書いてあるように見えるけど英語だったりして…
誰か情報持ってたらください…

MultiWallpaper ver.1.8公開

 結構前から悩んでいたメモリ不足の問題に対処してみました。
まあ簡単に言えば、今までは画像全てを使って縁が白くなるのを防ぐ処理を行っていたのを、縁だけ縁が白くなるのを防ぐ処理を行って普通に拡大した画像全ての上に貼り付けるという方法でメモリ使用量を減らしました。
画面サイズや設定によって変わりますが、だいたい今までの100分の1のビットマップサイズで処理できるようになりました。
とりあえず自分の環境では問題がないことは確認しましたが、画像や設定によってはいまいちなこともあるかもしれません…

ひらめいた

 MultiWallpaperでメモリ不足のエラーを出さずにうまく壁紙を作る方法が。
今週末の日曜にはITパスポート試験があるから、その後にでも早速取りかかってみますか…

 あと欲しいけど見つからないソフトが、Vistaの音量ミキサを使いやすくしたソフト…
音量ミキサは非常に便利なので常時表示させてるんですが、ちょっと邪魔。
あとフォントがおかしくなったりとか、音量調節が連動されるとか、実際に音が出てからじゃないとリストに出ないとか、一度音を出すとプログラム終了までずっと表示されてるとかがちょっと自分には合わないので変えたいところ。
自分では作れそうにもないし英語でも良いからないかなぁ…

MultiWallpaper ver.1.7公開

 最近バージョンアップしまくり…

 今回はタグ機能の強化とその他修正と改良を行いました。
タグ機能は自分は使ってなかったりするのですが、Firefoxでは便利に使っているので便利さについては分かっているつもりです。
何かFirefoxをパクった感じになってますが…これが最良の形だなぁということで…
たぶんFirefox以前にも元ネタがあるはず…

 修正はまあ色々。
改良はマルチスレッド化とか並び替えできるようにとかしてみました。
が、知識はないため色々心配です…
一応動作に問題がないことは確認しましたが、何かおかしいところがあれば報告していただけるとありがたいです。

MultiWallpaper ver.1.6a公開…

 先日公開したver.1.6にバグが…
設定ファイルの中身をちょっと変えたのですが、保存されている設定をコピーするところでミスしてしまいました。
そして中途半端にコピーされてしまい、チェックしているつもりの部分をすり抜けてエラーが起きてしまいましたとさ…

 ver.1.6で起動してエラーが起きてしまった場合でも、ver.1.6aで起動すれば保存されている設定は読み込めます。
左側の、最後に壁紙にした組み合わせは読み込めませんが…

MultiWallpaper ver.1.6公開ですが…

 以前は機能していたウィンドウ位置の保存ができなくなっていたのを修正したのですが、ウィンドウが保存された位置に表示される前に別のところに表示されてしまうのは仕様です。
もちろん表示されなくはしたいのですが…うまくいきません…
別の機能のためにいろいろ変なことをしているんですが、それがここに来て祟った感じです。
一瞬ウィンドウを不可視にするだけでも複数の問題が起きるという…
とりあえず自分が確認できた分だけ防ぐことはできますが、他に問題が起きてしまいそうな気がするので一瞬ウィンドウが出るのはあきらめました。

 他にも要望があった機能の追加や、メモリ不足のエラーが出ないように防ぐようにいくつかの修正を行いました。
Simple MultiWallpaper Changerの方もいくつか修正を行った後に公開予定です。