Leaderboard
Popular Content
Showing content with the highest reputation on 10/13/2017 in all areas
-
The other day mikeytown2 posted one post in HTTP UDF's thread that got me thinking if there is better (different) method to send requests through the HTTP protocol to HTTP servers. There is Winhttp.dll that ships with windows and that is its main purpose. I couldn't find any examples of using this dll in AutoIt, so I came up with this. Microsoft about Windows HTTP Services: Microsoft Windows HTTP Services (WinHTTP) provides developers with an HTTP client application programming interface (API) to send requests through the HTTP protocol to other HTTP servers... .. blah, blah, and so on... This is an example of getting page header: #include "WinHttp.au3" Opt("MustDeclareVars", 1) ; Open needed handles Local $hOpen = _WinHttpOpen() Local $hConnect = _WinHttpConnect($hOpen, "msdn.microsoft.com") ; Specify the reguest: Local $hRequest = _WinHttpOpenRequest($hConnect, Default, "en-us/library/aa384101(VS.85).aspx") ; Send request _WinHttpSendRequest($hRequest) ; Wait for the response _WinHttpReceiveResponse($hRequest) Local $sHeader = _WinHttpQueryHeaders($hRequest) ; ...get full header ; Clean _WinHttpCloseHandle($hRequest) _WinHttpCloseHandle($hConnect) _WinHttpCloseHandle($hOpen) ; Display retrieved header MsgBox(0, "Header", $sHeader)Everything you need to be able to use this UDF can be found at WinHttp site. Remember, basic understanding of the HTTP protocol is important to use this interface. ProgAndy, trancexx WinHttp.au3 is completely free and no one has right to charge you for it. That's very important. If you feel WinHttp.au3 was helpful to you and you wish to support my further work you can donate to my personal account via PayPal address: trancexx at yahoo dot com I will appreciate that very much. Thank you in advance! :kiss:1 point
-
TreeViewTab UDF - Create pseudo tabs as TreeView
Professor_Bernd reacted to MrCreatoR for a topic
1 point -
1 point
-
The following example processes all text box shapes #include <Word.au3> $oWord = _Word_Create() $oDoc = _Word_DocOpen($oWord, @ScriptDir & "\test.docx") Global Const $msoTextBox = 17 ; Text box For $oShape In $oWord.ActiveDocument.Shapes If $oShape.Type = $msoTextBox Then $oShape.Select _Word_DocFindReplace($oDoc, "FindMe", "ReplaceMe", Default, -1) EndIf Next1 point
-
youtuber, You have to move @error statement for Connections(). Otherwise, it's not very useful where it is. Like this... For $i = 1 To $aEditread[0] $string = Connections($aEditread[$i]) If @error Then ExitLoop EndIf1 point
-
youtuber, If you are trying to determine the progress of entries read from the edit control then try this... #include <String.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <ProgressConstants.au3> #include <WindowsConstants.au3> #include <array.au3> $sList = "https://www.autoitscript.com/forum/topic/34658-are-my-autoit-exes-really-infected/" & @crlf & _ "https://www.autoitscript.com/forum/topic/148023-amending-the-faq-in-the-help-file/" $Form1 = GUICreate("Form1", 314, 424, 327, 136) $Edit1 = GUICtrlCreateEdit("", 16, 40, 281, 313) GUICtrlSetData($Edit1, $sList) $CheckData = GUICtrlCreateButton("Check Data", 16, 376, 107, 25) GUICtrlSetState($CheckData,$GUI_FOCUS) $Progress1 = GUICtrlCreateProgress(152, 376, 142, 25) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $CheckData GUICtrlSetData($progress1, "") Local $aEditread = StringSplit(GUICtrlRead($Edit1), @CRLF, 1) Local $aData, $string ,$progress For $i = 1 To $aEditread[0] $string = Connections($aEditread[$i]) $progress = ($i / $aEditread[0]) * 100 ; (partial / total) * 100 GUICtrlSetData($progress1, $progress) If @error Then ExitLoop EndIf $string = StringRegExpReplace($string, '(?s)[\n\r\t\v]', '') $string = StringStripWS($string, 7) $aData = _StringBetween($string, 'lightboxedImages">', '</div>') For $j = 0 To UBound($aData) - 1 ConsoleWrite($aData[$j] & @CRLF) Next Next EndSwitch WEnd Func Connections($address) Local $oHTTP = ObjCreate("winhttp.winhttprequest.5.1") $oHTTP.Open("GET", $address, False) $oHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0") $oHTTP.SetRequestHeader("Accept", "*/*") $oHTTP.SetRequestHeader("Accept-Language", "tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3") $oHTTP.Send() If @error Then ConsoleWrite("Error connection") $oHTTP = 0 Return SetError(1) EndIf If $oHTTP.Status = 200 Then Local $sReceived = $oHTTP.ResponseText $oHTTP = Null Return $sReceived EndIf $oHTTP = Null Return -1 EndFunc kylomas1 point
-
1 point
-
Here another variant of a Kaleidoscope: ;coded by UEZ build 2017-10-12 #AutoIt3Wrapper_Version=b #pragma compile(Icon, "c:\Program Files (x86)\AutoIt3\Icons\au3.ico") #AutoIt3Wrapper_Run_Au3Stripper=y #Au3Stripper_Parameters=/so /pe /rm #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_stripped.au3" #include <GDIPlus.au3> #include <GuiConstantsEx.au3> #include <WindowsConstants.au3> _GDIPlus_Startup() Global $hGUI, $iFPS = 0, $iShowFPS = 0, $bExit Global Const $iW = 600, $iH = 600, $iWh = $iW / 2, $iHh = $iH / 2, $sTitle = "GDI+ Some kind of a Kaleidoscope v1.0 ^^" AutoItSetOption("GUIOnEventMode", 1) GDIPlus_Kaleidoscope() AutoItSetOption("GUIOnEventMode", 0) _GDIPlus_Shutdown() Func GDIPlus_Kaleidoscope() $bExit = False $hGUI = GUICreate($sTitle, $iW, $iH) GUISetState(@SW_SHOW, $hGUI) Local Const $hDC = _WinAPI_GetDC($hGUI) Local Const $hHBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH) Local Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC) Local Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hHBitmap) Local Const $hCanvas = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer) Local Const $hBrush_Clr = _GDIPlus_BrushCreateSolid(0xFF000000), _ $hBrush_FPS = _GDIPlus_BrushCreateSolid(0xF0FFFFFF), _ $hFormat_FPS = _GDIPlus_StringFormatCreate(), _ $hFamily_FPS = _GDIPlus_FontFamilyCreate("Arial"), _ $hFont_FPS = _GDIPlus_FontCreate($hFamily_FPS, 8), _ $tLayout_FPS = _GDIPlus_RectFCreate(0, 0, 60, 16) $iFPS = 0 GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit_About") AdlibRegister("CalcFPS", 1000) Local Const $hImage = _GDIPlus_BitmapCreateFromMemory(_TestImage()) Local Const $iW_i = _GDIPlus_ImageGetWidth($hImage), $iH_i = _GDIPlus_ImageGetHeight($hImage) Local $i, $dx, $dy Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW_i, $iH_i) Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap) _GDIPlus_GraphicsSetInterpolationMode($hGfx, 3) _GDIPlus_GraphicsSetPixelOffsetMode($hGfx, $GDIP_PIXELOFFSETMODE_HIGHQUALITY) Local $hTexture, $hTexture2 Local Const $hMatrix = _GDIPlus_MatrixCreate() Do _WinAPI_BitBlt($hDC_backbuffer, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $BLACKNESS) ;~ DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush_Clr, "float", 0, "float", 0, "float", $iW, "float", $iH) ;erase canvas background $aMPos = GUIGetCursorInfo($hGUI) $dx = $aMPos[0] - $iWh $dy = $aMPos[1] - $iHh _GDIPlus_MatrixTranslate($hMatrix, $iW_i / 2, $iH_i / 2) _GDIPlus_MatrixRotate($hMatrix, 3) _GDIPlus_MatrixTranslate($hMatrix, -$iW_i / 2, -$iH_i / 2) _GDIPlus_GraphicsSetTransform($hGfx, $hMatrix) $hTexture = _GDIPlus_TextureCreate($hImage,3) DllCall($__g_hGDIPDll, "int", "GdipTranslateTextureTransform", "handle", $hTexture, "float", $dx, "float", $dy, "long", 0) DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hGfx, "handle", $hTexture, "float", 0, "float", 0, "float", $iW_i, "float", $iH_i) _GDIPlus_BrushDispose($hTexture) $hTexture2 = _GDIPlus_TextureCreate($hBitmap, 3) DllCall($__g_hGDIPDll, "int", "GdipScaleTextureTransform", "handle", $hTexture2, "float", 0.2, "float", 0.2, "long", 0) DllCall($__g_hGDIPDll, "int", "GdipTranslateTextureTransform", "handle", $hTexture2, "float", ($iW - $iW_i)/2, "float", ($iH - $iH_i)/2, "long", 0) _GDIPlus_GraphicsFillEllipse($hCanvas, 0, 0, $iW, $iH, $hTexture2) _GDIPlus_BrushDispose($hTexture2) _GDIPlus_GraphicsDrawStringEx($hCanvas, "FPS: " & $iShowFPS, $hFont_FPS, $tLayout_FPS, $hFormat_FPS, $hBrush_FPS) _WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) $iFPS += 1 If $bExit Then ExitLoop Until Not Sleep(10) AdlibUnRegister("CalcFPS") ;release resources _GDIPlus_MatrixDispose($hMatrix) _GDIPlus_ImageDispose($hImage) _GDIPlus_BrushDispose($hTexture) _GDIPlus_BrushDispose($hTexture2) _GDIPlus_GraphicsDispose($hGfx) _GDIPlus_ImageDispose($hBitmap) _GDIPlus_FontDispose($hFont_FPS) _GDIPlus_FontFamilyDispose($hFamily_FPS) _GDIPlus_StringFormatDispose($hFormat_FPS) _GDIPlus_BrushDispose($hBrush_Clr) _GDIPlus_BrushDispose($hBrush_FPS) _GDIPlus_GraphicsDispose($hCanvas) _WinAPI_SelectObject($hDC_backbuffer, $DC_obj) _WinAPI_DeleteDC($hDC_backbuffer) _WinAPI_DeleteObject($hHBitmap) _WinAPI_ReleaseDC($hGUI, $hDC) GUIDelete($hGUI) EndFunc ;==>GDIPlus_Kaleidoscope Func _Exit_About() $bExit = True EndFunc ;==>_Exit_About Func CalcFPS() ;display FPS $iShowFPS = $iFPS $iFPS = 0 EndFunc ;==>CalcFPS ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2016-12-01 Func _TestImage($bSaveBinary = False, $sSavePath = @ScriptDir) Local $TestImage $TestImage &= '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' $TestImage &= 'hlLrnNO+PMmXy49kcn1/awAEAmga/PXWiMpe9aO+Xs32e929mp58UPE29Pn8eb446dT6PoYACAEDTPzx1ctTO9u6XL6dV1VrVUsscpbiunq5/Lgri5V9V7NDBAIBAMPzuyydMlrtVu/H9s16Hrbl8/JjrReu/RzeZnHQeZX3dAAAIBAMPzyqGyZvfZl8G/dpd1QufDDoMjbp26ePgXnadWW31rAAAQIAYfnWrLCA220prxPobvVTnOMPrrkevX03xcc8mU6et9CxoaAQCAYfnGmjsUF6a6VS8+vVus5zMZ6d3y10de9edzQQHqe0DAQIEAAz8301q2TFO+hu58T3Okyna/G06NtebTo69Z5eIB5+76AwBAgQOWM/OK00qiGha3va5OX25XT05/L5u9L6O/q0ePCAR9ZQwEAhLlda2Nfm+mmltomWPTo0fi+j2a9Gj+V86ZL39Pu0ucFSw9r2QGIBC4r6WANfmmmumltom4mNOzfDwvpOiqrm+f4YRXV27aC1Wd/XUMEAjgw9RtAMX5lpptpdaSOms+Zdvd81p7+mqH5/j8Se21aL0pWf1XaxoAJ8Dp9ZppoGfl+muu9XYXdUYefz9OHN0ex2ayT53i4Fl9vZpnn6v0jAAFzfN/QdoAgYH5Zeu+2ulDe2lWcvn+bleh3+r0c6w8jjVHV6NLPX7OhgCPI8n6fYAEDGvyutd9ttKKrXS6M+fm8zk01nbqu9vN4YuuztWcfX+gDAMvm+32mAAhgH5WX0b7vSlpW9PFYZYcfKa0uzYXDnOnfvnPt/RMGB5Pne90AAAAAflZW23RWjqtKKyyjHLnzm706K0Xm1GvbU6/ZWwF5/leh6wAAJgAH5WF77bu7dltbWzl83jm9PR755/HT6emJ+r9Bk+f5XN6/sUAAACGAflQzXo6C6rQ036HPJXZy58PmTr09u3kcd9nVHo/SY8nlY+l6XcxoQMAEDA/KSlW/Q9Kt6bXoPHLXXXHDzeAaSt7NrT1fb9Npg0CYACAYvytNmm963o601pEZ1repll5vPzyVfR7fT3ehbTTAAEwATExflYMNNtNdd0aaZoyynTXat8+fm8uK6fe+mbbBAMAAABDAX5WhtPW9dujoS6pzh4cvPi+jp6EuXhvf7fsbAAGIBpgCBgH5UpdNF7dO/RtpWhNRhjjyc0b71vi+z690DTQAAAMBAMD8qSabC9Orfq36Lsujn5sMOXnfX0zl9L6jYAAAIYAwQmxr8rhMbAe/R09HV0LWrnPNZcWc0o6PsxsaAEMQAxgIGNflKAbAHp09W/bo70ygrKOMyjP7D0RtNJpiAAGMBANr8qSabGhl9PRt16aOshwojhy+h+hYwaQAwQAxgIBh+VSMYNAJ9HR073tMsm9ePi9j6cY2gEADQAMaaAYflSAGmDSC9+q6dVa1OH2fomxgAgAYgAYMQJh+ViEwYDkGaaO99CtV9F6TGDBAJgAAAwAAD8rAQNoYgbE6rorTp+s6AbBiBAMAEwYmAAH//xAAtEAACAgEEAQQCAgMAAgMAAAAAAQIRAwQQEiExEyBAQSIwMlAFFCMkMzQ1Qv/aAAgBAQABBQJzv9Nlll7UY4CW68++79lWOJKIoXH0u5wttFCkX3y7KEuyj6NHkeHN81IjEivaijxvZH3+SkONnpJqWGieOz06K78O6OXUR7fRjk/9iPzKIoj0L2rbz7aKXs4ld7uNksdGWDQ8VDW6dKT3rt/zi/y+SkLwkhCF7UIvddovahI8lbP2yiSgZMZPFQ0IbvZSp4+iUSP8fk0IQutluihbWUyiq93VXsyivbw7yonA4MrvaBL8nD+HyPB2yKEWixdbeBsuyxLuO/12I8HT26/W4pksZ6JPF+UlTIsg+Uod/KVJFi2v2LZeRb9iut1R0cf1slFGbFRKNM0/eWLT+Wtr2+yPsRYt/rx7uiu+/Y9mt2UThazYeiDqSy8SFJfIRaRyvZMirPG6L7T73ssssT2r3Vu17Gt2rM+P' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= 'EKFgmgoMjS76I7JzocB4Me47TeAkfAZhrHDLnKLKv0KKwvMvZRsaMEXdRZ2l62TgrpyUfaIVjNF/oOnVG29iyuMtwhJcIhL9TaSWhEunedJstjP3YmTf/B7kQvssesDN5GihOUQYE3QvRkCYTUPfQ0+Di+8UcyvwOYiRloY9BbHJNQiXA5W0dMYYBdhMjOWh8JEQJdL0N5027QxfnTYpJ7Q6ankPPZDMlZEIb+Tfkj4b/wCn6Fcpe0El4Yp6eRpZmAmomhf4tiAsjS+3wP3JYiA09C7CaZSsXSyOUv2HbEpCSOuyarZda+GNGSEx4bHZKTDMbYp4NrwKZA+TgXoHNIS4Fe2nyiJw2UroThnaHQO1+wgr4Hk0xvTSFsiz8A/sSJ6X+CcSQNpCcV4mfSwZHeSFVfbya9GskFoTMMiojkRGy3o1KY95ODRNP+hv/wBDKhE7ZmkI8zmxRFptsyw3wUUWRy8+C6J6Jn0bnIiO1QndxOUMvMErUi8neZJPhnVuASJojlpfwMDA/wAR+hfbaIF+gY6ExOBeSIVIT4GXLdjxlCZKq5JT3JEcpGuQyhOTxnkM5KOSk5gRzGxu/IWJtAs6wIOsj2n6GQKB932HJlyl6RByv4UI1nytiCFvSPvk49Vka0yj8kidikSxIjLuBJZ0KGPkO1EoybtV0Str7fpJDFpIujZBhrkUwRLh1KQzZhRkLfySa9EZohUb/fXov+GxMRToYNz6DzxfI2zFSJupD7PaeRo+B6U0Ia7HyHcE2hKaZ5hEasiciTY5DxkSjaJiEB5Sf8IWS5E/0QbK7YmORIQEaJEmVp0ZKcJ+JN6YcNoFP/wQ5iOpX0PpmHL7GrqJELkYsCT5DkcrJP6BxwyQGJT9TNfbogj1aJFb06hatMmogf8ARgeGxQGG3JVsJJLvslKP9JWYowwlzBVDuO0YX7BJxFwQrn0sk4FjbG1syUf/ACja/wCDofqk1v0n9DRgfz6acfW2hDg9ck1ryNZyNZfI4Dj5Go4mDkd7G4r0qkp2Hvuw5op2ImhZ9GAxxxtuhJJQlS/4Uc+q9eII9Z9PQcpM81wJqSKnLzct4G0zVV5GTBb3I67vTGRzaJkOqJVktpNku+8DquXYhwsNcDipNSxuRpRN8EDDb16/4aK3n6cJIrIMD0Vd8s8J3sUitJCEnMtWCpHVEIZZE0eSyRqL8lqKJkX2Hk+Buh6iA9n7/wDD0LofpP6kb9Mjh7QpOyeLKJR7jGoo43Ln4G87CXTFJZocJK3yWMouci5KuYn/AGx/xI9PIjZj9EiGY9KMC4P0OGRSUqF4JLROgm5olMmdmkWyqRlH0W+C7tk/8i/4j9I9MG/1Y9GRBBgTJ0KKIxmxTEQRKzQKKMGnJn7SLnlvCLb5OvH3s/Yx+l59YZBBIwdDsKjBL/sQYFjsWwhfVW28v/j/AP/aAAgBAQAAABAHh0dMlUu23XN7NR2T6N6z0kY3wXtoVk0xjT5JGervyu+HxiIcf6oiZFAmqaBRbm2QZoqAhNsjo2AVcMWEYt2ak8JNZ/vOf38MzSJUOTzjrL9L8zj7iC8OlT2m3oCqDPJk40VQrH6DX1rFNAX5WYgpnHlHhK6acOYWRFQR9XSPWi7rvSr5pFIdTShnydXL60jIOqq2VZChyhZ7rgGcWjoQ1IXdKxq9B68+dZ/PKxDipP8AXknUPSb44sF2QwgsmPs5QOM+SQzmUak8ksixHS2ZayVOKSeHnHYzZqHMiSvpVJDyWzqg357aHmQq39/IEYUlNgQQru44eT5e1a7d5sEIqxo6kcgAN4elwGBZE7CM/SZ4AoDu8HPSydwWUFCJoEefdYhVksKUj850Su5kcHu9AZ4JTi8nIDx8Y6Xp3Bn4nr+b4H/W1vo+K3Z69oFnhpV2Hz0EJf8AsD7nBs1GEFx+yhHDLjdP86e8rbnb7+ZCK8HBqO1e71xdCVRe81Xr4EdLf2XzocC7kQrHzf8AYHC2lWyxW2SAmbSMSQmO' $TestImage &= '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' $TestImage &= 'ggZvcAVQvacxQ3d8kQF4QiqEcVoZmxsbxcLAr8wGFWppcQ6l0bZO8RpYDA+IutRvzSFDgyDr5fMqto5U5/qC2Ta/3NEcVbVPmIE5dXlwrFbVSHC9BHeOpVsrM16GvQ17Tl8elTmanGJzG3qonxBFusyxavMqVzxMqfaDbsuPtViOsGeXjywbl5G4NCvLw94OqHvj9wLJTxwS2inCwnDCvMalealWZDuUNjt76joMAd7hKKGnDqFW1i24bSy2bWpSsyruC2329oM+xRy9e0Gqrkr/AGINCrtVMbF5XC7muidB+kRq/UqWCuMgjX8RIuiG3HsgdozOUUKi11LccEgzacrqCtXV9Zdbq6z4igpTGxwiRbovFk0XsXTFlcNuvEKhv9oLELatrxES3DaVliIJX6j1wbm51r4mYJF03je4wARvdR2Sj1PQywzOZrmYX049ExLdGBey8EyGKOZ7+hcMZu/EsixXglCDfIfiFLZ/z2hxwPVRbfRIQeypV3UIKrHI6gAMDnDEVFsfOYHP6IsWlw04Y5qVVQZWnUF0jb3MtGNxRJShUiEKbGFbzD7KrD5iaLsNaiW5L1bqFpvzZfMsJmSm7YKAB6rXwyth0ZpWP5i6lDOGnplAnPAvPzHEWsoq8S4TIZzqUVYOEcRN10PMMjNNRhAA6iJmFuswBRpvbLOw5KlFhc8EqZeJiGqLS7IlGbKe5ltSLWCUz8w3GENpDENjRwuK+jLhY7vbNeZuqlfT0PQN8y97nWJ9oypoh7xPMoZzH3h6XjPpRsctePMVA8rgqUEZ8zMAvJX+INOEDwH0IOS21iZAip8kKsUdwqC48kCo0clVZDU9QsL9EpasAupjBLhs58QCixu3GoY3kLw7jUUFOVCUIPStMwoAXYlQdZI3TM5gFZBCWFPbdXHKvUStTcAtoikP8uKxUGEc74x3MnI8m/8A2XsB/Eurm9blQ3ry5jQZZzBF2WbrqIFxt3mAA2JZUbYfeDcNkajl79TJADsqUBCowpYvMaAYdDi5mPLBdVLWtZDV2zFqlhFVECSoFLjNtxWDeYSvQuB4hyQhlJsqU+juVKKzU54iLvGpValEu4UuY6mAa3KkovkZasU9/wBICqvyWY2mTcGtodu03zS8yh7MMmJQbpOpRcsdxpoe4KLKB+YWGwGaYlKWNx7TyDRC3Nil2u5mrlOG83KKseFKIRFANNtTbTDK6PqwAQoMnjxUCtSrJ/CJokPKvtzKkB6FQ9iGqUbHV8zIX9W3m/eCYyVdVi+JVKXXmxAICoUrQeopkLTETdoD9Jgh+L0SjFWmbE+kse0HC3fEDBoXqWBG7O5gRVTIoHqHIwuK4epXlYj5UcCbGg0Resg15mccUKuyChUIbnmUcz6yr1KuVmcz3lxfTwgG72eYPVZmPp1MBnmOHEaDE3vPvEAzXtBXBL63EXABdQXViniFSq2I3xCLLNtOi4SzuyebYAUCFJALoFaz4hQ7HnqBBS3IMwpQ0ym5hje+typU97nOAVRiWAODAcw1LKbvH9xqsAG7SEF7BrD9JfT3uzL6y1ul8pX43K0tNYZmeANBISNHCgvvzCiy2jR+GPtLvav1KCpMX+YQVf7ysWF5YYpatpuIjg2zKGc8yhPP3gOCy4KsKHjPGfEuaMjXiOgtkYKNDLkabNjzDzujqNjLn5RMVPaYQBbOo4VMEd3BTaUeiZhr03qVmVOMSvRlUT2mm7zcQNTX/sIuO3qZHtgW4lDOfHEKhsOzicwgeYC023EVEytahQahWN5iOqqvE3oLtCl2f6pZgFHfmCoCplwq7McMI6Yt3rERZ5DRn494XBXC3v25g6lpWgxKEeZXH2gaJlKvARFYnkAb6moAW0ozBII7PevMziimkoPxNxYhaUf4h1O0ZsV8MQVtwRa/DKcoFLd/Zh4IpTSUy4Us4sujthjOHHEfIYecTFoLBppW+BEsY69P8Raqx4jK8GGosi8ceJhnLNMQA4uFoUHC3qGIuzMz' $TestImage &= 'VyNiwFmWNhI0iAA8vMUBqrfaMiBR2rqopJu1FS+oIKGu4GJmqgczMrmV4letR9DW47g0y35g44i3hpPEGD8RyvHiACwMRrSqXEosYaseYJmRruJZVryygKnJPMIgt5HxNIbrTuFSne6NRBy2d8QECaRqAt2yKzUto/HtHcCCaU3cFwRo8fzLtkiYEo/ubIVIdWv7RyfAZ3/UK32KXZV/qOl5mboqvkgloGmKpLhUfEYYgEtyZZrrURwg0Fx+oREKuTm3j2YgqisFub8RgsAvdjMVXpOpgXaPK2+5sZEp4/uXTGF55+YAsUVkYY8hsE4i2q/plFrBeIrI44/EqbF9FjhvkZ8TAEF4vqWFtrnmAWnUolAWTGo2KxD5aocpvWClL9L9oEC6+IGP+DU0zEz6EZc8X9ojKzAKVzKW8wW2LRiUro3D2W/iWCaqB5JrmKwaWqxBpfKEFXtR+0IxnLa/91BKYCYOIeXFpn9Rg1G8gc+ZlB2Kziew8KxEBR3j3lPO1vlCWHI2mot0l0+ZR7gY3eWWX0C+Th+lShVA6N/XmM4Wg4vMw5BvWP1EoqlyDbzDjtOCr5iE35aN+Z7foKv3ISLTTJj2g9iXiqUxefeUs8q7SjTse/ccJwJscOLgAab4u87gZbdMShkldTldIpq9w17Me0JcNnHMS2r7nMRhbJuUwNGnO4RRb7hBpaYCMUCwD2i2I3zDE9H7ojV4kq299Qy3RLusn/HE2z49CXF+kNziPn4lXy/JLE5pwMv4PiGh3W3zCwGNEpHVexK0Gc7YoC8PzKAcrApTHMzVLwNVAbeac9Q4MC+uYi8uU/coiU4FeJfajY0Gbx/EF6o6Vy+YLibO+oGNhbGc/SXiwcWxAsgYO3zKbJVD8ohOOWOD3ca5Tyrp9ozgMbGDsEvC2RWAxcpQM8kUryDG3uCIUHI9NRocpb7PaGCGuF53UvoNGTsQdKG1b1fvGSYW076IitKF03BVADr+IWzYgoikuhuuIoRwXuLPDWe4J4BLpJUBKUYZkt9fELgVijruFYSxhmVLlgIdnafmD0YRRr7pr3152uctSoty6iJmvk3DIJGcQ9Tv0uP3nFMEmNS21BAK1fiCWGPMAjb5ZRlY1xBgVAbO4GWkVyS6utZe8sGE8w4MqozzDDcU0xbByZgbFpQWZLFaJUh1i7eY6RGlPMSORpzUC2dNtxGbKZW7vn+Y0FopxTTvzKtELlvzBxC+Wgi0J2tpdcxYEg0LL4uot1m8Fn2Up+I5sEHuT2iF8V6T4h3IozbXiCXNVmjmIXw+WVwQlWYfeDd/I+8NAAQlZxEkSm1HfcWlV2U1h9oYFuuTUI9UyH7zCy8pm/HtChpui0Bwbxk8wcBtT3MC0HTOhi1WEWcY3FtCImu5TRChmJLpQ7eSLYA5bjpGqai2RyYRLT6PK8HbK7jXhSuEfBC7ahSPEVHYjKTpY6ZcHDPmE4nOYR16CeKgeUeU1MEweGCcB7sDKtEy+W4l0vDqOPUN3BZo3jOYnmbqWKNUfKLTjUGqYOu6lmeVIxU3jHMALGFiBWIVr2jlaMV3KDaF8GIGqVo3WIXuNBl8dTkIc5Kv2vn5htJqVde3EbQl5N/0gcrtFNP8QdosZ8HV+GVNmcpwPtDUDyFSdj8MYgUNyV5de0xck0Wx4mihhbVwrGrFt/YwUvJbh90DtjXpsivXgqwKuPYtuL/EZoiXNtHGYE3t1OiOlMlVElZYoa+30ljYGlOYglt0MzLYuxilHtruKrVhYkW+3jqZQY3Vywx8OZwOxib2xMVYAQ1K2OYsK+MzAM7ocD3FoVY0FMlOGu4o4MOr29nkmDSm45uc+g3Nw4nxNTcSYiEl+HcDjTk8sOauw2zVrTy3KKAA1/ccle1sZkhMWkzm8OXmACZThgGqbu5kbHxCiRZl8xchoxcABeDUratdMc2yMVUsExcn7mANy8j7kIeYBp++JRaGeOUC1507RYQ+FgyD/JCjArlhtZBkv9RcIs6G' $TestImage &= 'LUvYfkJjXbOXHmIm00Jz7omod1rX1/Uao7aFS/7hMLPocfOlTFNxs79j+JaMm1IKC7e+ZfRAOdW5iEA2c+JVYVTX9xaGihQu7gtQhabNSgOQ3jmValnjUOoCC0WjWHzF1ChVIlaSnLGXAw9yyzXiJuV5hwijiULSjXwKfMssQUK0Tjt8StG2BeR4u4ujNk/oYxLe9lNam6KqnoUPtKxKz68+rNPoZFmxaJRRK930RG9jKkpIwrbK4beLiDlR4mOX2jpTRiC0ZvNwCOW5iK+HTE6LEt0e1EsRwZVC4tIAVGgLi5957IjzLEWLaO0zQt6bmwoMYamavVXePvBCr2OYEgjjhnm4HHxlr8QirRhdXA7QKOw+PEzDW3deRLwXGLYOn6luAo8DA7HLdpB1ZQQvOXqyKIoJesH76hOi0yVPkDpIz/ENZz7Jn5mgW1xbUo2LNAhd4I5zLHwSBMuIgytdIWmIkMLddyzenfmZKQSt9YlCau+ZSqcZXvOVVbpxDalWwBJYADfMWbKHTKFw+IdN1KAZXmY4tpgA4sbJdmFT5eCN9TeYra8vxL7QRbDrPvM7YCl2uX7zicSvQ9fPqpwS6PEI4KWkyi20zFFmq2RPUWiWXd3z4iWXlhoX9pdmZq4JbS6NQPCDiFLDDljtkX1zEueDfuRLaFC9r4iAViwc/Lrced4Bu/mYLOrlTVZc8xmwQu+0A5yxRGVDOnEehDsVsiEsuX+/EICY2v6h7bhigQ2ohSvInMBMpSODEdFl/R/dxUI0Z5CFjV8gYGNopcmPrLEdluq6RmyS1LWOfGGvpK1iZB7gAlirQqDb33LCCHZBCW/RcNxmFXxGe4OOF6jdFBhjmItfGTmWyADbWamCnD6szA6w9S4t04LSXxsup2I7YnDFnMEG6CZK3jEJRaXaex2ZgVk4da9tYvicoQxaObYvpLtWv85g+/zZZ5WARA4lQJ2Qwzg9PDEzNERQcblbQopiKE1RUoJeDDC0U1qu4QUaMJAQAPL1BSVd8GycwRWbltTZAtpEbfJEemL11LDBRteZdB8iqIUjiN33GL1MvFMekymalnW9faXoIbfmZgULy8yqwKYCj8Srd29tw2MSUOsQFAQMHB5mIZActn6S4qOwDZ7wxqgVUNA0heFBsikqvXiVqXSojQvh2qYZd4zPoLJp/wAQnG+gl4e/iZJkIvRrH3lIAOfc4fbMDIcbNccy61sB2oMQa78HxBZ5W629Rgs2alhCr3bKxnB1zLWbqtVtiVIouDEzFtecTIweCNFk0phlKHBcyylVgFq1FvZGCN4/Ca+jDI76BDKDALV/E4HVkFfEpM25ITdZUJtxAzKxKjHiJ4ilp7+ZYWOdkN6ZNB1CISnd0YuU+PQOvMtH2gCspfMbuQZdzOS4LS0Bk+OYUNKa7jaOabpwsOVDVC8Z7m4jBrYZlhcZWNrAU1XOHxKCqzZZqO2j3EjKqGm6fpCpb6OInQ+S4PVFqczRWWhOZUTF1/MH1C8mx+sp1m2j/KjxzF1MLJHZlX6h43WgxZcpsJh8lQ2plGRg4mit0135mAFt8BFgFyL5fxfxLgi2mbHcWlYTtO7PxGgl1rHjzDgbHiAicqzArkNZvSxG0QwoHTDXJTctDKwsigaNOniEWzbwlXATk8Zlljz3wxTsddw1y2rJhitTyvqIXnD4hKPcDAt88QnZABqLfFNxhZ6sQ3jTOGkdu2FCjR6e83qVOJjiMZURa1bPMqWGX3PeJkI2N2OLSFv8jTV3KFWTtOJb5Me0pvt1eOGAm+S/mYCg4qA4Upn4hmJTwoIA93hNQbMBfPl/qINB9y5jUAzZmJWrPIfyQGKTjUKI04xDUrXZgl5TZo1NyxoP1nmhOT6QosPJbHvKCY6KGB/iDBgwhNvzWHMDKXAaPiLoUwqqxkogWWY+Ze6DmlL7wc6j4H2lRRxADY72dE1S4ZM+WMzKwDgrb1K0KFrUBr3WGwJpS17R0R5HEx7Qq+PeDXYrXqZB' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= 'bLRd8ykA2dwqw2/HmOrJRyNv7gbeUXG+33YCWYDe8tUEVIiXbwXQRzA6cKsUW0svq6ioyEpyEGGa/UESl+0CsLdsWjmfqlHYAs+F3ueGlQ/XLEREnP2W5Ub+DH2gHpxPb0MTc2+vzN79OZuanE59Cc49NQ9H1y8wlTqpdvfmI+9kVCbRpggRW1w1s3CMlQ0TIXVcXMxSHCXAktyJpg6Ly7E5lgEVGXxBGI5o2ShAX+NyibTxzFtFvm1zErhTWxlACOt4bipUru5WNp76g1lOc5l4vAiO3zL5IaVDLX/v2jK1ALwhWYijKzVCVZEONdXMbMaMXo2UcYmkde9KSGt+eD9/EC9wVKxDDmEupx6GZeZ3D1ftLhfH/HH/AFqd+jqGMTiOG+Kg318wuZ6cQZijnUtD9ygI5mZar2yxyoY8kLveZpUvoSnZ0nR4hDStln5joAtFAafWWY0LszuGxxBIYN2cJUv0t4qr+kQIAp2lVGNsjtOZaATtI57B7xrK35lDvXMw2KtsI3U6YjeF5ibDw1Kq77lDqXBFEeOIC4V2c25r41A9OPQjHUvr0+ZWCHtUuXiVj01DzOYTj/h3qX/xUrM43G7squYs3zOTYcES8ai25lS6aXcSlYdToFdbgrLtq4CvxPfWqhqxmLxLNlfIRGYbDDQsm8t/WJa52pOPfbBtaLMAr/3iVpftNHGoCXucBYv8xAxPVE2Gw25whQsXnfxMBQfMWqynUxcPVbiYxwLMYW5iuRvVzGUrKWHtgnbCzijR8tTmGCX49DfPoXWZxU+Zpn5lmEvEJxmLBrU3M+8Hz/w0Z163/wAM3L4l1dl42upldcxsqsoZHPvLz2QDvEBOGYBTWJgZzAEvFzG5Ou5Qob4GX+EHJY+WSWtqC10buMK7WC/n3lHLZSnmXkcmnn4gUWgUOW/xLi06X7CKKAXeKzfXmOAts7PtGQUnCVe3cWGa3awWIOCaCCdPZlmqLdUGoM2LARXYrADDHBFKO+brUBAEpxXUUgRbDxwfv5gYzKnHpmaupbC2cT/X6HtNYjmMzNel8Srb4h6cx9GXzPf0N5iY9PdMku8ZthijxcUsuvpFBYt7D3gHm/ifmJWmfeYWhLQNC+YFc06zxF0qkySiFUewnmYhbBbj+JQpVd2br27P4hYtbAF/+6mQEpBDis4loACpXbMQsFpnHtHSAMgOKh009+uowBtQtJkAVYTLXmILpSxZpiKsXRwZjaDe5nhEbAlxeIvmGlOo6Q69wP51AVIADgPQ1NE4m5xLuPv6ayypbDia7GNkuXR1McQ1UvqDzCOyeZWKjg1mckqXmG44IT41DLlZepzRi8VKr24smzzbuePMSNCFjzzGwR3qGyFFTcUcP3iqJq+ptd9L3DJbjSY4ojFZxfb9DEMY6uqFl1j/ABAq4oKjQxf415mXDUpSdfiDsQUMvJz+4WVsWjBiAAyKWeeJYwXyDLBIBlQqoBhpLFevMZXdLg6sHS6mSNGwCLpIM4z7s+IAybgYEJkvw+HpzAm4no69Gal17TczDHM4nicf8HoePQ+kup7w34Y7hlhuOvRSr1KpYVLDdvdLQOuYFaxUHxc13OcCxcHoblfmXTHRnXmAW3khFs3uVio3xfPvCAgN7eT4ghQeH2HqXZva6tp3LArCODwm81C1eQN39D6ytaO689QUWAzpiHGDhgra03lmOwHRvuK0peKMwO6adwwONjPEcfu8xHHlmyef69DM5nEN+epeaqa1G5eY+l+JbLhqM3qXfuS5xT6cED4qe8MBLl+iTmEEl49EGKX4bJaxpqBRmU8+hfJRxU5GYuw4i81BdNmc1cQRfMSnjPmIjDZ4iIZqBja7jCx2JAdRiZ0rd4NhFwE4xeIFSaULDCLa1CcZTq4BbMtUyxV41eWULOqJcOC4FRC8+INJMuxjsNN9RCa9peXAEG3af4zBgh6E43NZj95eiPmEfPrvXocYjr0Yai36YqDz6/mBGj0dzMu5uMaYWmd4' $TestImage &= 'ro7lY0vucNQynucLcdvo3fjuLREUQXkz5lul5xK5cRCxlLguCjEar+CIhlsxGNwtWLhm8E4izzGwalEtqZQe7FgN1jMqpVn4imlAxgjWXtywy43uohkVaFxwNRhN+f4wAAAAUE3N+nBDiO4f8fMvzMelwziWk5jL59H0rEJj2gc+jKiSpdem4sat8sOgqOFmyVi6y9QyyH0qG0q2r1AbyHvFwYnxMO5tbc3nvhgbCAWvllEpLxupW0yBUSi8xAUiMK2s7uIWVqHcm+7hm3vwxzGD/swLGeZOCOqt8OCBLlZ0ntiAJzjj2OPzKxLqFhD/AFepd+Jtl49Fx6349M+hG4f4jmG/+DUdznMy3LlytVK3Er00Spuc149M8RTzC3Jj3gI+eZTzLSn/ABAnLiOfaB8A5mc0ynfEOz2hhkhvTfvGjuGVpctXCbXdelgsAezBqAV9kAhj22waYmiYPHb4ioTbIXtfSvpCGeJxVw9DE/cfRZm8xfrNwoPQOfRnHpz6YgQJjuXLsalVOZ7EOZeZp3LxU5n/2Q==' Local $bString = _WinAPI_Base64Decode($TestImage) If @error Then Return SetError(1, 0, 0) $bString = Binary($bString) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\salvador-dali 528x528.jpg", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_TestImage 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 v1.1 ;coded by UEZ build 2017-10-13 #AutoIt3Wrapper_Version=b #pragma compile(Icon, "c:\Program Files (x86)\AutoIt3\Icons\au3.ico") #AutoIt3Wrapper_Run_Au3Stripper=y #Au3Stripper_Parameters=/so /pe /rm #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_stripped.au3" #include <GDIPlus.au3> #include <GuiConstantsEx.au3> #include <WindowsConstants.au3> _GDIPlus_Startup() Global $hGUI, $iFPS = 0, $iShowFPS = 0, $bExit, $fScale = 0.2 Global Const $iW = 600, $iH = 600, $iWh = $iW / 2, $iHh = $iH / 2, $sTitle = "GDI+ Some kind of a Kaleidoscope v1.1 ^^" Global Const $fPi = ACos(-1), $fRad = $fPi / 180, $fDeg = 180 / $fPi, $fPi2 = ACos(-1) / 2, $f2Pi = 2 * ACos(-1) AutoItSetOption("GUIOnEventMode", 1) GDIPlus_Kaleidoscope() AutoItSetOption("GUIOnEventMode", 0) _GDIPlus_Shutdown() Func GDIPlus_Kaleidoscope() $bExit = False $hGUI = GUICreate($sTitle, $iW, $iH) GUISetState(@SW_SHOW, $hGUI) Local Const $hDC = _WinAPI_GetDC($hGUI) Local Const $hHBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH) Local Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC) Local Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hHBitmap) Local Const $hCanvas = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer) Local Const $hBrush_Clr = _GDIPlus_BrushCreateSolid(0xFF000000), _ $hBrush_FPS = _GDIPlus_BrushCreateSolid(0xF0FFFFFF), _ $hFormat_FPS = _GDIPlus_StringFormatCreate(), _ $hFamily_FPS = _GDIPlus_FontFamilyCreate("Arial"), _ $hFont_FPS = _GDIPlus_FontCreate($hFamily_FPS, 8), _ $tLayout_FPS = _GDIPlus_RectFCreate(0, 0, 60, 16) $iFPS = 0 GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit_About") Local Const $hImage = _GDIPlus_BitmapCreateFromMemory(_TestImage()) Local Const $iW_i = _GDIPlus_ImageGetWidth($hImage), $iH_i = _GDIPlus_ImageGetHeight($hImage) Local $i, $dx, $dy, $dxo, $dyo, $tr, $d, $t Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW_i, $iH_i) Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap) _GDIPlus_GraphicsSetInterpolationMode($hGfx, 3) _GDIPlus_GraphicsSetPixelOffsetMode($hGfx, $GDIP_PIXELOFFSETMODE_HIGHQUALITY) Local $hTexture, $hTexture2, $fRot = 1 Local Const $hMatrix = _GDIPlus_MatrixCreate() GUIRegisterMsg($WM_MOUSEWHEEL, "WM_MOUSEWHEEL") AdlibRegister("CalcFPS", 1000) $dxo = $dx $dyo = $dy Do _WinAPI_BitBlt($hDC_backbuffer, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $BLACKNESS) ;~ DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush_Clr, "float", 0, "float", 0, "float", $iW, "float", $iH) ;erase canvas background $aMPos = GUIGetCursorInfo($hGUI) $dx = $aMPos[0] - $iWh $dy = $aMPos[1] - $iHh $tr = ATan2($dy, $dx) $d = $tr - $fRot $t = Atan2(Sin($d), Cos($d)) * 10 If Not BitAnd($dx = $dxo, $dy = $dyo) Then $dxo = $dx $dyo = $dy _GDIPlus_MatrixTranslate($hMatrix, $iW_i / 2, $iH_i / 2) _GDIPlus_MatrixRotate($hMatrix, $t) _GDIPlus_MatrixTranslate($hMatrix, -$iW_i / 2, -$iH_i / 2) _GDIPlus_GraphicsSetTransform($hGfx, $hMatrix) EndIf $hTexture = _GDIPlus_TextureCreate($hImage,3) DllCall($__g_hGDIPDll, "int", "GdipTranslateTextureTransform", "handle", $hTexture, "float", $dx, "float", $dy, "long", 0) DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hGfx, "handle", $hTexture, "float", 0, "float", 0, "float", $iW_i, "float", $iH_i) _GDIPlus_BrushDispose($hTexture) $hTexture2 = _GDIPlus_TextureCreate($hBitmap, 3) DllCall($__g_hGDIPDll, "int", "GdipScaleTextureTransform", "handle", $hTexture2, "float", $fScale, "float", $fScale, "long", 0) DllCall($__g_hGDIPDll, "int", "GdipTranslateTextureTransform", "handle", $hTexture2, "float", BitShift($iW - $iW_i, 1), "float", BitShift($iH - $iH_i, 1), "long", 0) _GDIPlus_GraphicsFillEllipse($hCanvas, 0, 0, $iW, $iH, $hTexture2) _GDIPlus_BrushDispose($hTexture2) _GDIPlus_GraphicsDrawStringEx($hCanvas, "FPS: " & $iShowFPS, $hFont_FPS, $tLayout_FPS, $hFormat_FPS, $hBrush_FPS) _WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) $iFPS += 1 If $bExit Then ExitLoop Until Not Sleep(10) GUIRegisterMsg($WM_MOUSEWHEEL, "") AdlibUnRegister("CalcFPS") _GDIPlus_MatrixDispose($hMatrix) _GDIPlus_ImageDispose($hImage) _GDIPlus_BrushDispose($hTexture) _GDIPlus_BrushDispose($hTexture2) _GDIPlus_GraphicsDispose($hGfx) _GDIPlus_ImageDispose($hBitmap) _GDIPlus_FontDispose($hFont_FPS) _GDIPlus_FontFamilyDispose($hFamily_FPS) _GDIPlus_StringFormatDispose($hFormat_FPS) _GDIPlus_BrushDispose($hBrush_Clr) _GDIPlus_BrushDispose($hBrush_FPS) _GDIPlus_GraphicsDispose($hCanvas) _WinAPI_SelectObject($hDC_backbuffer, $DC_obj) _WinAPI_DeleteDC($hDC_backbuffer) _WinAPI_DeleteObject($hHBitmap) _WinAPI_ReleaseDC($hGUI, $hDC) GUIDelete($hGUI) EndFunc ;==>GDIPlus_Kaleidoscope Func _Exit_About() $bExit = True EndFunc ;==>_Exit_About Func CalcFPS() ;display FPS $iShowFPS = $iFPS $iFPS = 0 EndFunc ;==>CalcFPS Func ATan2($y, $x) ;~ Return (2 * ATan($y / ($x + Sqrt($x * $x + $y * $y)))) Switch $x Case ($x > 0) Return ATan($y / $x) Case ($x < 0 And $y >= 0) Return ATan($y / $x + $fPi) Case ($x < 0 And $y < 0) Return ATan($y / $x - $fPi) Case ($x = 0 And $y > 0) Return $fPi2 Case ($x = 0 And $y < 0) Return -$fPi2 Case ($x = 0 And $y = 0) Return 0 EndSwitch EndFunc Func WM_MOUSEWHEEL($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $lParam If _WinAPI_HiWord($wParam) > 0 Then $fScale += 0.01 $fScale = $fScale > 2.00 ? 2.00 : $fScale Else $fScale -= 0.01 $fScale = $fScale < 0.05 ? 0.05 : $fScale EndIf Return "GUI_RUNDEFMSG" EndFunc ;==>WM_MOUSEWHEEL ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2016-12-01 Func _TestImage($bSaveBinary = False, $sSavePath = @ScriptDir) Local $TestImage $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= 'jXyQ42MdQJXOTLvfQ/lwOSXl0YJPJFI+CEln5HZayE8seal+Ci44Mn5DtRSxIssd50eCSbUvQ2osnTcUJKJHmKSXJhYuYvsEvSCZkQhCWSMkw8jVKPJeYkSw3UCcbXkT5YNom8NrwYFshW0JlzJQJczlvBM5og0oYkU/fsXBA04H3GuSFScbQyTL67HE7Ivtx4GPHuTak/AjaHse5C4E12QeSNEvsrHci+DieJIuSrJMk/YR6SEA04NehKfJSBaGJHuXAgQ3L08jSjSVQU9zkJNdCyORM49itpLiyfLp48kywmhNwiqsIWpR+BTFvhkVaspBlOVokcfDFyT5K8AluWPKm1sazFEfPBeRSRNDS4gcg2aHOA29H4InjVFilhS/sro8+PQ/h9WCI9LYKi0RNiH8DBJqPI2iYFlGGODBQ0u6FDKIY1RKnDFVyvyEKmaeBjayDGgdk5ZdoPGmj8ZdtNsmDIrkmNRv2EGRNpppz0yVlT4HMNLQoxsS5zHoGuCNilCW2v49MM4HbNoHMkzBtyZFTii7EtOWaURWIv8A8hYTJ/yNCSER4citSL6aSSIbREv+Cihcjgc8CYHRU9icktmcls7FCgWvkcA6NoyXJlJN+xvU6ZsA9pfvDkqXloi7ViVllpNklY2TqcMa/Bjw+imwt/yGiUL3GFheiLpL+i/+wQdrkVEK1wNVK+x17oVQRmVoTfhyKIckpZGfFCRkSvI1MsdL3JpejUciSKXkkR+9ihMqh3zJHy9I1KTEgp/kojErd/TcsPB0PkLgbvBMCvQkp/osr0NygWBsVVkTPQ545SG7VKzi3+BvaaXsSi0cDJeWxu8VBMoSgSS1jzkmEq5Hmw/Yast72Kil5Qcht/tElJPUYEpYK4pinTp/uMYSt0NcYMUyxJPnoUun2MmKnihhvJhi1mFCz2sE64THNn77IKJTA6Y9TaVfBNxqUvpqqkbvv9hkuhOZMsakwERcFhNfkzNja4G2t3JGZY6wM5jBlrL3JN38inTnyJRGKgwUjsaN0J9FDIxEJKdIZanKfInLB77HuZ1JOFodMd2Xyz3i1oycTQ4IU/cvM6WzkNDpXvBzYqcsRaE9FSz2MbKhy2/Q3oS+Zn8DQma1kGhK2TTETEpV2iuidNYlMk6u4v6L9NtsnbkVBKGPKnQl8kRYE7EyURM1DIkXMzyJRvjApGovyOyFqRQ7CTa+Bql2Ii1BIUwNEV0MLLY0lZfyGTwvYxNaXRdfI/8AkR7Ej5h5Qpr4Gyk0I3wJ1nsmcjUWRbcLQrwJobThdE5F2RjkS2RZdoU3kSXKRsdL1wQJTUSeL4FqSaPKYiUiDIGaRk4hnwfOC0sQkKl9KZkujBgOxSrEFSF4EsMyTElyN6fI4smkhzHyUFTJDkkEkXgXAg3FTtdCPBoyZRZ8i09h0RuMkoUfwVnFDlJEcOA4hR+ROEHk4FLeBWnXGfkVByPdFDakvyTPsU5xAnSZZFA6MBUslkPavkZyErTMBzHONCMMti9k3RZU78hYSSghRLDiGT8hWvpYbQ4rgSaxIoasCUYpI2hTC9CWzGhcDOxEr9WYoUacE8IaE2EVYMEdNMewQn0OB6FHFwHlT2EumztjSlovAjJw/dsSsyky7R4JScVgoJKBWbbdKcjLPLpIoKcuGyi6FERJpbLLB08lInLMSIcyNxkbSWBwMSKkZz5SIPJoPu7NlipyngTWLx/BBqyTCi30R9M0jwx9eyK00QbF8TLKB8GL4D3TzonQPKnBNCaBNUmExkdFJF8FeyDbaWWY34CuVHcxSPBlPCSAbYZELLGumIdSFrTgel14J7DIJiErlrjCLJ3GENNapzAklhXyOjwkKXLQmuQkTA2zwcmRNpBiwlHyN5zKLKeBwcjeBvZSeW7g5HoD5w694POALI+KhrrX1MhUWT52ZNT49Dz6fBan4FcntoSYakqVV+4nLdNEvgTpygytiShycIesiVeGxctIzdJLfA9QG9BDCDQyhdGf' $TestImage &= 'LnkkFCJUxLyoEEFCKnTFyKfIsKFgj5Cz2mNeTG0SkqJjYm/4DEswcCCKJDy+G+Rh58Y1UssLAgPOkSUrdiO8J60QS/qLc+u2oT9i8Hx8Dk0ntEssnDRdpLRV9qQa+xGaJVSRPRK3ElSijdjJeselokPlEF0hFCG59DGEdbWmNuh6Z9yEl5HpucuKYvIhPH7l1qYGJOPKiFFqOzJ0PdCZvDOpMRHwCLgmjCmyrhvyJ4MIez3E/wDMQdumGFixg/EWPqLQtSLOWPS4nVDSMA92NsJreRljAoM8Bab+CavgTpJRTQhZFlYFc6wlJb5ERs3Ie9hbJkuaNTA/yj5Ft/ECHxhspFCp8ECWa8i3/g4j2HHDbeES/wDsE4eCUm5x5IJZWQKyd5oxq4GEfAFDVslS/AWCf3E4kkNTJATWOh9q08DJZmqckucQuy5gVfUUsFTbHh2LgZehqPiJU9icuy0fJFeTgJ4WRXUkWfQRouB7e5oKnkdYJBEsl7WxlKXaKEgO0REM8ktDtywHD0UwO5KpkM4WQ7TkJWEayQTpJewlypH2SjUCh3pmnQ4LiBjHWBQ1LYSYyyOCsk3OQ7E1qKgR0Sik3cmEOnN/XdjD1lWYHDE+xQecGWm8kDCzklM2z8Dc4MwkRfJZwvIqbpKjtUOajOBqU5cDm6cNDWzETWG8NFWTNUEy/cV68hkkeyhjslHoSVUIqBPdL5E3TZVyhE27SHWwXZ9LT2GH6RBYa+Bci+CEeQo8ZpIS/rpv00avUiN8Ei9jz6C6YnWdjn1GpTWSdqWGl0iEwjLLSK1cGYy3ryISvIchDU2pI3ZBeUJa4sSWZWUQ3LsTvIyicbMYjsbTiRxISEclFaZuL8elaf4IWNAmcDtQ0LIJcDU8ekmDdmEGEOiME4N1Kp2JfXa3yJIkHJtkSNQxVoWTNCZwMzPJI/ceB2JwKMsuZJOyteT8CUQ1xaMsdYkxE4fgUsJteBBlKY7GyMkg2hLzZWeBmylJeajQvIakCuSqHTWYFbmCx5BudsUFRTNQyjsyFjrKMZOyQoKxMQU6G5D1QNksdeGZLiMn9hSBGPRDp7eiYHaNPQ0QKg14JKq4saPJZNTJzCysMlJPhsVGujgc3KIzJDMh6nLNYllXsLzBZCygaUuWJn/oEZxnRDTtyKtCzZBkRsvZLcKg9zQ1uXgbdKuWxMZQKeEzqNKcMdVvYkIjJOcqIBb8bY3xYrQhIX2DbghKfYNggygfohYRawqZMhMVoBbTuUhaTaKuyyeODl0xNy6nZhxb/ENJm1TWUSuxPl8jTrJOM2TZN+EE5/YNmnY/8xuEJcyPgJh3/QV/tDJT3JdnAmJ7e4QtbFAyRmyOp0nDCmqp5RHeGjIHOa7Kgs4XJFNG/Ahcv7FZQnDZMYLvodxE0NUJFlBwOQh3sft2qFc5iJc49x7UKtQIkpiSqvITBuejU7kb2sMUr6JHj3MhvL3EcuUhQjW2RwhFzRroRHkbcs6E3C/cZhPA1QPMkNSJDnZJFj5hEgaYpwPOSxrrI8xXQilHoUVxw5F0+y2uiTgQI3Icyx36MhAgxbFbH8hKGRM5GpAnOiKeCH8ARrEZ7E2zfYjVpZ2sQpfghJRxwQpw8ZHN37hE2JjA3sOrdj6WzsJxlTwbLktBDyi5SjRDpJeZeh8JmZb0JZwUkSAKwNA0mjxxNlpDULhfZrJOO0UUm7Gkl7ke4Y0fMayuhjoTrAkorQ/HrYuCjSKdCNq2NpIjYoeUxd6QlOl4aHpVx8ihjvzIkaTtWQaKY8E6c86GpOi8E6lCfgm/IxjPoX3mg5KNJI2Q2CCJdcECprsncqS0hOFbfBgD7glKOxKJwlgXFdtsti+zo/YjJaRdn7CIkS/TMW5FwhUqh60TDrkgPLfhnjYqJYTMBKhKjTk8DnTMHJzD+SCKg/YyUzfYWW4Ask4XDOjoUY4KkS5XoSRJiNr2IckonYyUj3Cw2N0CJqUOQghPHDFSGQEoo3iElsURrjf2' $TestImage &= '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' $TestImage &= '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' $TestImage &= 'eGFAdAoqqUhF8GZeNrH5ABsWGGfIpLAEGxK4HYY+q0SidyRHnZS+JHpVcJEmKO3VNfD2BmGO5XX4OfnpOYw3IEhcoeYJ8ur9h8A2PKLUpKU8svQ34AXFrSWnhaeqA1p64yMvfjiB54X8nA5l+1UCFjwNeWMSQkuMFGTZYyOWZCCQRXnd/csjL//EACcQAQACAgIBAwQDAQEAAAAAAAEAESExQVFhEHGBkaGxwdHh8CDx/9oACAEBAAE/EKReHz7vMcrJ7pb4mLz9Yvll3eJynFLOYK95jAgGeWBSrLLqgD7wVGR+Y0XS6whaZ+OoCw0IURDnJBCk5mqtLm2C4MLyw4BY83FTa6aMQV1dt3rmWJ4sWyqrS0cYjlCw1qgIkoY15iG6AHvLaPdMDBcEFqh4lwVGwO44DyAfT941kKWRQPEtsMmqD+44inZg93liulDlYBGg0Ol4s6haQGdGXBNQ1Rs6lwG4CDwf7MsFFLr/AD/ajgclHdG2WCvRcpcdFsul5cq4gWClCLkawvOMMbg7Iq94PEtuFs8cT2QXMuXHKXZcv19pjmPldxtBzup4Tz1B61+Jg3MZbjonMFu8V5jVnPgjeNhS0jSi08wwIh8l1NAOSDMOtrdIA4ynLKhoXTUCysuJaCGjiBTtWKlaNUOQIIrmXFwbEWx3FAAvFAM0lL1ZKFlFtJxNyMndywF5OVmyw+sKXV39oKbRwS/0aqUMBRVce0egBz0dEOJcFbjFNA0V/YvghwSl6Gu3p4jFlrGLMPECM26eWIktN/SClW9y/mIEwqoP9W/iG8oERo/35Zf8AVC9ind1/iZLDVvi8Sr2VxqX6K5N3oPi40LL+y4huEvBxzD3l3Cc5nXpuXXo79OdR16FlKQW8R1MNXLVRdS3V/Mu8d7l8WL7wlFl6kpRWsvPxFRWDeMEpSD5IeVb3MlujZFgdjFTMgqzcEYbVrMUhvZe4EbdD/BMRsHgmSzP3qAbUXWQzEcl3eQLqIKtQwRzQReb/mBVBU92JdWJwoXNUlD1AtLLc+0LUNDfcDGwHG5VkR+SLwrfUXHR7Q0gXYyn6NhW56O5moOF5Hjwe0uoBv8AQ4mRsBcLlfYiUsNFLDQ8sMs4Jnnv4/cDAQX5Of4heHurvzzBuLyPOFlNUZz53cz8G0beUILWF9v/AGBOCtuoFABiez6GvQMehxOJ7ejGdbm25i3MHMStuPMp4lR8xLCo9HPg3CCIgd/mJAQPDmG5ZaDuDLE8RKP3ayZXgpHSDnjfmDCreNs4S15OI1UHWcdx5JTei2Urr0xo9iVKQ1TwFy7ZTTOZS1RxQhGCtBrCvtzLZbGdcTcXF63FX0eW2o5QAeS195aslXK4IwwBXDzM67WucSktRzjcWVTHErsUmoRyj5hmg2aqcUYe5hNkKiHG+FQzONi9zwRLp5jgdvUaqsuSAtWLeVS+9i64CEu6vAP3YmUNT6VARFmhacRq2wHq3EzbJXfI/U0vjcGLds/1QnxL9DTLhc07hTNRyVNu46ijYt+ZXmaqZG3HvLvUdLohRkvULfac2lXya7hcYg4Pyyshh9qF+M17ykJRZuFUmb5dRZCeepQsFQy5iRbY4WplhVFhKg3jUFQtvB1NQV52heArFZf8SwoQ8f7iaIHJ3MFW49pnFA4sr/f3AqtO+XBLQyG1YqUTbkLzAKCI+IYqcboYJKGDDBMFqlUkTbW+ppKyF5zADjBnVRawOrJcRtSAJfOmJzui2z2hpWArRavg593EtUFXblg6ofpe6czBzZBWc8+8sPvGbBBUGIRA2+d0TIrMh9pamKH3ZtnO5o9D0qcs95vUN16b9HUQmbQfmLJUNxUd1LwltZu9QobwXvlgYEMXAeZbarPv7QUuit51DeADeKJUIPYZYkcA5iFaM5hd27bzLC8WNDMlLrO4QzhBeUxjFxi0m78+0YcFPXCCwd6DzK0s+DuVVbDINxQrBby/rESxT2tWO1TeO05Fa5xFV4lwIANrbxBM' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= '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' $TestImage &= 'ro7lY0vucNQynucLcdvo3fjuLREUQXkz5lul5xK5cRCxlLguCjEar+CIhlsxGNwtWLhm8E4izzGwalEtqZQe7FgN1jMqpVn4imlAxgjWXtywy43uohkVaFxwNRhN+f4wAAAAUE3N+nBDiO4f8fMvzMelwziWk5jL59H0rEJj2gc+jKiSpdem4sat8sOgqOFmyVi6y9QyyH0qG0q2r1AbyHvFwYnxMO5tbc3nvhgbCAWvllEpLxupW0yBUSi8xAUiMK2s7uIWVqHcm+7hm3vwxzGD/swLGeZOCOqt8OCBLlZ0ntiAJzjj2OPzKxLqFhD/AFepd+Jtl49Fx6349M+hG4f4jmG/+DUdznMy3LlytVK3Er00Spuc149M8RTzC3Jj3gI+eZTzLSn/ABAnLiOfaB8A5mc0ynfEOz2hhkhvTfvGjuGVpctXCbXdelgsAezBqAV9kAhj22waYmiYPHb4ioTbIXtfSvpCGeJxVw9DE/cfRZm8xfrNwoPQOfRnHpz6YgQJjuXLsalVOZ7EOZeZp3LxU5n/2Q==' Local $bString = _WinAPI_Base64Decode($TestImage) If @error Then Return SetError(1, 0, 0) $bString = Binary($bString) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\salvador-dali 528x528.jpg", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_TestImage 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_Base64Decode1 point
-
Welcome to AutoIt and the forum! Can you please post the script you run?1 point
-
Strange.. you might try If Number($iCountry) = 44 Then1 point
-
Thanks for this function I'm thinking about to extend the UDF with a function to delete objects plus leaf nodes and OUs including all contained objects/leafs/subOUs. This function will be based upon your function plus the ideas I found here: http://www.selfadsi.org/delete.htm What do you (and others) think? Is such a function needed? If yes, is anyone willing to test on a test system? I'm an ordinary user so only have read access to our AD Please click the "Like this" button in the lower right corner of this post. So I know how many of you would like to see this function implemented.1 point