Autor Beitrag
tortom1000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 175

Win XP, Win Server 2003 - 2012, Win 7
Delphi 7
BeitragVerfasst: Mo 09.03.09 18:39 
Hallo,
ich möchte mein Programm etwas optimieren. Zur Zeit führe ich einen Zeitabgleich über eine Batch-Datei durch, die mittels shellexecute aus dem Delphi-Programm heraus gestartet wird.

Hier der Inhalt der Batch-Datei:
ausblenden Quelltext
1:
net time \\Server /set /yes					


Ich würde gerne direkt aus Delphi heraus diesen Zeitabgleich durchführen, also ohne die externe Batch-Datei, habe aber keinen Schimmer, wie ich das anstellen kann.

Existieren fertige Komponenten, mit denen man das realisieren kann oder hat jemand einen Tip dazu, wie das mit Delphi-Boardmitteln zu bewerkstelligen ist.

Gruß
Tortom

Moderiert von user profile iconNarses: Code-Tags hinzugefügt
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mo 09.03.09 18:51 
Die Indy Komponenten müssten was dabei haben. Schau dir also mal die Indy Clients an.

_________________
PROGRAMMER: A device for converting coffee into software.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10184
Erhaltene Danke: 1259

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 09.03.09 19:06 
Moin!

user profile icontortom1000 hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Quelltext
1:
net time \\Server /set /yes					

Ich würde gerne direkt aus Delphi heraus diesen Zeitabgleich durchführen, also ohne
die externe Batch-Datei, habe aber keinen Schimmer, wie ich das anstellen kann.
Schau mal hier, damit kannst du den Befehl direkt direkt ausführen, brauchst also keine Batch-Datei mehr. :idea:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var  
  Output, Errors: String;  
  RC: Cardinal;  
begin  
  ExecConsole('cmd /c net time \\Server /set /yes',Output,Errors,RC)
cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
tortom1000 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 175

Win XP, Win Server 2003 - 2012, Win 7
Delphi 7
BeitragVerfasst: Mo 09.03.09 23:31 
Hallo Narses,
die Lösung "ExecConsole" ist im Grunde genau das, was ich brauche. Allerdings funktioniert sie bei mir nicht. Ich habe Delphi 7 und bekomme die Fehlermeldung:
Zitat:
[Fehler] Unit1.pas(1118): Undefinierter Bezeichner: 'ExecConsole'

In der Delphi-Hilfe ist auch nichts enthalten. Ich habe keine Ahnung, wo das Problem ist. Vielleicht kannst Du mir noch einen Tip geben.

@ Xentar: Ich denke, ich werd's mit den Indy-Komponenten auch mal probieren, wenn's mit der 'ExecConsole' nicht hinhaut.

Gruß
Tortom

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Hallo Narses,
sorry, ich habe deine Antwort nicht richtig gelesen, sonst wär mir der Link aufgefallen, der auf die fehlende Function verweist.

Die habe ich nun einkopiert und es funktioniert auch.

(Kaum macht man es richtig, schon funktioniert's. :-) )


Vielen Dank für den guten Tipp.

Gruß
Tortom
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 10.03.09 15:56 
Es könnte auch mit WMI gehen.
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Mi 11.03.09 15:00 
Die Indys haben eine Komponente, die genau das macht. Inkl dem Stellen der Systemuhr (wenn du die entsprechenden Rechte auf dem Rechner hast)

_________________
In the beginning was the word.
And the word was content-type: text/plain.