Jump to content
Macro Express Forums

ejs

Members
  • Posts

    59
  • Joined

  • Last visited

Everything posted by ejs

  1. I have a macro where the schedule it is set so the macro runs after a 1 minute time out (that is, after one minute of keyboard and mouse inactivity). But the macro never runs after a sufficient amount of inactivity has occurred. It's definitely a problem with the scheduling function detecting the timeout. Other than that, I know the macro itself is good; it runs correctly when I invoke it from the hotkey combination. Also, if I change the schedule from the 'time out' selection to the 'other' selection, the macro runs according to schedule. Is anyone aware of problems like this, and whether there's anything I can do to fix it? I already tried checking off the box in the schedule dialog box for running the macro indefinitely, so this is not an issue on the time range or the date range. I am running macro express 3.7a on windows XP Pro service pack 1. Thanks
  2. Thanks Joe and Kevin. Your suggestions would work and I guess are the only solution in the current version of ME, but it seems like overkill to need to set up the macros in this way. I put in a feature enhancement request on the ME web site for them to add a startup controller to set the sequence of macros scheduled to run at start up. (I guess it would be just as good if ME offered a way to suppress error dialog boxes (as a currently offers) AND offered a new option to allow playback--when a macro encounters an error--to return to the macro that issued the Macro Run command instead of terminating the calling macro. Then I could use my 'Master macro' approach.) By the way, here is the specific example of what I would like to accomplish: I have a common set of variables that I want to be available to all of my macros. I want to set these variable values during startup and save them (this would be done via a macro that is run at startup). Some of the macros which will reference these variables are other macros that are also scheduled to run at startup. Thus, I need a way to make sure that the macro that defines the variable values is the first startup macro to run at startup.
  3. Can somebody give me a speed comparison for reading/writing a value to the registry versus reading/writing the same value to an INI file? To date, I've always used INI files, but I'm wondering when speed and performance are paramount, would I be better off using the registry? My objective is exchanging small amounts of data (eg, under 20 characters) with a program I write in a different language. Actually, I can send data from macro express to the other program by embedding the data in the command line, but my issue is returning to result from the other program to the macro that is in process. Are there any options for exchanging data between macros and other programs other than what I have considered: registry, INI (or other text file), or command line? is there any way to have an external program write a value to an environment variable such that macro express can read it? It is my understanding that when macro express is launched, it makes a local copy of the environment variables so that it would not detect if an external program changed an environment variable value.
  4. I would like to create several macros that would be scheduled to run every day at startup of macro express. My problem is that there may be dependencies between them, such that I need them to be run in a specific order. If I set each macro to have its own schedule for it to run at startup, I don't think there's any way for me to control the sequence and ensure that the macros are run in the correct order. Alternately, I could set each macro not to have any activation, and I could create a new "master" macro. The master macro uses the Macro Run command to call each of my macros in the sequence I specify, and I can set this master macro to run at startup. PROBLEM: if any macro encounters an error, none of the subsequent macros will be attempted (that is, if Macro A calls Macro B and Macro B fails, play back is not returned to Macro A... this is normal macro express behavior). I need all the macros to run, regardless of whether any individual Macro fails (I can put in my own commands for how a macro should behave if an earlier, dependent Macro failed.) As far as I can tell, macro express will allow me to do either BUT NOT BOTH of the following: - I can ensure that every macro runs (regardless of failures of other macros) by giving each macro its own startup schedule, but then I have no control over the sequence in which the start of macros are run - I can control the sequence, but then the entire sequence stops if one macro encounters an error Any suggestions for how I can have the best of both worlds?
  5. According to the macro express help file, Macro Return is used in conjunction with Macro Run. Macro A calls Macro B; use Macro Return in condition logic within Macro B to prematurely stop Macro B and return play back to Macro A. In contrast, if Macro Stop is used in the condition logic in Macro B, the entire macro play back will stop. Macro B will stop but so will Macro A. What if I want to have Macro B work as follows: (i) if I run Macro B by activating Macro B directly (that is, not called by a Macro Run command from Macro A), and if Macro B satisfies my condition, then Macro B stops (ii) if I run Macro B via a Macro Run command from Macro A, and if Macro B satisfies my condition, then Macro B stops and Macro A continues. Case ii can use the Macro Return statement to stop B and return control to A. but I need a single approach that will work for case (i) AND (ii). Can I still use Macro Return? If playback encounters Macro Return in a macro which was activated directly, does Macro Return do the same thing as Macro Stop. This is not covered by the macro express help. I gave it a try and it seems to work, but I wanted to ask this forum if I'm not overlooking any interactions and whether there is a better solution.
  6. Can macro express be used to defeat hacker attempts to use clandestine keystroke logging software to steal passwords? If a PC is infected with keystroke logging software, and if I typed out a password on the physical keyboard, then the software could capture my keystrokes and send them to a hacker. If instead of typing out the password, I have a macro express Text Type command (with 'Type text normally' option) outpulse the characters, can the keystroke logging software still capture the characters? The answer depends on how macro express emulates keystrokes. I know that the Windows on-screen keyboard (part of the accessibility program group, where the user mouse clicks on a GUI instead of typing), sends the selected characters to the active window in the same way that the physical keyboard does, and as a result is just is subject to keystroke logging. Separately, I considered using macro express Text Type command (with 'use clipboard to paste text' option) to eliminate any keystrokes. But I understand that some keystroke logging spyware is also able to read the clipboard, so this would not be an effective strategy.
  7. Does anyone have experience with this hotkey problem, or should I report it as a bug? I just got a new PC and moved my macro express mex file to the new PC. The old PC was running Windows XP Pro SP1. The new PC is running SP2. Both PC's used macro express version 3.7a. Four of my macros which worked correctly on the old PC do not run on the new PC. I ultimately determined that the problem is that these hotkeys are not activating the macros: control-alt-F1 control-alt-F2 control-alt-F3 control-alt-F4 When I changed the hotkeys for the non-operating macros, the macros worked. control-alt-F5 works fine as a hotkey. (Even control-alt-F6 works fine as a hotkey, even though macro express warns that control-alt-F6 is reserved by Windows and that the hotkey may not function correctly.) What is special about control-alt-F1 through F4 that these don't invoke the macros on SP2, and how can it be fixed?
  8. Does anyone have experience with this problem with the clipboard commands, or should I report it as a bug? This problem just started when I moved to a new PC. The old PC was running Windows XP Pro SP1. The new PC is running SP2. Both PC's used macro express version 3.7a. I have three macros (one command in each macro) set up with the following hotkeys: F2 = <CLIPT> (clipboard cut) F3 = <CLIPC> (clipboard copy) F4 = <CLIPP> (clipboard paste) These macros work correctly in all of my applications except within the the macro express scripting editor's macro script pane. When I'm writing or editing macros in the script pane, I want to use these macros so that I can have "one touch" buttons to cut, copy, or paste commands within the script. Within the macro script pane, the macros don't cut, copy, or paste. But these macros do work in other parts of macro express; for example, if I am within the text type command dialog box defining keystrokes, all three of these macros work correctly. These macros worked fine in the script pane on my old PC. On the new PC, I tried increasing the clipboard delay setting in the global preferences but it did not make a difference. Even thoug the clipbaord macros are not working in the script pane, the hotkeys are definitely invoking the macros when I'm within the script pane; the problem is that the three clipboard commands are not acting on the clipboard. Ultimately, I dealt with this problem by redefining each macro to not use the clipboard commands, but instead to type the clipboard keystrokes (ie, control x, control c, control v). As long as I have the global text type delay set to at least 325 microseconds, the keystroke macros (using the same three hotkeys) now cut, copy, and paste within the macro script pane. Does anyone know why I now need to use the keystrokes instead of using the clipboard commands?
  9. Here's some information on the interactions between Macro Playback Speed and Keystroke Speed. If Keystroke Speed=0, then setting the Macro Playback Speed to faster or slower than normal speed does not affect the playback delay between keystrokes. (of course, Macro Playback Speed will still affect the playback speed of the overall macro script.) If Keystroke Speed>0, then setting the Macro Playback Speed to faster or slower than normal speed affects the playback delay between keystrokes. That is, the Macro Playback Speed will exaggerate or diminish any non-zero keystroke delay that is set with Keystroke Speed. FYI - Macro Playback Speed = 1 = normal speed; >1 slower; <1 faster
  10. What is the interaction between the "keystroke speed" command within a macro script, and the global "use text type delay" value configured in the options/preferences/delays? Obviously the preference setting applies to all macros whereas the keystroke speed command applies only to the specific portion of a macro where it is called. But if you have the global value set to X microseconds and the keystroke speed value set to Y milliseconds, how do the two interact? Does the keystroke speed setting completely override the global setting, such that the inter-keystroke delay applied by macro express for the macro = Y (even if Y milliseconds < X microseconds)? Or is there a cumulative effect, so that the inter-keystroke delay applied by macro express = Y milliseconds + X microseconds?
  11. How can I set up a macro so that if it encounters an error in the middle of the script, the macro will continue at the next command in the script rather than aborting? I've tried using the "log errors" command, but that only suppresses of the error message dialog box; the macro still aborts. Specifically, I want to use the 'wait for web page to load' command, and I have the maximum wait time set to 10 seconds. If the web page does not load in ten seconds, the wait for web page command aborts the macro. But I really want the macro to continue at the next command in the script after ten seconds regardless of whether the web page has completed loading or not. I can't simply replace the wait for web page command with a 10 second delay command, because then the user will always be waiting a full 10 seconds every time, even though the web page normally loads in one second. Also, I would like to applied this "ignore error and continue" behavior only to specific macros. I don't want to select a systemwide option that would make this happen to all my macros.
  12. I experienced the same sporadic and random problem with multiple-choice menus. Specifically, in my case, I'm talking about radio button/one choice menus. Sometimes when I run the macro, the underlines are there; sometimes when I run the same macro, they are not there. I was running ME version 3.5d on Windows XP Pro SP1. I just upgraded to the latest ME version, so I have no information yet if the same problem happens there. I don't know how these experiences compared to those of the person who made the original post to this thread.
  13. You can create your macro as a text file outside macro express, as long as the text file has the same syntax as you would see if you viewed a macro through the External Editor. You then create a very short and simple macro within macro express. It might need only a single macro command-- load macro text file-- which reads in your external text file and runs it like a macro. (When I did something similar, I needed a couple of extra commands in this short and simple macro, just to set text variables to equal the path's to my external text files, since I wanted to make it easy to change those pass when the macro was distributed to others.) You say you want to run the macro on a schedule. As far as I know, you cannot set the schedule in the external text file. You have to assign the schedule within macro express by setting the schedule for the short and simple macro I mentioned above. There might be ways to have one macro set or change the schedule assigned to a different macro, but I don't know how that would be done.
  14. I have 3 macros, each containing only one macro command... clipboard cut, clipboard copy, or clipboard paste, which are assigned to hotkeys F2, F3, and F4 respectively. I am running Windows XP Pro SP1, with macro express v 3.7a. These macros run correctly in all applications, including when I use the hotkeys to invoke the macros within macro express itself. For example, I can use these hotkeys in the macro express scripting editor / macro script pane to copy and paste the macro commands in the script. I gave my .mex to a colleague who is running Windows XP Pro SP2, with macro express v 3.7a. We did a "macro open file" to load the .mex file on his system (not a import macros, so I know there are not any conflicts between my macros and hotkeys and anything he may have previously defined). The macros run correctly in every application on his machine EXCEPT for the macro express scripting editor / macro script pane. The macros definitely are invoked in the macro script pane when the hot key is pressed (because I put in a text display box as a diagnostic to confirm that the macro is really running). But for some reason, the clipboard cut, copy, and paste commands don't produce the desired outcome when the item they are cutting, copying, or pasting is a command within the macro script pane. Either nothing happens, or the selection highlighting changes to a different command in the macro script, depending on which command was highlighted when I pressed the hot key. (I have tried changing one of these macros so instead of a clipboard copy command, it uses a text type with control c, but this also does not do a copy within the macro script pane.) Does anyone know why this would happen in Win XP Pro SP2 but not in SP1? Any suggestions on how I can fix it? Should I report this to insight as a bug? Thank you
  15. Here is one possibility, although I've only experienced this problem when the macro was activated from a pop-up menu rather than activated from a hotkey combination. Perhaps the application has lost focus, so the text type macro is typing the text into a different window, including possibly a hidden window. Since it works correctly for you in notepad, this probably is not the problem, but it does not hurt to give this solution a try. Edit your macro, so that before your text type command, do a 'window activate' and put in the window name of the application you want the password to be typed in. You can also try adding the following diagnostic: at the very end of the macro, do a 'variable set string' commandand set a variable to 'set variable to top most window title'. After that command, do a 'text box display'command to show you the value of that variable. The diagnostic will 1) show you where macro express thinks it typed the text and 2) also gives you a confirmation that the macro really ran (e.g., in case you have a problem with your macro scope settings so that the hotkey does not even activate the macro when you are in your desired application).
  16. Yes, that's the right way to use the switch/case logic. There is only one thing I would suggest to make this "better", which may or may not work in your application. Do you really need to use the mouse movement and a mouse click? Wherever possible, I use 'text type' with the type text normally option to issue commands to applications. So if there is an item that can be accessed with a mouse click or with a keyboard shortcut (eg, control-letter or alt-letter followed by another letter, or alt-letter followed by several down arrows followed by enter), I always opt for using text type with the keyboard shortcut. That way, the macro will always work regardless of monitor size, where things are arranged on the screen, etc. But of course, there are times where there's no keyboard shortcut available and you have to use mouse clicks.
  17. Use the "set integer variable" command with "set a random value" option. Set the maximum random value to 3. This will select a random number 0 to 3. You can then use if/then or switch/case logic on the variable value= 0,1,2, or 3 to move the mouse to one of your four locations.
  18. For anybody that is interested, here is the longhand way of accomplishing the same thing that Cory was able to do with a single statement. I did not know about Cory's Variable Set From File command with Get File Path Info until his post, so I did it the long way. In general, Variable Set From File command is better than my example, although some people may find my technique instructive and useful in other situations where you need to parse out information. This macro breaks up a full path and file name, and puts each component in a separate variable. Comments in the macro define which component goes in which varaible. Run it first "as is" to get an idea of how it works; the results show up in a text box. Although this example directly assigns the path name and File to variable T1, it works just as well no matter how the path and file name string gets into variable T1 For example, you can use set text string variables - said value to filename (prompt). For those not familiar with how to copy macro code from the bulletin board: Copy the code below. In macro express, go to Macros: Add macro: select 'no activation' and press 'direct editor' button. Taste in the code below and save. At this point, if you wish, you can close the direct editor and reopen the macro in the scripting editor. <REM2:select file and parse out folder><REM2:T1 = file name with path><TVAR2:01:01:C:\Documents and Settings\Owner\Desktop\abcd.pdf><IVAR2:01:12:1><REP3:01:%N1%:0000-1:%N1%:1:02:><TMVAR2:10:02:01:N02:001:><IFVAR2:1:02:1:\><BREAK><ENDIF><ENDREP><REM2:T3 = path including final \><TMVAR2:10:03:01:001:N02:><REM2:T5 = path without final \><NMVAR:02:03:1:0000002:2:0000001><TMVAR2:10:05:01:001:N03:><REM2:T4 = file name without path><TMVAR2:09:04:01:000:000:><TMVAR2:11:04:00:001:N02:><REM2:T6 = file name without extension><REM2:loop from end of string with a negative increment><REM2: faster and required since some files have two periods><IVAR2:01:12:4><REP3:01:%N1%:0000-1:%N1%:1:02:><TMVAR2:10:02:04:N02:001:><IFVAR2:1:02:1:.><BREAK><ENDIF><ENDREP><NMVAR:02:03:1:0000002:2:0000001><TMVAR2:10:06:04:001:N03:><REM2:T7 = extension><NMVAR:01:03:1:0000002:2:0000001><NMVAR:02:04:1:0000001:1:0000002><TMVAR2:10:07:04:N03:N04:><REM2:show resuts><TBOX4:T:1:CenterCenter000500000400:000:ResultsFile name with path = %T1% File name = %T4% File name without extension = %T6% Path with ending \ = %T3% Path with no ending \ = %T5% Extension = %T7% ><REM2: ><REM2: ><REM2: ><REM2: >
  19. As the last person said, do a "Variable set string - such value from file" to load the entire file into a text variable. Just in case it isn't obvious on what to do once you have the file and a text variable, here are some more thoughts, based on how I frequently accomplish the same objective: - in my original "template" text file, I put in place holders for the text or numbers I want to insert. And I give these placeholders unique names to ensure that they don't accidentally coincide with actual text in my file. For example, I will use the phrase replaceMDNhere for the location where I need to put the MDN value. - once I load the text file into the variable, I do a search and replace on all occurrences of my placeholder in the text variable, such that the placeholder is replaced with whatever text or numbers I want to use. Replacements are done with the variable modify string - replace substring, where the replacement text can be a text variable, a number variable, or a fixed value. - if I have different placeholder strings in a single file, I repeat the replacement process for each placeholder. (On each replacement, I make sure that macro express is set to replace all occurrences.) - then write the text string back to a text file.
  20. 1 - I would not do anything involving exchanging variable values with the clipboard, except in cases where it is actually required. If you are doing text file processing, then such exchanges are not required, as you can read from the file into a veritable and you can write or append from the variable to a file (with Variable modify string - save to text file). 2 - here's my answer, assuming that you can wait until the end of the macro to have the applicable lines deleted from the original file (rather than requiring that each line be deleted from the original file as it is encountered). As I read in each line from the original file, I would decide whether I want to retain that line or delete it. If I want to retain it, I would append it to a text variable (also appending a CRLF line break after each line of text that is appended), and then read in the next line. If I want to delete the line, I would just read in the next line without appending anything to the text variable. At the end of the macro, I would write this text variable to the original filename, and thus overwrite the file with a new file that does not contain the lines you want deleted.
  21. Since there is not much interest in this capability, I directly e-mailed the information to the three people who wanted it.
  22. I built an enhancement to Macro Express which allows me to have pop-up menus containing 60 macros (rather than the maximum of 36 allowed by Macro Expresses native pop-up menus). If anyone is interested in using this, please post a reply to this message thread or send an email to ejs_mac_express@yahoo.com If there is enough interest, I will post the files for download. I provide an overview below so that you can decide. The reason I'm doing this survey rather than just posting the files is the following: I will need to write up the instructions for setting the menu up (and test them to make sure I did not omit anything), and I don't want to invest the time without knowing that people are really interested. How My Pop-Up Menu Works You will need to install two items, which I will provide: 1 - One macro to call the pop-up menu 2 - An EXE file (which was written in PowerBasic) to create the dialog box for the pop-up menu The macro performs a Program Launch in the macro script to call this EXE file. The EXE file uses a Macro Express command line to call the selected macro. The EXE file does not touch the Windows registry or make any Windows system changes. It does not modify Macro Express in any way or have any special hooks into Macro Express; it interacts with Macro Express using the two ordinary methods I just identified. But I realize that people are reluctant to install EXE files from strangers, which is part of the reason why I want to gauge your interest before I spend more time writing the instructions. Benefits Of My Pop-Up Menu Enhancement 1 - It supports up to 60 macros in a single pop-up menu. (You can have several different pop-up menus by selecting a different hotkey for each one.) The macros are arranged in a 5 x 12 table on the screen, so the entire menu is visible without scrolling. 2 - You can control the font and point size of the menu items to improve readability or to distinguish certain entries in the menu. (You can independently set the font and point size for each menu item. They don't all have to be the same.) 3 - You have full control of the text used in the menu item. It is completely independent from the macro nickname. 4 - You can choose any typeable character in the menu item's text label and use it as the one-touch selection key. That is, if you want to allow users to select a menu item with the keyboard instead of clicking with the mouse, which key do they have to press for a given macro? As far as I can tell, in the Macro Express native pop-up menus, Macro Express automatically determines the one touch selection key without letting you control that choice. (Macro Express lets you select the one-touch key for multiple-choice menus, but not pop-up menus.) 5 - As a result of benefit #4. you can design new two-stroke hotkey activation sequences for macros, even though the sequences would not normally be valid in Macro Express. For example, ESC followed by "t" could launch a macro, or NUMPAD / followed by "e" could launch a macro. The first keystroke is the macro hotkey for the pop-up menu, and the second is the one touch selection key. If you remember the one touch selection key, you can immediately type it; if you don't remember it, you have the menu on the screen to remind you. (Technically speaking, this benefit is possible with Macro Express's native pop-up menus. But I found that it was not practical without having control of the one touch selection key. In particular, when I changed the order of the menu items in the native pop-up menus, Macro Express automatically changed the one touch selection keys.) 6 - When you select a macro from the menu, focus always returns to the window which was active before you press the pop-up menu activation hotkey. The return of focus happens before the selected macro is run. As a result, you can be sure that your selected macro is running in the most recent window, which is important for some macros. (I experienced a limitation with Macro Express's native pop-up menus that the focus got lost in the process of activating the pop-up menu and, as a result, my selected macro might try to run in the wrong window. This limitation goes away with my pop-up menu.) Please don't think this list is intended to put down Macro Express. I absolutely love the product. The only reason I encountered these limitations is that, because it is so great, I use it constantly and for so many different things, and it's natural that I will run into some things that it was not designed for.
×
×
  • Create New...