Jump to content

Archived

This topic is now archived and is closed to further replies.

pawelk3k

[c++] Pytanie dotyczące instrucji if

Recommended Posts

Witam!

Mam pytanie czy da rade zrobić instrukcje która zwracała by wartość true gdy użytkownik otworzy np: painta ?

Według mnie powinno to wyglądać mniej więcej tak:

...
...
...
if (1*)
{
cout << "To nie jest właściwy program. Użyj innego." << endl;
}

...
...

1* - tu właśnie powinien być warunek który zwróci wartość true gdy osoba otworzy np painta.

Proszę o napisanie brakującego warunku do algorytmu. Podejrzewam ze trzeba dołączyć jakąś chytrą bibliotekę. Pracuje w "Dev-C++ 4.9.9.2"

Z góry dziękuję. ^^

Link to comment
Share on other sites

Ta chytra biblioteka to WinAPI ;)

Jeżeli dobrze zrozumiałem twoje pytanie to chcesz zrobić coś takiego, że twój program sprawdza, że jest uruchomiony paint. Musiałbyś pokombinować z funkcjami sprawdzającymi listę uruchomionych procesów.

Link to comment
Share on other sites

była też funkcja sprawdzająca czy jest uruchomione okno o danej nazwie. Też by w tym przypadku mogło pomóc. WinAPI ma to do siebie, że trzeba w tym trochę czasu spędzić, żeby wyłowić, to czego się szuka. Jak znajdę tą funkcje to dokleje do tego posta.

Link to comment
Share on other sites

Gus bardzo dobrze mnie zrozumiałeś dokładnie o to chodzi ^^. Co do wypowiedzi Lord Hrabula wiesz może jak dokładnie nazywała się ta funkcja o której wspomniałeś? Troszeczkę pogrzebałem w internecie i znalazłem niestety tylko jedną polską stronę mówiącą co nieco o winapi.

http://cpp0x.pl/dokumentacja/611 jest to po prostu dokumentacja :) Niestety nie znalazłem tu nic przydatnego. Może znacie jakieś dobra Angielski bądź Polskie forum lub stronę o c++?

Link to comment
Share on other sites

Poczytaj o SetWindowsHookEx - http://msdn.microsoft.com/en-us/library/ms...0(v=vs.85).aspx.

Nie zgłębiałem tematu, ale to być może będzie tym, czego szukasz.

Nie wiem na ile artykuł http://askville.amazon.com/detect-applicat...equestId=677973 jest aktualny, ale jeśli ciągle jest, to w .NET trzeba okresowo sprawdzać, bo hooka podpiąć się nie da.

Link to comment
Share on other sites

Znalazłem w necie coś takiego:

PROCESSENTRY32 entry;
entry.dwSize = sizeof(PROCESSENTRY32);

HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);

if (Process32First(snapshot, &entry) == TRUE)
{
while (Process32Next(snapshot, &entry) == TRUE)
{
if (stricmp(entry.szExeFile, "target.exe") == 0)
{
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);

// Do stuff..

CloseHandle(hProcess);
}
}
}

Nie kompilowałem tego, ale z tego co widzę, to kod ten przeszukuje procesy i dla procesu uruchomionego z pliku target.exe wykonuje operacje.

Link to comment
Share on other sites



  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...