Jump to content

PID to HWND


Go to solution Solved by guinness,

Recommended Posts

Oh, and here is another array diff function to learn from.

Func _ArrayDiff_2D(ByRef $aArray_Before, ByRef $aArray_After)
    Local $sWndString = ''
    For $i = 1 To $aArray_Before[0][0]
        $sWndString &= '|' & $aArray_Before[$i][1] & '|'
    Next
    Local $sReturn = ''
    For $i = 1 To $aArray_After[0][0]
        If StringInStr('|' & $sWndString & '|', $aArray_After[$i][1]) = 0 Then
            $sReturn &= $aArray_After[$i][1] & @CRLF
        EndIf
    Next
    $sReturn = StringTrimRight($sReturn, StringLen(@CRLF))
    Return StringSplit($sReturn, @CRLF, 3)
EndFunc   ;==>_ArrayDiff_2D

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

No idea. Maybe add a sleep before calling the second run, as probably explorer processes the commands once it's been idle for a couple of ms.

OK, then this should take care of it :)

#include <Array.au3>
Local $aSize = WinGetPos('', 'Notification Area'), _
      $iTaskBarHeight = $aSize[3], _
      $sExecutable = '"' & "c:\windows\explorer.exe" & '"', _
      $sParameters1 = ' /separate, /e, C:\', _
      $sParameters2 = ' /separate, /e, D:\', _
      $aWinList_Before = 0, _
      $aWinList_After = 0, _
      $aWinList_Diff = 0, _
      $hWnd_1 = 0, _
      $hWnd_2 = 0

$hWnd_1 = _Get_Handle($sParameters1)
$hWnd_2 = _Get_Handle($sParameters2)

WinMove($hWnd_1, '', 0 , 0, @DesktopWidth / 2, @DesktopHeight - $iTaskBarHeight)
WinMove($hWnd_2, '', @DesktopWidth / 2, 0, @DesktopWidth / 2, @DesktopHeight - $iTaskBarHeight)

WinSetState($hWnd_1, '', @SW_RESTORE)
WinSetState($hWnd_2, '', @SW_RESTORE)

Exit

Func _Get_Handle($sParameters)
$aWinList_Before = WinList('[CLASS:CabinetWClass]')
Run($sExecutable & $sParameters, '', @SW_HIDE)
While 1
    sleep(100)
    $aWinList_After = WinList('[CLASS:CabinetWClass]')
    $aWinList_Diff = _ArrayDiff_2D($aWinList_Before, $aWinList_After)

    If UBound($aWinList_Diff) = 1 And HWnd($aWinList_Diff[0]) Then ; If one new windows.
        Return HWnd($aWinList_Diff[0])
    EndIf
WEnd
EndFunc

Func _ArrayDiff_2D(ByRef $aArray_Before, ByRef $aArray_After)
    Local Const $iLocalVar = 1
    For $i = 1 To $aArray_Before[0][0]
        If IsDeclared($aArray_Before[$i][1] & '$') = 0 Then
            Assign($aArray_Before[$i][1] & '$', 0, $iLocalVar)
        EndIf
    Next
    Local $sReturn = ''
    For $i = 1 To $aArray_After[0][0]
        If IsDeclared($aArray_After[$i][1] & '$') = 0 Then
            $sReturn &= $aArray_After[$i][1] & @CRLF
        EndIf
    Next
    $sReturn = StringTrimRight($sReturn, StringLen(@CRLF))
    Return StringSplit($sReturn, @CRLF, 3)
EndFunc
Edited by power1power1
Link to comment
Share on other sites

I prefer the first one, but then if you use Obfuscator by Jos it will display a warning (which is valid and correct) so the second version is just a backup.

I only use Asiign and IsDeclared for determining the uniqueness of an array. See >>

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...