Quantcast
Channel: AutoIt v3 - General Help and Support
Viewing all 12506 articles
Browse latest View live

Need a basic Small Code as am new here-Thanks in Advance

$
0
0

I need a small code and i am very new to this. appreciate if somebody can help me

 

I have an application to upload some my office shared documents upload. i get this message. Please see the image in the below link

 

https://www.dropbox.com/s/uklfikdjakyia7x/dialog.jpg?dl=0

 

I just need this ok button to be automatically clicked when ever this window is seen on the screen

 

 

some times there can be multiple of this dialogs also..  but same dialogs

 

Please give me a script which clicks OK button. and it should keep watching the screen always. no ending.

 

 

Highly appreciate your help. I am so much thankful to you for an ealiest response

 

 


Monitor txt file for words then send alert mail

$
0
0

Hello dear friends,

 

     I hope that you can help me to complete a script in order to monitor a txt file for some wrods and if exists it will send a mail.

 

I've used this script but i think that i've made some errors on it. So help please

 

 

 

#include <INet.au3>
$TextFileName = "C:\Users\X2Z\Desktop\youssef\Adentech\Survey_Monitor_Close_Control_130\Survey Monitor Close Control 1.30\Log.txt"
$s_SmtpServer = "smtp server"
$s_FromName = "my name"
$s_Password = "my pass"
$s_FromAddress = "my email"
$s_ToAddress = "email client"
$s_Subject = "subject"
Dim $as_Body[2]
$as_Body[0] = "Alert"
$as_Body[1] = "Defaut"
; First we read the text file
$Log = FileRead($TextFileName)
; Put the contents into an array
$pageArray = StringSplit($Log, @CRLF)
; Now go through the array and look for the word failure if its found send and email
For $i = 1 To $pageArray[0]
If StringInStr($pageArray[$i], $findtext) Then $Response = _INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $as_Body, @computername, -1)

 

 

 

I hope to know too which field i must change

 

Thank you all

 

Best regards

Auto restarting an application over time

$
0
0

Hey there,
I just started my adventure with AutoIT and well, I have a problem.

Basically, I need my program to do:
1. Start an application

2. Wait 13 minutes

3. Close the application

4. Do the following all the time (infinite loop)

 

My code for now is:

  1. HotKeySet("{ESC}", "_Terminate")
  2.  
  3.  
  4.    Func RunBot()
  5.       While 1
  6.       Local $iPID = Run("directory to my application")
  7.       Sleep(780000)
  8.       ProcessClose($iPID)
  9.       WEnd
  10.    EndFunc
  11.  
  12.  
  13. Func _Terminate()
  14.    Exit
  15.  
  16. RunBot()
  17. MsgBox ($MB_OK, "program is running somehow", "this is proof that this works")

It does nothing. Even MsgBox doesn't show up.
Can someone kindly help me please?

Autoit script for different language window

$
0
0

Hi,

 

I am writing script to handle the windows based on title, But title will vary for different language.

Is there any possibility to get the window handle for different language?

 

   ;Get "Preference" popup
   $hWnd = WinWait("Preferences", "", 30)

   If($hWnd <> 0) Then

 

 

 ;Wait for "Delete" confirmation popup to appear
   Local  $hWndPopup = WinWait("Remove Computer?", "", 5)
   If($hWndPopup <> 0) Then

 

Note:

I can't use the "Class" name to get window handle because, more then one window has same class name.

 

Thanks,

ShellExecute issues

$
0
0

I've successfully used ShellExecute in the past, which just perplexes me all the more.  The following code gives me an error: This file does not have a program associated with it for performing this action.

ShellExecute ("C:\Program Files (x86)\Microsoft Office\Office14\POWERPNT.EXE", "C:\Users\keitht\Desktop\New Microsoft PowerPoint Presentation.ppsx", "", "Show", @SW_MAXIMIZE)

It seems that the action in the error is the verb Show in the code, and it's true that powerpnt.exe has no "Show" verb, the slideshow (.ppsx) does.  The slideshow is currently opening in Edit mode.  How do I get it to open as a slideshow?

 

Thanks,

 

_aleph_

 

 

 

Internet Explorer Options Automation

$
0
0

So here is the situation:

     At my work I need to set multiple computers to the checkbox "Delete browsing history on exit" while searching for a way to quickly launch IE and move to tools to do this, I found that IE does not like to receive the ALT key.

 

SO I guess my question is: Can someone point me in a direction to get IE to receive the ALT key?  I'm sure it is really simple, but I haven't been able to find much on the forums about it.

 

 

Oh and Hello! I'm happy to finally join! :sweating:

Control Viewer

$
0
0

I just tried to run (Interactive) Control Viewer v1.1 with the changes mentioned by BrewManNH here:

http://www.autoitscript.com/forum/topic/126716-control-viewer-autoit-window-info-tool/page-3#entry1091015

 

I'm getting an error saying:

CV.au3" (2647) : ==> Duplicate function name.:
Func _GDIPlus_BitmapGetPixel($hBitmap, $iX, $iY)

 

If I try to compile it I get this error:

CVCompileError.jpg

AutoIt         
#NoTrayIcon #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=Resources\CV.ico #AutoIt3Wrapper_Outfile=CV.exe #AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -delete %out%, %out%, Dialog, 1000, #AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -delete %out%, %out%, Icon, 162, #AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -delete %out%, %out%, Icon, 164, #AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -delete %out%, %out%, Icon, 169, #AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -delete %out%, %out%, Menu, 166, #AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -delete %out%, %out%, VersionInfo, 1, #AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -delete "%out%", "%out%", 24, 1, #AutoIt3Wrapper_Run_After=Utilities\ResHacker.exe -add %out%, %out%, Resources\CV.res,,, #AutoIt3Wrapper_Run_After=del CV_Obfuscated.au3 #AutoIt3Wrapper_Run_After=del Utilities\ResHacker.ini #AutoIt3Wrapper_Run_After=del Utilities\ResHacker.log #AutoIt3Wrapper_Run_Obfuscator=Y #Obfuscator_Parameters=/striponly #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #cs ----------------------------------------------------------------------------     AutoIt Version: 3.3.6.1     Author:         Yashied     Script Function:         (Control Viewer v1.1) AutoIt Window Information Tool #ce ---------------------------------------------------------------------------- #Region Resources ;~#AutoIt3Wrapper_Run_After=Utilities\Upx.exe "%out%" --best --no-backup --overlay=copy --compress-exports=1 --compress-resources=0 --strip-relocs=1 #EndRegion Resources #Region Initialization #Include <Array.au3> #Include <ComboConstants.au3> #Include <Constants.au3> #Include <GDIPlus.au3> #Include <GUIComboBox.au3> #Include <GUIConstantsEx.au3> #Include <GUIEdit.au3> #Include <GUIImageList.au3> #Include <GUIListView.au3> #Include <GUIMenu.au3> #Include <GUITab.au3> #Include <HeaderConstants.au3> #Include <Math.au3> #Include <StaticConstants.au3> #Include <TabConstants.au3> #Include <APIConstants.au3> ;~ #Include "UDFs\APIErrors.au3" #Include "UDFs\ColorChooser.au3" #Include <WinAPIEx.au3> ;~Opt('GUICloseOnESC', 0) Opt('GUIResizeMode', BitOR($GUI_DOCKLEFT, $GUI_DOCKTOP, $GUI_DOCKWIDTH, $GUI_DOCKHEIGHT)) Opt('MustDeclareVars', 1) Opt('WinTitleMatchMode', 3) Opt('WinWaitDelay', 0) Global Const $GUI_NAME = 'Control Viewer' Global Const $GUI_VERSION = '1.1' ;~Global Const $GUI_UNIQUE = $GUI_NAME & '_' & $GUI_VERSION & '_CvrXp' Global Const $GUI_UNIQUE = $GUI_NAME & '_CvrXp' Global Const $REG_KEY_NAME = 'HKCU\Software\Y''s\' & $GUI_NAME Global Const $STM_SETIMAGE = 0x0172 Global Const $STM_GETIMAGE = 0x0173 Global Const $Style[31][2] = _     [[0x00000004, 'DS_3DLOOK'], _      [0x00000001, 'DS_ABSALIGN'], _      [0x00000800, 'DS_CENTER'], _      [0x00001000, 'DS_CENTERMOUSE'], _      [0x00002000, 'DS_CONTEXTHELP'], _      [0x00000400, 'DS_CONTROL'], _      [0x00000008, 'DS_FIXEDSYS'], _      [0x00000020, 'DS_LOCALEDIT'], _      [0x00000080, 'DS_MODALFRAME'], _      [0x00000010, 'DS_NOFAILCREATE'], _      [0x00000100, 'DS_NOIDLEMSG'], _      [0x00000040, 'DS_SETFONT'], _      [0x00000200, 'DS_SETFOREGROUND'], _      [0x00000002, 'DS_SYSMODAL'], _      [0x00800000, 'WS_BORDER'], _      [0x00C00000, 'WS_CAPTION'], _      [0x40000000, 'WS_CHILD'], _      [0x02000000, 'WS_CLIPCHILDREN'], _      [0x04000000, 'WS_CLIPSIBLINGS'], _      [0x08000000, 'WS_DISABLED'], _      [0x00400000, 'WS_DLGFRAME'], _      [0x00020000, 'WS_GROUP'], _      [0x00100000, 'WS_HSCROLL'], _      [0x01000000, 'WS_MAXIMIZE'], _      [0x20000000, 'WS_MINIMIZE'], _      [0x80000000, 'WS_POPUP'], _      [0x00040000, 'WS_SIZEBOX'], _      [0x00080000, 'WS_SYSMENU'], _      [0x00010000, 'WS_TABSTOP'], _      [0x10000000, 'WS_VISIBLE'], _      [0x00200000, 'WS_VSCROLL']] Global Const $ExStyle[21][2] = _     [[0x00000010, 'WS_EX_ACCEPTFILES'], _      [0x00040000, 'WS_EX_APPWINDOW'], _      [0x00000200, 'WS_EX_CLIENTEDGE'], _      [0x02000000, 'WS_EX_COMPOSITED'], _      [0x00000400, 'WS_EX_CONTEXTHELP'], _      [0x00010000, 'WS_EX_CONTROLPARENT'], _      [0x00000001, 'WS_EX_DLGMODALFRAME'], _      [0x00080000, 'WS_EX_LAYERED'], _      [0x00400000, 'WS_EX_LAYOUTRTL'], _      [0x00004000, 'WS_EX_LEFTSCROLLBAR'], _      [0x00000040, 'WS_EX_MDICHILD'], _      [0x08000000, 'WS_EX_NOACTIVATE'], _      [0x00100000, 'WS_EX_NOINHERITLAYOUT'], _      [0x00000004, 'WS_EX_NOPARENTNOTIFY'], _      [0x00001000, 'WS_EX_RIGHT'], _      [0x00002000, 'WS_EX_RTLREADING'], _      [0x00020000, 'WS_EX_STATICEDGE'], _      [0x00000080, 'WS_EX_TOOLWINDOW'], _      [0x00000008, 'WS_EX_TOPMOST'], _      [0x00000020, 'WS_EX_TRANSPARENT'], _      [0x00000100, 'WS_EX_WINDOWEDGE']] Global $_XPos = 8 ; ((-1) - Default) Global $_YPos = 8 ; ((-1) - Default) ;~Global $_About = 0 ; (1/0) Global $_Width = 421 Global $_Height = 653 Global $_Top = 1 ; (0/1) Global $_Position = 0 ; (0 - Absolute; 1 - Window; 2 - Client; 3 - Control) Global $_Color = 0 ; (0 - RGB; 1 - BGR) Global $_Crosshair = 1 ; (0/1) Global $_Highlight = 1 ; (0/1) Global $_Frame = 0xFF0000 Global $_Alpha = 192 Global $_Fade = 1 ; (0/1) Global $_Code = 1 ; (0 - ANSI; 1 - Unicode; 2 - Unicode (Big Endian); 3 - UTF8) Global $_Icon = 1 ; (0/1) Global $_Tab = 0 ; (0 - Window; 1 - Control; 2 - Capture; 3 - AutoIt) Global $_Rgb[3] = [0x000000, 0x9C9C9C, 0xE00000] ; (Visible, Hidden, Missing) Global $_Column[11] = [98 + 48 * @AutoItX64, 176 - 48 * @AutoItX64, 38, 44, 124, 44, 82 + 48 * @AutoItX64, 124, 140, 60, 267] ; (Handle, Class, NN, ID | Process, PID, Handle, Class, Title, Version, Path) Global $_Crop[2] = [349, 223] ; (Width, Height) Global $_Capture = 0 ; (0/1) Global $_All = 0 ; (0/1) _ApplicationCheck() _ReadRegistry() Global $hWnd[2], $hForm, $hFrame, $hPopup = 0 Global $hPic[2], $hHeader[2], $hTab, $hAutoIt, $hListView, $hIL, $Combo[2], $Dummy[7], $Group, $Icon[2], $Input[31], $Label[5], $Menu[21], $Pic, $Tab Global $Accel[5][2] = [['^a'], ['^d'], ['^!t'], ['^!h'], ['{ENTER}']] Global $Col[2] = [0xFF000000, 0] Global $hCursor[8], $hBitmap, $hAbout = 0, $hRoot = 0, $hOver = 0, $hPrev = 0, $hRect = 0, $hDesktop = 0 Global $Browser = False, $Ctrl = False, $Enum = False, $Fade = False, $Hold = False, $Refresh = False Global $Count, $Data, $ID, $Item, $Key, $List, $Msg, $Alpha = 0, $Area = 0, $Resize = -1 Global $dX, $dY, $Xi, $Yi, $Xk, $Yk, $Xn, $Yn, $Xp, $Yp, $Ci, $Cp, $Wp, $Hp Global $hFile, $hInstance = _WinAPI_GetModuleHandle(0) Global $PathDlg = @WorkingDir Global $tPoint, $tRect If Not @compiled Then     For $i = 0 To 7         $hCursor[$i] = _WinAPI_LoadCursorFromFile(@ScriptDir & '\Resources\' & (100 + $i) & '.cur')     Next Else     For $i = 0 To 7         $hCursor[$i] = _WinAPI_LoadCursor($hInstance, 100 + $i)     Next EndIf If _WinAPI_IsThemeActive() Then     $Col[0] = 0xFF3E60C5     $Col[1] = 0x1E3E60C5 EndIf If _WinAPI_GetSystemMetrics($SM_SWAPBUTTON) Then     $Key = 0x02 Else     $Key = 0x01 EndIf _GDIPlus_Startup() ;~_About() _GUICreate() OnAutoItExitRegister('AutoItExit') #EndRegion Initialization #Region Body While 1     If (($hRoot) And (Not _WinAPI_IsWindowVisible($hRoot))) Then         _ShowFrame(0)         _Update(1)         $hRoot = 0         $hOver = 0     EndIf     If (($hOver) And (Not _WinAPI_IsWindowVisible($hOver))) Or (($hRect) And (Not  WinActive($hForm))) Then         _ShowFrame(0)         $hOver = 0     EndIf     If _IsDown(0x11) Then         If Not $Ctrl Then             _SendMessage($hForm, $WM_SETCURSOR)         EndIf         $Ctrl = 1     Else         If $Ctrl Then             _SendMessage($hForm, $WM_SETCURSOR)         EndIf         $Ctrl = 0     EndIf     $Msg = GUIGetMsg()     Switch $Msg         Case 0             ContinueLoop         Case $GUI_EVENT_CLOSE             Exit         Case $Icon[0]             _ShowFrame(0)             _WinAPI_SetFocus($hListView)             If Not @compiled Then                 GUICtrlSetImage($Icon[0], @ScriptDir & '\Resources\201.ico')             Else                 GUICtrlSetImage($Icon[0], @ScriptFullPath, 201)             EndIf             $Browser = 1             $Xp = -1             $Yp = -1             $Cp = -1             $hRoot = 0             $hOver = 0             $hPrev = _WinAPI_CopyCursor(_WinAPI_LoadCursor(0, $IDI_APPLICATION))             If $hPrev Then                 _WinAPI_SetSystemCursor($hCursor[0], $IDI_APPLICATION, 1)             EndIf             Opt('GUIOnEventMode', 1)             GUISetState(@SW_DISABLE, $hForm)             While _IsDown($Key) ;~              If $hRect Then ;~                  WinSetOnTop($hFrame, '', 1) ;~              EndIf ;~              Sleep(1)                 $tPoint = _WinAPI_GetMousePos()                 $Xi = DllStructGetData($tPoint, 1)                 $Yi = DllStructGetData($tPoint, 2)                 If $Fade Then                     $Ci = -1                 EndIf                 If ($Xi <> $Xp) Or ($Yi <> $Yp) Or ($Ci <> $Cp) Then                     $hBitmap = _Capture_X3($Xi - 11, $Yi - 11, 23, 23, 69, 69)                     $Ci = @extended                     If $hBitmap Then                         If $Ci <> $Cp Then                             GUICtrlSetBkColor($Label[0], $Ci)                             Switch $_Color                                 Case 0 ; RGB                                     $Data = $Ci                                 Case 1 ; BGR                                     $Data = _WinAPI_SwitchColor($Ci)                             EndSwitch                             GUICtrlSetData($Input[2], '0x' & Hex($Data, 6))                         EndIf                     Else                         If $Ci <> $Cp Then                             GUICtrlSetBkColor($Label[0], _WinAPI_SwitchColor(_WinAPI_GetSysColor($COLOR_3DFACE)))                             GUICtrlSetData($Input[2], '')                         EndIf                     EndIf                     _SetBitmap($hPic[0], $hBitmap)                     If $_Capture Then                         _SetBitmap($hPic[1], _Capture_X1($Xi - Floor(($_Crop[0] - 10) / 2), $Yi - Floor(($_Crop[1] - 10) / 2), $_Crop[0] - 10, $_Crop[1] - 10, $Col[0], 0, 1), 1)                         If BitAND(GUICtrlGetState($Label[4]), $GUI_SHOW) Then                             GUICtrlSetState($Label[4], $GUI_HIDE)                         EndIf                     EndIf                     $Xp = $Xi                     $Yp = $Yi                     $Cp = $Ci                 EndIf                 $hWnd[0] = _WinAPI_GetAncestor(_WinAPI_WindowFromPoint($tPoint), $GA_ROOT)                 Switch $_Position                     Case 0 ; Absolute                         For $i = 0 To 1                             _SetData($Input[$i], DllStructGetData($tPoint, $i + 1))                         Next                     Case 1, 2 ; Window, Client                         If ($hWnd[0] = $hForm) Or ($hWnd[0] = $hFrame) Then                             If _WinAPI_IsWindow($hRoot) Then                                 $Data = $hRoot                             Else                                 $Data = 0                             EndIf                         Else                             $Data = $hWnd[0]                         EndIf                         If $Data Then                             Switch $_Position                                 Case 1 ; Window                                     $tRect = _WinAPI_GetWindowRect($Data)                                 Case 2 ; Client                                     $tRect = _WinAPI_GetClientRect($Data)                                     If _WinAPI_ScreenToClient($Data, $tRect) Then                                         For $i = 1 To 2                                             DllStructSetData($tRect, $i + 2, DllStructGetData($tRect, $i + 2) - DllStructGetData($tRect, $i))                                             DllStructSetData($tRect, $i, -DllStructGetData($tRect, $i))                                         Next                                     Else                                         $tRect = 0                                     EndIf                             EndSwitch                         Else                             $tRect = 0                         EndIf ;~                      If True Then                             If _PtInRect($tRect, $tPoint) Then                                 For $i = 0 To 1                                     _SetData($Input[$i], DllStructGetData($tPoint, $i + 1) - DllStructGetData($tRect, $i + 1))                                 Next                             Else                                 For $i = 0 To 1                                     _SetData($Input[$i], '')                                 Next                             EndIf ;~                      EndIf                     Case 3 ; Control                         If ($hWnd[0] = $hForm) Or ($hWnd[0] = $hFrame) Then                             If $hOver Then                                 $tRect = _WinAPI_GetWindowRect($hOver)                             Else                                 $tRect = 0                             EndIf                             If _PtInRect($tRect, $tPoint) Then                                 For $i = 0 To 1                                     _SetData($Input[$i], DllStructGetData($tPoint, $i + 1) - DllStructGetData($tRect, $i + 1))                                 Next                             Else                                 For $i = 0 To 1                                     _SetData($Input[$i], '')                                 Next                             EndIf                         EndIf                 EndSwitch                 If ($hWnd[0] = $hForm) Or ($hWnd[0] = $hFrame) Then                     If ($hOver) And (Not _WinAPI_IsWindowVisible($hOver)) Then                         If $hRect Then                             _ShowFrame(0)                         EndIf                         $Xp = -1                         $Yp = -1                         $Cp = -1                     EndIf                     ContinueLoop                 EndIf                 $hWnd[1] = 0                 $List = _WinAPI_EnumChildWindows($hWnd[0], 0)                 If @error Then                     $Count = 0                 Else                     $Count = $List[0][0]                     For $i = $Count To 1 Step -1                         If Not _WinAPI_IsWindowVisible($List[$i][0]) Then                             ContinueLoop                         EndIf                         $tRect = _WinAPI_GetWindowRect($List[$i][0])                         If _PtInRect($tRect, $tPoint) Then                             $hWnd[1] = $List[$i][0]                             ExitLoop                         EndIf                     Next                 EndIf                 Switch $_Position                     Case 0, 1, 2 ; Absolute, Window, Client                     Case 3 ; Control                         If $hWnd[1] Then                             For $i = 0 To 1                                 _SetData($Input[$i], DllStructGetData($tPoint, $i + 1) - DllStructGetData($tRect, $i + 1))                             Next                         Else                             For $i = 0 To 1                                 _SetData($Input[$i], '')                             Next                         EndIf                 EndSwitch                 If ($hWnd[0] = $hRoot) And ($hWnd[1] = $hOver) Then                     ContinueLoop                 EndIf                 If ($hWnd[0] = $hRoot) Then ;~                  _SetWindowInfo($hWnd[0], 1)                 Else                     _SetWindowInfo($hWnd[0])                 EndIf                 _GUICtrlListView_BeginUpdate($hListView)                 If ($hWnd[0] = $hRoot) And (_GUICtrlListView_GetItemCount($hListView) = $Count) Then                     $Item = _GUICtrlListView_FindText($hListView, $hWnd[1], -1, 0) ;~                  If ($hWnd[1]) And ($Item = -1) Then ;~                  EndIf                 Else                     $Enum = 1                     _GUICtrlListView_DeleteAllItems($hListView)                     $Item = -1                     For $i = 1 To $Count                         _GUICtrlListView_AddItem($hListView, $List[$i][0])                         _GUICtrlListView_AddSubItem($hListView, $i - 1, $List[$i][1], 1) ;~                      _GUICtrlListView_AddSubItem($hListView, $i - 1, StringLeft(ControlGetText($hWnd[0], '', $List[$i][0]), 80), 4)                         $ID = _WinAPI_GetDlgCtrlID($List[$i][0])                         If $ID > 0 Then                             _GUICtrlListView_AddSubItem($hListView, $i - 1, $ID, 3)                         EndIf                     Next                     For $i = 1 To $Count                         If ($List[$i][0] = $hWnd[1]) Then                             $Item = $i - 1                         EndIf                         If ($List[$i][1]) And (IsString($List[$i][1])) Then                             $ID = 1                             $Data = $List[$i][1]                             For $j = $i To UBound($List) - 1                                 If $List[$j][1] = $Data Then                                     $List[$j][1] = $ID                                     $ID += 1                                 EndIf                             Next                         EndIf                     Next                     For $i = 1 To $Count                         _GUICtrlListView_AddSubItem($hListView, $i - 1, $List[$i][1], 2)                         If _WinAPI_IsWindowVisible($List[$i][0]) Then                             _GUICtrlListView_SetItemChecked($hListView, $i - 1)                         EndIf                     Next                     $Enum = 0                 EndIf                 If $Item = -1 Then                     $Item = _GUICtrlListView_GetSelectedIndices($hListView)                     If $Item  Then                         _GUICtrlListView_SetItemSelected($hListView, $Item, 0, 0)                         _GUICtrlListView_SetItemFocused($hListView, $Item, 0)                     EndIf                     _SetControlInfo(0)                 Else                     _GUICtrlListView_SetItemSelected($hListView, $Item, 1, 1)                     _GUICtrlListView_EnsureVisible($hListView, $Item, 1)                 EndIf                 _GUICtrlListView_EndUpdate($hListView)                 If $hWnd[1] Then                     _ShowFrame(1, $tRect, $hWnd[0])                 Else                     _ShowFrame(0)                 EndIf                 $hRoot = $hWnd[0]                 $hOver = $hWnd[1]             WEnd             If $hDesktop Then                 _WinAPI_DeleteObject($hDesktop)             EndIf             $hDesktop = _Capture_Desktop()             If Not $_Capture Then                 _SetBitmap($hPic[1], _Capture_X1($Xp - Floor(($_Crop[0] - 10) / 2), $Yp - Floor(($_Crop[1] - 10) / 2), $_Crop[0] - 10, $_Crop[1] - 10, $Col[0], 0, 1), 1)                 If BitAND(GUICtrlGetState($Label[4]), $GUI_SHOW) Then                     GUICtrlSetState($Label[4], $GUI_HIDE)                 EndIf             EndIf             _ShowFrame(0)             If $hPrev Then                 _WinAPI_SetSystemCursor($hPrev, $IDI_APPLICATION, 1)             EndIf             $hPrev = 0             $hOver = 0             $Browser = 0             If Not @compiled Then                 GUICtrlSetImage($Icon[0], @ScriptDir & '\Resources\202.ico')             Else                 GUICtrlSetImage($Icon[0], @ScriptFullPath, 202)             EndIf             GUISetState(@SW_ENABLE, $hForm)             Opt('GUIOnEventMode', 0)             WinActivate($hForm)             If Not FileExists(GUICtrlRead($Input[15])) Then                 GUICtrlSetState($Icon[1], $GUI_DISABLE)             Else                 GUICtrlSetState($Icon[1], $GUI_ENABLE)             EndIf             If Not $hRoot Then                 GUICtrlSetState($Menu[0], $GUI_DISABLE)             Else                 GUICtrlSetState($Menu[0], $GUI_ENABLE)             EndIf         Case $Icon[1]             $Data = GUICtrlRead($Input[15])             If $Data Then                 _WinAPI_ShellOpenFolderAndSelectItems($Data) ;~              If @error Then ;~              EndIf             EndIf         Case $Dummy[0]             $Data = GUICtrlRead($Dummy[0])             If Not _GUICtrlListView_GetSelectedIndices($hListView) Then                 _GUICtrlListView_SetItemSelected($hListView, $Data, 1, 1)             EndIf         Case $Dummy[1]             $Data = GUICtrlRead($Dummy[1])             $Data = Ptr(_GUICtrlListView_GetItemText($hListView, $Data))             If ($Data) And (_WinAPI_IsWindow($Data)) Then                 _SetControlInfo($Data) ;~          Else ;~              _SetControlInfo(0)             EndIf         Case $Dummy[2]             If Not _GetCursor($Xi, $Yi, $hForm) Then                 ContinueLoop             EndIf             $ID = _IsCrop($Xi, $Yi, $dX, $dY)             Switch $ID                 Case 0                     If (Not $hDesktop) Or (Not _IsDown(0x11)) Then                         ContinueLoop                     EndIf                     $Xk = Default                     $Yk = Default                     $Xn = $Xp                     $Yn = $Yp                     $dX = $Xi                     $dY = $Yi                     $Resize = 2                 Case 1, 5                     $Resize = 3                 Case 2, 6                     $Resize = 4                 Case 3, 7                     $Resize = 5                 Case 4, 8                     $Resize = 6                 Case Else                     ContinueLoop             EndSwitch             $Wp = 0             $Hp = 0             Opt('GUIOnEventMode', 1)             While _IsDown($Key) ;~              Sleep(1)                 If Not _GetCursor($Xi, $Yi, $hForm) Then                     ContinueLoop                 EndIf                 Switch $ID                     Case 0                         $Xp = $Xn - $Xi + $dX                         $Yp = $Yn - $Yi + $dY                     Case 1                         If $Xi - $dX < 38  Then                             $Xi = 38  + $dX                         EndIf                         If $Xi - $dX > 191 Then                             $Xi = 191 + $dX                         EndIf                         If $Yi - $dY < 173 Then                             $Yi = 173 + $dY                         EndIf                         If $Yi - $dY > 263 Then                             $Yi = 263 + $dY                         EndIf                         $_Crop[0] = 349 - 2 * ($Xi - $dX - 38 )                         $_Crop[1] = 223 - 2 * ($Yi - $dY - 173)                     Case 2                         If $Yi - $dY < 173 Then                             $Yi = 173 + $dY                         EndIf                         If $Yi - $dY > 263 Then                             $Yi = 263 + $dY                         EndIf                         $_Crop[1] = 223 - 2 * ($Yi - $dY - 173)                     Case 3                         If $Xi - $dX < 229 Then                             $Xi = 229 + $dX                         EndIf                         If $Xi - $dX > 382 Then                             $Xi = 382 + $dX                         EndIf                         If $Yi - $dY < 173 Then                             $Yi = 173 + $dY                         EndIf                         If $Yi - $dY > 263 Then                             $Yi = 263 + $dY                         EndIf                         $_Crop[0] = 349 + 2 * ($Xi - $dX - 382)                         $_Crop[1] = 223 - 2 * ($Yi - $dY - 173)                     Case 4                         If $Xi - $dX < 229 Then                             $Xi = 229 + $dX                         EndIf                         If $Xi - $dX > 382 Then                             $Xi = 382 + $dX                         EndIf                         $_Crop[0] = 349 + 2 * ($Xi - $dX - 382)                     Case 5                         If $Xi - $dX < 229 Then                             $Xi = 229 + $dX                         EndIf                         If $Xi - $dX > 382 Then                             $Xi = 382 + $dX                         EndIf                         If $Yi - $dY < 301 Then                             $Yi = 301 + $dY                         EndIf                         If $Yi - $dY > 391 Then                             $Yi = 391 + $dY                         EndIf                         $_Crop[0] = 349 + 2 * ($Xi - $dX - 382)                         $_Crop[1] = 223 + 2 * ($Yi - $dY - 391)                     Case 6                         If $Yi - $dY < 301 Then                             $Yi = 301 + $dY                         EndIf                         If $Yi - $dY > 391 Then                             $Yi = 391 + $dY                         EndIf                         $_Crop[1] = 223 + 2 * ($Yi - $dY - 391)                     Case 7                         If $Xi - $dX < 38  Then                             $Xi = 38  + $dX                         EndIf                         If $Xi - $dX > 191 Then                             $Xi = 191 + $dX                         EndIf                         If $Yi - $dY < 301 Then                             $Yi = 301 + $dY                         EndIf                         If $Yi - $dY > 391 Then                             $Yi = 391 + $dY                         EndIf                         $_Crop[0] = 349 - 2 * ($Xi - $dX - 38 )                         $_Crop[1] = 223 + 2 * ($Yi - $dY - 391)                     Case 8                         If $Xi - $dX < 38  Then                             $Xi = 38  + $dX                         EndIf                         If $Xi - $dX > 191 Then                             $Xi = 191 + $dX                         EndIf                         $_Crop[0] = 349 - 2 * ($Xi - $dX - 38 )                 EndSwitch                 Switch $ID                     Case 0                     Case 1, 3, 5, 7                         If _IsDown(0x10) Then                             If $_Crop[0] > $_Crop[1] Then                                 $_Crop[0] = $_Crop[1]                             Else                                 $_Crop[1] = $_Crop[0]                             EndIf                         EndIf                 EndSwitch                 If ($Xp <> $Xk) Or ($Yp <> $Yk) Or ($Wp <> $_Crop[0]) Or ($Hp <> $_Crop[1]) Then                     If $hDesktop Then                         $hBitmap = _Capture_X1($Xp - Floor(($_Crop[0] - 10) / 2), $Yp - Floor(($_Crop[1] - 10) / 2), $_Crop[0] - 10, $_Crop[1] - 10, $Col[0], 0, 1, 0, $hDesktop)                     Else                         $hBitmap = _Capture_X1(0, 0, $_Crop[0] - 10, $_Crop[1] - 10, $Col[0], $Col[1], 0, 0)                         If $_Crop[0] - 10 < 187 Then                             If BitAND(GUICtrlGetState($Label[4]), $GUI_SHOW) Then                                 GUICtrlSetState($Label[4], $GUI_HIDE)                             EndIf                         Else                             If BitAND(GUICtrlGetState($Label[4]), $GUI_HIDE) Then                                 GUICtrlSetState($Label[4], $GUI_SHOW)                             EndIf                         EndIf                     EndIf                     $tPoint = _WinAPI_CreatePoint(36 + Floor((349 - $_Crop[0]) / 2), 171 + Floor((223 - $_Crop[1]) / 2))                     _WinAPI_ClientToScreen($hForm, $tPoint)                     $Xi = DllStructGetData($tPoint, 1)                     $Yi = DllStructGetData($tPoint, 2)                     If Not $hPopup Then                         $hPopup = GUICreate('', 100, 100, $Xi, $Yi, BitOR($WS_DISABLED, $WS_POPUP), BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST), $hForm)                         GUISetState(@SW_SHOWNOACTIVATE, $hPopup)                         Switch $ID                             Case 0                             Case Else                                 GUICtrlSetState($Pic, $GUI_HIDE)                         EndSwitch                     EndIf                     _WinAPI_UpdateLayeredWindowEx($hPopup, $Xi, $Yi, $hBitmap, 255, 1) ;~                  _WinAPI_DeleteObject($hBitmap)                     $Wp = $_Crop[0]                     $Hp = $_Crop[1]                     $Xk = $Xp                     $Yk = $Yp                 EndIf             WEnd             Opt('GUIOnEventMode', 0)             GUICtrlSetPos($Pic, 36 + Floor((349 - $_Crop[0]) / 2), 171 + Floor((223 - $_Crop[1]) / 2), $_Crop[0], $_Crop[1])             If $hDesktop Then                 _SetBitmap($hPic[1], _Capture_X1($Xp - Floor(($_Crop[0] - 10) / 2), $Yp - Floor(($_Crop[1] - 10) / 2), $_Crop[0] - 10, $_Crop[1] - 10, $Col[0], 0, 1, 0, $hDesktop), 1)             Else                 _SetBitmap($hPic[1], _Capture_X1(0, 0, $_Crop[0] - 10, $_Crop[1] - 10, $Col[0], $Col[1]), 1)             EndIf             Switch $ID                 Case 0                 Case Else                     GUICtrlSetState($Pic, $GUI_SHOW)             EndSwitch             GUIDelete($hPopup)             $hPopup = 0             $Resize =-1 ;~          If True Then                 _SendMessage($hForm, $WM_SETCURSOR) ;~          EndIf         Case $Dummy[3]             If Not _ShellSaveDlg($hForm) Then                 MsgBox(16, $GUI_NAME, 'Unable to save image.', 0, $hForm)             EndIf         Case $Dummy[4]             $Data = _GUICtrlListView_GetSelectedIndices($hAutoIt)             If $Data Then                 $Data = _GUICtrlListView_GetItemText($hAutoIt, $Data, 6)                 If $Data Then                     _WinAPI_ShellOpenFolderAndSelectItems($Data) ;~                  If @error Then ;~                  EndIf                 EndIf             EndIf         Case $Dummy[5]             $Data = _GUICtrlListView_GetSelectedIndices($hAutoIt)             If $Data Then                 $Data = _GUICtrlListView_GetItemText($hAutoIt, $Data, 1)                 If $Data Then                     If _ShellKillProcess($Data, $hForm) Then                         _SetAutoItInfo()                     EndIf                 EndIf             EndIf         Case $Dummy[6]             _SetAutoItInfo()         Case $Combo[0]             $Data = _GUICtrlComboBox_GetCurSel($Combo[0])             If $Data <> $_Position Then                 $_Position = $Data                 For $i = 0 To 1                     GUICtrlSetData($Input[$i], '')                 Next             EndIf         Case $Combo[1]             $Data = _GUICtrlComboBox_GetCurSel($Combo[1])             If $Data <> $_Color Then                 $_Color = $Data                 $Data = GUICtrlRead($Input[2])                 If $Data Then                     GUICtrlSetData($Input[2], '0x' & Hex(_WinAPI_SwitchColor(Number($Data)), 6))                 EndIf             EndIf         Case $Label[1]             $Data = _ColorChooserDialog($_Rgb[0], $hForm, 0, 0, BitOR($CC_FLAG_SOLIDCOLOR, $CC_FLAG_CAPTURECOLOR))             If ($Data <> -1) And ($Data <> $_Rgb[0]) Then                 $_Rgb[0] = $Data                 GUICtrlSetBkColor($Label[1], $Data) ;~              If True Then                     _WinAPI_InvalidateRect($hListView) ;~              EndIf                 If $_Tab = 3 Then                     _WinAPI_InvalidateRect($hAutoIt)                 EndIf             EndIf         Case $Label[2]             $Data = _ColorChooserDialog($_Rgb[1], $hForm, 0, 0, BitOR($CC_FLAG_SOLIDCOLOR, $CC_FLAG_CAPTURECOLOR))             If ($Data <> -1) And ($Data <> $_Rgb[1]) Then                 $_Rgb[1] = $Data                 GUICtrlSetBkColor($Label[2], $Data) ;~              If True Then                     _WinAPI_InvalidateRect($hListView) ;~              EndIf                 If $_Tab = 3 Then                     _WinAPI_InvalidateRect($hAutoIt)                 EndIf             EndIf         Case $Label[3]             $Data = _ColorChooserDialog($_Rgb[2], $hForm, 0, 0, BitOR($CC_FLAG_SOLIDCOLOR, $CC_FLAG_CAPTURECOLOR))             If ($Data <> -1) And ($Data <> $_Rgb[2]) Then                 $_Rgb[2] = $Data                 GUICtrlSetBkColor($Label[3], $Data) ;~              If True Then                     _WinAPI_InvalidateRect($hListView) ;~              EndIf                 If $_Tab = 3 Then                     _WinAPI_InvalidateRect($hAutoIt)                 EndIf             EndIf         Case $Menu[1 ] ; "Copy To Clipboard"             $Data = _CreateReport()             If $Data Then                 ClipPut($Data)             EndIf         Case $Menu[2 ] ; "Save As..."             If Not _ShellReportDlg($hForm) Then                 MsgBox(16, $GUI_NAME, 'Unable to save report.', 0, $hForm)             EndIf         Case $Menu[3 ] ; "Exit"             Exit         Case $Menu[4 ] ; "Always On Top"             $_Top = Not $_Top             If $_Top Then                 GUICtrlSetState($Menu[4 ], $GUI_CHECKED)             Else                 GUICtrlSetState($Menu[4 ], $GUI_UNCHECKED)             EndIf             WinSetOnTop($hForm, '', $_Top)         Case $Menu[5 ] ; "Crosshair"             $_Crosshair = Not $_Crosshair             If $_Crosshair Then                 GUICtrlSetState($Menu[5 ], $GUI_CHECKED)             Else                 GUICtrlSetState($Menu[5 ], $GUI_UNCHECKED)             EndIf             GUICtrlSetBkColor($Label[0], _WinAPI_SwitchColor(_WinAPI_GetSysColor($COLOR_3DFACE)))             GUICtrlSetData($Input[2], '')             _SetBitmap($hPic[0], 0)         Case $Menu[6 ] ; "Capture While Tracking"             $_Capture = Not $_Capture             If $_Capture Then                 GUICtrlSetState($Menu[6 ], $GUI_CHECKED)             Else                 GUICtrlSetState($Menu[6 ], $GUI_UNCHECKED)             EndIf         Case $Menu[20]             $_All = Not $_All             If $_All Then                 GUICtrlSetState($Menu[20], $GUI_CHECKED)             Else                 GUICtrlSetState($Menu[20], $GUI_UNCHECKED)             EndIf             _SetAutoItInfo()         Case $Menu[7 ], $Menu[8 ], $Menu[9 ], $Menu[10] ; "ANSI", "Unicode", "Unicode (Big Endian)", "UTF8"             If BitAND(GUICtrlRead($Msg), $GUI_CHECKED) Then                 ContinueLoop             EndIf             _SetData($Input[30], '')             For $i = 7  To 10                 GUICtrlSetState($Menu[$i], $GUI_UNCHECKED)             Next             Switch $Msg                 Case $Menu[7 ]                     $_Code = 0                 Case $Menu[8 ]                     $_Code = 1                 Case $Menu[9 ]                     $_Code = 2                 Case $Menu[10]                     $_Code = 3             EndSwitch             GUICtrlSetState($Msg, $GUI_CHECKED)         Case $Menu[8 ] ; "Unicode"             _SetData($Input[30], '')             $_Code = 1         Case $Menu[9 ] ; "Unicode (Big Endian)"             _SetData($Input[30], '')             $_Code = 2         Case $Menu[10] ; "UTF8"             _SetData($Input[30], '')             $_Code = 3         Case $Menu[11] ; "Highlight Controls"             _ShowFrame(0)             $_Highlight = Not $_Highlight             If $_Highlight Then                 GUICtrlSetState($Menu[11], $GUI_CHECKED)                 GUICtrlSetState($Menu[12], $GUI_ENABLE)                 GUICtrlSetState($Menu[17], $GUI_ENABLE)                 GUICtrlSetState($Menu[18], $GUI_ENABLE)             Else                 GUICtrlSetState($Menu[11], $GUI_UNCHECKED)                 GUICtrlSetState($Menu[12], $GUI_DISABLE)                 GUICtrlSetState($Menu[17], $GUI_DISABLE)                 GUICtrlSetState($Menu[18], $GUI_DISABLE)             EndIf         Case $Menu[13], $Menu[14], $Menu[15], $Menu[16] ; "25%", "50%", 75%", "100%"             If BitAND(GUICtrlRead($Msg), $GUI_CHECKED) Then                 ContinueLoop             EndIf             _ShowFrame(0)             For $i = 13 To 16                 GUICtrlSetState($Menu[$i], $GUI_UNCHECKED)             Next             Switch $Msg                 Case $Menu[13]                     $_Alpha = 64                 Case $Menu[14]                     $_Alpha = 128                 Case $Menu[15]                     $_Alpha = 192                 Case $Menu[16]                     $_Alpha = 255             EndSwitch             GUICtrlSetState($Msg, $GUI_CHECKED)         Case $Menu[17] ; "Fade In"             $_Fade = Not $_Fade             If $_Fade Then                 GUICtrlSetState($Menu[17], $GUI_CHECKED)             Else                 GUICtrlSetState($Menu[17], $GUI_UNCHECKED)             EndIf         Case $Menu[18] ; "Color..."             _ShowFrame(0)             $Data = _ColorChooserDialog($_Frame, $hForm, 0, 0, BitOR($CC_FLAG_SOLIDCOLOR, $CC_FLAG_CAPTURECOLOR))             If ($Data <> -1) And ($Data <> $_Frame) Then                 $_Frame = $Data             EndIf         Case $Menu[19] ; "About..."             _ShellAboutDlg($hForm)         Case $Accel[0][1] ; Ctrl+A             _HK_SelectAll()         Case $Accel[2][1] ; Ctrl+Alt+T             _SendMessage($hForm, $WM_COMMAND, $Menu[4 ], 0)         Case $Accel[3][1] ; Ctrl+Alt+H             _SendMessage($hForm, $WM_COMMAND, $Menu[11], 0)         Case $Accel[4][1]             _HK_Edit()         Case $Tab             GUICtrlSetState($Tab, $GUI_FOCUS)     EndSwitch WEnd #EndRegion Body #Region Additional Functions Func _About()     If Not RegRead($REG_KEY_NAME, 'About') Then         RegWrite($REG_KEY_NAME, 'About', 'REG_DWORD', 1) ;~      If True Then             _ShellAboutDlg() ;~      EndIf     EndIf EndFunc   ;==>_About Func _ApplicationCheck()     Local $hWnd = WinGetHandle($GUI_UNIQUE)     If Not $hWnd Then         AutoItWinSetTitle($GUI_UNIQUE)         Return     EndIf     Local $PID, $List     $PID = WinGetProcess($hWnd)     If $PID > -1 Then         $List = _WinAPI_EnumProcessWindows($PID, 0)         If Not IsArray($List) Then             Exit         EndIf     EndIf     For $i = 1 To $List[0][0]         If WinGetTitle($List[$i][0]) = $GUI_NAME & ChrW(160) Then             If BitAND(WinGetState($List[$i][0]), 4) Then                 WinActivate($List[$i][0])             Else                 For $j = 1 To $List[0][0]                     If (WinGetTitle($List[$j][0])) And (_WinAPI_GetAncestor($List[$j][0], $GA_ROOTOWNER) = $List[$i][0]) Then                         WinActivate($List[$j][0])                         ExitLoop                     EndIf                 Next             EndIf             ExitLoop         EndIf     Next     Exit EndFunc   ;==>_ApplicationCheck Func _Capture_X1($iX, $iY, $iWidth, $iHeight, $iColCrop, $iColFill = 0, $fCapture = 0, $fDib = 1, $hDesktop = 0)     Local $hDC, $hSrcDC, $hDstDC, $hGraphics, $hCrop, $hScreen = 0, $hPen, $hBrush, $hBitmap, $tRect, $tData     Local $W = $iWidth + 10, $H = $iHeight + 10, $Xc = Floor($W / 2), $Yc = Floor($H / 2)     If $fCapture Then         If $hDesktop Then             $hDC = _WinAPI_GetDC(0)             $hSrcDC = _WinAPI_CreateCompatibleDC($hDC)             _WinAPI_SelectObject($hSrcDC, $hDesktop)             $hDstDC = _WinAPI_CreateCompatibleDC($hDC)             $hBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iWidth, $iHeight)             _WinAPI_SelectObject($hDstDC, $hBitmap)             _WinAPI_BitBlt($hDstDC, 0, 0, $iWidth, $iHeight, $hSrcDC, $iX, $iY, $SRCCOPY)             _WinAPI_ReleaseDC(0, $hDC)             _WinAPI_DeleteDC($hSrcDC)             _WinAPI_DeleteDC($hDstDC)         Else             $hDesktop = _WinAPI_GetDesktopWindow()             $hDC = _WinAPI_GetDC($hDesktop)             $hDstDC = _WinAPI_CreateCompatibleDC($hDC)             $hBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iWidth, $iHeight)             _WinAPI_SelectObject($hDstDC, $hBitmap)             _WinAPI_BitBlt($hDstDC, 0, 0, $iWidth, $iHeight, $hDC, $iX, $iY, $SRCCOPY)             $hBrush = _WinAPI_CreateSolidBrush(0)             $tRect = _WinAPI_GetWindowRect($hPic[0])             _WinAPI_OffsetRect($tRect, -$iX, -$iY)             _WinAPI_FillRect($hDstDC, DllStructGetPtr($tRect), $hBrush)             If $_Tab = 2 Then                 $tRect = _WinAPI_GetWindowRect($hPic[1])                 _WinAPI_OffsetRect($tRect, -$iX, -$iY)                 _WinAPI_FillRect($hDstDC, DllStructGetPtr($tRect), $hBrush)             EndIf             _WinAPI_DeleteObject($hBrush)             _WinAPI_ReleaseDC($hDesktop, $hDC)             _WinAPI_DeleteDC($hDstDC)         EndIf         $hScreen = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)         _WinAPI_DeleteObject($hBitmap)     EndIf     $hBitmap = _GDIPlus_CreateBitmapFromScan0($W, $H)     $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap) ;~  _GDIPlus_GraphicsClear($hGraphics, 0)     $hPen = _GDIPlus_PenCreate($iColCrop)     _GDIPlus_GraphicsDrawRect($hGraphics, 0, 0, 4, 4, $hPen)     _GDIPlus_GraphicsDrawRect($hGraphics, $Xc - 2, 0, 4, 4, $hPen)     _GDIPlus_GraphicsDrawRect($hGraphics, $W - 5, 0, 4, 4, $hPen)     _GDIPlus_GraphicsDrawRect($hGraphics, $W - 5, $Yc - 2, 4, 4, $hPen)     _GDIPlus_GraphicsDrawRect($hGraphics, $W - 5, $H - 5, 4, 4, $hPen)     _GDIPlus_GraphicsDrawRect($hGraphics, $Xc - 2, $H - 5, 4, 4, $hPen)     _GDIPlus_GraphicsDrawRect($hGraphics, 0, $H - 5, 4, 4, $hPen)     _GDIPlus_GraphicsDrawRect($hGraphics, 0, $Yc - 2, 4, 4, $hPen)     _GDIPlus_GraphicsDrawLine($hGraphics, 5, 2, $Xc - 3, 2, $hPen)     _GDIPlus_GraphicsDrawLine($hGraphics, $Xc + 3, 2, $W - 6, 2, $hPen)     _GDIPlus_GraphicsDrawLine($hGraphics, $W - 3, 5, $W - 3,  $Yc - 3, $hPen)     _GDIPlus_GraphicsDrawLine($hGraphics, $W - 3, $Yc + 3, $W - 3, $H - 6, $hPen)     _GDIPlus_GraphicsDrawLine($hGraphics, $W - 6, $H - 3, $Xc + 3, $H - 3, $hPen)     _GDIPlus_GraphicsDrawLine($hGraphics, $Xc - 3, $H - 3, 5, $H - 3, $hPen)     _GDIPlus_GraphicsDrawLine($hGraphics, 2, $H - 6, 2, $Yc + 3, $hPen)     _GDIPlus_GraphicsDrawLine($hGraphics, 2, $Yc - 3, 2, 5, $hPen)     _GDIPlus_PenDispose($hPen)     If $fCapture Then         _GDIPlus_GraphicsDrawImageRect($hGraphics, $hScreen, 5, 5, $iWidth, $iHeight)         _GDIPlus_ImageDispose($hScreen)     Else         If $iColFill Then             $hBrush = _GDIPlus_BrushCreateSolid($iColFill)             _GDIPlus_GraphicsFillRect($hGraphics, 5, 5, $iWidth, $iHeight, $hBrush)             _GDIPlus_BrushDispose($hBrush)         EndIf     EndIf     _GDIPlus_GraphicsDispose($hGraphics)     If $fDib Then         $tData = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $W, $H, $GDIP_ILMREAD, $GDIP_PXF32ARGB)         $hCrop = _WinAPI_CreateDIB($W, $H)         _WinAPI_SetBitmapBits($hCrop, $W * $H * 4, DllStructGetData($tData, 'Scan0'))         _GDIPlus_BitmapUnlockBits($hBitmap, $tData)     Else         $hCrop = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)     EndIf     _GDIPlus_ImageDispose($hBitmap)     If $hCrop Then         Return SetError(0, 0, $hCrop)     Else         Return SetError(1, 0, 0)     EndIf EndFunc   ;==>_Capture_X1 Func _Capture_X3($iX, $iY, $iSrcWidth, $iSrcHeight, $iDstWidth, $iDstHeight)     Local $hDC, $hSrcDC, $hDstDC, $hDesktop, $hGraphics, $hBrush, $hImage, $hBitmap, $hScreen, $Rgb, $hPen = 0     Local $Xc = Floor($iDstWidth / 2), $Yc = Floor($iDstHeight / 2)     $hDesktop = _WinAPI_GetDesktopWindow()     $hDC = _WinAPI_GetDC($hDesktop)     $hSrcDC = _WinAPI_CreateCompatibleDC($hDC)     $hScreen = _WinAPI_CreateCompatibleBitmap($hDC, $iSrcWidth, $iSrcHeight)     _WinAPI_SelectObject($hSrcDC, $hScreen)     _WinAPI_BitBlt($hSrcDC, 0, 0, $iSrcWidth, $iSrcHeight, $hDC, $iX, $iY, $SRCCOPY)     $hBrush = _WinAPI_CreateSolidBrush(0)     $tRect = _WinAPI_GetWindowRect($hPic[0])     _WinAPI_OffsetRect($tRect, -$iX, -$iY)     _WinAPI_FillRect($hSrcDC, DllStructGetPtr($tRect), $hBrush)     If $_Tab = 2 Then         $tRect = _WinAPI_GetWindowRect($hPic[1])         _WinAPI_OffsetRect($tRect, -$iX, -$iY)         _WinAPI_FillRect($hSrcDC, DllStructGetPtr($tRect), $hBrush)     EndIf     _WinAPI_DeleteObject($hBrush)     $hDstDC = _WinAPI_CreateCompatibleDC($hDC)     $hBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iDstWidth, $iDstHeight)     _WinAPI_SelectObject($hDstDC, $hBitmap)     _WinAPI_SetStretchBltMode($hDstDC, $STRETCH_DELETESCANS)     _WinAPI_StretchBlt($hDstDC, 0, 0, $iDstWidth, $iDstHeight, $hSrcDC, 0, 0, $iSrcWidth, $iSrcHeight, $SRCCOPY)     _WinAPI_ReleaseDC($hDesktop, $hDC)     _WinAPI_DeleteDC($hDstDC)     _WinAPI_DeleteDC($hSrcDC)     _WinAPI_DeleteObject($hScreen)     $hImage = _GDIPlus_BitmapCreateFromHBITMAP($hBitmap)     _WinAPI_DeleteObject($hBitmap)     $Rgb = BitAND(_GDIPlus_BitmapGetPixel($hImage, $Xc, $Yc), 0x00FFFFFF)     If $_Crosshair Then         For $y = $Yc - 3 To $Yc + 3 Step 3             For $x = $Xc - 3 To $Xc + 3 Step 3                 If (($Xc <> $x) Or ($Yc <> $y)) And (Not _IsDark(_GDIPlus_BitmapGetPixel($hImage, $x, $y))) Then                     $hPen = _GDIPlus_PenCreate()                     ExitLoop 2                 EndIf             Next         Next         If Not $hPen Then             $hPen = _GDIPlus_PenCreate(0xFFFFFFFF)         EndIf         $hGraphics = _GDIPlus_ImageGetGraphicsContext($hImage)         _GDIPlus_GraphicsDrawLine($hGraphics, 0, $Yc, $Xc - 3, $Yc, $hPen)         _GDIPlus_GraphicsDrawLine($hGraphics, $Xc + 3, $Yc, $iDstWidth, $Yc, $hPen)         _GDIPlus_GraphicsDrawLine($hGraphics, $Xc, 0, $Xc, $Yc - 3, $hPen)         _GDIPlus_GraphicsDrawLine($hGraphics, $Xc, $Yc + 3, $Xc, $iDstHeight, $hPen)         _GDIPlus_GraphicsDrawRect($hGraphics, $Xc - 2, $Yc - 2, 4, 4, $hPen)         _GDIPlus_PenDispose($hPen)         _GDIPlus_GraphicsDispose($hGraphics)     EndIf     $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)     _GDIPlus_ImageDispose($hImage)     If $hBitmap Then         Return SetError(0, $Rgb, $hBitmap)     Else         Return SetError(1, -1, 0)     EndIf EndFunc   ;==>_Capture_X3 Func _Capture_Desktop()     Local $hDC, $hMemDC, $hDesktop, $hBrush, $hBitmap, $tRect     $hDesktop = _WinAPI_GetDesktopWindow()     $hDC = _WinAPI_GetDC($hDesktop)     $hMemDC = _WinAPI_CreateCompatibleDC($hDC)     $hBitmap = _WinAPI_CreateCompatibleBitmap($hDC, @DesktopWidth, @DesktopHeight)     _WinAPI_SelectObject($hMemDC, $hBitmap)     _WinAPI_BitBlt($hMemDC, 0, 0, @DesktopWidth, @DesktopHeight, $hDC, 0, 0, $SRCCOPY)     $hBrush = _WinAPI_CreateSolidBrush(0)     $tRect = _WinAPI_GetWindowRect($hPic[0])     _WinAPI_FillRect($hMemDC, DllStructGetPtr($tRect), $hBrush)     If $_Tab = 2 Then         $tRect = _WinAPI_GetWindowRect($hPic[1])         _WinAPI_FillRect($hMemDC, DllStructGetPtr($tRect), $hBrush)     EndIf     _WinAPI_DeleteObject($hBrush)     _WinAPI_ReleaseDC($hDesktop, $hDC)     _WinAPI_DeleteDC($hMemDC)     If $hBitmap Then         Return SetError(0, 0, $hBitmap)     Else         Return SetError(1, 0, 0)     EndIf EndFunc   ;==>_Capture_Desktop Func _CreateReport()     Local $Data[2], $Text = ''     $Text &= '###AutoIt Control Viewer Report File###' & @CRLF     $Text &= @CRLF     $Text &= 'Environment' & @CRLF     $Text &= '===========' & @CRLF     $Text &= StringStripWS('System:   ' & _OSVersion(), 2) & @CRLF     $Text &= 'Aero:     '     If _WinAPI_GetVersion() >= 6.0 Then         If _WinAPI_DwmIsCompositionEnabled() Then             $Text &= 'Enabled'         Else             $Text &= 'Disabled'         EndIf     EndIf     $Text &= @CRLF     $Text &= @CRLF     $Text &= 'Window' & @CRLF     $Text &= '======' & @CRLF     $Text &= StringStripWS('Title:    ' & GUICtrlRead($Input[3 ]), 2) & @CRLF     $Text &= StringStripWS('Class:    ' & GUICtrlRead($Input[4 ]), 2) & @CRLF     $Text &= StringStripWS('Style:    ' & GUICtrlRead($Input[5 ]), 2) & @CRLF     $Text &= StringStripWS('ExStyle:  ' & GUICtrlRead($Input[7 ]), 2) & @CRLF     $Text &= 'Position: '     For $i = 0 To 1         $Data[$i] = GUICtrlRead($Input[9  + $i])     Next     If ($Data[0]) And ($Data[1]) Then         $Text &= $Data[0] & ', ' & $Data[1]     EndIf     $Text  = StringStripWS($Text, 2)     $Text &= @CRLF     $Text &= 'Size:     '     For $i = 0 To 1         $Data[$i] = GUICtrlRead($Input[11 + $i])     Next     If ($Data[0]) And ($Data[1]) Then         $Text &= $Data[0] & ', ' & $Data[1]     EndIf     $Text  = StringStripWS($Text, 2)     $Text &= @CRLF     $Text &= StringStripWS('Handle:   ' & GUICtrlRead($Input[13]), 2) & @CRLF     $Text &= StringStripWS('PID:      ' & GUICtrlRead($Input[14]), 2) & @CRLF     $Text &= StringStripWS('Path:     ' & GUICtrlRead($Input[15]), 2) & @CRLF     $Text &= @CRLF     $Text &= 'Control' & @CRLF     $Text &= '=======' & @CRLF     $Text &= StringStripWS('Class:    ' & GUICtrlRead($Input[16]), 2) & @CRLF     $Text &= StringStripWS('Instance: ' & GUICtrlRead($Input[17]), 2) & @CRLF     $Text &= StringStripWS('ID:       ' & GUICtrlRead($Input[19]), 2) & @CRLF     $Text &= StringStripWS('Style:    ' & GUICtrlRead($Input[21]), 2) & @CRLF     $Text &= StringStripWS('ExStyle:  ' & GUICtrlRead($Input[23]), 2) & @CRLF     $Text &= 'Position: '     For $i = 0 To 1         $Data[$i] = GUICtrlRead($Input[25 + $i])     Next     If ($Data[0]) And ($Data[1]) Then         $Text &= $Data[0] & ', ' & $Data[1]     EndIf     $Text  = StringStripWS($Text, 2)     $Text &= @CRLF     $Text &= 'Size:     '     For $i = 0 To 1         $Data[$i] = GUICtrlRead($Input[27 + $i])     Next     If ($Data[0]) And ($Data[1]) Then         $Text &= $Data[0] & ', ' & $Data[1]     EndIf     $Text  = StringStripWS($Text, 2)     $Text &= @CRLF     $Text &= StringStripWS('Handle:   ' & GUICtrlRead($Input[29]), 2) & @CRLF     $Text &= StringStripWS('Text:     ' & GUICtrlRead($Input[30]), 2) & @CRLF     Return $Text EndFunc   ;==>_CreateReport Func _GetCursor(ByRef $iX, ByRef $iY, $hWnd = 0) ;~  $hWnd = _HWnd($hWnd) ;~  If Not $hWnd Then ;~      Return ;~  EndIf     Local $tPoint = _WinAPI_GetMousePos($hWnd, $hWnd)     If @error Then         Return SetError(1, 0, 0)     EndIf     $iX = DllStructGetData($tPoint, 1)     $iY = DllStructGetData($tPoint, 2)     Return 1 EndFunc   ;==>_GetCursor Func _GetNN($hWnd)     Local $List, $Text, $ID = 0     $Text = _WinAPI_GetClassName($hWnd)     If Not $Text Then         Return -1     EndIf     $List = _WinAPI_EnumChildWindows(_WinAPI_GetAncestor($hWnd, $GA_ROOT), 0)     If @error Then         Return -1     EndIf     For $i = 1 To $List[0][0]         If $List[$i][1] = $Text Then             $ID += 1         EndIf         If $List[$i][0] = $hWnd Then             ExitLoop         EndIf     Next     If Not $ID Then         Return -1     EndIf     Return $ID EndFunc   ;==>_GetNN Func _GetStyleString($iStyle, $fDialog = 1, $fExStyle = 0)     Local $Data, $Text = ''     If $fExStyle Then         $Data = $ExStyle     Else         $Data = $Style     EndIf     For $i = 0 To UBound($Data) - 1         If BitAND($iStyle, $Data[$i][0]) Then             If (Not BitAND($Data[$i][0], 0xFFFF)) Or ($fDialog) Or ($fExStyle) Then                 $iStyle = BitAND($iStyle, BitNOT($Data[$i][0]))                 $Text &= $Data[$i][1] & ', '             EndIf         EndIf     Next     If $iStyle Then         $Text = '0x' & Hex($iStyle, 8) & ', ' & $Text     EndIf     Return StringRegExpReplace($Text, ',\s\z', '') EndFunc   ;==>_GetStyleString Func _GUICreate()     Local $Style = BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY, $WS_TABSTOP)     Local $ID, $tData, $hIcon, $hImageList     Local $Height = $_Height - 653     ; Main Window     $hForm = GUICreate($GUI_NAME & ChrW(160), $_Width, $_Height + _WinAPI_GetSystemMetrics($SM_CYMENU), $_XPos, $_YPos, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_TOPMOST * $_Top)     ; Menu     $ID = GUICtrlCreateMenu('&File')     $Menu[0 ] = GUICtrlCreateMenu('&Report', $ID)     GUICtrlSetState(-1, $GUI_DISABLE)     $Menu[1 ] = GUICtrlCreateMenuItem('&Copy To Clipboard',$Menu[0])     $Menu[2 ] = GUICtrlCreateMenuItem('Save &As...', $Menu[0])     GUICtrlCreateMenuItem('', $ID)     $Menu[3 ] = GUICtrlCreateMenuItem('E&xit', $ID)     $ID = GUICtrlCreateMenu('&Options')     $Menu[4 ] = GUICtrlCreateMenuItem('&Always On Top' & @TAB & 'Ctrl+Alt+T', $ID)     If $_Top Then         GUICtrlSetState(-1, $GUI_CHECKED)     EndIf     GUICtrlCreateMenuItem('', $ID)     $Menu[5 ] = GUICtrlCreateMenuItem('C&rosshair', $ID)     If $_Crosshair Then         GUICtrlSetState(-1, $GUI_CHECKED)     EndIf     $Menu[6 ] = GUICtrlCreateMenuItem('Capture While &Tracking', $ID)     If $_Capture Then         GUICtrlSetState(-1, $GUI_CHECKED)     EndIf     GUICtrlCreateMenuItem('', $ID)     $Menu[20] = GUICtrlCreateMenuItem('Show All', $ID)     If $_All Then         GUICtrlSetState(-1, $GUI_CHECKED)     EndIf     GUICtrlCreateMenuItem('', $ID)     $Menu[10] = GUICtrlCreateMenu('Text &Encoding', $ID)     $Menu[7 ] = GUICtrlCreateMenuItem('ANSI', $Menu[10], Default, 1)     $Menu[8 ] = GUICtrlCreateMenuItem('Unicode', $Menu[10], Default, 1)     $Menu[9 ] = GUICtrlCreateMenuItem('Unicode (Big Endian)', $Menu[10], Default, 1)     $Menu[10] = GUICtrlCreateMenuItem('UTF8', $Menu[10], Default, 1)     Switch $_Code         Case 0             GUICtrlSetState($Menu[7 ], $GUI_CHECKED)         Case 1             GUICtrlSetState($Menu[8 ], $GUI_CHECKED)         Case 2             GUICtrlSetState($Menu[9 ], $GUI_CHECKED)         Case 3             GUICtrlSetState($Menu[10], $GUI_CHECKED)     EndSwitch     $Menu[18] = GUICtrlCreateMenu('&Highlight', $ID)     $Menu[11] = GUICtrlCreateMenuItem('&Highlight Controls' & @TAB & 'Ctrl+Alt+H', $Menu[18])     If $_Highlight Then         GUICtrlSetState(-1, $GUI_CHECKED)     EndIf     GUICtrlCreateMenuItem('', $Menu[18])     $Menu[12] = GUICtrlCreateMenu('&Transparency', $Menu[18])     If $_Highlight Then         GUICtrlSetState(-1, $GUI_ENABLE)     Else         GUICtrlSetState(-1, $GUI_DISABLE)     EndIf     $Menu[13] = GUICtrlCreateMenuItem('25%', $Menu[12], Default, 1)     $Menu[14] = GUICtrlCreateMenuItem('50%', $Menu[12], Default, 1)     $Menu[15] = GUICtrlCreateMenuItem('75%', $Menu[12], Default, 1)     $Menu[16] = GUICtrlCreateMenuItem('100%', $Menu[12], Default, 1)     Switch $_Alpha         Case 64             GUICtrlSetState($Menu[13], $GUI_CHECKED)         Case 128             GUICtrlSetState($Menu[14], $GUI_CHECKED)         Case 192             GUICtrlSetState($Menu[15], $GUI_CHECKED)         Case 255             GUICtrlSetState($Menu[16], $GUI_CHECKED)     EndSwitch     $Menu[17] = GUICtrlCreateMenuItem('&Fade In', $Menu[18])     If $_Highlight Then         GUICtrlSetState(-1, BitOR($GUI_CHECKED * $_Fade, $GUI_UNCHECKED * (Not $_Fade), $GUI_ENABLE))     Else         GUICtrlSetState(-1, BitOR($GUI_CHECKED * $_Fade, $GUI_UNCHECKED * (Not $_Fade), $GUI_DISABLE))     EndIf     $Menu[18] = GUICtrlCreateMenuItem('&Color...', $Menu[18])     If $_Highlight Then         GUICtrlSetState(-1, $GUI_ENABLE)     Else         GUICtrlSetState(-1, $GUI_DISABLE)     EndIf     $ID = GUICtrlCreateMenu('&Help')     $Menu[19] = GUICtrlCreateMenuItem('&About...', $ID)     For $i = 0 To UBound($Dummy) - 1         $Dummy[$i] = GUICtrlCreateDummy()     Next     ; Color Picker Group     GUICtrlCreateGroup('Color Picker', 10, 7, 293, 104)     GUICtrlCreatePic('', 22, 28, 71, 71, BitOR($GUI_SS_DEFAULT_PIC, $SS_SUNKEN))     GUICtrlSetState(-1, $GUI_DISABLE)     GUICtrlCreatePic('', 23, 29, 69, 69)     GUICtrlSetState(-1, $GUI_DISABLE)     $hPic[0] = GUICtrlGetHandle(-1)     GUICtrlCreateLabel('X, Y:', 103, 32, 29, 14)     $Input[0] = GUICtrlCreateInput('', 133, 29, 36, 19, $Style)     $Input[1] = GUICtrlCreateInput('', 177, 29, 36, 19, $Style)     $Combo[0] = GUICtrlCreateCombo('', 223, 28, 68, 21, $CBS_DROPDOWNLIST)     _GUICtrlComboBox_AddString(-1, 'Absolute')     _GUICtrlComboBox_AddString(-1, 'Window')     _GUICtrlComboBox_AddString(-1, 'Client')     _GUICtrlComboBox_AddString(-1, 'Control')     _GUICtrlComboBox_SetCurSel(-1, $_Position)     GUICtrlCreateLabel('Color:', 103, 57, 29, 14)     $Input[2] = GUICtrlCreateInput('', 133, 54, 80, 19, $Style)     $Combo[1] = GUICtrlCreateCombo('', 223, 53, 50, 21, $CBS_DROPDOWNLIST)     _GUICtrlComboBox_AddString(-1, 'RGB')     _GUICtrlComboBox_AddString(-1, 'BGR')     _GUICtrlComboBox_SetCurSel(-1, $_Color)     GUICtrlCreateLabel('Solid:', 103, 82, 29, 14)     $Label[0] = GUICtrlCreateLabel('', 133, 79, 19, 19, $SS_SUNKEN)     ; Browse Tool Group     ;Old code gives error Duplicate function name     ;GUICtrlCreateGroup('Browse Tool', 313, 7, 98, 104)     ;$Icon[0] = GUICtrlCreateIcon('', 0, 330, 30, 64, 64)     ;_SetStyle(-1, $WS_TABSTOP, 0)     ;If Not @compiled Then ;       GUICtrlSetImage(-1, @ScriptDir & '\Resources\202.ico') ;   Else ;       GUICtrlSetImage(-1, @ScriptFullPath, 202) ;   EndIf ;New code written by BrewManNH GUICtrlCreateGroup('Browse Tool', 313, 7, 98, 104) If Not @Compiled Then     $Icon[0] = GUICtrlCreateIcon(@ScriptDir & '\Resources\202.ico', 0, 330, 30, 64, 64) Else     $Icon[0] = GUICtrlCreateIcon(@ScriptFullPath, 202, 330, 30, 64, 64) EndIf _SetStyle(-1, $WS_TABSTOP, 0)     ; Info Group     If $_Icon Then         $Tab = GUICtrlCreateTab(22, 136, 379, 273)         _GUICtrlTab_SetMinTabWidth(-1, 75)     Else         $Tab = GUICtrlCreateTab(22, 136, 379, 273, BitOr($GUI_SS_DEFAULT_TAB, $TCS_FIXEDWIDTH))         _GUICtrlTab_SetItemSize(-1, 64, 19)     EndIf     GUICtrlSetState(-1, $GUI_FOCUS)     $hTab = GUICtrlGetHandle(-1)     GUICtrlCreateTabItem('Window')     GUICtrlCreateLabel('Title:', 33, 176, 46, 14)     $Input[3] = GUICtrlCreateInput('', 80, 173, 308, 19, $Style)     GUICtrlCreateLabel('Class:', 33, 201, 46, 14)     $Input[4] = GUICtrlCreateInput('', 80, 198, 308, 19, $Style)     GUICtrlCreateLabel('Style:', 33, 226, 46, 14)     $Input[5] = GUICtrlCreateInput('', 80, 223, 80, 19, $Style)     $Input[6] = GUICtrlCreateInput('', 168, 223, 220, 19, $Style) ;~  GUICtrlSetColor(-1, 0xAA0000)     GUICtrlCreateLabel('ExStyle:', 33, 251, 46, 14)     $Input[7] = GUICtrlCreateInput('', 80, 248, 80, 19, $Style)     $Input[8] = GUICtrlCreateInput('', 168, 248, 220, 19, $Style) ;~  GUICtrlSetColor(-1, 0xAA0000)     GUICtrlCreateLabel('Position:', 33, 276, 46, 14)     $Input[9] = GUICtrlCreateInput('', 80, 273, 80, 19, $Style)     $Input[10] = GUICtrlCreateInput('', 168, 273, 80, 19, $Style)     GUICtrlCreateLabel('Size:', 33, 301, 46, 14)     $Input[11] = GUICtrlCreateInput('', 80, 298, 80, 19, $Style)     $Input[12] = GUICtrlCreateInput('', 168, 298, 80, 19, $Style)     GUICtrlCreateLabel('Handle:', 33, 326, 46, 14)     $Input[13] = GUICtrlCreateInput('', 80, 323, 168, 19, $Style)     GUICtrlCreateLabel('PID:', 33, 351, 46, 14)     $Input[14] = GUICtrlCreateInput('', 80, 348, 80, 19, $Style)     GUICtrlCreateLabel('Path:', 33, 376, 46, 14)     $Input[15] = GUICtrlCreateInput('', 80, 373, 289, 19, $Style)     $Icon[1] = GUICtrlCreateIcon('', 0, 373, 375, 15, 15)     GUICtrlSetState(-1, $GUI_DISABLE)     GUICtrlSetTip(-1, 'Open file location')     GUICtrlSetCursor(-1, 0)     _SetStyle(-1, $WS_TABSTOP, 0)     If Not @compiled Then         GUICtrlSetImage(-1, @ScriptDir & '\Resources\210.ico')     Else         GUICtrlSetImage(-1, @ScriptFullPath, 210)     EndIf     GUICtrlCreateTabItem('Control')     GUICtrlCreateLabel('Class:', 33, 176, 46, 14)     $Input[16] = GUICtrlCreateInput('', 80, 173, 308, 19, $Style)     GUICtrlCreateLabel('Instance:', 33, 201, 46, 14)     $Input[17] = GUICtrlCreateInput('', 80, 198, 80, 19, $Style)     $Input[18] = GUICtrlCreateInput('', 168, 198, 220, 19, $Style) ;~  GUICtrlSetColor(-1, 0x9999CC)     GUICtrlCreateLabel('ID:', 33, 226, 42, 14)     $Input[19] = GUICtrlCreateInput('', 80, 223, 80, 19, $Style)     $Input[20] = GUICtrlCreateInput('', 168, 223, 220, 19, $Style) ;~  GUICtrlSetColor(-1, 0x9999CC)     GUICtrlCreateLabel('Style:', 33, 251, 42, 14)     $Input[21] = GUICtrlCreateInput('', 80, 248, 80, 19, $Style)     $Input[22] = GUICtrlCreateInput('', 168, 248, 220, 19, $Style) ;~  GUICtrlSetColor(-1, 0xAA0000)     GUICtrlCreateLabel('ExStyle:', 33, 276, 42, 14)     $Input[23] = GUICtrlCreateInput('', 80, 273, 80, 19, $Style)     $Input[24] = GUICtrlCreateInput('', 168, 273, 220, 19, $Style) ;~  GUICtrlSetColor(-1, 0xAA0000)     GUICtrlCreateLabel('Position:', 33, 301, 42, 14)     $Input[25] = GUICtrlCreateInput('', 80, 298, 80, 19, $Style)     $Input[26] = GUICtrlCreateInput('', 168, 298, 80, 19, $Style)     GUICtrlCreateLabel('Size:', 33, 326, 42, 14)     $Input[27] = GUICtrlCreateInput('', 80, 323, 80, 19, $Style)     $Input[28] = GUICtrlCreateInput('', 168, 323, 80, 19, $Style)     GUICtrlCreateLabel('Handle:', 33, 351, 42, 14)     $Input[29] = GUICtrlCreateInput('', 80, 348, 168, 19, $Style)     GUICtrlCreateLabel('Text:', 33, 376, 42, 14)     $Input[30] = GUICtrlCreateInput('', 80, 373, 308, 19, $Style)     GUICtrlCreateTabItem('Capture')     $Pic = GUICtrlCreatePic('', 36 + Floor((349 - $_Crop[0]) / 2), 171 + Floor((223 - $_Crop[1]) / 2), $_Crop[0], $_Crop[1], 0)     $hPic[1] = GUICtrlGetHandle(-1)     _SetBitmap($hPic[1], _Capture_X1(0, 0, $_Crop[0] - 10, $_Crop[1] - 10, $Col[0], $Col[1]), 1) ;~  GUICtrlSetTip(-1, 'Click on the picture to save it') ;~  GUICtrlSetCursor(-1, 0)     $Label[4] = GUICtrlCreateLabel('Double click on the picture to save it', 117, 276, 187, 14, $SS_CENTER)     GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)     GUICtrlSetColor(-1, BitAND($Col[0], 0xFFFFFF))     If $_Crop[0] - 10 < 187 Then         GUICtrlSetState(-1, $GUI_HIDE)     EndIf     GUICtrlCreateTabItem('AutoIt')     GUICtrlCreateListView('Process|PID|Handle|Class|Title|Version|Path', 36, 171, 349, 223, BitOR($LVS_DEFAULT, $LVS_NOSORTHEADER), $WS_EX_CLIENTEDGE)     GUICtrlSetFont(-1, 8.5, 400, 0, 'Tahoma')     $hAutoIt = GUICtrlGetHandle(-1)     _GUICtrlListView_SetExtendedListViewStyle(-1, BitOR($LVS_EX_DOUBLEBUFFER, $LVS_EX_FULLROWSELECT))     For $i = 4 To 10         _GUICtrlListView_SetColumnWidth(-1, $i - 4, $_Column[$i])     Next     $hIL = _GUIImageList_Create(16, 16, 5, 1)     If _WinAPI_GetVersion() >= '6.0' Then         _WinAPI_SetWindowTheme($hAutoIt, 'Explorer')         $tData = _WinAPI_ShellGetStockIconInfo($SIID_APPLICATION, BitOR($SHGSI_ICON, $SHGSI_SMALLICON))         $hIcon = DllStructGetData($tData, 'hIcon')     Else         $hIcon = _WinAPI_ExtractIcon(@SystemDir & '\shell32.dll', 2, 1)     EndIf     _GUIImageList_ReplaceIcon($hIL, -1, $hIcon)     $hIcon = _WinAPI_AddIconTransparency($hIcon, 50, 1)     _GUIImageList_ReplaceIcon($hIL, -1, $hIcon)     _WinAPI_DestroyIcon($hIcon)     If Not @compiled Then         $hIcon = _WinAPI_ExtractIcon(@ScriptDir & '\Resources\214.ico', 0, 1)     Else         $hIcon = _WinAPI_ExtractIcon(@ScriptFullPath, -214, 1)     EndIf     _GUIImageList_ReplaceIcon($hIL, -1, $hIcon)     $hIcon = _WinAPI_AddIconTransparency($hIcon, 50, 1)     _GUIImageList_ReplaceIcon($hIL, -1, $hIcon)     _WinAPI_DestroyIcon($hIcon)     _GUICtrlListView_SetImageList($hAutoIt, $hIL, 1)     $hHeader[1] = _GUICtrlListView_GetHeader(-1) ;~  _SetAutoItInfo()     GUICtrlCreateTabItem('')     If _WinAPI_IsThemeActive() Then         For $i = 3  To 30             GUICtrlSetBkColor($Input[$i], 0xFFFFFF)         Next         GUICtrlSetColor($Input[6 ], 0xAA0000)         GUICtrlSetColor($Input[8 ], 0xAA0000)         GUICtrlSetColor($Input[18], 0x9999CC)         GUICtrlSetColor($Input[20], 0x9999CC)         GUICtrlSetColor($Input[22], 0xAA0000)         GUICtrlSetColor($Input[24], 0xAA0000)     EndIf     If $_Icon Then         $hImageList = _GUIImageList_Create(16, 16, 5, 1)         If Not @compiled Then             For $i = 203 To 206                 _GUIImageList_AddIcon($hImageList, @ScriptDir & '\Resources\' & $i & '.ico')             Next         Else             For $i = 203 To 206                 _GUIImageList_AddIcon($hImageList, @ScriptFullPath, -$i)             Next         EndIf         _GUICtrlTab_SetImageList($hTab, $hImageList)         For $i = 0 To 3             _GUICtrlTab_SetItemImage($hTab, $i, $i)         Next     EndIf     GUICtrlCreateGroup('Info', 10, 115, 401, 305)     ; Controls Group     $Group = GUICtrlCreateGroup('Controls', 10, 424, 401, 219 + $Height)     GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT, $GUI_DOCKTOP, $GUI_DOCKBOTTOM, $GUI_DOCKWIDTH))     GUICtrlCreateListView('Handle|Class|NN|ID', 22, 445, 377, 164 + $Height, BitOR($LVS_DEFAULT, $LVS_NOSORTHEADER), $WS_EX_CLIENTEDGE)     GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT, $GUI_DOCKTOP, $GUI_DOCKBOTTOM, $GUI_DOCKWIDTH))     GUICtrlSetFont(-1, 8.5, 400, 0, 'Tahoma')     $hListView = GUICtrlGetHandle(-1)     _GUICtrlListView_SetExtendedListViewStyle(-1, BitOR($LVS_EX_CHECKBOXES, $LVS_EX_DOUBLEBUFFER, $LVS_EX_FULLROWSELECT))     For $i = 0 To 3         _GUICtrlListView_SetColumnWidth(-1, $i, $_Column[$i])     Next     If _WinAPI_GetVersion() >= '6.0' Then         _WinAPI_SetWindowTheme($hListView, 'Explorer')     EndIf     $hHeader[0] = _GUICtrlListView_GetHeader(-1)     $Label[1] = GUICtrlCreateLabel('', 22, 619 + $Height, 12, 12, BitOR($SS_NOTIFY, $SS_SUNKEN))     GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT, $GUI_DOCKBOTTOM, $GUI_DOCKWIDTH, $GUI_DOCKHEIGHT))     GUICtrlSetBkColor(-1, $_Rgb[0])     GUICtrlSetTip(-1, 'Change color')     GUICtrlSetCursor(-1, 0)     GUICtrlCreateLabel('Visible', 38, 618 + $Height, 42, 14)     GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT, $GUI_DOCKBOTTOM, $GUI_DOCKWIDTH, $GUI_DOCKHEIGHT))     $Label[2] = GUICtrlCreateLabel('', 92, 619 + $Height, 12, 12, BitOR($SS_NOTIFY, $SS_SUNKEN))     GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT, $GUI_DOCKBOTTOM, $GUI_DOCKWIDTH, $GUI_DOCKHEIGHT))     GUICtrlSetBkColor(-1, $_Rgb[1])     GUICtrlSetTip(-1, 'Change color')     GUICtrlSetCursor(-1, 0)     GUICtrlCreateLabel('Hidden', 108, 618 + $Height, 42, 14)     GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT, $GUI_DOCKBOTTOM, $GUI_DOCKWIDTH, $GUI_DOCKHEIGHT))     $Label[3] = GUICtrlCreateLabel('', 162, 619 + $Height, 12, 12, BitOR($SS_NOTIFY, $SS_SUNKEN))     GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT, $GUI_DOCKBOTTOM, $GUI_DOCKWIDTH, $GUI_DOCKHEIGHT))     GUICtrlSetBkColor(-1, $_Rgb[2])     GUICtrlSetTip(-1, 'Change color')     GUICtrlSetCursor(-1, 0)     GUICtrlCreateLabel('Missing', 178, 618 + $Height, 42, 14)     GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT, $GUI_DOCKBOTTOM, $GUI_DOCKWIDTH, $GUI_DOCKHEIGHT))     For $i = 0 To UBound($Accel) - 1         $Accel[$i][1] = GUICtrlCreateDummy()     Next     GUISetAccelerators($Accel)     ; Frame Window ;~  $hFrame = GUICreate('', 100, 100, -1, -1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST), WinGetHandle($GUI_UNIQUE))     $hFrame = GUICreate('', 100, 100, -1, -1, $WS_POPUP, $WS_EX_LAYERED, WinGetHandle($GUI_UNIQUE))     GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')     GUIRegisterMsg($WM_GETMINMAXINFO, 'WM_GETMINMAXINFO')     GUIRegisterMsg($WM_LBUTTONDBLCLK, 'WM_LBUTTONDBLCLK')     GUIRegisterMsg($WM_LBUTTONDOWN, 'WM_LBUTTONDOWN')     GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')     GUIRegisterMsg($WM_SETCURSOR, 'WM_SETCURSOR')     GUIRegisterMsg($WM_MOVE, 'WM_MOVE')     GUIRegisterMsg($WM_SIZE, 'WM_SIZE')     $Area = WinGetPos($hForm)     If IsArray($Area) Then         $Area[3] = $Area[3] - $_Height + 568     EndIf ;~  GUISetState(@SW_SHOWNOACTIVATE, $hFrame)     GUISetState(@SW_SHOW, $hForm)     GUISwitch($hForm)     $Enum = 1     _GUICtrlTab_SetCurFocus($hTab, $_Tab) ;~  _WinAPI_SetFocus(0)     $Enum = 0     If $_Tab = 3 Then         _SetAutoItInfo()     EndIf EndFunc   ;==>_GUICreate Func _HWnd($CtrlID)     If Not IsHWnd($CtrlID) Then         $CtrlID = GUICtrlGetHandle($CtrlID)         If Not $CtrlID Then             Return 0         EndIf     EndIf     Return $CtrlID EndFunc   ;==>_HWnd Func _IsCrop($iX, $iY, ByRef $iDX, ByRef $iDY)     Local $Xn = 36  + Floor((349 - $_Crop[0]) / 2)     Local $Yn = 171 + Floor((223 - $_Crop[1]) / 2)     Local $Xc = Floor($_Crop[0] / 2)     Local $Yc = Floor($_Crop[1] / 2)     Local $dX, $dY     Select         Case ($iX > $Xn + 4) And ($iX < $Xn + $_Crop[0] - 5) And ($iY > $Yn + 4) And ($iY < $Yn + $_Crop[1] - 5)             Return 0         Case ($iX > $Xn - 1) And ($iX < $Xn + 5) And ($iY > $Yn - 1) And ($iY < $Yn + 5)             $iDX = $Xi - $Xn - 2             $iDY = $Yi - $Yn - 2             Return 1         Case ($iX > $Xn + $Xc - 3) And ($iX < $Xn + $Xc + 3) And ($iY > $Yn - 1) And ($iY < $Yn + 5)             $iDX = $Xi - $Xn - $Xc             $iDY = $Yi - $Yn - 2             Return 2         Case ($iX > $Xn + $_Crop[0] - 6) And ($iX < $Xn + $_Crop[0]) And ($iY > $Yn - 1) And ($iY < $Yn + 5)             $iDX = $Xi - $Xn - $_Crop[0] + 3             $iDY = $Yi - $Yn - 2             Return 3         Case ($iX > $Xn + $_Crop[0] - 6) And ($iX < $Xn + $_Crop[0]) And ($iY > $Yn + $Yc - 3) And ($iY < $Yn + $Yc + 3)             $iDX = $Xi - $Xn - $_Crop[0] + 3             $iDY = $Yi - $Yn - $Yc             Return 4         Case ($iX > $Xn + $_Crop[0] - 6) And ($iX < $Xn + $_Crop[0]) And ($iY > $Yn + $_Crop[1] - 6) And ($iY < $Yn + $_Crop[1])             $iDX = $Xi - $Xn - $_Crop[0] + 3             $iDY = $Yi - $Yn - $_Crop[1] + 3             Return 5         Case ($iX > $Xn + $Xc - 3) And ($iX < $Xn + $Xc + 3) And ($iY > $Yn + $_Crop[1] - 6) And ($iY < $Yn + $_Crop[1])             $iDX = $Xi - $Xn - $Xc             $iDY = $Yi - $Yn - $_Crop[1] + 3             Return 6         Case ($iX > $Xn - 1) And ($iX < $Xn + 5) And ($iY > $Yn + $_Crop[1] - 6) And ($iY < $Yn + $_Crop[1])             $iDX = $Xi - $Xn - 2             $iDY = $Yi - $Yn - $_Crop[1] + 3             Return 7         Case ($iX > $Xn - 1) And ($iX < $Xn + 5) And ($iY > $Yn + $Yc - 3) And ($iY < $Yn + $Yc + 3)             $iDX = $Xi - $Xn - 2             $iDY = $Yi - $Yn - $Yc             Return 8         Case Else             Return -1     EndSelect EndFunc   ;==>_IsCrop Func _IsDark($iRgb)     If CC_GetRValue($iRgb) + CC_GetGValue($iRgb) + CC_GetBValue($iRgb) < 3 * 255 / 2 Then         Return 1     Else         Return 0     EndIf EndFunc   ;==>_IsDark Func _IsDown($iKey)     Local $Ret = DllCall('user32.dll', 'short', 'GetAsyncKeyState', 'int', $iKey)     If (@error) Or ((Not $Ret[0]) And (_WinAPI_GetLastError())) Then         Return SetError(1, 0, 0)     EndIf     Return BitAND($Ret[0], 0x8000) EndFunc   ;==>_IsDown Func _LoadResourceImage($hInstance, $sResType, $sResName, $iResLanguage = 0)     Local $hInfo, $hData, $pData, $iSize, $hMem, $pMem, $hStream, $hImage     If $iResLanguage Then         $hInfo = _WinAPI_FindResourceEx($hInstance, $sResType, $sResName, $iResLanguage)     Else         $hInfo = _WinAPI_FindResource($hInstance, $sResType, $sResName)     EndIf     $hData = _WinAPI_LoadResource($hInstance, $hInfo)     $iSize = _WinAPI_SizeOfResource($hInstance, $hInfo)     $pData = _WinAPI_LockResource($hData)     If @error Then         Return SetError(1, 0, 0)     EndIf     $hMem = DllCall("kernel32.dll", "ptr", "GlobalAlloc", "uint", 2, "ulong_ptr", $iSize)     If @error Then         Return SetError(1, 0, 0)     EndIf     $pMem = DllCall("kernel32.dll", "ptr", "GlobalLock", "ptr", $hMem[0])     If @error Then         Return SetError(1, 0, 0)     EndIf     DllCall("kernel32.dll", "none", "RtlMoveMemory", "ptr", $pMem[0], "ptr", $pData, "ulong_ptr", $iSize)     DllCall("kernel32.dll", "int", "GlobalUnlock", "ptr", $hMem[0])     $hStream = _WinAPI_CreateStreamOnHGlobal($hMem[0])     If @error Then         Return SetError(1, 0, 0)     EndIf     _GDIPlus_Startup()     $hImage = DllCall("gdiplus.dll", "uint", "GdipCreateBitmapFromStream", "ptr", $hStream, "ptr*", 0)     If (@error) Or ($hImage[0]) Or (Not $hImage[2]) Then         $hImage = 0     EndIf     _GDIPlus_Shutdown()     DllCall("kernel32.dll", "ptr", "GlobalFree", "ptr", $hMem[0])     If Not IsArray($hImage) Then         Return SetError(1, 0, 0)     EndIf     Return $hImage[2] EndFunc   ;==>_LoadResourceImage Func _OSVersion()     Local $oService, $oItems, $Version = ''     $oService = ObjGet('winmgmts:\\.\root\cimv2')     If Not IsObj($oService) Then         Return ''     EndIf     $oItems = $oService.ExecQuery('SELECT Caption, OSArchitecture FROM Win32_OperatingSystem')     If Not IsObj($oItems) Then         Return ''     EndIf     For $Property In $oItems         $Version = StringStripWS($Property.Caption & ' ' & $Property.OSArchitecture, 7)     Next     Return $Version EndFunc   ;==>_OSVersion Func _PtInRect($tRect, $tPoint)     Local $Ret = DllCall('user32.dll', 'int', 'PtInRect', 'ptr', DllStructGetPtr($tRect), 'uint64', DllStructGetData(DllStructCreate('uint64', DllStructGetPtr($tPoint)), 1))     If @error Then         Return SetError(1, 0, 0)     EndIf     Return $Ret[0] EndFunc   ;==>_PtInRect Func _ReadRegistry()     $_XPos = _WinAPI_DWordToInt(_RegRead($REG_KEY_NAME, 'XPos', 'REG_DWORD', $_XPos))     $_YPos = _WinAPI_DWordToInt(_RegRead($REG_KEY_NAME, 'YPos', 'REG_DWORD', $_YPos)) ;~  $_About = _ValueCheck(_RegRead($REG_KEY_NAME, 'About', 'REG_DWORD', $_About), 0, 1) ;~  $_Width = _ValueCheck(_RegRead($REG_KEY_NAME, 'ClientWidth', 'REG_DWORD', $_Width), 421)     $_Height = _ValueCheck(_RegRead($REG_KEY_NAME, 'ClientHeight', 'REG_DWORD', $_Height), 552)     $_Top = _ValueCheck(_RegRead($REG_KEY_NAME, 'AlwaysOnTop', 'REG_DWORD', $_Top), 0, 1)     $_Position = _ValueCheck(_RegRead($REG_KEY_NAME, 'CoordinateMode', 'REG_DWORD', $_Position), 0, 3)     $_Color = _ValueCheck(_RegRead($REG_KEY_NAME, 'ColorMode', 'REG_DWORD', $_Color), 0, 1)     $_Crosshair = _ValueCheck(_RegRead($REG_KEY_NAME, 'Crosshair', 'REG_DWORD', $_Crosshair), 0, 1)     $_Highlight = _ValueCheck(_RegRead($REG_KEY_NAME, 'Highlight', 'REG_DWORD', $_Highlight), 0, 1)     $_Frame = BitAND(_RegRead($REG_KEY_NAME, 'HighlightColor', 'REG_DWORD', $_Frame), 0x00FFFFFF)     $_Alpha = _ValueCheck(_RegRead($REG_KEY_NAME, 'HighlightTransparency', 'REG_DWORD', $_Alpha), 0, 255)     $_Fade = _ValueCheck(_RegRead($REG_KEY_NAME, 'HighlightFadeIn', 'REG_DWORD', $_Fade), 0, 1)     $_Code = _ValueCheck(_RegRead($REG_KEY_NAME, 'Encoding', 'REG_DWORD', $_Code), 0, 3)     $_Icon = _ValueCheck(_RegRead($REG_KEY_NAME, 'TabIcon', 'REG_DWORD', $_Icon), 0, 1)     $_Tab = _ValueCheck(_RegRead($REG_KEY_NAME, 'Tab', 'REG_DWORD', $_Tab), 0, 3)     $_Rgb[0] = BitAND(_RegRead($REG_KEY_NAME, 'ControlVisibleColor', 'REG_DWORD', $_Rgb[0]), 0x00FFFFFF)     $_Rgb[1] = BitAND(_RegRead($REG_KEY_NAME, 'ControlHiddenColor', 'REG_DWORD', $_Rgb[1]), 0x00FFFFFF)     $_Rgb[2] = BitAND(_RegRead($REG_KEY_NAME, 'ControlMissingColor', 'REG_DWORD', $_Rgb[2]), 0x00FFFFFF)     $_Column[0 ] = _RegRead($REG_KEY_NAME, 'ColumnControlHandle', 'REG_DWORD', $_Column[0])     $_Column[1 ] = _RegRead($REG_KEY_NAME, 'ColumnControlClass', 'REG_DWORD', $_Column[1])     $_Column[2 ] = _RegRead($REG_KEY_NAME, 'ColumnControlNN', 'REG_DWORD', $_Column[2])     $_Column[3 ] = _RegRead($REG_KEY_NAME, 'ColumnControlID', 'REG_DWORD', $_Column[3])     $_Column[4 ] = _RegRead($REG_KEY_NAME, 'ColumnAutoItProcess', 'REG_DWORD', $_Column[4])     $_Column[5 ] = _RegRead($REG_KEY_NAME, 'ColumnAutoItPID', 'REG_DWORD', $_Column[5])     $_Column[6 ] = _RegRead($REG_KEY_NAME, 'ColumnAutoItHandle', 'REG_DWORD', $_Column[6])     $_Column[7 ] = _RegRead($REG_KEY_NAME, 'ColumnAutoItClass', 'REG_DWORD', $_Column[7])     $_Column[8 ] = _RegRead($REG_KEY_NAME, 'ColumnAutoItTitle', 'REG_DWORD', $_Column[8])     $_Column[9 ] = _RegRead($REG_KEY_NAME, 'ColumnAutoItVersion', 'REG_DWORD', $_Column[9])     $_Column[10] = _RegRead($REG_KEY_NAME, 'ColumnAutoItPath', 'REG_DWORD', $_Column[10])     $_Crop[0] = _ValueCheck(_RegRead($REG_KEY_NAME, 'CaptureWidth', 'REG_DWORD', $_Crop[0]), 43, 349)     $_Crop[1] = _ValueCheck(_RegRead($REG_KEY_NAME, 'CaptureHeight', 'REG_DWORD', $_Crop[0]), 43, 223)     $_Capture = _ValueCheck(_RegRead($REG_KEY_NAME, 'LiveCapture', 'REG_DWORD', $_Capture), 0, 1)     $_All = _ValueCheck(_RegRead($REG_KEY_NAME, 'AutoItVisible', 'REG_DWORD', $_All), 0, 1)     For $i = 0 To 1         If Not Mod($_Crop[$i], 2) Then             $_Crop[$i] -= 1         EndIf     Next EndFunc   ;==>_ReadRegistry Func _RegRead($sKey, $sValue, $sType, $sDefault)     Local $Val, $Error = 0     $Val = RegRead($sKey, $sValue)     If @error Then         Switch @error             Case -1, 1                 RegWrite($sKey, $sValue, $sType, $sDefault)             Case Else         EndSwitch         Return SetError(@error, 0, $sDefault)     EndIf     Switch $sType         Case 'REG_SZ', 'REG_MULTI_SZ', 'REG_EXPAND_SZ'             If Not IsString($Val) Then                 $Error = -3             EndIf         Case 'REG_BINARY'             If Not IsBinary($Val) Then                 $Error = -3             EndIf         Case 'REG_DWORD'             If Not IsInt($Val) Then                 $Error = -3             EndIf         Case Else             $Error = -2     EndSwitch     If $Error Then         Return SetError($Error, 0, $sDefault)     Else         Return $Val     EndIf EndFunc   ;==>_RegRead Func _SCAW()     Local $tState = _WinAPI_GetKeyboardState()     For $i = 0x5B To 0x5C         If BitAND(DllStructGetData($tState, 1, $i + 1), 0xF0) Then             Return 1         EndIf     Next     For $i = 0xA0 To 0xA5         If BitAND(DllStructGetData($tState, 1, $i + 1), 0xF0) Then             Return 1         EndIf     Next     Return 0 EndFunc   ;==>_SCAW Func _SetAutoItInfo()     Local $ID, $List, $Argv, $File, $Flag, $Name, $Path, $Version, $hIcon, $Index = 0     Local $Data[101][6] = [[0]]     _GUICtrlListView_BeginUpdate($hAutoIt)     _GUICtrlListView_DeleteAllItems($hAutoIt)     _GUIImageList_SetImageCount($hIL, 4)     $List = WinList()     If IsArray($List) Then         For $i = 0 To $List[0][0]             $ID = WinGetProcess($List[$i][1])             If ($ID <> -1) And ($ID <> @AutoItPID) And (StringInStr(_WinAPI_GetClassName($List[$i][1]), 'AutoIt v3')) And (_ArraySearch($Data, $ID, 1) = -1) Then                 $Path = _WinAPI_GetProcessFileName($ID)                 If Not $Path Then                     ContinueLoop                 EndIf                 $Name = _WinAPI_GetProcessName($ID)                 If Not $Name Then                     ContinueLoop                 EndIf                 $File = ''                 $Version = ''                 If ($Name = 'AutoIt3.exe') And (FileGetVersion($Path, 'ProductName') = 'AutoIt v3 Script') Then                     $Argv = _WinAPI_CommandLineToArgv(_WinAPI_GetProcessCommandLine($ID))                     For $i = 1 To UBound($Argv) - 1                         If StringLeft($Argv[$i], 1) <> '/' Then                             If _WinAPI_PathIsRelative($Argv[$i]) Then                                 $File = _WinAPI_PathSearchAndQualify(_WinAPI_GetProcessWorkingDirectory($ID) & '\' & $Argv[$i], 1)                             Else                                 $File = _WinAPI_PathSearchAndQualify($Argv[$i], 1)                             EndIf                             ExitLoop                         EndIf                     Next                     If $File Then                         $Version = FileGetVersion($Path)                         If @error Then                             $Version = ''                         EndIf                     EndIf                     $Flag = 0                 Else                     $File = $Path                     $Flag = 1                 EndIf                 $Data[0][0] += 1                 If $Data[0][0] > UBound($Data) - 1 Then                     ReDim $Data[$Data[0][0] + 100][6]                 EndIf                 $Data[$Data[0][0]][0] = $ID                 $Data[$Data[0][0]][1] = $Name                 $Data[$Data[0][0]][2] = $Path                 $Data[$Data[0][0]][3] = $Version                 $Data[$Data[0][0]][4] = $File                 $Data[$Data[0][0]][5] = $Flag             EndIf         Next         _ArraySort($Data, 0, 1, $Data[0][0], 1)         $Enum += 1         For $i = 1 To $Data[0][0]             $List = _WinAPI_EnumProcessWindows($Data[$i][0], Not $_All)             If Not IsArray($List) Then                 ContinueLoop             EndIf             For $j = 1 to $List[0][0]                 If $_All Then                     $Flag = _WinAPI_IsWindowVisible($List[$j][0])                 Else                     $Flag = 1                 EndIf                 If $Data[$i][5] Then                     $hIcon = _WinAPI_ExtractIcon($Data[$i][2], 0, 1)                     If $hIcon Then                         If Not $Flag Then                             $hIcon = _WinAPI_AddIconTransparency($hIcon, 50, 1)                         Endif                         $ID = _GUIImageList_ReplaceIcon($hIL, -1, $hIcon)                         If $hIcon Then                             _WinAPI_DestroyIcon($hIcon)                         EndIf                     EndIf                 Else                     $hIcon = 0                 EndIf                 If Not $hIcon Then                     If $Data[$i][5] Then                         If $Flag Then                             $ID = 0                         Else                             $ID = 1                         EndIf                     Else                         If $Flag Then                             $ID = 2                         Else                             $ID = 3                         EndIf                     EndIf                 EndIf                 _GUICtrlListView_AddItem($hAutoIt, $Data[$i][1], $ID)                 _GUICtrlListView_AddSubItem($hAutoIt, $Index, $Data[$i][0], 1)                 _GUICtrlListView_AddSubItem($hAutoIt, $Index, $List[$j][0], 2)                 _GUICtrlListView_AddSubItem($hAutoIt, $Index, $List[$j][1], 3)                 _GUICtrlListView_AddSubItem($hAutoIt, $Index, _WinAPI_GetWindowText($List[$j][0]), 4)                 _GUICtrlListView_AddSubItem($hAutoIt, $Index, $Data[$i][3], 5)                 _GUICtrlListView_AddSubItem($hAutoIt, $Index, $Data[$i][4], 6)                 If Not $Flag Then                     _GUICtrlListView_SetItemParam($hAutoIt, $Index, 0x7FFFFFFF)                 EndIf                 $Index += 1             Next         Next         $Enum -= 1     EndIf     _GUICtrlListView_EndUpdate($hAutoIt) EndFunc   ;==>_SetAutoItInfo Func _SetBitmap($hWnd, $hBitmap, $fUpdate = 0) ;~  $hWnd = _HWnd($hWnd) ;~  If Not $hWnd Then ;~      Return ;~  EndIf     Local $hPrev, $Pos     If Not $hBitmap Then         $Pos = ControlGetPos($hWnd, '', 0)     EndIf     $hPrev = _SendMessage($hWnd, $STM_SETIMAGE, $IMAGE_BITMAP, $hBitmap)     If $hPrev Then         _WinAPI_DeleteObject($hPrev)     EndIf     If Not $hBitmap Then         _WinAPI_MoveWindow($hWnd, $Pos[0], $Pos[1], $Pos[2], $Pos[3], 0)     Else         $hPrev = _SendMessage($hWnd, $STM_GETIMAGE)         If $hPrev <> $hBitmap Then             _WinAPI_DeleteObject($hBitmap)         EndIf     EndIf     If $fUpdate Then         _WinAPI_UpdateWindow($hWnd)     EndIf     Return 1 EndFunc   ;==>_SetBitmap Func _SetData($CtrlID, $sData)     If StringCompare(GUICtrlRead($CtrlID), $sData, 1) Then         _GUICtrlEdit_SetText($CtrlID, $sData)     EndIf EndFunc   ;==>_SetData Func _SetStyle($hWnd, $iStyle, $fSet, $fExStyle = 0, $fUpdate = 0)     $hWnd = _HWnd($hWnd)     If Not $hWnd Then         Return     EndIf     Local $Flag = $GWL_STYLE     If $fExStyle Then         $Flag = $GWL_EXSTYLE     EndIf     Local $Style = _WinAPI_GetWindowLong($hWnd, $Flag)     If $fSet Then         If BitAND($Style, $iStyle) <> $iStyle Then             _WinAPI_SetWindowLong($hWnd, $Flag, BitOR($Style, $iStyle))         EndIf     Else         If BitAND($Style, $iStyle) Then             _WinAPI_SetWindowLong($hWnd, $Flag, BitAND($Style, BitNOT($iStyle)))         EndIf     EndIf     If $fUpdate Then         _WinAPI_InvalidateRect($hWnd)     EndIf EndFunc   ;==>_SetStyle Func _SetControlInfo($hWnd)     If Not $hWnd Then         For $i = 16 To 30             _SetData($Input[$i], '')         Next         Return     EndIf     Local $Data, $Prev, $Index     $Index = _GUICtrlListView_GetSelectedIndices($hListView)     $Data = _WinAPI_GetClassName($hWnd)     If ($Index) And (StringCompare(_GUICtrlListView_GetItemText($hListView, $Index, 1), $Data, 1)) Then         _GUICtrlListView_SetItemText($hListView, $Index, $Data, 1)     EndIf     If $Data Then         _SetData($Input[16], $Data)     Else         _SetData($Input[16], '')     EndIf     $Prev = $Data     $Data = _GetNN($hWnd)     If $Data <= 0 Then         $Data = ''     EndIf     If ($Index) And (StringCompare(_GUICtrlListView_GetItemText($hListView, $Index, 2), $Data, 1)) Then         _GUICtrlListView_SetItemText($hListView, $Index, $Data, 2)     EndIf     If $Data Then         _SetData($Input[17], $Data)         If $Prev Then             _SetData($Input[18], '[CLASS:' & $Prev & '; INSTANCE:' & $Data & ']')         Else             _SetData($Input[18], '')         EndIf     Else         For $i = 17 To 18             _SetData($Input[$i], '')         Next     EndIf     $Data = _WinAPI_GetDlgCtrlID($hWnd)     If $Data <= 0 Then         $Data = ''     EndIf     If ($Index) And (StringCompare(_GUICtrlListView_GetItemText($hListView, $Index, 3), $Data, 1)) Then         _GUICtrlListView_SetItemText($hListView, $Index, $Data, 3)     EndIf     If $Data Then         _SetData($Input[19], $Data)         If $Prev Then             _SetData($Input[20], '[CLASS:' & $Prev & '; ID:' & $Data & ']')         Else             _SetData($Input[20], '')         EndIf     Else         For $i = 19 To 20             _SetData($Input[$i], '')         Next     EndIf     $Data = _WinAPI_GetWindowLongEx($hWnd, $GWL_STYLE) ;~  If $Data Then         _SetData($Input[21], '0x' & Hex($Data, 8))         _SetData($Input[22], _GetStyleString($Data, 0, 0)) ;~  Else ;~      For $i = 21 To 22 ;~          _SetData($Input[$i], '') ;~      Next ;~  EndIf     $Data = _WinAPI_GetWindowLongEx($hWnd, $GWL_EXSTYLE) ;~  If $Data Then         _SetData($Input[23], '0x' & Hex($Data, 8))         _SetData($Input[24], _GetStyleString($Data, 0, 1)) ;~  Else ;~      For $i = 23 To 24 ;~          _SetData($Input[$i], '') ;~      Next ;~  EndIf     $Data = _WinAPI_GetWindowRect($hWnd)     For $i = 27 To 28         _SetData($Input[$i], DllStructGetData($Data, $i - 24) - DllStructGetData($Data, $i - 26))     Next     If _WinAPI_ScreenToClient(_WinAPI_GetAncestor($hWnd, $GA_ROOT), $Data) Then         For $i = 25 To 26             _SetData($Input[$i], DllStructGetData($Data, $i - 24))         Next     Else         For $i = 25 To 26             _SetData($Input[$i], '')         Next     EndIf ;~  If $hWnd Then         _SetData($Input[29], $hWnd) ;~  Else ;~      _SetData($Input[29], '') ;~  EndIf     $Data = StringLeft(ControlGetText($hWnd, '', 0), 80)     Switch $_Code         Case 0 ; ANSI             $Data = BinaryToString(StringToBinary($Data, 2), 1)         Case 1 ; Unicode         Case 2 ; Unicode (Big Endian)             $Data = BinaryToString(StringToBinary($Data, 2), 3)         Case 3 ; UTF8             $Data = BinaryToString(StringToBinary($Data, 2), 4)     EndSwitch     If $Data Then         _SetData($Input[30], StringStripWS(StringRegExpReplace($Data, '\n.*', ''), 2))     Else         _SetData($Input[30], '')     EndIf EndFunc   ;==>_SetControlInfo Func _SetWindowInfo($hWnd)     If Not $hWnd Then         For $i = 3 To 15             _SetData($Input[$i], '')         Next         Return     EndIf     Local $Data     $Data = _WinAPI_GetWindowText($hWnd)     If $Data Then         _SetData($Input[3], $Data)     Else         _SetData($Input[3], '')     EndIf     $Data = _WinAPI_GetClassName($hWnd)     If $Data Then         _SetData($Input[4], $Data)     Else         _SetData($Input[4], '')     EndIf     $Data = _WinAPI_GetWindowLongEx($hWnd, $GWL_STYLE) ;~  If $Data Then         _SetData($Input[5], '0x' & Hex($Data, 8))         _SetData($Input[6], _GetStyleString($Data)) ;~  Else ;~      For $i = 5 To 6 ;~          _SetData($Input[$i], '') ;~      Next ;~  EndIf     $Data = _WinAPI_GetWindowLongEx($hWnd, $GWL_EXSTYLE) ;~  If $Data Then         _SetData($Input[7], '0x' & Hex($Data, 8))         _SetData($Input[8], _GetStyleString($Data, 1, 1)) ;~  Else ;~      For $i = 7 To 8 ;~          _SetData($Input[$i], '') ;~      Next ;~  EndIf     $Data = _WinAPI_GetWindowRect($hWnd)     For $i = 9  To 10         _SetData($Input[$i], DllStructGetData($Data, $i - 8))     Next     For $i = 11 To 12         _SetData($Input[$i], DllStructGetData($Data, $i - 8) - DllStructGetData($Data, $i - 10))     Next ;~  If $hWnd Then         _SetData($Input[13], $hWnd) ;~  Else ;~      _SetData($Input[13], '') ;~  EndIf     $Data = WinGetProcess($hWnd)     If $Data > -1 Then         _SetData($Input[14], $Data)         $Data = _WinAPI_GetProcessFileName($Data)         If Not @error Then             _SetData($Input[15], FileGetLongName($Data))         Else             _SetData($Input[15], '')         EndIf     Else         For $i = 14 To 15             _SetData($Input[$i], '')         Next     EndIf EndFunc   ;==>_SetWindowInfo Func _SetFrameOrder($hOwner)     If BitAND(_WinAPI_GetWindowLong($hOwner, $GWL_EXSTYLE), $WS_EX_TOPMOST) Then         WinSetOnTop($hFrame, '', 1)     Else         WinSetOnTop($hFrame, '', 0)     EndIf     If _WinAPI_SetWindowPos($hFrame, _WinAPI_GetWindow($hOwner, $GW_HWNDPREV), 0, 0, 0, 0, BitOR($SWP_NOACTIVATE, $SWP_NOMOVE, $SWP_NOSIZE)) Then         Return 1     Else         Return 0     EndIf EndFunc   ;==>_SetFrameOrder Func _ShellAboutDlg($hParent = 0)     Local $hDlg, $hLayer, $hPng, $tSize, $Button, $Msg, $Pos, $Top = 0     If Not $hAbout Then         _GDIPlus_Startup()         If Not @compiled Then             $hPng = _GDIPlus_ImageLoadFromFile(@ScriptDir & '\Resources\About.png')         Else             $hPng = _LoadResourceImage($hInstance, 'PNG', 'ABOUT')         EndIf         $hAbout = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hPng)         _GDIPlus_ImageDispose($hPng)         _GDIPlus_Shutdown()     EndIf     $tSize = _WinAPI_GetBitmapDimension($hAbout)     If @error Then         Return 0     EndIf ;~  Opt('GUICloseOnESC', 1)     GUISetState(@SW_DISABLE, $hParent)     If Not $hParent Then         $Top = $WS_EX_TOPMOST     EndIf     $hDlg = GUICreate($GUI_NAME, DllStructGetData($tSize, 1), DllStructGetData($tSize, 2), -1, -1, $WS_POPUP, BitOR($WS_EX_LAYERED, $Top), $hParent)     $Pos = WinGetPos($hDlg)     $hLayer = GUICreate('', 70, 23, $Pos[0] + ($Pos[2] - 70) / 2, $Pos[1] + $Pos[3] - 50, $WS_POPUP, $WS_EX_LAYERED, $hDlg) ;~  GUISetFont(8.5, 400, 0, 'MS Shell Dlg', $hLayer)     GUISetBkColor(0x2B5280, $hLayer)     $Button = GUICtrlCreateButton('OK', 0, 0, 70, 23)     GUICtrlSetState(-1, $GUI_FOCUS)     _WinAPI_SetLayeredWindowAttributes($hLayer, 0x2B5280, 0, $LWA_COLORKEY)     _WinAPI_UpdateLayeredWindowEx($hDlg, -1, -1, $hAbout)     GUISetState(@SW_SHOW, $hDlg)     GUISetState(@SW_SHOW, $hLayer)     While 1         $Msg = GUIGetMsg()         Switch $Msg             Case $GUI_EVENT_CLOSE, $Button                 ExitLoop         EndSwitch     WEnd     GUISetState(@SW_ENABLE, $hParent)     GUIDelete($hLayer)     GUIDelete($hDlg) ;~  Opt('GUICloseOnESC', 0) EndFunc   ;==>_ShellAboutDlg Func _ShellKillProcess($PID, $hParent = 0)     Local $Name = _WinAPI_GetProcessName($PID)     If Not $Name Then         Return 0     EndIf     If MsgBox(256 + 48 + 4, $GUI_NAME, 'Are you sure you want to close this prosess?', 0, $hParent) = 6 Then         If Not ProcessClose($PID) Then             MsgBox(16, $GUI_NAME, 'Unable to close the process.', 0, $hParent)             Return 0         Else             Return 1         EndIf     EndIf     Return 0 EndFunc   ;==>_ShellKillProcess Func _ShellReportDlg($hParent = 0)     Local $hFile, $Data, $Path, $Result     $Path = FileSaveDialog('Save Report', StringRegExpReplace($PathDlg, '\\[^\\]*\Z', ''), 'Text Document (*.txt)|All Files (*.*)', 2 + 16, 'Report.txt', $hParent)     If Not $Path Then         Return 1     EndIf     $PathDlg = StringRegExpReplace($Path, '^.*\.', '')     $Data = _CreateReport()     If Not $Data Then         Return 0     EndIf     $hFile = FileOpen($Path, 2)     $Result = FileWrite($hFile, $Data)     FileClose($hFile)     Return $Result EndFunc   ;==>_ShellReportDlg Func _ShellSaveDlg($hParent = 0)     Local $hSrcDC, $hDstDC, $hSrcSv, $hDstSv, $hArea, $hBitmap, $Path, $Result     $Path = FileSaveDialog('Save Image', StringRegExpReplace($PathDlg, '\\[^\\]*\Z', ''), 'Portable Network Graphic (*.png)|All Files (*.*)', 2 + 16, 'Capture.png', $hParent)     If Not $Path Then         Return 1     EndIf     $PathDlg = StringRegExpReplace($Path, '^.*\.', '')     $hBitmap = _SendMessage($hPic[1], $STM_GETIMAGE)     If Not $hBitmap Then         Return 0     EndIf     $hArea = _WinAPI_CreateBitmap($_Crop[0] - 10, $_Crop[1] - 10, 1, 32)     If Not $hArea Then         Return 0     EndIf     $hSrcDC = _WinAPI_CreateCompatibleDC(0)     $hSrcSv = _WinAPI_SelectObject($hSrcDC, $hBitmap)     $hDstDC = _WinAPI_CreateCompatibleDC(0)     $hSrcSv = _WinAPI_SelectObject($hDstDC, $hArea)     _WinAPI_BitBlt($hDstDC, 0, 0, $_Crop[0] - 10, $_Crop[1] - 10, $hSrcDC, 5, 5, $SRCCOPY)     _WinAPI_SelectObject($hSrcDC, $hSrcSv)     _WinAPI_SelectObject($hDstDC, $hDstSv)     _WinAPI_DeleteDC($hSrcDC)     _WinAPI_DeleteDC($hDstSv)     $hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hArea)     $Result = _GDIPlus_ImageSaveToFile($hBitmap, $Path)     _GDIPlus_BitmapDispose($hBitmap)     _WinAPI_DeleteObject($hArea)     Return $Result EndFunc   ;==>_ShellSaveDlg Func _ShowFrame($fShow, $tRect = 0, $hOwner = 0)     If (Not $_Alpha) Or (Not $_Highlight) Then         Return     EndIf     Local $hGraphics, $hPen, $hBitmap, $Pos     If $_Fade Then         AdlibUnRegister('_ShowProc')         $Fade = 0         $Hold = 0     EndIf     If $hRect Then         _WinAPI_UpdateLayeredWindowEx($hFrame, -1, -1, $hRect, 0, 1) ;       _WinAPI_DeleteObject($hRect)     EndIf     $Alpha = 0     $hRect = 0     If Not $fShow Then         GUISetState(@SW_HIDE, $hFrame)         If $_Fade Then             $Fade = 1             $Hold = TimerInit()             AdlibRegister('_ShowProc', 10)         EndIf         Return     EndIf     $Pos = _WinAPI_GetPosFromRect($tRect)     If (Not IsArray($Pos)) Or (Not $Pos[2]) Or (Not $Pos[3]) Then         GUISetState(@SW_HIDE, $hFrame)         Return     EndIf     WinMove($hFrame, '', $Pos[0], $Pos[1], $Pos[2], $Pos[3]) ;~  WinSetOnTop($hFrame, '', 1)     If $hOwner Then         _SetFrameOrder($hOwner)     EndIf     $hBitmap = _GDIPlus_CreateBitmapFromScan0($Pos[2], $Pos[3])     $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap) ;~  _GDIPlus_GraphicsClear($hGraphics, 0)     $hPen = _GDIPlus_PenCreate(BitOR(BitShift($_Alpha, -24), $_Frame), 3)     _GDIPlus_GraphicsDrawRect($hGraphics, 1, 1, _Max($Pos[2] - 3, 1), _Max($Pos[3] - 3, 1), $hPen)     $hRect = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap)     _GDIPlus_GraphicsDispose($hGraphics)     _GDIPlus_ImageDispose($hBitmap)     _GDIPlus_PenDispose($hPen)     If $hRect Then         GUISetState(@SW_SHOWNOACTIVATE, $hFrame)     Else         GUISetState(@SW_HIDE, $hFrame)         If $_Fade Then             $Hold = TimerInit()         Else             Return         EndIf     EndIf     If $_Fade Then         $Fade = 1         AdlibRegister('_ShowProc', 10)     Else         If Not _WinAPI_UpdateLayeredWindowEx($hFrame, -1, -1, $hRect, $_Alpha) Then             ; Nothing         EndIf     EndIf EndFunc   ;==>_ShowFrame Func _ShowProc()     If $Hold Then         If TimerDiff($Hold) > 250 Then             AdlibUnRegister('_ShowProc')             $Fade = 0             $Hold = 0         EndIf         Return     EndIf     $Alpha += $_Alpha / 8     If $Alpha >= $_Alpha Then         $Alpha = $_Alpha         $Hold  = TimerInit()     EndIf     If Not _WinAPI_UpdateLayeredWindowEx($hFrame, -1, -1, $hRect, $Alpha) Then         ; Nothing     EndIf EndFunc   ;==>_ShowProc Func _Update($fDisable = 0)     $Refresh += 1     Opt('GUIOnEventMode', 1)     Local $State, $Update = False     Local $hItem     For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1         $hItem = Ptr(_GUICtrlListView_GetItemText($hListView, $i))         If (Not $fDisable) And (_WinAPI_IsWindow($hItem)) Then             $State = _WinAPI_IsWindowVisible($hItem)             If _GUICtrlListView_GetItemChecked($hListView, $i) <> $State Then                 If Not $Update Then                     $Update = _GUICtrlListView_BeginUpdate($hListView)                 EndIf                 _GUICtrlListView_SetItemChecked($hListView, $i, $State)                 If _GUICtrlListView_GetItemState($hListView, $i, $LVIS_SELECTED) Then                     _SetControlInfo($hItem)                 EndIf             EndIf         Else             If Not $Update Then                 $Update = _GUICtrlListView_BeginUpdate($hListView)             EndIf             If _GUICtrlListView_GetItemChecked($hListView, $i) Then                 _GUICtrlListView_SetItemChecked($hListView, $i, 0)             EndIf             If $hItem Then                 _GUICtrlListView_SetItemText($hListView, $i, $hItem & ChrW(160))             EndIf             _GUICtrlListView_RedrawItems($hListView, $i, $i)         EndIf     Next     If $Update Then         _GUICtrlListView_EndUpdate($hListView)     EndIf     Opt('GUIOnEventMode', 0)     $Refresh -= 1 EndFunc   ;==>_Update Func _ValueCheck($iValue, $iMin, $iMax = Default)     If ($iMin <> Default) And ($iValue < $iMin) Then         Return $iMin     EndIf     If ($iMax <> Default) And ($iValue > $iMax) Then         Return $iMax     EndIf     Return $iValue EndFunc   ;==>_ValueCheck Func _WriteRegistry()     RegWrite($REG_KEY_NAME, 'XPos', 'REG_DWORD', $_XPos)     RegWrite($REG_KEY_NAME, 'YPos', 'REG_DWORD', $_YPos) ;~  RegWrite($REG_KEY_NAME, 'About', 'REG_DWORD', $_About)     RegWrite($REG_KEY_NAME, 'ClientWidth', 'REG_DWORD', $_Width)     RegWrite($REG_KEY_NAME, 'ClientHeight', 'REG_DWORD', $_Height)     RegWrite($REG_KEY_NAME, 'AlwaysOnTop', 'REG_DWORD', $_Top)     RegWrite($REG_KEY_NAME, 'CoordinateMode', 'REG_DWORD', $_Position)     RegWrite($REG_KEY_NAME, 'ColorMode', 'REG_DWORD', $_Color)     RegWrite($REG_KEY_NAME, 'Crosshair', 'REG_DWORD', $_Crosshair)     RegWrite($REG_KEY_NAME, 'Highlight', 'REG_DWORD', $_Highlight)     RegWrite($REG_KEY_NAME, 'HighlightColor', 'REG_DWORD', $_Frame)     RegWrite($REG_KEY_NAME, 'HighlightTransparency', 'REG_DWORD', $_Alpha)     RegWrite($REG_KEY_NAME, 'HighlightFadeIn', 'REG_DWORD', $_Fade)     RegWrite($REG_KEY_NAME, 'Encoding', 'REG_DWORD', $_Code) ;~  RegWrite($REG_KEY_NAME, 'TabIcon', 'REG_DWORD', $_Icon)     RegWrite($REG_KEY_NAME, 'Tab', 'REG_DWORD', $_Tab)     RegWrite($REG_KEY_NAME, 'ControlVisibleColor', 'REG_DWORD', $_Rgb[0])     RegWrite($REG_KEY_NAME, 'ControlHiddenColor', 'REG_DWORD', $_Rgb[1])     RegWrite($REG_KEY_NAME, 'ControlMissingColor', 'REG_DWORD', $_Rgb[2])     RegWrite($REG_KEY_NAME, 'ColumnControlHandle', 'REG_DWORD', $_Column[0])     RegWrite($REG_KEY_NAME, 'ColumnControlClass', 'REG_DWORD', $_Column[1])     RegWrite($REG_KEY_NAME, 'ColumnControlNN', 'REG_DWORD', $_Column[2])     RegWrite($REG_KEY_NAME, 'ColumnControlID', 'REG_DWORD', $_Column[3])     RegWrite($REG_KEY_NAME, 'ColumnAutoItProcess', 'REG_DWORD', $_Column[4])     RegWrite($REG_KEY_NAME, 'ColumnAutoItPID', 'REG_DWORD', $_Column[5])     RegWrite($REG_KEY_NAME, 'ColumnAutoItHandle', 'REG_DWORD', $_Column[6])     RegWrite($REG_KEY_NAME, 'ColumnAutoItClass', 'REG_DWORD', $_Column[7])     RegWrite($REG_KEY_NAME, 'ColumnAutoItTitle', 'REG_DWORD', $_Column[8])     RegWrite($REG_KEY_NAME, 'ColumnAutoItVersion', 'REG_DWORD', $_Column[9])     RegWrite($REG_KEY_NAME, 'ColumnAutoItPath', 'REG_DWORD', $_Column[10])     RegWrite($REG_KEY_NAME, 'CaptureWidth', 'REG_DWORD', $_Crop[0])     RegWrite($REG_KEY_NAME, 'CaptureHeight', 'REG_DWORD', $_Crop[1])     RegWrite($REG_KEY_NAME, 'LiveCapture', 'REG_DWORD', $_Capture)     RegWrite($REG_KEY_NAME, 'AutoItVisible', 'REG_DWORD', $_All)     If @compiled Then         RegWrite($REG_KEY_NAME, 'Path', 'REG_SZ', @ScriptFullPath)     EndIf EndFunc   ;==>_WriteRegistry #EndRegion Additional Functions #Region Hotkey Assigned Functions Func _HK_Edit()     Switch _WinAPI_GetFocus()         Case 0         Case $hAutoIt             If Not _SCAW() Then                 GUICtrlSendToDummy($Dummy[4])             EndIf             Return     EndSwitch     GUISetAccelerators(0, $hForm)     Send('{ENTER}')     GUISetAccelerators($Accel, $hForm) EndFunc   ;==>_HK_Edit Func _HK_SelectAll()     Local $ID = _WinAPI_GetDlgCtrlID(_WinAPI_GetFocus())     For $i = 0 To UBound($Input) - 1         If $Input[$i] = $ID Then             _GUICtrlEdit_SetSel($ID, 0, -1)             Return         EndIf     Next     GUISetAccelerators(0, $hForm)     Send('^a')     GUISetAccelerators($Accel, $hForm) EndFunc   ;==>_HK_SelectAll #EndRegion Hotkey Assigned Functions #Region GDI+ Functions Func _GDIPlus_BitmapGetPixel($hBitmap, $iX, $iY)     Local $Ret = DllCall($ghGDIPDll, 'uint', 'GdipBitmapGetPixel', 'ptr', $hBitmap, 'int', $iX, 'int', $iY, 'uint*', 0)     If (@error) Or ($Ret[0]) Then         Return SetError(@error, @extended, 0)     EndIf     Return $Ret[4] EndFunc   ;==>_GDIPlus_BitmapGetPixel Func _GDIPlus_CreateBitmapFromScan0($iWidth, $iHeight, $iStride = 0, $iPixelFormat = 0x0026200A, $pScan0 = 0)     Local $Ret = DllCall($ghGDIPDll, 'uint', 'GdipCreateBitmapFromScan0', 'int', $iWidth, 'int', $iHeight, 'int', $iStride, 'int', $iPixelFormat, 'ptr', $pScan0, 'ptr*', 0)     If (@error) Or ($Ret[0]) Then         Return SetError(@error, @extended, 0)     EndIf     Return $Ret[6] EndFunc   ;==>_GDIPlus_CreateBitmapFromScan0 #EndRegion GDI+ Functions #Region Windows Message Functions Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)     ; Handler from ColorChooser.au3     CC_WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)     Switch $hWnd         Case $hForm             Switch _WinAPI_HiWord($wParam)                 Case $EN_KILLFOCUS                     _GUICtrlEdit_SetSel(_WinAPI_LoWord($wParam), 0, 0)             EndSwitch     EndSwitch     Return $GUI_RUNDEFMSG EndFunc   ;==>WM_COMMAND Func WM_GETMINMAXINFO($hWnd, $iMsg, $wParam, $lParam)     Local $tMMI = DllStructCreate('long Reserved[2];long MaxSize[2];long MaxPosition[2];long MinTrackSize[2];long MaxTrackSize[2]', $lParam)     Switch $hWnd         Case $hForm             If IsArray($Area) Then                 DllStructSetData($tMMI, 'MinTrackSize', $Area[2], 1)                 DllStructSetData($tMMI, 'MinTrackSize', $Area[3], 2)                 DllStructSetData($tMMI, 'MaxTrackSize', $Area[2], 1)             EndIf     EndSwitch     Return $GUI_RUNDEFMSG EndFunc   ;==>WM_GETMINMAXINFO Func WM_LBUTTONDBLCLK($hWnd, $iMsg, $wParam, $lParam)     Switch $hWnd         Case $hForm             Local $Info = GUIGetCursorInfo($hForm)             If (IsArray($Info)) And ($Info[4] = $Pic) And ($hDesktop) And (Not _SCAW()) Then                 GUICtrlSendToDummy($Dummy[3])             EndIf     EndSwitch     Return $GUI_RUNDEFMSG EndFunc   ;==>WM_LBUTTONDBLCLK Func WM_LBUTTONDOWN($hWnd, $iMsg, $wParam, $lParam)     Switch $hWnd         Case $hForm             Local $Info = GUIGetCursorInfo($hForm)             If (IsArray($Info)) And ($Info[4] = $Pic) Then                 GUICtrlSendToDummy($Dummy[2])             EndIf     EndSwitch     Return $GUI_RUNDEFMSG EndFunc   ;==>WM_LBUTTONDOWN Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)     If $Enum Then         Return $GUI_RUNDEFMSG     EndIf     Local $tNMITEMACTIVATE = DllStructCreate($tagNMHDR & __Iif(@AutoItX64, ';int', '') & ';int Item;int SubItem;uint NewState;uint OldState;uint Changed;long X;long Y;lparam lParam;uint KeyFlags', $lParam) ;~  Local $tNMITEMACTIVATE = DllStructCreate($tagNMITEMACTIVATE, $lParam)     Local $hFrom = DllStructGetData($tNMITEMACTIVATE, 'hWndFrom')     Local $Index = DllStructGetData($tNMITEMACTIVATE, 'Item')     Local $ID = DllStructGetData($tNMITEMACTIVATE, 'Code')     Local $hItem, $State = False     Switch $hFrom         Case $hHeader[0]             Switch $ID                 Case $HDN_ITEMCHANGEDW                     $_Column[$Index + 0] = _GUICtrlListView_GetColumnWidth($hListView, $Index)             EndSwitch         Case $hHeader[1]             Switch $ID                 Case $HDN_ITEMCHANGEDW                     $_Column[$Index + 4] = _GUICtrlListView_GetColumnWidth($hAutoIt, $Index)             EndSwitch         Case $hListView             Switch $ID                 Case $LVN_BEGINDRAG                     Return 0                 Case $NM_CUSTOMDRAW                     Local $tNMLVCUSTOMDRAW = DllStructCreate($tagNMHDR & __Iif(@AutoItX64, ';int', '') & ';dword DrawStage;hwnd hDC;long Left;long Top;long Right;long Bottom;dword_ptr ItemSpec;uint ItemState;lparam ItemlParam;dword clrText;dword clrTextBk;int SubItem;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartId;int StateId;long TextLeft;long TextTop;long TextRight;long TextBottom;uint Align', $lParam) ;~                  Local $tNMLVCUSTOMDRAW = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam)                     Local $Stage = DllStructGetData($tNMLVCUSTOMDRAW, 'DrawStage')                     Local $Index = DllStructGetData($tNMLVCUSTOMDRAW, 'ItemSpec')                     Local $BGR = $_Rgb[0]                     Switch $Stage                         Case $CDDS_ITEMPREPAINT                             Return $CDRF_NOTIFYSUBITEMDRAW                         Case BitOR($CDDS_ITEMPREPAINT, $CDDS_SUBITEM)                             $hItem = Ptr(_GUICtrlListView_GetItemText($hListView, $Index))                             If _WinAPI_IsWindow($hItem) Then                                 $State = _WinAPI_IsWindowVisible($hItem)                                 If Not $State Then                                     $BGR = $_Rgb[1]                                 EndIf                             Else                                 $BGR = $_Rgb[2]                                 If $hItem Then                                     _GUICtrlListView_SetItemText($hListView, $Index, $hItem & ChrW(160))                                     $hItem = 0                                 EndIf                             EndIf                             If _GUICtrlListView_GetItemChecked($hListView, $Index) <> $State Then                                 _GUICtrlListView_SetItemChecked($hListView, $Index, $State)                                 _GUICtrlListView_RedrawItems($hListView, $Index, $Index)                                 If ($hItem) And (Not $Refresh) And (_GUICtrlListView_GetItemState($hListView, $Index, $LVIS_SELECTED)) Then                                     GUICtrlSendToDummy($Dummy[1], $Index)                                 EndIf                             EndIf                             If $BGR Then                                 DllStructSetData($tNMLVCUSTOMDRAW, 'clrText', _WinAPI_SwitchColor($BGR))                             EndIf                     EndSwitch                 Case $LVN_ITEMCHANGING                     If Not _GUICtrlListView_GetItemChecked($hListView, $Index) Then                         _GUICtrlListView_SetItemParam($hListView, $Index, 0x7FFFFFFF)                     Else                         _GUICtrlListView_SetItemParam($hListView, $Index, 0)                     EndIf                 Case $LVN_ITEMCHANGED                     $hItem = Ptr(_GUICtrlListView_GetItemText($hListView, $Index))                     If _GUICtrlListView_GetItemParam($hListView, $Index) Then                         $State = 1                     EndIf                     If _GUICtrlListView_GetItemChecked($hListView, $Index) <> $State Then                         If (BitAND(DllStructGetData($tNMITEMACTIVATE, 'NewState'), $LVIS_SELECTED)) And (Not BitAND(DllStructGetData($tNMITEMACTIVATE, 'OldState'), $LVIS_FOCUSED)) Then                             If _WinAPI_IsWindow($hItem) Then                                 If Not $Browser Then                                     If _WinAPI_IsWindowVisible($hItem) Then                                         _ShowFrame(1, _WinAPI_GetWindowRect($hItem), _WinAPI_GetParent($hItem))                                         $hOver = $hItem                                     Else                                         _ShowFrame(0)                                         $hOver = 0                                     EndIf                                 EndIf                                 _SetControlInfo($hItem)                             Else                                 _SetControlInfo(0)                             EndIf                         EndIf                         If Not $Browser Then                             GUICtrlSendToDummy($Dummy[0], $Index)                         EndIf                     Else                         If Not $Refresh Then                             If _WinAPI_IsWindow($hItem) Then                                 If _WinAPI_IsWindowVisible($hItem) Then                                     ControlHide($hItem, '', '')                                     $State = 0                                 Else                                     ControlShow($hItem, '', '')                                     $State = 1                                 EndIf                                 If (_WinAPI_IsWindow($hItem)) And (_WinAPI_IsWindowVisible($hItem) = $State) And (_GUICtrlListView_GetItemState($hListView, $Index, $LVIS_SELECTED)) Then                                     _SetControlInfo($hItem)                                 EndIf                                 _Update()                             EndIf                         EndIf                     EndIf             EndSwitch         Case $hAutoIt             Switch $ID                 Case $LVN_BEGINDRAG                     Return 0                 Case $NM_CUSTOMDRAW                     Local $tNMLVCUSTOMDRAW = DllStructCreate($tagNMHDR & __Iif(@AutoItX64, ';int', '') & ';dword DrawStage;hwnd hDC;long Left;long Top;long Right;long Bottom;dword_ptr ItemSpec;uint ItemState;lparam ItemlParam;dword clrText;dword clrTextBk;int SubItem;dword ItemType;dword clrFace;int IconEffect;int IconPhase;int PartId;int StateId;long TextLeft;long TextTop;long TextRight;long TextBottom;uint Align', $lParam) ;~                  Local $tNMLVCUSTOMDRAW = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam)                     Local $Stage = DllStructGetData($tNMLVCUSTOMDRAW, 'DrawStage')                     Local $Index = DllStructGetData($tNMLVCUSTOMDRAW, 'ItemSpec')                     Switch $Stage                         Case $CDDS_ITEMPREPAINT                             Return $CDRF_NOTIFYSUBITEMDRAW                         Case BitOR($CDDS_ITEMPREPAINT, $CDDS_SUBITEM)                             If _GUICtrlListView_GetItemParam($hAutoIt, $Index) Then                                 DllStructSetData($tNMLVCUSTOMDRAW, 'clrText', _WinAPI_SwitchColor($_Rgb[1]))                             Else                                 DllStructSetData($tNMLVCUSTOMDRAW, 'clrText', _WinAPI_SwitchColor($_Rgb[0]))                             EndIf                     EndSwitch                 Case $LVN_ITEMACTIVATE                     GUICtrlSendToDummy($Dummy[4])                 Case $LVN_KEYDOWN                     If Not _SCAW() Then                         Switch BitAND($Index, 0xFF)                             Case 0x2E ; DEL                                 GUICtrlSendToDummy($Dummy[5])                             Case 0x74 ; F5                                 GUICtrlSendToDummy($Dummy[6])                         EndSwitch                     EndIf             EndSwitch         Case $hTab             Switch $ID                 Case $TCN_SELCHANGE                     $_Tab = _GUICtrlTab_GetCurSel($hTab)                     If $_Tab = 3 Then                         _SetAutoItInfo()                     EndIf             EndSwitch     EndSwitch     Return $GUI_RUNDEFMSG EndFunc   ;==>WM_NOTIFY Func WM_MOVE($hWnd, $iMsg, $wParam, $lParam)     Local $tPlacement     Switch $hWnd         Case $hForm             If Not _WinAPI_IsIconic($hForm) Then                 $tPlacement = _WinAPI_GetWindowPlacement($hForm)                 $_XPos = DllStructGetData($tPlacement, 'rcNormalPosition', 1)                 $_YPos = DllStructGetData($tPlacement, 'rcNormalPosition', 2) ;~              If $_XPos < 0 Then ;~                  $_XPos = 0 ;~              EndIf ;~              If $_YPos < 0 Then ;~                  $_YPos = 0 ;~              EndIf             EndIf     EndSwitch     Return $GUI_RUNDEFMSG EndFunc   ;==>WM_MOVE Func WM_SIZE($hWnd, $iMsg, $wParam, $lParam)     Switch $hWnd         Case $hForm             Switch $wParam                 Case 0 ; SIZE_RESTORED                     $_Width  = _WinAPI_LoWord($lParam)                     $_Height = _WinAPI_HiWord($lParam)             EndSwitch     EndSwitch     Return $GUI_RUNDEFMSG EndFunc   ;==>WM_SIZE Func WM_SETCURSOR($hWnd, $iMsg, $wParam, $lParam)     If $Browser Then         Return $GUI_RUNDEFMSG     EndIf     Local $Info, $dX, $dY, $ID = -1     Switch $hWnd         Case 0         Case $hForm, $hPopup             If $Resize = -1 Then                 $Info = GUIGetCursorInfo($hForm)                 If (IsArray($Info)) And ($Info[4] = $Pic) Then                     Switch _IsCrop($Info[0], $Info[1], $dX, $dY)                         Case 0                             If _IsDown(0x11) Then                                 If $hDesktop Then                                     If _IsDown($Key) Then                                         $ID = 2                                     Else                                         $ID = 1                                     EndIf                                 EndIf                             EndIf                         Case 1, 5                             $ID = 3                         Case 2, 6                             $ID = 4                         Case 3, 7                             $ID = 5                         Case 4, 8                             $ID = 6                     EndSwitch                 EndIf             Else                 $ID = $Resize             EndIf             If $ID <> -1 Then                 _WinAPI_SetCursor($hCursor[$ID])                 Return 1             EndIf     EndSwitch     Return $GUI_RUNDEFMSG EndFunc   ;==>WM_SETCURSOR #EndRegion Windows Message Functions #Region AutoIt Exit Functions Func AutoItExit() ;~  Switch @ExitMethod ;~      Case 3, 4 ; Logoff, Shutdown ;~      Case Else             _WriteRegistry() ;~  EndSwitch     If $hPrev Then         _WinAPI_SetSystemCursor($hPrev, $IDI_APPLICATION, 1)     EndIf     If $hForm Then         GUIDelete($hFrame)         GUIDelete($hForm)     EndIf     _GDIPlus_Shutdown() ;~  For $i = 0 To 7 ;~      _WinAPI_DestroyCursor($hCursor[$i]) ;~  Next EndFunc   ;==>AutoItExit #EndRegion AutoIt Exit Functions

Could someone please help me get this running in AutoIt ver. 3.3.12.0

 

Thank you,

 

Docfxit

Newbe can't control window.

$
0
0

Hi,

I'm new to AutoIT. Today I spend a full day trying to built some scripts but I ran into problems controlling windows.

Some windows I can control perfectly (controlclick) and others don't respond to anything (i.e. winclose command and/or controlclick).

I know how to program them with help of the finder tool. Tried everything.

 

For instance I made a litle script which should uninstall a program called TeamViewer from windows.

 

Here's my script:

---

$sBase = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
$iEval = 1
$sSearch = "teamviewer"
 
if ProcessExists("teamviewer.exe") Then
    ProcessClose("teamviewer.exe")
EndIf
 
 
While 1
    $sUninst = ""
    $sDisplay = ""
    $sCurrent = RegEnumKey($sBase, $iEval)
    If @Error Then ExitLoop
    $sKey = $sBase & $sCurrent
    $sDisplay = RegRead($sKey, "DisplayName")
 
    If StringRegExp($sDisplay, "(?i).*" & $sSearch & ".*") Then
        $sUninst = RegRead($sKey, "UninstallString")
        If $sUninst Then
            Runwait($sUninst)
        EndIf
    EndIf
    $iEval += 1
WEnd
 
; The above programlines were taken from a samplefile I found on internet. This works fine!
 
 
controlclick("TeamViewer 9 Uninstall", "&Uninstall", 1); This line gives no response on the activated window...
---
 
When I try different windows of different programmes my programming works fine. I use the Finder Tool to get the data from the window and copy/past the data into the script. I'm using Windows 8.1 on a Intel i7 notebook.
 
Could it be some sort of timing issue ?
 
Thanks in advance!
 
Paul
 

Beta 3.3.13.19 _ArrayDisplay $sArrayRange unexpected results with 2D array

$
0
0

I'm fairly new to AutoIT, so I may just be mis-understanding the syntax in the Help file, but I'm trying to display a sub-set of an array (sometimes just one row or column) and I'm getting unexpected results when my parameters try to limit the results to ONLY either row 0 or column 0. Just to be clear, I'm using Beta version 3.3.13.19

 

Consider the following:

#AutoIt3Wrapper_Version=B ;Run and compile using Beta version (for me that's 3.3.13.19) #include <Array.au3> Local $aArray2D[5][5] For $i = 0 To 4     For $j = 0 to 4         $aArray2D[$i][$j] = $i & "," & $j     Next Next _ArrayDisplay($aArray2D,"0:3|0:3 This works as expected","0:3|0:3") ;This works as expected _ArrayDisplay($aArray2D,"2:3|2:3 This works as expected","2:3|2:3") ;This works as expected _ArrayDisplay($aArray2D,"0:0|3:3 Should show only row 0, col 3","0:0|3:3") ;This displays all rows (instead of just row 0), and only column 3 _ArrayDisplay($aArray2D,"3:3|0:0 Should show only row 3, col 0","3:3|0:0") ;This displays row 3, and all columns (instead of just column 0) _ArrayDisplay($aArray2D,"0:0 Should show only row 0, all columns","0:0") ;This displays all rows (instead of just row 0), and all columns _ArrayDisplay($aArray2D,"|0:0 Should show all rows, only col 0","|0:0") ;This displays all rows, and all columns (instead of only column 0)

Am I entering my parameters incorrectly, or is something else wrong?

 

Thanks for the help!

Centering text vertically with _GUICtrlRichEdit_Create

$
0
0

How can i center a text label vertically with _GUICtrlRichEdit_Create  from <GuiRichEdit.au3>? i'm using the "GUIRichLabel.au3" UDF

thx!!

 

 

test.au3

#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include "include\GUIRichLabel.au3" $SlideGUI = GUICreate("Form1", 615, 437, 192, 124) $sLabel1_Data = _ '<font color="ffd200" size="30" attrib="italic+bold" align="l">TEST</font>' $nLabel1 = _GUICtrlRichLabel_Create($SlideGUI, $sLabel1_Data, 0, 0, 20, 20) GUISetState(@SW_SHOW)

GUIRichLabel.au3:

AutoIt         
#Region Header #cs UDF Info     Name.........:      GUIRichLabel.au3     Description..:      Creates Rich Label control, to support text formatting.     Forum link...:     Author.......:      G.Sandler a.k.a MrCreatoR (CreatoR's Lab, www.creator-lab.ucoz.ru, www.autoit-script.ru)     Remarks......:                         1)  Nested tags does not supported, i.e: <font...>some <font...>formatted</font> data</font>. They will be removed.                         2)  Do not use @CRLFs inside tags, the result can be bad sometimes :)     *** Version History ***     v1.1         + Added _GUICtrlRichLabel_GetData function.         + Added "Running Letter Example".         * Fixed issue with empty tags.         * Nested tags removed now from the string.     v1.0         * First release (transformation from similar GUITFLabel UDF). #CE #include-once #include <Array.au3> #include <GUIRichEdit.au3> #include <WinAPI.au3> #include <FontConstants.au3> #include <EditConstants.au3> #include <WindowsConstants.au3> #EndRegion Header #Region Global Variables Global $aGUIRL_Ctrls[1][1] #EndRegion Global Variables #Region Options OnAutoItExitRegister('__GUIRichLabel_OnExit') ;GUIRegisterMsg($WM_NOTIFY, "__GUIRichLabel_WM_NOTIFY") #EndRegion Options #Region Public Functions ; #FUNCTION# ==================================================================================================== ; Name...........:  _GUICtrlRichLabel_Create ; Description....:  Creates Text Formatted Label control(s). ; Syntax.........:  _GUICtrlRichLabel_Create($hWnd, $sData, $iLeft, $iTop [, $iWidth = -1 [, $iHeight = -1]]) ; ; Parameters.....:  $hWnd     - GUI handle. ;                   $sData    - Formatted data. To set formatted data use <font></font> tag for data string. ;                              * This tag supports the following parameters (when used, they *can* be wrapped with quotes): ;                                   Color   - Text *Color* of data between the tags. ;                                   BkColor  - Text *Background Color* of data between the tags. ;                                   Size    - Text *Size*. ;                                   Align   - Text *Alignment* (only for current paragraph) - Supported strings: l(eft), r(ight), c(enter), j(ustify), f (justify between margins by only expanding spaces). ;                                   Attrib  - Text *Attributes* - Supported strings combined together (with + character): b(old), i(talic), u(nderline), s(trike). ;                                   Name    - Text font *Name* (the same values as used in GUICtrlSetFont()). ; ;                   $iLeft    - Left position (starting point in case when <font> tags are used) of label controls. ;                   $iTop     - Top position of label controls. ;                   $iWidth   - [Optional] Width of label control - Not used when <font> tags found in the data. ;                   $iHeight  - [Optional] Height of label control - Not used when <font> tags found in the data. ; ; Return values..:  Success   - Returns rich label handle. ;                   Failure   - Returns 0. ; Author.........:  G.Sandler (a.k.a MrCreatoR) ; Modified.......: ; Remarks........: ; Related........: ; Link...........: ; Example........:  Yes. ; =============================================================================================================== Func _GUICtrlRichLabel_Create($hWnd, $sData, $iLeft, $iTop, $iWidth = -1, $iHeight = -1) ;, $fAutoDetectURL = False)     Local $hRichLabel     $_GRE_sRTFClassName = '' ;Fix for AutoIt 3.3.8.1 to create more than one RichEdit control     $hRichLabel = _GUICtrlRichEdit_Create($hWnd, "", $iLeft, $iTop, $iWidth, $iHeight, BitOR($ES_MULTILINE, $ES_AUTOVSCROLL), $WS_EX_TRANSPARENT)     WinSetState($hRichLabel, '', @SW_DISABLE)     ;_GUICtrlRichEdit_SetEventMask($hRichLabel, BitOR($ENM_LINK, $ENM_MOUSEEVENTS))     ;_GUICtrlRichEdit_AutoDetectURL($hRichLabel, $fAutoDetectURL)     ;_GUICtrlRichEdit_HideSelection($hRichLabel)     $aGUIRL_Ctrls[0][0] += 1     ReDim $aGUIRL_Ctrls[$aGUIRL_Ctrls[0][0]+1][2]     $aGUIRL_Ctrls[$aGUIRL_Ctrls[0][0]][0] = $hRichLabel     $aGUIRL_Ctrls[$aGUIRL_Ctrls[0][0]][1] = $sData     If Not StringRegExp($sData, '(?i)<font.*?>(.*?)</font>') Then         _GUICtrlRichEdit_AppendText($hRichLabel, $sData)         _GUICtrlRichEdit_SetCharColor($hRichLabel, 0x000000)         Return $hRichLabel     EndIf     _GUICtrlRichLabel_SetData($hRichLabel, $sData)     Return $hRichLabel EndFunc Func _GUICtrlRichLabel_GetData($hRichLabel)     For $i = 1 To $aGUIRL_Ctrls[0][0]         If $aGUIRL_Ctrls[$i][0] = $hRichLabel Then             Return $aGUIRL_Ctrls[$i][1]         EndIf     Next     Return '' EndFunc Func _GUICtrlRichLabel_SetData($hRichLabel, $sData)     Local $aSplit_Data, $aFontData, $iFont_Color, $iFont_BkColor, $iFont_Size, $sFont_Attrib, $sFont_Name, $sFont_Align     Local $sIn_Data, $aSplit_Attribs, $iData_Len, $iData_Pos = 0     ;$sData = StringRegExpReplace($sData, '<font[^>]*?></font>', '')     $sData = StringRegExpReplace($sData, '(\r\n|\r)', @LF)     $aSplit_Data = __GUIRichLabel_StringGetTags($sData, '<font>', '</font>') ;StringRegExp($sData, "(?si)(.*?)(<font[^>]*?>.*?</font>|$)(.*?)", 3)     _GUICtrlRichEdit_SetText($hRichLabel, "")     $aFontData = __GUIRichLabel_GUIGetFont()     If @error Then         Dim $aFontData[6] = [5, 8.3, 400, 0, "Arial", 0]     EndIf     For $i = 0 To UBound($aSplit_Data)-1         If $aSplit_Data[$i] == "" Then             ContinueLoop         EndIf         $iFont_Color = 0x000000         $iFont_BkColor = -1         $iFont_Size = $aFontData[1]         $iFont_Attrib = $aFontData[3]         $sFont_Name = $aFontData[4]         $sFont_Align = ""         If StringInStr($sData, @LF) Then             $sFont_Align = "l"         EndIf         If StringRegExp($aSplit_Data[$i], '(?si)<font .*?>(.*?)</font>') Then             $sIn_Data = StringRegExpReplace($aSplit_Data[$i], '(?si)<font .*?>(.*?)</font>', '\1')             __GUIRichLabel_FontTagGetParamValue($aSplit_Data[$i], "color", $iFont_Color)             __GUIRichLabel_FontTagGetParamValue($aSplit_Data[$i], "bkcolor", $iFont_BkColor)             __GUIRichLabel_FontTagGetParamValue($aSplit_Data[$i], "size", $iFont_Size)             __GUIRichLabel_FontTagGetParamValue($aSplit_Data[$i], "align", $sFont_Align)             __GUIRichLabel_FontTagGetParamValue($aSplit_Data[$i], "attrib", $sFont_Attrib)             __GUIRichLabel_FontTagGetParamValue($aSplit_Data[$i], "name", $sFont_Name)             $sFont_Align = StringRegExpReplace($sFont_Align, "^([lrcjf]).*$", "\1")             $aSplit_Attribs = StringSplit($sFont_Attrib, "+")             $sFont_Attrib = ""             For $j = 1 To $aSplit_Attribs[0]                 $aSplit_Attribs[$j] = StringRegExpReplace($aSplit_Attribs[$j], "^(bold|b)$", "+bo")                 $aSplit_Attribs[$j] = StringRegExpReplace($aSplit_Attribs[$j], "^(italic|i)$", "+it")                 $aSplit_Attribs[$j] = StringRegExpReplace($aSplit_Attribs[$j], "^(underline|u)$", "+un")                 $aSplit_Attribs[$j] = StringRegExpReplace($aSplit_Attribs[$j], "^(strike|s)$", "+st")                 $sFont_Attrib &= $aSplit_Attribs[$j]             Next             If Dec($iFont_Color) > 0 Then                 $iFont_Color = StringRegExpReplace("0x" & $iFont_Color, "\A0x0x", "0x")             EndIf             $iFont_Color = StringRegExpReplace($iFont_Color, "\A#", "0x")             $iFont_BkColor = StringRegExpReplace($iFont_BkColor, "\A#", "0x")             If Not StringIsInt($iFont_Color) Then                 $iFont_Color = __GUIRichLabel_ColorConvertValue($iFont_Color)             EndIf             If Not StringIsInt($iFont_BkColor) Then                 $iFont_BkColor = __GUIRichLabel_ColorConvertValue($iFont_BkColor)             EndIf         Else             If StringRegExp($aSplit_Data[$i], '(?si)<font\h*>(.*?)</font>') Then                 $aSplit_Data[$i] = StringRegExpReplace($aSplit_Data[$i], '(?si)<font\h*>|</font>', '')             EndIf             $sIn_Data = $aSplit_Data[$i]             $sFont_Attrib = "-bo-it-un-st"             $iFont_Color = 0x000000             $iFont_BkColor = Default         EndIf         $iData_Len = StringLen($sIn_Data)         _GUICtrlRichEdit_AppendText($hRichLabel, $sIn_Data)         _GUICtrlRichEdit_SetParaAlignment($hRichLabel, $sFont_Align)         _GUICtrlRichEdit_SetSel($hRichLabel, $iData_Pos, $iData_Pos + $iData_Len)         _GUICtrlRichEdit_SetCharColor($hRichLabel, __GUIRichLabel_Color_RGBToBGR($iFont_Color))         _GUICtrlRichEdit_SetCharBkColor($hRichLabel, __GUIRichLabel_Color_RGBToBGR($iFont_BkColor))         _GUICtrlRichEdit_SetCharAttributes($hRichLabel, $sFont_Attrib)         _GUICtrlRichEdit_SetFont($hRichLabel, $iFont_Size, $sFont_Name)         $iData_Pos += $iData_Len     Next     Return 1 EndFunc Func _GUICtrlRichLabel_SetPos($hRichLabel, $iLeft, $iTop, $iWidth = Default, $iHeight = Default)     WinMove($hRichLabel, '', $iLeft, $iTop, $iWidth, $iHeight) EndFunc Func _GUICtrlRichLabel_Destroy($hRichLabel = -1)     If $hRichLabel = -1 Then         For $i = 1 To $aGUIRL_Ctrls[0][0]             _GUICtrlRichEdit_Destroy($aGUIRL_Ctrls[$i][0])         Next         $aGUIRL_Ctrls = 0         Dim $aGUIRL_Ctrls[1][1]         Return 1     EndIf     For $i = 1 To $aGUIRL_Ctrls[0][0]         If $hRichLabel = $aGUIRL_Ctrls[$i][0] Then             $aGUIRL_Ctrls[0][0] -= 1             _ArrayDelete($aGUIRL_Ctrls, $i)             ExitLoop         EndIf     Next     Return _GUICtrlRichEdit_Destroy($hRichLabel) EndFunc #EndRegion Public Functions #Region Internal Functions ; #HELPER FUNCTION - Get tags from string# Func __GUIRichLabel_StringGetTags($sStr, $sOpenTag, $sCloseTag)     Local $aRet, $aTmp, $iC     $sOpenTag = StringRegExpReplace($sOpenTag, '^(<\S+)>.*', '\1') ;Get only the tag name (i.e: <tag)     $sStr = StringRegExpReplace($sStr, $sOpenTag & '[^>]*>' & $sCloseTag, '') ;Remove empty tags     $aRet = StringRegExp($sStr, $sOpenTag & '[^>]*>(.*?)' & $sCloseTag, 3)     For $i = 0 To UBound($aRet)-1         $sStr = StringReplace($sStr, $aRet[$i], StringRegExpReplace($aRet[$i], $sOpenTag & '[^>]*>', ''), 0, 1)     Next     $aTmp = StringRegExp($sStr, '(?si)(.*?)(' & $sOpenTag & '[^>]*>.*?' & $sCloseTag & '|$)(.*?)', 3)     $sStr = ''     Dim $aRet[UBound($aTmp)]     $iC = 0     For $i = 0 To UBound($aTmp)-1         If $aTmp[$i] = '' Then ContinueLoop         If Not StringRegExp($aTmp[$i], $sOpenTag & '[^>]*>.*?' & $sCloseTag) Then             $aTmp[$i] = StringReplace($aTmp[$i], $sCloseTag, '')         EndIf         $aRet[$iC] = $aTmp[$i]         $iC += 1     Next     If $iC = 0 Then Return SetError(1, 0, 0)     ReDim $aRet[$iC]     Return $aRet EndFunc ; #HELPER FUNCTION - Converts RGB color To BGR# Func __GUIRichLabel_Color_RGBToBGR($iColor)     If $iColor = -1 Then Return -1     If IsKeyword($iColor) And $iColor = Default Then Return Default     Local $iMask = BitXOR(BitAND($iColor, 0xFF), ($iColor / 0x10000))     Return "0x" & Hex(BitXOR($iColor, ($iMask * 0x10001)), 6) EndFunc ; #HELPER FUNCTION - Get <font> tag's parameter value# Func __GUIRichLabel_FontTagGetParamValue($sTag_Data, $sParamName, ByRef $sDefault)     Local $sRet = StringRegExpReplace($sTag_Data, '(?i)<font.*? ' & $sParamName & '=(?:"|)(.*?)(?:"| |>).*?>.*?$', '\1')     If @extended > 0 Then $sDefault = $sRet     Return $sDefault EndFunc ; #HELPER FUNCTION - Get color by it's name# Func __GUIRichLabel_ColorConvertValue($sColor, $iMode = -1)     If $iMode = -1 And StringRegExp($sColor, "\A0x") And StringLen($sColor) = 5 Then         $sColor = StringRegExpReplace($sColor, "\A(0x)|(.)", "\1\2\2")     EndIf     Local $aStrColors_Table = StringSplit( _         "White|Ivory|Lightyellow|Yellow|Snow|Floralwhite|Lemonchiffon|" & _         "Cornsilk|Seashell|Lavenderblush|Papayawhip|Blanchedalmond|Mistyrose|Bisque|" & _         "Moccasin|Navajowhite|Peachpuff|Gold|Pink|Lightpink|Orange|" & _         "Lightsalmon|Darkorange|Coral|Hotpink|Tomato|Orangered|Deeppink|" & _         "Magenta|Fuchsia|Red|Oldlace|Lightgoldenrodyellow|Linen|Antiquewhite|" & _         "Salmon|Ghostwhite|Mintcream|Whitesmoke|Beige|Wheat|Sandybrown|" & _         "Azure|Honeydew|Aliceblue|Khaki|Lightcoral|Palegoldenrod|Violet|" & _         "Darksalmon|Lavender|Lightcyan|Burlywood|Plum|Gainsboro|Crimson|" & _         "Palevioletred|Goldenrod|Orchid|Thistle|Lightgrey|Tan|Chocolate|" & _         "Peru|Indianred|Mediumvioletred|Silver|Darkkhaki|Rosybrown|Mediumorchid|" & _         "Darkgoldenrod|Firebrick|Powderblue|Lightsteelblue|Paleturquoise|Greenyellow|Lightblue|" & _         "Darkgray|Brown|Sienna|Yellowgreen|Darkorchid|Palegreen|Darkviolet|" & _         "Mediumpurple|Lightgreen|Darkseagreen|Saddlebrown|Darkmagenta|Darkred|Blueviolet|" & _         "Lightskyblue|Skyblue|Gray|Olive|Purple|Maroon|Aquamarine|" & _         "Chartreuse|Lawngreen|Mediumslateblue|Lightslategray|Slategray|Olivedrab|Slateblue|" & _         "Dimgray|Mediumaquamarine|Cornflowerblue|Cadetblue|Darkolivegreen|Indigo|Mediumturquoise|" & _         "Darkslateblue|Steelblue|Royalblue|Turquoise|Mediumseagreen|Limegreen|Darkslategray|" & _         "Seagreen|Forestgreen|Lightseagreen|Dodgerblue|Midnightblue|Cyan|Aqua|" & _         "Springgreen|Lime|Mediumspringgreen|Darkturquoise|Deepskyblue|Darkcyan|Teal|" & _         "Green|Darkgreen|Blue|Mediumblue|Darkblue|Navy|Black", "|")     Local $aHexColors_Table = StringSplit( _         "FFFFFF|FFFFF0|FFFFE0|FFFF00|" & _         "FFFAFA|FFFAF0|FFFACD|FFF8DC|FFF5EE|FFF0F5|FFEFD5|" & _         "FFEBCD|FFE4E1|FFE4C4|FFE4B5|FFDEAD|FFDAB9|FFD700|" & _         "FFC0CB|FFB6C1|FFA500|FFA07A|FF8C00|FF7F50|FF69B4|" & _         "FF6347|FF4500|FF1493|FF00FF|FF00FF|FF0000|FDF5E6|" & _         "FAFAD2|FAF0E6|FAEBD7|FA8072|F8F8FF|F5FFFA|F5F5F5|" & _         "F5F5DC|F5DEB3|F4A460|F0FFFF|F0FFF0|F0F8FF|F0E68C|" & _         "F08080|EEE8AA|EE82EE|E9967A|E6E6FA|E0FFFF|DEB887|" & _         "DDA0DD|DCDCDC|DC143C|DB7093|DAA520|DA70D6|D8BFD8|" & _         "D3D3D3|D2B48C|D2691E|CD853F|CD5C5C|C71585|C0C0C0|" & _         "BDB76B|BC8F8F|BA55D3|B8860B|B22222|B0E0E6|B0C4DE|" & _         "AFEEEE|ADFF2F|ADD8E6|A9A9A9|A52A2A|A0522D|9ACD32|" & _         "9932CC|98FB98|9400D3|9370DB|90EE90|8FBC8F|8B4513|" & _         "8B008B|8B0000|8A2BE2|87CEFA|87CEEB|808080|808000|" & _         "800080|800000|7FFFD4|7FFF00|7CFC00|7B68EE|778899|" & _         "708090|6B8E23|6A5ACD|696969|66CDAA|6495ED|5F9EA0|" & _         "556B2F|4B0082|48D1CC|483D8B|4682B4|4169E1|40E0D0|" & _         "3CB371|32CD32|2F4F4F|2E8B57|228B22|20B2AA|1E90FF|" & _         "191970|00FFFF|00FFFF|00FF7F|00FF00|00FA9A|00CED1|" & _         "00BFFF|008B8B|008080|008000|006400|0000FF|0000CD|" & _         "00008B|000080|000000", "|")     For $i = 1 To $aStrColors_Table[0]         If $iMode = -1 And $sColor = $aStrColors_Table[$i] Then             Return "0x" & $aHexColors_Table[$i]         ElseIf $iMode <> -1 And StringRegExp($sColor, "\A(0x|#|)" & $aHexColors_Table[$i] & "$") Then             Return $aStrColors_Table[$i]         EndIf     Next     If $sColor = -1 Or $sColor = "" Or (IsKeyword($sColor) And $sColor = Default) Then Return -1     Return "0x" & Hex($sColor, 6) EndFunc Func __GUIRichLabel_GUIGetFont($hWnd = 0)     ; [0] - 5     ; [1] - Size     ; [2] - Weight     ; [3] - Attribute     ; [4] - Name     ; [5] - Quality     Local $Ret, $Label, $hLabel, $hPrev, $hDC, $hFont, $tFont     Local $aFont = 0     If $hWnd = 0 Then         $Label = GUICtrlCreateLabel('', 0, 0)         If Not $Label Then             Return 0         EndIf         $hWnd = _WinAPI_GetParent(GUICtrlGetHandle($Label))         GUICtrlDelete($Label)     EndIf     $hPrev = GUISwitch($hWnd)     If Not $hPrev Then         Return 0     EndIf     $Label = GUICtrlCreateLabel('', 0, 0, 0, 0)     If Not $Label Then         Return 0     EndIf     $hLabel = GUICtrlGetHandle($Label)     $hDC = _WinAPI_GetDC($hLabel)     $hFont = _SendMessage($hLabel, $WM_GETFONT)     $tFont = DllStructCreate($tagLOGFONT)     $Ret = DllCall('gdi32.dll', 'int', 'GetObjectW', 'ptr', $hFont, 'int', DllStructGetSize($tFont), 'ptr', DllStructGetPtr($tFont))     If (Not @error) And ($Ret[0]) Then         Dim $aFont[6] = [5]         $aFont[1] = -Round(DllStructGetData($tFont, 'Height') / _WinAPI_GetDeviceCaps($hDC, $LOGPIXELSY) * 72, 1)         $aFont[2] = DllStructGetData($tFont, 'Weight')         $aFont[3] = BitOR(2 * (DllStructGetData($tFont, 'Italic') <> 0), 4 * (DllStructGetData($tFont, 'Underline') <> 0), 8 * (DllStructGetData($tFont, 'Strikeout') <> 0))         $aFont[4] = DllStructGetData($tFont, 'FaceName')         $aFont[5] = DllStructGetData($tFont, 'Quality')     EndIf     _WinAPI_ReleaseDC($hLabel, $hDC)     GUICtrlDelete($Label)     GUISwitch($hPrev)     Return $aFont EndFunc Func __GUIRichLabel_WM_NOTIFY($hWnd, $iMsg, $iWparam, $iLparam)     Local $hWndFrom, $iCode, $tNMHDR, $tMsgFilter, $iWM_Msg, $tEnLink, $cpMin, $cpMax, $sURL     $tNMHDR = DllStructCreate($tagNMHDR, $iLparam)     $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))     $iCode = DllStructGetData($tNMHDR, "Code")     $tMsgFilter = DllStructCreate($tagMSGFILTER, $iLparam)     $iWM_Msg = DllStructGetData($tMsgFilter, "msg")     Switch $iCode         Case $EN_MSGFILTER             Return 1             Switch $iWM_Msg                 Case $WM_LBUTTONDOWN, $WM_RBUTTONDOWN, $WM_LBUTTONDBLCLK, 0x0206 ;$WM_RBUTTONDBLCLK                     Return 1             EndSwitch         Case $EN_LINK             If $iWM_Msg = $WM_LBUTTONUP Then                 $tEnLink = DllStructCreate($tagENLINK, $iLparam)                 $cpMin = DllStructGetData($tEnLink, "cpMin")                 $cpMax = DllStructGetData($tEnLink, "cpMax")                 $sURL = _GUICtrlRichEdit_GetTextInRange($hWndFrom, $cpMin, $cpMax)                 ShellExecute($sURL)             EndIf     EndSwitch     Return 'GUI_RUNDEFMSG' EndFunc Func __GUIRichLabel_OnExit()     _GUICtrlRichLabel_Destroy(-1) EndFunc #EndRegion Internal Functions

Click on menubar item

How to extract tool tip help as text. WindowInfo can't see it.

$
0
0

Hello all,

This is my first post in this forum.

 

I have a commercial application that opens a window.

In the window there is a graphical area which is organised like a Tree View, but is in fact just graphics.

The Window Info tool doesn't find any of the text that I can read (as a human) in that window.

 

If I hover the mouse over some of that text (in this case a part number), then the tool tip help comes up with the same text as I can read (as a human) (ie the part number) in the tool tip box.

 

I would like to capture (as text) ALL the tool tip help texts which exist for this window because then I can work out what items are being displayed.

I don't want to hover the cursor over each text (even with AutoIT doing the hovering) because I don't know where the texts are in the graphics area.

 

I assume that the tool tip help is actually stored as text somewhere. I am trying to get to that somewhere.

 

At the moment, my alternative is to capture the window to a bit map and attempt to OCR the bitmap to discover the part number.

 

The questions are:

Where do I start to look for that tool tip help text stored as text?

If the Window Info tool can't see it, is it out of reach of AutoIT?

 

 

I'm on Win7.

Help file says AutoIT v3.3.8.1

I live in a tightly controlled IT environment so I can't add any other tools from the internet.

I can't get changes made to the commercial application.

 

Sorry if I've been ambiguous, obviously ask for clarification if that will enable you to help me.

Thanks very much in advance.

Cheers

Geoff.

Include new line \r\n in a variable for a text area

$
0
0

I'm trying to enter text into a text area (_IEFormElementSetValue) that includes new line entries.

I can do this by setting the focus on the text area element and simulating key strokes including the enter key for new lines.

The problem is that the data I'm entering is built during a loop with other events happening. I'm quite certain I could still programmatically set the focus at the correct time...right arrow to get to the end of the line and enter the next line by simulating key strokes...but I'm hoping for something more elegant.

 

Here is what I'm trying to do in the loop

  1. $description = $aResult[$r][1]
  2.  
  3. For...
  4.  
  5. $description &= "\r\n" & $aResult[$r][1]
  6.  
  7.  
  8. _IEFormElementSetValue ($text-area, $description)

Clearly the "\r\n" is not correct. Does anyone know what the string would be to cause a new line in the text area?

 

THANKS

$oIE.document.parentwindow.eval not work in internet explorer 10, with windows 8

$
0
0
Hi! 
 
I can not use the script 
 
 
Local $lln=$oIE.document.parentwindow.eval('$(".link").children().attr("href");')
 
MsgBox(0, "title", $lln)
 
 
 
 
In Internet Explorer 10 with Windows 8 is not working but internet explorer 8 with windows xp works perfectly. 
 
Why does this happen?

Any way to get this(photo inside) data from a website ?

$
0
0

znjzzmayn5ij.png

 

url = http://www.autoitscript.com/forum/

 

I want to get in script the network information like I get when I open the Network tab in the browser.. 

 

I have been tryning a lot to get this resources or what ever it is..

I search in the HTML for links or somthing , tried to get the http requests 

Maybe something in my understanding of http and webs worng .. 

 

 


Using the BETA

$
0
0

Hi

 

What should i do to use the BETA? I am building from the commandline with Aut2exe.exe. Is it enough to simply use the version installed under beta\?

 

Best regards

Dennis

_ScreenCapture_CaptureWnd Sporadic Error

$
0
0

Hi Forum

 

We have a problem with _ScreenCapture_CaptureWnd failing sporadically after upgrading from 3.3.8.1 to the latest version.

 

We get the "Subscript used on non-accessible variable" error now and then.

 

We added some logging to _ScreenCapture_CaptureWnd and found out that the error occurs in _WinAPI_GetIconInfo, but because _WinAPI_CopyIcon fails.

 

_WinAPI_CopyIcon fails with errorcode = 183 Cannot create a file when that file already exists.

 

An example of return values from _WinAPI_GetCursorInfo in the case of a fail

 

$aCursor[1] : True

$aCursor[2] : 0x019305F9

$aCursor[3] : 974

$aCursor[4] : 550

 

The problem is seen on many different PC's with different OS's etc.

 

Is this a know problem?

 

Any hints?

 

Best regards

Dennis

Fileopendialog - shortcuts problem

$
0
0
Hello, 
 
I'm using fileopendialog, I only want it to be able to select, 3 file formats, yet I'm able to also select shortcuts, I think that's a bug?
 
Code:
FileOpenDialog("Select subtitles", @ScriptDir, "All (*.srt;*.sub;*.zip)")
Picture: 
 
nkAyCiz.png

Benchmark Windows applications with autoit?!

$
0
0

I know this might be a weird question... but here it goes:

 

I have around 80 windows pcs and laptops that are running windows 7.    The issue is that from time to time some pcs gets very slow (it takes 3 minutes for outlook to open, or an excel file from the share drive etc - you know what i mean :) ).   

 

What i am trying to do.. is to be a bit proactive (and not wait until the users complain)  and try to benchmark applications somehow.

 

Do you guys have any ideas how i might be able to do that with autoit?   for example can i monitor how long it takes outlook to open its main window?

 

Thank you in advance!

Mike

Logout-Bot for my Check

$
0
0

Hello,

 

I need a Logout for my Check but I don't know how :(

I want to click it:

<a class="has_bottom_tooltip" data-method="delete" data-original-title="Logout" href="/users/sign_out" rel="nofollow" title=""><i class="icon-signout"></i>

Can you help me?

HTML         
<body class="ui_mars application" data-page="dashboard:show"> <header class="navbar navbar-static-top navbar-lab"> <div class="navbar-inner"> <div class="container"> <div class="app_logo"> <span class="separator"></span> <a class="home has_bottom_tooltip" href="/" title="" data-original-title="Dashboard"> </a><span class="separator"></span> </div> <h1 class="project_name">Dashboard</h1> <ul class="nav"> <li> <a> <div class="hide turbolink-spinner"> <i class="icon-refresh icon-spin"></i> Loading... </div> </a> </li> </li> <li> <a class="has_bottom_tooltip" data-original-title="Public area" href="/public" title=""><i class="icon-globe"></i> </a></li> <li> <li> <a class="has_bottom_tooltip" data-original-title="New project" href="/projects/new" title=""><i class="icon-plus"></i> </a></li> <li> <a class="has_bottom_tooltip" data-original-title="Profile settings" href="/profile" title=""><i class="icon-user"></i> </a></li> <li> <a class="has_bottom_tooltip" data-method="delete" data-original-title="Logout" href="/users/sign_out" rel="nofollow" title=""><i class="icon-signout"></i> </a></li> </ul> </div> </div> </header>

Thanks!

Viewing all 12506 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>