WallSwitchの使い方

生活習慣グッチャグチャになってる赤西真論です。

卒研が全く進まないので、気分転換にソフト作ってました。Kotoriもちょっと更新してMisakiをChromeウェブストアに公開しましたが、それに関してはまた今度…

ゼミのときってプロジェクターに自分のPCを繋ぐのですが、そうなると壁紙が丸見えになる可能性が非常に高いです。なので、大学用のノーパソは壁紙をWindows標準から変えていませんでした。

割と趣味に関してはオープンにしている方ですが、流石にボスにそんな壁紙を見せられないので自粛してたという感じです。

で、ふと「プロジェクター接続時って解像度変わるし、その時点で自動で壁紙を変更するようにすればいいのでは?」と思い、今回のソフトを作りました。同じようなソフトあると思ったのにググっても出なかったので仕方なくって感じです。

ひっさびさにC#を書いたら全く書けなくてビビりましたね、ええ。

 

GitHub URL

marron-akanishi/WallSwitch
Wallpaper Changer. Contribute to marron-akanishi/WallSwitch development by creating an account on GitHub.

使い方

いつものようにReleasesに実行ファイルを置いています。それをダウンロードするだけです。

実行ファイルを起動するとこんな画面が出ます。

(この記事書きながらバグというか気に食わない挙動を見つけてしまった…)

設定画面です。このソフトはこの画面しか存在しません。WPFじゃなくてフォームアプリケーション。いつものやつ。

まず、基準解像度にプロジェクター未接続時の画面解像度を入力します。横x縦です。初回起動時は自動的にメインディスプレイの解像度を取得します。画面解像度はメインディスプレイのものを入力してください。というかマルチディスプレイ環境を考慮していません。あくまでノーパソをプロジェクターに接続するときを考えているので…

次に通常壁紙にプロジェクター未接続時の壁紙画像を指定します。横の選択でファイル選択ダイアログが開きます。

次にフェイク壁紙にプロジェクター接続時の壁紙画像を指定します。

最後に壁紙モードですが、これは普通のWindowsの壁紙設定と同じものです。適当に選んで。

これでOKをクリックすると画面が閉じられ、通知領域に格納されます。この状態で解像度の監視を開始します。

設定画面を開く際は通知領域にディスプレイみたいなアイコンがあるはずなのでそのアイコンをクリックすると設定画面が開きます。

終了ボタンを押すとアプリケーションが終了します。キャンセルは設定を保存せずに設定画面を閉じます。

監視状態

設定画面を閉じると300ミリ秒ごとにメインディスプレイの解像度を監視するようになります。設定画面を開いてる状態では監視がストップしているので、注意してください。

監視状態でメインディスプレイの解像度が基準解像度と異なることを検知すると壁紙をフェイク壁紙に変更します。

フェイク壁紙の状態でメインディスプレイの解像度が基準解像度に戻ると通常壁紙に変更します。

ただ、それだけです。

 

まあ、まだデュアルディスプレイでしか確認してないのでちゃんと動くのかよく分かりません。

とりあえず実用レベルになるまではバグ修正します。設定画面が最前面表示になっていないのとフォームのサイズが自由に変更できることに気づいたのでそれだけを今すぐに直します。

ちなみに監視状態の説明で分かる通り、プロジェクター接続時にメインディスプレイの解像度が変化しなければ壁紙は変わりません。そこだけは注意してください。

投稿者: 赤西 真論

アイマスに人生を変えられ、コードを書くのが嫌いになった大学生

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください