guinness Posted May 27, 2013 Share Posted May 27, 2013 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 parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
power1power1 Posted May 28, 2013 Author Share Posted May 28, 2013 (edited) 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 expandcollapse popup#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 May 28, 2013 by power1power1 Link to comment Share on other sites More sharing options...
power1power1 Posted May 28, 2013 Author Share Posted May 28, 2013 Oh, and here is another array diff function to learn from. Hi guinness. Do you prefer this one over the other one? Link to comment Share on other sites More sharing options...
guinness Posted May 28, 2013 Share Posted May 28, 2013 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 parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now