Übersicht
0004 Microsoft Word gekonnt starten
![]() |
Eine andere Applikation mit VB-Script zu starten ist mit dem
shell.Exec Befehl keine Kunst. Was aber, wenn man diese Applikation
nur einmal öffnen will? Dann muss man wissen,
ob die Anwendung bereits läuft, denn in diesem Fall soll sie
nur in der Vordergrund gebracht werden. Aufgrund
der umfangreichen VB-Schnittstelle in MS-Word ist das keine große
Sache:
Sub startWord
Dim objWordApp
On Error Resume Next
' Versuchen eine WORD-Instanz zu finden:
Set objWordApp = GetObject(, "word.Application")
' Wenn nicht vorhanden, neue Instanz anlegen:
If err.number = 429 Then
err.clear
Set objWordApp = CreateObject("word.Application")
End If
With objWordApp
' mindest. 1 leeres Dokument öffnen
If .Documents.count < 1 Then .Documents.Add
' mit einem Trick in den Vordergrund bringen:
If .Tasks.Exists("Word") Then
.Tasks("Word").WindowState = 2 ' Fenster minimieren
.Tasks("Word").WindowState = 0 ' und wieder herstellen
End If
' und Anzeigen:
.Visible = True
End With
Set objWordApp = Nothing
End Sub
Hinweis: Da es keine 'SetForeground' Methode o.ä. gibt, wird bei einer bestehenden Instanz das gefundene Fenster erst minimiert und dann wiederhergestellt. Dadurch erscheint es automatisch im Vordergrund.
|
|
Autor: ralf schlegel |
0003 Drucken mit VB-Script
![]() |
NEIN - Sie brauchen nicht weiter zu suchen! VBScript stellt
kein Printer-Objekt zur Verfügung und hat auch
sonst keine Methoden um ein Dokument zu drucken! Wenn Sie einen zur
Laufzeit generierten Text auf dem Drucker ausgeben wollen, müssen
Sie sich eines kleinen Tricks bedienen:
Dim fName
Dim fso, file
Dim shell
' 1.) Daten in eine temporäre Datei schreiben:
Set fso = CreateObject("scripting.filesystemobject")
fName = "C:\Temp\Printer.txt"
' Datei öffnen und beschreiben:
Set file = fso.CreateTextFile(fName, True)
file.Write "Irgendein Text: " vbCrLf
file.close ' Datei schliessen
Set file = Nothing
Set fso = Nothing
' 2.) Datei über Notepad ausdrucken:
Set shell = CreateObject("Wscript.Shell")
shell.Exec "Notepad.exe /P """ & fName & """"
Set shell = Nothing
Hinweis: Die mehrfachen Anführungszeichen in der 'shell.Exec'-Zeile sorgen dafür, dass der übergebene Dateiname als Ganzes interpretiert wird! Das ist dann zwingend erforderlich, wenn in Ihrem Dateinamen Leerzeichen enthalten sind, da Notepad den Dateinamen sonst in mehrere Parameter zerlegen würde!
|
|
Autor: ralf schlegel |
0002 String in ASCII-Zeichen auflösen
![]() |
Das folgende Beispiel zeigt, wie man einen String in
ASCII-Werte zerlegt. Gleichzeitig sehen Sie die Verwendung von
InputBox und MsgBox zur Ein- und Ausgabe; Syntax und Konstanten
sind mit der gewohnten Entwicklungsumgebung von Visual-Basic
identisch:
Function ASCIIConvert(srcString)
Dim i, CurChr
On Error Resume Next
ASCIIConvert = ""
For i = 1 To Len(srcString)
CurChr = Mid(srcString, i, i + 1)
ASCIIConvert = ASCIIConvert & " " & Asc(CurChr)
Next
ASCIIConvert = srcString & ":" & Chr(13) & Right(ASCIIConvert, Len(ASCIIConvert) - 1)
End Function
Dim s
s = InputBox ("Geben Sie Ihren Text ein:","vbzTextToASCII")
s = ASCIIConvert (s)
MsgBox s, 64, "vbzTextToASCII" ' 64 = vbInformation
|
|
Autor: ralf schlegel |
0001 Version der ScriptEngine ermitteln
![]() |
Mit der folgenden Funktion prüfen Sie, ob auf Ihrem System die ScriptEngine installiert ist und um welche Version es sich dabei handelt: Function getScriptVersion Dim s s = ScriptEngineMajorVersion & "." s = s & ScriptEngineMinorVersion & "." s = s & ScriptEngineBuildVersion getScriptVersion = s End Function MsgBox getScriptVersion, vbInformation, ScriptEngine & " Version:" |
|
Autor: ralf schlegel |

