168 Benutzer online
07. September 2025, 22:49:37

Windows Community



 Antworten / AufrufeThemen mit dem Stichwort soundprogrammierung
0
Antworten
7811
Aufrufe
Skript zum Einfügen von Autotext
Begonnen von OCtopus
04. Oktober 2009, 12:08:48
Ich habe für mich ein kleines Skript gemacht, mit dem ich in jeden Editor (Notepad, Forum etc.) Autotext einfügen kann. Das Skript funktioniert mit der Skriptsprache [b]Autohotkey[/b]
http://www.autohotkey.com/download/
Ihr kopiert das Skript in eine Datei mit der Endung "ahk". Eine fertige Datei "Makros.ahk" ist angehängt. Wenn Autohotkey installiert ist, muß das Skript nur doppelgeklickt werden. Es kann auch automatisch gestartet werden, wenn Ihr das Skript (oder eine Verknüpfung) in den Autostart-Ordner legt.

[code]
/*
Der Autotext kann in jeder Textdatei mit folgendem Format enthalten sein:
  [Autotext]
  n=nicht
  mfg=Mit freundlichen Grüßen^a^aMax Meier
  mvH=Mit vorzüglicher Hochachtung^a^a~MM~
  hav=Hochachtungsvoll^a^a~HH~
  MM=Max Meier
  HH=Hans^tHuber
In dieser Datei können folgende Besonderheiten verwendet werden (s. Beispiele oben):
^a   = Absatz
^t   = Tabulator
~xx~ = Verweis auf einen anderen Autotext-Eintrag
Die Datei kann in Zeile 26 des Skripts eingetragen werden (voreingestellt: "C:\Zwi\Makros.txt").

Verwendung:
Ihr schreibt in den Editor die Kurzbezeichnung des Autotexteintrags (z. B. "mfg").
Das Skript liest mit <Alt-F3> diese Kurzbezeichnung aus und schreibt an diese Stelle
den Autotext. Wenn der entsprechende Autotext nicht vorhanden ist bleibt die Kurzbezeichnung (markiert) stehen.
*/

; Fügt Makros aus Makros.txt vor der aktuellen Cursorposition ein.
; ShortCut: <Alt+F3>
~!F3::
; Als <MakroDat> kann hier kann jeder andere Dateiname in jedem anderen Ordner verwendet werden:
MakroDat := "C:\Zwi\Makros.txt"
; Markiert die Kurzbezeichnung:
IniErg   := PreSelection2Makro(MakroDat)
; Fügt jetzt die Ersetzung ein.
SendInput, %IniErg%
return

;******************************************************************************
; Ersetzt einen <EString> durch einen Makrostring aus <MakroDat>:
Ersetzung(EString, MakroDat)
{
  ; Ersetzt den ermittelten String.
  ; Holt die Ersetzung:
  IniRead, IniErg, %MakroDat%, Autotext, %EString%, %A_Space%
  ; Ersetzt alle Strings zwischen Tilden mit weiteren Ersetzungsstrings.
  LOOP ; Sucht alle Vorkommen von "~"
  {
     StringGetPos, Stelle1, IniErg,~
     IF Stelle1<0
        Break
     StringGetPos, Stelle2, IniErg,~, L2
     Abfrage := SubStr(IniErg, Stelle1+2, Stelle2-Stelle1-1)
     IniRead, TildeErg, %MakroDat%, Autotext, %Abfrage%, %A_Space%
     StringReplace, IniErg, IniErg, ~%Abfrage%~ , %TildeErg%, All
  }
  ; Ersetzt Absatzzeichen (^a) etc. mit AHK-typischen Befehlen.
  StringReplace, IniErg, IniErg,^a,`n, All
  StringReplace, IniErg, IniErg,^t,{TAB}, All
  Return IniErg
}

;******************************************************************************
; Ermittelt das letzte Wort vor der aktuellen Cursorposition:
PreSelection()
{
  ; Sichert den Inhalt des Clipboards und leert das Clipboard.
  AlterClipboardInhalt := ClipboardAll ; Sichern des Inhaltes von Clipboard
  Clipboard =
  ; 1. Teil: Ermittelt den zu ersetzenden String.
  Länge := 0
  SonderZ := ".,?,;"
  LOOP ; Ermittelt das maßgebliche ganz Wort vor der aktuellen Cursoposition
  {
     Send, +{LEFT} ; Ein makiertes Zeichen nach links
     Auswahl := Selection(true) ; ermittelt die aktuelle Markierung
     StringLeft, Links, Auswahl, 1 ; Das äußerste linke Zeichen der Markierung
     CharNr := ASC(Links)
     IsSonderZ := false
     IF Links in ä,ö,ü,Ä,Ö,Ü,ß
        IsSonderZ := true
     ; Steigt aus bei Leerzeichen, Sonderzeichen, Absatzzeichen etc.
     ; Es gelten nur Ziffern, Buchstaben und Umlaute:
     IF NOT ((CharNr>=48 AND CharNr<=57) OR (CharNr>=65 AND CharNr<=90) OR (CharNr>=97 AND CharNr<=122) OR IsSonderZ)
        GoTo Zurück
     ; Wenn es nicht mehr weiter nach Links geht (Dateianfang)
     IF StrLen(Auswahl)=Länge
        GoTo Fertig
     StringLen, Länge, Auswahl
  }
  Zurück:
  ; Geht wieder eine Cursorposition nach Rechts:
  Send, +{RIGHT}
  Fertig:
  ; Ermittelt die maßgebliche jetzt aktuelle Markierung:
  Auswahl := Selection(true)
  ; Zurücksichern des alten Clipboardinhalts:
  ClipBoard := AlterClipboardInhalt    ; Alten Inhalt des Clipboards wiederherstellen
  Return Auswahl
}

;******************************************************************************
; Kombination aus PreSelection() und Ersetzung()
PreSelection2Makro(MakroDat)
{
  ; Ermittelt den zu ersetzenden String:
  Auswahl := PreSelection()
  ; Ersetzt den ermittelten String:
  IniErg  := Ersetzung(Auswahl, MakroDat)
  Return IniErg
}

;******************************************************************************
; Ermittelt den aktuell markierten Text, die aktuell markierte Datei etc.:
Selection(OhneSichern = false, Warten = 5)
{
  IF NOT OhneSichern
     AlterClipboardInhalt := ClipboardAll ; Sichern des Inhaltes von Clipboard
  Clipboard =
  Send ^c                              ; Kopiert die Datei
  ClipWait, %Warten%                   ; Warte auf neuen Inhalt im Clipboard. 5 wg. Netzlaufwerken, die ggf. langsamer sind.
  RückG := ClipBoard                   ; Speichern des Namens zur weiteren Verarbeitung
  IF NOT OhneSichern
     ClipBoard := AlterClipboardInhalt    ; Alten Inhalt des Clipboards wiederherstellen
  Return RückG
}
[/code]

mailmail 5796724757967247 7867747478677474 windowswindows auswahlauswahl desdes 8994745189947451 win7win7 internetinternet 7716150077161500 bggbgg programmierenprogrammieren bingbing vistavista explorerexplorer excelexcel 13555341691355534169 4517533845175338 bgqbgq 6476417164764171 skripteskripte autoauto zeitzeit windowwindow bgebge 20002000 kurzekurze einereiner yahooyahoo ymsyms
1
Antworten
12178
Aufrufe
Autohotkey - Skript für Abspielen von Sound (Programmieren)
Begonnen von Jean Raul
03. Mai 2008, 22:58:06
Kennt jemand Autohotkey?
http://de.autohotkey.com/

Damit kann man Hotkeys und Scripts programmieren. Ich habe mich ein wenig damit beschäftigt und wollte ein kleines Script programmieren, mit dem ich eine Sounddatei ohne WMP oder ein anderes Player-Programm unter dem Windows-Explorer z. B. mit CTRL-P kurz abspielen und ebenso schnell wieder beenden kann. Den passenden Autohotkey-Befehl habe ich bereits gefunden, nämlich z.B.:
SoundPlay, D:\Musik\Musikstück.mp3 , Wait
http://de.autohotkey.com/docs/commands/SoundPlay.htm

Damit kann ich jetzt das Stück an- und abspielen. Doch wie kann ich es z. B. mit dem gleichen Hotkey, mit dem ich es aufgerufen habe, wieder beenden?

Noch einmal kurz zur Erklärung: Ich gehe mit der Maus auf eine mp3-Datei, möchte die Datei z. B. mit CTRL-P anspielen, einige Zeit hören und dann das Abspielen mit CTRL-P (oder was anderes) wieder beenden.