(view source code of capslock.vbs as plain text)
Option Explicit
Dim arrCaps, strMsg, strProc
Dim blnExitWord, blnExitWP
Dim colItems, objItem, objWMIService
strMsg = ""
' Check for command line arguments (none required)
If WScript.Arguments.Count > 0 Then
Syntax
End If
' Check if MSWord and/or WordPerfect are already active by
' searching for processes named WINWORD.EXE or WPWIN**.EXE
blnExitWP = True
blnExitWord = True
Set objWMIService = GetObject( "winmgmts://./root/cimv2" )
Set colItems = objWMIService.ExecQuery( "SELECT * FROM Win32_Process", , 48 )
For Each objItem In colItems
strProc = UCase( objItem.Name )
If Len( strProc ) > 11 Then Exit For
If Left( strProc, 5 ) = "WPWIN" And Right( strProc, 4 ) = ".EXE" Then
blnExitWP = False
End If
If strProc = "WINWORD.EXE" Then
blnExitWord = False
End If
Next
Set objWMIService = Nothing
' Start with WordPerfect only if it is
' active already, otherwise try MSWord first
If blnExitWord = False And blnExitWP = True Then
arrCaps = CapsLockWP( )
If arrCaps(1) Then
arrCaps = CapsLockWord( )
If arrCaps(1) Then
WScript.Echo strMsg & "Unable to read CapsLock status"
WScript.Quit
End If
End If
Else
arrCaps = CapsLockWord( )
If arrCaps(1) Then
arrCaps = CapsLockWP( )
If arrCaps(1) Then
WScript.Echo strMsg & "Unable to read CapsLock status"
WScript.Quit
End If
End If
End If
If arrCaps(0) Then
WScript.Echo strMsg & "CapsLock is ON"
Else
WScript.Echo strMsg & "CapsLock is OFF"
End If
Function CapsLockWord( )
Dim objWord, blnCapsLock, blnError
On Error Resume Next
Set objWord = CreateObject( "Word.Application" )
If Err Then
blnCapsLock = False
blnError = True
Else
blnCapsLock = CBool( objWord.CapsLock )
blnError = False
If blnExitWord Then
objWord.Quit
End If
End If
On Error Goto 0
CapsLockWord = Array( blnCapsLock, blnError )
End Function
Function CapsLockWP( )
Dim objWP, blnCapsLock, blnError
On Error Resume Next
Set objWP = CreateObject( "WordPerfect.PerfectScript" )
If Err Then
blnCapsLock = False
blnError = True
Else
blnCapsLock = CBool( objWP.envKeyCapsLock )
blnError = False
If blnExitWP Then
objWP.ExitWordPerfect
End If
End If
On Error Goto 0
CapsLockWP = Array( blnCapsLock, blnError )
End Function
Sub Syntax( )
strMsg = "CapsLock.vbs, Version 1.01" _
& vbCrLf _
& "Display CapsLock status using MS Word or WordPerfect" _
& vbCrLf & vbCrLf _
& "Usage: CAPSLOCK.VBS" _
& vbCrLf & vbCrLf _
& "Note: This script will first check if WordPerfect is active." _
& vbCrLf _
& " If so, it will use WordPerfect to read the CapsLock status." _
& vbCrLf _
& " Otherwise it will try using MS Word, and if it fails try" _
& vbCrLf _
& " again using WordPerfect." _
& vbCrLf _
& " It won't close MS Word nor WordPerfect if they were active" _
& vbCrLf _
& " at the time the script was started." _
& vbCrLf & vbCrLf _
& "Written by Rob van der Woude" & vbCrLf _
& "http://www.robvanderwoude.com" _
& vbCrLf & vbCrLf & vbCrLf & vbCrLf & vbCrLf
End Sub
page last modified: 2024-04-16; loaded in 0.0065 seconds