zabicie procesu po 5 minutach bezczynnosci

0

Witam serdecznie

Chciałbym przygotować skrypt, który zabijał by proces po 5 minutach bezczynności lub po zablokowaniu uzytkownika (Start -> Zablokuj). Mogę liczyc na jakies sugestie?

2

Sugeruję najpierw zdefiniować pojęcie "bezczynności".
Na poziomie użytkownika i implementacji.

0

Mam oprogramowanie iHurtPrg, które podczas uruchomienia dwóch sesji na dwóch profilach windowsa blokuje dla jednego uzytkownika sprzedaz detaliczna. Dlatego chcialbym, aby w momencie blokady uzytkownika windows (domyslnie po 5 minutach) proces ten zostal zabijany, tak aby sprzedawca ktory sie zaloguje na swoj profil mogl dokonywac sprzedazy.

Prosciej niz w pierwszym poscie nie da sie tego wyjasnic. Jest proces iHurtPrg.exe i w przypadku gdy komputer nie jest uzywany to po 5 minutach bezczynnosci chcialbym aby ten proces został zabity, a najlepiej jakby został zabity po zablokowaniu uzytkownika windows (ctrl + l), ktory blokuje sie po 5 minutach bezczynnosci.

2

Teraz już lepiej, wiadomo o co Ci chodzi. Mógłbyś jeszcze podać o jaki system chodzi. ale nie będę się czepiać ;)

Pierwsza myśl, jaka mi przychodzi - jako punkt zaczepienia dać wygaszacz ekranu. Zrobić jakiś własny wygaszacz, który od razu po uruchomieniu będzie zabijał wskazany proces.

Ponadto można oskryptować akcje podczas blokowania ekranu/logowania się usera - https://stackoverflow.com/questions/1830666/run-command-script-when-lock-unlock-windows-station lub https://superuser.com/questions/708889/run-a-batch-file-when-i-lock-unlock-my-computer

Jeszcze przychodzi mi do głowy napisanie jakiejś własnej aplikacji/usługi, która będzie siedzieć w tle i ubijać apkę, ale problemem będzie określenie, kiedy to się powinno stać- dlatego chyba lepszą opcją są podane powyżej linki.

0

Super, dziekuje za odpowiedz. Co by rozwinąć problem udało mi się ustalić co blokuje uruchomienie modułu sprzedaży detalicznej.

Samo oprogramowanie uruchamia się, nie można jedynie uruchomić modułu sprzedaży detalicznej, ponieważ blokuje się przez użycie sterownika dll do drukarki fiskalnej.

Ponizej wrzucam link do zrzutu ekranu z process explorer

https://zapodaj.net/3c312221396a1.jpg.html

Sam proces iHurtPrg.exe mogę uruchomić bezproblemu na dwóch logowaniach uzytkownikow Windows. Jedynie zaznaczony na czerwono dfKSDelioE_FMM.dll uruchamia się tylko na jednej sesji, a na drugiej już nie pozwala. Dlatego chciałbym zrobić tak, że np. po zablokowaniu konta Windows (ctrl + L) zabić sam ten dll.

A teraz przykład jak to wygląda:
Sprzedawca 1 uruchamia komputer, loguje się na swoje konto i uruchamia iHurtPrg.exe, loguje się na swoje konto i sprzedaje. Odchodzi od komputera, a komputer po 5 minutach bezczynności blokuje się (aplikacja jest ciągle uruchomiona). Podchodzi Sprzedawca2 i loguje się na swoje konto, uruchamia iHurtPrg.exe, loguje się na swoje konto i nie może uruchomić Sprzedaży (ponieważ Sprzedawca1 blokuje dfKSDelioE_FMM.dll). Dlatego chciałbym po zablokowaniu ekranu zabić ten proces (najlepiej samą bibliotekę DLL, ewentualnie caly proces iHurtPrg.exe) tak aby Sprzedawca2 lub kolejna osoba która się zaloguje mogła swobodnie sprzedawać.

Edit:
A system to Insignum iHurt ;)

Edit2:
Wsparcie firmy uwywa ręcę. Zasugerowali tylko, że można napisać skrypt Windowsowy, który zabija jakiś tam proces, ale nie wiedzą jaki. Proces udało mi się ustalić, teraz chciałbym go kill'em, a właściwie to kill'em gdy zostaje blokowany użytkownik (po 5 minutach lub przez Ctrl + L).

1

Najprostsze obejscie to zobowiazanie sprzedawcy do wylogowywania sie kiedy odchodzi od komputera albo zalozenie wspolnego konta dla obu sprzedawcow

0

Nie chodzi mi o obejscie problemu.

Dla mnie najprostsze bylo zrobienie .bat ktory pierw zabija proces iHurtPrg.exe, a później go otwiera. W ten sposób zabija uruchomiony proces przez poprzedniego uzytkownika. Fajnie by bylo gdyby nie zabijal calkowicie programu, a sam DLL, tylko nie moge znalezc odpowiedzi jak i czy mozna w ogole zabic sam DLL bez całego procesu.

0

A może zrobić skrypt batch ubijający ten proces i wrzucić go tak by uruchamiał sie przy logowaniu użytkownika Windows?
http://wojciechszylar.blogspot.com/2015/10/tworzenie-skryptow-logowaniawylogowania.html

0

Kurcze, stanąłem w miejscu. Za pomocą ProcessExplorer gdy zabijam Handle \Device\Serial0 mogę używać sprzedaży na kolejnym użytkowniku. A jako ze chcialem zrobic skrypt który będzie to robił przy każdym logowaniu użytkownika to pobrałem Handle v.4 ale niestety Serial0 nie znajduje i nie moge zamknąć go poleceniem. Probowalem takze wylaczac w menedżerze urządzeń Port COM i uruchamiac ponownie - niestety bez efektu. Jakies pomysly jak mozna zamknac tego Handle?

EDIT:
Za pomocą devcon udaje mi się wyłączyć urządzenie COM1. Jednak mam problem, ponieważ w przypadku gdy program jest uruchomiony i uzywa modułu sprzedażowego, to polecenie devcon disable ACPI\PNP0501* informuje, ze urzadzenie zostanie wylaczone po restarcie komputera. Macie jakis sposob zeby to sforsowac? Jakos silowo go wylaczyc?

1 użytkowników online, w tym zalogowanych: 0, gości: 1