Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi PC über Netzwerk starten (https://www.delphipraxis.net/19725-pc-ueber-netzwerk-starten.html)

NicoDE 8. Apr 2004 00:06

Re: PC über Netzwerk starten
 
Code:
[color=red]unit[/color] WakeOnLan;

[color=red]interface[/color]

[color=red]uses[/color]
  WinTypes, Messages, SysUtils, Classes, IdBaseComponent,
  IdComponent, IdUDPBase, IdUDPClient;

// Deklarieren

procedure WakeUPComputer(aMacAddress: string);

[color=red]implementation[/color]

// Implementieren

Function HexToInt(S:String): LongInt;
const
//[snip]

kiar 8. Apr 2004 00:09

Re: PC über Netzwerk starten
 
luckie hat recht
implementation fehlt, habe ich vorhin übersehen :oops:

raik

aufruf dann natürlich
Delphi-Quellcode:
procedure TForm1.Button1click(sender :TObject);

begin
 wakeupComputer('Deine mac');
end;

celinaw 8. Apr 2004 00:32

Re: PC über Netzwerk starten
 
Hi@all

Impementation habe ich jetzt drin... aber es funzt immer noch nicht :gruebel:

@Luckie

Zitat:

Aber wenn du noch nicht mal weißt, wie eine Delphi Unit aufgebaut ist, solltest du eventuell mit ein paar Grundlagen anfangen
:oops: :oops: :oops: :duck:


Bin erst seit sechs Monaten mit Delphi am proggen :coder:

Hin und wieder merkt man das halt auch mal :angle:

Nicht böse sein.... Jeder hat mal klein angefangen.

Luckie 8. Apr 2004 00:34

Re: PC über Netzwerk starten
 
Zitat:

Zitat von celinaw
Impementation habe ich jetzt drin... aber es funzt immer noch nicht :gruebel:

Soll ich vorbeikommen und aus dir rauskitzeln, was nicht geht, wie die Fehlermeldungen lauten? :roll: Also wenn wir die helfen sollen, musst du schon etwas genauer werden.

kiar 8. Apr 2004 00:34

Re: PC über Netzwerk starten
 
welche fehlermeldungen?

celinaw 8. Apr 2004 00:39

Re: PC über Netzwerk starten
 
:oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops:

Sorry ...............


Delphi-Quellcode:
unit WakeOnLan;

interface

uses
  WinTypes, Messages, SysUtils, Classes, IdBaseComponent,
  IdComponent, IdUDPBase, IdUDPClient;


implementation



Function HexToInt(S:String): LongInt;
const
  DecDigits: Set Of '0'..'9' = ['0'..'9'];
  HexVals: Array [0..$F] Of Integer = (0, 1, 2, 3, 4, 5, 6, 7,
     8, 9, $A, $B, $C, $D, $E, $F);
  UpCaseHexLetters: Set Of 'A'..'F' = ['A'..'F'];
  LowCaseHexLetters: Set Of 'a'..'f' = ['a'..'f'];
var
  v: LongInt;
  i: integer;
  LookUpIndex: integer;
begin
  if length(S) <= 8 then begin
    v := 0;
    for i := 1 to length(S) do begin
       {$R-} 
         v := v Shl 4;
       {$R+} 
       if S[i] in DecDigits then begin
          LookUpIndex := Ord(S[i]) - Ord('0');
       end
       else begin
          if S[i] in UpCaseHexLetters then begin
             LookUpIndex := Ord(S[i]) - Ord('A') + $A;
          end
          else begin
             if S[i] in LowCaseHexLetters then begin
                LookUpIndex := Ord(S[i]) - Ord('a') + $A;
             end
             else begin
                LookUpIndex := 0;
             end;
          end;
       end;
       v := v Or HexVals[LookUpIndex];
    end;
    result := v;
  end
  else begin
    result := 0;
  end;
end;

procedure WakeUPComputer(aMacAddress: string);
var
  i, j: Byte;
  lBuffer: array[1..116] of Byte;
  lUDPClient: TIUDPClient;
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;
      lUDPClient.SendBuffer(lBuffer, 116);
      writeln('Trying to wake-up remote host: ' + aMacAddress);
    finally
      lUDPClient.Free;
    end;
  except
   on E: Exception do writeln('There was an error');
  end;
end;


Fehler:



Erzeugen
[Fehler] WakeOnLan.pas(61): Undefinierter Bezeichner: 'TIUDPClient'
[Fehler] WakeOnLan.pas(89): Operator oder Semikolon fehlt
[Fehler] WakeOnLan.pas(90): Operator oder Semikolon fehlt
[Fehler] WakeOnLan.pas(91): Operator oder Semikolon fehlt
[Fehler] WakeOnLan.pas(92): Operator oder Semikolon fehlt
[Fehler] WakeOnLan.pas(95): Operator oder Semikolon fehlt
[Fehler] WakeOnLan.pas(101): Deklaration erwartet, aber Dateiende gefunden
[Fataler Fehler] Unit1.pas(24): Verwendete Unit 'WakeOnLan.pas' kann nicht compiliert werden

Luckie 8. Apr 2004 00:43

Re: PC über Netzwerk starten
 
Hast du auch die Indy's installiert? Die sind Vorraussetzung damit der Code funktioniert.

NicoDE 8. Apr 2004 00:43

Re: PC über Netzwerk starten
 
Du hast vergessen die Funktion WakeUpComputer beaknnt zu machen (im Interface-Bereich deklarieren, s.o.).

kiar 8. Apr 2004 00:48

Re: PC über Netzwerk starten
 
@nicoDE,

würde es nicht reichen procedure und funktion zu tauschen?

@celina

nach den Uses
Delphi-Quellcode:
procedure WakeupComputer(aMacadress:String);

celinaw 8. Apr 2004 00:49

Re: PC über Netzwerk starten
 
:gruebel:

Zitat:

Du hast vergessen die Funktion WakeUpComputer beaknnt zu machen (im Interface-Bereich deklarieren, s.o.).
Ja, das kann sein. Aber die Fehlermeldung bleibt die selbe :gruebel:


@Luckie

Ja, die Indy´s sind Installiert bzw. ich habe Delphi 7 Professional. Da sind die ja schon bei!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz