2008/5/23
byte[] byts = new byte[6 + 6 * 16];
//頭に0xFFが6個
for(int i = 0 ; i < 6 ; i++)
{
byts[i] = 0xFF;
}
//続いてMacアドレス(以下はtxtMac[i].TextにHex表記で6個入っている)
byte[] bytsMac = new byte[6];
for(int i=0;i<6;i++)
{
bytsMac[i] = Byte.Parse(txtMac[i].Text ,System.Globalization.NumberStyles.HexNumber);
}
//Macアドレスを16回続けて入れる
for(int i = 0 ; i < 16 ; i++)
{
Array.Copy(bytsMac , 0 , byts , 6 + i * 6 , 6);
}
//UDPのポート7(ECHO)にブロードキャスト
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("255.255.255.255") , 7);
Socket sock = new Socket(AddressFamily.InterNetwork ,SocketType.Dgram ,ProtocolType.Udp);
sock.SetSocketOption(SocketOptionLevel.Socket ,SocketOptionName.Broadcast ,true);
sock.SendTo(byts , endPoint);
sock.Close();
相手がWOLに対応していればこれで起動できました。
2008/5/9
[System.Runtime.InteropServices.DllImport("user32.dll" , EntryPoint = "keybd_event")]
private static extern void keybd_event (byte bVirtualKey , byte bScan , long dwFlags , long dwExtraInfo);
public static void SessionChange ()
{
keybd_event((byte)Keys.LWin , 0 , 0 , 0);//Windowsキー押し下げ
keybd_event((byte)Keys.L , 0 , 0 , 0);//Lキー押し下げ
//キーの解除をしないと押したままの状態になります
keybd_event((byte)Keys.L , 0 , 2 , 0);//Lキー開放
keybd_event((byte)Keys.LWin , 0 , 2 , 0);//Windowsキー開放
}
1 | 《前のページ | 次のページ》