Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 07/22/2016 in all areas

  1. Checkboxes If LVS_EX_CHECKBOXES extended style is applied to a listview, two images are automatically added to the state image list: An unchecked checkbox (index 0) and a checked checkbox (index 1). You can get a handle for the state image list with $hStateImageList = _GUICtrlListView_GetImageList( $hListView, 2 ) ; 2 = Image list with state images Then you can set the state image list as a normal small icon image list: _GUICtrlListView_SetImageList( $hListView, $hStateImageList, 1 ) ; 1 = Image list with small icons If you apply this code line to all listview items the result is two checkboxes in first column: _GUICtrlListView_SetItemImage( $hListView, $iItem, 0 ) ; Unchecked checkbox (index 0) for $iItem Use this code line to add subitem checkboxes (requires LVS_EX_SUBITEMIMAGES extended style) to fourth column: _GUICtrlListView_SetItemImage( $hListView, $iItem, 0, 3 ) ; 3 is the zero based index of fourth column Another consequence of LVS_EX_CHECKBOXES extended style is that the image is automatically switched between the unchecked and checked ckeckbox when you click the icon. You have to implement this functionality yourself for the checkboxes added through the normal image list. This is easily done by responding to NM_CLICK events in a WM_NOTIFY message handler: Case $NM_CLICK Local $aHit = _GUICtrlListView_SubItemHitTest( $hListView ) If $aHit[6] Then ; On item? If $aHit[3] Then ; On icon? If $aHit[1] = 0 Or $aHit[1] = 3 Then ; On subitem 0 or 3? Local $iImage = _GUICtrlListView_GetItemImage( $hListView, $aHit[0], $aHit[1] ) ; Image index 0 or 1 _GUICtrlListView_SetItemImage( $hListView, $aHit[0], $iImage ? 0 : 1, $aHit[1] ) ; Switch index value EndIf ; $iItem $iImage $iSubItem EndIf EndIf The above is demonstrated in example 1) Subitem checkboxes.au3. If you don't want checkboxes for all of the listview items example 2) Remove some checkboxes.au3 shows how to remove some of the checkboxes. This is a picture of example 2: In example 1 and 2 the selected and focused states are removed from the listview items. Overlay icons In this picture of example 3) Overlay icons.au3 you can see cyan, green and yellow overlay icons on top of the original item icons: Overlay icons are stored in the small and large image lists. The function ImageList_SetOverlayImage implemented in GuiImageListEx.au3 tells the image list that this is a special image that is used as an overlay icon. Overlay icons must be stored among the first 15 images in the image list. To apply an overlay icon to a listview item the one based image index of the overlay icon must be stored in bits 8 - 11 in the state member of the LVITEM structure. Because 4 bits are used to store the image index you can only use 15 overlay icons. If all 4 bits are zero, it means that there is no overlay icon. Use these commands to add cyan, green and yellow overlay icons as the first three images in the image list: _GUIImageList_AddIcon( $hImageList, "icons\Cyan.ico" ) ; Index 0 _GUIImageList_AddIcon( $hImageList, "icons\Green.ico" ) ; Index 1 _GUIImageList_AddIcon( $hImageList, "icons\Yellow.ico" ) ; Index 2 Tell the imagelist that this is overlay icons: ImageList_SetOverlayImage( $hImageList, 0, 1 ) ; First overlay icon ImageList_SetOverlayImage( $hImageList, 1, 2 ) ; Second overlay icon ImageList_SetOverlayImage( $hImageList, 2, 3 ) ; Third overlay icon Add overlay icons to listview items A, B, C (256 = 2^8 is the value of bit 8): _GUICtrlListView_SetItemState( $hListView, $iItemA, 1 * 256 , $LVIS_OVERLAYMASK ) ; First overlay icon, cyan _GUICtrlListView_SetItemState( $hListView, $iItemB, 2 * 256 , $LVIS_OVERLAYMASK ) ; Second overlay icon, green _GUICtrlListView_SetItemState( $hListView, $iItemC, 3 * 256 , $LVIS_OVERLAYMASK ) ; Third overlay icon, yellow _GUICtrlListView_SetItemState( $hListView, $iItemD, 0 * 256 , $LVIS_OVERLAYMASK ) ; Remove an overlay icon State images If you want to use your own custom state images eg. green, yellow and red images (to signal ok, warning and error) instead of checkboxes, apply the LVS_EX_CHECKBOXES extended style to the listview, get a handle to the state image list, delete the images of the unchecked (index 0) and checked (index 1) checkboxes and add the green, yellow and red images to the state image list. Add custom state images to listview items A, B, C: _GUICtrlListView_SetItemStateImage( $hListView, $iItemA, 1 ) ; First state image, green _GUICtrlListView_SetItemStateImage( $hListView, $iItemB, 2 ) ; Second state image, yellow _GUICtrlListView_SetItemStateImage( $hListView, $iItemC, 3 ) ; Third state image, red _GUICtrlListView_SetItemStateImage( $hListView, $iItemD, 0 ) ; Remove a state image If you click a green state image, the image switches to yellow. If you click a yellow state image, it switches to red. If you click a red state image, it switches to green again. No code is needed for the image switching. It's a consequence of the LVS_EX_CHECKBOXES extended style. This is demonstrated in example 4) State images.au3. CheckboxesAndIcons.7z icons\ - Overlay icons 1) Subitem checkboxes.au3 2) Remove some checkboxes.au3 3) Overlay icons.au3 4) State images.au3 GuiImageListEx.au3 GuiListViewEx.au3 You need AutoIt 3.3.10 or later. Tested on Windows 7 32/64 bit and Windows XP 32 bit. Comments are welcome. Let me know if there are any issues. (Set tab width = 2 in SciTE to line up comments by column.) CheckboxesAndIcons.7z
    1 point
  2. Welcome to the world of computers and the representation of floating point numbers in binary. For some none integer numbers it is not possible to store the decimal places exactly, hence we have to round to a reasonable number of decimal places or allow a small tolerance when comparing floating point numbers . I think by default consolewrite rounds number to 7 decimal places which makes the numbers look the same. If you run this modified version of your script it will become clear what is happening. ConsoleWrite(@tab & "NO ROUNDING" & @CRLF) $Value1 = 110.4/192 $Value2 = 0.575 $Value3 = 0.2875 * 2 ConsoleWrite("Value 1: " & StringFormat("%0.17f",$Value1) & @CRLF) ConsoleWrite("Value 2: " & StringFormat("%0.17f",$Value2) & @CRLF) ConsoleWrite("Value 3: " & StringFormat("%0.17f",$Value3) & @CRLF & @CRLF) ConsoleWrite("Are Values 1 and 2 Equal: " & ($Value1 = $Value2) & @CRLF) ConsoleWrite("Are Values 2 and 3 Equal: " & ($Value2 = $Value3) & @CRLF) ConsoleWrite("Are Values 1 and 3 Equal: " & ($Value1 = $Value3) & @CRLF & @CRLF & "-----------------------" & @CRLF & @CRLF) ConsoleWrite(@tab & "USING ROUNDING" & @CRLF) $Value1 = Round(110.4/192, 3) $Value2 = 0.575 $Value3 = 0.2875 * 2 ConsoleWrite("Value 1: " & StringFormat("%0.17f",$Value1) & @CRLF) ConsoleWrite("Value 2: " & StringFormat("%0.17f",$Value2) & @CRLF) ConsoleWrite("Value 3: " & StringFormat("%0.17f",$Value3) & @CRLF & @CRLF) ConsoleWrite("Are Values 1 and 2 Equal: " & ($Value1 = $Value2) & @CRLF) ConsoleWrite("Are Values 2 and 3 Equal: " & ($Value2 = $Value3) & @CRLF) ConsoleWrite("Are Values 1 and 3 Equal: " & ($Value1 = $Value3) & @CRLF)
    1 point
  3. Sure, look at the example scripts in the usage information about those functions: https://www.autoitscript.com/autoit3/docs/functions/MouseClickDrag.htm https://www.autoitscript.com/autoit3/docs/functions/MouseDown.htm https://www.autoitscript.com/autoit3/docs/functions/MouseMove.htm https://www.autoitscript.com/autoit3/docs/functions/MouseUp.htm
    1 point
  4. I strongly disagree. The full AutoIt documentation is already inline (and offline with all AutoIt installations). Having to maintain another doc format is just duplication of efforts with no benefit I can foresee.
    1 point
  5. mLipok

    SQL lack of knowledge

    Please read: * How to post code on the forum * and edit your post. And read this:
    1 point
  6. The lack of ability to automate the download in IE has been a frustration for me, and for others too I bet. Implementing a custom download manager is beyond my abilities. If you can get it to work, I'll be happy to know. now for a more practical and efficient solution - how about you create the package once, and deploy it along with your script. if your script always checks the same apps in the ninite package, then why bother redo it all again and again for every machine, waste time and bandwidth, tackle all the issues you mention. this is also good for version control. When you get a ninite package for each machine, as you do now, you have no control of which version of which app is deployed on which machine. When you create the package once, you know exactly which version of which app you have. You need only recreate the package when newer versions of apps are available in ninite. No shorter interval than once a month, I dare say. If you also handle updates to ninite-deployed apps, this kind of version control is very useful.
    1 point
  7. I also tested your example...no problem here. (Exept the 2nd MsgBox, as argumentum said..) Also no problems with Tidy. Strange....
    1 point
  8. Update: . Example.au3 Fixed : Includes Example.au3 Renamed: IRC_Example.au3 IRC.au3 Changed: Minor Performance Improvements Slightly improved Performance for all IRC functions by switching from repetitive conditional statements to a single Select and Case statements. _IRCConnect pending more improvement.
    1 point
  9. AutoBert

    Text from List

    Script works if CSV-file exists, so try this version, CSV-file will be generated if not exists: #include <ListBoxConstants.au3> #include <WindowsConstants.au3> #include <ButtonConstants.au3> #include <GuiListBox.au3> #include <GUIConstantsEx.au3> #include <array.au3> #include <File.au3> Const $sCSV = @AppDataDir & "\2cbo.CSV" Const $sElect = "bitte auswählen" Global $a_sCSV, $aSplit, $sLstChr = "" If Not FileExists($sCSV) Then FileWriteLine($sCSV,'Auto;Felgen') FileWriteLine($sCSV,'Werkzeug;BitSätze') FileWriteLine($sCSV,'Werkzeug;Schraubenschlüssel') FileWriteLine($sCSV,'Auto;Reifen') FileWriteLine($sCSV,'Zubehör;Enteiserspray') FileWriteLine($sCSV,'Auto;Kühler') EndIf _FileReadToArray($sCSV, $a_sCSV) Dim $aCSV[$a_sCSV[0]][2] For $i = 1 To UBound($a_sCSV) - 1 ;ConsoleWrite($i & $a_sCSV[$i] & @CRLF) $aSplit = StringSplit($a_sCSV[$i], ";") If Not StringInStr($sLstChr, $aSplit[1]) Then $sLstChr &= $aSplit[1] & "|" $aCSV[$i - 1][0] = $aSplit[1] $aCSV[$i - 1][1] = $aSplit[2] Next ;ConsoleWrite($sLstChr & @CRLF) $hGui = GUICreate("2 Listen aus 1er CSV", 250, 140, 302, 218) $idListChr = GUICtrlCreateList($sElect, 8, 8, 200, 50, BitOR($WS_BORDER, $WS_VSCROLL, $WS_TABSTOP, $LBS_NOTIFY)) GUICtrlSetData(-1, $sLstChr) $idListChrNr = GUICtrlCreateList("", 8, 60, 200, 50) $idBtnExit = GUICtrlCreateButton("Be&enden", 8, 110) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE, $idBtnExit Exit Case $idListChr $sVal = GUICtrlRead($idListChr) GUICtrlSetData($idListChrNr, "") If $sVal <> $sElect Then $aSplit = _ArrayFindAll($aCSV, $sVal, 0, 0, True, True, 0) $sLstChr = "" For $i = 0 To UBound($aSplit) - 1 $sLstChr &= $aCSV[$aSplit[$i]][1] & "|" Next ;ConsoleWrite($sLstChr & @CRLF) GUICtrlSetData($idListChrNr, $sLstChr) _GUICtrlListBox_SetCurSel($idListChrNr, 0) EndIf EndSwitch WEnd
    1 point
  10. Do you know any settings in IE which will avoid this POP UP "Do you want to run or save ......." I just want a situation when files will be automatically saved. I was thinking about File Download Restrictions: https://msdn.microsoft.com/en-us/library/ee330731(v=vs.85).aspx#file_downloads But I never test it. EDIT: https://msdn.microsoft.com/en-us/library/ms537169(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/ms537178(v=vs.85).aspx URLACTION_AUTOMATIC_ACTIVEX_UI 0x00002201 Internet Explorer 6 for Windows XP SP2 and later. Determines whether to display the Information Bar for ActiveX control installations rather than the ActiveX control prompt. Requires that the feature control FEATURE_RESTRICT_ACTIVEXINSTALL for c
    1 point
  11. In Example.au3 first line should be changed to: #include "includes\IRC.au3" And please change file name: Example.au3 to IRC_Example.au3
    1 point
  12. Here a basic example how a rotation of a transparent needle can be done. #include <GDIPlus.au3> #include <GUIConstantsEx.au3> Global Const $iWidth = 300, $iHeight = 200 Global Const $hGUI = GUICreate("GDI+ Needle Rotation Example", $iWidth, $iHeight) GUISetState() _GDIPlus_Startup() ;create buffered graphic handle to display final drawn image Global Const $hCanvas = _GDIPlus_GraphicsCreateFromHWND($hGUI) Global Const $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $hCanvas) Global Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap) _GDIPlus_GraphicsSetSmoothingMode($hGfx, 4) ;load needle from memory Global Const $hImage = _GDIPlus_BitmapCreateFromMemory(_Zeiger()) ;create a new image with squared dimension of the loaded needle bitmap and place the needle center in the middle Global Const $iNeedleCenterX = 25, $iNeedleCenterY = 8, $iImageWidth = 117, $iImageHeight = 17, $iNeedleWidth = 2 * ($iImageWidth - $iNeedleCenterX), $iNeedleHeight = $iNeedleWidth Global Const $hImage_Needle = _GDIPlus_BitmapCreateFromScan0($iNeedleWidth, $iNeedleHeight) Global Const $hCtxt = _GDIPlus_ImageGetGraphicsContext($hImage_Needle) _GDIPlus_GraphicsDrawImageRect($hCtxt, $hImage, $iNeedleWidth / 2 - $iNeedleCenterX, $iNeedleHeight / 2 - $iNeedleCenterY, $iImageWidth, $iImageHeight) Global Const $fRadius = $iImageWidth - $iNeedleCenterX, $fCenterScreenX = $iWidth / 2, $fCenterScreenY = $iHeight / 2 - 30 Global $fAngle = 0, $iDir = 1 Global Const $hBrush = _GDIPlus_LineBrushCreate(0, 0, $fRadius, $fRadius, 0xFFFF0000, 0xFF00FF00, 1) Do ;do some animation _GDIPlus_GraphicsClear($hGfx) RotateNeedle($fAngle) $fAngle += 0.5 * $iDir If BitOR($fAngle < 0, $fAngle > 180) Then $iDir *= -1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE _GDIPlus_BrushDispose($hBrush) _GDIPlus_GraphicsDispose($hCanvas) _GDIPlus_GraphicsDispose($hGfx) _GDIPlus_GraphicsDispose($hCtxt) _GDIPlus_BitmapDispose($hBitmap) _GDIPlus_BitmapDispose($hImage_Needle) _GDIPlus_ImageDispose($hImage) _GDIPlus_Shutdown() GUIDelete() Exit EndSwitch Until False Func RotateNeedle($fAngle) ;draw a dummy background Local Const $hPath = _GDIPlus_PathCreate() _GDIPlus_PathAddArc($hPath, $fCenterScreenX - $fRadius, $fCenterScreenY, 2 * $fRadius, 2 * $fRadius, 180, 180) _GDIPlus_GraphicsFillPath($hGfx, $hPath, $hBrush) _GDIPlus_PathDispose($hPath) ;create a new bitmap Local Const $hBmp = _GDIPlus_BitmapCreateFromScan0($iNeedleWidth, $iNeedleHeight) Local Const $hContext = _GDIPlus_ImageGetGraphicsContext($hBmp) _GDIPlus_GraphicsSetPixelOffsetMode($hContext, 2) ;create a matrix handle to rotate bitmap Local Const $hMatrix = _GDIPlus_MatrixCreate() _GDIPlus_MatrixTranslate($hMatrix, $fRadius, $fRadius) _GDIPlus_MatrixRotate($hMatrix, -180 + $fAngle) _GDIPlus_GraphicsSetTransform($hContext, $hMatrix) _GDIPlus_MatrixTranslate($hMatrix, -$fRadius, -$fRadius) _GDIPlus_GraphicsSetTransform($hContext, $hMatrix) ;copy needle to the rotated bitmap _GDIPlus_GraphicsDrawImageRect($hContext, $hImage_Needle, 0, 0, $iNeedleWidth, $iNeedleHeight) ;copy result to our main graphic content _GDIPlus_GraphicsDrawImageRect($hGfx, $hBmp, $fCenterScreenX - $fRadius, $fCenterScreenY - 10, $iNeedleWidth, $iNeedleHeight) _GDIPlus_GraphicsDrawImageRect($hCanvas, $hBitmap, 0, 0, $iWidth, $iHeight) ;release resources within this function to avoid memory leak _GDIPlus_MatrixDispose($hMatrix) _GDIPlus_GraphicsDispose($hContext) _GDIPlus_ImageDispose($hBmp) EndFunc ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2015-09-19 Func _Zeiger($bSaveBinary = False, $sSavePath = @ScriptDir) Local $Zeiger $Zeiger &= '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' $Zeiger &= 'ZORilGXUbDRqTDP2Ny4w7jB+YaJpEm2y06TX5JOplWmqaYPpAzMZM1+zArMus9/N9c1Z5jXmtyzIFp4W6y06LV5aGlhyLA9Y3rWiWAVYbbHqtvpobWPNt26xnrLRtImz2WczzKAyghiljCu2aFtX2/W2p23f2VnbCexO2P1mb2SfYn/UfnKpzlLO0oalYw7qDkyHOocRR7pjnONBxxEnNSemU73TE2cNZ7Zzo/OEi55Lsssxlxeupq581zbXOTc7t7Vu590Rdy/3Yvd+DxmP5R7VHo891T0TPZs9Z7ysvNZ4nfdGe/t57/Qe9lH2Yfk0+cz42viu9e3xI/mF+lX7PfHX9+f7dwXAAb4BuwIeLtNaxlvWEQgCfQJ3BT4K0glaHfRjMCY4KLgm+GmIWUh+SG8oJTQ29GjomzDXsLKwB8t1lwuXd4dLhseEN4XPRbhHlEeMRJpEro28HqUYxY3qjMZGh0c3Rs+u8Fixe8V4jFVMUcydlTorc1ZeXaW4KnXVmVjJWGbsyTh0XETc0bgPzEBmPXM23id+X/wMy421h/Wc7cyuYE9xHDjlnIkEh4TyhMlEh8RdiVNJTkmVSdNcN24192Wyd3Jt8lxKYMrhlIXUiNTWNFxaXNopngwvhdeTrpKekz6YYZBRlDGy2m717tUzfD9+YyaUuTKzU0AV/Uz1CXWFm4WjWY5ZNVlvs8OzT+ZI5/By+nL1c7flTuR55n27BrWGtaY7Xy1/Y/7oWpe1deugdfHrutdrrC9cP77Ba8ORjYSNKRt/KjAtKC94vSliU1ehcuGGwrHNXpubiySK+EXDW+y31G5FbeVu7d9msW3vtk/F7OJrJaYllSUfSlml174x+6bqm4XtCdv7y6zLDuzA7ODtuLPTaeeRcunyvPKxXQG72ivoFcUVr3fH7r5aaVlZu4ewR7hnpMq/qnOv5t4dez9UJ1XfrnGtad2ntG/bvrn97P1DB5wPtNQq15bUvj/IPXi3zquuvV67vvIQ5lDWoacN4Q293zK+bWpUbCxp/HiYd3jkSMiRniabpqajSkfLmuFmYfPUsZhjN75z/66zxailrpXWWnIcHBcef/Z93Pd3Tvid6D7JONnyg9YP+9oobcXtUHtu+0xHUsdIZ1Tn4CnfU91d9l1tPxr/ePi02umaM7Jnys4SzhaeXTiXd272fMb56QuJF8a6Y7sfXIy8eKsnuKf/kt+lK5c9L1/sdek9d8XhyumrdldPXWNc67hufb29z6qv7Sern9r6rfvbB2wGOm/Y3ugaXDp4dshp6MJN95uXb/ncun572e3BO8vv3B2OGR65y747eS/13sv7WffnH2x4iH5Y/EjqUeVjpcf1P+v93DpiPXJm1H2070nokwdjrLHnv2T+8mG88Cn5aeWE6kTTpPnk6SnPqRvPVjwbf57xfH666FfpX/e90H3xw2/Ov/XNRM6Mv+S/XPi99JXCq8OvLV93zwbNPn6T9mZ+rvitwtsj7xjvet9HvJ+Yz/6A/VD1Ue9j1ye/Tw8X0hYW/gUDmPP8FDdFOwAAAAlwSFlzAAALEgAACxIB0t1+/AAACRhJREFUWMPtmF1sHNUVx3/33pnZr1nHXnttZ9dYogVMiQPkg/AVUbWoSK3goaJVnytaVUKUqn1p+1heK/raIrUPpUCQCqiqoE2IxIdUQCqhlAAhHyVQYDde4sROvGvvembu6cPOrMeLkziRpQaJI43ux9x758y55+N/DqRo83hFKmNVxTpJVTZX5MYbt9NsNomiiAd/8gBP/fkZjDEYo3EcB8/zyOXyALiui4gln8+jRGTlJKXmgcH03LqoMlY1E9Ur9l3MHvWtb94tWmuOHDnM5OQkg4NDaK1xXRdjDK7rYIyh4PsgoLRCK025PPIQIkKKzbuS8XoeVRmrbgI8IIgfK0oWq9Uqvu+zY8d2Hv7Nwyr+NQVQb9QuUiifJQe4GZiKxwK0HMchCALu+OodfDrTmKuMVe/tk60FWn1nLQJhaixA' $Zeiger &= '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' $Zeiger &= 'oECslVar9YZSOjLGiFKxdgkRCquVFqWUUlrZ2U9P/guwxJjXdV3J5/PRsaPH3jn41sEZoOVYa1lYWODkyVlarVbKIwsi6XZN6EGn08Ha7oKkNhlFlk5nOS6wRQRBiLUR2WyWoaFByqOjlEdGKJVKZLNZjh49Rq1WIwgCMpls75L6eblQ5TDRtRW+pQ8Vro44ibKkS0oJZk6vT8+dn4c07iZOPJzptRKndAkozjl2JLlCP3Zf+f7qUpLWGs/z8P0OW6an+fqdd1LwCzjAi512u3riRF0brXubU9qSstM13JeIstZWRCSvtSIIApaWFgnDoGcRAwMDbBrcxMjwMOVymXK5jF/08TwPYxwe+d0jzcVWa74xM9NUSkvaAaquMEMbycKaXHxWrAJEgtgLYQfV/UAvJT+Hi44USlL6taY0xEpTRM6Vw6TDxoVwTDocqL7UfK11yfkd4BTwsaNE3Q1kbGiVxa4XVEWp/F852smfbZ79g1K5e7ReRkRYXl7GGEM2m8E4Br9QIF8okM/ncV2HKLK89uprrcceffx5YL/ruH+NQnsa7EaU3ux5YulFZ0KpR13C3iQ2XzK6v9j4vFHoVwFq/uzc9cAvPS/z7Ww24xrjkMvlKI+WKY+MkMvl6HQ68u7bh/67sLDwotZ6P/AKUK83aiFf0IbQ/wAq4CpjdWoV/AAAAABJRU5ErkJggg==' Local $bString = _WinAPI_Base64Decode($Zeiger) If @error Then Return SetError(1, 0, 0) $bString = Binary($bString) If $bSaveBinary Then Local Const $hFile = FileOpen($sSavePath & "\tacho_zeiger_max.png", 18) If @error Then Return SetError(2, 0, $bString) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_Zeiger 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
  13. Thanks for your comment. Maybe later I will create a settings menu where you can set several settings like to remove the program itself from the list, etc. Indeed, it is not easy to keep track of all the bits particularly after several weeks and a holiday. Br, UEZ
    1 point
×
×
  • Create New...