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

Beiträge von shietegal

  • Textmacros, suchen/ersetzen wie bei Autohotkey

    • shietegal
    • 31. März 2014 um 18:39
    Zitat von BugFix

    [quote='shietegal','index.php?page=Thread&postID=357966#post357966']Das Problem ist einfach, wie trenne ich die schwarzen von den weissen Schafen? ;)

    Bei allen Sachen, die sowohl gut als auch böse genutzt werden können: Gar nicht?
    (....Nein, ich erkläre nicht wie du deine Messer schärfen kannst, sonst bringst Du noch Jemand mit dem Messer um....)
    Ich habe Verständnis für Zensur wenn ganz klar ist, das es nur um eine böse Nutzung gehen kann. Im Zweifel für den Fragenden.
    Das wird aber jetzt heftig Off Topic.

    Noch einmal danke für die Hilfe, MISTERSPEED schulde ich auch Dank - er hat mir gerade in dem Moment einen Link gepostet wie ich diesen auch gefunden habe.

    Jetzt habe ich aber festgestellt: Gibt es unter Autoit keine Textausgabe, welche nicht mit MsgBox passiert? Das Hotstring-Script arbeitet so:
    [...]
    HotStringSet ("sgdh" , "_teststart1" ) ; Hier die Funktionen und den HotString definieren.
    While 1
    Sleep(1000) ; Wie bei HotKeySet auch, eine While um
    WEnd ; das Script am Leben zu erhalten.

    Func _teststart1 () ; Die Funktion, die aufgerufen wird wenn man, wie im Beispiel hier z.B. "sgdh", irgendwo eingibt.

    MsgBox (0, "Test", "Sehr geehrte Damen und Herren")
    Exit
    EndFunc
    [...]

    Damit kann ich jetzt in eine Messagebox schreiben, ich müsste aber in den Tastaturpuffer(?) schreiben. Es soll ja eine automatische Eingabe da erfolgen, wo ich gerade "sgdh" eingegeben habe.

    Mit freundlichen Grüßen
    Frank Blatzheim

  • Textmacros, suchen/ersetzen wie bei Autohotkey

    • shietegal
    • 30. März 2014 um 17:58
    Zitat von BugFix

    Zitat von »shietegal«



    Also müsste ich wahrschinlich ein Script schreiben, was alle Strings über _IsPressed abfragt und welches permanent läuft (Endless Loop)?

    Zitat von BugFix

    So einfach ist es leider nicht. Mit _IsPressed wirst du keine Möglichkeit haben in allen x-beliebigen Editierfeldern wirksam zu werden.
    Um das mit AutoIt zu lösen musst du wohl mit einem Keyboard-Hook arbeiten.
    Das heisst:
    - Abfangen der Keyboard-Taste
    - ist dieses Bestandteil deines Textmakros (z.B. das "s" aus "sgf") schaltest du den Ersetzmodus aktiv, das Zeichen wird nicht an das Editfeld weitergesendet
    - nächstes Zeichen wird abgefangen: ist es aus einer Kombination eines Textmakros wird auch dieses nicht gesendet, sondern zwischengespeichert
    - ist die zwischengespeicherte Sequenz identisch mit einem Makro, wird der hinterlegte Text gesendet
    - ergibt die Zwischenspeicherung kein Makro wird diese selbst eingefügt
    Hat aber den Nachteil, dass Buchstaben, mit denen ein Makro beginnt zuerst nicht an das Programm gesendet werden obwohl kein Makro genutzt werden soll. Das könntest du dann eventuell umgehen, indem du die Sequenz schreiben läßt und bei Übereinstimmung mit einem Makro für die Anzahl der Zeichen zuerst Backspaces sendest und dann den Ersetzungstext.

    Alles anzeigen
    Zitat von BugFix

    NB:
    Ein Keyboard-Hook läßt sich leider leicht als Keylogger mißbrauchen. Aus diesem Grund wirst du hier keine skriptmässige Unterstützung dafür erhalten. Aus der Hilfe läßt sich aber mit etwas Wissen alles Notwendige erfahren.

    Nochmal danke für die Hilfe. ich habe jetzt festgestellt, das der Wunsch, die Hotstring-Funktion von Autohotkey unter AutoIt nutzen zu können doch öfter ausgesprochen wird. Ich habe einen fertigen Code gefunden (http://www.autoitscript.com/forum/topic/68…string-hotkeys/), erst einmal gespeichert aber noch nicht genau analysiert. Sieht aber schon einmal gut aus. Der Link ist vieleicht noch für andere Suchende nützlich? Wie gut es funktioniert werde ich hier berichten, wenn ich es am Laufen habe.

    Zum Thema Keylogger finde ich persönlich es schade, wenn es keine Scripts mehr gibt, nur weil das missbräuchlich genutzt werden kann. M.E. verhindert solches Verhalten keinen Missbrauch. Bestenfalls macht man ehrlichen Usern das Leben schwerer.

    Der versuch, die Verbreitung von Wissen zu unterdrücken ist IMHO so als wollte man das Licht in die Sonne zurück stopfen. Wollte ich einen Keylogger schreiben würde ich einen Int-Handler in Assembler aufsetzen (habe zwar zuletzt vor 20 Jahren mit dem MASM gearbeitet aber das kriege ich noch hin) :)

    Mit freundlichen Grüßen
    Frank Blatzheim

  • Textmacros, suchen/ersetzen wie bei Autohotkey

    • shietegal
    • 30. März 2014 um 16:47
    Zitat von misterspeed

    Wo willst du solche Abkürzungen ersetzt haben? In einer eigenen GUI oder in x-beliebigen Programmen / einem bestimmten Programm? In einer eigenen GUI sollte das sehr einfach zu realiseren sein, bei externen Programmen könnte das aufwendiger werden. Vielleicht einfach mal ein AutoHotkey Beispiel posten in dem du diese Funktionalität nutzt?


    Danke für die Antwort. Ich benutze systemübergreifend in allen (Windows7)Programmen dieselben Macros. Das macht den Reiz aus: Deine Ersetzungen gehen überall automatisch, wo Du Text eingeben kannst - egal ob Textverarbeiteung, branchenspezifische Software, Email, Browser und und ...

    Autohotkey ist ja ständig im Hintergrund aktiv, fragt anscheinend die Tastatur ab und ersetzt dann eingegebene Phrasen automatisch. Der Befehl dazu lautet #hotstring. Damit beginnt eine Datei, in welcher dann die Phrasen samt Ersetzung untereinander stehen. Beispiel:

    #hotstring
    ::sgf :: Sehr geehrte Frau
    ::sgdh :: Sehr geehrte Damen und Herren
    ::sgh :: Sehr geehrter Herr
    ::mfg :: Mit freundlichen Grüßen

    Also ersetze "sgf" mit "Sehr geehrte Frau"

    Vieleicht war ich auch nur zu blauäugig? Weil Autohotkey und AutoIt dieselben Wurzeln haben dachte ich, das ich unter AutoIt auch diese "Hotstrings" einfach nachbilden oder funktionsgleich verwenden könnte.

    Mit freundlichen Grüßen
    Frank Blatzheim

    Nachklapp:
    Ich habe gerade noch über "Onkel Google" hier in einem Forum eine ähnliche Anfrage gefunden (http://www.autoitscript.com/forum/topic/87…ngs-for-autoit/). Dort wurde die Function _IsPressed als Lösungsansatz empfohlen. Also müsste ich wahrschinlich ein Script schreiben, was alle Strings über _IsPressed abfragt und welches permanent läuft (Endless Loop)?

  • Textmacros, suchen/ersetzen wie bei Autohotkey

    • shietegal
    • 30. März 2014 um 16:02

    Hallo Allerseits,

    auf die Gefahr mit massiv zu blamieren: Ich möchte statt Autohotkey nun AutoIt nutzen weil Autohotkey Sachen nicht ohne Weiteres oder gar kann, welche ich bei AutoIt finde.

    Umgekehrt nutze ich derzeit Autohotkey auch um per Abkürzungen Texte einzufügen (Tastaturmacros).

    Zum Beispiel gebe ich ein "sgdh" und Autohotkey ersetzt dies automatisch gegen "Sehr geehrte Damen und Herren [Enter]".

    Ich habe bei AutoIt in der Befehlsreferenz und in der FAQ geschaut, aber zu meiner Schande finde ich nicht heraus, wie das unter AutoIt geht. Fall sich zu dumm bin wäre ein Beispiel hilfreich. Ansonsten die Info das es mit AutoIt nicht geht.

    Meinen Dank im voraus
    Frank Blatzheim

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™