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