Why vbhide don't work in Windows Vista?
Why vbhide don't work in Windows Vista?
The next code works in XP but not in Windows Vista:
Shell "c:\windows\system32\calc.exe", vbHide
In XP execute the calculator (hide)
but in windows vista show the window's calculator.
I tried in Windows Vista as administrator, but I get the same result.
I tried with Visual Basic Script, but I get the same result.
set shell = CreateObject("wscript.shell")
shell.run "cmd /c calc.exe", vbhide
I tried the ShellExecute function, but I get the same result.
Please, help me.
Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation _
As String, ByVal lpFile As String, ByVal lpParameters _
As String, ByVal lpDirectory As String, ByVal _
nShowCmd As Long) As Long
Private Sub Form_Load()
ShellExecute hwnd, "open", "C:\windows\system32\calc.exe", vbNullString, vbNullString, vbhide
End Sub
Re: Why vbhide don't work in Windows Vista?
Calculator doesn't afaik go hidden even in XP. Anyways, notepad goes hidden in Vista. I'm not sure, but you probably can hide the program with a combination of SetWindowLong, GetWindowLong and removal of WS_VISIBLE from the value by using AND NOT. Of course, to use SetWindowLong and GetWindowLong you need to have the hWnd of the window that was opened. I've never had a need for this so I don't know how it should be found out properly.
Re: Why vbhide don't work in Windows Vista?
You can not hide the calculator in EITHER XP or Vista with Shell or ShellExecute. You would need to use the APIs Merri posted about.