Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Probleme mit CreateProcess (https://www.delphipraxis.net/56043-probleme-mit-createprocess.html)

mjenke 31. Okt 2005 08:36


Probleme mit CreateProcess
 
Guten Morgen, alle miteinander!


Ich versuche mich gerade das erste mal mit CreateProcess und stoße dabei auf das Problem, dass ich keinen Prozess gestartet bekomme...

Der Fehler, der mir gemeldet ist, ist grundsätzlich "998", also:

Delphi-Quellcode:
{ Invalid access to memory location. }
  ERROR_NOACCESS = 998;
  {$EXTERNALSYM ERROR_NOACCESS}
Nachstehend habe ich mal den Code eingefügt, mit dem ich ein CreateProcess versuche. Vielleicht kann mir jemand auf die Sprünge helfen...

Delphi-Quellcode:
var
  si:Tstartupinfo;
  pi:tprocessinformation;
  Kommando: String;
  LastError: DWORD;
begin

  Kommando := 'perl "C:\Dokumente und Einstellungen\jenke\Desktop\test_perls\test.pl"';

  if CreateProcess (
       nil,
       PChar ( Kommando ),
       nil, nil,
       false, windows.NORMAL_PRIORITY_CLASS,
       nil, nil,
       si, pi ) then begin

    // etc...
  end;


:?:

Matthias

Der_Unwissende 31. Okt 2005 09:07

Re: Probleme mit CreateProcess
 
Hey,
bin mir nicht ganz sicher, aber hast du mal versucht den Pfad zu perl auch absolut anzugeben?

NicoDE 31. Okt 2005 09:10

Re: Probleme mit CreateProcess
 
Der Inhalt der TStartupInfo-Struktur ist in deinem Code-Auszug nicht definiert. Da es sich aber um einen Eingabeparameter handelt, muss sie vor dem Aufruf initialisiert und mit gültigen Werten gefüllt werden.
Beispiel
Delphi-Quellcode:
var
  si: TStartupInfo;
begin
  ZeroMemory(@si, SizeOf(TStartupInfo));
  si.cb         := SizeOf(TStartupInfo);
(** )
  si.dwFlags    := STARTF_USEPOSITION or STARTF_USESHOWWINDOW;
  si.dwX        := CW_USEDEFAULT;
  si.dwY        := CW_USEDEFAULT;
  si.wShowWindow := SW_SHOWDEFAULT;
  //...
(**)

mjenke 31. Okt 2005 09:33

Re: Probleme mit CreateProcess
 
Hallo, NicoDE!!!


Vielen Dank für den Tipp! Hat wunderbar funktioniert.


:-D
Matthias


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz