Einzelnen Beitrag anzeigen

Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#1

CreateProcess mit String BDS2009

  Alt 16. Okt 2011, 22:14
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

Geändert von Pro_RJ (16. Okt 2011 um 22:16 Uhr)
  Mit Zitat antworten Zitat