Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];

Вниз

Вывести компьютер из спящего режима   Найти похожие ветки 

 
Small Donkey   (2008-02-23 09:48) [0]

Здравствуйте, подскажите пожалуйста как програмно вывести компьютер из спящего режима?


 
no   (2008-02-23 10:15) [1]

на кнопку нажать. программно.


 
{RASkov} ©   (2008-02-23 16:47) [2]

> вывести компьютер из спящего режима?

Съимитировать пушечный выстрел... может проснется...)


 
{RASkov} ©   (2008-02-23 17:00) [3]

> [0] Small Donkey   (23.02.08 09:48)

В спящем режиме ни одна программа не выполняется, ибо питание отключено и в оперативной памяти ничего нет...
Ну и как компьютер вывести ПРОГРАММНО, когда программа не работает????


 
Cobalt   (2008-02-24 09:56) [4]

Только внешним механизмом :)
Начиная с человека и заканчивая спецустройством, включающимся в ethernet-разъем по электронному или механическому будильнику :)
Или какое-нито механическое устройство, нажимающее кнопку питания.


 
VirEx ©   (2008-02-24 10:07) [5]

или Wake On Lan у сетевухи, или в биосе "пробуждать от входящего звонка на модем"

function WakeOnLan(const Host:string;MAC:String):Boolean;

function HexToInt(const s: string): Integer;
begin
Result := 0;
 if Length(s) <= (SizeOf(LongWord) * 2) then
   Result := StrToInt("$" + s);
end;

var
 WSA:TWSAData;
 Addr:TSockAddrIn;
 A,B:Integer;
 S:TSocket;
 //MAC:string;
 {
 Состав Magic Packet
 Вначале идет так называемая “цепочка синхронизации”,
 состоящая из 6 байт FF, а затем — MAC-адрес сетевой платы, повторённый 16 раз.
 }
 Frame:packed record
   Sync:array[1..6] of Byte;
   MACs:array[1..16,1..6] of Byte;
 end;

begin
 Result:=False;

 //сначало пробуем GetIpNetTable
 //MAC:=GetMacFromIP(Host);

 //затем из списка
 //for i:=0 to MACs.Count-1 do MAC:=MACs[i];
 
 {
 //затем через NetBios
 if Length(MAC)<>12 then begin
 l:=TStringList.Create;
 GetMACAddresses(UpperCase(Host),l);
 if l.Count>0 then MAC:=l[0];
 l.Free;
 end;
 }
 
 if Length(MAC)<>12 then Exit;

 if WSAStartup($0101,WSA)=0 then try
   S:=socket(AF_INET,SOCK_DGRAM,PF_UNSPEC);
   if S<>INVALID_SOCKET then try
     A:=1;
     if setsockopt(S,SOL_SOCKET,SO_BROADCAST,@A,SizeOf(A))=0 then begin
       FillChar(Frame.Sync,6,$FF);
       for A:=1 to 6 do begin
         B:=HexToInt(Copy(MAC,A*2-1,2));
         Frame.MACs[1,A]:=B;
       end;
       for A:=2 to 16 do
         Frame.MACs[A]:=Frame.MACs[1];
       Addr.sin_addr.S_addr:=-1;
       Addr.sin_family:=AF_INET;
       Addr.sin_port:=IPPORT_ECHO;
       Result:=sendto(S,Frame,SizeOf(Frame),0,Addr,SizeOf(Addr))=SizeOf(Frame);
     end;
   finally
     closesocket(S);
   end;
 finally
   WSACleanup;
 end;
end;


 
VirEx ©   (2008-02-24 10:11) [6]

но это только разбудит комьютер, и в случае WOL нужно знать мак адрес заранее



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.03.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
2-1203585756
webpauk
2008-02-21 12:22
2008.03.23
Некорректное определение Trect


2-1203621845
batya-x
2008-02-21 22:24
2008.03.23
PNG


2-1203580401
aleyna
2008-02-21 10:53
2008.03.23
паралельно


15-1202554369
Kostafey
2008-02-09 13:52
2008.03.23
Реализация связей между таблицами 1:1 в MS SQL Server 2005


2-1203495233
Dymok
2008-02-20 11:13
2008.03.23
Как обратиться к объекту на другой форме в нестандартном случае?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский