Sign in to follow this  
Followers 0
s0urce

Hidden Windows in Windows 10

7 posts in this topic

Hello folks,

I try to set the window state of 3th party windows (win32 gui) to "@SW_HIDE". This seems not to work properly in windows 10. The window is hidden, but it is still visible in the windows bar. If I click on it, nothing happens. Thx for some infos.

Br, s0urce

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

What's the Windows bar, the Windows taskbar, the Titlebar from window?  What's the name from 3th paty app?

Thx for more infos.

 

 

Edited by AutoBert

Share this post


Link to post
Share on other sites

Yeah, the Windows taskbar. The app is an selfwritten one. Delphi compile to exe.

Share this post


Link to post
Share on other sites

You hided the wrong window. Delphi uses a Form for Project, and the hided one is the Child of this Project.

Share this post


Link to post
Share on other sites
3 hours ago, AutoBert said:

You hided the wrong window. Delphi uses a Form for Project, and the hided one is the Child of this Project.

Oh, good to know, thank you very much. Do you maybe have a solution to hide the parent "process"? I found this option "_WinAPI_GetParentProcess(WinGetProcess($title))" to get a parent process, but I found no way to hide a window with it's pid.

Share this post


Link to post
Share on other sites

_WinAPI_GetWindowLong($hWnd3thParty, $GWL_HWNDPARENT) should help. It returns the needed WindowHandle from Parentwindow. 

1 person likes this

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

Thank you AutoBert, this was the solution. Here is my ready function, maybe someone else looking for this:

#include <WinAPI.au3>

func _WinAndParentSetState($title,$state)
  $childHandle=WinGetHandle($title)
  $parentLong=_WinAPI_GetWindowLong($childHandle,$GWL_HWNDPARENT)
  $parentHandle=HWnd($parentLong)
  WinSetState($parentHandle,'',$state)
  WinSetState($childHandle,'',$state)
endfunc
Edited by s0urce

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Similar Content

    • dreivilo47
      By dreivilo47
      When I want to test Example 1 of Function _IECreate (AutoIt Help File), I see that function _IECreate doesn't work in Windows 10.
      Syntax Check (Ctrl+F5) gives no errors.
       
      Example 1:
      ; Create a browser window and navigate to a website #include <IE.au3> Local $oIE = _IECreate("www.autoitscript.com")  
      The error I receive with F5 (Tools, Go) in SciTE:

    • Chaym
      By Chaym
      Does AutoIT supported  in Windows 10 OS (x64)?
      After installing AutoIT in x64 OS and recompiling code,
      I get a lot of error messages...
       
    • kristo
      By kristo
      The DriveGetDrive command returned all drives (option "ALL") for years now and my program could always rely on that function. Suddenly a drive letter that was created with the subst command does not appear in the list of drives anymore. And it clearly did, because I used to react to a certain subst command by reacting to new or revoked (subst /D) drive letters.
      Why is that? I think this a bug because there's no way left to list ALL drive letters anymore.
      And why should I use an API command for that when this was already built in for years?

       
    • kokoilie
      By kokoilie
      I'm making a program that has a combo control in a gui and back in win7 when the window was focused the scroll wheel could be used to scroll through it's contents, now i'm using win10 and i have to put the mouse on that control to scroll up and down.
      Since now the scroll wheel works depending on where the mouse is, is there a way to make it no matter where on the gui the pointer is?
      Also if the only way to do it is some complex hotkey functions will it work with pressing space to toggle a checkbox?
      If you need to see what i have so far let me know and i'll copy it here.
    • ModemJunki
      By ModemJunki
      Hello,
      In Windows 10 PowerShell, one can do this to change the metric for a NIC in Windows 10:
      Get-NetAdapter | Where-Object -FilterScript {$_.InterfaceAlias -Eq "Ethernet 2"} | Set-NetIPInterface -InterfaceMetric 2 I know I can script the above PowerShell line (and it works!), but I wanted to try something I hadn't done before after looking into jguinch's most excellent Network configuration UDF. I wanted to make use of the SetIPConnectionMetric method in the WMI classes. There is an example VBscript here but this is not for Windows 10. Using AutoIT would also give better control over capturing error return codes than with PowerShell.
      But I cannot get my script to work! The return from SetIPConnectionMetric() is 0, which would indicate success. Yet the change does not happen. I also tried WMI methods using .put_ but this fails.
      Anyone more experienced than I have ideas to make this work?
      #RequireAdmin _SetNicInterfaceMetric2("Ethernet 2", "2") Func _SetNicInterfaceMetric2($NIC_NAME, $METRIC) Local $s_setIndx = 0 $objWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & "." & "\root\cimv2") $colNICItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID = '" & $NIC_NAME & "'", "WQL") If IsObj($colNICItems) Then For $objItem In $colNICItems $s_nicIndex = $objItem.Index Next ConsoleWrite("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Index = '" & $s_nicIndex & "'" & @CRLF) $colNAC = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Index = '" & $s_nicIndex & "'", "WQL") If IsObj($colNAC) Then For $objNetCard In $colNAC If $METRIC <> $objNetCard.IPConnectionMetric Then ConsoleWrite("Metric was set to " & $objNetCard.IPConnectionMetric & ". Setting to " & $METRIC & "." & @CRLF) $s_isSet = $objNetCard.SetIPConnectionMetric($METRIC) ConsoleWrite("SetIPConnectionMetric Result = " & $s_isSet & @CRLF) Else ConsoleWrite("Metric is already set to " & $METRIC & @CRLF) EndIf Next EndIf EndIf EndFunc ;==>_SetNicInterfaceMetric2