Shell Napisano Listopad 6, 2019 Autor Zgłoś Udostępnij Napisano Listopad 6, 2019 Witam Mam mały w sumie problemik bo próbuje zrobić uchwyt do procesu, niestety nie wychodzi mi na msdn pisze niby uchwyt NtQuerySystemInformation( SYSTEM_INFORMATION_CLASS SystemInformationClass, PVOID SystemInformation, ULONG SystemInformationLength, PULONG ReturnLength ); No i ja prubuje ale nici z związku z ty prosił bym o jakiś przykład powiedzmy "tlen.exe" będe strasznie wdzięczny. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Visage Napisano Listopad 7, 2019 Zgłoś Udostępnij Napisano Listopad 7, 2019 na jakim systemie probujesz wywyolac ta funkcje? mam nadzieje ze wiesz o tym: Client: Requires Windows XP or Windows 2000 Professional. Pozatym przeczytaj sobie Remarks z https://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/ntquerysysteminformation.asp Szczerze mowiac dokladnie opisz na czym polega problem, ew pokaz kawalek kodu. To ze cos nie dziala informuje tylko o tym ze cos zrypales o niczym wiecej. Podaj wiecej informacji inaczej nikt nie bedzie ci w stanie pomoc Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Shell Napisano Listopad 7, 2019 Autor Zgłoś Udostępnij Napisano Listopad 7, 2019 Używam XP, ale właściewie to interesuje mnie win2000 Robie to w winapi (chodzi o zamknięcie procesu, ponieważ ten kod zamyka okno tzn. funkcja FindWindow() jest do okien) a ja chce jak już powiedziałem proces przypisać do jakiegoś uchwytu np hwnd by potem go "terminate". Stąd też jest mój post. Bardzo bym prosił o jakiś przykład bo z nich w sumie najlepiej mi się uczy. Z góry dzięki. HWND hwd; HANDLE hProc; DWORD pId; GetWindowThreadProcessId (FindWindow("notepad", 0), &pId); hProc = OpenProcess(PROCESS_TERMINATE, FALSE, pId); TerminateProcess(hProc, 0); Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Burn Napisano Listopad 9, 2019 Zgłoś Udostępnij Napisano Listopad 9, 2019 Witam Jeżeli nie chodzi Ci tylko o zdobycie uchwytu procesu to nie wiem dobrze jak jej użyć bo ciągle używam Win 98 ale w miarę łatwo możesz to zrobić za pomocą CreateToolhelp32Snapshot i Process32First, Process32Next możesz też przeczytać https://www.winapi.org/index.php?option=content&task=view&id=88&Itemid=33 jeżeli sobie nie poradzisz to napisz napiszę przykład (w tej chwili jestem zajęty) Pozdro Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Shell Napisano Listopad 10, 2019 Autor Zgłoś Udostępnij Napisano Listopad 10, 2019 Cześć No więc jest to troszkę zaplątane przynajmniej dla mnie, mam coś takiego HANDLE WINAPI CreateToolhelp32Snapshot(DWORD TH32CS_SNAPPROCESS, DWORD th32ProcessID); // czyli wszystkie procesy zostały podglądnięte i zapisane // teraz tworzę tą strukture (chociaż właściwie nie wiem do czego ona jest) typedef struct tagPROCESSENTRY32 { DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; DWORD th32DefaultHeapID; DWORD th32ModuleID; DWORD cntThreads; DWORD th32ParentProcessID; LONG pcPriClassBase; DWORD dwFlags; char szExeFile[MAX_PATH]; } PROCESSENTRY32; typedef PROCESSENTRY32 * PPROCESSENTRY32; typedef PROCESSENTRY32 * LPPROCESSENTRY32; Ponoć teraz mam za pomocą pętli z ifkiem sprawdzać który proces nazywa się "tlen.exe" (jak mam uzyc tych procesfirst i procesnext ?) // w sumie to jednak przydałby sie przykład taki uproszczony do minimum Mam jeszcze drógie pytanie mianowicie czy znasz lub ktoś inny zna jakąś dobrą publikacje(książke) na temat WinApi (szczególnie wykorzytanie w internecie) Za odpowiedź będe wdzięczny Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Burn Napisano Listopad 10, 2019 Zgłoś Udostępnij Napisano Listopad 10, 2019 Witam Napisałem przykład :D To mój pierwszy program w C++ wiec proszę się nie śmiać jak coś namieszałem :P Jest to program, który zamyka Gadu-Gadu (Tlena nie mam). Program był kompilowany pod Dev-C++ 4.9.9.0 i sprawdzony na Win 98 ale wydaje mi się że powinien też działać na Win XP. :) #include <windows.h> #include <tlhelp32.h> int main(void) { HANDLE hSnapshot = NULL; //Uzyskaj uchwyt migawki systemu hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); PROCESSENTRY32 ProcInfo; //W tej zmiennej bedziemy otrzymywać info o procesach ZeroMemory(&ProcInfo, sizeof(ProcInfo)); //Wyczyść strukturę PROCESSENTRY32 ProcInfo.dwSize = sizeof(ProcInfo); //Zapisz jej rozmiar Process32First(hSnapshot, &ProcInfo); //Pierwszy Proces DWORD GGProcID = 0; //Nowa zmienna do przzechowywania ID Procesu do { //Szukamy Gadu-Gadu. Zwróć uwagę na podwójny "\" w ścieżce if (lstrcmpi(ProcInfo.szExeFile, "C:\\Program Files\\Gadu-Gadu\\GG.EXE") == 0) { GGProcID = ProcInfo.th32ProcessID; //Zapisz ID Procesu break; //Przerwij - po co dalej szukać jak już znaleźliśmy :) } } while (Process32Next(hSnapshot, &ProcInfo)); //Następny uruchomiony proces CloseHandle(hSnapshot); //Zamklnij uchwyt if (!GGProcID) { //Czy ID Procesu to 0 //Wyświetl komunikat MessageBox(0, "Nie znaleziono Gadu-Gadu", NULL, MB_ICONERROR); return 0; //Zwróć 0 } HANDLE hGGProc = NULL; //Uchwyt procesu //Trzeba otworzyć proces z proces aby uzyskać prawa do jego zakończenia if (!(hGGProc = OpenProcess(PROCESS_TERMINATE, FALSE, GGProcID))) { //Wyświetl komunikat MessageBox(0, "Błąd OpenProcess. Nie udało się uzyskać praw do zamknięcia.", NULL, MB_ICONERROR); return 0;//Zwróć 0 } TerminateProcess(hGGProc, 0); //Zakończ proces CloseHandle(hGGProc); //Zamknij uchwyt //Zwróć 1 return 1; } W przykładzie dla uproszczenia założyłem, że CreateToolhelp32Snapshot nie zwróci błedu i Process32First też się powiedzie (najprawdopodobniej w systemie jest uruchomiony conajmniej 1 proces). Ale jeżeli wykorzystujesz go w "normalnym" programie to oczywiście musisz liczyć się z możliwością wystąpienia błedu. Mam nadzieję, że Ci pomoże. Gdyby coś jeszcze było niejasne to pytaj. Pozdro Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Shell Napisano Listopad 11, 2019 Autor Zgłoś Udostępnij Napisano Listopad 11, 2019 Staryyy dzięki, wielki jesteś - zastanawiam się czy ma sens moje programowanie skoro to twój pierwszy program w C++, heh. Jeszcze raz dzięki P.S. Zna ktoś dobrą książk do winapi Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Burn Napisano Listopad 11, 2019 Zgłoś Udostępnij Napisano Listopad 11, 2019 Nie no nie zalamuj się. To mój pierwszy program w C++ ale wcześniej z WinApi korzystałem w Delphi i MASM. Co do ksiązek o WinApi to najbardziej znana jest Charles Petzold "Programowanie Windows" niestety dotyczy ona tylko GUI. Nie znam niestety polskiej ksiązki w której były by opisane funkcje dotyczące procesów. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Shell Napisano Listopad 11, 2019 Autor Zgłoś Udostępnij Napisano Listopad 11, 2019 Wiem że już przesadzam z tymi pytaniami ale moze ktos wie jak sie zamyka procesy takie ktore nie mozna nawet zamknąc przez menagera Ponoć się ustawia jakieś prawa dla swojej aplikacji czy coś Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Burn Napisano Listopad 12, 2019 Zgłoś Udostępnij Napisano Listopad 12, 2019 Witam O jakie procesy chodzi Może o usługi systemów NT , jeżeli tak to nie wiem dokładnie bo mam Win 98 ale chyba trzeba by coś pokombinować z funkcjami OpenSCManager, OpenService, SetServiceStatus ale nic więcej na ten temat nie wiem bo nie mam na czym z tym poeksperymentować. Pozdro Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.