Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 10/23/2023 in all areas

  1. The advantage is that if another window overlap your window the image doesn't need to redraw as in your previous example..
    1 point
  2. As you can see in the example above you don't need a pre-existent image but you can create your image using GDI+ functions and use that image with a picture control.
    1 point
  3. Why don't you tell us what are you trying to achieve so we can help you better? Why don't you create a bitmap and display it properly in a picture control? Something like this: #include <GuiConstantsEx.au3> #include <GDIPlus.au3> Opt('MustDeclareVars', 1) _Main() Func _Main() Local $hGUI, $hWnd, $hImage, $hGraphic, $cPic ; Create GUI $hGUI = GUICreate("GDI+", 400, 300) $cPic = GUICtrlCreatePic('', 0, 0, 400, 300) $hWnd = WinGetHandle("GDI+") GUISetState() ; Create a blank image _GDIPlus_Startup() $hImage = _GDIPlus_BitmapCreateFromScan0(400, 300) $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage) ; Draw a circle Local $CircleDiameter = 150 Local $CircleX = (400 - $CircleDiameter) / 2 Local $CircleY = (300 - $CircleDiameter) / 2 Local $hBrush = _GDIPlus_BrushCreateSolid(0xFF00FF00) ; Light green color _GDIPlus_GraphicsFillEllipse ( $hGraphic, $CircleX, $CircleY, $CircleDiameter, $CircleDiameter, $hBrush) BitmapToCtrl($hImage, $cPic) Do Until GUIGetMsg() = $GUI_EVENT_CLOSE ; Save the image to "circle.png" _GDIPlus_ImageSaveToFile($hImage, "circle.png") _GDIPlus_BrushDispose($hBrush) _GDIPlus_GraphicsDispose($hGraphic) _GDIPlus_BitmapDispose($hImage) _GDIPlus_Shutdown() If FileExists("circle.png") Then ShellExecute("circle.png") EndFunc ;==>_Main Func BitmapToCtrl($hBitmap, $cCtrl) Local $hHBITMAP = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap) _WinAPI_DeleteObject(GUICtrlSendMsg($cCtrl, 0x0172, 0, $hHBITMAP)) _WinAPI_DeleteObject($hHBITMAP) EndFunc
    1 point
  4. It looks like the functions _GUICtrlMenu_GetItemEnabled and _GUICtrlMenu_GetItemDisabled should use $MFS_DISABLED
    1 point
  5. In the last versions of Windows, it has been difficult to automate Windows Explorer. But there are many examples of code like this to extract the selected items: ; Windows Explorer on XP, Vista, 7, 8 $hExplorer = WinGetHandle( "[REGEXPCLASS:^(Cabinet|Explore)WClass$]" ) If Not $hExplorer Then Exit ; Shell object $oShell = ObjCreate( "Shell.Application" ) ; Find window For $oWindow In $oShell.Windows() If $oWindow.HWND() = $hExplorer Then ExitLoop Next ; Selected items For $oItem In $oWindow.Document.SelectedItems() ConsoleWrite( $oItem.Path() & @CRLF ) Next It's possible to create these objects with ObjCreateInterface. More precisely, create an IShellBrowser interface for the top level browser of an open Windows Explorer. Plan and code This is the plan: Create an IShellWindows interface to get a list of shell windows Get an IWebBrowserApp object for each window. This is done in two steps: Get an IDispatch object for the window Get the IWebBrowserApp interface Identify the proper shell window with get_HWND of IWebBrowserApp Get an IServiceProvider interface with QueryInterface of IWebBrowserApp Get the IShellBrowser interface with QueryService of IServiceProvider This is the code: Func GetIShellBrowser( $hExplorer ) ; IShellWindows interface Local $pIShellWindows, $oIShellWindows CoCreateInstance( $tCLSID_ShellWindows, $NULL, $CLSCTX_ALL, $tRIID_IShellWindows, $pIShellWindows ) $oIShellWindows = ObjCreateInterface( $pIShellWindows, $sIID_IShellWindows, $dtag_IShellWindows ) ; Number of shell windows Local $iWindows $oIShellWindows.get_Count( $iWindows ) ; Get an IWebBrowserApp object for each window ; This is done in two steps: ; 1. Get an IDispatch object for the window ; 2. Get the IWebBrowserApp interface ; Check if it's the right window Local $pIDispatch, $oIDispatch Local $pIWebBrowserApp, $oIWebBrowserApp, $hWnd For $i = 0 To $iWindows - 1 $oIShellWindows.Item( $i, $pIDispatch ) If $pIDispatch Then $oIDispatch = ObjCreateInterface( $pIDispatch, $sIID_IDispatch, $dtag_IDispatch ) $oIDispatch.QueryInterface( $tRIID_IWebBrowserApp, $pIWebBrowserApp ) If $pIWebBrowserApp Then $oIWebBrowserApp = ObjCreateInterface( $pIWebBrowserApp, $sIID_IWebBrowserApp, $dtag_IWebBrowserApp ) $oIWebBrowserApp.get_HWND( $hWnd ) If $hWnd = $hExplorer Then ExitLoop EndIf EndIf Next ; IServiceProvider interface Local $pIServiceProvider, $oIServiceProvider $oIWebBrowserApp.QueryInterface( $tRIID_IServiceProvider, $pIServiceProvider ) $oIServiceProvider = ObjCreateInterface( $pIServiceProvider, $sIID_IServiceProvider, $dtag_IServiceProvider ) ; IShellBrowser interface Local $pIShellBrowser $oIServiceProvider.QueryService( $tRIID_STopLevelBrowser, $tRIID_IShellBrowser, $pIShellBrowser ) $oIShellBrowser = ObjCreateInterface( $pIShellBrowser, $sIID_IShellBrowser, $dtag_IShellBrowser ) EndFunc Now it's easy to create the shell interfaces. The main interfaces are: Func GetShellInterfaces() Local $pIFolderView, $pIFolderView2, $pIPersistFolder2, $pIShellFolder, $pPidlFolder, $pPidlRel, $i = 0 ; IShellView interface $oIShellBrowser.QueryActiveShellView( $pIShellView ) $oIShellView = ObjCreateInterface( $pIShellView, $sIID_IShellView, $dtag_IShellView ) ; IFolderView interface $oIShellView.QueryInterface( $tRIID_IFolderView, $pIFolderView ) $oIFolderView = ObjCreateInterface( $pIFolderView, $sIID_IFolderView, $dtag_IFolderView ) If @OSVersion <> "WIN_XP" Then ; IFolderView2 interface (Vista and later) $oIShellView.QueryInterface( $tRIID_IFolderView2, $pIFolderView2 ) $oIFolderView2 = ObjCreateInterface( $pIFolderView2, $sIID_IFolderView2, $dtag_IFolderView2 ) EndIf ; IPersistFolder2 interface $oIFolderView.GetFolder( $tRIID_IPersistFolder2, $pIPersistFolder2 ) $oIPersistFolder2 = ObjCreateInterface( $pIPersistFolder2, $sIID_IPersistFolder2, $dtag_IPersistFolder2 ) $oIPersistFolder2.GetCurFolder( $pPidlFolder ) ; IShellFolder interface If ILIsEqual( $pPidlFolder, $pPidlAbsDesktop ) Then SHGetDesktopFolder( $pIShellFolder ) Else Local $pIParentFolder, $oIParentFolder, $pPidlRel SHBindToParent( $pPidlFolder, DllStructGetPtr( $tRIID_IShellFolder ), $pIParentFolder, $pPidlRel ) $oIParentFolder = ObjCreateInterface( $pIParentFolder, $sIID_IShellFolder, $dtag_IShellFolder ) $oIParentFolder.BindToObject( $pPidlRel, $NULL, $tRIID_IShellFolder, $pIShellFolder ) EndIf $oIShellFolder = ObjCreateInterface( $pIShellFolder, $sIID_IShellFolder, $dtag_IShellFolder ) ; Free memory used by $pPidlFolder _WinAPI_CoTaskMemFree( $pPidlFolder ) ; Wait for Explorer to refresh $pPidlRel = GetFocusedItem() While Not $pPidlRel And $i < 10 Sleep( 25 ) $pPidlRel = GetFocusedItem() $i += 1 WEnd ; Free memory used by $pPidlRel If $pPidlRel Then _ _WinAPI_CoTaskMemFree( $pPidlRel ) EndFunc Features The methods of the interfaces supports the following features: You can handle items in Windows Explorer: Get current folder, get all items, get/set selected items and get/set focused item. A selected file is opened by executing the InvokeCommand for the default item in the context menu. You can browse to a specific folder or a parent/child folder. You can set icon view mode. Functions AutomatingWindowsExplorer.au3 contains the two functions above. And it contains a number of functions to implement the features: GetCurrentFolder SetCurrentFolder CountItems GetItems GetFiles GetFolders GetPidls GetFocusedItem SetFocusedItem SetSelectedItem GetIconView SetIconView When the interfaces are created, the functions can be implemented with a few lines of code. This is the code for GetCurrentFolder and SetCurrentFolder: Func GetCurrentFolder() Local $pPidlAbs $oIPersistFolder2.GetCurFolder( $pPidlAbs ) Return $pPidlAbs EndFunc ; After this command $oIShellBrowser is the only valid interface object. To ; be able to use the other interfaces you must execute GetShellInterfaces(). Func SetCurrentFolder( $pPidl, $fFlag ) $oIShellBrowser.BrowseObject( $pPidl, BitOR( $SBSP_DEFBROWSER, $fFlag ) ) EndFunc For examples search the functions in Example.au3 and Example*.au3. Depending on parameters most functions can return PIDLs. Some functions return only PIDLs. In these cases you must free memory (_WinAPI_CoTaskMemFree) used by the PIDLs, when you have finished using the PIDLs. There are many more methods that are not implemented in these functions, and there are available interfaces that have not been created. Example Example.au3 demonstrates the features. Example folder contains scripts with functions used in the example. It's important that there is consistency between the interfaces, and the current folder in Windows Explorer. If the GUI loses and gets focus, it's checked if the current folder is changed. In that case the interfaces are updated to match the new folder. This is a picture of the GUI: Items and selected items are shown with _ArrayDisplay. The number of rows in the listview to the right is limited to 100. The listview can only be used for the buttons in the lower right group. The buttons in the lower left group are disabled, if there are more than 100 items in the folder. There is also a listview on the second tab item. It's limited to 100 rows, and can only be used for the Child folder button. You can also double click a child folder in the listview, to browse to this folder. Control Panel The example does not work for the Control Panel. The reason is that the child windows which are created for the Control Panel, are different from the child windows which are created for other folders. You can verify that with the UI Automation framework. Zipfile Example - include files used in example Includes - include files used for Automating Windows Explorer Example.au3 - Example For AutoIt 3.3.10 and later. Testet on Windows XP 32 bit and Windows 7 32/64 bit. Automating Windows Explorer.7z Examples in posts below Post 7 is a collection of small examples. Post 15 shows how to automate a search with UI Automation code. Post 31 shows how to execute a function on a double-click in empty space of the right pane window (the listview). The code contains UI Automation code. Post 38 is UI Automation code to make a selected item visible by scrolling the listview up or down.
    1 point
  6. Try this: #include <ButtonConstants.au3> #include <MsgBoxConstants.au3> #include <StructureConstants.au3> #include <WinAPIConstants.au3> #include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <WinAPISysWin.au3> _GDIPlus_Startup() Global Const $SC_DRAGMOVE = 0xF012 Global $iW, $iH, $hImage, $hBitmap, $hGUI $hImage = _GDIPlus_BitmapCreateFromMemory(_Image()) _AddText2Img($hImage, @UserName) $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) $iW = _GDIPlus_ImageGetWidth($hImage) $iH = _GDIPlus_ImageGetHeight($hImage) $hGUI = GUICreate("", $iW, $iH, -1, -1, $WS_POPUP, BitOR($WS_EX_LAYERED,$WS_EX_TOPMOST)) GUISetState() _WinAPI_BitmapDisplayTransparentInGUI($hBitmap, $hGUI) GUIRegisterMsg($WM_LBUTTONDOWN, "_WM_LBUTTONDOWN") Do Until GUIGetMsg() = $GUI_EVENT_CLOSE _WinAPI_DeleteObject($hBitmap) _GDIPlus_BitmapDispose($hImage) _GDIPlus_Shutdown() GUIDelete() Func _AddText2Img($hImage, $sText, $iX = 5, $iY = 70, $sFontName = "Comic Sans MS", $fSize = 22, $iColor = 0xF00F5000) Local Const $hGraphic = _GDIPlus_ImageGetGraphicsContext($hImage) _GDIPlus_GraphicsSetSmoothingMode($hGraphic, 4) _GDIPlus_GraphicsSetTextRenderingHint($hGraphic, 3) Local Const $hBrush = _GDIPlus_BrushCreateSolid($iColor) Local Const $hFormat = _GDIPlus_StringFormatCreate() _GDIPlus_StringFormatSetAlign($hFormat, 1) ;center text horizontally Local Const $hFamily = _GDIPlus_FontFamilyCreate($sFontName) Local Const $hFont = _GDIPlus_FontCreate($hFamily, $fSize) Local Const $aDim = _GDIPlus_ImageGetDimension($hImage) Local Const $tLayout = _GDIPlus_RectFCreate($iX, $iY, $aDim[0], $aDim[1]) _GDIPlus_GraphicsDrawStringEx($hGraphic, $sText, $hFont, $tLayout, $hFormat, $hBrush) _GDIPlus_FontDispose($hFont) _GDIPlus_FontFamilyDispose($hFamily) _GDIPlus_StringFormatDispose($hFormat) _GDIPlus_BrushDispose($hBrush) _GDIPlus_GraphicsDispose($hGraphic) EndFunc Func _WinAPI_BitmapDisplayTransparentInGUI(ByRef $hHBitmap, ByRef $hGUI, $iOpacity = 0xFF, $bReleaseGDI = True) If Not BitAND(GUIGetStyle($hGUI)[1], $WS_EX_LAYERED) = $WS_EX_LAYERED Then Return SetError(1, 0, 0) Local $tDim = DllStructCreate($tagBITMAP) If Not _WinAPI_GetObject($hHBitmap, DllStructGetSize($tDim), DllStructGetPtr($tDim)) Then Return SetError(2, 0, 0) Local $tSize = DllStructCreate($tagSIZE), $tSource = DllStructCreate($tagPOINT), $tBlend = DllStructCreate($tagBLENDFUNCTION) Local Const $hScrDC = _WinAPI_GetDC(0), $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC), $hOld = _WinAPI_SelectObject($hMemDC, $hHBitmap) $tSize.X = $tDim.bmWidth $tSize.Y = $tDim.bmHeight $tBlend.Alpha = $iOpacity $tBlend.Format = 1 _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, DllStructGetPtr($tSize), $hMemDC, DllStructGetPtr($tSource), 0, DllStructGetPtr($tBlend), $ULW_ALPHA) _WinAPI_ReleaseDC(0, $hScrDC) _WinAPI_SelectObject($hMemDC, $hOld) _WinAPI_DeleteDC($hMemDC) If $bReleaseGDI Then _WinAPI_DeleteObject($hHBitmap) Return True EndFunc Func _WM_LBUTTONDOWN($hWnd, $iMsg, $wParam, $lParam) _SendMessage($hGUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0) EndFunc ;==>_WM_LBUTTONDOWN ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2018-02-02 Func _Image($bSaveBinary = False, $sSavePath = @ScriptDir) Local $Image $Image &= 'iVBORw0KGgoAAAANSUhEUgAAAQQAAAEVCAMAAAAxXGsGAAACE1BMVEVHcEwCAgEIBgUEAACcLi4EAwMGAwOHAQ2qARCTAQyRAQmkAQt8CA47LiibARCzAQzAAQ3LAg7WAg/gAhAIBgbrAQ95AAMEAQEZFxIGAwN8AAIEBATl3rUMBgVnY1Lp37XZzqLm26/Mw5rv5bnx6bve1am6sI3r477CHib07MLp3rLVypvXz6zWzKDw5LP37LnZz6XXzaPSyKHg1KTTyJrb0ano3KrZ0Kff7LioWUrfLTzmQVDYzqPHfmnbFya6a1jKn4CTLinl3LTd1K7c06zr4LPe1rDQr43f17Lb0qoFBQXQxJMHAQHtZXPf1rHNxJ3Vyp0DAwMFAgLGvpjCupW+tpLJyqYDAwPIwZy6sY6apX6QnHfZ1bIEAgKmrYi1rYsEAgJziFwEAwNkfk8DAwOBkmgDAwMDAwMDAgIDAwMEAgIDAgIDAgIjIBoEAwMFBATg2LQ2Myzk3Lvn4MFGQzjd063Zz6bx68/j3Lrf1rJeWkv89NPh2bZwbFvi2rj/+9t6dmdUcz8PUAIsXRyytpHh2LWVjnTm379CaS8sXRuNm3EDAgKspYoDAgIDAgIDAgIEAwMKCQjCvKLd2LkDAgIEAwPp48UDAgLt583l3b1VdUHo4cQEAgL999Lr5ckEAwPs5svr48Q5NiwEAgIDAQFfW07q5MfRxphuaVjl3r5NSkHo4cL//+YEAgIDAgIEAgIEAgLeQ1HhAAAAsXRSTlMAAQQQRzYaarjj//+7XJD//////yv//wwISPAlGxcmvKyEbW5ZTFQw/53Q3/P////////+///////////////////////v/////yH/FP////8oQP////8v//////88//9F/1v/S/9OU2hXX2VzhWsd/43//4r//////5P//53//rX//////9b/////b+SAi4+Wn+r/enf/ff////+D4P+T/+WnmYe/' $Image &= '///H/6f//0JiMzp0cOCKAAAkbUlEQVR42uSWh5bjIAxFfVNtyBo8TGv//50bSBUeZM85ZutzpaMryUmzpFBK2gBGVav1Zru61XFu4Vwk74+4CSEWqa98ZxoOKBWa3b7tOmO7w484FPK+RXNAsRWlckmhAEFanIm7ht5e1e5GQxBwmUSBuj+qkJiP++ZiRNfWRrl0N3aTTzEdFNyBQwH/S/MClTVZ8vTWOefT6SKG/Uykks4NgjKIpdGg7xAKRmT1bCIC7wd/VMJgNgtGILKeOqkAk7GJ2r93RwJnRQzWtgpdPaWZ9EMFCMVFQCEkmw4RwcNJCYN1G4FSW5U5ScndpmjqCR0zV2sY2df7aH4IIWFIFPpC2s8OSpSd1BRoZQobgmbvQkSQlCg4257Howyc4RakE35XDOjIIJ6PJpr/lI4QEoW2BPZWL9uY/DxSyXQEgvw+Xwf3dFGCMLj9d8MPaaX+RaapKr4IRFkGwS6pf/ZXCE8xI7oXxb26AG0o1SDwnT6M4vO1M+ZGITw9mLevpmVk0AJ7rSEotpQzfGOsNXYIZwr+eS+a/wutemPT32Xnh/jL8P6xrFtYrV6P+ozXT8rLasFBGIii+7yueasFl2kJmbr+/1ftDQx1PRD3U6X1+Bun3emeodftCVp7ALH2fO1r7YPAD0JcQtRkUR2EvmSR85tM+P4KB+78sRPx/KxeIzSgMUSCCbUfortbx9P1gj3dA4iSHgLobukAF6cgw71PnlNf/oQ9YrA9KA6hGpcKxpTWkiFjqcJaNjQcFWxt0x3tDrYjHo+G5ECNQQeajKZKKUjA/+bv2Xw+gwg1HRTssENmImTMiBhYYqkYEeCLXGgrmSHhgecHKLhPAlgsqphuUjIdYCZLBeo3wvfKSfj6eHleTkjOIueRE0ueb0KXW6KnBxAJ/fsl0MMSzGStRAIcVBJWn5CwmfB5CfwwJR8R/TNrFzpuxEAYxwPFtaSFY2Zm9jEzUfD9X6T+PN7E' $Image &= 'Bw7uSP2L2yP/NHbAaXw7pKmUG8Fd4wgw8JBPCGoQNMLp0hkbwiAQGjbgR5AnZGAGoWMvRug+Pd9ZQg0jNN4gra8xAn6EnYtTGAhBCOZI0Ajdu5IJYaG3wTFgQvicPNQGyA/DqAMIRwah+0SyICw1iJC2EYYud9gQrtQgAEB4tBuO9mMEpXB6xoMwn6ms839AOL/2tIEv7CMhhAEUrs94ELD6xgzcCGtUAgjyhAwC3zoSIgyCAMKxZDkTFALVKEEmk+FEOPS0QRAAwT4SBBROb3gQ6r/F9Ikg456EteZyIGiD0BfxswQgeIIQVnc4EEbqHwm2AEong+DYDkJogyj08ehgniXQKeF1e5ssCKON7wUA4NWnmoTbrWqJIlxd60EIQ1IwzxIAAwTPuz7nnAT3PYURIAKUZkS4vZ0VZBB1REEwqxBmfcwGEAQrgjtLAASoJ/WLD2FVHmsEunGI1HbYmw2C+Aaq+3RniwFhY7TmefBVQJW6Y0JAN/e+TwgdSGNEkUHwdlkeIleB4L4R+0yAsnwISB77xiDu6OgoDAnhOhmEddWm1Zz7Xjo26DUCRJB9SN9dXvAhXK3O6kmIL17Mc0YcCt4xDFDCCGOOy6K0ZQAAElAED0OZzstzJgQkrwN7Eo72Hx/3CUHsXC1ZJYng7BMBBBTB0K8eXoRVeWJPQhchwACbgQfBef+SBgEyAhgCRfDrV5YJIf4pW/LaGoWj+Elj1eBTTa8f2QjL486PlFUJssgI3N0NPPx8+oRgahGh8g/rqmckn/cIwTDAYPZeri4l2Eu1bSBYDJ8M7H3wCwQDA6+dv94WnxJAsDjU0t9RTpVHhcLJkVaIOswnNI7P5VJC2ZNATdhHoW1QnQIFQAKaoFh8fVs8u1XFCO2lBEpYfp4q6/K5QulwNlKBIJw9XJIXSwkjrFfanHTcgWU+EZCAIvhH3l0wtw0EUQDupbUHO1hSmRlUdJkpMMnYYXaZmbk/ve9WL7Iu8smRpXM8' $Image &= '6paJvlnS1ZLHS+NeTggkmNA5wH8/Y3R0ZHhsavqSxNX+mbO9RxhOEPY0fcWrCg0aBIFAabZWWm0gVNJHaKB7gBiECHPzCEGYnJ4a88dmZs7ePY2/qGuEeGgCRESgWl0gqNVnc0MAAQ2IAAKEZEL/3L2pUxNDOmjgDOHInua1IFkAAgQJaFD3vNr9fBCYB9FEmLvayITpB/MBAgncIRzbGmuMyjBAGoCAaTBb8zzvoecOYV4MiPBodGiYBm4Rjm61JAJrIcyDEtPg4eMnj5/mg3BEtgITATGnEaCAwA9pBdcIR/bZJgPGQlODx8+e5IRAA0SkJUhBcEBohAmmgnsEZZaEAsLKCMJCS5Q8eHb/WX4IZjkwEQwEpkJnENTigtALAldEGtTF4PmL5y/zQqCBgYAwMiFIheNpIh0CYnPsDIEjUhqj7AdMBBg8fPLs2fOnL/JDoIIVAZEaYanXDhGVzbHXCTMTglQggjZgMQDhVY6ZEENgSUQRoJAzghn8n/kVMQbpCiYCmuITGLx++spdJnBGhggI9wiHNluvHYggS0KpFiA8u/8iQLiJ6G0VrUdkDIERzYQJ5wi3NtheCI5UiCBgTRKE57kjoCCSEYY6gqD40nojVI+uh7IohAhP0iGcTgyNcMKK4LYxmnFQMoEIRvRga9QDYhHC06evX+eJgFywI7AahtwinASCUQbmlWSQCgFCPX8ENgUgCIEFwXkm+Ad7rK8Q72l0BewJ4aqUG0IFr3oNTpVEwESIrs3uEWwGSgYEVgUgjAcI3sOFTKjkhTBEgjAWI6BlwMA1gu22Xe7OKzVCWA/MhJwQkAYshEYYBiNGIrhFaISK7QrIhEBBI4TLUm92hN7TJ4KOOGlHoAERXAWmg/XWLXaFLeU3fdWqRqjh2iENQrIPKkEMYghGR6CB7zIuHtlmVoJ5oxxbY5n1gM5IhJtAyBQwmLAihMXAyXDkuFuEM9sbBgZCEHIZVZZVgQjP7muEG9czG9gR' $Image &= '4rXgu0U43cgEy6kzUiFEgIJGeJEV4bSfhECDiQkS0MBhOWyP3csdP1yRAVGCgiC8wKX020wIvf4JGwL++cGOqAGEoNJGpESobCeAJRQRwlQQhHfXsyNMxBBGUQEyDiscLW1HSgR/e/I9fEpfUUcQ0BRePH0OhBstIrkajpuZQALkgEbwlwtB2e71lXoAQlXPh7oni3MOCEwFIjTqABWAAug0wgHbjbyKXQEXk7o14iqKCPdzQjALAq2QibA8CMkPAEIqDAwAoSoIUg/3MyL0VoBgdoXREAEGHUfYYV0SlGIqNOZDrU6E91kRQgUDQR8c+MuEwLBkQ1APfWyN+SDI0dpYmAuNlgCDjiP4N4jAZIg/X4S7c/kN6oGbwvP77z5kQ8A/UF9GIxcChlEmgtRC5xFu7kh+pATrAZdREYRnH7Mi9J72g+YoDHpF5mxkdBYhVg6K2WD+RwwRSrMWhHTx6dMn/Bs/674wBoYgBXpjVKmjXYRKi56guDBhPnBTeEiEbMH2CAeET4DU4RDBtFA8VpB9SRDuP/l4LDsCQp8u4a9wk7F8CLtsT+RiVRBBDpjkeAlHbHkhMPJGSP+/gzuM1/Tazp0xHwShNFtIhEYmqFgWGFsjTtnWEOFx8RAQyvaUQFIE8wEIemcsIMJOY1GyBeaDLI3BzviwgJmASDZgKkQQvlwfdBydRPB3MeXjTywzd2dBqGJdKhwCyyE5GTgl5XxpvJsQkk0YSzE4SoRkCM6HPkF4+BgIX7+liu5GuLnLuiiaJDIfqsHpkgeEt6nibpPoHgR/t0lgeV6jkn2pvEkPSSB8/1EohOt7LWUQO2riRVQREQZ3tmgHTAk9HwqLcBSZoCwAxsNQOR8KiXAMCC2f8BnWA16+pMdDvQMI7ayd9oOW5BjcbTxS1V4QQT30AaHuFQeBAQQVe2qyDUGGZM2rdTVC+rhJBIbt8eZsCgVFQCYkbozmocIWNIXiIqgmD1uPQUhTqBYQIWE60MOo' $Image &= 'B3RGIvxsFS1hviVEGoTsgT3B/rD/+P/CbMHp0qw3WzSEPSRQKvkxrayHvmq3IOSodJ0IXBUs1w3h3TBE+FUsBPSEFG87sGFAz8g6EYqWCclv1BKOC2wKmJH1Ui4IydPkdqvIs2lwbbaEMg8W0BQ2jRcP4fSeFG9aJE0BM7JoCIN7mu6Jtjd+0J0xQPjdVhhIXYMQW5aUpUsyFVaiM3YCoXUMLiE+2WNxY1S2AaGMciDCJo3wp1AIP1ZZXslqW5e2bBqf7X6E1hGtGB6vqaTLB7MpuEZgpFszsiEM7iZAQhj1MLBpzX+HoEwFNAWN8LdYCAmX0kqpZrfNvqmWColgv2JQsXcTW0BoK9LQdRrBtixxRDIjgs82lKul8YIh/OPuTpvaNsI4gFdkmnd9xwxJ7/uG0MFN3ze8cEp65BLuyrgxinNP6so9PFOPUz1SY4cUA3VDKA5HTnp/xu6za/FY8lq2ZMKY/HOAe2Z/s/vsIckuvtHb529qLZUxEkLGTpViZbcQMK8HhgO9VC6hsTJGGg42OHo5TvIyk9nc7iCoo7V/gwgj0RDSzOgLwQXIPR4ESrMn0Jaxa0Y+mY6CUC6Vi7Hys0j+iGuweKfZ4WndgFFh7Hx9PrBm3D89cz0CQrk/BMrjQ6i8QQOflkadp0xEGD7BEaxeo7NyH8NhVxCSr0f9ZPShF46fuX7N6jlVcMuUFGNR11VMz+94/Aj5JoKmeCZOU32kISKcjYCQBMiUmzmZqwJAuhwe4pIGYO8Sgo8gPEPHjs9GQzDKIgwFbphu2Z8ky5Sa0atOSeaU5MJvjVaElOu6eV8mM4aR2lGEwCShttn33IWICEWepA0AWRQIhIFdbsYFcEs8HldJIkAyz2PP5XUT8G/MtRDkHPwrfSBQTdC6zwr0euS5m79EQsgiggkAblkRAxw/guQSAh4CwkD1tAM3bLvasnBIoZadZTuD0PHzpmmmoAclj89HQ7ARAVs2WlQEG+lDQC4kIARc' $Image &= 'eJtg25A9yhvAHJhrGjgA5ul8jPQ4O4Scsk3XYiBkAMDJuekwhIyomsil+xCQpIrdQ24qTgOIlk9WAagT9IPwGrWZekT4R+HPLMRAKOti+ILJOiMYcENQSC4fQhKHvveX5sDM82TJoD+EwqvRPwL44GIEhKIDkBQKvDeYgiHdCcGWNTLlcXkIGYkwV2omhS74+5zoEC7P0aN9IHz8eugEqfyb5yIh2E0E2R0MHMY+BLaN4AKYZRmPS1REMCQC7clNHBk5OSswkKlmo60wP6PQFKkFDQJjhLZZF5ciIFgCgZLOAmRaEVyAk2UMzgo5WisJLqTxEKpUJxhWDRts/N4GLywuwsdYEzqHJkuC0S5HRrAo2GijFUEHYNsLCbtMEVwSgQsB2IRwGoCVHLDF96l0enJSd7NgxETIH3o1ZCSo/87IhUgIcwIhqVsyui0bTXGgyqsEc0SfLlNk8wlhrkS5AWbJxmJByYER86A2X6RHAns9Yzt2MwaCC1VbBJqzBSULULXFDJjB8ZBMeQMCuXiH2EYoU0wAfQ6rRgYn02TSZTkAI+aZHSJQ85RnasHxMLQ/DoJVhWaqc5Y/ow5gTLdYzHEFH1fZQyjP2W6ZwrAXzDkAgItIwPSBUH5NdSFSC6mWBz65svTrj70j1N1T+GXcldGtYMq6adtZV1RNG8xiC1eZEPxJiZVTmtlA6R+BHAKdoU1h3/HfOEKl53SfRFvDJ5JRV8YbFqdcxebbBNxwipEgwrJ9IHxGCFT+FccI9DdfmL4VDSFSer1WkZ5j/hOokh0fYfnV9jMkehXkkUeMt3cVgRIuk4FUXIQVjqApTxNUd3dqeNj89GAilNKluAgfv+K1ure7e7V9z52Yf5wIEbCCJ7NRESivhD8SqAXehWvoheH+EPoPIUSPGqb0CjWSmt5xN4kl4eAeRlDD5N9RNJhUAjyiJJydX3p/9xHUEP0HLYvv9LhloGvS555AhNBTpOCkceCF4zMCodBzfu8v' $Image &= 'u4TgU6BCqMzI/ukT5wlhF1Lh2SWEwGqp07VZbd/X02cuPnEI1jvRrj49N31m9olDKLyjKAS0Vgzg4A1LBy/1j5CxWpNZ1a1uOckMHnYqDCFpxEP4uPByhINWbWT/8ZmzlxGhET+FwkkwrZasgpMOFUgatL3O6UGE5EnXddPifO4UvjRZxHVCufySj4D2jKoM8ZIwc+5CTISMka7IMFj1nTgwIxQh4wDYcxlmGDZi5NItCEnvSMHBv+eKI/y5iD2hKBHCmq75nnaYPhEbYRVONhFykIuwksgBZPXtYZFzoKpTF3GAIhFy8RD8V6I19XsOyVUCfwAqLkIdnEozq2D0jvAhmL6SMW6DM06HtqKTuC4zPQQ7OkLpXfV1N/U5M6+LZ85fuBMLwYVspZlqACHJwhRkMaTgGZw0cIA6SdHFw9fYCOF3brWOhn38AaiD56/eWUrHQDC2W14HYEQgUNwuI4LVLUoGAGGS3MBhLVVSZ0VCiJQ2BE1x2YVKwszBixyhfm05YrAkGC4zsqtZRHBJQKBkKhSdtXWMVZ+SC+KlyQ18A6VcLHIaiIGwRm3tdk8nPvVy4uzs1drC9WvL6166AyRF46EZu6K3IdDwkLc11f0GqGZRsgC88YwMKHERhqilIQdLmobPPwmEm7WNxa/GPitsbvaEkFmF7di2wdIVtyMCQwHHdK0wBAZgygsZzOqIYEXK3QOdHn7S2kYD1sVzl67Ulmr3JiYSk5WeEHK4xLFzWLbqBUxDgZAVX5Er61bakmxBQCdHdgTb6oAQeUd+9/kezxI0LAl8crh8pXZ/8cHDQ6NTiaPFR5ubj1qiQkhVmc6bbgDUC4RQZ4aRIYRV/GoC6ijiegi6UQU0kBWB7TSCpnUkoJLAEQ6ev4AIG7XrhxKJqcRovrDeEnVJFPEjmPLyq+tDwI6Q7oygMzmwsqJicA19xxDWEKHrPTqafCQSJweOsLS4uLBxaiyxlZia2jpqrW9udkdghJCR5cHG' $Image &= 'Ud2K0LxPp65CYIYUcJrrgjqVz0Ds6AjWjy8+1UM0+YQwr4sXL9ziPWFxsXbv8EQisbW1NZUYLzW6I7gAdeoUTkp0CQcYsjgA2PLG9m1N7QhSwMT1QleE1cgIPzxPB+sUxeHKCD4rTgiLD/44lMBgd0gcLS9vbkZAYIUGRpcKdhMBe4MpGPAlRXYd46RF6YyQi4Gw8rxscrflwhB/5zXcOcx6CKIsbPEktrjD1ugRa12MikeBNGTSAHprefAGiZOWCNgzBIS8rcmHYABkBAvlTweAUFrDqiwyQuGt0JvWvE6CJQHr4rnZq7c5AmZhcetwAiMceHUYz1dotiCEZqpgNGRy4DSIhhFCE6KO9+kEEJoGhGACGFZ/IQSLEDpqaHKVgHURERY4AuaBKAsSgQer5AdHLO6w3poGNT3N95JJ/M6mrSUYOH0SQnP6MLohMPCtoOp6xjBXT+4cgnqCPPb18DR/G8JLV+c9BCwLowkKVkkxLpZpviCEtANVLPEo0VAh1PUmgr4KwEIRMGJlldHrdddluebUUX8cCNQf5FssnTh7/jIhyLJAPWELk0CHj45YDQ6x2YqwzABjSgEql8wrEr77dAqtUSHg+tIfk1mxwg1WOIKm2EXSFNGsi+LdVDjCTUJYXFg4PRZAwFcIkfgobzUe0ajgxUFnRkYPHjI4HKXupvDskQ4SjYIvjBBaFXIObUpymbQlo1fNyA4rb3R6PJxOnTVREhQISw+WJg4rEDwI3iVKnEKmsdyeotugpF0ZveBPo5JyK8q4zDCY66brFgW7TVSEwuvK7k9FUfNKgkDgC8YWBL6J+GtsVI0ghgaXQIoCNliF0PBnWZ2/Kw11VDB192TsnhB+8+IQRziOM2QQYbEm1kzqeFUiIToD/hZMOAJZRUCwKtGDCFqngog/WpZKfHKYDSJsLPwylujQEzyE0eUBR1h+Xd0PEIFGg3wTQpwhgwiLNVwzhSN8JEvjenvIog+E/hOsCeoPyxsR' $Image &= 'dfHE2XYEWjOFIVAGG0G9cyKE44hw/tKFW0EEccISinB0c9ARXlN3BIpGb8QoEO4EETZwQxmSqcnHhVDYqRCC4llZevc9gYALxlt3NgjBWzP9ciikJ+w5BHVGxOQww2dIJcLSwmJq7IlCoNv46PHoZl3EZYIK4T4Wx8OdEY4QgjrLlAHtCThBYl2UCDdvqxCwOI4nME8YAl2IRIRhvmgOQaBt9Z5EeKX7k5BYF0VPOD+rRqBttRJhsn+EnU83BC04HPDt/LEn8Bny5rwCgaYIJcKHg47QIARFaL04jDOkQKgpEfDM8fMxNcL4HuoJ6gUDTQ7hCLh+nji8xxCoJ6gFKPhu/hLhIm4d1AhSYWxCgbA1ikdtA43wTufW0wzZEwJNlAGERIMQ9mBN0DRRF3HnIBAuhyNs4ETZjjBl7ZGeoJooqSRIhHPhCDRRBhHKKysroQi7GkVhbEOgQ2eN6iLfPslVcwgCTZRBhOQeQiAHH8I+OUPyI5VZvnVQI5DCxpeH2hAmCaFjHu1QoiHQcAiP2DngRx+FIVBqiydxueBDGN9TCHS0Sq+bH/ozczAUgfJgKTHmRxBz5OAi8BcvdZoVCGH//ubkwLcOXRFo0UQIicLeQVBfnMcTlUgI3ukCIUwVaTiEZpAQCIJmSLFW6o5ACjzbCJ/tUQSaHHAPGQEBU/trbKIVYXzQEPxZJoS2CknLhKgIuICeIIStxPqA1YRwBC14tHQAEabFgjECwgYqEMKURT0hSnYL4V2FAL3EuniMv4l9BATaRkzQHSyf7UEEWjbKyQHPlaIhkIJAGF1f6ZJNVQjjsSI8ejf8ItyQPGCMjkAKYkw0BhOBeoJ6fdAnAikgwlR+oBHuhh+q4OeFihnyzNloCKQgED5ciRPC6DnxEIaeCgkuE8SCceZEdASaI8QkGSO7hnAgrCOIGTIGAimMyeqIK+f4GRSE6MOB+gIifDjQCM+HPxXLlwkxagKl2Re2Est7BUF9MfY5D+Gy' $Image &= 'QFiIhIAKuLOeyg8Ggtrl+U5TpKbR5+wjwnkPYTESAl6OOIzHS7uAEHdZSgjKY0Y8V8KeIBAuxULAp2RQoTHACKF3eEsEcZzgIdyJhEDnC1Of7S0EjW5WGRE9IS4C9YWJMdo/DDCC+hPA+CayPwQ6d5yyBhZhmRCo+RptHY61DYdaNARSGN2Mm91DIAXKUHA4XImOQA8LWXukJ1An0AhhehvhKiJsREMghbHBROChe/0V1XFITpH9IJDCX4d++GFl8LLJo0Sg4bBzCBt3Hl77Z8dyLSQ/tuUH36v2f4EQFO+fcKAN4fZ8NIQNzEJtoVarPZh/eP0ndf5ozcM/HirzF/7oOfe+uXfvr3viyzcy33777TM8//47PDz8opcXxI/n1dee6MA9JgJvOoa3HXMHM3/zKs8Fnv/+u8Qze3F2dvbiRf7r/P+MnQGH41AUhfe1ml8Q2oj+oVpIIKCMUc22rckPid2FqYVhYQGy7U/cc9896U3mbZ4cu8uu6ST3yznnvljM6YS//31rr1g/f37oJ/Gh99sVn4H4CXyN6VuvN68Wv9r22l6v/g/qdvV/xzc4v9aH7l7kydphzsXiS1SGwiEOgFDNh8D5x9N/h95vuJ0WIgfMJATquj4dj8fDIeu6x2O1uld30Wq1eqjKsssOh0MNTJ7ZEwWHh2R4GfU59C0QrgwO59OhXFV5niTL5WazMEX+30Xfn7ZJ8QnCz98RCDK/9/6Hl59ebkyfqHoATx/Ty+wYPutKTH+vqiLP82a73LjnkX29TXY5rg4k+3358vKSCY/DERJ4EKFc6AgiUQkN/vbswb02CHEGths0DiGEHwEEcwAN8Jwf94Ab8ADEzydxfl3r+J1/+Pd7laaFzO9vbZzGzVpuAMe1IhUWgAEaxGE8vE28zpfL5dubEcGFeXmh/6oQGjrBIMS1kWNz4d8iM4Vwm4DgAUBM//v7uz4Czk/zQxy/LDm/PP9km6zXIwDOQJBEs8vzIgULpVGK' $Image &= 'ACOg4fU6qA/fQUCA6x+z8l4R92YmAm4HQjjWAYSgAxQA9ARg6ZfnrwTo/woAmoYOCAAElpBkJklDFCBhLABDBBSqGsZA1b6eGRd/B0B07B731CBM9sFYC3PC4Vi/Xr4FEH73Fvh4ErgRAD3YN4DmXxywogMEgFjAhTkMhY7YoKJAAtqNUOwhgQEUbI1aUKgnUKfSqbW/he5RCYQlIMwygrNOKEYQ7LQEBGxBlgAAGAG1AK/uCXQagQoVsNupBdiDJqfV7CYcsZCAKgl0ZiEkDEUpYkIgNcVT8hRQCQUhBAziEHIPAWYDhFZ3pKWAPWhrwBOQEPozwIDAQ0MACwBAogQWbtKFvINQTrNBS3hPVCQhKAZlwYRQhxACGcRlEPYlIXBH/mYPWBESQB+C88gDrEHugaQhgegPq4wwcQQhNYFW2QEFPDFgsTcWQ2klNKyEOQycdsIQgn+XBgQlAOlB6NevX4JAexAItAgJv/NFOEzBdskYRH+sdzi/G1WGQzSQDbUEVgdET1hTCAYD8VLuvREaXD7CILjkYr3WdweDcIMVVHoWBIDBeYRnoVEK4IH+LJT0MVhMpoC3MJjWTaVjoRxkg25pCdREQMKEOMqBZBYEMud28E5YEcKbUPj4IALIe6B/JTj3u6AWBDwN+CLwCBorgphc7PwWBgcgxBGIBjsiL0aNSRiQGoFZnBeGMQQpRpxBcB6TWuhjcKUHBMFFEZBA1kFC4DOCjXP/fU2ZoOCmGblRRWgy2Jbal+aJXlXOSog9ifCQ8nQCKNSkgET0OWghEBAE3AZ8Her3IRAIgcAFsTokGRfNa7gzDIRZgnVJSSZ7BrMhWDGu9qBwJAUkArpCvQmAgDEQAhlzIFelCeIIeC6IzGk1NZ0d14NYSkeoIywbotQaYV4kiddDIAXZuidQaNsbxByAAIJw6qvAXGA5kAtbG0YuH4mEiy0Ri+/CGsI6QqIhJOR2Yk/D+HM3WCdsBackq3z2ApYERAQ8' $Image &= 'l3sXZBBMgJUo3NUG20SvO2PeSPjjlJwzDhD9QEM0IFEICGtFN+sRkL4/pcpbfQoIe+uFFjYwBPZugK1cmgtGG8HFjgIkD83rAMhFChQc2BA8YnNn5NuJUowyVgpgCQrjXmAXAIHlICuhPbqALrA6XNj2HY7m4j+/OIiCC9GM69T+UTAIh/WzKhtolg+oCAV5RZNegPwbqrkgEwKCgH242wGBJ28julj7UbG4Tn4qBMl+YDCUxDaZlYVpCoVSyDJQgBeCIBABGKRiAzkff10u1xuzgXkh2InBc4/cmQv8MG0nZ0cpwfA1eGudA8EZBdkRwNC3I0QErMP9EAEYbJUBCbBxg0jPTueclRZAGC0MgOD9RBRNhJRjnqbWjlwJx0yEOuwRFBCSIAjWYoOpFiSXWCjcFJA5GhaOrAvkAlJXurlrOqSQ7Aprx/pzF7APFYEmAdiNwVTNzVjYBiSqyLZwujejJ5X493KegqyaHBQEw4sUg0gQWBmkqTDwCKZs4ILxXSwi9lUxP5BVXE5A/PfDVHwrsRf8caEABukFmAHK/nV2BqlyA0EM5SWQM3gzF/pklf3c/xqZsqdHGCFET2URTH87bUVSqdqLr5YgJYwZ/B3myRBJLr+uwFByUmQQMHv0yjtRse0LKxsNAksJP5cSrqYQLK1KwGGSMBJExd1LdTm4LwwX/okFFw1WMniMBw8EbKaB/F6E53D/O13BJiCQufCKHfoY9Jxzq4XBxw9PN/gtQ/Si/6qlkpzt/lZ8xYXg4MexpqlRxPMpGrwx+HlDEDDYEztFwkXlBtbejZgr3s78JYmB4C6F1+mv0QA5/Fabd6By0U9LtYPy0y2haqY8UVBPGEdchwaZBumYxN9Sfl+3a+NYmKnQNbuKsAi6UJgIrXFR2cAwqOWNIO/AemlFyKjgaWW7OI4ZRS4yKCS/htTVGH8J9iZAbwMQjENI2VqKP7RwRY9NWsAUMUPloDAJceLRFg1IsIi+duKaXQKq' $Image &= '2MwRwjZKcr/V8TEGzYuPiYiiQYtDRHvKIoDmnejF+uO76RJkJjKc6XFqaHCblioH3Kl69XM1py727C5IOj+EwnFy4azHwqBP6r2r95X9/9q+iqFrkMYm8fgz9baDNS5BOwZpWQazxJB/qAbmusMfT2BrH0mOSxKvP3LEDwnpIABu/tj8nNt7n6vA/i1CA+2sEcJYbrposOwAkt50VUuouH2ypRlK7DJX2pn00MmjOmO4YT80CQQHRmTtZmdXxm7ja0XchTbGYF3BLNw0Xk4CSFMyNl0nELY/7RKBtDLxDQwnDUrOt6vyNmWkqbfFltmcSeN5/uSDd9FjHaJlQCm4kHbUal9ppUHmyJjv4URhIMC/LmHM7FxpsqGq1Fegok93hP0X2A8u+PR+vyYdBVAeXls0CYb7Mp43tLhzRty3ZK//LbDOSsL+KC5bGNfdcHd5/4f27+4Z6T8Zv3ETjnu8lgAAAABJRU5ErkJggg==' Local $bString = _WinAPI_Base64Decode($Image) If @error Then Return SetError(1, 0, 0) $bString = Binary($bString) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\Using-Note.png", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_Image Func _WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_WinAPI_Base64Decode
    1 point
  7. Jacov, I think not - thread locked. M23
    0 points
  8. ..and call the script obliterator.au3 ?
    0 points
×
×
  • Create New...