Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Узнать запущена ли игра на компьютере ...

Ответить
Настройки темы
[решено] Узнать запущена ли игра на компьютере ...

Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Как мне с помощью AutoIt узнать запущена ли на компьютере (2D, 3D) игра ? (я подозреваю нужно обратиться к библиотеке DX9-10...)

Пасибо за внимание .

Отправлено: 00:49, 25-05-2009

 

Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


FlatX007, я ноль в этом. если не трудно сделайте как я прошу. Спасибо

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 19:27, 28-05-2009 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Особо строго несудите ...автоитом занимаюсь недавно мож чего незнаю сделал как умел ... если что лишнее модератор поправьте

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

Код: Выделить весь код
;~ #NoTrayIcon

If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)

#include <WinAPI.au3>

; СПИСОК ИГР ИСКЛЮЧЕНИЙ. Точное название "окна" игры списываем значение из диспечера задачь вкладка - приложения
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

Последний раз редактировалось FlatX007, 28-05-2009 в 22:32. Причина: подправил

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:53, 28-05-2009 | #12


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


FlatX007, чудненько. А можете прикрутить список исключений полноэкранных прог? Пусть все же LA и тому подобные плеера работают )

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 17:56, 02-06-2009 | #13


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


FlatX007, вы бы лучше новым сообщением писали. И благодарность бы получили и народ бы в курсе был того что вы поправили. А то я сюда сейчас чисто случайно зашел. Спасибо. Буду тестить.

FlatX007, проверил сейчас на предмет исключения плеера LA. Не работает, так как его название в диспетчере имеет вид: название фильма - Light Alloy. Следовательно при разных фильмах скрипт не верно обрабатывает исключение. Можно ли сделать так чтобы скрипт не конкретно цеплялся за имя программы в диспетчере, а допустим если есть хоть часть из названия программы из диспетчера в спсике исключений то он уже не закрывал процесс? Или как то еще?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 01:39, 08-06-2009 | #14



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Узнать запущена ли игра на компьютере ...

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
узнать что делали в твоём компьютере в твоё отсутствие? 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




 
Переход