1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. sc4ry

Beiträge von sc4ry

  • ModernMenuRaw.au3 macht Buttons unsichtbar

    • sc4ry
    • 19. Juli 2011 um 13:56

    nein, (leider) keine errors.

  • ModernMenuRaw.au3 macht Buttons unsichtbar

    • sc4ry
    • 19. Juli 2011 um 13:14

    also, wenn ich die udf includiere, verschwinden die buttons, mit den normalen funktionen oder deiner, lasse ich sie weg, funktionieren beide.

  • ModernMenuRaw.au3 macht Buttons unsichtbar

    • sc4ry
    • 19. Juli 2011 um 07:55

    Hallo zusammen,

    ich möchte in eine Script die Button-Farbe anpassen. Sobald diese Funktion jedoch ausgeführt wird, sind die Button unsichtbar. Ich habe das Problem nun auf die ModernMenuRaw.au3 eingeschränkt und ein bsp-script erstellt, leider aber kein plan, wo der Fehler jetzt genauer liegt. Kann mir jmd helfen?

    [autoit]

    #include "O:\DropBox\AutoIT\Includes\ModernMenuRaw.au3"

    [/autoit][autoit][/autoit][autoit]

    Opt("GUIOnEventMode", 1)

    [/autoit][autoit][/autoit][autoit]

    ;~ If Not IsDeclared("GWL_EXSTYLE") Then Global Const $GWL_EXSTYLE = -20

    $WinWidth = 200

    [/autoit][autoit][/autoit][autoit]

    $SettingGUI = GUICreate("", $WinWidth, 176, @DesktopWidth / 2, 25, BitOR($WS_BORDER,$WS_POPUP,$WS_VISIBLE,$DS_SETFOREGROUND,$WS_SYSMENU), BitOR($WS_EX_OVERLAPPEDWINDOW,$WS_EX_TOPMOST,$WS_EX_TOOLWINDOW))
    WinSetOnTop($SettingGUI, "", 1)
    WinSetTrans($SettingGUI, "", 200)
    GUISetFont(7, 350, Default, "Comic Sans MS", $SettingGUI)
    GUISetState(@SW_SHOW, $SettingGUI)

    [/autoit][autoit][/autoit][autoit]

    GUICtrlCreateButton("push", 0, 0, $WinWidth, 17)
    GUICtrlSetOnEvent(-1, "Check")
    $TransButton = GUICtrlCreateButton("1", 0, 17, $WinWidth, 17)
    $OnTopButton = GUICtrlCreateButton("2", 0, 34, $WinWidth, 17)
    $VisibleButton = GUICtrlCreateButton("3", 0, 51, $WinWidth, 17)

    $WinHandle = WinGetHandle($SettingGUI)

    While 1
    Sleep(100)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func Check()
    GUICtrlSetDefColor(0xFF0000)
    GUICtrlSetColor($VisibleButton, 0x787878)
    GUICtrlSetColor($OnTopButton, 0x787878)
    EndFunc

    [/autoit]

    Dateien

    ModernMenuRaw.au3 91,26 kB – 510 Downloads
  • WinExists-Problem

    • sc4ry
    • 18. Juli 2011 um 15:24

    ja, das denke ich auch. wenn man es weiß, ist es ok, ka ob man an der array-funktion was ändern kann.

  • WinExists-Problem

    • sc4ry
    • 18. Juli 2011 um 12:59

    Fehler behoben

    [autoit]

    $WindowArray[$i][1] = Hwnd($WindowArray[$i][1])

    [/autoit]

    THX =)

  • WinExists-Problem

    • sc4ry
    • 18. Juli 2011 um 12:25

    also ich frage ja das handle ab, da liegt wohl der fehler. aber warum kann man ausgerechnet nicht in dieser funktion mit dem handle arbeiten?
    selbst so funktioniert es nicht: WinExists(WinGetTitle($WindowArray[$i][1]))

    gibt es noch eine andere möglichkeit abzufragen, ob ein fenster existiert?

    EDIT: ok, winexists nimmt natürlich das handle, grad wie folgt getestet:

    MsgBox(0, $WindowArray[$i][1], IsVisible("AutoIt 1") & @CRLF & WinExists("AutoIt 1"))

    d. h. das handle aus dem array wird nicht als solches erkannt ... aber warum?

  • WinExists-Problem

    • sc4ry
    • 18. Juli 2011 um 09:54

    nein, genau da liegt er ja nicht begraben, weshalb ich den code weggelassen habe. denn wenn das array nicht gefüllt wäre, würde consolewrite nicht ausgeführt werden. und in der ausgabe von CW sieht man, dass das handle auch korrekt übergeben wurde und auch existiert (siehe autoit info tool). im grunde muss ja nur im array ein existierendes handle stehen, was der fall ist.

    meiner meinung nach kann das problem hier nicht liegen. das handle ist im array und das fenster existiert, winexists gibt aber 0 zurück, darum wird die falsche if-anweisung ausgeführt. der fehler ist winexists, nur warum???

    [autoit]

    Func ClickWindowTitle()
    $SearchHwnd = _ArraySearch($WindowArray, $WinHandle)
    If $SearchHwnd = -1 Then
    _Array2DAdd($WindowArray, $WinTitle & "|" & $WinHandle)
    ConsoleWrite(@CRLF & "Window added: " & $WinHandle & @CRLF)
    Else
    ;~ If $WindowArray[$SearchHwnd][1] <> "" Then
    _Array2DDelete($WindowArray, $SearchHwnd)
    ;~ Else
    ;~ _Array2DInsert($WindowArray, $WinTitle, $SearchHwnd)
    ;~ EndIf
    EndIf
    $WindowArray[0][0] = UBound($WindowArray) - 1
    ;~ _ArrayDisplay($WindowArray)
    EndFunc

    [/autoit]
  • WinExists-Problem

    • sc4ry
    • 18. Juli 2011 um 08:14

    Hallo zusammen,

    ich weiß grad nicht, wo der Fehler ist. Ich lasse beim Klick ein Window-Handle in 1 Array schreiben und möchte später prüfen, ob dieses Handle/ Fenster noch existiert. Bei dieser Prüfung kommt jedoch stehts 0 raus.

    Das adden ins Array funktioniert einwandfrei, da er auch sonst nicht in die Prüfung springen würde. Aber weder mit Handle noch mit dem Title wird das Fenster gefunden, obwohl es da ist. Wer kann mir helfen?

    Anbei der Code und 1 Screen als Proof.

    [autoit]

    If $WindowArray[0][0] > 0 Then
    For $i = $WindowArray[0][0] To 1 Step -1
    If WinExists($WindowArray[$i][1]) Then
    If $WindowArray[$i][1] <> WinGetTitle($WindowArray[$i][1]) Then WinSetTitle($WindowArray[$i][1], "", $WindowArray[$i][0])
    Else
    $test = $WindowArray[$i][1]
    ConsoleWrite($WindowArray[$i][1] & @TAB & WinExists($test) & @TAB & WinExists(WinGetTitle($test)) & @CRLF)
    _ArrayDelete($WindowArray, $i)
    $WindowArray[0][0] = UBound($WindowArray) - 1
    EndIf
    Next
    EndIf

    [/autoit]

    Ergebnis:

    [autoit]

    Window added: 0x0014085C
    0x0014085C 0 0

    [/autoit]

    Das Window added kommt aus der besagten Funktion, in der das Handle zum Array zugefügt wird. Das passiert immer, da ConsoleWrite ja nur dann angezeigt wird, wenn das Handle wieder aus dem Array gelöscht wird.

    Dateien

    Unbenannt.JPG 110,41 kB – 0 Downloads
  • Scrollbalken von Gui mit variabler Anzahl an Buttons

    • sc4ry
    • 17. Juli 2011 um 22:06

    hi,

    thx für den tip, ich habs aber dann doch net hinbekommen und mir eine alternative überlegt.
    ich hab quasi das array um die fenster bereinigt, die nicht angezeigt werden und dann das fenster direkt in der größe erstellt, dass alle buttons reinpassen. mit winmove hats immer die koordinaten zerhauen.

    ich denke das sollte auch iO sein, es sein denn, einer hat soviele fenster, dass das fenster größer wird, als der desktop ... das wäre natürlich dann doof ;)

    [autoit]

    $Windows = WinList()
    For $i = $Windows[0][0] To 1 Step -1
    If $Windows[$i][0] = "" Or WinGetState($Windows[$i][0]) < 5 Or Not IsVisible($Windows[$i][1]) Then
    _ArrayDelete($Windows, $i)
    Else
    ConsoleWrite($Windows[$i][0] & @TAB & WinGetState($Windows[$i][0]) & @CRLF)
    EndIf
    Next
    $Windows[0][0] = UBound($Windows) - 1
    $WindowGUI = GUICreate($Title & " Windows", $WinWidth, 20 * $Windows[0][0], @DesktopWidth / 2 + $WinWidth + 7, 0, BitOR($WS_BORDER,$WS_POPUP,$WS_VISIBLE,$DS_SETFOREGROUND,$WS_SYSMENU), BitOR($WS_EX_OVERLAPPEDWINDOW,$WS_EX_TOPMOST,$WS_EX_TOOLWINDOW), $MainGui)
    GUISetOnEvent($GUI_EVENT_CLOSE, "WindowESC", $WindowGUI)
    WinSetOnTop($WindowGUI, "", 1)
    WinSetTrans($WindowGUI, "", $WinTransActive)
    WinSetTrans($MainGUI, "", $WinTransActive)
    GUISetFont(7, 350, Default, "Comic Sans MS", $WindowGUI)
    For $i = 1 To $Windows[0][0]
    GUICtrlCreateButton($Windows[$i][0], 0, 20 * ($i - 1), $WinWidth, 17)
    GUICtrlSetOnEvent(-1, "ChangeFocusWindows")
    Next
    GUISetState(@SW_SHOW, $WindowGUI)

    [/autoit]
  • Scrollbalken von Gui mit variabler Anzahl an Buttons

    • sc4ry
    • 17. Juli 2011 um 15:06

    Hallo zusammen,

    ich möchte in einem GUI mit fester Größe, eine variable Anzahl an Buttons anzeigen. Im Fenster wird einen vertikale Scrollleiste angezeigt, das Fenster lässt sich aber trotzdem nicht scrollen, obwohl noch Buttons ausgeblendet sein müssten.

    Was mache ich faslch?

    [autoit]

    $WinWidth = 200
    $WindowGUI = GUICreate($Title & " Windows", $WinWidth +17, 176 + 25, @DesktopWidth / 2 + $WinWidth + 7, 0, BitOR($WS_BORDER,$WS_POPUP,$WS_VISIBLE,$DS_SETFOREGROUND,$WS_SYSMENU, $WS_VSCROLL), BitOR($WS_EX_OVERLAPPEDWINDOW,$WS_EX_TOPMOST,$WS_EX_TOOLWINDOW))
    GUISetOnEvent($GUI_EVENT_CLOSE, "SettingESC", $WindowGUI)
    WinSetOnTop($WindowGUI, "", 1)
    WinSetTrans($WindowGUI, "", $WinTransActive)
    GUISetFont(7, 350, Default, "Comic Sans MS", $WindowGUI)
    GUISetState(@SW_SHOW, $WindowGUI)

    [/autoit][autoit][/autoit][autoit]

    $Windows = WinList()
    $top = 0
    For $i = 1 To $Windows[0][0]
    If $Windows[$i][0] <> "" And WinGetState($Windows[$i][0]) > 5 And IsVisible($Windows[$i][1]) Then
    GUICtrlCreateButton($Windows[$i][0], 0, $top, $WinWidth, 17)
    ConsoleWrite($Windows[$i][0] & @TAB & WinGetState($Windows[$i][0]) & @TAB & $top & @CRLF)
    $top += 20
    EndIf
    Next

    [/autoit]
  • "Aktives" Fenster erhalten, bei Klick auf eigene GUI

    • sc4ry
    • 16. Juli 2011 um 17:33

    hi,

    meine derzeitige lösung haben im verlinkten thread gepostet, falls es jmd braucht/ interessiert.

  • Maus über Gui/ Button

    • sc4ry
    • 16. Juli 2011 um 17:32

    Hi,

    folgende Lösung funzt bei mir bis jetzt perfekt, danke für eure hilfe.

    [autoit]

    While 1
    $Info = GUIGetCursorInfo($MainGUI)
    If $Info[4] = 3 And WinGetState($Title) = 5 Then
    $WinHandleOld = $WinHandle
    $WinHandle = WinGetHandle("[active]")
    If $WinHandle = WinGetHandle($MainGUI) Then
    $WinHandle = $WinHandleOld
    EndIf
    ConsoleWrite($Info[4]&" "&WinGetTitle($WinHandle)&" "&@CRLF)
    EndIf
    Sleep(100)
    WEnd

    [/autoit]
  • Mausrad als Eingabe nutzen

    • sc4ry
    • 15. Juli 2011 um 12:40

    hmm, peinlich, aber ich muss sagen, es funktioniert schon so (wenn das fenster/ der slider aktiv ist). komisch, gestern hab ich das eigentlich getestet, vllt hatte ich vorher nicht ins fenster reingeklickt. thx trotzdem, fürs nächste mal ;)

  • Gui/Input mit ESC/Enter schließen

    • sc4ry
    • 15. Juli 2011 um 09:48

    hmm, bin damit doch nicht zurecht gekommen und hab dann kurzerhand doch die hotkey.au3 genommen.

    [autoit]

    Title: Management of Hotkeys UDF Library for AutoIt3
    Filename: HotKey.au3
    Description: Sets a hot key that calls a user function
    Author: Yashied
    Version: 1.6

    [/autoit]
  • Mausrad als Eingabe nutzen

    • sc4ry
    • 15. Juli 2011 um 08:22

    Hallo,

    in der Suche habe ich grad nichts entsprechendes gefunden, in der hilfe leider auch nicht. kann man das mausrad als eingabe-methode nutzen?
    ich habe derzeit ein fenster mit einem slider, damit verändere ich die transparenz eines fensters. nun würde ich das ganze etweder nur, oder optional, direkt mit dem mausrad machen können.

    also slider(-fenster) öffnen, maus über slider und dann drehen (slider und transparenz verändern sich entsprechend). wie müsste ich hier vorgehen?

  • Gui/Input mit ESC/Enter schließen

    • sc4ry
    • 15. Juli 2011 um 08:18

    besten dank euch beiden für die tips. hatte es schon nach haukes methode probiert, was auch funktioniert, aber das andere gefällt mir noch besser. jetzt wo du es sagst, hab ich doch glatt schonmal davon gehört ... ich glaub das ist, was ich suche, besten dank =)

  • Gui/Input mit ESC/Enter schließen

    • sc4ry
    • 14. Juli 2011 um 14:34

    thx für den tip. naja, esc funzt natürlich nicht "automatisch", nur wenn ich es explizit hinzufüge, aber das hab ich nun gemacht (GUISetOnEvent($GUI_EVENT_CLOSE, "RenameESC", $RenameGUI)) ;)

    mit Enter hab ich noch nicht ganz verstanden. es geht hier um ein popup, dass nur ein input-feld hat, keine buttons!?

  • Gui/Input mit ESC/Enter schließen

    • sc4ry
    • 14. Juli 2011 um 14:07

    hotkeys sind ja systemweit. ok, ich kenne auch die fenster-gebundenen, aber es muss doch eine rückmeldung geben, die ich abfangen und verwerten kann.

  • Gui/Input mit ESC/Enter schließen

    • sc4ry
    • 14. Juli 2011 um 13:55

    Hallo zusammen,

    ich habe mehrere Fenster und nutze den OnEventMode. Wenn ich auf einen Button klicke, öffnet sich folgendes Fenster:

    [autoit]

    $RenameGUI = GUICreate($Title & " Rename", $WinWidth, 17, @DesktopWidth / 2 + $WinWidth +5 , 25, BitOR($WS_BORDER,$WS_POPUP,$WS_VISIBLE,$DS_SETFOREGROUND,$WS_SYSMENU), BitOR($WS_EX_OVERLAPPEDWINDOW,$WS_EX_TOPMOST,$WS_EX_TOOLWINDOW), $MainGui)
    GUICtrlCreateInput($Wintitle, 0, 0, $WinWidth, 17, BitOR($ES_WANTRETURN, $ES_LEFT, $ES_AUTOHSCROLL))
    GUISetState(@SW_SHOW, $RenameGUI)

    [/autoit]

    Per klick auf den Button schließt sich das Fenster wieder (GUIDelete). Es soll aber ebenfalls geschlossen werden, wenn der User ENTER oder ESC in diesem Fenster drückt. Ich komm einfach nicht drauf, wie man das umsetzt oO

  • Array mit mehr als 2 Spalten

    • sc4ry
    • 13. Juli 2011 um 13:50

    Hi, dank euch.

    was ist denn 3D oO

    also ich glaube, 2D reicht mir, wobei ich grad dran arbeite, wie ich dort einträge hinzufüge, mit _ArrayAdd. Geht das Überhaupt? Was ist die Alternative, ReDim und ???

    PS: Ah, jetzt kommt _Array2DAdd zum einsatz ;)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™