!目的 windowsのSysColorを設定する事 レジストリは変更しないのでその都度設定する目的です 設定はファイルの内容を編集してもよいし クリップボード経由で設定するという事も出来ます *色については https://www.colordic.org/ とか参考に #->$に置き換えて設定して下さい *GUIアプリではありませんがコンソール出力もありません !ダウンロードとインストール *{{ref Win32SysCol.exe}} 実行ファイル *{{ref Win32SysCol.Dpr}} ソースファイル 実行ファイルをどこかに置けば使えます。 !使い方 *実行ファイル名を変更しても動作はします。 *引数はコンソールからやバッチやスクリプト、ショートカット あるいはDrag&Drop等で与える事になります * Win32SysCol.exe -wファイル名 -wFname または -w Fname とあれば 現在のSysColorをFnameに書きだす -w のみの時 引数無しで読ませるファイルに書きだす * Win32SysCol.exe ファイル名 存在するファイル名であれば それを読んで SysColorとして設定する * Win32SysCol.exe 起動時に引数が無い時 CTRLキーを押していないなら 実行ファイルと同じフォルダに Win32SysColInital.ini があれば読みSysColorに設定し終了 このファイルが無ければ クリップボードに設定値があるならそれをSysColorに設定し終了 クリップボードの値が1か所でもエラーになるなら SysColorを読みクリップボードにテキストとして書きだす その時 Shiftキーが押されているなら SysColor側には色のビット反転を行う ただしwin10でもOSで設定可能な COLOR_DESKTOPは反転しません またwin10で使えなくなったシステムカラーも反転しません。 使いたいアプリが反応するかどうか確認用の機能です。 このプログラムはコンソールも開きません。コンソールに出力もしません。 代わりにクリップボードでエディター類を使って設定する事も出来るようにという目的です *クリップボード操作停止方法 -wで書いたファイルや クリップボードの先頭行に書かれているファイル名 実行ファイル名+Inital.ini が存在すればクリップボード操作はしません。 ただしCTRLキーを起動時に押していれば ファイルが無いとしてクリップボード操作します *色の指定 24bit値を10進数か 16進数で行う。 一部の色はclBlack clRed のようにラベルが付いてる 先頭文字が~の時は24bitのビット反転 つまり補色になります。 元の色コードに加算すれば白色になる関係の色になるわけです *SysColorBackUp 設定ファイルやクリップボードに SysColorBackUp = ファイル名 #というコードがあれば 現在のSysColorを指定ファイルに書きだします。 その行を解釈した時に書きだされるので それ以前にエラーがあれば処理されず それ以後にエラーがあっても既に書きだされています。 ですから先頭に入れるべきでしょう。 SysColorへの書き出しは全部のエラーが無い時に行われますから 新しく設定する以前の値が書かれます。 *注意: **クリップボード読み込み時はエラーは報告しません **ファイル読み込み時はエラーなら不親切なダイアログが出ます **このツールはsysColorを設定するだけでありレジストリを書き換えません。ですから次にwindowsを起動した時には元の色に戻ります。 **常に設定したいならwindowsの起動時にパラメータ付きで呼び出す等の工夫をして下さい **sysColorを設定してもアプリ側が対応していなければ変わりません。 **win10以後 このツールで表示される先頭の10個以後は反応しません。 つまり、win10以後はアプリ事に使える範囲で調整しないといけない感じになっています !ソースファイルについて 実行ファイルもソースも自由に使って下さい。連絡も不要です。 改変して業務等で使うのも自由ですが、[日本語以外に翻訳禁止]は とりあえずお願いします。 *{{ref Win32SysCol.Dpr}} はDelphi5で確認しています。 実行サイズが小さくなるようにWindowsAPIを使っているので文字コードはANSI ですからLazarusでは文字化けを止めるのに苦労するでしょう。サイズが大きくなるのを我慢してLazarusコンポーネントを使ってGUIアプリに作り直した方が楽かもしれませんね。 といってもGUIを付けても何か便利になるという事もないでしょうけど。 *{{ref Win32SysCol.exe}} はDelphiでexe作成後 [RisohEditor|https://katahiromz.web.fc2.com/re/ja/]でRC_ICONをhttps://icooon-mono.com/から拾ってくっつけた後 [UPX.exe|https://upx.github.io/]で圧縮してあります。それぞれツール提供ありがとうございました。 !設定ファイル/クリップボードに書かれるデーター例 #より右側はコメントです $は16進数を示します コメントが #! となっているのはWin10以後未定義となったりでアプリが反応しないと思われるものです。 仮想マシンで昔のOSを使ってるなら意味はあるでしょうから残しています {{ref_code Win32SysColor黒.ini,num}} !ぼやき Win10以後 32bitアプリの配色の変更が厄介になった。 年取ってくると目が疲れやすくなる。 少しでも白い画面があるとすぐに目がぼやけてしまう。** だから配色を変更したいのに Win10/Win11で配色変更しても昔の32bitアプリは殆ど変化しない。 *なにせsysColorを変更してくれてないのだから。 *個人用設定で変更してくれるのは OSCOLOR_DESKTOPだけじゃないのかな? *いやアプリには関係ないSysColorだから設定してくれてるのか? だからsysColorを変更するツールを作る事にしたのだが *sysColorを変更してもタイトルバーとかいろんな場所がXPのころのようには反応しない! 代わりに角が丸くなってる。せめてダークテーマにしたらタイトルバーもダークになって欲しいものだ。 *そういうわけでsysColorの設定だけではどうしようもない部分が出てくる *というかボタンとか背景色と文字色を同時に設定出来ないのだから見えない場所さえ出てくる *だから逆にテーマ設定でsysColorの設定をしなくなったのじゃないかと邪推する !そんなわけで 使うアプリ事に色設定変更しなくちゃいけないって感じだけど、これ以上は出来る事はマイクロソフトに文句言うくらいだね 昔のようにタイトルバーの色設定とかも出来るように戻せとかさ