Microsoft KB Archive/114776

= How to Hide a VB App from the Task List and ALT+TAB Order =

Article ID: 114776

Article Last Modified on 12/9/2003

-

APPLIES TO


 * Microsoft Visual Basic 2.0 Standard Edition
 * Microsoft Visual Basic 3.0 Professional Edition
 * Microsoft Visual Basic 2.0 Professional Edition
 * Microsoft Visual Basic 3.0 Professional Edition

-



This article was previously published under Q114776



SUMMARY
This article demonstrates how to create an application that is invisible to the Windows Task List and to the fast ALT+TAB switching order.



MORE INFORMATION
All Visual Basic applications have a background window that handles all messages for the application and all calls to the VBRUN300.DLL. This background window is also the owner and parent of all non-MDI child forms. You can use the GetWindow and ShowWindow Windows API functions to hide this background window.

To be eligible for removal from the ALT+TAB order, an application cannot have any visible forms. The background window is visible, but you can use GetWindow to return the background or owner window's handle, and then use the handle and ShowWindow to make the window invisible.

Step-by-Step Example
This example hides itself from the Windows Task List and ALT+TAB order.

 Start a New Project in Visual Basic. Form1 is created by default. Add a timer control (Timer1) to the form.  Add the following declarations to the general declarations section: ' Enter each of the following Declare statements as one, single line:

Declare Function ShowWindow Lib "User" (ByVal hWnd As Integer,     ByVal nCmdShow As Integer) As Integer Declare Function GetWindow Lib "User" (ByVal hWnd As Integer,     ByVal wCmd As Integer) As Integer Const SW_HIDE = 0 Const GW_OWNER = 4

  Add the following code to the load event of Form1: Sub Form_Load

Dim OwnerhWnd As Integer Dim ret As Integer

' Make sure the form is invisible: form1.Visible = False

' Set interval for timer for 5 seconds, and make sure it is enabled: timer1.Interval = 5000 timer1.Enabled = True

' Grab the background or owner window: OwnerhWnd = GetWindow(Me.hWnd, GW_OWNER) ' Hide from task list: ret = ShowWindow(OwnerhWnd, SW_HIDE)

End Sub

  Add the following code to the Timer event of the Timer1 control to verify that the program is running and to allow you to exit the program: Sub Timer1_Timer

Dim ret As Integer

' Display a message box: ret = MsgBox("Visible by Alt+Tab. Cancel to Quit", 1, "Invisible Form") ' If cancel clicked, end the program: If ret = 2 Then timer1.Enabled = False Unload Me        End End If

End Sub

 Save the project as INVIS.MAK and create an executable entitled INVIS.EXE. Run the program by double-clicking INVIS.EXE in File Manager or by using the Run option in Program Manager. When you run the program, there should be no visible forms and the program title should not appear in the Task List or in the ALT+TAB order. After five seconds, the application should display the message box. Then the program should be visible to the ALT+TAB order, but not the Task List. Click the Cancel button to exit the application, or click OK to allow it to continue to run.</li></ol>

Additional query words: 2.00 3.00 hide invisable

Keywords: KB114776

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.