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

Beiträge von Code4Fun

  • Priorität von HotKeySet

    • Code4Fun
    • 11. Mai 2016 um 09:35

    Guten Morgen,

    ich möchte mir ein kleines Programm schreiben, welches nur als TrayIcon im Hintergrund läuft. Das Programm soll auf die Tastsen F1 bis F5 reagieren. Jetzt stellt sich mir aber die Frage, wie Windows Tastenbefehle priorisiert. Oft ist ja die F1 Taste in anderen Programmen mit der Hilfe gekoppelt, d.h. wie stelle ich sicher, das Windows dann "mein Hintergrund Programm" anspricht?. Eine technische Lösung wäre vermutlich eine Tastenkombination zu finden, die einmalig ist, das will ich aber aus dem Grund nicht, da ich in den Funktionen die hinter F1 bis F5 stecken nichts weiter mache, als eine dritte Anwendung in den Focus hole und dort 2 unterschiedliche weiter Tastenkombinationen drücke. Sprich ich möchte mir gerne das Leben leichter machen, indem in nur eine Taste drücke. Wäre schön, wenn mir jemand erklären kann, wie Windows hier die HotKeySet priorisiert. Danke!

  • Hauptanzeige unter Windows 10 ermitteln

    • Code4Fun
    • 4. Mai 2016 um 16:10

    Hallo,

    ich möchte gerne bei einem Multi Monitor Arbeitsplatz ( 2 oder 3 Monitore) vor dem Erstellen der GUI herausfinden, welches dieser Monitore als Hauptanzeige aktiv ist und dann die GUI zentriert auf dieser Hauptanzeige starten lassen. Leider habe ich überhaupt keine Idee, wie bzw. wo ich die Information auslesen kann, welches die Hauptanzeige ist. Lese ich das aus der Registy aus oder gibt es in Autoit eine eigene Funktion um sowas zu ermitteln?

    Vielen Dank für Eure Tips

  • Variablenübergabe klappt nicht

    • Code4Fun
    • 16. Juli 2015 um 14:30

    :rofl::klatschen::party:

  • Variablenübergabe klappt nicht

    • Code4Fun
    • 16. Juli 2015 um 12:51

    Hallo,

    anbei mal ein kleiner Schnipsel

    AutoIt
    While 1
    	$nMsg = GUIGetMsg()
    		Switch $nMsg
    			Case $GUI_EVENT_CLOSE
    				Exit
    			Case $BUTTONSUCHEN
    				$ComboBoxAuslesen = GUICtrlRead ($ComboBox)
    				MsgBox(0,"DB gewählt", $ComboBoxAuslesen)
    				_Menu($ComboBoxAuswahl)
    		EndSwitch
    WEnd
    
    
    Func _Menu($Case); Je nach Fall (Case), wird die Funktion unterschiedlich bestückt
    	MsgBox(0,"Innerhalb der Funktion",$Case)
    Endfunc
    Alles anzeigen


    In Zeile 8 wird in der Messagebox der Wert ausgegeben, welcher in der Combobox ausgewählt wurde.
    In Zeile 14 ist die Variable $Case bei der Messageboxausgabe dann leer.

    Ich dachte das ich in Zeile 9 den Variablenwert an die Funktion _Menu übergebe.

    Was mache ich denn falsch?

    Danke für die Hilfe

    Nachtrag:

    Wenn ich es so eintrage in Zeile 9, dann geht es.

    AutoIt
    While 1
    	$nMsg = GUIGetMsg()
    		Switch $nMsg
    			Case $GUI_EVENT_CLOSE
    				Exit
    			Case $BUTTONSUCHEN
    				$ComboBoxAuslesen = GUICtrlRead ($ComboBox)
    				MsgBox(0,"DB gewählt", $ComboBoxAuslesen)
    				_Menu(GUICtrlRead ($ComboBox))
    		EndSwitch
    WEnd
    Alles anzeigen

    Kann mir das bitte jemand erklären.

    Danke

  • Umlaute in Msgbox

    • Code4Fun
    • 23. März 2015 um 14:03

    Vielen Dank ihr beiden für die schicke Lösung

  • Umlaute in Msgbox

    • Code4Fun
    • 23. März 2015 um 12:39

    Hallo,

    wie kann ich den ausgelesenen Text auf UTF8 konvertieren, bevor ich ihn in der Msgbox ausgebe?

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Res_Fileversion=1
    #AutoIt3Wrapper_Run_Tidy=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <_HTML.au3>
    #include <String.au3>

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

    Local $sHTML = _HTML_GetSource("http://www.zks-abfall.de/DE/Home/homepage__node.html?__nnn=true")
    Sleep(1000)
    Local $Meldung = _StringBetween($sHTML, '<p class="MsoNormal">', '</p>'); Störmeldung auslesen
    ConsoleWrite("Meldung: " & $Meldung[0] & @CRLF)
    MsgBox(64, "ZKS Meldung:", $Meldung[0])

    [/autoit]
  • Programmabstürze monitoren?

    • Code4Fun
    • 17. März 2015 um 11:06

    Hallo Oscar,

    danke für das Script und die Belehrung. Ich werde es mal testen um zu sehen, wie es sich im Alltag macht.

  • Programmabstürze monitoren?

    • Code4Fun
    • 16. März 2015 um 16:44

    Hallo Oscar,

    die "komischen" Telefonnummern stehen ja nicht immer in einer fixen Anwendung. Mal kommen die aus Lotus Notes, mal aus Outlook, mal aus dem Internet usw...
    Von daher sollte ich möglichst offen bleiben. Ich muss die "komische" Telefonnummer auf jeden Fall mit der Maus markieren. Wenn man danach was anderes machen kann, würde ich es versuchen zu optimieren, aber dazu brauche ich ein paar Stichworte. Der ControlClick wäre hier viel zu kompliziert, weil Lync hier alles unnötig weiter versteckt.

    Wie gesagt, das ganze ist ja auch kein Beinbruch, wenn ich es nicht hinbekomme. Dann starte ich die Anwendung halt 2x am Tag, aber interessieren würde es mich schon, warum das Teil wegschmiert, bzw. wie man so einen Fehler abfangen kann.

  • Programmabstürze monitoren?

    • Code4Fun
    • 16. März 2015 um 14:37

    So, hier mal mein neues Zwischenergebnis.

    Wenn ich das Script von Hand beende, bekomme ich die Messagebox mit der Wert "1" dargestellt, d.h. das Script wird "offiziell" beendet.
    Heute ist mir das Script jetzt schon zum 2. mal abgeschmiert, jedoch wird hier KEINE Messagebox angezeigt, somit auch kein Fehlercode :(

  • Programmabstürze monitoren?

    • Code4Fun
    • 13. März 2015 um 15:39

    Danke für die schnelle Antwort. Ich habe das jetzt mal eingebaut. Jetzt heißt es abwarten. Schönes Wochenende

  • Programmabstürze monitoren?

    • Code4Fun
    • 13. März 2015 um 14:36

    Hallo, ich habe mal folgende Frage. Ich habe unten stehendes kleines Autoit Script geschrieben, mit dem ich Telefonnummern so umbaue, das ich sie in Lync sauber verwenden kann. Das ganze geht recht einfach, d.h. ich markiere die "komische" Telefonnummer, drücke F3 zum Einlesen und umbauen und F4 um es in Lync reinzukopieren und gleich loswählen lassen.

    Es kommt aber pro Tag ca. 2 bis 3 mal vor, das sich die EXE einfach beendet, ohne irgendeine Fehlermeldung. Ich merke das halt nur daran, das meine F3 und F4 Tasten plötzlich nicht mehr gehen. Mein Trayicon ist eigentlich auch noch sichtbar, sobald ich jedoch mit der Maus über das Trayicon fahre, verschwindet es.

    Was kann ich hier denn machen, damit ich solche Abstürze mitbekomme und was kann man dann dagegen machen?

    Hier mal der Code:

    Spoiler anzeigen
    [autoit]

    #include <TrayConstants.au3>

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

    HotKeySet("{F3}", "_WritePhoneNumbr")
    HotKeySet("{F4}", "_Copy2Lync")

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

    ;Tray-Menü anpassen
    Opt("TrayAutoPause", 0) ; Script will not be paused when clicking the tray icon.
    Opt("TrayOnEventMode", 1)
    Opt("TrayMenuMode", 1 + 2)
    $Version = "1.0.3"

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

    $versionitem = TrayCreateItem("Version: " & $Version)
    TrayItemSetState(-1, $TRAY_UNCHECKED)
    $exititem = TrayCreateItem("Beenden")
    TrayItemSetState(-1, $TRAY_UNCHECKED)
    TrayItemSetOnEvent(-1, "_Exit")
    TraySetState()

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

    Global $Input, $Output, $_sNumber, $_sNumber1, $_sNumber2, $_sNumber3, $_sNumber4, $_sNumber5, $_sNumber6, $iLength, $shostname

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

    While 1
    Sleep(100)
    WEnd

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

    Func _WritePhoneNumbr(); F3
    $Input = ClipPut(""); Zwischenablage leeren
    Send("^c"); Markierter Text wird in die Zwischenablage geschrieben
    $Input = ClipGet(); Zwischenablage wird in die Variable $Input ausgelesen
    If $Input = "" Then
    MsgBox(16, "STOP", "Es wurde keine Rufnummer in der Zwischenablage gefunden." & @CRLF & @CRLF & "Bitte wiederholen!", 3)
    Else
    $_sNumber = StringRegExpReplace($Input, '\(0\)', '', 1); Das erste Vorkommen von (0) wird gelöscht
    ;~ ConsoleWrite("1: " & $_sNumber & @CRLF)
    $_sNumber2 = StringRegExpReplace($_sNumber, '(-|\s|\(|\)|/|\\|–|\.)', ''); Entferne - | s | ( | ) | / | \ –
    ;~ ConsoleWrite("2: " & $_sNumber2 & @CRLF)
    $_sNumber3 = StringRegExpReplace($_sNumber2, '(\+49|049)', ''); Ersetze ein +49 oder 049 mit Leerzeichen
    ;~ ConsoleWrite("3: " & $_sNumber3 & @CRLF)
    $iLength = StringLen($_sNumber3); Bestimme die Länge des Strings
    ;~ ConsoleWrite("4: Länge = " & $iLength & @CRLF)
    If $iLength > 3 Then; Wenn der String größer 3 ist dann, gehe in die IF Schleife
    $_sNumber4 = StringLeft($_sNumber3, 1); Prüfe das 1. Zeichen von Links
    If $_sNumber4 = "0" Then; Wenn das erste Zeichen von Links eine Null ist, gehe in die IF Schleife
    ;~ ConsoleWrite("5: If ist wahr, also 0 dann: " & $_sNumber4 & @CRLF)
    $_sNumber5 = StringRegExpReplace($_sNumber3, '0', '', 1); Wenn die erste Ziffer eine Null ist, dann durch ein Leerzeichen ersetzen
    ;~ ConsoleWrite("6: " & $_sNumber5 & @CRLF)
    $_sNumber6 = ("+49" & $_sNumber5); Setze + 49 vor die Nummer
    ;~ ConsoleWrite("7: " & $_sNumber6 & @CRLF)
    Else
    ;~ ConsoleWrite("5: If ist unwahr, also nicht 0 dann: " & $_sNumber4 & @CRLF)
    ;~ ConsoleWrite("6: " & $_sNumber3 & @CRLF)
    $_sNumber6 = ("+49" & $_sNumber3); Setze + 49 vor die Nummer
    ;~ ConsoleWrite("7: " & $_sNumber6 & @CRLF)
    EndIf
    $Output = ClipPut($_sNumber6); schreibe das Ergebnis in die Zwischenablage zurück
    Else
    $Output = ClipPut($_sNumber3); schreibe das Ergebnis in die Zwischenablage zurück
    EndIf
    EndIf

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

    EndFunc ;==>_WritePhoneNumbr

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

    Func _Copy2Lync(); F4
    Send("^a"); Strg + a = alles markieren
    Send("{DELETE}"); Vorhandene Nummer wird gelöscht
    Send("^v"); Markierter Text wird aus der Zwischenablage geschrieben
    If $shostname = "DE00-FM230-L" Then; PC mit Lync Attandant 2010
    Send("{ENTER 2}"); Einfügen und Enter zum wählen
    Else; andere PCs mit Lync 2013
    Sleep(1000)
    Send("{ENTER}"); Einfügen und Enter zum wählen
    ;~ ConsoleWrite("MOLE")
    EndIf
    EndFunc ;==>_Copy2Lync

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

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

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

    Danke für eure Hilfe

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™