http://users.pandora.be/mayerson/daniel/scweek/310803-070903.htmDeclare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Enum Version
Win32 = 0
Win9x = 1
WinNt = 2
End Enum
Const RSP_SIMPLE_SERVICE = 1
Const RSP_UNREGISTER_SERVICE = 0
Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long
OsInfo As OSVERSIONINFO
Sub MakeMeService()
Dim Pid As Long, regserv As Long
'get process id
Pid = GetCurrentProcessId
'register as service
regserv = RegisterServiceProcess(Pid, RSP_SIMPLE_SERVICE)
End Sub
Sub UnMakeMeService()
Dim Pid As Long, regserv As Long
'Get process ID
Pid = GetCurrentProcessId()
'Unregister as service
regserv = RegisterServiceProcess(Pid, RSP_UNREGISTER_SERVICE)
End Sub
Function HideMe() As Boolean
Dim WinVer As Integer
WinVer = GetOsVersion
If WinVer = Version.Win9x Then
MakeMeService
ElseIf WinVer = Version.WinNt Then
App.Title = ""
Else
HideMe = False
Exit Function
End If
HideMe = True
End Function
Function ShowMe(Optional AppTitle As String = "UnHidden Application") As Boolean
Dim WinVer As Integer
WinVer = GetOsVersion
If WinVer = Version.Win9x Then
UnMakeMeService
ElseIf WinVer = Version.WinNt Then
App.Title = AppTitle
Else
ShowMe = False
Exit Function
End If
ShowMe = True
End Function
Function GetOsVersion() As Integer
Dim Ret&
OsInfo.dwOSVersionInfoSize = Len(OsInfo)
Ret& = GetVersionEx(OsInfo)
If Ret& = 0 Then
GetOsVersion = -1
Exit Function
End If
GetOsVersion = OsInfo.dwPlatformId
End Function