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. raiserle

Beiträge von raiserle

  • WinActivate kein Handle

    • raiserle
    • 26. August 2014 um 19:42

    @Andy

    Danke für den Link.
    Mit der Version 3.3.8.1 funktioniert es, wie gewollt.


    vG Henrik

  • WinActivate kein Handle

    • raiserle
    • 26. August 2014 um 17:50

    In der Doku hatte ich nichts zur Kompatibilität gelesen. Also dort steht nichts ob abwärts oder nicht.

    AutoIT-Version: 3.3.0.0
    Die ist vom Dezember 2008.

    Soll ich mal updaten?!
    Aber nicht, dass die Neuste dann nicht mit meinem OS läuft.. und noch mehr BUGS hat :)


    Kann man auch mehrere Versionen von AutoIT nebeneinander laufen lassen?! Und wenn ja: Wie?

    vG Henrik

  • WinActivate kein Handle

    • raiserle
    • 26. August 2014 um 17:23

    @name22
    Danke für die Info. Das hatte ich mir schon gedacht.... dass es gehen sollte - *KOPFKRATZ* !


    @Andy
    Bitteschön! ;) AutoIT v3 Window Info: Summary:

    Spoiler anzeigen


    >>>> Window <<<<
    Title: Unbenannt - Editor
    Class: Notepad
    Position: 453, 277
    Size: 829, 604
    Style: 0x14CF0000
    ExStyle: 0x00000110
    Handle: 0x001A0BA4

    >>>> Control <<<<
    Class:
    Instance:
    ClassnameNN:
    Advanced (Class):
    ID:
    Text:
    Position:
    Size:
    ControlClick Coords:
    Style:
    ExStyle:
    Handle: 0x001B0BD2

    >>>> Mouse <<<<
    Position: 308, 15
    Cursor ID: 0
    Color: 0x989898

    >>>> StatusBar <<<<
    1:
    2: Zeile 1, Spalte 1

    >>>> Visible Text <<<<


    >>>> Hidden Text <<<<

  • WinActivate kein Handle

    • raiserle
    • 26. August 2014 um 17:12

    @name22

    Wie ich eingangs schon erwähnte, bekomme ich - egal welche WinXXX Funktion ich benutze - als Handle immer eine "1" zurück.
    Es ist auch egal, ob ich den Fenstertitel oder den Klassennamen benutze!

    Noch eine Sache, die mit aufgefallen ist:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    Example()

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

    Func Example()
    $hWnd = WinActivate( "Unbenannt - " )
    ConsoleWrite( @extended & ", hWnd=" & $hWnd & @LF )

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

    ; Close the Notepad window using the handle returned by WinWait.
    WinClose($hWnd)
    EndFunc ;==>Example

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


    Wenn ich schon ein offenes Notepad habe, wird dies in den Vordergrund geholt. Laut Doku gibt "WinActivate" das Handle zurück.
    Und wie es halt bei mir so ist: es ist wieder "1". Das Notepad wird auch nicht geschlossen.


    Vllt. könnte das mal einer verifizieren, der auch noch ein XP besitzt, ob bei Ihm der selbe Effekt auftritt.
    Wie sieht's bei den Win7(++) Nutzern aus? Funktioniert dort das Beispiel?


    vG Henrik

  • WinActivate kein Handle

    • raiserle
    • 26. August 2014 um 16:53

    @Kanashius
    Leider geht's so auch nicht. Er schließt das Fenster nicht. Das lässt wieder vermuten, dass das Handle nicht stimmt?

    Habt ihr das mal bei euch probiert? Vllt. liegt's ja auch an meinem System!? (XPSP3)

    OT: Ich habe das ganze mal unter C# mit WinAPI probiert.. dort klappt es problemlos.
    AutoIT greift doch auch auf die WinAPI zurück?! - Warum will das dort einfach nicht gelingen?


    vG Henrik

  • WinActivate kein Handle

    • raiserle
    • 26. August 2014 um 01:23

    Nein, so funktioniert es auch nicht. Deswegen hab ich die Zeile ja auskommentiert.
    Ich habe die Klasse mit Spy++ nachgeschaut und dort kommt "Edit" raus.

    Aber wie schon gesagt, auch mit

    [autoit]

    Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)

    [/autoit]

    funktioniert es nicht.

  • WinActivate kein Handle

    • raiserle
    • 26. August 2014 um 01:09
    Zitat von Andy

    Lösung

    Hallo Leute,

    ich habe ein Problem mit WinActivate, bzw mit allen ähnlichen Funktionen.
    In diesem Beispiel soll das Notepad geöffnet, aktiviert und wieder geschlossen werden.
    Leider wird es nicht geschlossen und auch bei anderen Fenster funktioniert das so nicht.

    Ich habe mal ein "ConsoleWrite" rein gepackt.... $hWnd ist zwar 1.. sollte doch aber irgendwas mit "0x00000000" raus kommen.

    Spoiler anzeigen
    [autoit]


    Example()

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

    Func Example()
    ; Run Notepad
    Run("notepad.exe")

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

    ; Wait 10 seconds for the Notepad window to appear.
    ;Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)
    Local $hWnd = WinWait("[CLASS:Edit]", "", 10)

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

    ; Activate the Notepad window using the handle returned by WinWait.
    WinActivate($hWnd)
    ConsoleWrite( @extended & ", hWnd=" & $hWnd & @LF )
    ;@extended ist 0 und $hWnd ist 1

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

    ; Close the Notepad window using the handle returned by WinWait.
    WinClose($hWnd)
    EndFunc ;==>Example

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

    Das Verhalten hab ich bei allen Fenstern, die ich versuche in den Vordergrund zu bringen.
    Was mache ich falsch?

    Kleiner Link zu einem Post, der zeigt, dass es gehen sollte.. mit dem "0x00000000"


    vG Henrik

  • GUIGetMsg in Schleife abfragen

    • raiserle
    • 27. Februar 2013 um 21:41

    Hallo autoBert,

    danke für die Hilfe. Es funktioniert mit deinem Link.
    Frage:

    Zitat

    ... solange du nicht die nötigen Vorleistungen bringst...

    Was meinst du damit? Ich denke, ich habe alles nötige gepostet. Wie die GUI aufgebaut wird, ist doch für die Frage nicht relevant - und würde den Code doch nur unnütz aufblähen. Welche Form-Elemente vorhanden sind, hatte ich doch geschrieben.

    Für den doppel-Post hatte ich mich im Chat entschuldigt. Ich habe die Mitteilung nicht gelesen. Sry.


    vG raiserle

  • GUIGetMsg in Schleife abfragen

    • raiserle
    • 26. Februar 2013 um 21:07

    Hallo Gemeinde,

    ich befasse mich erst seit kurzer Zeit mit
    AutoIT. Und nun stehe ich vor einem Problem, wo ich nicht weiß, wie ich
    es lösen kann.
    Es geht um eine GUI, die beim betätigen des Knopfes
    "Start" eine Zählschleife hoch zählt ( 0 - 9 ). Ein weiterer Knopf
    "Stop" soll die Zählschleife vorher beenden.

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

    #include <rcc_dialogs.au3> ; Dialog $btnStart und $btnStop auf Form platziert

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

    while 1
    $nMsg = GUIGetMsg( 1 )
    Switch $nMsg[ 0 ]
    Case $GUI_EVENT_CLOSE
    Switch $nMsg[ 1 ]
    Case $frmMain
    ExitLoop
    EndSwitch
    Case $btnStart
    TestA()
    Case $btnStop
    MsgBox( 0, "abbruch", "Abbruch in GUI" )
    EndSwitch
    WEnd

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

    Func TestA()
    $i = 0
    While $i < 10
    ConsoleWrite( $i & @CRLF )
    $nMsg = GUIGetMsg( 1 )
    Switch $nMsg[ 0 ]
    Case $btnStop
    MsgBox( 0, "abbruch", "Abbruch in Zählschleife" )
    ExitLoop
    EndSwitch
    Sleep( 2000 )
    $i = $i +1
    WEnd
    EndFunc

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

    Leider
    wird das Event in der Zählschleife nicht berücksichtigt. Er wird erst
    nach dem Verlassen der Zählschleife wird der Event in der GUI-Loop
    ausgelöst.

    So, nun aber zur Frage: Wie kann man das Event in der Zählschleife abfangen?


    vG raiserle

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™