برای این کار باید تو تنظیمات بایوستون گزینه Wake On Lan رو فعال کنید
البته در برد ها متفاوت این گزینه متفاوت می تواند باشد مثلا Boot From NetWork یا Wake On PCI Card یا Power On With NetworkCard یا گزینه های مشابه دیگر
البته به یاد داشته باشید که ممکن است برد کامپیوتر شما حتما از این امکان سخت افزاری پشتیبانی کند وگر نه که تلاشتون بی نتیجه است ، ضمنا کامپیوتر های با پاور AT اصلا این قابلبت رو ندارند و باید پاورتون ATX باشد تا بردتان نیز امکان استفاده از این امکان رو داشته باشد
و اما کد ها:
ابتدا یک کلاس درست کنید که از UDPClient که در حوزه نام System.Net.Sockets قرار دارد ارث ببرد
public class WOLClass:UdpClient
{
public WOLClass():base()
{ }
//this is needed to send broadcast packet
public void SetClientToBrodcastMode()
{
if(this.Active)
this.Client.SetSocketOption(SocketOptionLevel.Sock et,
SocketOptionName.Broadcast,0);
}
}
بعدش تو کلاس اصلی که می خواین از اونجا این کار رو انجام یه متد به صورت زیر بسازید
private void WakeFunction(string MAC_ADDRESS)
{
WOLClass client = new WOLClass();
client.Connect(new
IPAddress(0xffffffff), //255.255.255.255 i.e broadcast
0x2fff); // port=12287 let's use this one
client.SetClientToBrodcastMode();
int counter = 0;
byte[] bytes = new byte[1024]; // more than enough :-)
//first 6 bytes should be 0xFF
for (int y = 0; y < 6; y++)
bytes[counter++] = 0xFF;
//now repeate MAC 16 times
for (int y = 0; y < 16; y++)
{
int i = 0;
for (int z = 0; z < 6; z++)
{
bytes[counter++] =
byte.Parse(MAC_ADDRESS.Substring(i, 2), System.Globalization.NumberStyles.HexNumber);
i += 2;
}
}
int reterned_value = client.Send(bytes, 1024);
}
کار دیگه تمومه
یه باتن بزارین رو فرمتون و توی رویداد کلیک این متد رو با مک آدرس کامپیوتر مورد نظرتون کال کنید
بصورت زیر
WakeFunction("0041a37f5fd2");