intrerupere program

Acest forum este dedicat intrebarilor de programare care nu-si au locul in unul din celelalte forumuri
Post Reply
toderut
Membru
Membru
Posts: 68
Joined: 03 Aug 2009, 11:17
Judet: Bihor

intrerupere program

Post by toderut » 27 Nov 2014, 01:57

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.



toderut
Membru
Membru
Posts: 68
Joined: 03 Aug 2009, 11:17
Judet: Bihor

Re: intrerupere program

Post by toderut » 27 Nov 2014, 02:18

Poate ajuta la ceva: b.dll si c.exe sunt facute de mine si pot interveni in ele.

Viorel
Microsoft MVP
Microsoft MVP
Posts: 292
Joined: 13 Jul 2007, 12:26

Re: intrerupere program

Post by Viorel » 27 Nov 2014, 08:41

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.

toderut
Membru
Membru
Posts: 68
Joined: 03 Aug 2009, 11:17
Judet: Bihor

Re: intrerupere program

Post by toderut » 27 Nov 2014, 11:59

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?

Viorel
Microsoft MVP
Microsoft MVP
Posts: 292
Joined: 13 Jul 2007, 12:26

Re: intrerupere program

Post by Viorel » 27 Nov 2014, 12:43

Încearcă să dezactivezi fereastra sau dialogul cu EnableWindow(..., FALSE). Apoi re-activează. Sau poate mai bine ascunzi cu ShowWindow(..., SW_HIDE).

toderut
Membru
Membru
Posts: 68
Joined: 03 Aug 2009, 11:17
Judet: Bihor

Re: intrerupere program

Post by toderut » 27 Nov 2014, 13:43

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.

User avatar
MarianMMX
Junior
Junior
Posts: 16
Joined: 27 Mar 2014, 09:50
Judet: Galaţi

Re: intrerupere program

Post by MarianMMX » 04 Dec 2014, 00:00

toderut wrote:Si cum gasesc HWND ?
Nu e nevoie sa o cauti (fereastra), pentru ca la un moment dat tu o creezi (CreateWindow).
If you think C++ is not overly complicated, just what is a
protected abstract virtual base pure virtual private destructor
and when was the last time you needed one? — Tom Cargill (1990)

Post Reply