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

Beiträge von alpines

  • Select...EndSelect: Case-Fälle aus *.ini-Datei auslesen

    • alpines
    • 25. Mai 2017 um 23:21

    Lade die Strings die du abfragst in ein Array und geh das in einer Schleife durch.
    Sollte der String aus einem Arrayindex gefunden werden, führst du eine Aktion aus, auch basierend auf einem Array.

    Die Anzahl der Schlüssel kannst du mit IniReadSection auslesen, da kriegst du die ganze Sektion. Die Hilfe dazu ist dein Freund: https://www.autoitscript.com/autoit3/docs/f…ReadSection.htm

  • Chinesiche Zeichen

    • alpines
    • 24. Mai 2017 um 14:11

    Das liegt daran, dass die SciTE Konsole standardmäßig nur UTF-8 (vermute ich) anzeigt.

    AutoIt kommt damit gut zurecht, wenn du auf Nummer sicher gehen willst kannst du ja intern mit den Unicode-Werten arbeiten.
    ChrW gibt dir das Zeichen passend zum Unicode zurück und AscW bildet das Zeichen auf den Unicodeindex ab.

    AutoIt
    $s1 = AscW("美")
    $s2 = AscW("好")
    $s3 = AscW("的")
    $s4 = AscW("一")
    $s5 = AscW("天")
    
    
    Consolewrite($s1 & "-" & $s2 & "-" & $s3 & "-" & $s4 & "-" & $s5)
  • Automatische Tastenkombination auf bestimmtes Programm in der Taskleiste

    • alpines
    • 24. Mai 2017 um 00:05
    Zitat von Knightfire

    Auch wenn ich nur Bahnhof verstehe, probiere ich es einmal.

    So schwierig ist das auch nicht. Was das Script so im groben macht kann ich dir ja kurz beschreiben.

    Die Konstante I_IDLE_TIME bezeichnet (in ms) wie lange der PC inaktiv sein muss um die Aktion auszuführen.
    Die Konstante S_WINDOW_TITLE bezeichnet den Titel des Fensters an dem die Befehle gesendet werden sollen.
    Die Variable bWaitReset ist dafür gedacht, dass man nicht direkt nochmal in die If-Abfrage reinspringt (obwohl man sich den ganzen Krempel dafür eigentlich sparen kann).

    Danach folgt auch schon die Hauptschleife.
    _WinAPI_GetIdleTime holt die Idle-Time die Windows reported. Diese misst in ms den Zeitunterschied zwischen jetzt und der letzten Interaktion am PC.
    Die If-Abfrage ist glaube ich selbsterklärend und der Rest der danach kommt ist ja auch klar. Fenster aktivieren, Tasten senden, wieder minimieren.

    Das ist so die grobe Struktur, wenn es nicht passt, kannst du es ja noch ändern. Hilfe dafür bekommst du von uns :)

  • Automatische Tastenkombination auf bestimmtes Programm in der Taskleiste

    • alpines
    • 23. Mai 2017 um 22:29

    Wenn es wirklich so einfach ist wie du es beschrieben hast, dann könnte man das ganz so lösen.
    Das ist nur ein Ansatz, da ich nicht weiß wie die Software darauf reagiert und welche anderen Faktoren man noch alle hat aber du kannst es ja mal testen und berichten.

    AutoIt
    #include <WinAPISys.au3>
    
    
    Global Const $I_IDLE_TIME = 10 * 60 * 1000 ;10 Minuten * 60 Sekunden * 1000 Millisekunden
    Global Const $S_WINDOW_TITLE = "Titel des Programmfensters"
    
    
    Global $bWaitReset = False
    
    
    While Sleep(1000)
    	$iIdleTime = _WinAPI_GetIdleTime()
    
    
    	If $iIdleTime > $I_IDLE_TIME and Not $bWaitReset Then
    		$bWaitReset = True
    
    
    		Do
    			WinActivate($S_WINDOW_TITLE)
    			Sleep(250)
    		Until WinActive($S_WINDOW_TITLE)
    
    
    		Sleep(1000)
    
    
    		ControlSend($S_WINDOW_TITLE, "", "", "{LCTRL down}{w down}")
    		ControlSend($S_WINDOW_TITLE, "", "", "{LCTRL up}{w up}")
    
    
    		WinSetState($S_WINDOW_TITLE, "", @SW_MINIMIZE)
    	ElseIf $bWaitReset = True
    		If $iIdleTime <= 5000 Then $bWaitReset = False
    	EndIf
    WEnd
    Alles anzeigen
  • Teilstring einer Variable ab letztem Zeichen

    • alpines
    • 22. Mai 2017 um 18:51
    Zitat von Decide

    Danke für die Unterstützung an Euch drei.

    Und wie schauts nun aus?

  • brauche Hilfe bei _ArraySearch

    • alpines
    • 22. Mai 2017 um 14:18

    Vielleicht hilft dir das ja weiter:

    AutoIt
    #include <Array.au3>
    
    
    Local $a1[2] = ["Datei.txt", "File.msg"]
    Local $a2[2] = ["Datei.msc", "File.mmm"]
    Local $a3[3] = ["Datei.fgj", "Nein.msg"]
    
    
    For $i = 0 To UBound($a1) - 1
    	$sDateiName = StringTrimRight($a1[$i], 4)
    
    
    	ConsoleWrite("1. ArraySearch = " & _ArraySearch($a2, $sDateiName, 0, 0, 0, 1) & @CRLF)
    	ConsoleWrite("2. ArraySearch = " & _ArraySearch($a3, $sDateiName, 0, 0, 0, 1) & @CRLF & @CRLF)
    Next
    Alles anzeigen
  • iTunes Songname

    • alpines
    • 22. Mai 2017 um 13:36

    Super, grünen Haken setzen (für Threadstatus = gelöst) beim nächsten Mal nicht vergessen!

  • Laufwerke verbinden - Fenster friert bei Fehler ein.

    • alpines
    • 22. Mai 2017 um 13:35

    Super, dass es klappt. Hast auch vorbildlich den grünen Haken gesetzt!

    Aber noch eine kleine Bemerkung zum alten Code:

    Zitat von oliver4friends

    Sleep(5)

    In AutoIt kannst du niemals weniger als 10ms oder 20ms (abhängig vom PC glaube ich) schlafen.

  • Laufwerke verbinden - Fenster friert bei Fehler ein.

    • alpines
    • 22. Mai 2017 um 09:16
    Zitat von oliver4friends

    Wenn ich das richtig verstehe wird zuerst die Funktion (fertig) ausgeführt, und erst danach kann ich das @error abfragen.

    Richtig. Sobald du eine neue Funktion ausführst wird der Error-Wert resettet.
    Wo genau schmiert dein Script denn ab?

  • Laufwerke verbinden - Fenster friert bei Fehler ein.

    • alpines
    • 22. Mai 2017 um 08:40
    Zitat von oliver4friends

    Dim Const $drvCallError = @error

    Ich weiß nicht was diese Zeile bringen soll, aber sie ist absolut unnütz.

    Du musst wissen, das @error (wenn es überhaupt gesetzt wird), immer nach einer Funktion direkt abgefragt werden muss.
    @error wird nämlich beim Auruf JEDER neuen Funktion direkt überschrieben und der Wert ist somit ungültig. Die Variable als Konstante zu deklarieren ist obendrein noch ein weiterer Fehler.

    Also merke: Wenn du mit @error arbeiten willst, speichere den Wert nach der Ausführung der Funktion,
    die @error schmeißt (Achtung beim Funktionen verketten), in eine Variable um den Fehler im Nachhinein zu bearbeiten.

    Außerdem stehen in @error Zahlen drinne also solltest du den Vergleich mit "1" oder "2" lassen, da das nach hinten losgehen kann.

  • Dateinamen an Script übergeben

    • alpines
    • 21. Mai 2017 um 18:20
    Zitat von Schmunzel57

    eine Lösung (Sackgasse ?) besagte, dass im Win-Explorer markierte Dateien in einer Umgebungsvariablen gespeichert und ausgelesen werden können (AutoIt hat entsprechende Befehle). Aber nirgends stand, wie die Variable heisst und ob es die in Win10 noch gibt.

    Die lauten EnvGet und EnvSet. https://www.autoitscript.com/autoit3/docs/functions/EnvSet.htm

  • Dateinamen an Script übergeben

    • alpines
    • 21. Mai 2017 um 16:07

    Hast du die Vorschläge von mir und Oscar überhaupt angeguckt?

  • Sobald "U" gedrückt wird, soll eine Funktion auf Pause gemacht werden

    • alpines
    • 21. Mai 2017 um 01:14
    Zitat von Daloped

    Ich entschuldige mich. Du hast Recht! Ich habe vor "3" so schnell wie möglich zu senden, indem ich "Enter" drücke. Ich möchte sozusagen die Tasten mit anderen Tasten ersetzen. Und sobald ich "U" drücke soll die Funktion auf Pause gestellt werden. Leertaste soll die Funktion aber wieder aktivieren.

    Ja aber wohin möchtest du die Tasten senden um was zu bewerkstelligen?

  • Sobald "U" gedrückt wird, soll eine Funktion auf Pause gemacht werden

    • alpines
    • 21. Mai 2017 um 00:48
    Zitat von Daloped

    Ja, ist vermutlich besser so. Bin halt nicht so gut wie du.

    Sag mal, liest du eigentlich die Wörter die dir aus den Fingern kommen? Dein Script ist nicht lauffähig.
    Wenn du uns nicht verraten möchtest was du machen möchtest, dann brauchst du von uns auch keine Hilfe zu erwarten.

    Hier sind viele freundliche und hilfsbereite User unterwegs die alles daran setzen neuen Usern unter die Arme zu greifen, wenn sie die Arbeit zu schätzen wissen und sich nicht quer stellen.

  • Sobald "U" gedrückt wird, soll eine Funktion auf Pause gemacht werden

    • alpines
    • 21. Mai 2017 um 00:36

    Statt hier um den heißen Brei zu reden hättest du uns auch dein Problem schildern können und wir wären schon bei einer guten Lösung angekommen.
    Schade, dass du uns diese Informationen vorenthalten möchtest.

  • Sobald "U" gedrückt wird, soll eine Funktion auf Pause gemacht werden

    • alpines
    • 20. Mai 2017 um 23:48
    Zitat von Daloped

    Naja, ich hätte es wirklich so wie ich es beschrieben habe. :-c

    Ja aber wofür? Für welches Programm? Ich bin mir sicher wir können dir eine viel bessere Lösung anbieten, wenn du uns verrätst was du wo machen möchtest!

  • Sobald "U" gedrückt wird, soll eine Funktion auf Pause gemacht werden

    • alpines
    • 20. Mai 2017 um 22:47

    Was willst du denn machen? Eventuell können wir dein Problem besser lösen als mit Tastendrücke senden und Hotkeys blockieren!

  • Changelog in GUI ausgeben

    • alpines
    • 20. Mai 2017 um 16:52

    Super, und beim nächsten Mal den grünen Haken für erledigt setzen nicht vergessen! (1. Beitrag bearbeiten, Threadstatus anpassen)

  • Changelog in GUI ausgeben

    • alpines
    • 20. Mai 2017 um 15:39

    Es liegt an der Reihenfolge wie du die Controls erstellst, hättest du danach noch ein Input, so wäre das fokussiert worden.
    Ein einfacher workaround wäre wohl wenn du einfach den Diagnose-Button fokussierst ControlFocus($hGUI, "", $frmHaupt_cmdFormDiag).
    Du kannst bei ControlFocus auch den Titel mit angeben, aber es gibt viele Fenster die mit "About" beginnen, also solltest du lieber den Handle nehmen,
    welchen du von GUICreate zurückbekommst.

  • Taschenrechner Embedded

    • alpines
    • 20. Mai 2017 um 13:21
    Zitat von Oscar

    Bei allen anderen Einstellungen fehlt ein Teil des Rechners (siehe Screenshots im Anhang).

    Das hatte ich zu anfangs auch, aber nachdem ich das Script wieder gestartet hab (nachdem der Rechner in dem bereits beschriebenen Modus gestartet ist) klappte das wieder.

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™