[решено] Узнать запущена ли игра на компьютере ...
-
FlatX007
Re: [решено] Узнать запущена ли игра на компьютере ...
А, что обратные исключения трудно задать ? ... темже самым способом. Я ради примера ...
-
FlatX007
Re: [решено] Узнать запущена ли игра на компьютере ...
Особо строго несудите ...автоитом занимаюсь недавно мож чего незнаю сделал как умел ... если что лишнее модератор поправьте 
У меня работает проверял!
А простите исправил - сделал бесконечный цикл без паузы у меня в акурат скрипт проц загрузил на 50%
Код:

У меня работает проверял!
А простите исправил - сделал бесконечный цикл без паузы у меня в акурат скрипт проц загрузил на 50%

Код:
Код: Выделить всё
;~ #NoTrayIcon
If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)
#include
; СПИСОК ИГР ИСКЛЮЧЕНИЙ. Точное название "окна" игры списываем значение из диспечера задачь вкладка - приложения
Dim $My_Title[3]
$My_Title[0] = "Left 4 Dead"
$My_Title[1] = "FlatOut 2"
$My_Title[2] = "DiRT"
;~ $My_Title[3] = "моя игра 1"
;~ $My_Title[4] = "моя игра 2"
While 1
Sleep(1000)
If _IsFullScreen() = 1 Then
Sleep(3000)
$WinList = WinList("")
For $iWin = 0 To $WinList[0][0]
If _IsFullScreen() = 1 Then
If WinActive($WinList[$iWin][0]) Then
Select
Case $My_Title[0] = $WinList[$iWin][0]
ContinueLoop
Case $My_Title[1] = $WinList[$iWin][0]
ContinueLoop
Case $My_Title[2] = $WinList[$iWin][0]
ContinueLoop
;~ Case $My_Title[3] = $WinList[$iWin][0]
;~ ContinueLoop
;~ Case $My_Title[4] = $WinList[$iWin][0]
;~ ContinueLoop
Case 0 = 0
If _IsFullScreen() = 1 Then
WinKill($WinList[$iWin][0])
; Сообщение для примера :)
MsgBox(48,"Ого!","Запуск этой игры запрёщён злым админюгой это компа!",10)
EndIf
EndSelect
EndIf
EndIf
Next
EndIf
WEnd
Func _IsFullScreen()
Local $hWnd = DllCall('user32.dll', 'hwnd', 'GetForegroundWindow')
$hWnd = $hWnd[0]
If (@error) Or ($hWnd = 0) Then
Return SetError(1, 0, -1)
EndIf
If (StringInStr(WinGetClassList($hWnd), 'SHELLDLL_DefView') = 0) And (BitAND(WinGetState($hWnd), 2) = 2) And (_WinAPI_GetClientWidth($hWnd) = @DesktopWidth) And (_WinAPI_GetClientHeight($hWnd) = @DesktopHeight) Then
Return 1
EndIf
Return 0
EndFunc-
Pozia
Re: [решено] Узнать запущена ли игра на компьютере ...
FlatX007, чудненько. А можете прикрутить список исключений полноэкранных прог? Пусть все же LA и тому подобные плеера работают )
-
Pozia
Re: [решено] Узнать запущена ли игра на компьютере ...
FlatX007, вы бы лучше новым сообщением писали. И благодарность бы получили и народ бы в курсе был того что вы поправили. А то я сюда сейчас чисто случайно зашел. Спасибо. Буду тестить.
FlatX007, проверил сейчас на предмет исключения плеера LA. Не работает, так как его название в диспетчере имеет вид: название фильма - Light Alloy. Следовательно при разных фильмах скрипт не верно обрабатывает исключение. Можно ли сделать так чтобы скрипт не конкретно цеплялся за имя программы в диспетчере, а допустим если есть хоть часть из названия программы из диспетчера в спсике исключений то он уже не закрывал процесс? Или как то еще?
FlatX007, проверил сейчас на предмет исключения плеера LA. Не работает, так как его название в диспетчере имеет вид: название фильма - Light Alloy. Следовательно при разных фильмах скрипт не верно обрабатывает исключение. Можно ли сделать так чтобы скрипт не конкретно цеплялся за имя программы в диспетчере, а допустим если есть хоть часть из названия программы из диспетчера в спсике исключений то он уже не закрывал процесс? Или как то еще?