2015年10月20日火曜日

Windows8 で壁紙を変更するプログラム(C#)

Windows7 から自作の壁紙チェンジャーを使ってるんだけど、Windows8 で動かなかった。

壁紙の変更には Win32API の

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, [ファイルパス], [フラグ])

これを使ってて、どう調べてみても Windows8 からこれが使えなくなったという話はない。

戻り値も正常だし、でも壁紙は変わらない。

で、なにが問題だったかというと、ファイルパス。

元々、カレントディレクトリにあるファイルを指定してたのでファイルパスのところにはファイル名だけを指定してたんだけど、Windows7 だとそれでいいのに、Windows8 だとカレントディレクトリにあるファイルでもフルパスで指定する必要があるみたい。

フルパスで指定したら動いたんで詳しくは調べてないんだけど、この辺、仕様が変わったりしたのかな?

Windows7 で動いてたのがむしろたまたまなのかもしれないけど。。

0 件のコメント:

コメントを投稿