PDA

View Full Version : روشن کردن سیستم کلاینت



Tasnim
چهارشنبه 22 آبان 1387, 18:30 عصر
سلام دوستان
میخاستم بدونم چطور میشه از طریق برنامه سرور، کلاینت ها رو روشن کرد؟
خیلی ممنون میشم اگه کمکم کنید

Tasnim
پنج شنبه 23 آبان 1387, 11:14 صبح
سلام
از اساتيد كسي نمي تونه كمكم كنه؟

mafazel
پنج شنبه 23 آبان 1387, 11:47 صبح
دوست عزیز سوالتون خیلی عجیبه
کامپیوتر خاموش رو فقط با دکمه Power میشه روشن کرد.
منظورتون کامپیوتریه که توی Standby رفته؟

Hamid_PaK
پنج شنبه 23 آبان 1387, 17:15 عصر
امکان روشن کردن سیستم با برنامه نیز هست ولی خوب به این سادگی ها نیست چرا که نیازمند حداقل منبع تغزیه ATX ، ارتباط با BIOS و خواموش شدن سیستم بصورت Hybernate هست.
میتونید نمونه موجودش رو ببینید AutoPowerOn&Off (www.lifsoft.com)

یا حق ...

vcldeveloper
پنج شنبه 23 آبان 1387, 17:30 عصر
اگر Wake On Ring یا Wake On Lan روی سیستم کاربر فعال باشه، میشه با ارسال سیگنال به کلاینت، یا تماس از طریق تلفن، آن را روشن کرد، حتی اگر در حالت Hibernate نباشه (البته باید به برق وصل باشه، و منبع تغذیه هم ATX باشه).

Tasnim
پنج شنبه 23 آبان 1387, 18:40 عصر
سیستم های مورد نظر به شبکه وصل هستند وامکان اتصال به تلفن برای آنها موجود نیست.
حال چه نوع سیگنالی رو باید بفرستاد تا سیستم روشن شود.

vcldeveloper
جمعه 24 آبان 1387, 03:05 صبح
نمیدونم. با تحقیق درباره Wake On Lan باید بتونید به جواب سوالتان برسید.

lord_viper
جمعه 24 آبان 1387, 18:01 عصر
این لینک میتونه به شما کمک کنه
http://barnamenevis.org/forum/showthread.php?t=42393&highlight=%D8%B1%D9%88%D8%B4%D9%86+%DA%A9%D8%A7%D9 %85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1+%D8%B4%D8%A8%DA% A9%D9%87

AlirezaBahredar
شنبه 25 آبان 1387, 07:19 صبح
دقیقا لینکی که در پست شماره 8 داده شده جواب سئوال شماست.
برای اطلاعات بیشتر میتوند عنوان "Magic packet" را در اینترنت جستجو کنید.
موفق باشید.
نمونه کد دلفی:


procedure WakeUPComputer(aMacAddress: string);
var
i, j: Byte;
//lBuffer: array[1..116] of Byte;
lBuffer: SysUtils.TBytes;
lUDPClient: TIDUDPClient;
begin
try
for i := 1 to 6 do begin
lBuffer[i] := HexToInt(aMacAddress[(i * 2) - 1] +
aMacAddress[i * 2]);
end;
lBuffer[7] := $00;
lBuffer[8] := $74;
lBuffer[9] := $FF;
lBuffer[10] := $FF;
lBuffer[11] := $FF;
lBuffer[12] := $FF;
lBuffer[13] := $FF;
lBuffer[14] := $FF;
for j := 1 to 16 do begin
for i := 1 to 6 do begin
lBuffer[15 + (j - 1) * 6 + (i - 1)] := lBuffer[i];
end;
end;
lBuffer[116] := $00;
lBuffer[115] := $40;
lBuffer[114] := $90;
lBuffer[113] := $90;
lBuffer[112] := $00;
lBuffer[111] := $40;
try
lUDPClient := TIdUDPClient.Create(nil);
lUDPClient.BroadcastEnabled := true;
lUDPClient.Host := '255.255.255.255';
lUDPClient.Port := 2050;
// d6 lUDPClient.SendBuffer(lBuffer, 116);
lUDPClient.SendBuffer(lUDPClient.Host, lUDPClient.Port, tidbytes(lBuffer));
finally
lUDPClient.Free;
end;
except
raise;
end;
end;