Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/22/2019 in all areas

  1. I tried to find some method of keeping the right-click context menu of a button, open, after selecting an entry. There are a few reasons why that might be desirable. I know I have done that before, possibly with VBA ... or maybe it was with TrayMenu or perhaps older AutoIt. Anyway, I could not find an existing solution here at the Forum or elsewhere. However I did come across some code by @LarsJ, that seemed to offer a pathway to a solution. https://www.autoitscript.com/forum/topic/145091-breaking-main-loop-when-context-menu-is-shown/?do=findComment&comment=1028169 After much experimentation, I eventually came up with a workable solution, that some of you might find useful. Strictly speaking, it does not keep the context menu open, instead it just instantly re-opens it to the selection (i.e. sub-menu) you just clicked. Here is my code. Enjoy! ; THANKS to LarsJ for the Menu Style element, that allowed the Case loop to continue while Context Menu is waiting for a selection. ; His example can be found at AutoIt Forums. ; https://www.autoitscript.com/forum/topic/145091-breaking-main-loop-when-context-menu-is-shown/?do=findComment&comment=1028169 #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <ButtonConstants.au3> #include <Misc.au3> #include <GuiMenu.au3> Global $Button_menu, $Context_menu, $Extras_menu, $URL_menu Global $audio_item, $Batch_item, $Close_item, $Exit_item, $HD_item, $Paste_item Global $audio, $extra, $handle, $HD, $item, $pos, $style, $winpos $style = $WS_CAPTION + $WS_POPUP + $WS_CLIPSIBLINGS + $WS_SYSMENU $DropperGUI = GUICreate("Dropbox", 170, 110, Default, Default, $style, $WS_EX_TOPMOST) $Button_menu = GUICtrlCreateButton("Menu", 126, 85, 40, 19) GUICtrlSetFont($Button_menu, 7, 600, 0, "Small Fonts") GUICtrlSetTip($Button_menu, "Program Menu!") ; ; CONTEXT MENU $Context_menu = GUICtrlCreateContextMenu($Button_menu) $Paste_item = GUICtrlCreateMenuItem("Paste URL(s)", $Context_menu) GUICtrlCreateMenuItem("", $Context_menu) $Batch_item = GUICtrlCreateMenuItem("Batch Mode", $Context_menu, -1, 0) ; $Extras_menu = GUICtrlCreateMenu("&Extra Options", $Context_menu) $URL_menu = GUICtrlCreateMenu("&URL Options", $Extras_menu) $Params_item = GUICtrlCreateMenuItem("Use Extra Parameters", $URL_menu, -1, 0) $HD_item = GUICtrlCreateMenuItem("HD", $URL_menu, -1, 0) $audio_item = GUICtrlCreateMenuItem("Convert audio to AAC", $URL_menu, -1, 0) ; GUICtrlCreateMenuItem("", $Context_menu) GUICtrlCreateMenuItem("", $Context_menu) $Close_item = GUICtrlCreateMenuItem("Close", $Context_menu) GUICtrlCreateMenuItem("", $Context_menu) $Exit_item = GUICtrlCreateMenuItem("Exit", $Context_menu) $handle = GUICtrlGetHandle($Context_menu) _GUICtrlMenu_SetMenuStyle($handle, BitXOR(_GUICtrlMenu_GetMenuStyle($handle), $MNS_MODELESS)) $audio = 4 $extra = 4 $HD = 4 $item = "" GUISetState(@SW_SHOW) While 1 If $item == "extras" Then $item = "" Send("e") Send("u") ControlFocus($DropperGUI, "", $handle) EndIf $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Or $msg = $Exit_item ; Close the program or Minimize the Window If _IsPressed("11") Then ; Minimize the Window GUISetState(@SW_MINIMIZE, $DropperGUI) WinSetTitle($DropperGUI, "", "URL Dropbox was created by TheSaint") Else ExitLoop EndIf Case $msg = $GUI_EVENT_MINIMIZE WinSetTitle($DropperGUI, "", "URL Dropbox was created by TheSaint") Case $msg = $GUI_EVENT_RESTORE WinSetTitle($DropperGUI, "", "URL Dropbox") Case $msg = $Button_menu ; Program Menu ControlClick($DropperGUI, "", $Button_menu, "right", 1) Case $msg = $Paste_item ; Paste URL(s) Case $msg = $Params_item ; Use Extra Parameters If $extra = 1 Then $extra = 4 ElseIf $extra = 4 Then $extra = 1 EndIf GUICtrlSetState($Params_item, $extra) $item = "extras" ReOpenContextMenu() Case $msg = $HD_item ; HD If $HD = 1 Then $HD = 4 ElseIf $HD = 4 Then $HD = 1 EndIf GUICtrlSetState($HD_item, $HD) $item = "extras" ReOpenContextMenu() Case $msg = $Batch_item ; Batch Mode Case $msg = $audio_item ; Convert audio to AAC If $audio = 1 Then $audio = 4 ElseIf $audio = 4 Then $audio = 1 EndIf GUICtrlSetState($audio_item, $audio) $item = "extras" ReOpenContextMenu() Case Else ; Other EndSelect WEnd ; GUISetState(@SW_HIDE) ; GUIDelete($DropperGUI) Exit Func ReOpenContextMenu() $mpos = MouseGetPos() $winpos = WinGetPos($DropperGUI, "") $pos = ControlGetPos($DropperGUI, "", $Button_menu) MouseMove($winpos[0] + $pos[0] + 10, $winpos[1] + $pos[1] + 30, 0) ControlClick($DropperGUI, "", $Button_menu, "right", 1) MouseMove($mpos[0], $mpos[1], 0) EndFunc I am fairly certain there is a nicer/cleaner/better method than mine, certainly as far as the SEND commands go, but I could not find it. The best way to test, is to select one of the sub menu items - Convert audio to AAC Extra Options -> URL Options -> Convert audio to AAC It should close and instantly re-open back at that option, with a visible tick now showing. A perfect example of wanting to keep the context menu open, is when you want to enable all three options in that submenu. Painful to re-browse to set each. You also get instant visual confirmation of the setting. NOTES You may note the mouse movement, and wonder why. Firstly, the context menu will always open (top left) at where the mouse cursor last was. So I ensure it is always the same location each time (MENU button). Secondly, after the context menu re-opens, if the mouse cursor is not over a menu entry, then a mouse move closes the sub menus ... defeating the process.
    2 points
  2. Sample code creation through Sample code main menu The Sample code main menu is used for Sample code creation. Much more code can be created through the menu than through the Detail info listview page. In addition, the menu can be used to set Sample code options and for Sample code maintenance. Menu items with a 3-point ending opens an intermediate listview page. These pages works in the same way as the Detail info listview page. Select one or more rows and right-click to create Sample code. Unlike the Detail info page, rows can be selected in several sections at once. The upper part of the menu through Sleep(1000) creates common Sample code. Code snippets... adds functions and code sections to solve tasks of a more specific nature. If the Check error setting is off, the Check error menu can be used to add error checking as needed. Corrections adds a list of necessary and optional corrections to the code. In the Options menu, settings can be turned on/off. The lower part of the menu is about Sample code maintenance. The Help system includes a review of the menu items.
    2 points
  3. The Eigen C++ template library is a great environment for matrix computing; it is fast, reliable, extensive, and well-documented. It is also completely free, and does not rely on any external dependencies. Unfortunately for AutoIt users, the term “template library” implies that any functions you call are only instantiated upon compilation (in C++). That means there's nothing to hook into. To make Eigen ’s most important functionality directly accessible from within AutoIt scripts (version 3.3.14+, download it here), I developed the Eigen4AutoIt environment. It runs on Windows and under Wine also on Linux and Mac (Ubuntu, Debian, Fedora, and MacOS supported by WineHQ), and SUSE, Slackware, and FreeBSD supported by the distros). >Download the latest version It consists of: 1) Eigen4AutoIt.au3 an AutoIt library of wrapper functions that contain extensive bounds checks, matrix management, file I/O, type conversion, and precision control, and two-way data exchange with files and native AutoIt arrays; 2) Eigen-wrapper dlls (EigenDense.dll, EigenDense_x64.dll) re-maps matrices created in AutoIt as Eigen Matrix objects, then calls Eigen’s powerful core functions; in the spirit of open-source, the full C++ source code I wrote is included in the bundle (see subdirectory "source"). The basic functions consist of a single Eigen call; decompositions and statistics are more involved. 3) Additional materials: the user-interactive, animated Function Selector and MatrixViewer tools the MatrixFileConverter to read/write E4A matrices from/to .csv ASCII, Excel, and Xbase files. three libraries of scientific and mathematical constants online Help, with example code for every function Quickstart Manual (11-page pdf, updated) Test suite Tutorials from Basics to Advanced Please note: none of this is part of Eigen's own distribution you only need this bundle; you do not need to install Eigen. How it works: No matrix content is ever transferred, only memory pointers, meaning computations in AutoIt are virtually as fast as in Eigen’s native environment, with the added advantage of not having to be compiled first. The drawback is that Eigen's native ad-hoc expression templates (and their internal optimisations) cannot be exploited here; you have to construct your operations with the basic building blocks. These provide matrix creation, I/O, cellwise operations, reduction, multiplication, transformation, decomposition (LU, Householder, Choleski, and Jacobi SVD; these include general linear solvers) and a small statistics module by yours truly. IMPORTANT: Posting Rules for this thread: 1) Do not post or PM me any matrix-, maths-, or Eigen-related questions. Eigen has its own User Forum for that (or try math.stackExchange.com). I am not your maths guru! If you post such questions, I will either ignore your post or remind you of this rule. 2) Do not post or PM me your data sets and/or non-working Eigen4AutoIt scripts; I will not analyse your data or fix your scripts for you! There are many reasons why a linear algebra procedure might fail to produce the answer you expect. You are wielding great mathematical power here, so exploit the fantastic internet resources at your fingertips and learn how to use it. To get you started, I've listed a few video tutorials and other helpful materials in the header remarks of Eigen4AutoIt.au3. Also check out the test scripts, the Tutorials, and the Help file. 3) I do warmly welcome all of the following: remarks, advice, suggestions for improvements, encouragement, cash; bug reports re. the Eigen4AutoIt interface (individual functions that don't work the way they should) and/or the associated dll code (ditto); your own working Eigen4AutoIt templates of general use that you'd like to see implemented in a future release. Regarding that last item, have a look at my PCA tutorial. After the step-by-step stage, I summarise the entire procedure in a "mini script" of Eigen4AutoIt calls. Then I introduce the two internal PCA functions I developed, which replace that script with two simple calls. You can do the same thing, and submit your own functional Eigen4AutoIt script in this thread. If I consider it of general use and can implement it, it may become a new Eigen4AutoIt function in the next release (with source acknowledgement, of course). This means that you'd get a precompiled dll version of your script that will likely run faster and be simpler to call. Thereby this thread would become an Eigen4AutoIt Example Scripts mini forum. It's just a thought. >Download the latest version (uncompressed size: 36.1 MB) How to Install You need AutoIt version 3.3.14 or later. Simply run the installer, navigate to the tutorial subdirectory, open the first tutorial ("Basics") in Scite, and start it. This shows basic matrix I/O and mode switching (single versus double precision). If that runs, you're in business. NB to leverage the full power of x64 features, you'll also need to have the full Scite4AutoIt3 package installed. For more info, see sections "Bitness" and "Shared Memory" in the Help, main topic: "Work Environment" page.
    1 point
  4. I use IBM's AS400 Client Access software for work and over the last year or so have figured out how to connect to the session itself. This greatly simplifies sending and getting text as controlsend and clipget functions are not necessary. This will obviously be a little confusing to users who do not currently automate their AS400 tasks, but trust me it's much easier and infinitely more reliable using this method to send/get text. The below code is very rudimentary, I have offered it up so that someone else may not have to do quite as much reading/research to connect using only AutoIt. It was much easier finding VBA code to do this. I'm in sales, not software development, so my code is not going to be all that impressive to some of you. Please feel free to make any and all types of suggestions/comments/criticisms, I consider this one of the best ways to learn. Enough of my long winded explanations... on to the details. I use $Ps and $Oia as Globals so any/all functions can utilize them. The function sendtosession simply adds the "waitforinputready" ($Oia.InputInhibited) functionality to the default SendKeys function. This waits for the session to allow key presses so they don't all go to the buffer before the AS400 can accept your keys. In most instances the keys can be buffered with no ill effects, but I have run into some errors so I use it. I am not sure the autECLConnMgr is needed. I'm going to try commenting it out the next time I run one of my scripts, but perhaps someone else has some knowledge to add to this? Global $Ps, $Oia ;$Ps is the part you interact with, $Oia is the current message in the status bar $Session = "A" ; can be any session letter ;or you can use string functions to parse it from the active window as below(my typical usage as I use multiple monitors and sessions) $window = WinGetTitle("") $AS400hwnd = WinGetHandle($window) $Session = StringMid(WinGetTitle($AS400hwnd), 9, 1) $Obj_ConnMgr = ObjCreate("PCOMM.autECLConnMgr") ; Maybe this is not needed? Anyone know what it is for? $OBJ_EmulSession = ObjCreate("PCOMM.autECLSession") ; getting closer $OBJ_EmulSession.SetConnectionByName($Session) ; now you are connected to the session $Ps = $OBJ_EmulSession.autECLPS ; Object for the user interface $Oia = $OBJ_EmulSession.autECLOIA ; Object for the message interface (terminology... remember I'm in sales;) ) Func sendtosession($keys, $rownum = 1, $colnum = 1, $inhibit = 1) $Ps.SendKeys($keys, $rownum, $colnum) ; actual usage for AS400 macros too if $inhibit = 1 Then While $Oia.InputInhibited <> 0 WEnd EndIf EndFunc $Ps.GetText("Row","Col","Length") ; actual usage for AS400 macros too Again, I'm not trying to provide a working example with the above, I'm just passing the information along. Below is a simple script I created to update contract prices for over 400 items (manually it took hours, now it takes only minutes) you can run this code, but it will not do anything unless you have the data and the AS400 session. You get the gist of it though, I'm sure. Hopefully this helps someone else out there. Dan #include <GUIConstantsEx.au3> #include <Excel_CPU.au3> #include <array.au3> #include <WindowsConstants.au3> #include <C:\Documents and Settings\r060091\My Documents\Requires Backup\send to as400 session.au3> ;sendtosession($keys, $rownum = 1, $colnum = 1, $inhibit = 1) Opt("guioneventmode", 1) Opt("mustdeclarevars", 1) Opt("trayicondebug", 1) ;********************************** set contract expiration date Global $Expiration_Date = "013111";** ;********************************** Global Const $Col_Price = 12 Global Const $Col_Item = 1 Global Const $Col_Cust = 1 Global Const $Col_UOM = "" Global Const $District = 12 Global $Obj_ConnMgr, $OBJ_EmulSession, $Ps, $Oia, $OBJ_Excel, $AS400hwnd, $GUI_hwnd, $Array_Excel_Price_Sheet, $Screen_ID Create_Helper_GUI() Func SET_AS400() Local $window, $Session $window = WinGetTitle("") $AS400hwnd = WinGetHandle($window) $Session = StringMid(WinGetTitle($AS400hwnd), 9, 1) $Obj_ConnMgr = ObjCreate("PCOMM.autECLConnMgr") $OBJ_EmulSession = ObjCreate("PCOMM.autECLSession") $OBJ_EmulSession.SetConnectionByName($Session) $Ps = $OBJ_EmulSession.autECLPS $Oia = $OBJ_EmulSession.autECLOIA EndFunc ;==>SET_AS400 Func SET_Excel() GUISetState(@SW_HIDE) HotKeySet("^1") Local $exwindow $exwindow = WinGetTitle("") $OBJ_Excel = _ExcelBookAttach($exwindow, "Title") $Array_Excel_Price_Sheet = _ExcelReadSheetToArray($OBJ_Excel, 2, 1) ;~ _ArrayDisplay($Array_Excel_Price_Sheet) GUISetState(@SW_SHOW) EndFunc ;==>SET_Excel Func Change_Prices() GUIDelete($GUI_hwnd) Local $Price, $UOM, $Customer, $Item, $Cust_Item, $Delimiter For $COUNTER_Row = 1 To UBound($Array_Excel_Price_Sheet) - 1 $Price = Round($Array_Excel_Price_Sheet[$COUNTER_Row][$Col_Price], 3) If $Col_UOM <> "" Then $UOM = $Array_Excel_Price_Sheet[$COUNTER_Row][$Col_UOM] If $Col_Cust <> $Col_Item Then $Customer = $Array_Excel_Price_Sheet[$COUNTER_Row][$Col_Cust] $Item = $Array_Excel_Price_Sheet[$COUNTER_Row][$Col_Item] Else $Cust_Item = $Array_Excel_Price_Sheet[$COUNTER_Row][$Col_Cust] $Delimiter = StringInStr($Cust_Item, "-") $Customer = StringMid($Cust_Item, $Delimiter + 1) $Item = StringLeft($Cust_Item, $Delimiter - 1) EndIf sendtosession($District & $Customer, 10, 45) sendtosession($Item, 12, 45) sendtosession("[eraseeof]", 12, StringLen($Item) + 45) sendtosession("[PF11]") $Screen_ID = $Ps.GetText(2, 1, 8) If $Screen_ID = "PM413-01" Then Switch $Ps.GetText(24, 2, 7) Case "INV0010" $OBJ_Excel.Application.Cells($COUNTER_Row + 1, $Col_Item).Interior.ColorIndex = 6 MsgBox(0, "Error", "No item code available; the affected cell has been highlighted yellow. Click OK to continue." & @CRLF & @CRLF & "This message closes automatically after ~30 seconds.", 30) ContinueLoop Case "INV0011" $OBJ_Excel.Application.Cells($COUNTER_Row + 1, $Col_Item).Interior.ColorIndex = 3 MsgBox(0, "Error", "The item code appears to be invalid; the affected cell has been highlighted red. Click OK to continue." & @CRLF & @CRLF & "This message closes automatically after ~30 seconds.", 30) ContinueLoop Case "AR00002" $OBJ_Excel.Application.Cells($COUNTER_Row + 1, $Col_Cust).Interior.ColorIndex = 3 MsgBox(0, "Error", "The Customer number appears to be invalid; the affected cell has been highlighted red. Click OK to continue." & @CRLF & @CRLF & "This message closes automatically after ~30 seconds.", 30) ContinueLoop Case "AR00062" sendtosession("[PF10]") Case "CNS0003" sendtosession("[PF5]") While $Ps.GetText(2, 1, 8) <> "PM413-02" WEnd sendtosession("Y", 21, 46) sendtosession("[enter]") sendtosession("[PF11]") EndSwitch EndIf While $Ps.GetText(2, 1, 8) <> "PM413-02" WEnd sendtosession($Price, 10, 48) sendtosession("[eraseeof]", 10, StringLen($Price) + 48) If $Col_UOM <> "" Then sendtosession($UOM, 11, 48) If $Col_UOM <> "" Then sendtosession("[eraseeof]", 11, StringLen($UOM) + 48) sendtosession($Expiration_Date, 12, 48) sendtosession("[Enter]") While $Ps.GetText(2, 1, 8) <> "PM413-01" WEnd Switch $Ps.GetText(24, 2, 7) Case "CNS0008" $OBJ_Excel.Application.Cells($COUNTER_Row + 1, $Col_Item).Interior.ColorIndex = 6 MsgBox(0, "Error", "For some reason this item was not accepted; the affected cell has been highlighted yellow. Click OK to continue." & @CRLF & @CRLF & "This message closes automatically after ~30 seconds.", 30) ContinueLoop Case "CNS0005" ContinueLoop Case "CNS0074" ContinueLoop Case "CNS0004" ContinueLoop Case Else $OBJ_Excel.Application.Cells($COUNTER_Row + 1, $Col_Item).Interior.ColorIndex = 7 MsgBox(0, "Error", "An unknown error has occured. The affected cell has been highlighted pink. Click OK to continue." & @CRLF & @CRLF & "This message closes automatically after ~30 seconds.", 30) ContinueLoop EndSwitch Next MsgBox(0, "", "Success!") Exit EndFunc ;==>Change_Prices Func Create_Helper_GUI() Local $GUI_Instruct_Label, $GUI_Window_Label, $Last_Title, $Contract_Expires, $Change_Prices_Button $GUI_hwnd = GUICreate("AS400 Contract Maintenance Tool", 600, 75, -1, -1, $GUI_SS_DEFAULT_GUI, $WS_EX_TOPMOST) GUISetState(@SW_SHOW) GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents", $GUI_hwnd) $GUI_Instruct_Label = GUICtrlCreateLabel("Activate the AS400 session you would like to use to update the contract prices, then press CTRL-1.", 10, 10, 580) $GUI_Window_Label = GUICtrlCreateLabel("Current Window: " & WinGetTitle("[active]"), 10, 30, 580) HotKeySet("^1", "SET_AS400") While $AS400hwnd = "" If WinGetTitle("[active]") <> $Last_Title Then GUICtrlSetData($GUI_Window_Label, "Current Window: " & WinGetTitle("[active]")) $Last_Title = WinGetTitle("[active]") EndIf WEnd HotKeySet("^1") GUICtrlSetData($GUI_Instruct_Label, "OK, now activate the Excel document that contains your contract prices and press CTRL-1") HotKeySet("^1", "SET_EXCEL") While Not IsObj($OBJ_Excel) If WinGetTitle("[active]") <> $Last_Title Then GUICtrlSetData($GUI_Window_Label, "Current Window: " & WinGetTitle("[active]")) $Last_Title = WinGetTitle("[active]") EndIf WEnd HotKeySet("^1") ;~ GUICtrlSetData($GUI_Instruct_Label, "What is the contract expiration date?") GUICtrlSetData($GUI_Window_Label, "") GUICtrlDelete($GUI_Window_Label) ;~ $Contract_Expires = GUICtrlCreateDate("Expires:", 10, 30, 250, 25) $Change_Prices_Button = GUICtrlCreateButton("Change Prices", 410, 30) GUICtrlSetOnEvent($Change_Prices_Button, "change_prices") While 1 WEnd EndFunc ;==>Create_Helper_GUI Func SpecialEvents() Exit EndFunc ;==>SpecialEvents
    1 point
  5. Updates today are about the Sample code menu, Sample code creation and the Help menu. Sample code creation includes code creation through the Detail info listview page and the Sample code main menu. All planned functionality in relation to the listview, Sample code creation and the Help system is hereby implemented. With completion of the Help system, a lot of information has been moved from first post and other posts into the Help system. There may be another few updates on element detection and treeview features. And more examples will be added in Using UI Automation Code in AutoIt, especially on advanced topics. New zip-file in bottom of first post. Also new zip-file in Using UI Automation Code in AutoIt. You should download the new zip-file. The updated code is much better than the old code.
    1 point
  6. water

    WMI and IPV6

    Convert to or from hex? Functions Dec, Hex come to my mind.
    1 point
  7. user4157124

    help with regex

    Possibly: ;([^ ]+) ([^[;]+)\[*([0-9]*)?\]*
    1 point
  8. @alienclone IMO, whenever you finished the daily task, just calculate how much time the script has to wait until the next run, and sleep for the whole of that calculated time
    1 point
  9. FrancescoDiMuro

    WMI and IPV6

    So, what you're getting is the Wi-Fi Network Adapter, which should not be confifured with IPV6 IP, isn't it?
    1 point
  10. Nine

    WMI and IPV6

    The idea behind asking for help is to create a runable example of what it is not working. And it is not asking us to work for you until you get the right solution...
    1 point
  11. FrancescoDiMuro

    WMI and IPV6

    @Dwalfware We can't see the content of both $cboAdapters nor _GetSelectedNIC(), so, we can't ain't assist you
    1 point
  12. ISI360

    ISN AutoIt Studio

    Thanks for the detailed description @Inpho! Will all be fixed in the next update
    1 point
  13. https://www.autoitscript.com/wiki/Arrays https://www.autoitscript.com/autoit3/docs/keywords/For.htm These should give examples on what faust has mentioned.
    1 point
  14. count how many hypertext have in a page put in array and cicle with for
    1 point
  15. Your Obfuscator is too easy to deObfucation ! Here is your ObfuscatorScript encrypted by my Obfuscator : (Attachments) Obfuscator_Obfuscated.au3
    1 point
  16. ImageSearch 64 bit.rar
    1 point
  17. trancexx

    ResHacker project

    Resources viewer and compiler. You can drop file (dll, exe ...) on treeview or use menu control to load file, or drop file on executable after compiled or just run and use it as a resource dll compiler. Constructive comments are always welcomed. New script attached (16th April 2009) How to use compiling option: - click on Action menu. - choose Initialize Compiler. - go to menu again and choose Generate Initial DLL - any file that you want to add to your resource dll drop on tree view or use Add Resource button. New window pops up. You need to chose type, name and language of resource. You can choose to use predifined values, only name is required in that case. - when you are done with modifications save new dll file. File menu will have Save as... option - that's it. You have your resource dll compiled with AutoIt Supported resources: - RT_CURSOR - RT_BITMAP - RT_ICON - RT_MENU - RT_DIALOG - RT_STRING - RT_ACCELERATOR - RT_GROUP_CURSOR - RT_GROUP_ICON - RT_VERSION - RT_ANICURSOR - RT_ANIICON - RT_HTML - RT_MANIFEST - AVI (special) - WAV (special) - JPEG (special) - PNG (special) - GIF (special) By supported I mean that resource can be viewed and/or saved. Other resources are shown as hexadecimals, with ASCII character and address display. Download script (zip format due to upload size limit): ResourcesViewerAndCompiler.zip edit: had to remove the old attachment to make more space in my attachment folder.
    1 point
  18. BrewManNH

    Unset a Hotkey ?

    HotKeySet("q")
    1 point
  19. For anyone who makes it to this page hoping for an answer this is the way I implemented the code from careca. Remember, my code is probably *hi* considering I'm a newbie, but maybe you can take something from it. *This is code based on communicating with a config.ini file... Case 1 Local $FolderPath = IniRead("config.ini", "Config", "One", "Default") Local $sRead = IniRead("config.ini", "Config", "One", "Default") Local $Ext = StringRight($sRead, 3) ConsoleWrite('Extension: '&$Ext &@CRLF) If $Ext = 'mp3' Then SoundPlay($sRead, @HotKeyPressed) ElseIf $Ext = 'exe' Then ShellExecute($sRead, @HotKeyPressed) ElseIf $Ext = 0 Then ShellExecute($sRead, @HotKeyPressed) EndIf The thing I'm looking around for now, is how to list the different extensions, instead of having to utilize an "If" "ElseIf" statement for each one. Other than that, Good Luck and Have Fun.
    0 points
  20. control if array have only hypertext that you interest _arraydisplay($array) if yes do a loop classical is For $i=0 to ubound($array) -1 if no clean before array or much better use regexp for take only a correct link but with out browse page is difficult give a suggest
    0 points
×
×
  • Create New...