|
You last visited: Today at 14:26
Advertisement
Fenstergröße rausfinden
Discussion on Fenstergröße rausfinden within the AutoIt forum part of the Coders Den category.
07/11/2011, 20:04
|
#16
|
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
|
Joa kann schon sein, danke für die erläuterung.. ich werd mich mal dransetzen wenn ich lust habe...
Ps: Wenn das fenster minimiert wurde ergibt $position[0] = -32000 und $position[1] ebenfalls... sonst hätt ich diese if abfrage garnciht gemacht..
PHP Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include<misc.au3>
#include<string.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("ICQ WS", 139, 84, 199, 138)
$Button1 = GUICtrlCreateButton("Save Coords ", 32, 48, 75, 25)
$Input1 = GUICtrlCreateInput("Window Title", 8, 16, 121, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $handle, $input1, $position
HotKeySet("{F1}", "resizer")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $button1
if WinExists(guictrlread($input1)) AND IsVisible($handle) Then
if isvisible($handle) = 0 Then
msgbox(16, "", "The Windows must be visible")
endif
$position = WinGetPos(guictrlread($input1))
if $position[0] AND $position[1] < 0 Then
msgbox(16, "Error", "Window must be active!")
else
msgbox(0, "ICQ WS", "X= "&$position[0]&" Y= "&$position[1]& @CRLF & _
" W= "&$position[2]&" H= "&$position[3])
endif
Else
MsgBox(16, "Not Found", "Window does not exist")
endif
EndSwitch
wend
func resizer()
$positionnew = WinGetPos(guictrlread($input1))
if not $position = iniread(@windowsdir&"\ICQWS.ini", "W", "W", "") AND iniread(@windowsdir&"\ICQWS.ini", "H", "H", "") Then
WinMove(GUICtrlRead($input1), "", $positionnew[0], $positionnew[1], $position[2], $position[3])
endif
EndFunc
Func IsVisible($handle)
If BitAnd( WinGetState(GUICtrlRead($input1)), 2 ) Then
Return true
Else
Return false
EndIf
EndFunc
Besser so?
|
|
|
07/11/2011, 20:48
|
#17
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
|
Quote:
Originally Posted by lolkop
von dem was du da geschrieben hast ergibt leider nur wenig einen sinn...
du nutzt obwohl die einzige stelle an der du $handle definiert hast, oben bei den globalen definitionen sitzt.
dh $handle ist dein gesamtes script hindurch einfach nur true...
IsVisible schaut ob das fenster mit dem handle $handle (True) sichtbar ist.
da handles iterativ vergeben werden, sollte das erste fenster welches das os öffnet (gehe mal davon aus das dies der explorer ist), das handle True (1) haben.
dein script schaut also ständig nach, ob der explorer sichtbar ist.
Falls dies der Fall ist, und IsVisible(1) True ausgibt, überprüfst du ob IsVisible(1) False ausgibt, was ja auchnicht allzuviel sinn macht.
danach kommt folgende codestelle:
Code:
if $position[0] AND $position[1] < 0 Then
msgbox(16, "Error", "Window must be active!")
[...]
leider ergibt auch dies keinen sinn.
WinGetPos bestimmt immer die aktuelle position des fensters. hierbei ist egal ob das fenster aktiv ist oder nicht.
auch deine resize funktion ist weitestgehend unbrauchbar.
Code:
func resizer()
if not $position = iniread(@windowsdir&"\ICQWS.ini", "W", "W", "") AND iniread(@windowsdir&"\ICQWS.ini", "H", "H", "") Then
WinMove(GUICtrlRead($input1), "", iniread(@windowsdir&"\ICQWS.ini", "X", "X", ""), IniRead(@windowsdir&"\ICQWS.ini", "Y", "Y", ""), Iniread(@windowsdir&"\ICQWS.ini", "W", "W", ""), Iniread(@windowsdir&"\ICQWS.ini", "H", "H", ""))
endif
EndFunc
$position ist definiert als 4 elementiges 1 dimensionales array.
--> $position wird immer 0 sein.
wenn sich dein fenster also nicht an x position 0 befindet, wird es auf die alte position zurück gesetzt.
davon abgesehen finde ich die idee ständig eine ini anzulegen viel zu umständlich.
für so etwas legt man sich variablen zum speichern der alten werte an.
|
War selbst kurz davor ihn drauf hinzuweisen, wollt es mir dann aber verkneifen, weil er gesagt hat, ich zitiere: "es klappt perfekt".
Edit: @Ludder321: Du hast trotz der vielen Tipps noch soviele unnötige Passagen und Fehler in deinem Script dass das lesen schon echt wehtut. Konzentriere dich auf das wesentliche und schmeiß nicht sinnlos irgendwelche funktionen zusammen die du gerade gelernt hast.
|
|
|
07/11/2011, 22:22
|
#18
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
leider hast du nicht wirklich die haupt fehler behoben auf die ich dich hinweisen wollte :/
hier nochmal das script wie ich es mir vorgestellt hätte:
Code:
HotKeySet("{F1}", "Resize")
Global $hwnd, $tmp[4]
GUICreate("ICQ WS", 139, 84, 199, 138)
$Button1 = GUICtrlCreateButton("Save Coords ", 32, 48, 75, 25)
$Input1 = GUICtrlCreateInput("Window Title", 8, 16, 121, 21)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $button1
$hwnd = WinGetHandle(GUICtrlRead($input1))
If Not IsVisible($hwnd) Then
MsgBox(16, "", "The Windows must be visible")
ElseIf WinExists($hwnd) Then
$pos = WinGetPos($hwnd)
For $i=0 To 3
$tmp[$i]=$pos[$i]
Next
Else
MsgBox(16, "Not Found", "Window does not exist")
EndIf
EndSwitch
WEnd
func Resize()
Local $i, $match = True, $pos = WinGetPos($hwnd)
For $i=0 To 3
If $tmp[$i]<>$pos[$i] Then $match = False
Next
If Not $match Then WinMove($hwnd, '', $tmp[0], $tmp[1], $tmp[2], $tmp[3], 1)
EndFunc
Func IsVisible($hwnd)
If BitAnd(WinGetState($hwnd), 2) Then Return true
Return false
EndFunc
|
|
|
 |
|
Similar Threads
|
[Fun]Fenstergröße auser die standarts...
11/28/2010 - Metin2 Guides & Templates - 12 Replies
Hallo e*pvper
da ich grade langweile habe """"Realse""" ich mal ein klein trick wie ihr euer metin2 Fenster anpassen könnt in der größe...
erstmal ein paar beispiele:
http://s1.directupload.net/images/101108/6nwizl4x .jpg
so nun zum tutorial:
|
[FRage]Metin fenstergröße ändern
11/24/2010 - Metin2 - 6 Replies
hi wie schon in der überschrift will ich die fenstergröße vom metin fester ändern jede gute antwrt die mich weiterbringt bekommt nen thx:handsdown:
|
Fenstergröße festlegen
05/26/2010 - GW Bots - 1 Replies
Hallo, kann man mit einem au3 script die Größe vom Guild Wars Fenster festlegen lassen?
Wenn ja wie?
Danke
|
Ip rausfinden >.>
12/25/2009 - Metin2 Private Server - 6 Replies
Kann mir einer sagen wie ich die ip von einem server rausfinde ;p?
Ich weis ausführen "netsat -n"
und dann steht die ip da
aber bei mir geht das schwarze fenster direkt wieder zu ;/
wisst ihr obsn anderren weg gibt oder wieso das so ist ?
|
Metin2 Fenstergröße ändern??
11/08/2009 - Metin2 - 21 Replies
Hey
wenn ich metin2 us spiele stört es mich immer das ich das metin2 Fenster nicht in einer kleineren auflösung als 800x600 starten kann , weil ich da ganze metin2 fenster aber auch mein firefox fenster oder andere ganz sehen will.Kann jmd es vllt einstellen das die auflösung so auf c.a. 400x200 oder auch 600x400 geht??
|
All times are GMT +1. The time now is 14:26.
|
|