SendKeys - Tastenanschläge senden


Set WshShell =  CreateObject("WScript.Shell")
 
WshShell.SendKeys "{F5}"          ' Es wird F5 gedrückt
WshShell.SendKeys("^{F4}")        ' Strg + F4 wird gedrückt

Eine Anwendung für diesen Befehl wäre beispielsweise das Kopieren von Text in die Zwischenablage (alternativ gibt es dafür den Skriptbefehl FF_TextToClipboard).
Im folgenden Skript wird ein einzugebender Text und ein Webadresse in HTML-Code gewandelt zu einem Textlink, der anschließend in der Zwischenablage zur Verfügung steht.

Zur Übernahme des HTML-Codes in die Zwischenablage, wird dieser in ein Textelement geschrieben und nachdem der Fokus auf das Textelement gerichtet wurde, mit Senden von Strg + A der gesamte Text markiert und dann mit Strg + C kopiert.
Anschließend wird Escape gesendet. Damit wird die Schleife nochmal durchlaufen und anschließend der "CANCEL"-Fall simuliert, wodurch das Skript beendet wird. Würde man direkt mit exit do die Schleife verlassen, würde der gesamte Skripttext kopiert. Wer's nicht glaubt, kann es gerne ausprobieren.

VBS-Beispiel
Option Explicit
const S_Groesse = "2/3/4/5/6/7/8"
 
Dim WshShell
Dim Abbruch,HTML_Code
Dim text_Text,text_Link
Dim D_Groesse,D_Kursiv,D_Fett
Dim Array,element
 
Set WshShell =  CreateObject("WScript.Shell")
call main
Set WshShell = nothing
'-------------------------------------------------------------------------
Sub main
 
'** Start Dialog Textlink **
FF_AddDialog "Textlink",151,89
FF_AddControl "Textlink","Text","STATIC",5,5,12,10
FF_AddControl "Textlink","text_Text","SLEDIT",21,5,125,10
FF_AddControl "Textlink","Link","STATIC",5,18,12,10
FF_AddControl "Textlink","text_Link","SLEDIT",21,18,125,10
FF_AddControl "Textlink","Darstellung","GROUP",5,33,140,24
FF_AddControl "Textlink","Größe","STATIC",12,43,18,10
FF_AddControl "Textlink","D_Groesse","COMBO",29,43,18,10
FF_AddControl "Textlink","Kursiv","STATIC",62,43,16,10
FF_AddControl "Textlink","D_Kursiv","BOOL",85,44,8,8
FF_AddControl "Textlink","Fett","STATIC",109,43,12,10
FF_AddControl "Textlink","D_Fett","BOOL",127,44,8,8
FF_AddControl "Textlink","Abbrechen","BUTTON",43,72,34,11
FF_AddControl "Textlink","HTML-Code erzeugen","BUTTON",82,72,60,11
FF_AddControl "Textlink","HTML_Ergebnis","EDIT",5,62,140,4
'** End Dialog Textlink **

Array = split(S_Groesse,"/")
for each element in Array
    FF_SetControl "Textlink","D_Groesse",element
next
 
do
    Abbruch = false
 
    Select Case FF_ShowDialog ("Textlink")
    Case "HTML-Code erzeugen"
        call Werte_Lesen
        if not Abbruch then
            call HTML
            FF_SetControl "Textlink","HTML_Ergebnis",HTML_Code
 
            msgbox  HTML_Code & vbNewLine & vbNewLine & _
                    "Mit OK wird der HTML-Code in die Zwischenablage übernommen!",vbInformation,"HTML-Code"
 
            FF_ActivateControl "Textlink","HTML_Ergebnis"
            WshShell.SendKeys("^{a}")        ' Strg + A (alles markieren)
            WshShell.SendKeys("^{c}")        ' Strg + C (Markierung kopieren)
            WshShell.SendKeys("{ESC}")       ' Escape (Beenden)
        end if
    Case "CANCEL", "Abbrechen"
        exit do
    Case Else
    End Select
loop
 
FF_CloseDialog ("Textlink")
 
End Sub
'-------------------------------------------------------------------------
Sub Werte_Lesen
 
text_Text = FF_GetControl("Textlink","text_Text")
if text_Text = "" then
    msgbox "Es wurde kein Untertitel eingegeben!",vbExclamation,"Abbruch"
    Abbruch = true
    exit sub
end if
 
text_Link = FF_GetControl("Textlink","text_Link")
if text_Link = "" then
    msgbox "Es wurde kein Link eingegeben!",vbExclamation,"Abbruch"
    Abbruch = true
    exit sub
end if
 
D_Groesse = FF_GetControl("Textlink","D_Groesse")
D_Kursiv = FF_GetControl("Textlink","D_Kursiv")
D_Fett = FF_GetControl("Textlink","D_Fett")
 
End Sub
'-------------------------------------------------------------------------
Sub HTML
 
if D_Fett = 1 then HTML_Code = "<b>"
if D_Kursiv = 1 then HTML_Code = HTML_Code & "<i>"
HTML_Code = HTML_Code & "<font size=" & chr(148) & D_Groesse & chr(148) & ">" & _
                        "<a href=" & text_Link & " >" & text_Text & "</a>"
if D_Kursiv = 1 then HTML_Code = HTML_Code & "</i>"
if D_Fett = 1 then HTML_Code = HTML_Code & "</b>"
 
End Sub
'-------------------------------------------------------------------------