Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Всем здравствуйте, у меня вот возник очень интересный вопрос(на мой взгляд), возможно ли в NeoBook`e организовать передачу магического пакета? и, если да то как это сделать, форму весь, "перерыл", ничего близкого не нашел.
using System; using System.Net.Sockets; using System.Net; using System.Collections.Generic;
namespace Wol { class Program { static void Main(string[] args) { using (UdpClient udpClient = new UdpClient()) { Console.WriteLine("Enter mac address"); byte[] mac = StrToMac(Console.ReadLine()); udpClient.Send(mac, mac.Length, new IPEndPoint(IPAddress.Broadcast, 9)); } }
static byte[] StrToMac(string s) { List<byte> arr = new List<byte>(102);
string[] macs = s.Split(' ', ':', '-');
for (int i = 0; i < 6; i++) arr.Add(0xff);
for (int j = 0; j < 16; j++) for (int i = 0; i < 6; i++) arr.Add(Convert.ToByte(macs[i], 16));
function HexToInt(const s: string): Integer; begin Result := 0; if Length(s) <= (SizeOf(LongWord) * 2) then Result := StrToInt('$' + s); end;
procedure ErrMsg(Msg:String); begin MessageBox(0,PChar(Msg),'Wake On LAN',MB_OK or MB_ICONERROR); end;
procedure WakeUPComputer(aMacAddress: string); var i,j,k:Byte; lBuffer: TBytes; lUDPClient:TIdUDPClient; begin try SetLength(lBuffer,102);
for i := 0 to 5 do begin lBuffer[i] := $FF; end;
for i:=1 to 16 do begin k:=i*6; for j := 0 to 5 do begin lBuffer[k+j] := HexToInt(aMacAddress[j*2+1] + aMacAddress[j*2+2]); end; end;
lUDPClient:=TIdUDPClient.Create(nil); try lUDPClient.BroadcastEnabled:=true; lUDPClient.Host:='255.255.255.255'; lUDPClient.Port:=2050; lUDPClient.SendBuffer(lBuffer); except on E:Exception do ErrMsg(E.Message); end; lUDPClient.Free; SetLength(lBuffer,0); // не забываем чистить память except on E:Exception do ErrMsg(E.Message); end; end;
procedure ShowHelp; begin MessageBox(0,'Usage: WOL.exe <MAC-address>'#13#10'Example: WOL 000D619AFB55', 'Wake On LAN',0); end;
begin if ParamCount>0 then WakeUpComputer(ParamStr(1)) else ShowHelp; end.
Может кто нибудь из этого сделает плагин. Лучше спросить у Alien'а Дата регистрации: Вс, 30 Мая 2010, 21:05 Этож было вчера
Сообщение отредактировано Фарид - Пн, 19 Декабря 2011, 11:32