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

Beiträge von dost0011

  • UDF: Windows Explorer fernsteuern

    • dost0011
    • 27. November 2010 um 15:49

    Nein, bitte nicht steinigen. Das mit dem Englisch ist doch nur eine Übung.

    Jetzt hänge ich aber schon wieder an dem blöden Explorer!
    Ich kriege die Dinger jetzt nicht mehr geschlossen!

    $ret = WinClose($Handle_Explorer_links) liefern mir zwar 1 zurück. Das Ding ist aber immer noch offen.
    Selbst WinKill funktioniert nicht (steht aber schon in der Anleitung :)

    Shit. Bitte jetzt den Windows Explorer nicht über Processclose schließen...

    Und nu??? :whistling:

  • UDF: Windows Explorer fernsteuern

    • dost0011
    • 27. November 2010 um 14:38

    :rock: Jaaaaaa !

    Genauso habe ich es mir gewünscht. Leider habe ich das noch nie gelesen (arbeite eh immer mit der englischen Hilfe (Autoit3.chm) und dort habe ich sowas noch nie gefunden. Auch in der Beschreibung der Befehle findet man sowas nicht...

    Jetzt mal schauen, ob die Abstürze überhaupt noch auftrefen :)

    Was macht den Strg-T ? Bei mir vertauscht das nur 2 Zeilen. Den Sinn habe ich noch erkannt und eine Doku habe ich auch nicht gefunden (liegt aber vermutlich an mir).

    Danke.

  • UDF: Windows Explorer fernsteuern

    • dost0011
    • 27. November 2010 um 13:55

    Hallo Matthias,

    das habe ich schon hingekriegt und das funktioniert auch fehlerfrei.

    Aber es ist alles so umständlich, weil alles über den Titel und nicht über ein Handle laufen kann (zumindest weiß ich nicht wie)

    Problem 1:
    Es gibt keinen Befehl, dass ich ein Fenster mit einem bestimmten Handle aktivieren kann. Alles geht nur über den Titel.
    Also habe ich eine kleine Routine geschrieben: Get_Wintitle(Handle). Ich gebe ihr den Handle, sie gibt mir den Titel zurück.
    In diesem Fall funktioniert das aber nicht, weil ich 2 Fenster offen habe, die erst mal den gleichen Titel haben.
    Direkt nach dem Start heißen sie unter WinXP "Eigene Dateien" und unter Win7 "Bibliotheken".
    Schon das nervt. Weil es also 2 gleichnamige Fenster gibt, aktiviert autoit nun immer das letzte Fenster und nicht das zu dem Handle gehörende.

    Problem 2:
    Man kann Problem 1 stümperhaft umgehen, indem man zuerst den Explorer mit der neuen Adresse aktualisiert und erst dann den zweiten Explorer öffnet.
    Dann klappt das ganze: Links: "c:\windows" und rechts "c:\temp". (soll nur ein Beispiel sein).
    So, wenn man dann aber diese Routine "aktualisiere Explorer" mehrfach aufruft (immer mit verschiedenen Ordnern), dann stürzt irgendwann der Windows-Explorer ab. Sowohl unter WinXP als auch unter Win7. Keine Ahnung warum.

    Könnt ihr mir helfen, da ein wenig Ordnung reinzubringen? Nur das Steuern über Titel ist aufwendig und unangenehm, wenn es doch ein Handle gibt...

    Viele Grüße und Danke.

    Dateien

    Test.au3 2,1 kB – 453 Downloads
  • UDF: Windows Explorer fernsteuern

    • dost0011
    • 27. November 2010 um 11:34

    Hallo,

    Ich möchte gerne den Windows Explorer fernsteuern, um Dateien komfortabel einsortieren zu können.

    Das ganze sieht so aus:

    Es öffnen sich 2 Windows Explorer (einer linke Hälfte, einer rechte Hälfte).

    Links sind die noch einzusortierenden Dateien drin. In der unteren Bildhälfte gibt es Vorschläge, wo das ganze hinkönnte.

    Der user akzeptiert dann auf einen Vorschlag unten und rechts springt der Windowsexplorer in das vorgeschlagenen Verzeichnis.

    Das ganze auch per Drag&Drop.

    Das ganze funktioniert schon ganz toll. Jedoch habe ich dabei folgende Probleme:

    - Das ganze soll sowohl auf WinXP als auch auf Win7 lauffähig sein. Die Controlls der Explorer WinXP und Win7 unterscheiden sich wohl leicht...

    - Der Windows Explorer stützt sowohl unter WinXP als auch unter Win7 unregelmäßig ab (jeder 30. Vorgang)


    Wie komme ich vor allem bei dem 2. Problem weiter?

    Gibt es eine UDF zum Fernsteuern des Windows-Explorer. Ich glaube, dass meine Lösung zu stümperhaft programmiert ist.

    Viele Grüße

  • Bug bei CtrlsetBkcolor ???

    • dost0011
    • 13. Oktober 2010 um 20:19

    Ääffz. Jetzt habe ich meine Version 3.3.1.1 (Beta) runtergeschmissen und Version 3.3.6.1 installiert und siehe da: Es funktioniert !!!
    War wohl noch ein Bug drin :)

    @Ezzora: Kannst du mir dennoch die 3 Fragen beantworten - ich bin so neugierig und möchte dieselben Fehler nicht nochmal machen.
    Danke.

  • Bug bei CtrlsetBkcolor ???

    • dost0011
    • 13. Oktober 2010 um 19:37

    Huch !!!

    Jetzt habe ich deine Skriptänderung ausprobiert und es funktioniert nicht.
    Noch schlimmer. Ich habe meine .zip Änderungen nochmals runtergeladen und die funktionieren auch nicht. Auf einem anderen Rechner hat es exakt so funktioniert?

    Sollzustand:

    Es soll sich nach dem Startbutton immer eine komplette Zeile rot färben und dann nach einer Sekunde nach unten wandern.
    Hier auf dem Rechner verhält sich nun SetColor genauso falsch wie SetBkColor (es färbt sich lange Zeit gar nichts und dann wahllos irgendwelche Combos).
    Wie ist das bei Euch???

  • Bug bei CtrlsetBkcolor ???

    • dost0011
    • 13. Oktober 2010 um 19:24

    Vielen Dank.

    Ich hätte jetzt noch 3 Fragen:

    Was bedeutet denn "Fokus"?
    Warum gibt es einen Unterschied zwischen GUICtrlSetColor und GUICtrlSetBkColor?
    Warum reicht nicht einfach die ID ? Ich habe diese ComboBox doch nie DISABLE geschalten?

    Viele Grüße und wirklich Danke.

  • Bug bei CtrlsetBkcolor ???

    • dost0011
    • 13. Oktober 2010 um 16:34

    Ok, ok. Ich schicke euch den Wahnsinn.

    Also ihr müsst die "Motorsteuerung.au3" starten.

    Dann unten auf "Starte den Zauber..." drücken.

    Dann seht ihr, wie im Sekundentakt die Comboschrift rot eingefärbt wird und schön von oben nach unten durchläuft.

    Nun geht ihr in das Modul "Oberflaeche.au3" ganz nach unten (Func Faerbe()).

    Da kommentiert ihr den funktionierenden Teil bitte aus und nehmt drunter den nicht funktionierenden Teil rein.

    Dann das Programm neu starten und wieder "Starte den Zauber..." drücken. Und nun seht ihr mein Problem.

    Vielleicht könnt ihr mir dann noch sagen, warum man das Programm nicht mehr beenden kann, bzw. was ich machen muss, um aus dieser Schleife zu bekommen.

    (vermutlich muss ich die Func Run_All() beenden und darf diese nicht in einer Endlosschleife betreiben - wäre schön, wenn das gehen würde...)

    Vielen Dank für eure Hilfe.

    Dateien

    Problem.zip 7,74 kB – 303 Downloads
  • Bug bei CtrlsetBkcolor ???

    • dost0011
    • 12. Oktober 2010 um 17:39

    Hallo,

    ich habe ein ganz komisches Phänomen. Sourcecode zu schicken ist wieder schwierig, weil ganz viele Module und der Auftraggeber das nicht möchte.

    Dynamsiche Anzahl an Combos:

    $Combo_Befehlsauswahl1_ID[$j] = GUICtrlCreateCombo()

    Alles funktioniert einwandfrei. Die Combos werden richtig ausgelesen - alles funktioniert.

    Nun möchte die Combos einfärben.

    GUICtrlSetColor($Combo_Befehlsauswahl1_ID[$t_ebene],0xAA0000) funktioniert.

    GUICtrlSetBkColor($Combo_Befehlsauswahl1_ID[$t_ebene],0xAA0000) funktioniert nicht !!! (exakt gleiche Stelle im Code mit richtigem $Combo_Befehlsauswahl1_ID[$t_ebene])

    Wenn ich direkt nach dem GUICtrlCreateCombo() den Befehl GUICtrlSetBkColor(-1,0xAA0000) ausführe, funktioniert es ebenfalls.

    Ich verstehe es nicht. Leider. Kann mir jemand helfen?

    $Combo_Befehlsauswahl1_ID[$t_ebene] ist eine Globale Variable.

  • 2. Fenster schließt nicht

    • dost0011
    • 6. Oktober 2010 um 13:28

    Vorbildlich. Vielen Dank für die wichtigen Infos.

    Das mit der Zeile 38 war ein Fehler und müsste tatsächlich "close_einstellungen" heißen.

    Dennoch funktioniert das Skript dann nicht. Großvater sagt, dass Menüs die Anwendung blockieren bzw. anwendungsmodal sind.

    Das habe ich noch gehört oder gelesen. Wie kommt man denn an solche Infos?

    Das mit dem Programmierstil ist leider richtig - ich tue mich sehr schwer mit Variablennamen und Funktionsnamen. Aber wenn ich mal bewusst drauf achte wirds bestimmt besser...

  • 2. Fenster schließt nicht

    • dost0011
    • 6. Oktober 2010 um 11:30

    Hallo,

    vielen Dank. Dein Skript ist eleganter und vor allem: es funktioniert.

    Nun überlege ich, was ich das nächste mal (wenn ich das nächste Programm schreiben sollte) besser machen soll und ehrlich gesagt - ich weiß es immer noch nicht.

    Warum funktioniert dein Programm und meins nicht? Selbst wenn ich deinen Vorschlag mit den Globalen Variablen befolge, dann klappts immer noch nicht.

    Was mache ich konkret falsch?

    [autoit]

    #include <GUIConstants.au3>
    Opt("GUIOnEventMode",1)
    const $Windowtitle = "Test"
    Global $hGui1
    Global $hGui2
    Global $Event
    Oberflaeche()
    ; Main Loop
    while 1
    Sleep(100)
    WEnd
    Exit
    func Ende()
    Exit
    EndFunc
    func Einstellungen()
    Oberflaeche_Einstellungen()
    $Event = True
    while $Event
    Sleep(100)
    WEnd
    GUIDelete($hGUI2)
    EndFunc
    func close_einstellungen()
    $Event = False
    GUIDelete(@GUI_WinHandle)
    EndFunc
    func Oberflaeche()
    $hGUI1 = GUICreate($Windowtitle, 200,200,100,100)
    GUISetOnEvent($GUI_EVENT_CLOSE,"Ende")
    $filemenu = GUICtrlCreateMenu("&Einstellungen")
    $Menu_Einstellungen = GUICtrlCreateMenuItem("Einstellungen", $filemenu)
    GUICtrlSetOnEvent($Menu_Einstellungen,"Einstellungen")
    GUISetState()
    EndFunc
    func Oberflaeche_Einstellungen()
    $hGUI2 = GUICreate("Einstellungen",200,200)
    GUISetOnEvent($GUI_EVENT_CLOSE,"Ende")
    GUISetState()
    EndFunc

    [/autoit]
  • 2. Fenster schließt nicht

    • dost0011
    • 5. Oktober 2010 um 14:32

    Hallo,

    wahrscheinlich ist es ganz einfach, aber ich komme und komme einfach nicht drauf und schmeiß gleich meinen Rechner aus dem Fenster!!! (Aufreg...)

    Nur gut, dass es Euch gibt und ihr mir helfen könnt (Abreg...)

    Warum bekomme ich kein Event gemeldet, wenn ich versuche das 2. Fenster zu schließen. Mit GUISwitch($hGUI2) habe ich auch schon rumgespielt - bringt gar nichts.

    Also: Programm starten, Menü -> Einstellungen, neues Fenster geht auf, und dieses wieder per Kreuz zuklicken -> Geht leider nicht.

    Danke für eure Hilfe.


    [autoit]

    #include <GUIConstants.au3>
    Opt("GUIOnEventMode",1)
    const $Windowtitle = "Test"
    Oberflaeche()
    ; Main Loop
    while 1
    Sleep(100)
    WEnd
    Exit
    func Ende()
    Save_ini()
    Exit
    EndFunc
    func Einstellungen()
    Oberflaeche_Einstellungen()
    Global $Wait_for_Event = True
    while $Wait_for_Event
    Sleep(100)
    WEnd
    GUIDelete($hGUI2)
    EndFunc
    func close_einstellungen()
    $Wait_for_Event = False
    EndFunc
    func Oberflaeche()
    Global $hGUI1 = GUICreate($Windowtitle, 200,200,100,100)
    GUISetOnEvent($GUI_EVENT_CLOSE,"ENDE")

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

    Global $filemenu = GUICtrlCreateMenu("&Einstellungen")
    Global $Menu_Einstellungen = GUICtrlCreateMenuItem("Einstellungen", $filemenu)
    GUICtrlSetOnEvent($Menu_Einstellungen,"Einstellungen")

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

    GUISetState()
    EndFunc
    func Oberflaeche_Einstellungen()
    Global $hGUI2 = GUICreate("Einstellungen",200,200)
    GUISetOnEvent($GUI_EVENT_CLOSE,"Ende")

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

    GUISetState()
    EndFunc

    [/autoit]
  • GUISetEventMode und Verlassen einer Schleife

    • dost0011
    • 5. Oktober 2010 um 11:44

    Hallo,

    ich habe ein ganz einfaches Problem:

    Wie kann ich die While Schleife verlassen, wenn der User den Button gedrückt hat.

    Exitloop funktioniert ja in der Func nicht...

    Danke.

    [autoit]

    #include <GUIConstantsEx.au3>
    Opt("GUIOnEventMode",1)
    Global $cButton[3]
    GUICreate("Test",100,200)
    GUISetOnEvent($GUI_EVENT_CLOSE,"_Exit")
    $cButton[0] = GUICtrlCreateButton("Button 1",20,20)
    GUICtrlSetOnEvent(-1,"_EventHandler")
    GUISetState()
    While 1
    Sleep(100)
    WEnd
    ; Wie komme ich jetzt nach dem Button hierher???
    MsgBox(0,"","Hier würde ich gerne hinkommen")
    Exit

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

    Func _EventHandler()
    Switch @GUI_CtrlId
    Case $cButton[0]
    MsgBox(0,"","Button 1 gedrückt")
    ; wie kann ich nun die While Schleife aus dem Hauptprogramm verlassen?
    EndSwitch
    EndFunc
    Func _Exit()
    Exit
    EndFunc

    [/autoit]
  • Nutzung der inpoutx64.dll

    • dost0011
    • 4. Oktober 2010 um 23:55

    Danke für die schnelle Antwort - aber das ist 2 Schritte zu hoch für mich. Leider.

    1. Die Lib brauchst Du nur, währd die DLL kompiliert wird -> das mache ich nicht, weil ich die DLL ja schon habe, richtig?

    2. Wo soll ich denn den Treiber hwinterfacex64.sys hinkopieren, damit die automatisch verwendet wird?

    Gruß

  • Nutzung der inpoutx64.dll

    • dost0011
    • 4. Oktober 2010 um 20:40

    Hallo,

    ich habe mit Autoit eine Parallelport Anwendung geschrieben, die unter 32 Bit Windows Versionen wunderbar funktioniert.

    Dazu musste ich nur die inpout32.dll in das Programmverzeichnis kopieren und von dort aufrufen.

    Nun bin ich auf Win 7 64 Bit umgestiegen und möchte die Anwendung entsprechend anpassen.

    Es gibt eine inpoutx64.dll mit folgender Beschreibung:

    http://logix4u.net/Legacy_Ports/P…_XP_64_bit.html

    "Usage
    There are examples and usage instructions for the 32bit version here . To use the pure 64bit version, all you need to do, is to link to my new InpOutx64.DLL using InpOutx64.lib. Everything else is the same."

    Wie mache ich das denn unter Autoit? Was soll ich mit der .lib wie machen? Könnt ihr mir bitte weiterhelfen?

    Bisher hieß mein Aufruf zum Lesen:

    [autoit]

    Func Read_Port($ReadAddress)
    ;Read the port register (returns a BCD value)
    $CurrentPortStatusArray = DllCall($dllpath, "int", "Inp32", "int", dec($ReadAddress))
    $StatusToDecode = $CurrentPortStatusArray[0]
    ;convert to bit status & store in array
    Dim $BitsReadArray[9]; [0] -> [7] the decoded bits, [8] the raw BCD value
    $BitsReadArray[8] = $CurrentPortStatusArray[0]
    $CurrentBitValue = 128
    For $BitCounter = 7 To 0 Step - 1
    If $StatusToDecode >= $CurrentBitValue Then
    $BitsReadArray[$BitCounter] = 1
    $StatusToDecode = $StatusToDecode - $CurrentBitValue
    Else
    $BitsReadArray[$BitCounter] = 0
    EndIf
    $CurrentBitValue = $CurrentBitValue / 2
    Next
    ;test if good decode obtained
    If $StatusToDecode <> 0 Then
    MsgBox(0, "Decoding error", "Error in decoding port '" & $Port_Adresse & "' register '" & $ReadAddress & " status '" & $CurrentPortStatusArray[0] & "' to bits. Do not rely on the results.")
    EndIf

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

    Return $BitsReadArray
    Exit
    EndFunc ;==>ReadPortStatus

    [/autoit]

    Vielen Dank!!!

  • Dynamische Anzahl an Buttons abfragen

    • dost0011
    • 30. September 2010 um 18:46

    Hallo,

    ich versuche gerade eine GUI im OnEventModus 1 zu programmieren, wo die Anzahl der abzufragenden Buttons von diversen Eingabemöglichkeiten abhängt. Nun komme ich nicht mehr weiter und brauche eure Hilfe.

    Also:

    Ich habe n Ebenen und in jeder Ebene ein Button.

    Wenn ich den Button deklariere, dann ist die Ebene für diesen Button bekannt.

    Im OnEventModus müsste ich jetzt für jeden Button in jeder Ebene eine Func Deklarieren.

    Das kann/will ich aber nicht machen, weil es einfach zu viele Ebenen sind. (z.B. 40)

    Kann ich also für alle dynamischen Buttons nur eine gleiche Func deklarieren, in der ich versuche rauszukriegen, welcher der vielen dynamischen Buttons gedrückt wurde?

    Ich hoffe, das ist nicht zu dämlich beschrieben. Beispielcode kann ich leider keinen senden, weil viel zu groß - ausserdem tun viele Sachen noch nicht...

    Vielen Dank.

  • GUI nachträglich vergrößern OHNE Resize des Inhalts?

    • dost0011
    • 22. September 2010 um 15:17

    Danke für die Antwort.

    Mein Skript kann und möchte ich nicht posten, das ist ein Mega-Projekt.

    Aber natürlich kann ich mitteilen, welche Ctrls es gibt:

    GUIcreate, Label, CreatePic, Create Group, Create Combo, Create Button, Create Button, Create Button

    Eigentlich möchte ich meine Fenster einfach nur "unten" erweitern und oben alles unverändert lassen.

    Gruß

  • GUI nachträglich vergrößern OHNE Resize des Inhalts?

    • dost0011
    • 22. September 2010 um 13:37

    Hallo,

    ich möchte meine GUI dynamisch anpassen. D.h. Wenn ein Text zu groß wird, möchte ich die GUI vergrößern und dadurch unten noch neuen Platz bekommen.

    Kann man also eine GUI nachträglich vergrößern, ohne mit "Resize" den Inhalt hochzuskalieren?

    Vielen Dank.

  • Wo finde ich UDFs

    • dost0011
    • 8. September 2010 um 21:08

    Hallo,

    jetzt arbeite ich schon ziemlich lange mit Autoit. Alles was ich bisher gebraucht habe, habe ich selber geschrieben.

    Vermutlich war das zwar eine gute Übung aber nötig war es nicht.

    Wo finde ich UDF???

    Auch auf der Homepage von http://www.autoitscript.com finde ich diese UDFs nicht wirklich.

    Unter Downloads finden sich gerade mal ein paar wenige UDFs - trotzdem habe ich den Verdacht, dass es bereits viel mehr UDFs geben müsste.

    Bitte helft mir - auch wenn es bestimmt irgendwo steht, wo sich diese UDFs einfinden.

    Derzeit suche ich z.B. ein UDF für den Serialen Port (Com0 Port)


    Vielen Dank

  • Bug oder GuiGetMsg() will nicht wie ich will

    • dost0011
    • 4. März 2010 um 16:24

    Hallo,

    ich habe gesehen, dass der Bug schon gemeldet wurde und deshalb das Ticket geschlossen wurde.

    Was ich aber nicht verstanden habe:

    Es gibt ein Verweis auf das Ticket #376

    http://www.autoitscript.com/trac/autoit/ticket/376

    Den Status des Tickets 376 verstehe ich aber nicht. Ich verstehe das so, dass daran nicht gearbeitet wird.

    Was ist denn da der Status?

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™