Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 12:58

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Fenstergröße rausfinden

Discussion on Fenstergröße rausfinden within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Fenstergröße rausfinden

hi,

ich will mit Autoit von einem Icq Fenster die größe rausfinden und wenn sie sich verändert wieder auf die maße bringen die vor der veränderung waren...

Ich weiß nicht wie ich das jz anstellen soll, weiß jemand wie?

PHP Code:
wingethandel() 
vllt??
Ludder231 is offline  
Old 07/09/2011, 15:45   #2
 
bassbanane's Avatar
 
elite*gold: 116
Join Date: Oct 2007
Posts: 677
Received Thanks: 248
Schau dir mal diese beiden Funktionen genauer an.
Code:
WinGetPos
WinGetClientSize
bassbanane is offline  
Old 07/09/2011, 17:01   #3
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Quote:
Originally Posted by bassbanane View Post
Schau dir mal diese beiden Funktionen genauer an.
Code:
WinGetPos
WinGetClientSize
Hab ich gemacht aber er will mir die Position nicht anzeigen -.-
Ludder231 is offline  
Old 07/09/2011, 22:27   #4
 
Imaginär's Avatar
 
elite*gold: 255
Join Date: Nov 2009
Posts: 2,900
Received Thanks: 1,408
Aus der AutoIt Helpfile zu WinGetPos :

Quote:
Return Value

Success: Returns a 4-element array containing the following information:
$array[0] = X position
$array[1] = Y position
$array[2] = Width
$array[3] = Height
Nun denke nocheinmal über
Quote:
$position = WinGetPos(guictrlread($input1))
MsgBox(0, "test", $position)
nach
Imaginär is offline  
Old 07/10/2011, 12:37   #5
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Quote:
Originally Posted by _DownTime View Post
Aus der AutoIt Helpfile zu WinGetPos :



Nun denke nocheinmal über

nach

Oh mein Gott, ich bin manchmal einfach zu blöd Danke für den Tipp klappt jetzt wunderbar.
Ludder231 is offline  
Old 07/10/2011, 14:22   #6
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Neues Problem

Ich hab jetzt ein neues Problem mit einer while schleife, wenn ich mein script so starte hängt es sich bei reziser() auf wegen der while schleife, kennt jemand das Problem und weiß wie man das wegmacht? Es würde mit einer for schleife gehen aber die ist ja leider nicht endlos...

Mfg Ludder231
Ludder231 is offline  
Old 07/10/2011, 14:37   #7
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
einfach das while weglassen, sollte aufn ersten blick auch so funzen. Warum speicherst du eigentlich die pos in einer ini?
| Moep | is offline  
Old 07/10/2011, 14:52   #8
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Quote:
Originally Posted by | Moep | View Post
einfach das while weglassen, sollte aufn ersten blick auch so funzen. Warum speicherst du eigentlich die pos in einer ini?
Wenn ich die while weglasse macht er das doch nur einmal oder nicht?

Weil ich es später mit mehreren Fenstern gleichzeitig machen würde...
Ludder231 is offline  
Old 07/10/2011, 14:59   #9
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Es wird immer ausgeführt wenn button 1 gedrückt wird und die ganzen anderen if bedingungen erfüllt sind. Wenn du willst dass es immer ausgeführt wird, dann musst du die func aus der if bedingung nehmen. Wenn du willst, dass es ausgeführt wird, wenn du den button drückst und erst wieder beendet wird, wenn der button ein zweites mal gedrückt wird, dann kannst du das über einen schalter machen. z.B. so:

Code:
#include <GUIConstantsEx.au3>

Opt('MustDeclareVars', 1)
Global $Button1Switch = False,$i

Example()

Func Example()
    Local $Button_1, $msg
    GUICreate("Mein GUI Button") ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird

    Opt("GUICoordMode", 2)
    $Button_1 = GUICtrlCreateButton("button", 10, 30, 100)

    GUISetState() ; Zeigt eine Dialogbox mit 2 Buttons an

    ; Die Schleife wiederholt sich, bis der Benutzer eine Beenden-Aktion auslöst
    While 1
        $msg = GUIGetMsg()
        Select
            Case $msg = $GUI_EVENT_CLOSE
                ExitLoop
            Case $msg = $Button_1
				$Button1Switch = not $Button1Switch
		EndSelect
		If $Button1Switch then
			ToolTip($i)
			$i += 1
			EndIf
    WEnd
EndFunc   ;==>Example
| Moep | is offline  
Old 07/10/2011, 15:50   #10
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
hmm... ja so kann mans auch machen aber ich will es genau so wie mein script jz ist und es sich nicht aufhängt....Er soll es erst dann verändern wenn alle if bedingugen erfüllt sind...Vllt mach ich den ausschalter noch dazu....


Warum geht es so nicht? Es kommt immer gleich wenn man es startet: "Window does nit exists"
Ludder231 is offline  
Old 07/10/2011, 17:26   #11
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
funzt das?
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"13984199138)
$Button1 GUICtrlCreateButton("Save Coords "32487525)
$Input1 GUICtrlCreateInput("Window Title"81612121)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Opt('MustDeclareVars'1)
Global 
$Button1 False$handle$input1$position



While 1
    Local $Button1
$msg
        $msg 
GUIGetMsg()
        
Select
            
Case $msg $GUI_EVENT_CLOSE
                ExitLoop
            
Case $msg $Button1
                $Button1 
not $Button1
        EndSelect
        
If $Button1 then
            
if WinExists(guictrlread($input1)) AND IsVisible($handleThen
                
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
                
IniWrite(@windowsdir&"\ICQWS.ini""X""X"$position[0])
                
IniWrite(@windowsdir&"\ICQWS.ini""Y""Y"$position[1])
                
IniWrite(@windowsdir&"\ICQWS.ini""W""W"$position[2])
                
IniWrite(@windowsdir&"\ICQWS.ini""H""H"$position[3])
                
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
            
            EndIf
reziser()
    
WEnd

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


Func IsVisible
($handle)
  If 
BitAndWinGetState($handle), Then 
    
Return true
  
Else
    Return 
false
  
EndIf

EndFunc 
| Moep | is offline  
Old 07/10/2011, 17:51   #12
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Nee immernoch das gleiche
Wenn ich vor $button1 ein $msg= mache kommt das nciht mehr aber dann macht der keine msgbox mehr aber er macht das fenster wieder an die richtige stelle

Wenn ich wären die msgbox kommt und ich einfach nicht bestätige und den fensternamen eingebe und dann die msgbox bestätige gehgts aber erm hört dann nciht auf die msgbox mit den koordinaten zu machen...
Ludder231 is offline  
Old 07/10/2011, 19:50   #13
 
| Moep |'s Avatar
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
Sorry, aber ich versteh nicht was du uns mit deinem letzen Post sagen willst.
Probier mal dass und c&p dir das was du brauchst...

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=
$winTitle = "ICQ WS"
$Form1 = GUICreate($winTitle, 139, 84, 199, 138)
$winPos = WinGetPos($winTitle)
$Button1 = GUICtrlCreateButton("Save Coords ", 32, 48, 75, 25)
$Input1 = GUICtrlCreateInput("Window Title", 8, 16, 121, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Opt('MustDeclareVars', 1)
Global $Button1Switched = False, $handle, $input1,$winPosNew

While 1
    Local $Button1, $msg
	$msg = GUIGetMsg()
        Switch $msg
            Case $GUI_EVENT_CLOSE
                ExitLoop
            Case $Button1
                $Button1Switched = not $Button1Switched
		EndSwitch
			
        If $Button1Switched then
			$winPosNew = WinGetPos($winTitle)
			If $winPos[0] <> $winPosNew[0] Or $winPos[1] <> $winPosNew[1] Or $winPos[2] <> $winPosNew[2] Or $winPos[3] <> $winPosNew[3] Then
				WinMove($winTitle,"",$winPos[0],$winPos[1],$winPos[2],$winPos[3])
				EndIf
		EndIf
WEnd
| Moep | is offline  
Old 07/11/2011, 12:38   #14
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
Ich habs jz einfach so gemacht un es klappt perfekt...

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"13984199138)
$Button1 GUICtrlCreateButton("Save Coords "32487525)
$Input1 GUICtrlCreateInput("Window Title"81612121)
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($handleThen
                
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
                
IniWrite(@windowsdir&"\ICQWS.ini""X""X"$position[0])
                
IniWrite(@windowsdir&"\ICQWS.ini""Y""Y"$position[1])
                
IniWrite(@windowsdir&"\ICQWS.ini""W""W"$position[2])
                
IniWrite(@windowsdir&"\ICQWS.ini""H""H"$position[3])
                
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
()
    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


Func IsVisible
($handle)
  If 
BitAndWinGetState($handle), Then 
    
Return true
  
Else
    Return 
false
  
EndIf

EndFunc 
Ludder231 is offline  
Old 07/11/2011, 19:52   #15
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by Ludder231 View Post
Ich habs jz einfach so gemacht un es klappt perfekt...

von dem was du da geschrieben hast ergibt leider nur wenig einen sinn...

du nutzt
Code:
IsVisible($handle)
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.
lolkop is offline  
Reply


Similar Threads 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 12:58.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.