Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

Siemka. Znalazł by się ktoś pomocny który by mi napisał prosty programik w Winapi.

Program ma kontrolować 0-5 procesów np. notepad1.exe, notepad2.exe,notepad3.exe,notepad4.exe, notepad5.exe i wazie gdy jeden z tych procesów zostanie zamknięty(skoś odgórnie lub przez użytkownika) to resztę procesów ma się zamknąć automatycznie(najlepiej z jakąś opcją "force np TerminateProcess()" bo notepad może się pytać o zapisanie dokumentu").

A teraz w skrócie:

 

włączam kilka aplikacji(max 5) ->włączam owy programik->podaje liczbę kontrolowanych procesów i podaje je(mogę nawet process id)-> zostaje awaryjnie lub normalnie wyłączona jedna z tych pięciu to pozostałe razem z nią

 

Napisał bym sam ale jeszcze nie ogarniam winapi a ktoś zna je to kwestia 10-20min. Za pomoc daje + i 5;

Poniżej daje przykładowy kod na włączanie aplikacji i jej wyłączanie po uśpieniu 30s

 

 

#include <windows.h>

 

int main(int argc, char *argv[])

{

 

TCHAR szCmdLine[ MAX_PATH ] = TEXT (“\C:\Program Files\Internet Explorer\IEXPLORE.EXE\””);

STARTUPINFO si = { sizeof( si ) };

PROCESS_INFORMATION pi;

HWND hwnd = NULL;

 

while ( 1 )

{

 

::CreateProcess(

NULL,

szCmdLine,

NULL,

NULL,

FALSE,

0,

NULL,

NULL,

&si,

π );

 

 

::WaitForInputIdle( pi.hProcess, INFINITE );

 

 

::Sleep( 10 * 1000 );

 

hwnd = NULL;

do

{

hwnd = ::FindWindowEx( NULL, hwnd, TEXT( " IEXPLORE" ), NULL );

 

 

} while ( hwnd && ( ::GetWindowThreadProcessId( hwnd, NULL ) != pi.dwThreadId ) );

 

 

if ( hwnd )

{

 

::SendMessage( hwnd, WM_CLOSE, 0, 0 );

}

 

::Sleep( 2 * 1000 );

}

return 0;

}

 

Opublikowano

Nikt raczej ot tak Ci tutaj nie napisze programu. Możemy Ci pomóc w jakichś konkretnych momentach. Na początek przeczytaj kilka kursów etc. i zacznij pisać samemu. Jak w którymś momencie się zatrzymasz to napisz tutaj.

#Include <brain.h>

×
×
  • Dodaj nową pozycję...