Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 03/15/2018 in all areas

  1. ISI360

    ISN AutoIt Studio

    Note: This is the continuation thread from the original one of 2012. The old one growed over 50 pages...so to make the overview better i created a new main thread for the ISN AutoIt Studio. You can find the old original thread here. The ISN AutoIt Studio is a complete IDE made with AutoIt, for AutoIt! It includes a GUI designer, a code editor (with syntax highlighting, auto complete & intelisense), a file viewer, a backup system and a lot more features!! Here are some screenshots: Here are some higlights: Easy to create/manage/public your AutoIt projects! Integrated GUI-Editor (ISN Form Studio 2) Integrated file & projectmanager Auto backupfunction for your Projects Extendable with plugins! Available in several languages Trophies Syntax highlighting /Autocomplete / Intelisense Macros Changelog manager for your project Detailed overview of the project (total working hours, total size...) Am integrated To-Do List for your project Open Source (You can download the source code from my website) And much much more!!! -> -> Click here to download ISN AutoIt Studio <- <- Here is the link to the german autoit forum where I posted ISN AutoIt Studio the first time: Link For more information visit my Homepage: https://www.isnetwork.at So, have fun with the ISN AutoIt Studio! And feel free to post your feedback, bugreports or ideas for this project here in this thread!
    2 points
  2. I just see this post, and I remember I started (some time ago) to build a tool to explorer WMI classes, but I did not finish it completly. If someone is interested, here is the code and icons (i don't have enough time to finish it). The original idea was to add a Tab "Data" to show the values of each propertiy of the selected class (but there is scriptomatic for that). Hope it will be useful. Here is the archive with the code and icons : WMIExplorer.zip
    2 points
  3. Just curious, this is great at displaying the classes returned, but to interact with them a user would still need different code. Why not just use Scriptomatic?
    2 points
  4. Solved it! Func EncodeString($s) $result = '' For $i = 1 To StringLen($s) $char = StringMid($s, $i, 1) If StringIsASCII($char) Then $result &= $char Else $result &= '\u' & Hex(AscW($char), 4) EndIf Next Return $result EndFunc
    1 point
  5. Gooby

    NomadMemory problem :)

    So, I started writing in c++ and met the same problem. It is compiler, compiling for 32bits, not 64, that's why I couldn't get values from that adressess, downloaded one for x64 and its all okay. Will be the same for autoit, if it uses 32 bits - you may select an option during installation between 32/64, not sure if NomadMemory supports x64. C seems more friendly for my needs, gonna stick with it for my project, thanks for the tips!
    1 point
  6. Note, I have no idea who created that nuget package - it wasn't us. I have no idea what it does. There is no need to regsvr the dll - that is not used in C#. Just the below is required: The AutoItX3.Assembly.dll reference should be marked as "copy if newer" and the two other files - AutoItX.dll and AutoItX_x64.dll - should be added to the root of the project and also marked "copy if newer". Then all these files should end up in your output folder. Try running the example from the code from the helpfile to ensure it's working correctly static void Main(string[] args) { // Wow, this is C#! AutoItX.Run("notepad.exe", "", 1); AutoItX.WinWaitActive("Untitled"); AutoItX.Send("I'm in notepad"); IntPtr winHandle = AutoItX.WinGetHandle("Untitled"); AutoItX.WinKill(winHandle); } I really need to add an example project to the installer for this...
    1 point
  7. Well, I don't see how it could block AutoItX from accessing the GUI elements when it's already loaded? The C# project loads the .dll and assembly, and there are no errors related to that. But of course, since I'm completely dumbfounded as to the reason for this, more or less any reason that I cannot eliminate is possible. EDIT: I tried registering the .dll in Windows (as you mention above). Didn't change anything.
    1 point
  8. good luck. I might try to go back to a restore point if you are all backed up. there is not much to do but guess. we can't have hands on to your system and files, etc.. and you may THINK nothing changed, but somewhere, something did. good luck.
    1 point
  9. Well, as I said: That's really not necessary, and it's not a good practice for development, since you tie the .dll to the specific machine. I could do it just for troubleshooting, of course. But I'm willing to bet a lot of money, beer or whatever that it won't do any good.
    1 point
  10. As Bilgus mentioned. You can have the menu text display what you want. It could also be changed if an error occurred with the download or just be left disabled #RequireAdmin #include <GUIConstantsEx.au3> #include <InetConstants.au3> #include <WindowsConstants.au3> Local $VLCLocal = @DesktopDir & '\vlc.exe' Global $_g_hVLCRemote = 0 $Form1 = GUICreate("Form1", 198, 220, 520, 224) $MenuItem1 = GUICtrlCreateMenu("File") $OpenMenu = GUICtrlCreateMenuItem("Open", $MenuItem1) GUICtrlSetState(-1, $GUI_DISABLE) $ExitMenu = GUICtrlCreateMenuItem("Exit", $MenuItem1) $ToolsMenu = GUICtrlCreateMenu("Tools") $AboutMenu = GUICtrlCreateMenu("About") VLC_Download() GUISetState(@SW_SHOW) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $OpenMenu Run($VLCLocal) EndSwitch WEnd Func VLC_Download() Local $_g_sVLCUrl = 'http://mirror.vorboss.net/videolan/vlc/3.0.1/win32/vlc-3.0.1-win32.exe' ; changed for faster download ; download if file wasn't found or file size mismatch If Not FileExists($VLCLocal) Or FileGetSize($VLCLocal) <> InetGetSize($_g_sVLCUrl) Then ;~ GUICtrlSetData($OpenMenu, 'Downloading...') ;~ GUICtrlSetData($OpenMenu, 'Open - Downloading..') GUICtrlSetData($OpenMenu, 'Open - in progress') GUICtrlSetState($OpenMenu, $GUI_DISABLE) ; Disable the menu until file is downloaded $_g_hVLCRemote = InetGet($_g_sVLCUrl, $VLCLocal, $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND) AdlibRegister('VLC_CheckForFile', 2000) ; check for downloaded file Else GUICtrlSetData($OpenMenu, 'Open') GUICtrlSetState($OpenMenu, $GUI_ENABLE) ; Disable the menu until file is downloaded EndIf EndFunc ;==>VLC_Download Func VLC_CheckForFile() If InetGetInfo($_g_hVLCRemote, $INET_DOWNLOADCOMPLETE) Then GUICtrlSetData($OpenMenu, 'Open') GUICtrlSetState($OpenMenu, $GUI_ENABLE) AdlibUnRegister('VLC_CheckForFile') ; stop checking ElseIf InetGetInfo($_g_hVLCRemote, $INET_DOWNLOADERROR) Then ; add some feedback for failed download here, if required GUICtrlSetData($OpenMenu, 'Open') GUICtrlSetState($OpenMenu, $GUI_DISABLE) AdlibUnRegister('VLC_CheckForFile') ; stop checking EndIf EndFunc ;==>VLC_CheckForFile
    1 point
  11. It seems pretty simple to expand this to do whjat you want it does have the 'Device name' So therefore You Run the script above and Check if the name matched If StringInStr($aDataM[3], "\\.\" & $sDisplayName) Then Return $hMonitor EndIf Better?  #include <Array.au3> ;THIS ONE ONLY NEEDED FOR _ARRAYDISPLAY #include <WinAPIGdi.au3> #include <WinAPISys.au3> MsgBox(0, "MONITOR #1 HANDLE", Monitor_HandleFromName("Display1")) MsgBox(0, "MONITOR #2 HANDLE", Monitor_HandleFromName(Monitor_NumberToDisplay(2))) Func Monitor_HandleFromName($sDisplayName) ;A function definition for Monitor_HandleFromName takes a String "Display" with a number at the end $sDisplayName = StringReplace($sDisplayName, "\\.\", "") ;Remove the first part if exists will add it back later Local $aPos, $aData = _WinAPI_EnumDisplayMonitors() If IsArray($aData) Then ;Is it an array? ;Comments in HELPFILE ;[n][0] - A handle to the display monitor. ;[n][1] - $tagRECT structure defining a display monitor rectangle or the clipping area. ReDim $aData[$aData[0][0] + 1][5] ;Make Array Bigger(ER) For $i = 1 To $aData[0][0] $aPos = _WinAPI_GetPosFromRect($aData[$i][1]) ;Comments in HELPFILE ;[0] - The x-coordinate of the upper-left corner of the rectangle. ;[1] - The y-coordinate of the upper-left corner of the rectangle. ;[2] - The width of the rectangle. ;[3] - The height of the rectangle. For $j = 0 To 3 ;Do 4 times 0= 1st 1 = 2nd 2 = 3rd 3= 4th $aData[$i][$j + 1] = $aPos[$j] ;Put Data returned from _WinAPI_GetPosFromRect() into the results array Next Next EndIf _ArrayDisplay($aData, '_WinAPI_EnumDisplayMonitors') ;Show the results thus far ;;;Local $tPos = _WinAPI_GetMousePos();Comment out of example script Local $hMonitor ;;;; = _WinAPI_MonitorFromPoint($tPos);Ditto For $i = 1 To $aData[0][0] $hMonitor = $aData[$i][0] ;Take the handle added from previous function and use it for this one Local $aDataM = _WinAPI_GetMonitorInfo($hMonitor) ;Call _WinAPI_GetMonitorInfo() ;Comments in HELPFILE ;[0] - $tagRECT structure that specifies the display monitor rectangle, in virtual-screen coordinates. ;[1] - $tagRECT structure that specifies the work area rectangle of the display monitor that can be used by applications, in virtual-screen coordinates. ;[2] - 1 (True) for the primary display monitor, or 0 (False) otherwise. ;[3] - The device name of the monitor being used, e.g. "\\.\DISPLAY1". If IsArray($aDataM) Then ;Is this an array? ConsoleWrite('Handle: ' & $hMonitor & @CRLF) ;The Handle to THE MONITOR ConsoleWrite('Rectangle: ' & DllStructGetData($aDataM[0], 1) & ', ' & DllStructGetData($aDataM[0], 2) & ', ' & DllStructGetData($aDataM[0], 3) & ', ' & DllStructGetData($aDataM[0], 4) & @CRLF) ;RECTANGLE THIS MONITOR OCCUPIES ConsoleWrite('Work area: ' & DllStructGetData($aDataM[1], 1) & ', ' & DllStructGetData($aDataM[1], 2) & ', ' & DllStructGetData($aDataM[1], 3) & ', ' & DllStructGetData($aDataM[1], 4) & @CRLF) ;Area WHERE YOU CAN ACTUALLY PUT STUFF ConsoleWrite('Primary: ' & $aDataM[2] & @CRLF) ;IS THIS THE MAIN MONITOR????? ConsoleWrite('Device name: ' & $aDataM[3] & @CRLF) ;THE DISPLAY NAME!!!!!!!!!!!!!!!!!!!!!!!!!! EndIf ;Done IsArray? If StringInStr($aDataM[3], "\\.\" & $sDisplayName) Then ;IS THIS THE RIGHT NAME?? ;I GUESS THIS IS THE CORRECT MONITOR Return $hMonitor;GIVE THE HANDLE BACK Else;NOPE NOT THIS ONE ConsoleWrite("NOPE NOT THIS ONE" & @CRLF) ;Console message with a carriage return and linefeed EndIf Next Return 0 ;Not Found GIVE 0 BACK EndFunc ;==>Monitor_HandleFromName Func Monitor_NumberToDisplay($iMonitor) ; A function definition for Monitor_NumberToDisplay takes an integer Return "Display" & $iMonitor ;puts The string 'Display' and a number YOU supply Together EndFunc ;==>Monitor_NumberToDisplay
    1 point
  12. This worked fine for me, in Office 2013 SP1 32 bit. #include <Excel.au3> Local $sModule = @TempDir & "\Module.bas" Local $sMacro $sMacro &= 'Attribute VB_Name = "Module1"' & @CRLF $sMacro &= 'Sub MergeWkbks()' & @CRLF $sMacro &= 'Path = "' & @DesktopDir & '\MergingExcelTest\"' & @CRLF $sMacro &= 'Filename = Dir(Path & "*.xlsx")' & @CRLF $sMacro &= ' Do While Filename <> ""' & @CRLF $sMacro &= ' Workbooks.Open Filename:=Path & Filename, ReadOnly:=True' & @CRLF $sMacro &= ' For Each Sheet In ActiveWorkbook.Sheets' & @CRLF $sMacro &= ' Sheet.Copy After:=ThisWorkbook.Sheets(1)' & @CRLF $sMacro &= ' Next Sheet' & @CRLF $sMacro &= 'Workbooks(Filename).Close' & @CRLF $sMacro &= 'Filename = Dir()' & @CRLF $sMacro &= 'Loop' & @CRLF $sMacro &= 'End Sub' & @CRLF Local $hFileOpen = FileOpen($sModule, 2) FileWrite($hFileOpen, $sMacro) FileClose($hFileOpen) Local $oExcel = _Excel_Open() Local $oWorkbook = _Excel_BookNew($oExcel) $oExcel.VBE.ActiveVBProject.VBComponents.Import($sModule) _Excel_BookSaveAs($oWorkbook, @DesktopDir & "\MyNewExcel2.xlsm", Default, True) $oExcel.Application.Run("MergeWkbks") @Becca can you place your code between <> just makes it easier to read.
    1 point
  13. So guys..This topic has grown since 2012 to over 50 (!!) pages yet! Thanks for all your help and feedback! To make a better overview to the whole stuff, i will create a new main thread for the ISN AutoIt Studio and we will close this one as an type of archive. You can find the new thread here.
    1 point
  14. Ah Sorry I misunderstood I thought you were looking for their start positions you want to split on them Like maybe this #include <Array.au3> Local $yourstr = 'Regulartext' & CHR(0x1B) & '[40m' & CHR(0x1B) & '[2J' & CHR(0x1B) & '[2C' & CHR(0x1B) & '[0;34m³ ' & CHR(0x1B) & '[1;37m³ ' & CHR(0x1B) & '[0;34m³' & CHR(0x1B) & '[31mÜ' & CHR(0x1B) & '[33mßßß' & CHR(0x1B) & '[s' & CHR(0x1B) & '[u' & CHR(0x1B) & '[31mßßßßßßßÛßßß' & CHR(0x1B) & '[33mß' & CHR(0x1B) & '[31mß' & CHR(0x1B) & '[33mß' & CHR(0x1B) & '[31mß' & CHR(0x1B) & '[33mßßß' & CHR(0x1B) & '[31mß' & CHR(0x1B) & '[s' & CHR(0x1B) & '[uÛßßßß' & CHR(0x1B) & '[33mß' & CHR(0x1B) & '[31mß' & CHR(0x1B) & '[33mßßß' & CHR(0x1B) & '[31mÛßßßßßßßßÛßßßßß' & CHR(0x1B) & '[33mß' & CHR(0x1B) & '[s' & CHR(0x1B) & '[u' & CHR(0x1B) & '[31mßÛßß' & CHR(0x1B) & '[33mß' & CHR(0x1B) & '[31mß' & CHR(0x1B) & '[33mßß' & CHR(0x1B) & '[31mßßß' & CHR(0x1B) & '[33mß' & CHR(0x1B) & '[31mÜ' & CHR(0x1B) & '[34m³' & CHR(0x1B) & '[s' & CHR(0x1B) & '[u ³' & CHR(0x1B) & '[2;1H ÄÄÄÄ' & CHR(0x1B) & '[1;37mÛ' & CHR(0x1B) & '[0;34mÄÄ' & CHR(0x1B) & '[31mÜ' & CHR(0x1B) & '[33mß' & CHR(0x1B) & '[34mÄ' & CHR(0x1B) & '[s' & CHR(0x1B) & '[u' & CHR(0x1B) & '[1;35mÜÛÛÛÛÛÛÛÛÜ ÛÛÛÛÛÛÛÛÛÛÛÜßÛÛÛÛÛÛÛß ÛÛÛÛÛÛÛ Ü²ÛÛÛÛ' & CHR(0x1B) & '[s' & CHR(0x1B) & '[uÛÛÜßÛÛÛÛÛÛÛÛÛÜ' & CHR(0x1B) & '[0;33mßÜ' & CHR(0x1B) & '[34mÄ' & CHR(0x1B) & '[1;37mß' & CHR(0x1B) & '[0;34m³Ä' & CHR(0x1B) & '[3;1H ' & CHR(0x1B) & '[s' & CHR(0x1B) & '[u³ ' & CHR(0x1B) & '[1;37mÛ ' & CHR(0x1B) & '[0;33m±' & CHR(0x1B) & '[34m³' & CHR(0x1B) & '[1;35m²²ÛÛÛÛÛÛÛÛÛÝÛÛÛÛÛÛÛ' & CHR(0x1B) & '[s' & CHR(0x1B) & '[uÛÛÛÛÛÛÜßÛÛÛß ÜÞÛÛÛ²ÛÛÛÞ²ÛÛÛ ²ÛÛÛÝÛÛÛÛÛÛÛÛÛÛÛÜ' & CHR(0x1B) & '[0;31mß' & CHR(0x1B) & '[sUnicorn' & CHR(0x1B) & '[u' & CHR(0x1B) & '[1;37mÛ' & CHR(0x1B) & '[4;1H ' & CHR(0x1B) & '[0;34mÄÄ' & CHR(0x1B) & '[1mÄÄ' & CHR(0x1B) & '[37mÛ' & CHR(0x1B) & '[34mÄ' & CHR(0x1B) & '[30m°' & CHR(0x1B) & '[s' & CHR(0x1B) & '[u' & CHR(0x1B) & '[0;33m°' & CHR(0x1B) & '[1;30m°' & CHR(0x1B) & '[35m±Û²ÛÛÛßßÞÛß ²Û²Û' & CHR(0x1B) & '[30m°°±±² ' & CHR(0x1B) & '[35mÜ' & CHR(0x1B) & '[s' & CHR(0x1B) & '[uÜÜÜÜÛß Ü²ÛÞßÞ²Û²Û Þ±²ÛÛ ±²ÛÛݲÛÛ' & CHR(0x1B) & '[30m°°±²' & CHR(0x1B) & '[35mÛÛÛÛÛ' & CHR(0x1B) & '[s' & CHR(0x1B) & '[u' & CHR(0x1B) & '[30m°' & CHR(0x1B) & '[37mÛ' & CHR(0x1B) & '[30m±' & CHR(0x1B) & '[0;34mÄ' & CHR(0x1B) & '[5;1H ' & CHR(0x1B) & '[1;37mÜ ' & CHR(0x1B) & '[30m°' & CHR(0x1B) & '[s' & CHR(0x1B) & '[u' & CHR(0x1B) & '[37mÛ' & CHR(0x1B) & '[30m°±' & CHR(0x1B) & '[37mÜ' & CHR(0x1B) & '[30m°' & CHR(0x1B) & '[35m°±²²ÛBLAG þß ²±ÛÛ ÛÜ ²Û' & CHR(0x1B) & '[s' & CHR(0x1B) & '[uÛÛß °±²²Û Þ±²ÛÛ' & CHR(0x1B) & '[30m²' & CHR(0x1B) & '[35mÞ°±²Û ²²ÛÛݱ²Û' & CHR(0x1B) & '[30mÄ' & CHR(0x1B) & '[0;34m' & CHR(0x1B) & '[s' & CHR(0x1B) & '[uÄ' & CHR(0x1B) & '[1;35mÜÛÛÛÛßXKCD?' & CHR(0x1B) & '[30m°' & CHR(0x1B) & '[0;33mÜ' & CHR(0x1B) & '' ;------------------------------ $aMatch = StringRegExp($yourstr, "[^\x1B]++|\x1B\[[0-?]*[ -/]*[@-~]", 3) ConsoleWrite("Err:" & @Error & @CRLF) ;--------------------------------------------------------- _ArrayDisplay($aMatch) I grabbed that regex from your linked stackoverflow page you could just '|' other beginning sequences as well but if you can link me a good file that fails i can build it up a bit more
    1 point
  15. Try my ADO.au3 udf. Look in my signature.
    1 point
  16. This works for me. #RequireAdmin #include <GUIConstantsEx.au3> #include <InetConstants.au3> #include <WindowsConstants.au3> Local $VLCLocal = @DesktopDir & '\vlc.exe' Global $_g_hVLCRemote = 0 Global $_g_sVLCUrl = 'http://mirror.vorboss.net/videolan/vlc/3.0.1/win32/vlc-3.0.1-win32.exe' ; changed for faster download $Form1 = GUICreate("Form1", 198, 220, 520, 224) $MenuItem1 = GUICtrlCreateMenu("File") $OpenMenu = GUICtrlCreateMenuItem("Open", $MenuItem1) $ExitMenu = GUICtrlCreateMenuItem("Exit", $MenuItem1) $ToolsMenu = GUICtrlCreateMenu("Tools") $AboutMenu = GUICtrlCreateMenu("About") ; download if file wasn't found or file size mismatch If Not FileExists($VLCLocal) Or FileGetSize($VLCLocal) <> InetGetSize($_g_sVLCUrl) Then VLC_Download() GUISetState(@SW_SHOW) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $OpenMenu Run($VLCLocal) EndSwitch WEnd Func VLC_Download() GUICtrlSetState($OpenMenu, $GUI_DISABLE) ; Disable the menu until file is downloaded $_g_hVLCRemote = InetGet($_g_sVLCUrl, $VLCLocal, $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND) AdlibRegister('VLC_CheckForFile', 2000) ; check for downloaded file EndFunc ;==>VLC_Download Func VLC_CheckForFile() If InetGetInfo($_g_hVLCRemote, $INET_DOWNLOADCOMPLETE) Then GUICtrlSetState($OpenMenu, $GUI_ENABLE) AdlibUnRegister('VLC_CheckForFile') ; stop checking ElseIf InetGetInfo($_g_hVLCRemote, $INET_DOWNLOADERROR) Then ; add some feedback for failed download here, if required GUICtrlSetState($OpenMenu, $GUI_DISABLE) AdlibUnRegister('VLC_CheckForFile') ; stop checking EndIf EndFunc ;==>VLC_CheckForFile
    1 point
  17. Version 1.0.0.0

    1,676 downloads

    ADAT is a tool to simplify common AD administration tasks. Every administration task has its own tab. It is easy to add new functions (tabs) to the tool. Some often used functions are already available: list users, computers, OUs. File ADAT.ini can be customized to hold the AD logon information if necessary. Known Bugs: 2018-03-07: If the Script started from SciTE works but the "Process" button in the compiled exe does not do anything then please add the following line at the top of your script: #Au3Stripper_Ignore_Funcs=Process_Tab* BTW: If you like this tool please click the "I like this" button. This tells me where to next put my development effort
    1 point
  18. Earthshine

    NomadMemory problem :)

    C Programming Pointers
    1 point
  19. Earthshine

    NomadMemory problem :)

    if you want to get into memory and pointers then C and C++ are your tools. good luck.
    1 point
  20. You're misunderstanding this. Using AutoItX is not the problem. The problem is that it SUDDENLY stopped working.
    0 points
×
×
  • Create New...