プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (1件)

 こんばんは。



 P/InvokeでもってSystemParametersInfo()APIを呼び出さないといけません。
 詳しくは以下URLを参照してください。
 http://msdn.microsoft.com/ja-jp/library/aa288468 …

 以下は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);
}
}
}
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/01/07 10:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!