Ciao a tutti,
mi sta succedendo una cosa strana ...
Debuggando il codice qui sotto:
if (NumPid = PidAttuale) then begin
//Se l'applicativo che devo portare il primo piano è "me stesso"
NomeExeAttuale:=Application.ExeName;
NomeExeInPrimoPiano:=GetCurrentActiveProcessPath;
if (not Application.Active) or
(LowerCase(NomeExeAttuale) <> LowerCase(NomeExeInPrimoPiano)) then begin
//Non ha il focus
ShowWindow(Wrk_hwnd, SW_SHOWMINIMIZED); //La minimizzo
ShowWindow(Wrk_hwnd, SW_SHOWNORMAL); //La mostro normale. Se non l'avessi prima minimizzata, non avrebbe sentito la variazione,
//e non avrebbe fatto il lavoro corretto
SetForegroundWindow(Wrk_hwnd); //Aggiunta il 02/02/2021, per la verifica che faccio sugli MRP modificati da Roberta
end else begin
//Ha già il focus
SetForegroundWindow(Wrk_hwnd);
end;
end else begin
//Se l'applicativo "A", deve portare in primo piano l'applicativo "B"
ShowWindow(Wrk_hwnd, SW_SHOWMINIMIZED); //La minimizzo
ShowWindow(Wrk_hwnd, SW_SHOWNORMAL); //La mostro normale. Se non l'avessi prima minimizzata, non avrebbe sentito la variazione,
//e non avrebbe fatto il lavoro corretto
SwitchToThisWindow(Wrk_hwnd, True); //https://docs.microsoft.com/it-it/windows/win32/api/winuser/nf-winuser-switchtothiswindow?redirectedfrom=MSDN
end;
Sono fermo col debug sulla riga
SetForegroundWindow(Wrk_hwnd); //Aggiunta il 02/02/2021, per la verifica che faccio sugli MRP modificati da Roberta
La eseguo, ed il debugger passa alla riga
SwitchToThisWindow(Wrk_hwnd, True); //https://docs.microsoft.com/it-it/windows/win32/api/winuser/nf-winuser-switchtothiswindow?redirectedfrom=MSDN
Ma come è possibile una cosa del genere ???
In pratica, mi sta passando da una "if" al suo "else" ...
Ciao, Mario