Registriert seit: 9. Jun 2003
Ort: Hesedorf
11 Beiträge
|
9. Jun 2003, 11:56
Hi,
setze erfolgreich diese von mir entwickelte Variante ein
Delphi-Quellcode:
(* Schließt alle offenen Datenbanken*)
procedure closealldatabase;
var i:integer;
begin
if session.databasecount > 0 then
for i:=0 to Session.DatabaseCount-1 do
Session.Databases[i].Close;
end;
function startwinproc(const value:String;param:String;Mode: boolean ):hwnd;
type
TfileName = array [0..128] of char; {Für Windows Aufrufkonvention}
pFileName = ^TfileName; {Zeiger auf Char Nullterminiert bereitstellen}
varszbuffer:Tfilename; {ZeigerVariable für das Array}
czbuffer:Tfilename; {ZeigerVariable für das Array}
pBuffer:pFilename;
cBuffer:pFilename; {Zeiger auf den Dateinamen}
begin
result:=0;
if mode and not FileExists(value) then
showmessage(format( 'Laden des externen Programms %s fehlgeschlagen.',[value]));
pbuffer:=@szbuffer; {Puffer zuweisen}
cBuffer:=@czBuffer;
strPcopy(pbuffer^,value); {Nulltermierter String wandeln}
strPcopy(cbuffer^,Param); {Nulltermierter String wandeln}
result:=ShellExecute(Application.Handle,PChar('open'),szbuffer,czBuffer,nil,SW_NORMAL);
end;
procedure Restartprogram;
var param:^String;
begin
new(param);
closealldatabase; // Siehe Funktion oben
(* GGF Parameter mit auf den Weg geben sonst mit '' vorbelegen!*)
param^:=''; // für Kommandzeile
Startwinproc(paramstr(0),Param^,true) ;// Siehe Funktion oben
dispose(param);
application.terminate;
end;
[Edit=Sakura]Delphi-Tags gesetzt[/Edit]
|
|
Zitat
|