Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Code läuft in VCL aber nicht in Console (GetThreadContext)

  Alt 11. Feb 2010, 22:42
Hey,

ich habe hier grade ein sehr seltsames Problem. Folgender simpler Code läuft wunderbar, wenn ich ihn in eine VCL Anwendung einfüge:
Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
var
  ProcessInfo: TProcessInformation;
  StartupInfo: TStartupInfo;
  Context: TContext;
begin
  FillChar(StartupInfo, SizeOf(TStartupInfo), #0);
  StartupInfo.cb := SizeOf(TStartupInfo);
  if CreateProcess(PChar(ParamStr(0)), '', nil, nil, false, CREATE_SUSPENDED,
    nil, nil, StartupInfo, ProcessInfo) then
  begin
    Context.ContextFlags := CONTEXT_INTEGER;
    if GetThreadContext(ProcessInfo.hThread, Context) then
    begin
      MessageBox(0, 'yeah', '', 0);
    end;
  end;
  TerminateProcess(ProcessInfo.hProcess, 0);
end;
Führe ich exakt den selben Code in einer Konsolenanwendung aus, schlägt GetThreadContext() mit dem Fehler "Zugriff auf einen unzulässigen Speicherbereich" fehl Hat jemand ne Idee woran das liegen kann?

Viele Grüße
Zacherl
  Mit Zitat antworten Zitat