Jump to content
Macro Express Forums

Leaderboard


Popular Content

Showing content with the highest reputation since 02/22/2013 in all areas

  1. 3 points
    Also remember to check out the a&ccelerator key things... from the help file (bottom of "Multiple Choice Menu" page): =========== Multiple Choice Tips Make one of the Multiple Choice selections the Default Let's say you want option B to be your default selection. Use the Variable Set String command and select the Set Value Now option. Set the value of variable T1 to B. Insert this command before your Menu command in the macro script. When the macro runs, option B will display as the default selection. Allow users to select a menu item with the keyboard instead of clicking with the mouse Let's look at the Multiple Choice Menu image above. There are four entries in the Menu List. We want to set this up so that when the menu is displayed, the user can press a keystroke rather than click on their choice with the mouse. To do so we would modify the Menu List to look like the following: A &Go to Macro Express web site B &Run Notepad C &Insert email tagline D &Connect to FTP site You'll notice that an ampersand "&" has been placed in front of each item in the menu list. When the list is displayed during playback of the macro, the letter following the ampersand "&" will be underlined. The user can then press the underlined letter for the choice they want. This will highlight their choice. Pressing the Enter key will perform the macro selection chosen. The ampersand may be placed anywhere in the text string. It doesn't need to be placed before the first letter as in the example above. For example, we could set item A to read as follows: Go to &Macro Express web site. In this case the M will be underlined and pressing the "M" key during playback will highlight this menu option. Note 1: Be careful not to duplicate the underlined letters. Otherwise the first duplicate letter will be the default choice each time the letter is pressed. Note 2: If you are using the If Variable Contains command with the Multiple Choice Menu and you have “Save Item Text” checked, be sure to change the text you are comparing so that it includes the ampersand "&". For example, change “If Variable %T1% contains "Choice One" to “If Variable %T1% contains "&Choice One". Note 3: To insert an ampersand in the text that is not used as an accelerator, such as a menu item of "This & That", insert two ampersand symbols. Write the menu item as "This && That", so that it displays correctly when the macro runs.
  2. 3 points
    Preselect a value in the multiple choice by setting the result value to that value before showing the menu. IE when the multiple choice pops up one will already be selected. Then you can arrow up and down to select different values. Enter to accept.
  3. 1 point
    There is nothing inherently risky about saving data in the registry as long as you know and remember which registry area (key) you use. Using the registry may be somewhat faster than reading from a file. However, depending on what your macro is doing, you may not notice the difference. There is a potential side effect of using values in the area of the registry (registry key) that Macro Express uses such as this: HKEY_CURRENT_USER\Software\Insight Software Solutions\Macro Express 6\My Values When you export the Macro Express settings (Tools, Export Program Configuration) and then import them either later (Tools, Import Program Configuration) Macro Express will display a warning about the registry keys and values that it does not recognize. It is pretty safe to use other areas of the registry such as HKEY_CURRENT_USER\Terry Work Area You could also use something like this: HKEY_CURRENT_USER\Software\Insight Software Solutions\Macro Express Data
  4. 1 point
    Yes, me too. I chose a similar location, with separate keys for Integer and Text, and made it a 'Favorite' for fast access.
  5. 1 point
  6. 1 point
    Trigger the counting macro when the entry screen appears. Then: // Variable Set Integer %N1% to 0 Repeat Until %N1% >= 6 Wait for Key Press: Any Key Variable Modify Integer: Inc (%N1%) Repeat End Text Box Display: xxxxxxxxxx (done, so start whatever other macro you want to run) //
  7. 1 point
    Generally, in Windows, this appears as CRLF, not LFCR. Try this: Variable Modify String: Replace "-A%CR%%LF%" in %Temp% with ""
  8. 1 point
    When you do the replace, include a newline set. A newline in Window is two non-printing characters carriage return and line feed. 0x0d and 0x0a. That's what gives you the line break. Click here for my instruction on how to create them in MEP. You will want to add them to the end of the string you want to replace.
  9. 1 point
    @rberg: For Firefox and its derivatives like Waterfox there's Add URL to Window Title (Advanced KeePass Usage) https://addons.mozilla.org/en-US/firefox/addon/add-url-to-window-title/ @Service Center: There's also the direct option of triggering the entire activity by running a macro instead of a bookmark. It would open the page and then do your work on it. A pop-up menu containing all such 'web work' macros would be a convenient access method. Or, if there are only a few, memorable hotkeys. Alan: Me too; many nerdy hours of pixel and text forensics!
  10. 1 point
    What I just came up with is using a Google Chrome extension ("Add URL To Window Title") that adds the url to the Window Title in chrome (I also limited it to the specific webpage in the Extensions Details) and then used the Macro Express Window Title activator and that seems to be working well.
  11. 1 point
    Hard to advise without seeing an example macro. For instance, are you activating it when a window is opened with that title? Or when it gains focus as @acantor assumes? And must it be an exact title or a partial one? What operations is it performing after starting? If for instance it's using a Text Box Display (TBD) to give you a message then as soon as you close that TBD it will probably regain focus and start the macro again. However, I've found that MEP sometimes does not respond reliably to window title commands. Timing or other obscure conflicts with the OS may be the cause. In which case other 'recognition' methods may be needed. Could you share a very simple macro that consistently exhibits 'activating over and over'? (Ask if you don't know how to do that.)
  12. 1 point
    One frustration – not really the fault of ME – is the unpredictable time it takes for a copy-to-clipboard command to finish. The ME solution is to set a clipboard delay in “Preferences”, presumably allowing the command to finish. A short delay – even a long delay – always winds up being too short in rare instances; and a long delay wastes a lot of user time. My most useful macro, below, is called by other macros wherever an inline Clipboard Copy would otherwise be used. In ME “Preferences” the clipboard delay is specified as zero. The macro finishes almost instantaneously when the clipboard copy is fast; and waits patiently for over a second when the clipboard copy is slow. My concern when writing the macro was, that Windows would return a non-null but still incomplete clipboard value, so the macro would return to caller with only part of the intended data. In practice that has never happened, and I have been using it exclusively for years with never a problem. // // Set clipboard to nulls -- check to make sure it happens Clipboard Empty Repeat Start (Repeat 10000 times) If Clipboard Text Equals "" Repeat Exit Else End If Repeat End // Copy to clipboard (CTRL-c) Clipboard Copy // Loop until clipboard is non-null, that is, copy to clipboard has completed. Since the value // to be copied may in fact BE null, we limit the loop to a nominal 1 second, then quit, leaving it null. // (Due to overhead, the actual loop time will be more like 2 seconds than 1.) Repeat Start (Repeat 100 times) Delay 10 Milliseconds If Clipboard Text Equals "" Else Repeat Exit End If Repeat End // Return to caller Macro Return //
  13. 1 point
    That's a difficult one! No single macro would warrant the title of 'my best' and if I compiled a short list of 'most useful' from the couple of thousand I've written it would cover a wide spectrum. Used up to scores of times a day - Sizing and positioning windows (mainly File Explorer folder) - Opening frequently used folders - Typing frequently used text with shortkeys (file and folder paths, signatures, email addresses, my name and address, phone numbers, regular phrases like 'Best wishes', etc) - Typing date & time with shortkey '=dt' Wednesday 7 August 2019, 1402 - When saving a series of files (such as when browsing images or text etc that I need for videos), a click close to the right of 'Save As...' (or variations) saves it as xyz-05 if the previous was xyz-04 - In all my applications, middle clicking its title to display a menu of macros, sometimes via subfolders - When creating a Text Box Display command, generate 'VariableName = ' to the left of '%VariableName%' with a single click -Etc Infrequently used but invaluable - During my frequent work in Google Earth, Google Maps, Memory-Map, etc: finding/copying/moving places and tracks between them; changing properties of multiple tracks, etc - On average once or twice a week, but many more directly after a walking holiday: from the GPX file of a walk recorded on my iPhone, automatically creating an Excel spreadsheet like that I showed in the recent thread about VBA, plus a profile like this: https://www.dropbox.com/s/63dwbplk410mj80/20190709Falmouth-Portscatho-r483-m6.7-PS.jpg?raw=1 (That's one of my most complex macros, calling a dozen submacros, some of which use VBA and some use Python scripts I've written in PaintShop Pro. I'd say it's probably the one I'm most proud of.) - One of Cory's, with only minor adaptation by me: 'Search and report on macro text'. - Etc -------------------- I'd like to have used the 'Last run time' column to give a more objective reply on the first category, but (a) It doesn't include submacros (b) It gets destroyed when a new version is installed
  14. 1 point
    One thing to try: From the list of macros in the macro explorer, right-click on it and choose 'copy.' You'll have to give it a new name and trigger, but the code will all be the same.
  15. 1 point
    Your approach gave me an idea of another way to handle the input data, but without using the clipboard. Create a plain text file that consists of one line. I used Notebook to create the file. I inserted a string of 600,000 characters on one line. (PS: I typed 10 characters, selected everything and copied, and pasted ten times. Then I repeated the process until there are 1000 characters, then 10,000, then 100,000. It takes but a minute to generate hundreds of thousands, or millions, of characters.) Then the script uses "Text File Begin Process." I specified the variable to receive the information, and chose "Process All Records" beginning on record 1. It takes time to save the file, but once it has been saved, the macro runs almost instantly (at least on my computer). Text File Begin Process: C:\Users\Me\Documents\tmptmp.txt Text File End Process Variable Set Integer %y% to the length of variable %x% Text Box Display: %y% Variable Set Integer %Digit% to 0 Repeat Until %Digit% Is Greater Than "9" If Variable %x% Contains "%Digit%" Text Box Display: YES, contains at least one digit Macro Stop Else Variable Modify Integer %Digit%: Increment End If End Repeat Text Box Display: NO, does not contain any digits
  16. 1 point
    My processor is Intel Core i3-2370M CPU @ 2.40GHz 2.40GHz. I don't know what that means. Here's the ME routine I tested with. I built a Notepad document so I could easily modify the number of characters for tests. The first couple lines, copying to clipboard, took no more than a second or so, even with 500,000 characters. Setting string T1 from the clipboard took many seconds, maybe 15 or 20 seconds, with 500,000 characters. Very fast with only 5,000 characters. Displaying the "release" text box allows estimating the actual scan time (your code) -- that is, from the time I hit ENTER to close the "release" box, until either the "contains" or "contains none" box appears. So, to finally answer your question, your code runs almost instantaneously whether I start with 5,000 characters or with 500,000. I used Macro Return rather than Macro Stop like you did, but I doubt that matters much. // Text Type: <CTRLD>a<CTRLU> Macro Run: 0_Generic_Copy_To_Clipboard Variable Set String %T1% from Clipboard Text Type: <END> Text Box Display: release to start process Variable Set Integer %N1% to 0 Repeat Until %N1% > 9 If Variable %T1% contains "%N1%" Text Box Display: contains Macro Return Else Variable Modify Integer: Inc (%N1%) End If Repeat End Text Box Display: contains no digits Macro Return //
  17. 1 point
    That's a good thought. I just have so many hot-key combos in my head already :- / Another idea I had was (when the application is already open) right-click on the Minimize button, top right of window. I could scope it globally,then have for example If window title is ABC -go to ABCforum.com If window title is XYZ -go to XYZforum.com and so on.
  18. 1 point
    Or, if you are just looking for number of RECORDS (as you say in the title of your posting) -- use Text File Begin Process, which transfers the records one at a time into a variable, and you can add to a counter each time through.
  19. 1 point
    texttype win not working on my x64 windows 10 laptop. I am using mex 3.11a
  20. 1 point
    I want to copy a column of excel and paste each cell values one by one below into another excel column where my cusror is, ignoring blank cells. I need one by one. paste cell one value then down arrow then cell two value its important. Splitting the array into each cell value is tricky for me and later pasting one by one value Please help
  21. 1 point
    I do not know. Have you tried it? How about Macro Express? Try the "Set Window Order Always on top" command.
  22. 1 point
    This will remove the name that is contained in %T[2]% from variable %[T3]%. Variable Modify String: Replace "%T[2]%" in %T[3]% with "" // Leave the "Replace Text With" box empty
  23. 1 point
    Variable Set Integer %N1% from Position of Text in Variable %T1% (search for "user with code ") That gives you the displacement within the variable of the text "user with code ". Add 15 to the value in N1, and you have the starting position within the text of the two-character code. Extract the characters into another variable with Variable Modify String: Copy Part of %T1% to %T2% (starting position N1, characters to copy 2) If I have misunderstood what you want, then give us some examples of text you are working with, and the codes you are trying to isolate.
  24. 1 point
    * Example of one line of data, in variable T1. In your macro the Text File Process will populate the text variable, rather than the Set String command. Variable Set String %T1% " X:1701 Y:580" * Set integer to position of "X:" within the data Variable Set Integer %N1% from Position of Text in Variable %T1% * Bump position up by 2 characters so N1 is pointing to the first digit instead of to "X:" Variable Modify Integer: %N1% = %N1% + 2 * What Cory said -- move four digits from the data to another variable Variable Modify String: Copy Part of %T1% to %T2% [starting position N1, number of digits 4] * Display the extracted digits to verify the extraction is working properly Text Box Display: %T2% Of course in your actual macro, you would move the extracted digits to the array instead of Text Box Display.
  25. 1 point
    Here are two other ways to append a carriage return to a text file. Note that in Windows lines are terminated with two control characters: CR LF 1. The "Variable Modify String: Append %T1% to Text File" has a checkbox that says to include CR/LF. You could use this with an empty variable to append only CRLF. 2. This is what I do. At the top of my macro I include these: Variable Set %T13% to ASCII Char of 13 Variable Set %T10% to ASCII Char of 10 Then when setting strings I do something like this: Variable Set String %T1% "SomeValue%T13%%T10%"
  26. 1 point
    Increment an integer counter each time through the Repeat loop. Then test the counter value. For example, if your delay command specifies 1 second delay after checking pixel value, then when the counter reaches 120 the macro has been waiting about two minutes. If you use a half-second delay, check counter for 240 rather than 120; etc. When the counter reaches 120, click on the refresh button and reset the counter to zero to wait some more. You may be able to press the F5 key to refresh rather than using the mouse. Get pixel color Set counter = 0 Repeat until pixel color Wait 1 second Increment counter If counter >= 120 Click refresh Set counter = 0 End if Get pixel color Repeat End
  27. 1 point
    Here's the macro I said I'd post on return from holiday. Wish I'd seen your post about MXE files a few hours earlier, Samrae! I'd almost finished the macro, but it was based on my own method of identifying the variable type (tStringXyz is a text macro, nNumber an integer, dValue decimal, etc). Your MXE export idea allowed the following more flexible approach, which works for any style of variable naming. However, note that this works only for MX Pro, not MX3. Exports from the latter seem to be in a radically different form, based on the couple of old examples I found. The 'input' section for MX3 could instead follow my earlier method of first creating a text file from the target and the 'addition' section could be very similar to this one. It's not blisteringly fast, but a LOT faster than doing the job manually. About 1.5 seconds per variable on my first few tests, the largest with about 80 variables, mainly text. The major advantage I see for automating this is that it's so much easier to ensure identical variable names. Not having to remember or search for the names used before, with possible ambiguity and confusion if I vary them. See other notes in command comments. // Export the source macro as MXE (MX Pro only, not MX3). // Select the source macro containing the variables for copying across to the target macro Text Box Display: Select source macro Wait for Right Mouse Click Text Box Close: Select source macro Text Type (Simulate Keystrokes): x // Choose Export Delay: 0.2 seconds Text Type (Simulate Keystrokes): p // Choose Playable (MXE) Delay: 0.2 seconds // Save the MXE as a TXT file with a permanent name and path of your choice. Text Type (Use Clipboard and Paste Text): C:\Users\terry\Dropbox\Macro Express (Sundry)\ExportedMXE.txt // Choose Playable (MXE) Wait for Text Playback Mouse Move: 790, 564 Relative to Current Window // Save button Mouse Left Click Text Type (Simulate Keystrokes): y // Yes to overwrite Delay: 0.1 seconds Wait for File to Exist: C:\Users\terry\Dropbox\Macro Express (Sundry)\ExportedMXE.txt // In MX Explorer, select the TARGET macro to receive the copied variables Text Box Display: Select target macro Wait for Right Mouse Click Text Box Close: Select target macro Text Type (Simulate Keystrokes): i // Open the target macro in Script Editor Wait for Window Title: Macro Express Pro - Script Editor [ // Procees the exported text file, line by line. Text File Begin Process: C:\Users\terry\Dropbox\Macro Express (Sundry)\ExportedMXE.txt // Do nothing if the line does not start with '['. // If it DOES start with a right square bracket, it contains variable information which needs parsing, ready for adding to the target macro. Variable Modify String: Copy a substring in %tTextLine%, starting at 1 and 1 characters long to %tFirstChar% If Variable %tFirstChar% Does not Equal "[" // Ignore this text line Continue End If // This is a variable, but it might be one of the built-in types. If Variable %tTextLine% Contains "%T%" // Ignore this text line OR If Variable %tTextLine% Contains "%N%" // Ignore this text line OR If Variable %tTextLine% Contains "%D%" // Ignore this text line OR If Variable %tTextLine% Contains "%C%" // Ignore this text line // Then ignore this too. Continue End If // This is a variable // Locate the first colon ': ', in order to capture the variable type. Variable Set Integer %nColon% to the position of ":" in %tTextLine% Variable Modify Integer: %nColon% = %nColon% - 2 Variable Modify String: Copy a substring in %tTextLine%, starting at 2 and %nColon% characters long to %tVariableType% // Locate the first '% ' (at the end of the variable name). Variable Set Integer %nEndVariable% to the position of "% " in %tTextLine% Variable Modify Integer %nEndVariable%: Decrement // Last char in variable name // Calculate nVarStart, the first char of variable name. Variable Set Integer %nVarStart% to 0 Variable Modify Integer: %nVarStart% = %nColon% + 4 // Calculate nVarNum, the number of chars in variable name. Variable Set Integer %nVarNum% to 0 Variable Modify Integer: %nVarNum% = %nEndVariable% - %nColon% Variable Modify Integer: %nVarNum% = %nVarNum% - 3 Variable Modify String: Copy a substring in %tTextLine%, starting at %nVarStart% and %nVarNum% characters long to %tVariableName% // NOTE: Some of the labels used in the MXE are different to those in the Script Editor. string = Text integer = Integer float = Decimal control = Control handle = Handle bool = Boolean large integer = Large Integer datetime = Date/Time // NOTE: The two other variable data fields Global and Elements could also be captured at this stage. But for 99% of my work they are not used, so I've not done so. Macro Playback Speed: 0.33 times faster than normal Switch( %tVariableType% ) Case: string // Text // Add the selected variable to the target macro Mouse Move: 1340, 120 Relative to Screen // Variables tab Mouse Left Click Delay: 0.1 seconds Mouse Move: 1720, 1092 Relative to Screen // Add button Mouse Left Click Delay: 0.3 seconds Wait for Window Title: Variable Properties Text Type (Simulate Keystrokes): %tVariableName% Delay: 0.1 seconds Text Type (Simulate Keystrokes): <TAB> // Select Variable Type box Delay: 0.1 seconds Text Type (Simulate Keystrokes): t Delay: 0.1 seconds Text Type (Simulate Keystrokes): <ENTER> // Confirm Delay: 0.1 seconds End Case Case: integer // Integer // Add the selected variable to the target macro Mouse Move: 1340, 120 Relative to Screen // Variables tab Mouse Left Click Delay: 0.1 seconds Mouse Move: 1720, 1092 Relative to Screen // Add button Mouse Left Click Delay: 0.3 seconds Wait for Window Title: Variable Properties Text Type (Simulate Keystrokes): %tVariableName% Delay: 0.1 seconds Text Type (Simulate Keystrokes): <TAB> // Select Variable Type box Delay: 0.1 seconds Text Type (Simulate Keystrokes): i Delay: 0.1 seconds Text Type (Simulate Keystrokes): <ENTER> // Confirm Delay: 0.1 seconds End Case Case: float // Decimal // Add the selected variable to the target macro Mouse Move: 1340, 120 Relative to Screen // Variables tab Mouse Left Click Delay: 0.1 seconds Mouse Move: 1720, 1092 Relative to Screen // Add button Mouse Left Click Delay: 0.3 seconds Wait for Window Title: Variable Properties Text Type (Simulate Keystrokes): %tVariableName% Delay: 0.1 seconds Text Type (Simulate Keystrokes): <TAB> // Select Variable Type box Delay: 0.1 seconds Text Box Display: Text Type (Simulate Keystrokes): d Delay: 0.1 seconds Text Type (Simulate Keystrokes): <ENTER> // Confirm Delay: 0.1 seconds End Case Case: control // Control // Add the selected variable to the target macro Mouse Move: 1340, 120 Relative to Screen // Variables tab Mouse Left Click Delay: 0.1 seconds Mouse Move: 1720, 1092 Relative to Screen // Add button Mouse Left Click Delay: 0.3 seconds Wait for Window Title: Variable Properties Text Type (Simulate Keystrokes): %tVariableName% Delay: 0.1 seconds Text Type (Simulate Keystrokes): <TAB> // Select Variable Type box Delay: 0.1 seconds Text Type (Simulate Keystrokes): c Delay: 0.1 seconds Text Type (Simulate Keystrokes): <ENTER> // Confirm Delay: 0.1 seconds End Case Case: large integer // Large integer // Add the selected variable to the target macro Mouse Move: 1340, 120 Relative to Screen // Variables tab Mouse Left Click Delay: 0.1 seconds Mouse Move: 1720, 1092 Relative to Screen // Add button Mouse Left Click Delay: 0.3 seconds Wait for Window Title: Variable Properties Text Type (Simulate Keystrokes): %tVariableName% Delay: 0.1 seconds Text Type (Simulate Keystrokes): <TAB> // Select Variable Type box Delay: 0.1 seconds Text Type (Simulate Keystrokes): l Delay: 0.1 seconds Text Type (Simulate Keystrokes): <ENTER> // Confirm Delay: 0.1 seconds End Case Case: bool // Boolean // Add the selected variable to the target macro Mouse Move: 1340, 120 Relative to Screen // Variables tab Mouse Left Click Delay: 0.1 seconds Mouse Move: 1720, 1092 Relative to Screen // Add button Mouse Left Click Delay: 0.3 seconds Wait for Window Title: Variable Properties Text Type (Simulate Keystrokes): %tVariableName% Delay: 0.1 seconds Text Type (Simulate Keystrokes): <TAB> // Select Variable Type box Delay: 0.1 seconds Text Type (Simulate Keystrokes): b Delay: 0.1 seconds Text Type (Simulate Keystrokes): <ENTER> // Confirm Delay: 0.1 seconds End Case Case: handle // Handle // Add the selected variable to the target macro Mouse Move: 1340, 120 Relative to Screen // Variables tab Mouse Left Click Delay: 0.1 seconds Mouse Move: 1720, 1092 Relative to Screen // Add button Mouse Left Click Delay: 0.3 seconds Wait for Window Title: Variable Properties Text Type (Simulate Keystrokes): %tVariableName% Delay: 0.1 seconds Text Type (Simulate Keystrokes): <TAB> // Select Variable Type box Delay: 0.1 seconds Text Type (Simulate Keystrokes): h Delay: 0.1 seconds Text Type (Simulate Keystrokes): <ENTER> // Confirm Delay: 0.1 seconds End Case Case: datetime // Date/Time Mouse Move: 1340, 120 Relative to Screen // Variables tab Mouse Left Click Delay: 0.1 seconds Mouse Move: 1720, 1092 Relative to Screen // Add button Mouse Left Click Delay: 0.3 seconds Wait for Window Title: Variable Properties Text Type (Simulate Keystrokes): %tVariableName% Delay: 0.1 seconds Text Type (Simulate Keystrokes): <TAB> // Select Variable Type box Delay: 0.1 seconds Text Type (Simulate Keystrokes): d Delay: 0.1 seconds Text Type (Simulate Keystrokes): <ARROW DOWN> Delay: 0.1 seconds Text Type (Simulate Keystrokes): <ENTER> // Confirm Delay: 0.1 seconds End Case End Switch Delay: 0.1 seconds Text File End Process And the code: <COMMENT Value="Export the source macro as MXE (MX Pro only, not MX3)."/> <COMMENT Value="Select the source macro containing the variables for copying across to the target macro"/> <COMMENT/> <TEXT BOX DISPLAY Title="Select source macro" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang2057{\\fonttbl{\\f0\\fnil\\fcharset0 Tahoma;}{\\f1\\fnil Tahoma;}}\r\n{\\colortbl ;\\red255\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\qc\\b\\f0\\fs20 In MX Explorer, navigate to the source macro, select it, and \\cf1 right-click\\cf0 it.\r\n\\par \r\n\\par This message will close automatically.\\f1 \r\n\\par }\r\n" Left="868" Top="485" Width="313" Height="183" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x02" Delay="0"/> <WAIT FOR RIGHT MOUSE CLICK Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT BOX CLOSE Header="Select source macro"/> <TEXT TYPE Action="0" Text="x" _COMMENT="Choose Export"/> <DELAY Flags="\x01" Time="0.2"/> <TEXT TYPE Action="0" Text="p" _COMMENT="Choose Playable (MXE)"/> <DELAY Flags="\x01" Time="0.2"/> <COMMENT Value="Save the MXE as a TXT file with a permanent name and path of your choice."/> <TEXT TYPE Action="1" Text="C:\\Users\\terry\\Dropbox\\Macro Express (Sundry)\\ExportedMXE.txt" _COMMENT="Choose Playable (MXE)"/> <WAIT FOR TEXT PLAYBACK Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <MOUSE MOVE Option="\x02" X="790" Y="564" _PROMPT="0x000A" _COMMENT="Save button"/> <MOUSE LEFT CLICK/> <TEXT TYPE Action="0" Text="y" _COMMENT="Yes to overwrite"/> <DELAY Flags="\x01" Time="0.1"/> <WAIT FOR FILE TO EXIST Filename="C:\\Users\\terry\\Dropbox\\Macro Express (Sundry)\\ExportedMXE.txt" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <COMMENT Value="In MX Explorer, select the TARGET macro to receive the copied variables"/> <TEXT BOX DISPLAY Title="Select target macro" Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang2057{\\fonttbl{\\f0\\fnil\\fcharset0 Tahoma;}{\\f1\\fnil Tahoma;}}\r\n{\\colortbl ;\\red255\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\qc\\b\\f0\\fs20 In MX Explorer, navigate to and \\cf1 right click\\cf0 the target macro.\r\n\\par \r\n\\par This message will close automatically.\\f1 \r\n\\par }\r\n" Left="868" Top="485" Width="313" Height="183" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x02" Delay="0"/> <WAIT FOR RIGHT MOUSE CLICK Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT BOX CLOSE Header="Select target macro"/> <TEXT TYPE Action="0" Text="i" _COMMENT="Open the target macro in Script Editor"/> <WAIT FOR WINDOW TITLE Title="Macro Express Pro - Script Editor [" Partial="TRUE" Wildcards="FALSE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <COMMENT Value="Procees the exported text file, line by line."/> <TEXT FILE BEGIN PROCESS Filename="C:\\Users\\terry\\Dropbox\\Macro Express (Sundry)\\ExportedMXE.txt" Start_Record="2" Process_All="TRUE" Records="1" Variable="%tTextLine%"/> <COMMENT Value="Do nothing if the line does not start with '['."/> <COMMENT Value="If it DOES start with a right square bracket, it contains variable information which needs parsing, ready for adding to the target macro."/> <COMMENT/> <VARIABLE MODIFY STRING Option="\x09" Destination="%tFirstChar%" Variable="%tTextLine%" Start="1" Count="1" NoEmbeddedVars="FALSE"/> <IF VARIABLE Variable="%tFirstChar%" Condition="\x01" Value="[" IgnoreCase="FALSE" _COMMENT="Ignore this text line"/> <CONTINUE/> <END IF/> <COMMENT Value="This is a variable, but it might be one of the built-in types."/> <IF VARIABLE Variable="%tTextLine%" Condition="\x06" Value="%T%" IgnoreCase="FALSE" _COMMENT="Ignore this text line"/> <OR/> <IF VARIABLE Variable="%tTextLine%" Condition="\x06" Value="%N%" IgnoreCase="FALSE" _COMMENT="Ignore this text line"/> <OR/> <IF VARIABLE Variable="%tTextLine%" Condition="\x06" Value="%D%" IgnoreCase="FALSE" _COMMENT="Ignore this text line"/> <OR/> <IF VARIABLE Variable="%tTextLine%" Condition="\x06" Value="%C%" IgnoreCase="FALSE" _COMMENT="Ignore this text line"/> <COMMENT Value="Then ignore this too."/> <CONTINUE/> <END IF/> <COMMENT Value="This is a variable"/> <COMMENT Value="Locate the first colon ': ', in order to capture the variable type."/> <VARIABLE SET INTEGER Option="\x0E" Destination="%nColon%" Text_Variable="%tTextLine%" Text=":" Ignore_Case="FALSE"/> <VARIABLE MODIFY INTEGER Option="\x01" Destination="%nColon%" Value1="%nColon%" Value2="2"/> <VARIABLE MODIFY STRING Option="\x09" Destination="%tVariableType%" Variable="%tTextLine%" Start="2" Count="%nColon%" NoEmbeddedVars="FALSE"/> <COMMENT/> <COMMENT Value="Locate the first '% ' (at the end of the variable name)."/> <VARIABLE SET INTEGER Option="\x0E" Destination="%nEndVariable%" Text_Variable="%tTextLine%" Text="% " Ignore_Case="FALSE"/> <VARIABLE MODIFY INTEGER Option="\x08" Destination="%nEndVariable%" _COMMENT="Last char in variable name"/> <COMMENT Value="Calculate nVarStart, the first char of variable name."/> <VARIABLE SET INTEGER Option="\x00" Destination="%nVarStart%" Value="0"/> <VARIABLE MODIFY INTEGER Option="\x00" Destination="%nVarStart%" Value1="%nColon%" Value2="4"/> <COMMENT Value="Calculate nVarNum, the number of chars in variable name."/> <VARIABLE SET INTEGER Option="\x00" Destination="%nVarNum%" Value="0"/> <VARIABLE MODIFY INTEGER Option="\x01" Destination="%nVarNum%" Value1="%nEndVariable%" Value2="%nColon%"/> <VARIABLE MODIFY INTEGER Option="\x01" Destination="%nVarNum%" Value1="%nVarNum%" Value2="3"/> <VARIABLE MODIFY STRING Option="\x09" Destination="%tVariableName%" Variable="%tTextLine%" Start="%nVarStart%" Count="%nVarNum%" NoEmbeddedVars="FALSE"/> <COMMENT Value="NOTE: Some of the labels used in the MXE are different to those in the Script Editor. \r\nstring = Text\r\ninteger = Integer\r\nfloat = Decimal\r\ncontrol = Control\r\nhandle = Handle\r\nbool = Boolean\r\nlarge integer = Large Integer\r\ndatetime = Date/Time\r\n"/> <COMMENT Value="NOTE: The two other variable data fields Global and Elements could also be captured at this stage. But for 99% of my work they are not used, so I've not done so."/> <COMMENT/> <MACRO PLAYBACK SPEED Speed="3" _ENABLED="FALSE"/> <SWITCH Variable="%tVariableType%"/> <CASE Value="string" _COMMENT="Text"/> <COMMENT Value="Add the selected variable to the target macro"/> <MOUSE MOVE Option="\x01" X="1340" Y="120" _PROMPT="0x000A" _COMMENT="Variables tab"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.1"/> <MOUSE MOVE Option="\x01" X="1720" Y="1092" _PROMPT="0x000A" _COMMENT="Add button"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.3"/> <WAIT FOR WINDOW TITLE Title="Variable Properties" Partial="FALSE" Wildcards="FALSE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT TYPE Action="0" Text="%tVariableName%"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<TAB>" _COMMENT="Select Variable Type box"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="t"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<ENTER>" _COMMENT="Confirm"/> <DELAY Flags="\x01" Time="0.1"/> <END CASE/> <CASE Value="integer" _COMMENT="Integer"/> <COMMENT Value="Add the selected variable to the target macro"/> <MOUSE MOVE Option="\x01" X="1340" Y="120" _PROMPT="0x000A" _COMMENT="Variables tab"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.1"/> <MOUSE MOVE Option="\x01" X="1720" Y="1092" _PROMPT="0x000A" _COMMENT="Add button"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.3"/> <WAIT FOR WINDOW TITLE Title="Variable Properties" Partial="FALSE" Wildcards="FALSE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT TYPE Action="0" Text="%tVariableName%"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<TAB>" _COMMENT="Select Variable Type box"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="i"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<ENTER>" _COMMENT="Confirm"/> <DELAY Flags="\x01" Time="0.1"/> <END CASE/> <CASE Value="float" _COMMENT="Decimal"/> <COMMENT Value="Add the selected variable to the target macro"/> <MOUSE MOVE Option="\x01" X="1340" Y="120" _PROMPT="0x000A" _COMMENT="Variables tab"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.1"/> <MOUSE MOVE Option="\x01" X="1720" Y="1092" _PROMPT="0x000A" _COMMENT="Add button"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.3"/> <WAIT FOR WINDOW TITLE Title="Variable Properties" Partial="FALSE" Wildcards="FALSE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT TYPE Action="0" Text="%tVariableName%"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<TAB>" _COMMENT="Select Variable Type box"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT BOX DISPLAY Content="{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang2057{\\fonttbl{\\f0\\fnil\\fcharset0 Tahoma;}{\\f1\\fnil Tahoma;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs16 Now add this DECIMAL variable\\f1 \r\n\\par }\r\n" Left="Center" Top="Center" Width="278" Height="200" Monitor="0" OnTop="TRUE" Keep_Focus="TRUE" Mode="\x00" Delay="0" _ENABLED="FALSE"/> <TEXT TYPE Action="0" Text="d"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<ENTER>" _COMMENT="Confirm"/> <DELAY Flags="\x01" Time="0.1"/> <END CASE/> <CASE Value="control" _COMMENT="Control"/> <COMMENT Value="Add the selected variable to the target macro"/> <MOUSE MOVE Option="\x01" X="1340" Y="120" _PROMPT="0x000A" _COMMENT="Variables tab"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.1"/> <MOUSE MOVE Option="\x01" X="1720" Y="1092" _PROMPT="0x000A" _COMMENT="Add button"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.3"/> <WAIT FOR WINDOW TITLE Title="Variable Properties" Partial="FALSE" Wildcards="FALSE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT TYPE Action="0" Text="%tVariableName%"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<TAB>" _COMMENT="Select Variable Type box"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="c"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<ENTER>" _COMMENT="Confirm"/> <DELAY Flags="\x01" Time="0.1"/> <END CASE/> <CASE Value="large integer" _COMMENT="Large integer"/> <COMMENT Value="Add the selected variable to the target macro"/> <MOUSE MOVE Option="\x01" X="1340" Y="120" _PROMPT="0x000A" _COMMENT="Variables tab"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.1"/> <MOUSE MOVE Option="\x01" X="1720" Y="1092" _PROMPT="0x000A" _COMMENT="Add button"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.3"/> <WAIT FOR WINDOW TITLE Title="Variable Properties" Partial="FALSE" Wildcards="FALSE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT TYPE Action="0" Text="%tVariableName%"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<TAB>" _COMMENT="Select Variable Type box"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="l"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<ENTER>" _COMMENT="Confirm"/> <DELAY Flags="\x01" Time="0.1"/> <END CASE/> <CASE Value="bool" _COMMENT="Boolean"/> <COMMENT Value="Add the selected variable to the target macro"/> <MOUSE MOVE Option="\x01" X="1340" Y="120" _PROMPT="0x000A" _COMMENT="Variables tab"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.1"/> <MOUSE MOVE Option="\x01" X="1720" Y="1092" _PROMPT="0x000A" _COMMENT="Add button"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.3"/> <WAIT FOR WINDOW TITLE Title="Variable Properties" Partial="FALSE" Wildcards="FALSE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT TYPE Action="0" Text="%tVariableName%"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<TAB>" _COMMENT="Select Variable Type box"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="b"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<ENTER>" _COMMENT="Confirm"/> <DELAY Flags="\x01" Time="0.1"/> <END CASE/> <CASE Value="handle" _COMMENT="Handle"/> <COMMENT Value="Add the selected variable to the target macro"/> <MOUSE MOVE Option="\x01" X="1340" Y="120" _PROMPT="0x000A" _COMMENT="Variables tab"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.1"/> <MOUSE MOVE Option="\x01" X="1720" Y="1092" _PROMPT="0x000A" _COMMENT="Add button"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.3"/> <WAIT FOR WINDOW TITLE Title="Variable Properties" Partial="FALSE" Wildcards="FALSE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT TYPE Action="0" Text="%tVariableName%"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<TAB>" _COMMENT="Select Variable Type box"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="h"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<ENTER>" _COMMENT="Confirm"/> <DELAY Flags="\x01" Time="0.1"/> <END CASE/> <CASE Value="datetime" _COMMENT="Date/Time"/> <MOUSE MOVE Option="\x01" X="1340" Y="120" _PROMPT="0x000A" _COMMENT="Variables tab"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.1"/> <MOUSE MOVE Option="\x01" X="1720" Y="1092" _PROMPT="0x000A" _COMMENT="Add button"/> <MOUSE LEFT CLICK/> <DELAY Flags="\x01" Time="0.3"/> <WAIT FOR WINDOW TITLE Title="Variable Properties" Partial="FALSE" Wildcards="FALSE" Indefinite="TRUE" Hours="0" Minutes="0" Seconds="0"/> <TEXT TYPE Action="0" Text="%tVariableName%"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<TAB>" _COMMENT="Select Variable Type box"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="d"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<ARROW DOWN>"/> <DELAY Flags="\x01" Time="0.1"/> <TEXT TYPE Action="0" Text="<ENTER>" _COMMENT="Confirm"/> <DELAY Flags="\x01" Time="0.1"/> <END CASE/> <END SWITCH/> <DELAY Flags="\x01" Time="0.1"/> <TEXT FILE END PROCESS/> And the MEX is attached. Naturally it will require some customising for folder locations etc. -- Terry, East Grinstead, UK CopyVariablesFromSourceToTarget.mex
  28. 1 point
    Others can better help you if you post your macro in a form that can be copied (as you did) and in a form that can be read, like this: // Accepte l'invitation. Variable Set Integer %N[1]% to %bleu_invitation% Repeat Until %N[1]% Does not Equal "%bleu_invitation%" Mouse Move: %pos_accepter_invitation[1]%, %pos_accepter_invitation[2]% Relative to Screen Mouse Left Click Text Box Display: débug : Delay: 500 seconds Mouse Move: 0, 0 Relative to Screen Delay: 500 milliseconds Get Pixel Color at (%pos_inte_invitation[1]%, %pos_inte_invitation[2]%) Relative to Screen into %N[1]% Text Box Display: débug : // Calibrage debug. Variable Set Decimal %bug_zone% to 1.7 Macro Run: - CALIBRAGE # - auto-debug. End Repeat Variable Set Decimal %bug_counter% to 0 You can copy your macro in a readable format by highlighting the macro commands, right-clicking your mouse and choosing "Copy Command Text". Looking at your macro in a format that we can read it shows that you have a delay of 500 seconds. That is more than 8 minutes.
  29. 1 point
    I hope this is ok being posted like this. A review of the forum guidelines didn't stand out to me as such, but I am tired and could have easily missed it. So if this isn't allowed, admins, please delete and I'll rephrase the request. Here's the short and sweet. I'd like to have someone review a video of a macro running I've developed for a client that's the first of many projects that we have to do through the rest of the year. I want to have a discussion about what's viewed at the 10,000 foot level with maybe the occasional 10 foot level. I don't need a bullet list of what's wrong and what should be changed, rather I'm looking for a back-and-forth conversation about the project, the macro, the approach, etc. I've worked with this client before, they were impressed with ME and now we're really getting deep with it. To prevent any liability, though, I'd have to have the person reviewing the video of the macro and the macro itself sign an NDA, limiting the liability just to anything to do with this particular client. As such, I'm looking for an individual who would be interested in working for me likely as a 1099 employee but possibly a w-2 employee. The work would be specific to this client to start, hence the value of reviewing what we are doing and giving input on this particular macro. It also likely wouldn't require assistance until later this year, start of Jan/2017 and might not be needed at all - however I do anticipate there still to be work as the pipeline is starting to get filled quite quickly to the point where I'm concerned I won't have the bandwidth to handle it. I wouldn't have anyone sign anything first. Instead, feel free to contact me and we can discuss your experience and see if it's something you're interested in before we even talk about signing any sort of legal document. I also would not be opposed to any sort of partnership with other Macro Developers who have their own business and want to do a C2C or some other agreement. If that can't work, or if this post has to get deleted, then I will either record the video and scrub a lot of of in editing or I will send just the macro with much of it edited as well. But ideally I would like to have a no restrictions conversation about what the macro is doing and I really can't do that without the full thing being seen and an NDA being signed. PM me if interested. Flame me if this isn't allowed. Admin delete if you get to it first . Thanks, Doug
  30. 1 point
    I can't see the screen image you attached. But I think you're talking about the icon that disables individual line(s) in a macro. For example in my screen shot below, I have highlighted three lines. If I click the icon the lines will appear with a line drawn through them, and will be ignored when the macro runs. In Macro Express 3.x it just happens that the icon is opposite line 9; it has nothing to do with line 9. As to why a line in your macros is not running, we would have to see the macro scripts.
  31. 1 point
    This topic has been discussed a lot and there is no simple way i know of to do it.
  32. 1 point
    My German is worse than your English, so I won't even try. I don't know if this will work or not. It depends whether the multiple choice menu is seen by Macro Express as a window. The multiple choice menu has a title. Start a second macro based on the menu's window title appearing. In the second macro, wait for a keystroke (any key) making the choice. In the second macro, type ENTER or use the mouse to click the OK key. The original macro that displayed the multiple choice menu should then continue. I can't test this because I have Macro Express 3, not Pro, and ME3 doesn't allow multiple concurrent macros to run.
  33. 1 point
    Thks alan and rberq i think this could help me to solve my problem But one more thing left how could i read time from other program running at system I dont want to use system time so that i can backtest any process runing in that program.....
  34. 1 point
    Does anyone know of any lock screen alternative, so that I can still have my dual PC (Win 7) monitors secure from prying eyes, but yet still run standard macro express functionality? I've done a lot of research, and haven't found any great solutions(winlockr, kid key locker). Basically, I'd like to be able to black out both screens and lock keyboard/mouse, except for a certain combination of keys to unlock. Then I can have macro's running behind the screen. Any thoughts or ideas? I have the latest macro express pro. I also heavily use Microsoft Access, but have no looked into calling macros with vbscript as I assume it's still subject to the same limitations if the screen is locked and you want to find certain windows.
  35. 1 point
    In Windows Explorer, manually place mouse over file name, click once to select the name. You could use other techniques, manual or macro-driven to do the selection. Macro can then do this: Type <ALTD>f<ALTU>m which highlights the name to be changed. Clipboard Copy the highlighted name. Set String T1 from clipboard. Variable Modify String: Lowercase %T1% Text Type T1 which overtypes the highlighted name. Text Type <ENTER>
  36. 1 point
    Works, tho a bit unreliable as it's dependent on web page and text available (which may repeat on page). I find it works better to Find a link then just text strings. Would be nice if we could directly identify weg page 'controls' (fields etc).
  37. 1 point
    Attached is a sample macro file for you. Below is the text for cursory reference. You should be able to at least understand the approach here. Also good to save this as a macro you can call later in other applications. Here I snab the text values for day, month, and year and convert them. Then tweak them and add them to the default value of a DateTime variable. Before I used this method I tried to to do the math but it's hell once you start considering all the leap year rules and so forth. I did it but it was very complicated. In VB.NET this is a simple cast command. I hope someday ISS will add an option to Variable Modify String to cast to DateTime. Alternatively one could make a simple JavaScript to do this instead. // Parse out the string values and cast Text Box Display: Default Date Value // Illustrate the zero date default value Variable Set String %strDoB% to "08/19/1968" // 'As sample I set the date to my birthday. This might be done with a clipboard instead. Variable Modify String: Copy a substring in %strDoB%, starting at 4 and 2 characters long to %strDoBDay% // Copy the day string Variable Modify String %strDoBDay%: Convert to Integer (%intDoBDay%) // Cast the day string to an integer value Variable Modify Integer: %intDoBDay% = %intDoBDay% + 1 // To align the day in 1900 12/30 plus 1 to be 12/31 Variable Modify String: Copy a substring in %strDoB%, starting at 1 and 2 characters long to %strDoBMonth% // Copy the month string Variable Modify String %strDoBMonth%: Convert to Integer (%intDoBMonth%) // Cast the month string to an integer value Variable Modify Integer: %intDoBMonth% = %intDoBMonth% - 1 // To make it zero based Variable Modify String: Copy a substring in %strDoB%, starting at 7 and 4 characters long to %strDoBYear% // Copy the year string Variable Modify String %strDoBYear%: Convert to Integer (%intDoBYear%) // Cast the year to an integer value Variable Modify Integer: %intDoBYear% = %intDoBYear% - 1900 // To align with the 1/1/1900 convention // Add the sample DoB value Variable Modify Date/Time: %dtDoB% = %dtDoB% + %intDoBDay% Days // Simply add the day integer Variable Modify Date/Time: %dtDoB% = %dtDoB% + %intDoBMonth% Months // Simply add the month integer Variable Modify Date/Time: %dtDoB% = %dtDoB% + %intDoBYear% Years // Simply add the year integer Text Box Display: Result CastDate.mex
  38. 1 point
    I frequently struggle with this limitation of MEP. I even offered to write a generic .NET add-on program to create a multiple-input form on the fly for users. But there was no interest. The best advice I can think of for you is to use a multiple choice menu but use the multiple choice option instead of the single choice. However this will only work if you have Boolean responses. Another option might be to have a Text Box with multiple lines that would act as a display that you leave up. Then use a variable Set form user input box to affect it. I'm thinking you could enter a line number followed by a colon and take that input to run thou a tree logic again accumulating lines of string and display the results in the Text Box using the Update Text Box command instead.
  39. 1 point
    Acutally it seems simple but somehow i can´t figure it out. I want to have a macro timespecific while the current date doesn´t matter. The date should be ignored. For time calculations i convert the date/time variable into an decimal variable, right? So for the 19. of June Time 10:45 i get 42174,4479166667. The number left from the comma is the date. The number right from comma is 10:45. How can create a date/time variable without the date portion? Or how can i delete that portion in the according decimal variable? Thanks a lot Alex
  40. 1 point
    Thought I would pass this along to the forum ... Started the new Professional Grade Macros website. Not much there yet, but over the past few weeks I was working on its overall design and layout. The first task was to get all the tutorial videos, as well as the mex library, which were created for the Macro Express Explained book onto the site so people could still get access to them. Over the past couple of weeks there were plenty of downloads. Posted an MXPro article today. - Joe
  41. 1 point
    In Variables, choose Variable Set String. Then set the variable to use and "Set Value to File Name (Prompt)" This will open a file selection box.
  42. 1 point
    Click the "A" icon to modify the Accelerator...
  43. 1 point
    Hi All, Can any one suggest on how to export the Macro POP UP along with inside MEX files to another user Machine. I have created the Categories ( like department wise ) and under that created Macros and Macro Pop up for each category. In my system Icon tray macro pop up displaying the macro files which are lying under that macro pop up. So, now i want to export the same Macro pop up along with macro files to another machine on single click( or export). In another User machine also if I import the (Exported) .MEX file or Playable file that should import all the .mex files along with Macro POP UP and in POP UP shold dispaly all the macros same as in developer system. deployment process of import /export of macro pop up with .mex files. Thanks, Rk
  44. 1 point
    You don't know how to edit a text file? Well OK.... I'll do it for you. See attached. WCFG file edited by Cory.zip
  45. 1 point
    Hi All, Is there any way we can crack the password protected macro. I've couple of macro's which i need to modify but i can't open these macros. Even you can't disable or delete these macro from the Macro Express. Any suggestions ? Thanks in advance Gagan
  46. 1 point
    For the rest of this conversation let's assume you have the full version of MEP installed on the destination machine. There is no other way. If you have any more questions you can respond by number in my list below. To load a macro file (MEX) simply double click on it. MEX are like Word documents or any other kind of data file. Once installed an association is made to the MEX and MXE extensions. To be clear the user need not have Macro Explorer installed. I envision you email the user the macro, have them save it to their desktop, and double click it. Nothing will appear to happen but it will be loaded. Also understand MEP can have multiple MEX files open at one time. Once loaded any activation you have for your trial macro will be active. IE the hotkey you assigned will now function. There are a series of thing you can do to lock down a user installation of MEP. First you can password protect a macro itself for execution. Second you can password protect the macro file for editing. Third you can use the /B command line switch for "Browse Mode" (that term never made sense to me) at start up which will prevent the user from launching the Macro Explorer from the tray icon. See help section "Command Line Parameters" Just remember to also set this parameter to the normal Start Menu shortcut as well. I think that's the standard lot. I'm sure I've forgotten some part as this is just off the top of my head. I take some extra measures myself where I do not use the Start up Group shortcut but rather launch it from the Run section of the registry at start up. I also have a start up macro that ensures no other MEX files are loaded besides the proper corporate MEX file. It also set's up the environment and does a few tests and reports to the admin if anything is awry. You can run a macro from a command prompt. See help file section "Command Line Parameters". Even from another file that isn't even open. I don't know if that would help in any way. Consider using the Portable Version. See help section by same name. You would need to give her a thumb drive but it would allow you to have her test without having to install the program, load MEX files, or need of a license. .
  47. 1 point
    Look at the "Calc ulator and Note pad" macro in samples.mex. This sample macro file may be found in the folder where Macro Express is installed. Or you can download it here: Sample Macro Collection
  48. 1 point
    Windows allows windows to be hidden or visible. (Check out the Window Hide and Window Show macro commands.) Some applications do not remove windows but hide them. Other times there are both hidden and visible copies of a specific window. Since Macro Express gets the list of windows from Windows itself it can seem to be confused. You might be able to do something with the Repeat with Windows command. That command can return only visible windows. Maybe something like this: Variable Set String %T2% "" Repeat with Windows: Place title in %T1% If Variable %T1% contains "Information" Break End If Variable Set String %T2% "Found" Repeat End If Variable %T2% <> "Found" Macro Stop End If
  49. 1 point
    I am trying to run a hotkey that will copy the value into a variable from a excel cell.. perform a 'IF End' test function and the test function will replace the abbrivation of whatever the variable contains and then write it back to the cell.. Other than my 'AIR CANADA' and BANK OF NOVA SCOTIA' cells, the macro is giving me unpredictable results. There are times where it does replace the cell at all and at times will replace the cell with something that is not even in any of my test conditions. If I open up notepad and highlight the same words and run the macro, it behaves fine. Below is my script: <DIS:<CLIPE><CLIPC><TVAR2:01:03:><TMVAR2:01:01:00:000:000:><IFVAR2:1:01:1:AIR CANADA><TMVAR2:21:01:00:000:000:AIR CANADAAC><ENDIF><IFVAR2:1:01:1:ABB INC.><TMVAR2:21:01:00:000:000:ABB INC.ABB><ENDIF><IFVAR2:1:01:1:ABB CANADA><TMVAR2:21:01:00:000:000:ABB CANADAABB><ENDIF><IFVAR2:1:01:1:BANK OF NOVA SCOTIA><TMVAR2:21:01:00:000:000:BANK OF NOVA SCOTIABNS><ENDIF><IFVAR2:1:01:1:ALBERTA EMPLOYMENT, IMMIGRATION AND INDUSTRY><TMVAR2:21:01:00:000:000:ALBERTA EMPLOYMENT, IMMIGRATION AND INDUSTRYAEII><ENDIF><IFVAR2:1:01:1:ALBERTA HEALTH AND WELLNESS><TMVAR2:21:01:00:000:000:ALBERTA HEALTH AND WELLNESSAHW><ENDIF><IFVAR2:1:01:1:AMERICAN EXPRESS - CANADA><TMVAR2:21:01:00:000:000:AMERICAN EXPRESS - CANADAAMEX><ENDIF><IFVAR2:1:01:1:ATB FINANCIAL - ALBERTA TREASURY BRANCHES><TMVAR2:21:01:00:000:000:ATB FINANCIAL - ALBERTA TREASURY BRANCHESATB><ENDIF><IFVAR2:1:01:1:Banque Nationale Du Canada (BNC)><TMVAR2:21:01:00:000:000:Banque Nationale Du Canada (BNC)BNC><ENDIF><IFVAR2:1:01:1:BELL CANADA><TMVAR2:21:01:00:000:000:BELL CANADABELL><ENDIF><TEXTTYPE:%T1%><TEXTTYPE:<ARROW DOWN>> any ideas would be greatly appricated..
  50. 1 point
    Ahhhhh ShortKeys. No wonder I couldn't find anything about it on Google. I started with Keyboard Express a very long time ago but I've never used ShortKeys as I assumed all the functionality was included in ME. Is this not the case?
×
×
  • Create New...