Guten Abend,
Ich versuche mich gerade an den ersten Schritte im
BDS 2009.
Ich versuche seit 2 Tagen die "einfache" Procedure CreateProcess aufzurufen
um, Testweise,ein Bild aufzurufen.
Ich habe es bereits mit Diversen Tutorials Probiert, aber ich komme immer zum gleichen Ergebiss:
1. " die Datei '%1' ist keine gültige
Win32 Anwendung"
oder
2. "Die Datei wurde nicht gefunden."
Ich habe es bereits mit dieversen Datentypen versucht (String,Ansistring,Widestring) aber die Datei wird einfach nicht aufgerufen.
Konnte mir bitte jemand sage, wo ich hier den Fehler habe?
Ich gebe auch offen zu, das ich die Umstellung von BDs2006 - BDS2009 von den Stringtypen noch nicht verstanden habe.Ich kämpfe micht zwar schon seit gut ner woche durch diverse Umstellungs-Tips und Anleitungen aber erfolgreich umsetzen konnte ich es noch nicht.
Ich verwende Folgenden Code
BDS 2006 --> Funktioniert Problem los
Delphi-Quellcode:
var StartupInfo: TStartupInfo;
begin
FillChar(StartupInfo, SizeOf(StartupInfo), #0);
StartupInfo.cb := SizeOf(StartupInfo);
StartupInfo.dwFlags := STARTF_USESIZE;
StartupInfo.wShowWindow := SHOW_OPENWINDOW;
// Erzeugen
//===============================================
if CreateProcess(NIL ,
// PChar(Parameter),
PChar('C:\Test1\Tulips.jpg'),
nil,
nil,
False,
SW_HIDE,
// SW_NORMAL,
// CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,
nil,
nil,
StartupInfo,
Result) then
begin
// Result := Result.dwProcessId;
if Wait then ProcessWarten(Result);
end;
// if Result.hProcess <> 0 then CloseHandle(Result.hProcess);
// if Result.hThread <> 0 then CloseHandle(Result.hThread);
end;
Angepasst an
BDS 2009 --> klappt nicht
Delphi-Quellcode:
var StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
PFad : String;
aa : PCHar;
begin
FillChar(StartupInfo, SizeOf(StartupInfo), #0);
FillChar(ProcessInfo,SizeOf(TProcessInformation),0);
StartupInfo.cb := SizeOf(StartupInfo);
StartupInfo.dwFlags := STARTF_USESIZE;
StartupInfo.wShowWindow := SHOW_OPENWINDOW;
PFad := 'C:\Test1\Tulips.jpg';
aa := PCHar(Pfad);
// Erzeugen
//===============================================
if CreateProcess(NIL ,
// PChar(Parameter),
@pfad,
nil,
nil,
False,
SW_HIDE,
// SW_NORMAL,
// CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,
nil,
nil,
StartupInfo,
ProcessInfo) then
begin
end
else
Begin
Showmessage(SysErrorMessage(GetLastError))
End;
end;
schonmal vielen Dank für die Hilfe