Jump to content
Macro Express Forums

ejs

Members
  • Posts

    59
  • Joined

  • Last visited

Everything posted by ejs

  1. I'm using Macro Express 3.7a. Is there any way that I can pass control class information between macros by saving/restoring the information to an environment variable? I know that I can do this for control text information by using the following: MACRO 1 variable get control class [to copy the class information from the C variable to a T variable] variable modified string [to copy the class (now text) information from the T variable to the environment variable] MACRO 2 variable set string [to read a value from the environment variable into a T variable] variable set control text [to copy the value of the T variable to the C variable's text] But I don't see a Macro Express command "variable set control class" which is the counterpart for "variable set control text". It seems strange that Macro Express allows text information to be transferred back and forth from a control variable to a text variable, but that Mac Express only allows class information to be transferred one-way from a control variable to a text variable. You should note that macro 1 does not call macro 2. These macros run independently at different times, so it is not as if macro 2 automatically has all of the variables defined with the values used by macro 1. Macro 2 starts with all variables having no values. My objective is to preserve variable values between completely separate macro runs. The only methods that I know for passing variable values between macros that run independently is to use environment variables or to use variable save/variable restore. I would rather not use variable save/restore, so I appreciate any suggestions on how to make this work using environment variables or some other method that I overlooked.
  2. It has been a few months since I made this change, and I have not noticed the problem anymore, so this must have been the cause. Thanks.
  3. Terry, I primarily use Autohotkey to write trivial scripts, just so Autohotkey intercepts the hotkey and then calls the macro I have written In Macro Express. So I cannot answer questions about writing more substantial macros in Autohotkey, and anyway this would not be the right thread for discussing substituting Macro Express with Autohotkey. You should take your Autohotkey questions to the autohotkey forum at http://www.autohotkey.com/forum I can answer questions that relate to the interaction between Autohotkey and other programs like Macro Express. The reliability has been fine, after I learned how to properly write the autohotkey script to avoid certain intermittent problems. Here are some tips: 1) Be careful that you do not define the same hotkey in both programs, 2) Use SetTitleMatchMode, # to set whether you want a full match or partial match on window titles you can put a general setting at the top of the script, to apply to window title matches for the scope of hotkeys. You can also change the type of match within the macro itself, but then I change it back to the general setting at the end of the macro. 3) use the KeyWait command to wait for the hotkeys to be released. The statements go immediately after the hotkey line in the script. For example, if the hotkey is control+alt+c (where Iwas using keys on right side of keyboard), I would put the following two lines in my macro. Otherwise, I was having a problem that the right alt and right control keys would sometimes get stuck in the logical down position. THESE ARE AUTOHOTKEY STATEMENTS FOR USE IN AUTOHOTKEY SCRIPTS. DO NOT USE IN MACRO EXPRESS MACROS. KeyWait RControl, L ; Wait for Right Control to be released. KeyWait RAlt, L; Wait for Right Alt to be released. 4) the run statement in Autohotkey does not necessarily wait for the new window to appear and then activate that window. So I explicitly use a wait for window command and activate window command. Also, executing the run statement in Autohotkey may temporarily activate an invisible window before activating the real window; this does not cause any problems and is not even apparent to the user until you try to ALT TAB to the previous window and discover that one ALT TAB is not enough. I solved this behavior by getting the name of the active window before executing the run command, activating that window after the run command, and then activating the new window; this resets the window order so the invisible window is no longer the previous window. THESE ARE AUTOHOTKEY STATEMENTS FOR USE IN AUTOHOTKEY SCRIPTS. DO NOT USE IN MACRO EXPRESS MACROS. WinGetActiveTitle, Title; get title of current active window [Run macro express macro or other program] SetTitleMatchMode, 3; set window title match to exact match WinActivate, %Title%; activate the current active window WinWait new file - metapad; wait for new window to appear WinActivate; activate the window with the title matching the last title used for a window title function SetTitleMatchMode, 2; set window title match to partial match return
  4. Here is how you can activate Macro Express macros using hotkeys that Macro Express does not inherently support, such as backspace or keypad enter. There is a free downloadable macro program called Autohotkey (www.autohotkey.com), which I use simultaneously with Macro Express. I prefer to write my macros in Macro Express because it has an easier interface, but if I want that macro activated with a hotkey that Macro Express does not offer, then I write a trivial macro in Autohotkey that runs the Macro Express macro whenever the hotkey is pressed. Here are the Autohotkey scripts to run Macro Express macros for the hotkeys you asked about. You just need to replace "macro express macro nickname" with the nickname of your macro, and possibly adjust the path to the exe file on your system. THESE ARE AUTOHOTKEY STATEMENTS FOR USE IN AUTOHOTKEY SCRIPTS. DO NOT USE IN MACRO EXPRESS MACROS. ; hotkey is Backspace Backspace:: KeyWait Backspace, L Run C:\Program Files\Macro Express3\meproc.exe /Amacro express macro nickname return THESE ARE AUTOHOTKEY STATEMENTS FOR USE IN AUTOHOTKEY SCRIPTS. DO NOT USE IN MACRO EXPRESS MACROS. ; hotkey is NumpadEnter NumpadEnter:: KeyWait NumpadEnter, L Run C:\Program Files\Macro Express3\meproc.exe /Amacro express macro name return If you want to limit the scope of the Autohotkey hotkey to specific active windows then: i) put the following line as the very first line in your script file (so that it supports partial matches in window titles) THESE ARE AUTOHOTKEY STATEMENTS FOR USE IN AUTOHOTKEY SCRIPTS. DO NOT USE IN MACRO EXPRESS. SetTitleMatchMode, 2 ii) use #IfWinActive, windowtitle as the first line in the macro subroutine (before the hotkey line) if you want the hotkey to be active only if a window with the specified window title is active. Put #IfWinActive as the last line in the subroutine after the return. For example, if I want the backspace hotkey to be active only in windows named Notepad or file manager THESE ARE AUTOHOTKEY STATEMENTS FOR USE IN AUTOHOTKEY SCRIPTS. DO NOT USE IN MACRO EXPRESS MACROS. #IfWinActive, Notepad Backspace:: #IfWinActive, File Manager Backspace:: KeyWait Backspace, L Run C:\Program Files\Macro Express3\meproc.exe /Amacro express macro nickname return #IfWinActive iii) use #IfWinNotActive, windowtitle as the first line in the macro subroutine (before the hotkey line) if you want the hotkey to be active except if a window with the specified window title is active. Put #IfWinActive as the last line in the subroutine after the return. For example, if I want the keypad enter hotkey to be active in all windows except Notepad THESE ARE AUTOHOTKEY STATEMENTS FOR USE IN AUTOHOTKEY SCRIPTS. DO NOT USE IN MACRO EXPRESS MACROS. #IfWinNotActive, Notepad ; hotkey is NumpadEnter NumpadEnter:: KeyWait NumpadEnter, L Run C:\Program Files\Macro Express3\meproc.exe /Amacro express macro nickname return #IfWinActive
  5. Sometimes the Macro Express icon disappears from my system tray. (Note it is not hidden or being treated as an inactive icon. It is really no longer in the system tray.) This is not a Macro Express problem. My windows OS has gotten a little flaky; I have the same problem that some other programs also have their system tray icons disappear. But as far as I can tell, there is no way for me to bring up the Macro Express editor without being able to click on the system tray icon. Is there some way (e.g., some command line I can run, or some other program in the Macro Express folder) that could do one of the following: - open the Macro Express editor without the system trail icon being there - restore the system tray icon Right now, what I have to do is open the task manager and kill the Macro Express process. Then I can relaunch macro express from the start menu. When the relaunch is, the system tray icon is generated so that I can access the editor.
  6. Is there any technique I can use on macro express 3.x to check if a specific system tray icon exists? I know I can use a macro command to move the mouse to a specified system tray icon, but I'm trying to do this check without moving the mouse. I don't see an option within the "If" family of commands to check for a system tray icon, but if I could generate a list of the system tray icons and put that list in a text variable, I could check that way. I can't simply check if the program is running, because the program in question may or may not produce the system tray icon depending on environmental conditions.
  7. Thank you Kevin for your comments. It's a shame that the two versions were not designed to run simultaneously, because I can provide you with two realistic scenarios where that configuration is justified: - there are some limitations in the conversion process that occurs when loading in a 3.x mex file into Pro. Whether these are considered bugs or design decisions is academic... the bottom line is that some types of macros require modification after being loaded into Pro. In addition, the faster performance of Pro means that macros that were properly timed in 3.x might be too fast in Pro and could require modifications to insert delays. The amount of time it would take for me to modify all the macros that require modification prohibits me from converting to Pro. So my options are either not use Pro at all, or run them simultaneously so that I can create the new macros in Pro. But it looks like running them simultaneously is not a real option for me either, based on my findings. - Since macros written in pro are not backward compatible to 3.x, if I need to create and use macros that are also used by other users who did not upgrade to pro, then I need to write those macros in 3.x.
  8. Thanks Kevin. But the upgrade to the latest version did not solve the clipboard problem, and fixing the .mex file association to point back to the 3.x meproc.exe only partially resolved the command line problem... each launch of macro express Pro disrupts the ability for a command line to call the 3.x macro via meproc.exe (even though the file association stays intact as 3.x) until I manually run a certain 3.x macro... then the command line works properly again. I put in trouble reports with Insight software for these. The bottom line is that I will not be able to run Pro on my system. I'm disappointed since the new features and increased speed looked like a big improvement, but the above bugs as well as some other functionality issues I found prevent me from running Pro and 3.x simultaneously and also prevent me from replacing 3.x with Pro. I also find some of the changes to the user interface to the Editor a step in the wrong direction.
  9. I just installed macro express Pro (v 4.0.0.1 build 1) and encountered the following problems. Please let me know if others have encountered these and if it is a configuration issue I can fix myself. I just wanted to see if the folks on this forum had any advice before I submit the bug reports to Insight Software. Just for the record, I did not yet create any macros in Pro, nor did I import any of my 3.x macros. All I did is install Pro and I have it running in the background when I encountered these problems. 1) In my text editor (metapad), if I try to copy selected text with control-c, about half the time I get a warning dialog box from the metapad application (that is, the dialog box with a yellow triangle and an exclamation point) saying that the application cannot open the clipboard. This problem happens when macro express Pro is running, regardless of whether macro express 3.x is running or not running at the same time. If I exit Pro, this problem goes away. I've been using macro express 3.x with the metapad application for several years and never had this problem with that version of ME. So far, I've only seen this dialog box error from metapad. I don't know whether the other applications are not encountering this interaction problem with Macro Express Pro or if my other applications just don't give me an explicit dialog box error when they have the problem. 2) I have several programs (exe files) that I created myself, where the last step in the program is to run a macro express macro, via the meproc command line. Specifically, the program runs the following command line: D:\stamp\macros\meproc.exe /Amacroname where the macro name is a macro that is defined in macro express 3.x. If I have macro express 3.x running, and macro express Pro not running, my executable program is able to invoke the macro from 3.x. But if 3.x and Pro are both running, my executable program cannot invoke the macro (no macro runs and no error messages generated from macro express). It is as if D:\stamp\macros\meproc.exe is trying to invoke the macro from Pro (where that macro name does not exist) instead of 3.x. Just for the record, macro express 3.7a is installed in "C:\Program Files\Macro Express3" and macro express Pro is installed in "C:\Program Files\Macro Express Pro" D:\stamp\macros\meproc.exe is a copy of MeProc.exe from C:\Program Files\Macro Express3 I also tried making D:\stamp\macros\meproc.exe a windows shortcut (.lnk) to rather than a copy of the file in C:\Program Files\Macro Express3, but the same problem continues to happen.
  10. In macro express 3.x, I have the abort macro hotkey (preferences/playback) set to the Pause key. 1) if I have macro express 3.x and macro express Pro running simultaneously on my system, can I have the same abort macro hotkey defined for both applications or, if I do that, will that abort hotkey work for only one of the programs? 2) since macro express Pro allows for multiple macros to run simultaneously, what happens if more than one macro is running and I press the abort macro hotkey (or right click the running man icon? Does it abort all macros currently running in macro express Pro? 3) by the way, do 3.x and Pro have different system tray icons to distinguish them when they are running simultaneously?
  11. I have created various programs (executable files) that interact with Macro Express by launching a macro and setting variable values via command line parameters and the MeProc.exe program. Does Macro Express Pro also provide an MeProc.exe for use with the command line? Does it work the same as the command line and MeProc.exe in v 3, or after I migrate my v 3 macro file to Pro will I need to modify and recompile my other programs to interract with the command line for Macro Express Pro?
  12. Macro Express Pro has conversion routines which allow it to run macros that were written in v 3. But there are various methods to load a macro into macro express. Which methods work with the conversion routines, and which methods do not work forcing the user to manually adjust the v 3 macros. For example, some of the methods are: open macro file (*.mex) import macro import playable macro macro command to run macro from text file pasting the clipboard containing macro commands into the scripting editor And how about sharing macros that I write in Macro Express Pro with colleagues that are still on v 3? Assuming that my macro does not contain a command that is a new function introduced in Pro, can I export the macro written in Pro so that a v 3 user can import the macro? Or are there enough changes such that macros written in Pro cannot go back to v 3 (e.g., Remark command renamed to Comment command, the addition of error handlers needed for some commands in Pro).
  13. How does ME Pro handle macros that are scheduled to run at startup when there is more than one startup macros. Does it run these macros in sequence or does it run them simultaneously (considering that Pro can run more than one macro at a time)? If it runs them in sequence, will I be able to control which macro is run first, second, etc.? In v 3, the macros were always run in the sequence in which they were created, which was a limitation because you might create a new start up macro tomorrow which you want Macro Express to run before it runs the start up macro you created yesterday. I put in an enhancement request for v 3 to offer the ability for the user to define the start up sequence. I do not know if anything happened since then. Another solution to this problem, if ME Pro supports it, is to have just one start up macro where that macro calls each of the other macros in the sequence you want. The problem with doing this in v 3 is that if one of the called macros fails (eg, the web page did not load in time), then none of the subsequent macros will be attempted. The new feature in ME Pro to make this approach reliable would be an option that tells macro express to continue playing the rest of the main macro even if a callled macro fails. (Without this error recovery feature, I would need to include otherwise unnecessary error recovery commands in each of my start up macros, which is a waste of time since each macro would need a unique approach to identify and ignore the errors.)
  14. 1) Is Macro Express Pro, by design, able to run ALL the macros created by Macro Express 3? If not, is there a list of published limitations. I know from the Macro Express 3 help file, there were some macro commands from earlier versions that no longer ran in v 3 and thus those users how to modify their macros before upgrading to v 3. (I am talking more about design issues than bugs. I know there are various discovered and not yet discovered bugs with v 4 running v 3 macros. Hopefully the bugs will be fixed promptly, but limitations by design will not.) 2) Can I simultaneously have Macro Express v 3 and Macro Express Pro installed on my system? If yes, can I run them simultaneously? I want to make sure that if I install the Macro Express Pro and find compatibility issues with my previously written macros, that I will be able to keep running my macros on v 3 rather than needing to rewrite those macros. 3) I put in an enhancement request on v 3 a long time ago I wonder if it made it into Macro Express Pro. Have any new hotkeys for macro activation been defined in Pro? Specifically, I would like to use as hotkeys the "key codes" that are defined in the standards but do not exist on normal keyboards. But I have a programmable keyboard, so I can redefine any key to be any other key code or sequence of keys. Currently on my programmable keyboard, I have programmed single touch keys so that they outpulse a multi-key combination hotkey. The problem is that Macro Express 3 sometimes does not recognize the hotkey (either it is outpulsed to quickly by the keyboard, or it may conflict with key combinations predefined by certain applications). If I could use as hotkeys the key codes that are in the programmable-only keycode range, I could have more macros that use a single key hotkey while avoiding the issues I sometimes have with multi-key hotkeys.
  15. If you're going to open and close the DVD tray only via macros (e.g., you will not also press the button on the tray or manually push the tray in), then you could use a variable to store the tray state in an INI file. Each time the macro runs, it reads the INI file to determine the current tray state (i.e., whether the last macro runs left the tray in the open or closed position). You then have an if statement such that if the tray was last opened, then close it now (and write 'closed' to that INI file), else open the tray (and write 'opened' to that INI file). This approach is practical only if it is OK if the INI file sometimes gets out of synch with the real tray status (e.g., you accidentally manually push the tray and rather than closing it with the macro).
  16. I figured out the answer to my question before posting, so instead of posting the question, I posted the answer as a Tip in case anybody else runs into the same problem. The question would have been "how do I determine the category assigned to a macro when the category pane is displaying "All Categories"? The answer is to follow the procedure described in the original post.
  17. Sometimes when the subject matter for a macro makes it applicable to more than one of my categories, I have trouble remembering which category I put it in. I can always locate the macro by setting the category pane to "All Categories" and searching through the list of every macro I have, but once I have found the macro in this way, how can I determine what category the macro is in? This always gave me a problem, because I thought the category is not listed in the macro's properties. Here's the solution: It turns out the category IS and IS NOT in the properties, depending on how you check the properties. Right click on the macro nickname and select Macro Properties. On the "General" tab, it will show the assigned category. If you have the macro opened in the scripting editor and select the "Properties" tab (or any other tab), you will NOT see the category.
  18. In my last post, I forgot to mention that DNS preferred v 8 (on Windows XP Pro sp1) does type out dictated text in such a way that macro express short keys will be invoked in SOME applications. I'm still using Word 97. If my dictation is within this application, and I dictate a short key, macro express will expand the short key. But if I'm dictating into outlook 2002 or my text editor, the short key will not be recognized by macro express.
  19. Jeff I use dragon 8 preferred, which is probably not much different from dragon 9. I entered all of my short keys into the dragon vocabulary and trained dragon with my pronunciation. Here are a few things that helped make the job go easier 1) have a list set up in advance with all the words/phrases you want to put into dragon 2) do the entry through words: view/edit instead of words: new the two limitations of words: new is that it assumes you only want to enter one word, so the dialog box disappears as soon as you finish with that word. Also, it does not present you with the properties button, which you'll need in order to set a different written form from the spoken form. I'm not sure if you plan on training Dragon for the literal text, or if you are going to train dragon for the short key spoken form and tell dragon that spoken form should be expanded to a different written form. I personally have found using the different written form to be a handy way of tricking dragon into writing what I want for words that it tends to "mishear" 3) write a macro express macro to expedite pressing the dragon buttons for adding and training the new words you enter. I use macro express and dragon because of carpal tunnel, and if I am adding 100+ words to dragon, I can eliminate a lot of mouse clicking I have a macro express do it for me. Eg, after I typed in my new word, I typed the hotkey to activate the macro, and that clicks the series of dragon buttons to add the word and start recording.
  20. As far as I could determine, the environment variables created by macro express are only accessible to macro express (and only until you quit or restart macro express, at which time all the custom environmental variables are cleared). The best way I found for exchanging information between macro express and other programs is either to use an INI file or text file, or (in some cases where Macro Express is calling the other program or vice versa) to embed the information into the command line. The registry could be used as well, but then you would need routines in your other program for reading/writing the registry.
  21. Yes, the lack of a 'hard delete' option in macro express is sometimes a pain in the neck. It's appropriate that macro express supports the existing functionality of using the recycle bin, but it should also have an option to bypass the recycle bin. (The macro express help file is clear that deleting a file really only sends it to recycle bin.) If using the 'empty recycle bin' command is not acceptable for your situation (e.g., you can't delete all the other contents of the recycle bin), then you simply need to overwrite the file when you are done with a new file of the same filename with empty or garbage contents, as per Marcopolo's suggestion. You can then delete your dummy file (that is, move to recycle bin), and even if somebody later recovers the file from the recycle bin, the file no longer contains the sensitive information. Another option to consider is whether you really need to store the sensitive information in a temporary file, or can you have that information go into a macro express variable or environment variable?
  22. Cory - can you tell me the names of some of the 'commercially available secure website applications' that have capabilities to defeat key loggers? I'll consider these. I did look into anti-key logger software, but most of them appear to use a mechanism that would also disrupt macro express's ability to use hot keys and short keys for activation. Kevin - the problem is that the "best" spyware not only does key logging but also logs the clipboard contents, so even though the key log trace would only show a paste command, the clipboard trace would still reveal the password.
  23. Thanks Cory. Between using tabs and mouse clicks, I've gotten my macros to be able to get to the correct form fields for most of the web sites. Like you, I found that the off-line approach usually is not feasible. My biggest concern is how to stuff my text string into the form field in a way that key logging spyware cannot read the password. When I discussed this question on a earlier post, the response was that using macro express text type and macro express clipboard paste would still expose the text to being captured by spyware. There was a suggestion that sending text to a control would occur at a layer that key logging software would not capture. Since the control approach evidently is not feasible for web sites, do you have any suggestion for how I can make macro express fill in the text in a form field in a way that key logging software cannot capture it? Here's the only remaining (poor) idea I have: currently, my macros use text type to outpulse the URL. I could change this so that I set up a shortcut or bookmark to each URL so that the macro can go to the web site without typing the URL. The key logging software would still be able to capture the user ID and password that macro express types, but the key logging software would not know which URL was submitted before entering that userid and password. But the inherent weakness to this approach is that the key logging software can captured the active window name for any typed text, and the window name would be enough for the hacker to figure out the URL (e.g., even if the key logging software doesn't show that the URL is www.ebay.com, it's not hard to figure out that my userid and password must be for eBay if the active window has the word 'eBay' in it.)
  24. Has anyone successfully used controls for fields, buttons, and graphical links on a web page (e.g., name, address, password, SUBMIT etc.)? Or, if you encountered the same problem that I describe below, did you come up with any workarounds, perhaps that do not use controls? The Macro Express help file warns "Sometimes the only control in a given program is the window or dialog that pops up when the program starts." This appears to be the case with all of the web browsers I tried, which means that controls are useless for filling out web forms. (My objective was to have a macro that fills in the username and password on web pages using controls in order to circumvent spyware that could log keys if macro express were to use text type or clipboard paste to populate the web form fields.) Here the results from the Macro Express get control utility on each of the browsers I tried. Windows XP SP2 - IE 7.0 - the entire window is the only control with control class name = Internet Explorer_server Windows XP SP2 - Netscape 7.2 - the entire window is the only control with control class name = MozillaWindowsClass Windows XP SP1 - IE 6.0 - the entire window is the only control with control class name = Internet Explorer_server Windows XP SP1 - Netscape 7.2 - the entire window is the only control with control class name = MozillaWindowsClass To benchmark that I am doing this right, I did successfully use the get control utility on the Microsoft windows calculator application to ensure that it recognized each calculator button and field as a control.
  25. Thanks for the suggestions, but no improvement. I unplugged my mouse. I also exited Dragon naturally speaking and RSI guard, two programs which are involved in intercepting keystrokes and mouse control. I still cannot get the timeout/inactivity functionality to invoke the macro. I'll open a bug report about this.
×
×
  • Create New...