Salve,
uso la funzione qui sotto per eseguire un programma con interfaccia espansa a tutto schermo.
Sto avendo problemi con Windows 11. Quando uso il codice, che funziona bene con le versioni precedenti di Windows, l'eseguibile parte ma non è possibile interagire.
Qualcuno ha del codice che funziona anche su Windows 11 ? Utilizzo Delphi XE 10.2.3
grazie
Roberto
// Esempio d'uso: runProcess(percorso_file_eseguibile,'',false,SW_SHOWMAXIMIZED)
function runProcess(const aCmdLine, aParam: String; aWait : boolean; astate:shortint=-1):Boolean;
var
StartupInfo : TStartupInfo;
ProcessInfo : TProcessInformation;
CmdLine : string;
begin
if astate=-1 then
astate:=SW_SHOWNORMAL;
if aParam = '' then CmdLine := aCmdLine
else CmdLine := AddQuotes(aCmdLine) + ' ' + AddQuotes(aParam);
{setup the startup information for the application }
FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
with StartupInfo do begin
cb:= SizeOf(TStartupInfo);
dwFlags:= STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
wShowWindow:= astate;
end;
Result := CreateProcess(nil,PWideChar(CmdLine), nil, nil, False,
NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo);
if Result then
begin
if aWait then
if Result then
begin
WaitForInputIdle(ProcessInfo.hProcess, INFINITE);
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
end;
CloseHandle(ProcessInfo.hProcess);
CloseHandle(Processinfo.hThread);
end;
end;