Что нового

Запустить окно игры, развернуть на весь экран, убрать рамку окна, перекрыть пуск

AlexanderSh88

Новичок
Сообщения
2
Репутация
0
Здравствуйте, подскажите реально ли запустить игру в окне, развернуть на весь экран, убрать рамку вокруг окна и перекрыть этим окном пуск?
У меня почти все работает, только вот пуск остается поверх игры. Знаю что можно скрыть пуск стандартными средствами, но придется его постоянно при выходе из игры обратно включать. Может можно скрипт подправить, чтобы у него был приоритет перед пуском?


Код:
; Запуск игры
ShellExecute ( "C:\Games\Warcraft 3 Frozen Throne\war3.exe" , "-window")

; Ждем появления окна (10 сек)
$hWnd = WinWaitActive("[CLASS:Warcraft III]", "", 10) ; без таймаута (5) ожидание бесконечно
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Долго запускается... перезапустите')
    Exit
EndIf


; Разворачиваем на весь экран
WinSetState ('Warcraft III', '', @SW_MAXIMIZE)


; Убираем рамку, но пуск снизу не много закрывает((
#include <GuiMenu.au3>
#include <WinAPI.au3>
#include <WinAPIConstants.au3>
#include <WindowsConstants.au3>

Local $hMenu, $hWnd = WinWait('Warcraft III') ; Some window
; ---
_MakePopup($hWnd)

; Спрятать меню окна
$hMenu = _GUICtrlMenu_GetMenu($hWnd)
If $hMenu Then _
    _GUICtrlMenu_SetMenu($hWnd, 0)

; Восстановить
;_GUICtrlMenu_SetMenu($hWnd, $hMenu)

Func _MakePopup($hWnd)
    Local $iOldStyle
    ; ---
    $iOldStyle = _WinAPI_GetWindowLong($hWnd, $GWL_STYLE)
    If BitAnd($iOldStyle, $WS_CHILD) Then  _
        Return SetError(1, 0, False)

    $iOldStyle = BitAnd($iOldStyle, BitNot($WS_CAPTION))
    _WinAPI_SetWindowLong($hWnd, $GWL_STYLE, BitOr($iOldStyle, $WS_POPUP))
    _WinAPI_SetWindowPos($hWnd, 0, 0, 0, 0, 0, BitOr($SWP_NOMOVE, $SWP_NOSIZE, $SWP_NOZORDER, $SWP_FRAMECHANGED))
    ; ---
    Return True
 EndFunc
 
Автор
A

AlexanderSh88

Новичок
Сообщения
2
Репутация
0
Думаю, что лучше не создавать новую тему, а в этой написать...

Не могу убрать рамку игры Killing Floor (запущенной в оконном режиме). Скрипт, который выше, не справляется. Может у кого - нибудь есть более жесткий вариант :-\
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
965
AlexanderSh88 [?]
Думаю, что лучше не создавать новую тему
Порой нужно просто читать правила форума!

Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Глобальный модератор.
 
Верх