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

Beiträge von HassanMullah

  • Beispiel aus _IEFormElementGetCollection in UDF Hilfe geht mit Win7 IE9 nicht

    • HassanMullah
    • 5. Juli 2012 um 13:34

    Hallo,

    ich wollte mich mal langsam mit IE.au3 beschäftigen. Zu bewerkstelligen wäre mal ein einfacher Login. Ich dachte das Google Beispiel wäre mal nicht schlecht, aber in das Suchfeld von Google wird in diesem Beispiel gar nichts eingetragen.

    Hier nochmals der Code

    [autoit]

    ; *******************************************************
    ; Example 1 - Get a reference to a specific form element by 0-based index.
    ; In this case, submit a query to the Google search engine
    ; *******************************************************

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

    #include <IE.au3>

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

    Local $oIE = _IECreate("http://www.google.com")
    Local $oForm = _IEFormGetCollection($oIE, 0)
    Local $oQuery = _IEFormElementGetCollection($oForm, 2)
    _IEFormElementSetValue($oQuery, "AutoIt IE.au3")
    _IEFormSubmit($oForm)

    [/autoit]

    Parallel gibt es auf Youtube folgendes Tutorial, welches ebenfalls nicht geht (obwohl es im Video geht)

    Teil 1
    Teil 2

    [autoit]

    #include <IE.au3>

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

    $IE = _IECreate("http://www.google.de")

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

    $Coll = _IEFormElementGetCollection($IE,0)

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

    $Obj = _IEFormElementGetObjByName($Coll,"q")

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

    _IEAction($Obj,"focus")

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

    send("youtube")

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

    $Obj = _IEFormElementGetObjByName($Coll,"btnG")

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

    _IEAction($Obj,"focus")

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

    send("{ENTER}")

    [/autoit]

    Gibt es hier Unterschiede für die verschiedenen IE Versionen ?

    Gruss Hassan

  • Suche GUI Befehl :-(

    • HassanMullah
    • 2. Juli 2012 um 11:06

    Perfekt, Danke

  • Suche GUI Befehl :-(

    • HassanMullah
    • 2. Juli 2012 um 09:52

    Hallo funkey,

    jein :)

    also das würde schon passen, aber ich suche eigentlich sowas in der Art wie bei Start - Ausführen

    [Blockierte Grafik: http://forumpics.hasenmueller.de/pics4forum_34.png]

    Hier entspricht das "Durchsuchen . . ." ja Deinem "Öffnen", aber wie bekomme ich die Zeile ob drüber erzeugt ?

    vielen Dank für die Hilfe

    Gruss Hassan

  • Suche GUI Befehl :-(

    • HassanMullah
    • 2. Juli 2012 um 09:16

    Guten Morgen,

    Montag Morgen und das Hirn arbeitet noch nicht richtig ...

    Ich suche nur einen Befehl der folgendes macht.

    Ich habe in der GUI einen Label sinngemäß: "Bitte nach Datei XYZ suchen: " (also nur ein Text Label)

    Danach soll dann der "gesuchte Befehl" kommen, also einen Knopf der eine Funktion auslöst

    Die Funktion macht dann den "FileOpenDialog" ...

    Hoffe es halbwegs klar beschrieben zu haben.

    Gruss Hassan

  • Problem mit FileGetVersion und javaw.exe

    • HassanMullah
    • 29. Juni 2012 um 16:17

    Hallo zusammen,

    habe Problem mit FileGetVersion. Woher weiss der Befehl, wo die Datei liegt ? Aus dem Path ?

    Wenn ja, warum geht dann bei mir die $ver1, aber die $ver2 nicht ?
    Bei $ver1 wird die Versionsnummer aufgelöst, bei $ver2 bekomme ich nur 0.0.0.0

    [autoit]

    Func _JREGetVersion()
    Local $ver1 = FileGetVersion("javaw.exe")
    Local $ver2 = FileGetVersion('"' & @ProgramFilesDir & "\java\jre6\bin\javaw.exe" & '"')
    MsgBox(0, "Pfad zu $ver2:",'"' & @ProgramFilesDir & "\java\jre6\bin\javaw.exe" & '"')
    MsgBox(0," Version 1", $ver1)
    MsgBox(0," Version 2", $ver2)
    EndFunc ;==>_JREGetVersion

    [/autoit]

    Gruss Hassan

    Nachtrag: Problem gefunden.

    Hier darf man im Pfad nicht Anführungszeichen setzen. Ich dachte nur dass das sicherer ist, da man ja oft C:\Program Files ... hat und man die klassische Meldung bekommt C:\Program ... nicht gefunden.

  • Wie ermittle ich aktuelle Vordergrundanwendung (die also im Focus ist)

    • HassanMullah
    • 27. Juni 2012 um 12:23
    Zitat von ohforf

    Vielleicht gehts mit _SendMessage(), einen Tastendruck an ein nicht-aktives Fenster zu senden. ?(

    Soll das eine Funktion sein ?? In der Hilfe finde ich das so nicht

  • Wie ermittle ich aktuelle Vordergrundanwendung (die also im Focus ist)

    • HassanMullah
    • 27. Juni 2012 um 10:41

    Guten Morgen,

    ich möchte gerne folgendes Problem lösen.

    Auch ich gehöre zu den leidigen Benutzern, die sich täglich mit Lotus Notes rumärgern müssen (hier wäre jetzt eigentlich schon wieder der Moment auf Dreckstool zu wechseln :) )

    Mein Hauptproblem besteht darin, das Lotus Notes nicht sauber selbstständig in allen Datenbanken (Kacheln) aktualisiert. Ich möchte jetzt gerne ein kleines Script schreiben, welches im Hintergrund läuft.

    Optimal wäre die Lösung, wenn man (wir gehen davon aus, das Lotus Notes NICHT in Focus steht) Lotus Notes ohne Focus mit F9 aktualisieren könnte, d.h. ich bleibe ich meiner eigentlichen Anwendung, und in regelmäßigen Abständen würde in Lotus Notes die F9 Taste simuliert werden, ohne das ich den Focus meiner eigentlichen Anwendung verliere. Kann sowas gehen ??

    Falls das nicht geht, sollte ich aber die momentan aktuelle Anwendung ermitteln (wie kann ich das bewerkstelligen ?). Dann könnte ich den Wert in eine Variable schreiben, zu Lotus Notes wechseln, F9 drücken und wieder in die letzte aktuelle Anwendung automatisch zurück wechseln.

    Danke vorab für die Tips

    Gruss Hassan

    P.S. ich brauche nur Stichworte für die Hilfe

  • Fehlermeldung beim Schließen des Scriptes

    • HassanMullah
    • 26. Juni 2012 um 11:35

    OK, prinzipiell mal verstanden, jedoch ist die Frage, wie ich der Blockierung auf die Schliche komme

    Am Anfang habe ich ein

    [autoit]

    $var_IE = _IECreateEmbedded()

    [/autoit]

    später ein

    [autoit]

    _IENAvigate ....

    [/autoit]

    welche in einer Schleife - je nach Variablenwert - geändert werden kann

    Ebenfall erfolgt in einer Schleife alle 20 Sekunden ein

    [autoit]

    _IEAction ...

    [/autoit]

    welches die Seite refreshed

    Gibt es vielleicht einen Befehl um die _IE Tätigkeiten zu stoppen und dann erst zu beenden ?

  • Fehlermeldung beim Schließen des Scriptes

    • HassanMullah
    • 26. Juni 2012 um 11:17

    Hallo Chip,

    in SciTE sieht die Ausgabe unten so aus:

    [Blockierte Grafik: http://forumpics.hasenmueller.de/pics4forum_33.png]

    Leider fehlt mir hier jetzt das KnowHow das zu interpretieren ?(

  • Fehlermeldung beim Schließen des Scriptes

    • HassanMullah
    • 26. Juni 2012 um 10:56

    Guten Morgen,

    ich möchte gerne mein Script sauber beenden, d.h. ich erstelle beim Starten des Scriptes im @TEMP einen Ordner und 2 Dateien, welche ich gerne auch wieder löschen würde.

    Hierzu habe ich folgenden Code geschrieben, welcher aber mit unten stehender Fehlermeldung sich beendet:

    [autoit]

    #region ; Schleifen
    While 1; Endlosschleife. Solang kein Event Close, läuft das gesamte Script.
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _IEQuit($var_IE); Browerobjekt wird geschlossen
    FileDelete(@TempDir & "\PapaControl\latitude.htm"); HTML wird aus TEMP Verzeichnis gelöscht
    FileDelete(@TempDir & "\PapaControl\mypapa.htm"); HTML wird aus TEMP Verzeichnis gelöscht
    DirRemove(@TempDir & "\PapaControl"); Verzeichnis wird im TEMP Verzeichnis gelöscht
    GUIDelete($var_GUI_main)
    Exit
    EndSwitch
    WEnd
    #endregion ; Schleifen

    [/autoit]

    [Blockierte Grafik: http://forumpics.hasenmueller.de/pics4forum_32.png]

    Was mache ich hier falsch ?

    Gruss Hassan

  • GUICtrlSetResizing Alternative für GUICreate ?? (bzw. Starten des Scriptes auf 2. Monitor)

    • HassanMullah
    • 25. Juni 2012 um 14:04

    Hallo,

    auf meinen Arbeitsplatz ist mir gerade aufgefallen, dass das Script immer auf dem Primaren Monitor startet. Kann man das eigentlich irgendwie umbiegen, dass das Script auf dem Sekundären Monitor startet ?

    Wenn nein, gibt es eine Möglichkeit, ähnlich GUICtrlSetResizing, um die "HauptGUI" in einer Schleife abzufrage und neu aufbauen zu lassen. Wenn ich die Anwendung auf dem Primären Monitor (1600 x 900 px) starte, baut er sich "vernünftig" auf, wenn ich dann die gestartet Anwendung auf den Sekundären Monitor (1280 x 1024 px) ziehe, sieht das halt ein wenig "verschoben" aus.

    [autoit]

    $GUI_main = GUICreate("Version: " & $varVersion, $varGUIWindowWidth, $varGUIWindowHeight, -1, -1, 0x01070000)

    [/autoit]

    Die Variablen werden ja beim Programmstart einmalig ausgelesen, und die GUI dann erzeugt. Welchen Ansatz kann ich hier verfolgen ??

  • Ein Script, 2 Optionen, 7 Tage ???

    • HassanMullah
    • 25. Juni 2012 um 11:12

    Hallo x0r,

    es kann ja nicht jeder Profi sein oder sich 24 Stunden am Tag mit Autoit befassen.

    Da ich in der SUFU für mich keine passende Lösung gefunden habe, wende ich ich an das Forum, um Hilfe zu erhalten.

    Das ist seit Jahr und Tag nämlich Sinn und Zweck von Foren. Sicherlich gibt es dort Leute die mehr geben als nehmen, aber wenn sich diese gleichen Leute in einem anderen Forum rumtreiben, kann das schon wieder ganz anderst aussehen, oder ??

    Von daher sind "konstruktive" Einträge vermutlich etwas sinniger.

    Danke

  • Ein Script, 2 Optionen, 7 Tage ???

    • HassanMullah
    • 25. Juni 2012 um 10:57

    Hallo zusammen,

    mein Script soll 2 verschiedene Dinge tun, was kein Problem darstellt, aber diese sollen an definierten Zeiten statt finden

    Option 1 soll laufen, wenn das Script gestartet wird (von Montag bis Donnerstag in der Zeit vor 16:55 Uhr)
    Option 2 soll laufen, wenn das Script gestartet wird (von Montag bis Donnerstag in der Zeit nach 16:55 Uhr)

    Option 1 soll auch laufen, wenn das Script gestartet wird (am Freitag in der Zeit vor 14:55 Uhr)
    Option 2 soll auch laufen, wenn das Script gestartet wird (am Freitag in der Zeit nach 14:55 Uhr)

    Das Script soll die Zeit und den Tag selbst ermitteln, d.h. nicht via Taskplaner von Windows.
    Ebenso soll von Option 1 zu Option 2 automatisch gewechselt werden, wenn das Script zwischen den Zeiten weiter läuft.

    Wie ermittle ich den Wochentag ?
    Wie prüfe ich die Uhrzeit ?

    Gruss Hassan

  • Bild von Webseite werden nicht im Label der EXE aktualisiert

    • HassanMullah
    • 22. Juni 2012 um 13:15

    Hallo zusammen,

    Ich möchte in einer EXE auf einem Label ein Bild aus dem Internet zeigen. Hierbei hat mir der Link von UEZ recht gut weiter geholfen.

    Da ich bereits einen Counter im Script habe, welche von 20 bis 1 runter zählt und dann wieder bei 20 anfängt, dachte ich, das hier eine geeignete Stelle für die Aktualisierung ist. Leider wird das Bild immer nur beim Starten der EXE vom Internet gezogen und danach nicht mehr aktualisiert.

    Hier wird das Bild vom Server geholt

    [autoit]

    _GDIPlus_Startup()
    Global $STM_SETIMAGE = 0x0172
    Global $hBmp = Load_BMP_From_Mem(InetRead("http://my.fqdn.tl/mypic.jpg"), True) ;to load an image from the net

    [/autoit][autoit]

    AdlibRegister("CountDown", 1000)

    [/autoit]

    Hier wird das Bild das erste mal eingefügt

    [autoit]

    $foto = GUICtrlCreatePic("", $varBilderMitte - 100, $varGUIWindowHeight - 200, $iWidth, $iHeight, 0x0200, 0x00000001)
    _WinAPI_DeleteObject(GUICtrlSendMsg($foto, $STM_SETIMAGE, $IMAGE_BITMAP, $hBmp))
    GUISetState()

    [/autoit]

    und hier die Funktion "Countdown"

    [autoit]

    Func CountDown()
    Static $iRest = 20
    $iRest -= 1
    If $iRest = -1 Then $iRest = 20; Counter wird wieder auf 20 gesetzt
    If $iRest = 20 Then _IEAction($IE, "refresh"); papacontrol wird refreshed
    If $iRest = 10 Then $hBmp = Load_BMP_From_Mem(InetRead("http://papacontrol.hasenmueller.de/mypapa.jpg"), True) ; wenn der Counter auf 10 ist, soll das Bild nochmals aus dem Internet in den Speicher geladen werden (hoffe ich :)
    If $iRest = 1 Then _WinAPI_DeleteObject(GUICtrlSendMsg($foto, $STM_SETIMAGE, $IMAGE_BITMAP, $hBmp)); wenn der Counter auf 1 ist, "sollte" das Bild erneuert werden, macht es aber nicht
    ;~ If $iRest = 15 Then GUICtrlSetImage($foto, $hBmp)
    ;~ If $iRest = 20 Then GUISetState(@SW_SHOW)
    GUICtrlSetData($Label01, "In " & $iRest & " Sekunden wird die Seite automatisch neu geladen")
    GUISetState()
    EndFunc ;==>CountDown

    [/autoit]

    Ich habe hier vermutlich auch ein Verständnisproblem, da ja viel Code "nur geklaut" ist und man daher nicht unbedient alles genau versteht.

    Würde mich sehr über ein paar Tips freuen.

    Gruss Hassan

  • Bilder werden nicht aktualisiert

    • HassanMullah
    • 22. Juni 2012 um 08:05
    Zitat von $var

    Ich habe zwar das Gefühl, dass ich es nicht verstehe, doch meine Intuition sagt mir, dass du GUICtrlSetImage in Zeile 6 brauchst. *>*


    Ich liebe Dein "Gefühl"

    vielen Dank, das passt

  • Bilder werden nicht aktualisiert

    • HassanMullah
    • 21. Juni 2012 um 16:52

    Hallo,

    ich erzeuge in der EXE einen Label (Bild) aus einer BMP Datei, welche im gleichen Verzeichnis wie die EXE liegt.

    [autoit]

    $foto = GUICtrlCreatePic(@ScriptDir & "\1.BMP", $varBilderMitte - 100, $varGUIWindowHeight - 200, 200, 180, 0x0200, 0x00000001)

    [/autoit]

    Da ich bereits einen anderen Label habe, der sich nach 20 Sekunden erneuert, habe ich folgendes gemacht

    [autoit]

    AdlibRegister("CountDown", 1000)

    [/autoit]

    und weiter unten

    [autoit]

    Func CountDown()
    Static $iRest = 20
    $iRest -= 1
    If $iRest = -1 Then $iRest = 20
    If $iRest = 20 Then _IEAction($IE, "refresh")
    If $iRest = 20 Then GUICtrlSetData($foto, @ScriptDir & "\1.BMP")
    GUICtrlSetData($Label01, "In " & $iRest & " Sekunden wird die Seite automatisch neu geladen")
    EndFunc ;==>CountDown

    [/autoit]

    Zeile 5 aktualisiert, Zeile 6 macht nichts, Zeile 7 aktualisiert.

    Was ist denn mein Fehler ??

    Gruss Hassan

  • Eigene Versionsnummer im kompilierter EXE ausgeben

    • HassanMullah
    • 21. Juni 2012 um 12:17

    Perfekt. Danke !!

  • Eigene Versionsnummer im kompilierter EXE ausgeben

    • HassanMullah
    • 21. Juni 2012 um 10:09

    Guten Morgen,

    wenn ich ein AI Script kompiliere, kann ich ja eine Versionsnummer erzeugen lassen, welche ich dann in den Eigenschaften der EXE sehen kann. Ist es möglich, diese Versionsnummer auch als "Info" in die GUI der komplierten EXE ausgeben zu lassen ?

    Gruss Hassan

  • Timer Funktion geht nicht

    • HassanMullah
    • 20. Juni 2012 um 14:29

    Hallo autoBert

    Gott vergelt's im Kindersegen :rock:

    Kurz, knackig, gut, geht

    vielllllllllllllllen Dank

  • Timer Funktion geht nicht

    • HassanMullah
    • 20. Juni 2012 um 13:35

    Hallo x0r,

    vielen Dank für Deine Hilfe. Wir nähern uns der Sache an :)

    Hier jetzt der aktuelle Code:

    Spoiler anzeigen
    [autoit]

    ; GUI wird erstellt
    $GUI_main = GUICreate("PapaControl", $varGUIWindowWidth, $varGUIWindowHeight, -1, -1)
    ; Timer
    $Label01 = GUICtrlCreateLabel("Noch 20 Sekunden bis Reload", 10, 20)
    ; Überschrift
    GUISetFont(20)
    $Label02 = GUICtrlCreateLabel("Wo steckt mein Papa gerade ?", $varUeberschrift, -1)
    ; Browserfenster
    $browser = GUICtrlCreateObj($IE, 10, 60, $varGUIWindowWidth - 20, $varGUIWindowHeight - 65)
    GUISetState(@SW_SHOW)
    _IENavigate($IE, @TempDir & "\latitude.htm")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    $sekunden = Round(TimerDiff($timer) / 1000, 0)
    MsgBox(0, "", $sekunden, 1)
    If $sekunden >= 20 Then
    ;hier das was du updaten willst, z.b.:
    GUICtrlSetData($Label01, "Noch " & $sekunden & " Sekunden bis Reload")
    $timer = TimerInit()
    GUISetState(@SW_SHOW)
    EndIf
    WEnd

    [/autoit]

    Die gute Nachricht: Die GUI startet. Aber folgendes passt noch nicht.

    Zum Test habe ich in Zeile 20 eine Messagebox eingebaut die von 1 bis 20 hoch zählt.

    Hier müsste der Counter gerade umgekehrt laufen, d.h. von 20 bis 1 und dann wieder bei 20 anfangen.

    Des weiteren dachte ich, das die Zeile 23 und 25 dazu führen, das Zeile 4 dann "im Sekundentakt" upgedatet wird, was aber nicht passiert.
    Was mache ich hier noch falsch, bzw. wo liegt mein Gedankenfehler ??

    Bin schon auf die Antwort gespannt :-))))))

    Gruss Hassan

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™