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

Beiträge von Oscar

  • Schleifenabbruchmöglichkeit durch Button

    • Oscar
    • 13. Oktober 2014 um 16:27

    Schnitzel: Das stimmt so nicht! Wenn Du im OnEventMode per Button eine Funktion aufrufst, in der Du eine Endlos-Schleife laufen lässt, dann reagiert die GUI nicht auf weitere Events.

    Es ist aber generell nicht nötig in der aufgerufenen Funktion diese Schleife laufen zu lassen. Man kann den Prozess mit Run starten und dann in der eigentlichen Schleife darauf reagieren:

    Spoiler anzeigen
    [autoit]


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

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

    $win = GUICreate("Script zur Sicherung durch robocopy - ver0.1", 640, 480, -1, -1)
    GUICtrlCreateLabel("Live Ansincht", 10, 10, 710)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $btn_copy = GUICtrlCreateButton("copy", 220, 440, 75, 25)
    $btn_exit = GUICtrlCreateButton("Exit", 400, 440, 75, 25)

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

    $output_cmd = GUICtrlCreateEdit("", 10, 40, 620, 300, $ES_READONLY + $WS_VSCROLL + $WS_HSCROLL)
    $btn_cancel = GUICtrlCreateButton("Abbruch", 310, 440, 75, 25)
    GUICtrlSetState(-1, $GUI_HIDE)
    GUISetState()

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

    Global $robocopy

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

    While True
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $btn_exit, $GUI_EVENT_CLOSE
    Exit
    Case $btn_copy
    GUICtrlSetState($btn_copy, $GUI_DISABLE)
    GUICtrlSetState($btn_cancel, $GUI_SHOW)
    $robocopy = Run(@ComSpec & " /c " & "ping 127.0.0.1", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    Case $btn_cancel
    GUICtrlSetState($btn_cancel, $GUI_HIDE)
    GUICtrlSetState($btn_copy, $GUI_ENABLE)
    ProcessClose($robocopy)
    EndSwitch
    If ProcessExists($robocopy) Then
    $line = StdoutRead($robocopy)
    GUICtrlSetData($output_cmd, $line, 1)
    Else
    If BitAND(GUICtrlGetState($btn_cancel), $GUI_SHOW) Then GUICtrlSetState($btn_cancel, $GUI_HIDE)
    If BitAND(GUICtrlGetState($btn_copy), $GUI_DISABLE) Then GUICtrlSetState($btn_copy, $GUI_ENABLE)
    EndIf
    WEnd

    [/autoit]
  • Elektronik, RasPI, Transistor, Widerstand

    • Oscar
    • 13. Oktober 2014 um 14:41

    Bei einer Matrix-Schaltung wird die Tastatur zeilen-/spaltenweise von einem Mikrocontroller abgefragt.
    Dieser legt dann ein Bitmuster auf eine Spalte und fragt die jeweiligen Zeilen der Reihe nach ab.
    Du müsstest also rauskriegen, welche Spalten und Zeilen zusammen gehören und wie der Mikrocontroller diese anspricht.
    Der Emitter gehört zwar prinzipiell an GND, aber bei einer Matrix-Schaltung darfst Du die "Eingänge" der Tastatur nicht direkt (über die Dioden) mit GND verbinden.
    Außerdem fehlt ein Widerstand an der Basis des Transistors.
    Hast Du denn irgendwelche Unterlagen zu der Fernbedienung?

  • Elektronik, RasPI, Transistor, Widerstand

    • Oscar
    • 13. Oktober 2014 um 11:56

    Die Schaltung sieht schonmal sehr falsch aus! :S
    Bevor Du weiter "experimentierst" und die Transistoren damit schrottest, solltest Du erstmal das Schaltbild von der Fernbedienung ausfindig machen.
    Handelt es sich dabei um eine Tastatur mit gemeinsamer Masse oder ist das eine Matrix-Tastatur?
    Im letzteren Fall (sehr wahrscheinlich, leider) wird das mit den Transistoren sowieso nicht funktionieren.

  • GUIOnEventMode verursacht CPU Last 25% -> Bug?

    • Oscar
    • 13. Oktober 2014 um 08:53

    Die CPU-Last kommt auf jeden Fall von dem vergessenen Sleep.
    Wobei man eigentlich auch ohne die While-Schleife auskommt:

    [autoit]


    #include <GUIConstantsEx.au3>
    Opt('GUIOnEventMode', 1)

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

    $hGui = GUICreate('Test', 400, 300)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseGui')
    GUISetState()
    WinWaitClose($hGui)
    Exit

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

    Func _CloseGui()
    GUIDelete($hGui)
    EndFunc

    [/autoit]

    WinWaitClose reicht auch und läßt die CPU-Last ebenfalls unten.

  • Kommunikation Skripte untereinander

    • Oscar
    • 9. Oktober 2014 um 18:55

    Um noch einen Weg vorzuschlagen:
    m-obi hat hier: Interprozesskommunikation mal ein Beispiel zur Interprozesskommunikation mittels "NamedPipes" gepostet.

  • Video-Archiv

    • Oscar
    • 3. Oktober 2014 um 19:57

    So, zum "Tag der deutschen Einheit" gibt es eine neue Version.
    Alles weitere in Post #1. :)

  • "Schnelle Variablenbefüllung" und eindeutige Zuordnung von Checkboxen gesucht

    • Oscar
    • 30. September 2014 um 16:44

    Um mal einen anderen Weg vorzuschlagen:
    Wenn Du darauf wartest, dass das Java-Programm irgendeine Datei gespeichert hat, warum überprüfst Du dann nicht, ob die Datei existiert (FileExists)?

  • Generation Smartphone

    • Oscar
    • 29. September 2014 um 12:20

    Ok, ich bin schon "etwas" älter. Hust! :D
    In meiner Kindheit gab es das alles noch gar nicht (ja, genau: kein i-Irgendwas, keine Konsolen, keine Tabletts (außer die zum servieren ;) ), keine Computer, keine Handys, noch nichtmal drahtlose Telefone).
    Das Telefon hatte 'nen Kabel dran und eine Wählscheibe und wenn man ein Ferngespräch (alles außerhalb des Ortes) führen wollte, dann nur mit Erlaubnis der Eltern, denn das war teuer.

    Als ich dann meine Ausbildung anfing, kaufte ich mir von dem Geld meinen ersten Computer (Commodore VC20). Damals hielten mich alle für verrückt ("Was willst Du denn mit einem Computer?").
    Außer mir kannte ich auch nur Einen, der auch einen Computer besaß und das war mein Ausbilder (und nein, ich habe nichts mit Computer gelernt).
    Aber alles was mit Elektronik und Computer zu tun hatte, faszinierte mich. Ich habe dafür auch ganz schön viel Geld ausgegeben.
    Im Laufe der Jahre habe ich mir auch diverse Computer zusammengebaut. Jedenfalls bin ich seit dieser Zeit ziemlich technik-verrückt.
    Wobei die "Handymanie" (WhatsApp, FaceBook, Twitter und Co.) total an mir vorbeigegangen ist. Mein Handy (kein Smartphone) nutze ich zum gelegentlichen telefonieren und SMS schreiben.

    Aber das, was im Moment so abgeht in Sachen "Kindererziehung" finde ich absolut daneben. Da wird den Kindern sozusagen das iPhone in die Wiege gelegt.
    Es ist ja auch so einfach! Die "Kleinen" sind dann mit daddeln beschäftigt und die Eltern haben ihre Ruhe (oft genug gesehen im Bekanntenkreis). Traurig!
    Was soll aus den Kindern mal werden? Vermutlich haben wir dann in einigen Jahren die "Smartphone-Generation", die im richtigen Leben nicht mehr zurecht kommt?! :huh:

  • "Schnelle Variablenbefüllung" und eindeutige Zuordnung von Checkboxen gesucht

    • Oscar
    • 29. September 2014 um 11:44

    Statt "Send" gibt es "ControlSetText" (viel zuverlässiger).
    Und wenn Du Checkboxen setzen willst, dafür gibt es "ControlCommand".
    Die Control-Befehle sind aufgrund der Zuordnung zu dem jeweiligen Fenster/Controlelement eindeutig und funktionieren auch im Hintergrund (Fenster muss nicht nach vorn geholt werden).

  • _DownloadWithProgress

    • Oscar
    • 27. September 2014 um 15:38

    Bei dem Link kann die Dateigröße nicht ermittelt werden und das zeigt die Funktion auch an (Fehlermeldung und die Datei wird nicht heruntergeladen).
    Es ist also alles ok!?

  • _DownloadWithProgress

    • Oscar
    • 26. September 2014 um 19:30

    Dateigröße "0 Bytes" dürfte gar nicht auftreten. InetGetSize gibt einen @error aus, wenn die Dateigröße nicht ermittelt werden kann und dann startet die Funktion den Download erst gar nicht.
    Hast Du die Funktion verändert?
    Bei welcher Datei (URL) passiert das?

  • StrindMid - nur Zahlen

    • Oscar
    • 26. September 2014 um 17:08

    Die Variable $a ist ein Array. Schau Dir mal in der Hilfe an, wie man darauf zugreift.

  • _DownloadWithProgress

    • Oscar
    • 25. September 2014 um 18:19

    Ich habe eine neue Version gepostet (siehe Post #1).
    Es gibt jetzt eine MultiLanguage-Unterstützung und die Fehler sind (hoffentlich) beseitigt.

    UEZ: Vielen Dank für die tolle Progressbar! :thumbup:

  • Video-Archiv

    • Oscar
    • 24. September 2014 um 19:04

    Vielen Dank für die guten Vorschläge! :thumbup:
    Das werde ich entsprechend einbauen und dann gibt es eine neue Version. :)

  • ListView sortieren lassen vor dem ausführen von "Suche..."

    • Oscar
    • 24. September 2014 um 18:56

    Ich dachte mir schon, dass Du das Beispiel benutzt. :)
    Aber dann ist es doch einfacher, wenn Du das Suche-Listview vor dem anzeigen sortieren ("_GUICtrlListView_SimpleSort") lässt.
    Vor dem Befehl:

    [autoit]

    GUICtrlSetState($idSearchListView, $GUI_SHOW)

    [/autoit]


    setzt Du einfach folgendes ein:

    [autoit]

    _GUICtrlListView_SimpleSort($idSearchListView, True, 3)

    [/autoit]


    Dann ist das Suche-Listview entsprechend sortiert.

  • _DownloadWithProgress

    • Oscar
    • 24. September 2014 um 18:49

    @UserIsGrateful: Du kannst die UDF beliebig benutzen. Mein Name steht ja schon in den Kommentaren. Eine zusätzliche Namensnennung ist nicht erforderlich.

  • Bilder per Image ID runterladen

    • Oscar
    • 23. September 2014 um 18:55

    Und wo ist dann mal ein passendes Beispiel?
    Wieso muss man eigentlich sowas Wichtiges immer erst erfragen?

  • Bilder per Image ID runterladen

    • Oscar
    • 23. September 2014 um 18:25

    Du holst Dir mit InetRead die HTML-Seite und extrahierst die URL zu der Grafik (String-Funktionen). Anschließend mit InetGet die Grafik runterladen.

  • Eigene Variable bzw. Wert anzeigen (Button, Array)

    • Oscar
    • 23. September 2014 um 16:19

    Das funktioniert auch im MessageLoop-Modus.
    Die Rückgabe von GUIGetMsg enthält die ID des Buttons.
    So kann man auch den Inhalt des Buttons auslesen (GUICtrlRead):

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    Global $Test[3]
    GUICreate('Test')
    $Test[0] = GUICtrlCreateButton("Variable Test[0]", 10, 10)
    $Test[1] = GUICtrlCreateButton("Variable Test[1]", 10, 50)
    $Test[2] = GUICtrlCreateButton("Variable Test[2]", 10, 90)
    GUISetState()

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

    While True
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Test[0] To $Test[2]
    ConsoleWrite($msg & ' -> ' & GUICtrlRead($msg) & @CR)
    EndSwitch
    WEnd

    [/autoit]
  • _DownloadWithProgress

    • Oscar
    • 22. September 2014 um 20:05

    Ich konnte bei einem Test keine Probleme feststellen. Ein nachfolgendes erstellen eines Buttons erfolgte auf der Parent-GUI.
    Da die Download-GUI nach dem Download auch gelöscht wird, dürfte es eigentlich auch keine Probleme geben.
    Falls da jemand etwas findet, bitte melden!

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™