Moldis Opublikowano 12 Maja 2008 Udostępnij Opublikowano 12 Maja 2008 Czy jest jakiś sposób żeby z gry w gm-ie sprawdzić czy proces np. gra.exe jest teraz włączony? czy tam proces explorer.exe, i jakoś na niego oddziaływać, np. go wyłączyć albo zmienić priorytet? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 12 Maja 2008 Udostępnij Opublikowano 12 Maja 2008 Do tego bys usial zrobic dlla, ktory wyszuka proces, podlaczy sie pod niego, nastepnie przejmie kontrole nad nim. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 12 Maja 2008 Autor Udostępnij Opublikowano 12 Maja 2008 ; / Nie wiesz może czy ktoś już zrobił takie biblioteki ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 12 Maja 2008 Udostępnij Opublikowano 12 Maja 2008 Napisałem Ci bibliotekę odczytującą listę procesów - dzięki temu będziesz mógł sprawdzić po nazwie procesu czy jest uruchomiony :P https://gmclan.org/up541_4_proclist.html A proces zamykasz tak: GML execute_program( 'taskkill', '/F /IM nazwaprocesu.exe', 0 ); ;D EDIT: Dobra tam, masz kod źródłowy ( obj pascal ), jak umiesz w nim programować to sobie rozszerzysz możliwości tej biblioteki: :) library ProcList; uses Windows, TlHelp32; var Process : TProcessEntry32; ProcHandle : THandle; function ProcessGetFirst() : PChar; stdcall; begin if ( ProcHandle > 0 ) then CloseHandle( ProcHandle ); ProcHandle := CreateToolHelp32SnapShot( TH32CS_SNAPALL, 0 ); Process.dwSize := SizeOf( Process ); if Integer( Process32First( ProcHandle, Process ) ) <> 0 then Result := Process.szExeFile else Result := ''; end; function ProcessGetNext() : PChar; stdcall; begin if Integer( Process32Next( ProcHandle, Process ) ) <> 0 then Result := Process.szExeFile else begin Result := ''; CloseHandle( ProcHandle ); end; end; exports ProcessGetFirst, ProcessGetNext; begin end. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 12 Maja 2008 Autor Udostępnij Opublikowano 12 Maja 2008 Aww.. Jesteś moim bogiem od crackingu i bibliotek ;D @edit mhmm.. co prawda OP nie znam ale znam co nieco delphi więc rozumiem mniej więcej strukturę tego kodu ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 12 Maja 2008 Udostępnij Opublikowano 12 Maja 2008 @edit mhmm.. co prawda OP nie znam ale znam co nieco delphi więc rozumiem mniej więcej strukturę tego kodu ;D Object Pascal – obiektowy język programowania, obiektowe rozszerzenie języka Pascal, użyty jako język programowania w środowisku programistycznym Borland Delphi (...) :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 12 Maja 2008 Autor Udostępnij Opublikowano 12 Maja 2008 Aha.. a ja zawsze żyłem w przekonaniu iż delphi to swoistego rodzaju język zbudowany na op.. >,,> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 12 Maja 2008 Udostępnij Opublikowano 12 Maja 2008 Może się nie znam na O Pascalu, ale czy to jest potrzebne: Result := ''; Co? xd Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 12 Maja 2008 Udostępnij Opublikowano 12 Maja 2008 @Kofel: Yup. @Moldis: Mi chodziło o to, że nie możesz nie znać Object Pascala, znając "Delphi Language". ;P damn, net jamming... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 12 Maja 2008 Autor Udostępnij Opublikowano 12 Maja 2008 Tak przeglądam właśnie ten dołączony plik do gm.. i na jakiej zasadzie to odświeżanie działa ? ; / instance_create( 0, 0, 0 ); instance_destroy(); @edit A i powiedz jeszcze bo nie mam zielonego pojęcia jaką funkcją można wyszukać ciąg znaków w danej zmiennej ; / Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 12 Maja 2008 Udostępnij Opublikowano 12 Maja 2008 Nie chciało mi się pisać to sobie tak uprościłem :) Tworzy object0 a siebie usuwa... czyli taki restart ;D Równie dobrze może być to samo co w create czy też: GML lista = get_process_first() + '#'; do lista += get_process_next() + '#'; until ( string_copy( lista, string_length( lista ) - 1, 2 ) = '##' ) Jaką funkcją wyszukać ciąg znaków ? GML if string_pos( 'explorer.exe', lista ) > 0 // pozycja pierwszego 'explorer.exe' w zmiennej // jesli jest w liscie - kod if string_count( 'explorer.exe', lista ) > 0 // liczba 'explorer.exe' w zmiennej // jesli jest w liscie - kod Możesz też sprawdzać czy dany proces jest uruchomiony na tablicach, porównując ciągi znaków... ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 12 Maja 2008 Filar Społeczności Udostępnij Opublikowano 12 Maja 2008 Oj, Object Pascal to stara nazwa Delphi i tyle. Borland po pewnym czasie zmienił nazwę na tą drugą i tyle. Delphi to środowisko jak i sam język. W polskiej wikipedii są głupoty popisane na ten temat. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 12 Maja 2008 Udostępnij Opublikowano 12 Maja 2008 Tak pokręcili z tym Delphi, że sam już nie byłem pewien czy Delphi można nazywać językiem programowania czy nie... thx for info :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 13 Maja 2008 Autor Udostępnij Opublikowano 13 Maja 2008 Eee... Nie mam zielonego pojęcia.. ale czasami po sprawdzeniu czy na liście znajduje się jakiś proces program się wykracza, a czasami nawet tak bez powodu.. ? Wie ktoś dlaczego może tak się dziać? Może to problem biblioteki czy coś? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 Wykracza ? Tzn ? ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 13 Maja 2008 Autor Udostępnij Opublikowano 13 Maja 2008 Tzn. nagle się wyłącza.. @Edit aww.. ale grzmi, prawdopodobnie nie będę miał teraz neta więc mogę prędko nie odpisać jak coś.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 Przecież sprawdzanie, czy proces jest na liście nie zależy od DLL-a bo się z niego wtedy nie korzysta, to już się robi w GM przeszukując zmienną czy tablicę... po np. wykonaniu takiego skryptu twoja gra/program ci się wyłącza ?: GML if string_pos( 'explorer.exe', lista ) > 0 execute_program( 'taskkill', '/F /IM explorer.exe', 0 ); Bo powinien explorer ^^ a może dałeś: execute_program( 'taskkill', '/F /IM mojagra.exe', 0 ); ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 13 Maja 2008 Autor Udostępnij Opublikowano 13 Maja 2008 Wyłączył się exploler.. a za jakiś czas program.. może wkleje tu linijki kodu, póki mam net.. CREATE GML proclist_init(); // definiowanie proces_dz = ''; mozna_odswierzyc = true; i = 0; lista = get_process_first() + '#'; // pobierz pierwszy process ( resetuje liste ) / dzialanie podobne do file_find_first while ( true ) // niskonczona petla { lista += get_process_next() + '#'; // pobierz nastepny process z listy /* jesli dojdzie do konca listy przerwij petle */ if ( string_copy( lista, string_length( lista ) - 2, 2 ) = '##' ) break; } alarm[0] = room_speed * 0.25 // odświerzanie co 1/4 sekundy STEP GML //===== ODŚWIERZANIE LISTY =====// if mozna_odswierzyc = true { lista = get_process_first() + '#'; do lista += get_process_next() + '#'; until ( string_copy( lista, string_length( lista ) - 1, 2 ) = '##' ) mozna_odswierzyc = true; } //======== PPRZEWIJANIE ========// if keyboard_check(vk_up) { if view_yview[1] < 30 { view_yview[1] += 10; } } else if keyboard_check(vk_down) { if view_yview[1] > -480 { view_yview[1] -= 10; } } //== PRZYPISANIE + SPRAWDZANIE DOSTĘPNOŚCI ==// if keyboard_check_pressed(vk_enter) { proces_dz = get_string('Podaj nazwę porcesu:', proces_dz); if proces_dz != '' { if string_pos( proces_dz, lista ) > 0 { show_message('Proces "' +string(proces_dz) +'" jest włączony.'); } else { show_message('Proces "' +string(proces_dz) +'" nie jest włączony.'); } } else { show_message('Proszę podać jaki proces ma zostać sprawdzony.'); } } //===== ZAMYKANIE PROCESU ====// if keyboard_check_pressed(vk_backspace) { execute_program( 'taskkill', '/F /IM ' +string(proces_dz), 0 ); } To są te najważniejsze, oprócz tego mam alarm który zwraca true zmiennej proces_dz i draw do rysowania listy.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 U mnie wszystko w porządku... a spróbuj jeszcze raz z tą biblioteką: https://gmclan.org/up541_4_Proc.html Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 13 Maja 2008 Autor Udostępnij Opublikowano 13 Maja 2008 Ee.. z tą już się nic nie dzieje.. przynajmniej na razie XD Co w niej zmieniłeś? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 Poprzednią spakowałem UPX-em, a tą już dałem "czystą" :) Widocznie GM ma problemy ze skompresowanymi bibliotekami ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 13 Maja 2008 Autor Udostępnij Opublikowano 13 Maja 2008 Mhm.. dzięki! A jest jakaś funkcja lub program w windzie którym można zmienić priorytet procesu? Czy trzeba pisać bibliotekę? A i wskaźnik procentowy zużycia cpu oraz ram-u ; D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Snake Opublikowano 13 Maja 2008 Udostępnij Opublikowano 13 Maja 2008 Heh, nie rób takich rzeczy w GM-ie, bo po co ;D Tu znajdziesz programik, który kontroluje z linii poleceń procesy: http://www.beyondlogic.org/solutions/proce...processutil.htm Poczytaj na tej stronie jak go obsługiwać, potem dodaj go do includes w GM czy wsadź do folderu z grą ( waży 25kb ) i nim się posługuj z GM-a :P Co do zużycia RAM-u i CPU... dopisz sobie do DLL-a ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Moldis Opublikowano 13 Maja 2008 Autor Udostępnij Opublikowano 13 Maja 2008 Mhm.. dzięki! A takie programy etc robie ponieważ lubię mieć później wszystko pod ręką.. gdybym np. potrzebował czegoś to już będę miał wszystko bez szukania po forach etc..;D A na dodatek zawsze troszkę zapamiętam z tego co robie i potem będę miał z tym mniejsze kłopoty ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się