- ベストアンサー
C#を勉強中でC#で壁紙を変更するプログラムを作ろうと考えています。
C#を勉強中でC#で壁紙を変更するプログラムを作ろうと考えています。 ネットで調べてSystemParametersInfoを使うというとこまではわかったのですが実際にどう使えばいいかわかりません。 教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 P/InvokeでもってSystemParametersInfo()APIを呼び出さないといけません。 詳しくは以下URLを参照してください。 http://msdn.microsoft.com/ja-jp/library/aa288468(VS.71).aspx 以下はFormLoadイベント内で壁紙を変えます。 壁紙ファイルを置くディレクトリ位置に応じて、適切にパスを変えてください。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { const uint SPI_SETDESKWALLPAPER = 20; const uint SPIF_UPDATEINIFILE = 1; const uint SPIF_SENDWININICHANGE = 2; [System.Runtime.InteropServices.DllImport("user32.dll")] private static extern bool SystemParametersInfo(uint uiAction, uint uiParam, StringBuilder pvParam, uint fWinIni); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //壁紙のパス StringBuilder sb = new StringBuilder("c:\\paper.bmp"); //壁紙を変える SystemParametersInfo(SPI_SETDESKWALLPAPER, (uint)sb.Length, sb, SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE); } } }
お礼
とてもわかりやすい説明ありがとうございます。