|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Узнать запущена ли игра на компьютере ... |
|
|
[решено] Узнать запущена ли игра на компьютере ...
|
Ветеран Сообщения: 553 |
Профиль | Отправить PM | Цитировать Как мне с помощью AutoIt узнать запущена ли на компьютере (2D, 3D) игра ? (я подозреваю нужно обратиться к библиотеке DX9-10...)
Пасибо за внимание . |
|
Отправлено: 00:49, 25-05-2009 |
Старожил Сообщения: 206
|
Профиль | Отправить PM | Цитировать Как это сделать по "человечески" я не знаю, но вот тебе функция, которую я написал только что. Она возвращает 1, если приложение запущено в полноэкранном режиме (не максимизированно), в противном случае - 0. Только что проверил на F.E.A.R. 2 и S.T.A.L.K.E.R. Clear Sky в разных разрешениях. Работает.
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 ;==>_IsFullScreen |
Последний раз редактировалось Yashied, 25-05-2009 в 01:16. Отправлено: 01:00, 25-05-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Огооо вот это я понимаю ПО человечески - работает!!! +1
Решение по виду простое но WinAPI я незнаю совсем |
Отправлено: 01:27, 25-05-2009 | #3 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Yashied, а можно еще как нибудь сделать чтобы скрипт все время висел в памяти, отслеживал и когда запускается игра принудительно выключал ее?
|
------- Отправлено: 19:46, 25-05-2009 | #4 |
Старожил Сообщения: 206
|
Профиль | Отправить PM | Цитировать Цитата Pozia:
|
||
Отправлено: 11:05, 26-05-2009 | #5 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Yashied, не. хотелось бы рубить все полноэкранные процессы. Можно в принципе задать список исключений. Можете такое реализовать? Сам профан в этом деле.
|
------- Отправлено: 18:14, 26-05-2009 | #6 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Так чтоль ?
#include <WinAPI.au3> $DiRT = "DiRT.exe" ; Если запущена игра DIRT - то отрубаем её. While 1 If _IsFullScreen() = 1 Then Sleep(3000) If ProcessExists($DiRT) Then ProcessClose($DiRT) 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 |
Отправлено: 02:21, 27-05-2009 | #7 |
Старожил Сообщения: 206
|
Профиль | Отправить PM | Цитировать Цитата FlatX007:
|
|
Отправлено: 11:38, 27-05-2009 | #8 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать FlatX007, так как у вас не интересно. По чем я знаю какие юзер решит игры поставить? Лучше чтобы скрипт все рубил, за исключением заданных мною прог
|
Отправлено: 19:46, 27-05-2009 | #9 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать А, что обратные исключения трудно задать ? ... темже самым способом. Я ради примера ...
|
Отправлено: 19:11, 28-05-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
узнать что делали в твоём компьютере в твоё отсутствие? | Terry | Хочу все знать | 5 | 25-01-2010 15:21 | |
Службы - [решено] Сеть отсутствует или не запущена | mti_ | Microsoft Windows 2000/XP | 2 | 22-05-2009 17:40 | |
Использование - [решено] На конечном компьютере не запущена служба учета лицензий | SilentGeorge | Лицензирование продуктов Microsoft | 5 | 12-05-2009 08:09 | |
Интерфейс - [решено] Сеть отсутствует или не запущена | trager | Microsoft Windows 2000/XP | 5 | 24-04-2009 23:04 | |
Ошибка - [решено] Свойства учетной записи: ошибка "Служба рабочей станции не запущена" | zeroua | Microsoft Windows 2000/XP | 6 | 13-03-2009 13:56 |
|