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

Beiträge von DOheim

  • Namen und Position der Desktopsymbole ermitteln

    • DOheim
    • 28. Januar 2015 um 13:20

    Vielen Dank Micha_he für Deine Antwort.
    Auch mit der .exe klappt es nicht.
    Ich wäre Dir sehr dankbar, wenn Du mir Deine Source zur Verfügung stellen würdest.
    Gruß
    Dieter

    So sieht das Compilierungsprotokoll aus:

    Spoiler anzeigen


    >"C:\Program Files (x86)\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /ShowGui /in "D:\AU\#Test\Test1.au3"
    +>13:06:32 Starting AutoIt3Wrapper v.14.801.2025.0 SciTE v.3.4.4.0 Keyboard:00000407 OS:WIN_7/Service Pack 1 CPU:X64 OS:X64 Environment(Language:0407)
    +> SciTEDir => C:\Program Files (x86)\AutoIt3\SciTE UserDir => C:\Users\ff\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\ff\AppData\Local\AutoIt v3\SciTE
    -> No changes made..
    >Running AU3Check (3.3.12.0) from:C:\Program Files (x86)\AutoIt3 input:D:\AU\#Test\Test1.au3
    +>13:06:34 AU3Check ended.rc:0
    >Running:(3.3.12.0):C:\Program Files (x86)\AutoIt3\aut2exe\aut2exe.exe /in "D:\AU\#Test\Test1.au3" /out "C:\Users\ff\AppData\Local\AutoIt v3\Aut2exe\~AU3nnccjqo.exe" /nopack /comp 2
    +>13:06:36 Aut2exe.exe ended.C:\Users\ff\AppData\Local\AutoIt v3\Aut2exe\~AU3nnccjqo.exe. rc:0
    +>13:06:36 Created program:D:\AU\#Test\Test1.exe
    +>13:06:36 AutoIt3Wrapper Finished.
    >Exit code: 0 Time: 5.045

  • Namen und Position der Desktopsymbole ermitteln

    • DOheim
    • 28. Januar 2015 um 11:36

    Ich möchte die Namen und Position der Desktopsymbole ermitteln.
    Das Beispiel von "owi dowi spin" am Ende von:
    Position eines Icons auf dem Desktop ermitteln
    funktioniert bei mir (Win7) nicht:

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

    #include <GuiListView.au3>
    ShowBalloonTip("Papierkorb")
    Sleep(4000)

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

    Func ShowBalloonTip($LinkName)
    If Not WinActive("Program Manager") Then WinActivate("Program Manager")
    $hwnd = ControlGetHandle("Program Manager", "", "SysListView321")
    $hwnd = HWnd($hwnd)
    WinMinimizeAll()
    For $i = 0 To _GUICtrlListView_GetItemCount($hwnd) - 1
    $xx=_GUICtrlListView_GetItemText($hwnd, $i)
    MsgBox(0,"xx",$xx)
    If _GUICtrlListView_GetItemText($hwnd, $i)=$LinkName Then
    $pos = _GUICtrlListView_GetItemPosition($hwnd, $i)
    If IsArray($pos) Then
    ToolTip("Das ist die Verknüpfung",$pos[0] + 24, $pos[1] + 27,"Hier",1,5)
    ExitLoop
    EndIf
    EndIf
    Next
    EndFunc

    [/autoit]

    Es erscheint nur:

    Was habe ich falsch gemacht?
    Vielen Dank schon mal im Voraus für eine Antwort.

  • Adressfeld des Internet Explorers auslesen

    • DOheim
    • 12. Januar 2015 um 17:22

    Recht herzlichen Dank für die Antwort!
    Die Funktion _IEPropertyGet habe ich einfach nicht erkannt.
    Das kappt ja einwandfrei für die erste IE- Registerkarte.
    Hättest Du noch eine Idee, wie man das für die aktive Registerkarte hinbekommt.
    Ich habe herumexperimentiert, aber keinen Erfolg gehabt.

  • Adressfeld des Internet Explorers auslesen

    • DOheim
    • 11. Januar 2015 um 16:17

    Ich habe mir das Beispiel für die Funktion ControlGetText aus der AutoIt-Hilfe herauskopiert und entsprechend angepasst, um das Adressfeld des Internet Explorers auszulesen. Aber das funktioniert nicht.

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

    #include <MsgBoxConstants.au3>

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

    Example()

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

    Func Example()
    ; Run Notepad
    Run("C:\Program Files\Internet Explorer\iexplore.exe")

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

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

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

    ; Set the edit control in Notepad with some text. The handle returned by WinWait is used for the "title" parameter of ControlSetText.
    ;ControlSetText($hWnd, "", "Edit1", "This is some text")
    Sleep(1000)
    ControlSetText($hWnd, "", "[ToolbarWindow322]", "This is some text")

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

    ; Retrieve the text of the edit control in Notepad. The handle returned by WinWait is used for the "title" parameter of ControlGetText.
    ;Local $sText = ControlGetText($hWnd, "", "Edit1")
    Local $sText = ControlGetText($hWnd, "", "ToolbarWindow322")

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

    ; Display the text of the edit control.
    MsgBox($MB_SYSTEMMODAL, "", "The text in Edit1 is: " & $sText)

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

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

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

    Es erscheint das Ergebnis:

    Was habe ich falsch gemacht?
    Vielen Dank schon mal für eine Antwort!

  • Aktuelles AutoIt hat andere Excel-Funktionen

    • DOheim
    • 25. September 2014 um 09:58

    Die habe ich dummerweise mit der deutschen Datei überschrieben.
    Muss ich mir neu besorgen.
    Vielen Dank für Deinen Hinweis.

    P.S.: Habe ich unter
    https://www.autoitscript.com/autoit3/docs/l…el_BookOpen.htm
    gefunden.

  • Aktuelles AutoIt hat andere Excel-Funktionen

    • DOheim
    • 25. September 2014 um 08:36

    Ich habe mir das aktuelle AutoIt heruntergeladen und installiert.
    Jetzt funktionieren alle meine Programme, in welchen Excel verwendet wir nicht mehr.
    In der Datei C:\Program Files (x86)\AutoIt3\Include\Excel.au3 steht beispielsweise nicht mehr die Funktion
    _ExcelBookOpen sondern die Funktion
    _Excel_BookOpen.
    In der aktuellen Hilfe Deutsch: 12/23/2013 (Q) ist diese aber nicht beschrieben.
    Finde ich irgendwo eine Beschreibung?
    Zunächst habe ich mir damit geholfen, dass ich die Datei C:\Program Files (x86)\AutoIt3\Include\Excel.au3 einfach gegen die alte Datei Excel.au3 ausgetauscht habe. Aber das ist natürlich sehr unbefriedigend.

    Vielen Dank schon mal für eine Antwort.

  • Error: Variable used without being declared

    • DOheim
    • 19. September 2014 um 11:07

    Nachdem ich, wie von Aspirn Junkie empfohlen, das aktuelle AutoIt und das aktuelle SciTE installiert und mein Programm mit der Stripper-Anweisung kompiliert habe, konnte ich die Stelle in meinem Programm den Fehleridentifizieren.
    Mein Programm sah so aus:

    [autoit]


    ...
    GUISetOnEvent($GUI_EVENT_MOUSEMOVE, '_MausMove') ; der Mauszeiger wurde bewegt
    ...
    Protokoll("xxxxxx")
    GUISetState()
    Protokoll("yyyyyy")
    Global $Cursor=1
    ...
    Func _MausMove()
    If $cursor=0 Then
    ...

    [/autoit]


    Wenn ich also - während GUISetState() das Fenster aufgebaut hat - bereits die Maus bewegt habe, ist das Programm unmittelbar nach Beendigung von GUISetState() nicht zu Protokoll("yyyyyy") sondern zur Funktion _MausMove() gesprungen. Da war natürlich $Cursor noch nicht definiert und If $cursor=0 hat den Fehler gebracht.

    Über den Weg von Jasfar hätte ich es bestimmt genauso gefunden. Aber so habe ich gleich mal mei AutoIt aktualisiert.
    Nochmals vielen Dank Euch beiden.

  • Error: Variable used without being declared

    • DOheim
    • 17. September 2014 um 10:32

    Lieber Aspirn Junkie und lieber Jasfar,
    ich war nach meiner Frage zwei Tage außer Haus und bedanke mich deshalb erst jetzt für Eure Antworten.
    Das werde ich jetzt alles ausprobieren.
    Recht herzlichen Dank!

  • Error: Variable used without being declared

    • DOheim
    • 15. September 2014 um 11:15

    Mein Programm hat (einschließlich Kommentaren) 1026 Zeilen.
    Unter anderem ist diese Passage enthalten:

    Protokoll("xxxxxx")
    GUISetState()
    Protokoll("yyyyyy")

    Ungefähr in 80 % der Fälle arbeitet das Programm einwandfrei. Aber eben in den restlichen 20% der Starts erscheint zunächst das mit GUISetState() zu eröffnende Fenster und dann sofort diese Fehlermeldung:

    AutoIt-Error
    Line 4680 (File "D:\AU\Desktop2\Desktop2.exe")
    Error: Variable used without being declared


    [Blockierte Grafik: http://www.autoit.de/index.php?page=Attachment&amp;attachmentID=24682&amp;h=2927f7171e4a2f175caebc76933ba5f1a791806e]

    Und in meiner Protokoll-Datei steht als letztes die Zeile "xxxxxx".

    Wie kann ich die Ursache für diesen Fehler ermitteln?
    Wie kann ich mir die Zeile 4680 ansehen?

    Vielen Dank schon mal für eine Antwort.

    Bilder

    • screenshot1.JPG
      • 10,22 kB
      • 353 × 169
  • Datei in Zwischenablage bringen

    • DOheim
    • 9. April 2014 um 09:30

    Ich habe noch etwas herumprobiert und die Lösung gefunden:

    Spoiler anzeigen
    [autoit]

    #include <ClipBoard.au3>
    $datei=@SystemDir&"\notepad.exe"
    $x=xClipboard($datei)
    _ClipBoard_SetData($x,15)
    MsgBox(0,"_ClipBoard_SetData","Jetzt Rechtsklick "&@CRLF&"auf den Desktop oder in einen Ordner, " _
    &@CRLF&"danach 'Einfügen'."&@CRLF&"Dadurch wird notepad.exe kopiert.")
    #cs -------------------------------------------------------------------------------------
    Konvertiert den $dateipfad in das Format, welches für Kontextmenü/Einfügen benötigt wird.
    #ce -------------------------------------------------------------------------------------
    Func xClipboard($dateipfad)
    Local $erg="0x1400000000000000000000000000000001000000" ; Vorspann
    Local $len= StringLen($dateipfad)
    Local $i
    For $i=1 To $len
    Local $a=Asc (StringMid($dateipfad,$i,1))
    Local $h=Hex($a,2)
    $erg=$erg&$h&"00"
    Next
    $erg=$erg&"00000000"
    Return $erg
    EndFunc

    [/autoit]
  • Datei in Zwischenablage bringen

    • DOheim
    • 6. April 2014 um 08:05

    Recht vielen Dank Micha_he, Andy und Globalhorst für Eure Antworten. Ich werde also mein Programm nach dem "Kopieren" nicht beenden, sondern den Vorschlag mit FileCopy aufgreifen.
    Recht herzlichen Dank nochmals.

  • Datei in Zwischenablage bringen

    • DOheim
    • 4. April 2014 um 13:49

    Über das Kontextmenü kann man im Ordner1 eine Datei D:\Ordner1\xxxx.txt mit "Kopieren" in die Zwischenablage bringen und danach diese über das Kontextmenü in den Ordner2 "Einfügen".
    Wie kann ich mit meinem Programm die Datei D:\Ordner1\xxxx.txt so in die Zwischenablage bringen, dass ich anschließend diese über das Kontextmenü in den Ordner2 "Einfügen" kann?
    So geht es jedenfalls nicht:

    Code
    #include <ClipBoard.au3>
    _ClipBoard_SetData("D:\Ordner1\xxxx.txt" ,$CF_HDROP)
  • Bei zweitem Fenster funktioniert "GUISetOnEvent($GUI_EVENT_PRIMARYDOWN,..." nicht

    • DOheim
    • 21. Februar 2014 um 11:51

    Recht herzlichen Dank für die ausführliche Antwort, Make Grafik,
    da muss ich mein Programm ja ganz schön umorganisieren. Es hat schließlich schon 938 Befehlszeilen, und ich wollte nur "schnell mal" das mit den Kontextmenüs ergänzen. Da hat Hänschen aber die Rechnung ohne den Wirt gemacht.
    Mit einer Zeile Deines Programms kommt mein SciTE ( und ich auch ) nicht klar. Es erscheint:

    >"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "D:\AU\#Test\Test4.au3"
    D:\AU\#Test\Test4.au3 (36) : ==> Unable to parse line.:
    ($bState) ? (GUISetState(@SW_SHOW, $hChild)) : (GUISetState(@SW_HIDE, $hChild))
    ($bState) ^ ERROR
    >Exit code: 1 Time: 0.215

    Es wäre nett, wenn Du dazu noch etwas sagen könntest.
    Aber wundere Dich bitte nicht, wenn ich darauf dann nicht gleich reagiere. Denn heute Nacht geht es ab in den Urlaub.
    Nochmals vielen Dank!
    Gruß
    Dieter

  • Bei zweitem Fenster funktioniert "GUISetOnEvent($GUI_EVENT_PRIMARYDOWN,..." nicht

    • DOheim
    • 20. Februar 2014 um 22:39

    Mein Programm erzeugt zunächst ein Fenster "zzzzzzzzzzz".
    Wenn ich dort mit der rechten Maustaste hineinklicke, erscheint ein kleine Fenster.
    Ich erwarte nun, dass die MsgBox "xxxxx" erscheint, wenn ich in das kleine Fenster mit der linken Maustaste klicke.
    Aber das funktioniert nicht. Was habe ich falsch gemacht?


    [autoit]


    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

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

    Opt('GUIOnEventMode', 1)
    $winhandle=GUICreate("zzzzzzzzzz",500 ,300,400,400)
    GUISetOnEvent($GUI_EVENT_SECONDARYUP, '_KlickRightUP')
    GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseWindow')
    GUISetState()
    WinWaitClose($winhandle)

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

    Func _CloseWindow()
    GUIDelete($winhandle)
    EndFunc

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

    Func _KlickRightUp()
    Kontextmenue()
    GUIDelete ( $winhandle)
    EndFunc

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

    Func Kontextmenue()
    $kontexthandle=GUICreate("",60,100,430,430,$WS_POPUPWINDOW )
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, '_KlickDownKon')
    GUISetState()
    WinWaitClose($kontexthandle)
    EndFunc

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

    Func _KlickDownKon()
    MsgBox(0,"xxxxx","xxxxx")
    GUIDelete ( $kontexthandle)
    EndFunc

    [/autoit]

    Nebenbei noch eine andere Frage: Wie erzeuge ich einen Spoiler? Wenn ich auf den SP-Button klicke und dann zwischen Spoiler und /spoiler
    den Programmtext kopiere entsteht zwar ein Spoiler, der wird aber nicht in der SciTE-Form dargestellt, sondern nur in schwarzer Schrift.


    Spoiler anzeigen


    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

    Opt('GUIOnEventMode', 1)
    $winhandle=GUICreate("zzzzzzzzzz",500 ,300,400,400)
    GUISetOnEvent($GUI_EVENT_SECONDARYUP, '_KlickRightUP')
    GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseWindow')
    GUISetState()
    WinWaitClose($winhandle)

    Func _CloseWindow()
    GUIDelete($winhandle)
    EndFunc

    Func _KlickRightUp()
    Kontextmenue()
    GUIDelete ( $winhandle)
    EndFunc

    Func Kontextmenue()
    $kontexthandle=GUICreate("",60,100,430,430,$WS_POPUPWINDOW )
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, '_KlickDownKon')
    GUISetState()
    WinWaitClose($kontexthandle)
    EndFunc

    Func _KlickDownKon()
    MsgBox(0,"xxxxx","xxxxx")
    GUIDelete ( $kontexthandle)
    EndFunc

  • Einmal die rechte Maustaste, das andere Mal die linke

    • DOheim
    • 11. Februar 2014 um 18:38

    Recht vielen Dank, chip und name22, für Eure schnellen Hinweise.
    Das muss ich jetzt noch einmal unter diesen Aspekten richtig durchdenken.
    Vielen Dank nochmals.
    Gruß Dieter

  • Einmal die rechte Maustaste, das andere Mal die linke

    • DOheim
    • 11. Februar 2014 um 18:05

    Wahrscheinlich bin ich mit Blindheit geschlagen.
    In der AutoIt-Hilfe steht unter GUICtrlCreateContextMenu ein Beispiel.
    Warum muss ich im Example1 auf das OK-Button mit der rechten Maustaste klicken, um das Kontextmenü anzeigen zu lassen, aber im Example2 mit der linken Maustaste auf Options oder Help?

    Vielen Dank schon mal für eine Antwort!

  • Variable used without being declared

    • DOheim
    • 27. Januar 2014 um 17:11

    Um einzugrenzen wann der Fehler kommt, habe ich ein paar Protokollier-Punkte in mein Script gesetzt. Nun tritt der Fehler nicht mehr auf. Das ist zwar unbefriedigend, aber jetzt lasse ich es einfach so.
    Vielen Dank für Eure Hinweise, lieber BigRox und YaeroxXO !

  • Variable used without being declared

    • DOheim
    • 27. Januar 2014 um 12:15

    Starte ich das Programm mittels
    "C:\Program Files (x86)\AutoIt3\AutoIt3.exe" D:\AUTOIT\xxx.au3
    funktioniert es einwandfrei.
    Kompiliere ich es jedoch und starte es,
    dann erscheint:

    AutoIt-Error
    Line 3098 (File "D:\AUTOIT\xxx.exe")
    Error: Variable used without being declared

    Dabei hat das Programm überhaupt nur 672 Zeilen.
    Ich nehme an, dass ein Vorübersetzer erst einmal alle Include-Dateien anfügt und dann in diesen der Fehler auftritt.
    Man müsste wissen, wo der Vorübersetzer das gesamte Script hinterlegt, damit man es sich ansehen kann.
    Weiß jemand einen Rat?

  • Doppelklick auf einen GUICtrlCreateLabel

    • DOheim
    • 23. Januar 2014 um 12:06

    Nochmals recht vielen Dank!!!!!
    Das ist ja ein bis aufs letzte ausgefeiltes Programm.
    Schon allein die Tatsache, dass "'HKCU\Control Panel\Mouse', 'DoubleClickSpeed'" berücksichtigt ist. Ich hätte nie gewusst, wo das steht.
    Der Explorer bei WinXP hatte sich immer für jeden Ordner die Position der Symbole im Fenster gemerkt. Das ist bei Win7 verlorengegangen. Ich habe mir ein Programm geschrieben, das den Explorer in einigen Eigenschaften simuliert und bei dem ich die Position der Symbole vorgeben kann. Das klappt auch schon, aber nur mit einfachem Klick. Man ist aber gewöhnt immer doppelt zu klicken. Und dann entsteht oftmals Unsinn.
    Ich schreibe das, damit Du weißt, für was Du Dir soviel Mühe gegeben hast. Vielen Dank nochmal.

  • Doppelklick auf einen GUICtrlCreateLabel

    • DOheim
    • 22. Januar 2014 um 19:48

    Erst einmal recht vielen Dank für heute, lieber oscar.
    Das werde ich mir morgen auf der Zunge zergehen lassen.
    Gruß
    Dieter

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™