Hallo zusammen,
meine WE-Anforderung liegt in den allerletzten Zügen. In meiner
Access-Version hatte ich beim speichern noch eine Batchdatei ausführen lassen, damit diverse WE-Anforderungen nicht "Rückdatiert" werden können. Ich habe dann hier und bei Swissdelphicenter eine hübschen Code gefunden, der die Batchdatei ausführt und wartet bis diese beendet ist. Es kann nur mit dem Ausführbefehl zu tun haben, das mein Programm unter XP einwandfrei funktioniert und W98-Kisten gar nichts mehr machen. hier mal der C&P-Code
Delphi-Quellcode:
procedure ShellExecute_AndWait(FileName: string; Params: string);
var
exInfo: TShellExecuteInfo;
Ph: DWORD;
begin
FillChar(exInfo, SizeOf(exInfo), 0);
with exInfo do
begin
cbSize := SizeOf(exInfo);
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
Wnd := GetActiveWindow();
ExInfo.lpVerb := 'open';
ExInfo.lpParameters := PChar(Params);
lpFile := PChar(FileName);
nShow := SW_Hide;
end;
if ShellExecuteEx(@exInfo) then
Ph := exInfo.HProcess
else
begin
ShowMessage(SysErrorMessage(GetLastError));
Exit;
end;
while WaitForSingleObject(ExInfo.hProcess, 50) <> WAIT_OBJECT_0 do
Application.ProcessMessages;
CloseHandle(Ph);
end;
Hier der Aufruf:
Delphi-Quellcode:
Procedure TForm1.dssave;
var datum:TDate;
zeit:TTime;
Begin
shellexecute_Andwait('W:\fohrer\nettime.bat','');
Hatte hier mal was von einem Schalter /C gelesen konnte ihn aber irgendwie nicht anwenden.
Danke Ati