Page 1 of 1

intrerupere program

Posted: 27 Nov 2014, 01:57
by toderut
Am un program a.exe care foloseste un dll, b.dll.
In programul a.exe folosesc functii definite in b.dll.
Din programul a.exe cu una din functiile definite in b.dll, lanseaz o aplicatie, c.exe.
Doresc ca pe perioada utilizarii aplicatiei c.exe, a.exe sa fie blocata (intrerupta) si sa se deblocheze cand inchid aplicatia c.exe.
Va multumesc pentru rabdare. Poate ma ajutati cu un sfat.

Re: intrerupere program

Posted: 27 Nov 2014, 02:18
by toderut
Poate ajuta la ceva: b.dll si c.exe sunt facute de mine si pot interveni in ele.

Re: intrerupere program

Posted: 27 Nov 2014, 08:41
by Viorel
Dacă c.exe este lansat cu CreateProcess, atunci încearcă asta:

Code: Select all

WaitForSingleObject( h, INFINITE );
Unde h este hProcess returnat de CreateProcess în parametrul PROCESS_INFORMATION.

Re: intrerupere program

Posted: 27 Nov 2014, 11:59
by toderut
Viorel, iti multumesc foarte mult. A mai ramas o problema: a.exe nu face nimic cat ma joc cu c.exe dar daca apas pe butoane etc in a.exe le tine minte comenzile si dupa ce inchid c.exe, le executa. Pot face ca a.exe sa fie inghetat de-a binelea cat ruleaza c.exe?

Re: intrerupere program

Posted: 27 Nov 2014, 12:43
by Viorel
Încearcă să dezactivezi fereastra sau dialogul cu EnableWindow(..., FALSE). Apoi re-activează. Sau poate mai bine ascunzi cu ShowWindow(..., SW_HIDE).

Re: intrerupere program

Posted: 27 Nov 2014, 13:43
by toderut
Si cum gasesc HWND , a handle to the window to be enabled or disabled. Am incercat
HWND hWnd = FindWindow(NULL,"a.exe");
if(hWnd)
{EnableWindow(hWnd, FALSE);

}
dar nu-mi blocheaza fereastra lui a.

Re: intrerupere program

Posted: 04 Dec 2014, 00:00
by MarianMMX
toderut wrote:Si cum gasesc HWND ?
Nu e nevoie sa o cauti (fereastra), pentru ca la un moment dat tu o creezi (CreateWindow).