vb-Zentrum
VB-Script
http://www.vb-zentrum.de/tip_script.html

© 2010 vb-Zentrum

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
Stand: 03/2008

Nach oben

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
Stand: 02/2008

Nach oben

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
Stand: 07/2006

Nach oben

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
Stand 07/2006

Nach oben