elitepvpers

elitepvpers (https://www.elitepvpers.com/forum/)
-   AutoIt (https://www.elitepvpers.com/forum/autoit/)
-   -   SetWindowLong (WinAPI) funktioniert nicht (https://www.elitepvpers.com/forum/autoit/2705201-setwindowlong-winapi-funktioniert-nicht.html)

ExChill 07/07/2013 11:21

SetWindowLong (WinAPI) funktioniert nicht
 
Hallo,

Habe folgenden Code um Skyrim im Borderless Window Mode zu spielen (wird im Windowed Mode gestartet).

Code:

#include <WinAPI.au3>
#include <Constants.au3>
#include <WindowsConstants.au3>

HotKeySet ("{F7}", "skyrimfull")

Func skyrimfull ()

$skyrimhandle = WinGetHandle("Skyrim")

_WinAPI_SetWindowLong($skyrimhandle, $GWL_STYLE, BitOR($WS_BORDER, $WS_DLGFRAME))
_WinAPI_RedrawWindow($skyrimhandle)
WinSetState("Skyrim", "", @SW_SHOW)

WinMove("Skyrim", "", 0, 0, 1920, 1080)

EndFunc

While 1
Sleep (100)
Wend

Mein Problem ist, dass lediglich WinMove funktioniert, die Style-Änderungen jedoch nicht (Titelleiste und Rahmen bleiben unverändert).
Das SW_SHOW musste ich einbauen, da nach dem Anklicken vom Taskbar Icon nichts passiert ist.

Habe ich etwas übersehen / den Befehl falsch verwendet?
MfG ExChill

SpieleHacksInfo 07/07/2013 13:03

Hm habe das Script gerade mit Skyrim versucht kp was du mit borderless window mode meinst ( fenster modus ohne ränder?) jedenfalls nach dem ich #requireadmin und den hotkey wo anders hingelegt hatte wurde das fenster einfach nur größer

KDeluxe 07/07/2013 15:59

Ich gehe mal davon aus, dass du den Fensterrahmen entfernen möchtest, dafür verwendet man $WS_POPUP und nicht $WS_DLGFRAME.

Code:

$hWnd = WinGetHandle("[CLASS:Skyrim]")
_WinAPI_SetWindowLong($hWnd, $GWL_STYLE, BitOR($WS_VISIBLE, $WS_SYSMENU, $WS_POPUP))
WinMove($hWnd, "", 0, 0)

WinMove() ändert die Auflösung des Spiels nicht, nur die Größe des "möglichen Inhalts". Alles was über die eingestellte Auflösung des Spiels geht bleibt schwarz.
Und wenn ich mich richtig erinnere kann man doch selbst im Fenstermodus nicht mit der Maus einfach aus dem Fenster gehen. Man muss es immer noch minimieren, wenn man etwas in einem anderen Fenster machen möchte. Wofür also das ganze? Kann mich natürlich auch irren, ist schon etwas länger her, dass ich Skyrim gespielt habe.

SpieleHacksInfo 07/07/2013 17:26

Das einfachste ist immer noch das "raus-tabben" Alt + Tabulator am wirksamsten bei skyrim ^^

ExChill 07/07/2013 19:05

Quote:

Originally Posted by SpieleHacksInfo (Post 23683277)
Hm habe das Script gerade mit Skyrim versucht kp was du mit borderless window mode meinst ( fenster modus ohne ränder?) jedenfalls nach dem ich #requireadmin und den hotkey wo anders hingelegt hatte wurde das fenster einfach nur größer

Ja, Fenstermodus ohne Rand, wie es bei vielen Spielen schon standardmäßig möglich ist.

Quote:

Originally Posted by KDeluxe (Post 23686427)
Ich gehe mal davon aus, dass du den Fensterrahmen entfernen möchtest, dafür verwendet man $WS_POPUP und nicht $WS_DLGFRAME.

Code:

$hWnd = WinGetHandle("[CLASS:Skyrim]")
_WinAPI_SetWindowLong($hWnd, $GWL_STYLE, BitOR($WS_VISIBLE, $WS_SYSMENU, $WS_POPUP))
WinMove($hWnd, "", 0, 0)


Vielen Dank, VISIBLE und POPUP waren die Lösung.
Funktioniert jetzt mit folgendem Code.

Code:

_WinAPI_SetWindowLong($skyrimhandle, $GWL_STYLE, BitOR($WS_VISIBLE, $WS_POPUP))
WinMove("Skyrim", "", 0, 0, 1920, 1080)

Quote:

Originally Posted by KDeluxe (Post 23686427)
WinMove() ändert die Auflösung des Spiels nicht, nur die Größe des "möglichen Inhalts". Alles was über die eingestellte Auflösung des Spiels geht bleibt schwarz.
Und wenn ich mich richtig erinnere kann man doch selbst im Fenstermodus nicht mit der Maus einfach aus dem Fenster gehen. Man muss es immer noch minimieren, wenn man etwas in einem anderen Fenster machen möchte. Wofür also das ganze? Kann mich natürlich auch irren, ist schon etwas länger her, dass ich Skyrim gespielt habe.

Man kann mit der Maus nicht raus, aber es sieht halt besser aus, wenn das Spiel trotz Fenstermodus auf dem kompletten Monitor ist.

Quote:

Originally Posted by SpieleHacksInfo (Post 23688114)
Das einfachste ist immer noch das "raus-tabben" Alt + Tabulator am wirksamsten bei skyrim ^^

Darum will ich ja im Windowed Fullscreen spielen, weils im normalen Fullscreen zu lange dauert.


All times are GMT +2. The time now is 21:21.

Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.