Windows フォーム アプリですべての視覚効果をプログラムで無効にしようとしています。変更するレジストリ値の拡張リスト以外に、このオプションを見つけましたが、機能しないようです。
pinvoke.net と MSDN でより具体的な回答を検索しましたが、見つかりませんでした。
だから、私が持っているデータは次のとおりです。
SPI_SETUIEFECTS に関する情報
SPI_SETUIEFFECTS 0x103F
UI 効果を有効または無効にします。pvParam パラメータを TRUE に設定してすべての UI 効果を有効にするか、FALSE に設定してすべての UI 効果を無効にします。
pvParam として bool を渡す必要がありますが、これは一般的なルールの例外のようです... OK、それから次のように宣言してみます。
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SystemParametersInfo(uint uiAction, uint uiParam, bool pvParam, uint fWinIni);
今、それを呼び出すには:
const uint SPI_SETUIEFFECTS = 0x103F;
const uint SPIF_SENDCHANGE = 0x02;
bool result = SystemParametersInfo(SPI_SETUIEFFECTS, 0, false, SPIF_SENDCHANGE);
そして、それはビルドされ、実行されます...そして何もしません。エラーなし、変更なし。「結果」はtrueに設定されています。
ここで何が欠けていますか?