• ベストアンサー

C#を勉強中でC#で壁紙を変更するプログラムを作ろうと考えています。

C#を勉強中でC#で壁紙を変更するプログラムを作ろうと考えています。 ネットで調べてSystemParametersInfoを使うというとこまではわかったのですが実際にどう使えばいいかわかりません。 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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); } } }

real1130
質問者

お礼

とてもわかりやすい説明ありがとうございます。

関連するQ&A