Leaderboard
Popular Content
Showing content with the highest reputation on 10/07/2016 in all areas
-
iahngy, Glad you like it. Let me know if you run into any problems - and remember that you have to save the changed file to be able to reload it. The problem with amending the hardcoded data is that it requires amending the compiled exe (or at least its resources) which is not a trivial task and not one I would recommend as a file is much simpler. M231 point
-
Link to the Bug's ticket for reference: https://www.autoitscript.com/trac/autoit/ticket/33251 point
-
Oh yes! It works @Jfish! I am reporting this in the Bugtracker1 point
-
Works when I use a path parameter on the save ... maybe the default parameter is not working?1 point
-
The character in question is a LRM. https://en.wikipedia.org/wiki/Left-to-right_mark You could eliminate this specific character with something like this... $sPath1 = "\\Server\Share\Folder1" $sPath1 = StringReplace($sPath1, ChrW(0x200E), "") ConsoleWrite($sPath1 & @CRLF) StringToASCIIArray is helpful for identifying characters you cannot see.1 point
-
Are you saving the application object when it should be a doc object?1 point
-
can you try this code ? Local $aSubKeys, $i = 0, $sKeyPath = "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\IDE" While 1 $i += 1 $sSubKey = RegEnumKey($sKeyPath, $i) If @error Then ExitLoop $sSubkeyDevice = RegEnumKey($sKeyPath & "\" & $sSubKey, 1) If @error Then ContinueLoop Local $sClass = RegRead($sKeyPath & "\" & $sSubKey & "\" & $sSubkeyDevice, "Class") Local $sFriendlyName = RegRead($sKeyPath & "\" & $sSubKey & "\" & $sSubkeyDevice, "FriendlyName") ConsoleWrite($sFriendlyName & " [" & $sClass & "]" & @CRLF) WEnd1 point
-
Get DiskName without DiskPart, WMI, WMIC
meoit reacted to JLogan3o13 for a topic
Rather than trying to re-skin the cat, why not just install the WMI scripting package, as MS intended? https://msdn.microsoft.com/en-us/windows/hardware/commercialize/manufacture/desktop/winpe-add-packages--optional-components-reference BTW: Had you provided that information in the first post, you would have gotten a lot clearer answers1 point -
UEZ, I understand A nice way IMHO could be to check StringStripWS(FileRead("1.xml"), $STR_STRIPALL) against the same for 2.xml This should detect any change1 point
-
Get DiskName without DiskPart, WMI, WMIC
meoit reacted to JLogan3o13 for a topic
Again, why can you not use WMI? If you explain the restrictions keeping you from using the common sense approach, perhaps people will understand better and will be able to assist with a workaround.1 point -
1 point
-
1. Tidy both XML (old and new) 2. split lines to Arrays 3. check Arrays OLD<> NEW1 point
-
His question is how to detect changes in the XML files when the file size doesn't change. This is not easy to solve because you want only changes detected on some URLs not the full content. I would suggest to read out the text between <loc>' * '</loc>' and compare it with previous versions. I showed you how to save filesizes in an array. You can extend it by the content and compare it instead.1 point
-
Try this one: ; Generated by AutoIt Scriptomatic $wbemFlagReturnImmediately = 0x10 $wbemFlagForwardOnly = 0x20 $colItems = "" $sComputer = "localhost" $Output="" $Output = $Output & "Computer: " & $sComputer & @CRLF $Output = $Output & "==========================================" & @CRLF $oWMIService = ObjGet("winmgmts:\\" & $sComputer & "\") $colItems = $oWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", _ $wbemFlagReturnImmediately + $wbemFlagForwardOnly) If IsObj($colItems) Then For $objItem In $colItems ;$Output = $Output & "Availability: " & $objItem.Availability & @CRLF ;$Output = $Output & "BytesPerSector: " & $objItem.BytesPerSector & @CRLF ;$strCapabilities = $objItem.Capabilities(0) ;$Output = $Output & "Capabilities: " & $strCapabilities & @CRLF ;$strCapabilityDescriptions = $objItem.CapabilityDescriptions(0) ;$Output = $Output & "CapabilityDescriptions: " & $strCapabilityDescriptions & @CRLF $Output = $Output & "Caption: " & $objItem.Caption & @CRLF $Output = $Output & "CompressionMethod: " & $objItem.CompressionMethod & @CRLF ;$Output = $Output & "ConfigManagerErrorCode: " & $objItem.ConfigManagerErrorCode & @CRLF ;$Output = $Output & "ConfigManagerUserConfig: " & $objItem.ConfigManagerUserConfig & @CRLF ;$Output = $Output & "CreationClassName: " & $objItem.CreationClassName & @CRLF $Output = $Output & "DefaultBlockSize: " & $objItem.DefaultBlockSize & @CRLF $Output = $Output & "Description: " & $objItem.Description & @CRLF $Output = $Output & "DeviceID: " & $objItem.DeviceID & @CRLF ;$Output = $Output & "ErrorCleared: " & $objItem.ErrorCleared & @CRLF ;$Output = $Output & "ErrorDescription: " & $objItem.ErrorDescription & @CRLF ;$Output = $Output & "ErrorMethodology: " & $objItem.ErrorMethodology & @CRLF $Output = $Output & "FirmwareRevision: " & $objItem.FirmwareRevision & @CRLF $Output = $Output & "Index: " & $objItem.Index & @CRLF $Output = $Output & "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF $Output = $Output & "InterfaceType: " & $objItem.InterfaceType & @CRLF ;$Output = $Output & "LastErrorCode: " & $objItem.LastErrorCode & @CRLF $Output = $Output & "Manufacturer: " & $objItem.Manufacturer & @CRLF $Output = $Output & "MaxBlockSize: " & $objItem.MaxBlockSize & @CRLF $Output = $Output & "MaxMediaSize: " & $objItem.MaxMediaSize & @CRLF $Output = $Output & "MediaLoaded: " & $objItem.MediaLoaded & @CRLF $Output = $Output & "MediaType: " & $objItem.MediaType & @CRLF $Output = $Output & "MinBlockSize: " & $objItem.MinBlockSize & @CRLF $Output = $Output & "Model: " & $objItem.Model & @CRLF $Output = $Output & "Name: " & $objItem.Name & @CRLF ;$Output = $Output & "NeedsCleaning: " & $objItem.NeedsCleaning & @CRLF ;$Output = $Output & "NumberOfMediaSupported: " & $objItem.NumberOfMediaSupported & @CRLF $Output = $Output & "Partitions: " & $objItem.Partitions & @CRLF $Output = $Output & "PNPDeviceID: " & $objItem.PNPDeviceID & @CRLF ;$strPowerManagementCapabilities = $objItem.PowerManagementCapabilities(0) ;$Output = $Output & "PowerManagementCapabilities: " & $strPowerManagementCapabilities & @CRLF ;$Output = $Output & "PowerManagementSupported: " & $objItem.PowerManagementSupported & @CRLF ;$Output = $Output & "SCSIBus: " & $objItem.SCSIBus & @CRLF ;$Output = $Output & "SCSILogicalUnit: " & $objItem.SCSILogicalUnit & @CRLF ;$Output = $Output & "SCSIPort: " & $objItem.SCSIPort & @CRLF ;$Output = $Output & "SCSITargetId: " & $objItem.SCSITargetId & @CRLF ;$Output = $Output & "SectorsPerTrack: " & $objItem.SectorsPerTrack & @CRLF $Output = $Output & "SerialNumber: " & $objItem.SerialNumber & @CRLF $Output = $Output & "Signature: " & $objItem.Signature & @CRLF $Output = $Output & "Size: " & $objItem.Size & @CRLF $Output = $Output & "Status: " & $objItem.Status & @CRLF $Output = $Output & "StatusInfo: " & $objItem.StatusInfo & @CRLF $Output = $Output & "SystemCreationClassName: " & $objItem.SystemCreationClassName & @CRLF $Output = $Output & "SystemName: " & $objItem.SystemName & @CRLF $Output = $Output & "TotalCylinders: " & $objItem.TotalCylinders & @CRLF $Output = $Output & "TotalHeads: " & $objItem.TotalHeads & @CRLF $Output = $Output & "TotalSectors: " & $objItem.TotalSectors & @CRLF $Output = $Output & "TotalTracks: " & $objItem.TotalTracks & @CRLF $Output = $Output & "TracksPerCylinder: " & $objItem.TracksPerCylinder & @CRLF If MsgBox(1,"WMI Output",$Output) = 2 Then ExitLoop $Output="" Next Else MsgBox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_DiskDrive" ) EndIf Func WMIDateStringToDate($dtmDate) Return (StringMid($dtmDate, 5, 2) & "/" & _ StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _ & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2)) EndFunc1 point
-
junkew, Interesting interface. I've never used it. I hope to do it with a few more simple steps: Set the start folder for the search (example 2 above) Fill out the search field in the same way as this Wait some time while the search is performed until the count of items (example 3) is stable Extract the files and folders which is the result of the search (example 4 and 5) kcvinu, I'll think about it. At least I can add the example to the list of UDFs.1 point
-
No need, as once your input is sanitized (doubling single quotes that are part of data string), the ; is just another character inside the string and can't be interpreted otherwise.1 point
-
I have put together a tool that some technicians will enjoy, these 2 scripts will Unpack INF files from 7z DriverPacks bundles and scan them for HWIDsPut a list of HWIDs and where they came from in a file and add the DeviceInstall app in the folder containing the DriverPacksDeviceInstall does the installation workI recommend having 3 folders - "NT5", "NT6 X86", and "NT6 X64". Run INFSniff on each folder, and you will have what you need to install drivers on any platform XP and up. NOTE, this WILL NOT WORK for Win2000, the DeviceAPI functions do not get along with it. REQUIREMENTS: Download the drivers from http://driverpacks.net/driverpacks/latest for the type of Windows install you want. If you are compiling DeviceInstall from the source, you must have the following files in the script directory: DeviceAPI.AU3 available at http://www.autoitscript.com/forum/index.php?showtopic=77731&hl=deviceapi&st=0 (I am using Alpha6, latest as of posting) 7z.exe (I am using V4.65.0.0) 7z.dll (I am using V4.65.0.0) (both can be pulled from the 7z installation folder) dpinst.exe (32 and 64 bit versions) as well as dpinst.xml (I am using V2.1.0.0 available as part of Windows Driver Kit Version 7.1.0 available at http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=36a2630f-5d56-43b5-b996-7633f2ec14ff) *name the 64 bit build of dpinst as "dpinst64.exe" If you are compiling INFSniff from the source, you must have the following files in the script directory: DeviceInstall.exe compiled 7z.exe 7z.dll Source for INFSniff #region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_UseUpx=n #AutoIt3Wrapper_Run_Tidy=y #endregion ;**** Directives created by AutoIt3Wrapper_GUI **** ;~ DriverPacks.net HWID extractor ;~ AKA ;~ INFSniff ;~ Coded by Ian Maxwell (llewxam @ www.driverpacks.net & www.autoitscript.com forums) ;~ AutoIt 3.3.6.1 ;~ Folder recursion routine by weaponx @ www.autoitscript.com forum #include "Array.au3" #include "StaticConstants.au3" Local $foundINF, $HWIDsplit, $HWIDArray[1] $startDir = FileSelectFolder("Select the folder containing the DriverPacks", "") $DP = FileFindFirstFile($startDir & "\*.7z") FileInstall("7z.exe", @TempDir & "\7z.exe", 1) FileInstall("7z.dll", @TempDir & "\7z.dll", 1) FileInstall("DeviceInstall.exe", $startDir & "\DeviceInstall.exe", 1) $showProg = GUICreate("INFSniff - MaxImuM AdVaNtAgE SofTWarE (C) 2010", 600, 50, @DesktopWidth / 2 - 300, @DesktopHeight / 2 - 100) $showCurrentName = GUICtrlCreateLabel("", 5, 5, 590, 20, $SS_CENTER) $prog = GUICtrlCreateProgress(5, 25, 590, 20) GUISetState(@SW_SHOW, $showProg) Do $file = FileFindNextFile($DP) If @error Then ExitLoop ;create a temp folder for cleanup later $rand = Random(200, 5000, 1) $folder = @TempDir & "\" & $rand $trimLength = StringLen($folder) + 1 GUICtrlSetData($showCurrentName, "Please wait, extracting INFs from " & $startDir & "\" & $file) RunWait(@TempDir & "\7z.exe x " & Chr(34) & $startDir & "\" & $file & Chr(34) & " -o" & Chr(34) & $folder & Chr(34) & " *.inf -r -y", "", @SW_HIDE) ;extract all INFs from the current DriverPack $foundINF = "" _Recursion($folder) ;find the INFs $INFList = StringSplit(StringTrimRight($foundINF, 1), Chr(2)) ;break the string in to an array For $a = 1 To $INFList[0] GUICtrlSetData($prog, $a / $INFList[0] * 100) GUICtrlSetData($showCurrentName, $INFList[$a]) $namePrep = StringTrimLeft($INFList[$a], $trimLength) ;lists the name of the current INF and it's path in the DP archive $where = StringInStr($namePrep, "\", 0, -1) - 1 $listName = StringMid($namePrep, 1, $where) ;strips the path from the current INF $index = _ArraySearch($HWIDArray, $file & Chr(2) & $listName & Chr(2)) If $index < 1 Then _ArrayAdd($HWIDArray, $file & Chr(2) & $listName & Chr(2)) $listNameIndex = _ArraySearch($HWIDArray, $file & Chr(2) & $listName & Chr(2)) $man = IniReadSection($INFList[$a], "Manufacturer") If @error <> 1 Then For $b = 1 To $man[0][0] $manList = $man[$b][1] If StringInStr($manList, ",") Then ;multiple items in [Manufacturer] $manBreak = StringSplit($manList, ",") $mainMan = $manBreak[1] ;"primary" manufacuter item, is used later $HWID = IniReadSection($INFList[$a], $mainMan) If @error <> 1 Then For $c = 1 To $HWID[0][0] _Rip() ;gets info from first item in [Manufacturer] Next For $d = 2 To $manBreak[0] $indivMan = StringStripWS($manBreak[$d], 8) $HWID = IniReadSection($INFList[$a], $mainMan & "." & $indivMan) If @error <> 1 Then For $c = 1 To $HWID[0][0] _Rip() ;gets the remaining items from [Manufacturer] Next EndIf Next EndIf Else ;only one item in [Manufacturer] $HWID = IniReadSection($INFList[$a], $manList) If @error <> 1 Then For $c = 1 To $HWID[0][0] _Rip() Next EndIf EndIf Next EndIf Next DirRemove($folder, 1) GUICtrlSetData($prog, 0) Until 1 = 2 GUIDelete($showProg) ;delete previous repository if already present FileDelete($startDir & "\HWIDrepository.txt") $output = FileOpen($startDir & "\HWIDrepository.txt", 1) FileWriteLine($output, _ArrayToString($HWIDArray, Chr(4), 1)) FileClose($output) MsgBox(0, "Done", "Finished sniffing the INFs, the output has been saved to:" & @CR & $startDir & "\HWIDrepository.txt") Exit Func _Rip() If StringInStr($HWID[$c][1], ",") = 0 And StringInStr($HWID[$c][1], "\") <> 0 Then If StringInStr($HWID[$c][1], ";") = 0 Then $HWIDArray[$listNameIndex] &= StringStripWS($HWID[$c][1], 8) & Chr(3) If StringInStr($HWID[$c][1], ";") Then $semiTrim = StringSplit($HWID[$c][1], ";") $HWIDArray[$listNameIndex] &= StringStripWS($semiTrim[1], 8) & Chr(3) EndIf EndIf If StringInStr($HWID[$c][1], ",") Then $HWIDsplit = StringSplit($HWID[$c][1], ",") For $l = 1 To $HWIDsplit[0] If StringInStr($HWIDsplit[$l], "\") Then If StringInStr($HWIDsplit[$l], ";") = 0 Then $HWIDArray[$listNameIndex] &= StringStripWS($HWIDsplit[$l], 8) & Chr(3) If StringInStr($HWIDsplit[$l], ";") Then $semiTrim = StringSplit($HWIDsplit[$l], ";") $HWIDArray[$listNameIndex] &= StringStripWS($semiTrim[1], 8) & Chr(3) EndIf EndIf Next EndIf EndFunc ;==>_Rip Func _Recursion($folder, $depth = 0) If $depth = 0 Then Global $RFSstring = "" $search = FileFindFirstFile($folder & "\*.*") If @error Then Return ;Search through all files and folders in directory While 1 $next = FileFindNextFile($search) If @error Then ExitLoop ;If folder, recurse If StringInStr(FileGetAttrib($folder & "\" & $next), "D") Then _Recursion($folder & "\" & $next, $depth + 1) Else ;Append filename to master string If StringLower(StringRight($folder & "\" & $next, 3)) = "inf" Then $foundINF &= $folder & "\" & $next & Chr(2) EndIf WEnd FileClose($search) If $depth = 0 Then Return StringSplit(StringTrimRight($RFSstring, 1), "*") EndFunc ;==>_Recursion Source for DeviceInstall: #RequireAdmin #region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_outfile=DeviceInstall.exe #AutoIt3Wrapper_UseUpx=n #AutoIt3Wrapper_Run_Tidy=y #endregion ;**** Directives created by AutoIt3Wrapper_GUI **** ;~ Driver Installer V2 ;~ Coded by Ian Maxwell (llewxam @ www.driverpacks.net & www.autoitscript.com forums) ;~ AutoIt 3.3.6.1 ;~ DeviceAPI & folder recursion routines by weaponx @ www.autoitscript.com forum #include "DeviceAPI.au3" #include "Array.au3" #include "GUIConstantsEx.au3" #include "StaticConstants.au3" If @OSVersion == "WIN_2000" Then MsgBox(0, "Unsupported OS", "Due to API issues, Windows 2000 is not supported at this time.") Exit EndIf Local $HWID, $foundLocations, $installed, $matches, $OSArch = @OSArch FileInstall("7z.exe", @TempDir & "\7z.exe", 1) FileInstall("7z.dll", @TempDir & "\7z.dll", 1) $rand = Random(200, 5000, 1) $folder = @TempDir & "\" & $rand DirCreate($folder) ;Build list of devices _DeviceAPI_GetClassDevices() ;Loop through all devices by index, strip out ones without a HWID While _DeviceAPI_EnumDevices() $haveHWID = _DeviceAPI_GetDeviceRegistryProperty($SPDRP_HARDWAREID) If $haveHWID <> "" Then $HWID &= _DeviceAPI_GetDeviceRegistryProperty($SPDRP_DEVICEDESC) & Chr(2) & _DeviceAPI_GetDeviceRegistryProperty($SPDRP_HARDWAREID) & Chr(2) EndIf WEnd $localHWID = StringSplit(StringTrimRight($HWID, 1), Chr(2)) $GUIWidth = @DesktopWidth - 100 $main = GUICreate("Driver Installer v2 - MaxImuM AdVaNtAgE SofTWarE (C) 2010", $GUIWidth, 145, 50, 1) $currentDeviceName = GUICtrlCreateLabel("", 5, 5, $GUIWidth - 10, 20) $currentDeviceID = GUICtrlCreateLabel("", 5, 25, $GUIWidth - 10, 20, $SS_NOPREFIX) $info = GUICtrlCreateLabel("", 5, 65, $GUIWidth - 10, 40) $prog = GUICtrlCreateProgress(5, 120, $GUIWidth - 10, 20) GUISetState(@SW_SHOW, $main) $input = FileOpen("HWIDrepository.txt", 0) $HWIDRead = FileRead($input) FileClose($input) $HWIDArray = StringSplit($HWIDRead, Chr(4)) For $a = 1 To $localHWID[0] Step 2 GUICtrlSetData($prog, $a / $localHWID[0] * 100) GUICtrlSetData($currentDeviceName, "Device Name: " & $localHWID[$a]) GUICtrlSetData($currentDeviceID, "HWID: " & StringUpper($localHWID[$a + 1])) GUICtrlSetData($info, "Looking for device driver matches") $specific = "" ;not used, but could be to further refine the results $generic = $localHWID[$a + 1] If StringInStr($generic, "SUBSYS") Then $break = StringSplit($generic, "SUBSYS", 1) $generic = StringTrimRight($break[1], 1) $specific = $break[2] EndIf For $b = 1 To $HWIDArray[0] $description = StringSplit($HWIDArray[$b], Chr(2)) If $description[3] <> "" Then $actualHWID = StringSplit($description[3], Chr(3)) For $c = 1 To $actualHWID[0] - 1 If StringInStr($actualHWID[$c], $generic) Then $matches &= $description[1] & Chr(2) & $description[2] & Chr(2) & $localHWID[$a] & Chr(3) ContinueLoop (2) EndIf Next EndIf Next Next $splitMatches = StringSplit(StringTrimRight($matches, 1), Chr(3)) $unique = _ArrayUnique($splitMatches, 1, 1) GUICtrlSetData($prog, 0) GUICtrlSetData($currentDeviceName, "") GUICtrlSetData($currentDeviceID, "") If $unique[0] > 1 Then For $a = 1 To $unique[0] $location = StringSplit($unique[$a], Chr(2)) GUICtrlSetData($info, "Found matches, extracting " & $location[2] & " from " & $location[1]) RunWait(@TempDir & "\7z.exe x " & $location[1] & " -o" & $folder & " " & $location[2] & " -r -y", "", @SW_HIDE) ;extract the current driver from the DriverPack If $OSArch = "X86" Then FileInstall("dpinst.exe", $folder & "\" & $location[2] & "\dpinst.exe", 1) If $OSArch = "X64" Then FileInstall("dpinst64.exe", $folder & "\" & $location[2] & "\dpinst.exe", 1) FileInstall("dpinst.xml", $folder & "\" & $location[2] & "\dpinst.xml", 1) $foundLocations &= $folder & "\" & $location[2] & Chr(2) & $location[1] & Chr(2) & $location[3] & Chr(2) GUICtrlSetData($prog, $a / $unique[0] * 100) Next GUICtrlSetData($currentDeviceName, "") GUICtrlSetData($currentDeviceID, "") GUICtrlSetData($prog, 0) $breakLocations = StringSplit(StringTrimRight($foundLocations, 1), Chr(2)) For $a = 1 To $breakLocations[0] Step 3 GUICtrlSetData($info, "Installing " & $breakLocations[$a + 2] & " driver") ShellExecuteWait($breakLocations[$a] & "\dpinst.exe", "/S /SA /SE /SW") GUICtrlSetData($prog, $a / $unique[0] * 100) $installed &= $breakLocations[$a + 2] & Chr(2) Next $showInstalled = StringSplit(StringTrimRight($installed, 1), Chr(2)) GUIDelete($main) $showGUI = GUICreate("Installed Divers", 600, 200, 1, 1) $showList = GUICtrlCreateList("", 5, 5, 590, 190) GUISetState(@SW_SHOW, $showGUI) For $a = 1 To $showInstalled[0] GUICtrlSetData($showList, $showInstalled[$a]) Next Else MsgBox(0, "Nothing to update", "There are no drivers avaiable that are compatible with your computer.") DirRemove($folder, 1) Exit EndIf Do $msg = GUIGetMsg() If $msg = $gui_event_close Then DirRemove($folder, 1) Exit EndIf Until 1 = 2 It is tested but only on a handful of machines, I thought it would be more fun to release it now as-is rather than sit on it for a while Enjoy Ian1 point
-
@czardas : thank you for the information I actually found the solution: #include <GUIConstantsEx.au3> #include <WinAPI.au3> #include <APIConstants.au3> $GUI = GUICreate("Test", 800, 600) GUISetState() $LABEL1 = GUICtrlCreateLabel("under", 20, 20, 500, 300) GUICtrlSetBkColor(-1, 0xFF0000) $LABEL2 = GUICtrlCreateLabel("above", 40, 60, 500, 300) GUICtrlSetBkColor(-1, 0x00FF00) GuiCtrlSetOnTop($LABEL1) Do Sleep(50) Until GUIGetMsg() = -3 Exit Func GuiCtrlSetOnTop($iCtrlID) ;Need to include <WinAPI.au3> and <APIConstants.au3> Local $hWnd = $iCtrlID If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($iCtrlID) Return _WinAPI_SetWindowPos($hWnd, $HWND_BOTTOM, 0, 0, 0, 0, $SWP_NOMOVE + $SWP_NOSIZE + $SWP_NOCOPYBITS) EndFunc This method doesn't require to tell the position or the control to be drawn ontop. I made a quick snippet that you can include in your scripts.1 point
-
Is there a way to install AutoIt on Ubuntu (Linix). Thanks...1 point