Leaderboard
Popular Content
Showing content with the highest reputation on 10/03/2018 in all areas
-
Deleting/overwriting variable contents in memory
CarlD and one other reacted to user4157124 for a topic
Numerical data (obviously) can not remain if new value is stored to same location. Consider overwriting string variables by a shorter string (""), an integer (0) or NULL instead. Possibly string functions (or operators other than assignment) keep a copy somewhere.2 points -
Who read the vu meter of a aplication in Volume Mixer
FrancescoDiMuro reacted to Melba23 for a topic
Arcadeuz, Welcome to the AutoIt forums. You appear to have missed the Forum rules on your way in. Please read them now - particularly the bit about not discussing game automation - and then you will understand why the image you posted is not the best way to illustrate your problem. However, as the question is basically how to read the volume of any application I am happy for the thread to remain open. M231 point -
FileReadLine to Array to Excel
FrancescoDiMuro reacted to Subz for a topic
As per FrancescoDiMuro _FileReadToArray example, just add the following afterwards: This just deletes all the columns except for Column 0 to 3, then just use _Excel_RangeWrite to write it directly into Excel. _FileReadToArray($strFilePath, $arrFileContent, $FRTA_NOCOUNT + $FRTA_ENTIRESPLIT, ",") For $i = UBound($arrFileContent) - 1 To 4 Step - 1 _ArrayColDelete($arrFileContent, $i) Next1 point -
FileReadLine to Array to Excel
Subz reacted to FrancescoDiMuro for a topic
@Skeletor What about _FileReadToArray() and _Excel_RangeWrite()? #include <Array.au3> #include <Excel.au3> #include <ExcelConstants.au3> #include <File.au3> Global $strFilePath = @ScriptDir & "\SampleFile.txt", _ $arrFileContent, _ $objExcel, _ $objWorkbook, _ $strExcelFile = @ScriptDir & "\SampleWorkbook.xls" _FileReadToArray($strFilePath, $arrFileContent, $FRTA_NOCOUNT + $FRTA_ENTIRESPLIT, ",") If @error Then ConsoleWrite("Error with _FileReadToArray(). Error: " & @error & @CRLF) Else ; _ArrayDisplay($arrFileContent) $objExcel = _Excel_Open(False) If @error Then ConsoleWrite("Error while creating Excel object. Error: " & @error & @CRLF) Else $objWorkbook = _Excel_BookNew($objExcel) If @error Then ConsoleWrite("Error while creating the Workbook. Error: " & @error & @CRLF) Else _Excel_RangeWrite($objWorkbook, $objWorkbook.ActiveSheet, $arrFileContent) If @error Then ConsoleWrite("Error while writing the content of $arrFileContent in the Workbook. Error: " & @error & @CRLF) Else If FileExists($strExcelFile) Then FileDelete($strExcelFile) _Excel_BookSaveAs($objWorkbook, $strExcelFile, $xlExcel8) If @error Then ConsoleWrite("Error while saving the Workbook. Error: " & @error & @CRLF) Else ConsoleWrite("The content of the $arrFileContent array has been written in the Excel file." & @CRLF) _Excel_BookClose($objWorkbook) _Excel_Close($objExcel) EndIf EndIf EndIf EndIf EndIf Cheers SampleFile.txt1 point -
Skeletor, Which part of is not clear? Please read this announcement and consider yourself lucky that you can still post - and that is only because your post was completely off-topic. M231 point
-
Drag'n'drop from Windows Explorer to Application for windows 10
Skeletor reacted to Earthshine for a topic
You write it, we help get it working1 point -
Hi, I have made a VISA/GPIB library for AutoIt3. If you are interested in this you probably already know what is VISA and GPIB, but here there is a short description for those that don't know about it: Basically GPIB allows you to control instruments like Power Supplies, Signal Generators, Oscilloscopes, Signal Generators, etc. You need to install or connect a GPIB interface card (PCI, PCMCIA or USB) to your PC and install the corresponding GPIB driver. VISA is a standard API that sits on top of the GPIB driver and it allows you to use the same programs to control your instruments regardless of the type of GPIB card that you have installed in your PC (most cards are made either by National Instruments or by Agilent/Hewlett-Packard). The cool thing about this library is that it opens AutoIt to a whole new kind of automation (instrument automation). Normally you would need to use some expensive "instrumentation" environment like Labwindows/CVI, LabView or Matlab to automate instruments but now you can do so with AutoIt. The only requirement is that you need a VISA compatible GPIB card (all cards that I know are) and the corresponding VISA driver must be installed (look for visa32.dll in the windows\system32 folder). I've tried to make the function descriptions in the attached "visa.au3" library as clear as possible, and I've put a small (commented) example at the bottom of the file. I've even put the C code prototypes of the visa32.dll function there (also commented) for those that might be interested. Basically you have 4 main functions: _viExecCommand - Executes commands and queries through GPIB _viOpen, _viClose - Open/Close a connection to a GPIB instrument. _viFindGPIB - Find all the instruments in the GPIB bus There are other less important functions, like: _viGTL - Go to local mode (exeit the "remote control mode") _viGpibBusReset - Reset the GPIB bus if it is in a bad state _viSetTimeout - Sets the GPIB Query timeout _viSetAttribute - Set any VISA attribute There is only one limitation that I know of, which is that the GPIB queries only return the 1st line of the device answer. This is not a problem in most cases, as most devices will always answer with a single line anyway. Please let me know if what you think, if you are able to make it work (I only have a National Instruments card so I'd like to see other people try it with an Agilent card) or if you have any trouble or suggestion. I recommend that you try first to execute the _viFindGPIB function (as shown in the example at the bottom of the file) and see if you can find any instruments. You can also have a look at the examples in the _viExecCommand function description. Ah! Another neat thing about this is that you can use it to open a TCP SOCKET, as VISA gives you access to the TCP stack by means of the "TCPIP[board]::host address::port::SOCKET" descriptor. However the limitation on the queries could be a problem in this case. Cheers, Angel visa.au31 point
-
How to BlockInput using c# (with the nuget package)
Earthshine reacted to JohnFromAustralia for a topic
Hi again, For anyone who stumbles accross this....I know realise why my C# code wasn't working to blockinputs....its because you need to run as administrator (elevated previleges)... Here is some little bit of messy code / test unit that works when running as administrator; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Runtime.InteropServices; using System.Threading; namespace SystemBetPro.Scrape { public partial class AllTests { //https://stackoverflow.com/questions/20841501/blockinput-method-doesnt-work-on-windows-7 [DllImport("user32.dll", SetLastError = true)] public static extern bool BlockInput(bool fBlockIt); //Example Usage public static void BlockInputForInterval(int spanAsMilliseconds) { try { BlockInput(true); Thread.Sleep(spanAsMilliseconds); } finally { BlockInput(false); } } [TestMethod] public void BlockInputsSupressInputsTest() { BlockInputForInterval(5000); } }//endclass } //endnamespace1 point -
Get capability of empty CD/DVD drive
FrancescoDiMuro reacted to spudw2k for a topic
Have you tried DriveGetLabel()1 point -
I personally use a product FileMenu Tools (an Explorer Shell product), if you can find version 7.0.5 its fully functional, the latest version has limitations without purchase. Within the tool it has an Advanced Renamer program that allows you to rename multiple files, including using meta data from photos/images and MP3 etc... See screenshot below. Another product which is freeware is Advanced Renamer, which I've also used in the past, however I prefer the FileMenu Tools version, because it offers other tools that I use daily.1 point
-
Replacing Console Write Line
UncleLouie909 reacted to JLogan3o13 for a topic
We have a wonderful forum search function, found this in 10 seconds. $apples = "Apples: " $pies = "Pies: " $whatever = "Whatever: " SendSciTE_Command("menucommand:420") For $a = 2 To 10 Step 2 ConsoleWrite($apples & $a & @CRLF & $pies & $a & @CRLF & $whatever & $a & @CRLF) Sleep(2000) SendSciTE_Command("menucommand:420") Next Func SendSciTE_Command($sCmd) Local $Scite_hwnd = WinGetHandle("DirectorExtension") Local $WM_COPYDATA = 74 Local $CmdStruct = DllStructCreate('Char[' & StringLen($sCmd) + 1 & ']') DllStructSetData($CmdStruct, 1, $sCmd) Local $COPYDATA = DllStructCreate('Ptr;DWord;Ptr') DllStructSetData($COPYDATA, 1, 1) DllStructSetData($COPYDATA, 2, StringLen($sCmd) + 1) DllStructSetData($COPYDATA, 3, DllStructGetPtr($CmdStruct)) DllCall('User32.dll', 'None', 'SendMessage', 'HWnd', $Scite_hwnd, _ 'Int', $WM_COPYDATA, 'HWnd', 0, _ 'Ptr', DllStructGetPtr($COPYDATA)) EndFunc ;==>SendSciTE_Command Thanks goes to Jos for the function.1 point -
Help executing x64 file Memory
TheSaint reacted to JLogan3o13 for a topic
@LionSpain Color me curious as well, please let us know what exactly you are trying to accomplish. ----This is a Mod in a thread, in case you missed it----1 point -
In GUIRegisterMsg20 - Subclassing Made Easy we saw that it's possible to execute too much code in the WM_NOTIFY message handler in ListView1.au3: Func WM_NOTIFY( $hWnd, $iMsg, $wParam, $lParam, $iSubclassId, $pData ) ; $iSubclassId = 0, $pData = 0 If $iMsg <> $WM_NOTIFY Then Return DllCall( "comctl32.dll", "lresult", "DefSubclassProc", "hwnd", $hWnd, "uint", $iMsg, "wparam", $wParam, "lparam", $lParam )[0] Local Static $tText = DllStructCreate( "wchar[100]" ), $pText = DllStructGetPtr( $tText ) Local Static $tRect = DllStructCreate( $tagRECT ), $pRect = DllStructGetPtr( $tRect ) Switch DllStructGetData( DllStructCreate( $tagNMHDR, $lParam ), "Code" ) Case $LVN_GETDISPINFOW ; Fill virtual listview Local $tNMLVDISPINFO = DllStructCreate( $tagNMLVDISPINFO, $lParam ) If Not BitAND( DllStructGetData( $tNMLVDISPINFO, "Mask" ), $LVIF_TEXT ) Then Return Local $sItem = $aItems[DllStructGetData($tNMLVDISPINFO,"Item")][DllStructGetData($tNMLVDISPINFO,"SubItem")] DllStructSetData( $tText, 1, $sItem ) DllStructSetData( $tNMLVDISPINFO, "TextMax", StringLen( $sItem ) ) DllStructSetData( $tNMLVDISPINFO, "Text", $pText ) Return Case $NM_CUSTOMDRAW ; Draw back colors Local $tNMLVCUSTOMDRAW = DllStructCreate( $tagNMLVCUSTOMDRAW, $lParam ) Local $dwDrawStage = DllStructGetData( $tNMLVCUSTOMDRAW, "dwDrawStage" ), $iItem Switch $dwDrawStage ; Holds a value that specifies the drawing stage Case $CDDS_PREPAINT ; Before the paint cycle begins Return $CDRF_NOTIFYITEMDRAW ; Notify the parent window of any item-related drawing operations Case $CDDS_ITEMPREPAINT ; Before painting an item Return $CDRF_NOTIFYSUBITEMDRAW ; Notify the parent window of any subitem-related drawing operations Case $CDDS_ITEMPREPAINT + $CDDS_SUBITEM ; Before painting a subitem $iItem = DllStructGetData( $tNMLVCUSTOMDRAW, "dwItemSpec" ) If GUICtrlSendMsg( $idListView, $LVM_GETITEMSTATE, $iItem, $LVIS_SELECTED ) Then Return $CDRF_NOTIFYPOSTPAINT ; Selected item DllStructSetData( $tNMLVCUSTOMDRAW, "ClrTextBk", $aColors[$iItem][DllStructGetData($tNMLVCUSTOMDRAW,"iSubItem")] ) ; Normal item Return $CDRF_NEWFONT ; $CDRF_NEWFONT must be returned after changing font or colors Case $CDDS_ITEMPOSTPAINT + $CDDS_SUBITEM ; After painting a subitem Local $hDC = DllStructGetData( $tNMLVCUSTOMDRAW, "hdc" ) ; Subitem rectangle $iItem = DllStructGetData( $tNMLVCUSTOMDRAW, "dwItemSpec" ) Local $iSubItem = DllStructGetData( $tNMLVCUSTOMDRAW, "iSubItem" ) DllStructSetData( $tRect, "Left", $LVIR_LABEL ) DllStructSetData( $tRect, "Top", $iSubItem ) GUICtrlSendMsg( $idListView, $LVM_GETSUBITEMRECT, $iItem, $pRect ) DllStructSetData( $tRect, "Left", DllStructGetData( $tRect, "Left" ) + 2 ) DllStructSetData( $tRect, "Top", DllStructGetData( $tRect, "Top" ) + 1 ) DllStructSetData( $tRect, "Right", DllStructGetData( $tRect, "Right" ) - 2 ) DllStructSetData( $tRect, "Bottom", DllStructGetData( $tRect, "Bottom" ) - 1 ) ; Subitem back color Local $hBrush = DllCall( "gdi32.dll", "handle", "CreateSolidBrush", "int", $aColors[$iItem][$iSubItem] )[0] ; _WinAPI_CreateSolidBrush DllCall( "user32.dll", "int", "FillRect", "handle", $hDC, "struct*", $tRect, "handle", $hBrush ) ; _WinAPI_FillRect DllCall( "gdi32.dll", "bool", "DeleteObject", "handle", $hBrush ) ; _WinAPI_DeleteObject ; Draw subitem text DllStructSetData( $tRect, "Top", DllStructGetData( $tRect, "Top" ) + 1 ) DllCall( "gdi32.dll", "int", "SetTextColor", "handle", $hDC, "int", 0 ) ; _WinAPI_SetTextColor DllCall( "gdi32.dll", "int", "SetBkMode", "handle", $hDC, "int", $TRANSPARENT ) ; _WinAPI_SetBkMode DllCall( "user32.dll", "int", "DrawTextW", "handle", $hDC, "wstr", $aItems[$iItem][$iSubItem], "int", -1, "struct*", $tRect, "uint", $DT_CENTER ) ; _WinAPI_DrawText Return $CDRF_NEWFONT ; $CDRF_NEWFONT must be returned after changing font or colors EndSwitch EndSwitch Return DllCall( "comctl32.dll", "lresult", "DefSubclassProc", "hwnd", $hWnd, "uint", $iMsg, "wparam", $wParam, "lparam", $lParam )[0] #forceref $hWnd, $iMsg, $wParam, $iSubclassId, $pData EndFunc The code here is a full subclass implementation (not based on the UDF). You can provoke the error this way: Click a row in the listview (not one of the very top rows). Press Shift+Down arrow to select multiple rows. The problem will arise after just a few rows. Press Ctrl+Break in SciTE to stop the code. One way to make the code faster is to use compiled code. Let's take a closer look at the subclass implementation: Local $pWM_NOTIFY = DllCallbackGetPtr( DllCallbackRegister( "WM_NOTIFY", "lresult", "hwnd;uint;wparam;lparam;uint_ptr;dword_ptr" ) ) DllCall( "comctl32.dll", "bool", "SetWindowSubclass", "hwnd", $hGui, "ptr", $pWM_NOTIFY, "uint_ptr", 0, "dword_ptr", 0 ) ; $iSubclassId = 0, $pData = 0 $pWM_NOTIFY is a pointer to the message handler function. To replace the AutoIt message handler with compiled code, we can implement the message handler in C/C++ code in a dll-file and replace $pWM_NOTIFY with a pointer to the compiled code. The C/C++ function definition looks like this: LRESULT CALLBACK __stdcall MsgHandler( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData ) We can get a pointer to the message handler this way: Local $hModule = _WinAPI_LoadLibrary( "Subclass.dll" ) Local $pMsgHandler = _WinAPI_GetProcAddress( $hModule, "MsgHandler" ) Now we can simply replace $pWM_NOTIFY with $pMsgHandler in SetWindowSubclass function. And of course we need to pass the $aItems and $aColors arrays to the compiled code in the dll-file. But we already know how to do that. Note that because $pMsgHandler is used directly in SetWindowSubclass function, we can avoid both the DllCall and DllCallAddress commands. Thus, we avoid a severe overhead in relation to these commands (that the AutoIt code interpreter should interpret a code line for each message (for a huge number of messages), and that DllCall and DllCallAddress are complicated and time-consuming commands). AutoIt code in ListView2.au3: #include <GUIConstantsEx.au3> #include "GuiListViewEx.au3" #include "AccArrays.au3" Opt( "MustDeclareVars", 1 ) Global $apsa[2] ; $psaItems, $psaColors Example() Func Example() ; Rows and columns Local $iRows = 10000, $iCols = 8 ; Create GUI Local $hGui = GUICreate( "Virtual and Custom Drawn ListView", 820, 620 ) ; Create ListView Local $idListView = GUICtrlCreateListView( "", 10, 10, 800, 600, $GUI_SS_DEFAULT_LISTVIEW+$LVS_OWNERDATA-$LVS_SINGLESEL ) _GUICtrlListView_SetExtendedListViewStyle( $idListView, $LVS_EX_DOUBLEBUFFER+$LVS_EX_FULLROWSELECT ) Local $hListView = GUICtrlGetHandle( $idListView ) ; Add columns For $i = 0 To $iCols - 1 _GUICtrlListView_AddColumn( $idListView, "Col " & $i, 96, 2 ) Next ; ListView items Local $aItems[$iRows][$iCols] For $i = 0 To $iRows - 1 For $j = 0 To $iCols - 1 $aItems[$i][$j] = $i & "/" & $j Next Next ; ListView colors Local $aColors[$iRows][$iCols] Local $aLVColors = [ 0xCCCCFF, 0xCCFFFF, 0xCCFFCC, 0xFFFFCC, 0xFFCCCC, 0xFFCCFF ] ; BGR For $i = 0 To $iRows - 1 For $j = 0 To $iCols - 1 $aColors[$i][$j] = $aLVColors[Random( 0,5,1 )] Next Next ; Load dll-file Local $hDll = DllOpen( @AutoItX64 ? "Subclass_x64.dll" : "Subclass.dll" ) Local $hModule = _WinAPI_LoadLibrary( @AutoItX64 ? "Subclass_x64.dll" : "Subclass.dll" ) ; $aItems and $aColors Local $psaItemsData, $psaColorsData AccArrays02( SafeArrays, $aItems, $aColors ) SafeArrayAccessData( $apsa[0], $psaItemsData ) SafeArrayAccessData( $apsa[1], $psaColorsData ) ; Pass data to compiled code DllCall( $hDll, "none", "PassData", "hwnd", $hListView, "int", $iCols, "ptr", $psaItemsData, "ptr", $psaColorsData ) ; Register WM_NOTIFY message handler Local $pMsgHandler = _WinAPI_GetProcAddress( $hModule, "MsgHandler" ) DllCall( "comctl32.dll", "bool", "SetWindowSubclass", "hwnd", $hGui, "ptr", $pMsgHandler, "uint_ptr", 0, "dword_ptr", 0 ) ; $iSubclassId = 0, $pData = 0 ; Set number of rows in virtual ListView GUICtrlSendMsg( $idListView, $LVM_SETITEMCOUNT, $iRows, 0 ) ; Adjust height of GUI and ListView to fit 30 rows Local $iLvHeight = _GUICtrlListView_GetHeightToFitRows( $idListView, 30 ) WinMove( $hGui, "", Default, Default, Default, WinGetPos( $hGui )[3] - WinGetClientSize( $hGui )[1] + $iLvHeight + 20 ) WinMove( GUICtrlGetHandle( $idListView ), "", Default, Default, Default, $iLvHeight ) ; Show GUI GUISetState( @SW_SHOW ) ; Message loop While 1 Switch GUIGetMsg() Case $GUI_EVENT_RESTORE ; Adjust height of GUI and ListView to fit 30 rows $iLvHeight = _GUICtrlListView_GetHeightToFitRows( $idListView, 30 ) WinMove( $hGui, "", Default, Default, Default, WinGetPos( $hGui )[3] - WinGetClientSize( $hGui )[1] + $iLvHeight + 20 ) WinMove( GUICtrlGetHandle( $idListView ), "", Default, Default, Default, $iLvHeight ) Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd ; Cleanup DllCall( "comctl32.dll", "bool", "RemoveWindowSubclass", "hwnd", $hGui, "ptr", $pMsgHandler, "uint_ptr", 0 ) ; $iSubclassId = 0 SafeArrayUnaccessData( $apsa[0] ) SafeArrayUnaccessData( $apsa[1] ) _WinAPI_FreeLibrary( $hModule ) DllClose( $hDLL ) GUIDelete() EndFunc Func SafeArrays( $pvItems, $pvColors ) SafeArrayCopy( DllStructGetData( DllStructCreate( "ptr", $pvItems + 8 ), 1 ), $apsa[0] ) SafeArrayCopy( DllStructGetData( DllStructCreate( "ptr", $pvColors + 8 ), 1 ), $apsa[1] ) EndFunc C/C++ code in Subclass.cpp: #include <Windows.h> #include <CommCtrl.h> #include <OleAuto.h> // Globals HWND g_hListView; int g_iColumns; VARIANT* g_psaItems; VARIANT* g_psaColors; void __stdcall PassData( HWND hListView, int iColumns, VARIANT* psaItems, VARIANT* psaColors ) { g_hListView = hListView; g_iColumns = iColumns; g_psaItems = psaItems; g_psaColors = psaColors; } LRESULT CALLBACK __stdcall MsgHandler( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData ) { if ( uMsg != WM_NOTIFY ) return DefSubclassProc( hWnd, uMsg, wParam, lParam ); NMLVDISPINFOW* plvdi; NMLVCUSTOMDRAW* plvcd; BSTR pBstr; DWORD_PTR iItem; RECT r; HBRUSH hBrush; switch ( ((LPNMHDR)lParam)->code ) { case LVN_GETDISPINFOW: // Fill virtual listview plvdi = (NMLVDISPINFOW*)lParam; if ( ( plvdi->item.mask & LVIF_TEXT ) == 0 ) return TRUE; pBstr = g_psaItems[plvdi->item.iItem*g_iColumns+plvdi->item.iSubItem].bstrVal; plvdi->item.pszText = pBstr; plvdi->item.cchTextMax = SysStringLen( pBstr ); return TRUE; case NM_CUSTOMDRAW: // Draw back colors plvcd = (NMLVCUSTOMDRAW*)lParam; switch ( plvcd->nmcd.dwDrawStage ) { case CDDS_PREPAINT: return CDRF_NOTIFYITEMDRAW; case CDDS_ITEMPREPAINT: return CDRF_NOTIFYSUBITEMDRAW; case CDDS_ITEMPREPAINT | CDDS_SUBITEM: iItem = plvcd->nmcd.dwItemSpec; if ( SendMessageW( g_hListView, LVM_GETITEMSTATE, iItem, LVIS_SELECTED ) ) return CDRF_NOTIFYPOSTPAINT; plvcd->clrTextBk = g_psaColors[iItem*g_iColumns+plvcd->iSubItem].intVal; return CDRF_NEWFONT; case CDDS_ITEMPOSTPAINT | CDDS_SUBITEM: // Subitem rectangle iItem = plvcd->nmcd.dwItemSpec; r.left = LVIR_LABEL; r.top = plvcd->iSubItem; SendMessageW( g_hListView, LVM_GETSUBITEMRECT, iItem, (LPARAM)&r ); r.left += 2; r.right -= 2; r.top += 1; r.bottom -= 1; // Subitem back color hBrush = CreateSolidBrush( g_psaColors[iItem*g_iColumns+plvcd->iSubItem].intVal ); FillRect( plvcd->nmcd.hdc, &r, hBrush ); DeleteObject( hBrush ); // Draw subitem text SetTextColor( plvcd->nmcd.hdc, 0 ); SetBkMode( plvcd->nmcd.hdc, TRANSPARENT ); pBstr = g_psaItems[iItem*g_iColumns+plvcd->iSubItem].bstrVal; r.top += 1; DrawTextW( plvcd->nmcd.hdc, pBstr, SysStringLen( pBstr ), &r, DT_CENTER ); return CDRF_NEWFONT; } } return DefSubclassProc( hWnd, uMsg, wParam, lParam ); } Zip-file ListView1.au3 is pure AutoIt code. In ListView2.au3 the WM_NOTIFY message handler is replaced with compiled code. Note that the zip-file contains two small dll-files. If you are using Microsoft SmartScreen or Microsoft Windows Defender, there is a likelihood of fake virus detection, even if the dll-files are created with Microsoft Visual Studio. Most other antivirus products will not detect fake viruses. You need AutoIt 3.3.12 or later. Tested on Windows 7 and Windows 10. Comments are welcome. Let me know if there are any issues. FastSubclassing.7z1 point
-
July 8, 2018: New SciTE4AutoIt3 available with the updated SciTE v4.1.0 release
jaberwacky reacted to Jos for a topic
I have made a new Beta version 4.1.1 of SciTE4AutoIt3 available in the beta directory. Just download both SciTE.exe and SciLexer.dll when you like to try it. Jos1 point