Jump to content
Macro Express Forums

floyd

Members
  • Posts

    292
  • Joined

  • Last visited

Everything posted by floyd

  1. Yes, I am experiencing the same thing. It appears as though the Privacy tab is being ignored as a choice. Any tab chosen to the left of it works fine and any one chosen from the right of it is off by one. I have submitted a bug report to Insight.
  2. Download the TweakMe3.mxe file from Macro Express and import it into your macro library. You can get an overview of features here and within the macro itself. Also, here is an excerpt from the Macro Express Explained book:
  3. If there is a way to grab the info from MBM5, then this most certainly can be done using Macro Express. Can the info be placed into the clipboard? How about an output text file? Another avenue that you might want to investigate is the Macro Express Priority setting in your Registry, which sets the amount of CPU cycles that Macro Express uses.
  4. The Run Macro in Variable command was not added to Macro Express until version 3.4.0.0 so you do not have it in your version. However, you do have the Load Macro Text File command, which is similar. It runs a macro from a file rather than a variable. Here is the adjusted code: Repeat Start (Repeat 10000 times) // Create a random integer from 10 to 99 Repeat Until %N1% >= 10 Variable Set Integer %N1% with a Random Number Repeat End // Create a dynamic string containing the random integer and run it Variable Set String %T1% "<NMVAR:08:%N1%:0:0000001:0:0000000>" Variable Modify String: Append %T1% to %T2% Repeat End // Save the whole string to a file Variable Set String %T1% from Environment Variable Variable Modify String: Append "Me3Test.txt" to %T1% Variable Modify String: Save %T2% to Text File Delay 250 Milliseconds Wait for File Ready: " // Run the command string Load Macro Text File: "%T1%" Macro Return <REP3:01:000001:000001:10000:0:01:><REM2:Create a random integer from 10 to 99><REP3:08:000005:000002:0001:0:01:10><IVAR2:01:06:99><ENDREP><REM2:Create a dynamic string containing the random integer and run it><TVAR2:01:01:<NMVAR:08:%N1%:0:0000001:0:0000000>><TMVAR2:08:02:01:000:000:><ENDREP><REM2:Save the whole string to a file><TVAR2:01:11:Temporary Path><TMVAR2:07:01:00:000:000:Me3Test.txt><TMVAR2:17:02:00:000:000:%T1%F><MSD:250><WFREADY:000000:000005:000000%T1%><REM2:Run the command string><TFILE:%T1%><MRETURN> The difference is that you are just appending one string to another each time through the loop. The final string is saved to a temporary file after the loop ends, then the file is run by simply loading it. In this example you have saved 10,000 separate commands to the file. On my system it took about 15 seconds to run this example. I would estimate that 95% of that time was spent just writing to and then launching the file. This could also have been done by writing one line to a file from within the loop, then running that file each time (like the Run Macro in Variable command), however, it would have taken almost 1-1/2 hours to run through 10,000 loops. DynamicIncrement2.zip
  5. A couple points of interest: Timing tests: The PGM Functions Library has a Developer Tools category that contains the necessary functions to do timing tests. Here is a link to more information on those timing tools. They were invaluable to us during the development phase of the Library. Simply highlight the section of code that you want to time and then hit the HotKey that calls the timer Ctrl+Alt+Shft+T. Incrementing counters dynamically: Following is a sample playable that increments random integer variables 10,000 times in a little over 3 seconds: Repeat Start (Repeat 10000 times) // Create a random integer from 10 to 99 Repeat Until %N1% >= 10 Variable Set Integer %N1% with a Random Number Repeat End // Create a dynamic string containing the random integer and run it Variable Set String %T1% "<NMVAR:08:%N1%:0:0000001:0:0000000>" Run Macro in Variable %T1% Repeat End Macro Return <REP3:01:000001:000001:10000:0:01:><REM2:Create a random integer from 10 to 99><REP3:08:000005:000002:0001:0:01:10><IVAR2:01:06:99><ENDREP><REM2:Create a dynamic string containing the random integer and run it><TVAR2:01:01:<NMVAR:08:%N1%:0:0000001:0:0000000>><RUNMACVAR:1><ENDREP><MRETURN> I have also attached it to this message. Each time through the loop a random integer between 10 and 99 is picked. The value is then plugged into the Increment Integer command string, which is then run using the Run Macro in Variable command. DynamicIncrement.zip
  6. Yes, you can switch to the Direct Editor view to see the commands in their native state. I do it anytime I need to create a dynamic section of code. And yes, the Run Macro in Variable command is used to run dynamic code. And so, for that matter, is the Load Macro Text File command. According to your example, you are wanting to type-out the string variables that are filled each time through the file processing loop. Is this correct?
  7. Same thing with Opera, at least the last time I tried. I know nothing of Mozilla, but as far as Opera goes, it did not seem to "play nice" with the system-wide mouse and keyboard hooks. Netscape runs okay except for the Wait for Web Page command, which is meant to be used only for IE.
  8. Found the problem. The past couple of days I've been using one of my laptops with an earlier version of Macro Express. When I loaded the latest version the problem that you are encountering showed up. Thanks for jogging my memory about which version I was using! I have reported this bug to Insight.
  9. hhmmm ... I have my system clock set to HH:mm:ss also and am having no problems with hours > 12. What O/S are you using? Which schedule are you trying to set?
  10. A 24 hour clock setting does not utilize the AM or PM designator. The time displayed should simply be in the range of 00:00:00 and 23:59:59.
  11. Which command are you using dynamically in the repeat loop? Here is an example using the Set with Random Letter command: Repeat Start (Repeat 90 times) Variable Set String %T1% "<TVAR2:%N1%:12:>" Run Macro in Variable %T1% Repeat End <REP3:01:000010:000001:00090:1:01:><TVAR2:01:01:<TVAR2:%N1%:12:>><RUNMACVAR:1><ENDREP>
  12. Here is something that I do when I have a lengthy Repeat Loop. Variable Set Integer %N10% to 0 Variable Set String %T11% "" Text Box Display: . Repeat Start (Repeat 100 times) Variable Modify String: Append "|" to %T11% If Variable %N10% = 0 // Launch the "single space" text box and close the "double space" text box Text Box Display: Text Box Close: Variable Set Integer %N10% to 1 Else // Launch the "double space" text box and close the "single space" text box Text Box Display: Text Box Close: Variable Set Integer %N10% to 0 End If // Here is where you would // place the code that runs // inside the repeat loop Repeat End // Close all 3 text boxes Text Box Close: Text Box Close: Text Box Close: . I have attached the above playable. It uses 3 separate text boxes to display a progress bar across the window. The first one has a "period" for its title, the second a single space, and the third a double space. Macro Express allows for as many text boxes on the screen as your memory will accept. The next one can be placed before closing the prior one as you can see within the loop. You want to alternate between two text boxes so that you do not eat memory by launching one right after another. Macro Express considers each launch of a text box as a new window, even if it has the same title. So why the "period" text box outside the loop? To always have two on the screen at any one time, which prevents the taskbar from looking like it is working hard. Run the macro without the "period" text box and you will see what I mean. SampleProgressBar.zip
  13. Magic, Check to see how your system time is being displayed (My Computer|Control Panel|Regional Options). Macro Express uses this setting.
  14. Les, Nice catch Les! And thanks for the info. I do not think, however, that Insight will consider this a bug. The help file says: In other words, if I am reading it correctly, mm is always considered to be a month unless it is preceded by an hour hh or h.
  15. Kindle, I do not think there is any difference. What may be happening, however, is that the game cannot keep pace with how fast Macro Express can send keystrokes. How does the game process the first d? Does it launch a window? Does it prepare a list for you to choose from? Eiher way, the second d is probably being sent out to bit land. If the game is launching a window, then use the Wait for Window Title command between d's like this: Text Type: d Wait For Window Title: "<name of window>" Text Type: d If it is generating a list, or something else that requires some time, then use a delay like this: Text Type: d Delay 500 Milliseconds Text Type: d Also, if you are using a lot of keystrokes in your macro, I would place a speed limit on your keystrokes at the beginning of your macro like this: Keystroke Speed: 10 Milliseconds This example will set a 10 millisecond delay between each character sent to the keyboard buffer and will remain in effect until either the macro finishes, or you set a different delay time.
  16. floyd

    Citrix

    Do not know if this will help but there was some mention of Citrix in the old newsgroup messages. Do a search on "citrix".
  17. Nicolas, Remove it from the blacklist.
  18. Gary, The old newsgroup was discontinued. All of the messages have been archived in a searchable .chm format and can be found in the Professional Grade Macros forum, or by clicking on this link.
  19. floyd

    Macro Stop

    K_H, Another way to prevent the Macro Stop command from displaying a dialog when invoked is to download the free Macro Express utility TweakMe3.mxe. Import it into any library and then run it (it is just a macro). You will see several advanced features that you can set, or turn off or on. One of them is the Macro Stop abort message. It has been my experience that the Macro Stop dialog does not appear if the command is used in a top-level macro. It will appear, however, if invoked from a lower-level macro that is run via the Macro Run command. The Macro Return command, as Nicolas suggested, never presents a dialog when invoked and is our command of choice for stopping a macro. Everybody's situation is different. We usually invoke stopping a macro application only from the top-level macro. Lower-level macros are designed to return to the caller if possible when an error occurs. Therefore, using the Macro Return command in a top-level macro stops the macro same as the Macro Stop command.
  20. Linda, Yes, it may be riskier. I only mention it because I remember having the same problem as you are encountering. There was a program application that we had to create macros for, which every time it launched, the index IDs changed. It was a small app with only two dialogs, run by just a handful of users. Different users, however, meant different display resolutions (as you are aware). So the macro did the following (if I remember back that far): Saved screen resolution to vars. Closed the app if it was running. Launched the app. Saved the app's window size and position. Maximized the app. Used the coordinate system to capture Controls based on the screen resolution. Switched to the 2nd dialog. Used the coordinate system to capture Controls based on the screen resolution. Switched back to the 1st dialog. Normalized the app. Moved it back into the same position as when it was first launched. This procedure never failed because we controlled the size and positioning of the app initially to capture the Controls, then put it all back as it was when first launched.
  21. Linda, Maybe something you could do after your function launches the application is to have a routine that uses the Capture Control command to get the Control info at specific coordinates on your display rather than tabbing to them. You would need to control how and where the application is placed on the screen each time it is launched, but this is easily done. There have been a lot of changes to the Window Control commands since version 3.0d. Here is a list of them: Version 3.0d Made a modification to the controls so that they won't stall if a program has stalled. Made some modifications to the window controls to hopefully improve their reliability. Fixed an access violation that occasionally occurred when loading a control-activated macro. Version 3.0e Removed the hyperlink stating that the Control Focused was not available on Windows NT and Windows 95. This was incorrect as this functionality was enhanced some time ago to work on all versions of Windows. Added an error message when a command attempts to find a control and the control cannot be located. The macro will abort. After using the "Get Control" utility and hiding Macro Express, Macro Express will reappear in its previous state. Version 3.2 Window and control macros are no longer checked when Macro Express is suspended. Fixed a crash that occurs when using controls. Added the ability for the Text Type command to send text directly to a control instead of the focused window. Added the ability to select "Variable Set Integer to Control xxx" directly from the editor without having to hunt down the appropriate commands. Version 3.4 Made an adjustment so that Macro Express will wait for a window to become ready prior to using a control that is contained in that window. Added "Variable Get Control Class". This command will get the class name of the specified control, if the control exists. Made an adjustment to prevent a crash that occasionally occurred when Macro Express was checking for control-activated macros. Made an adjustment so that the "Get Control" utility will remember its position correctly when used with multiple monitors. Reduced the amount of CPU cycles used when using the Control Utility in the "Get Control" command. Version 3.4a Removed code that caused some problems with the Control commands. Version 3.4b Made a change to the Capture Control utility so that it can get controls that are disabled. Modified the "Control Details" dialog so that it is resizable. Modified the window control commands such that they can handle a window with "AFX:" in its class correctly. Fixed a range check error that would occasionally occur when using window controls. Version 3.5 Modified the display of the "Get Control" command in the Script Editor so that information about the control is displayed. Fixed a crash that occurred if the user attempted to modify a control variable without first having defined it. Fixed a crash that occurred when attempting to update a control-activated macro in the editor. Fixed a crash that could occur when using the Variable Set Control Text command. Fixed a crash that occurred when using the "Variable Modify Control" command in conjunction with the "Capture Control" command. Fixed a bug in the "Capture Control" command where it did not always return the correct information to any command that used the control. I mention them only because one of them might solve your other problem. Would it be possible just to download and install a trial version of the latest release just to test if it solves the problem?
  22. Ted, Wow, ProKeys ... that brings back some fond memories. I can only suggest that you look in the Microsoft Knowldegebase to see if there is anything that can help with your settings. Use "16-bit DOS" for the search.
  23. Doreen, The attached playable is a sample that will launch Microsoft Word with a new document using the Contemporary Fax.dot template. Import it into your library and then take a look at it. It is a single-line macro that uses the Activate and Launch command. Note that the Program Parameters field was placed in quotation marks because of spaces in the value. For more information on Microsoft Word switches (what us old-timers used to call command line arguments ), do a search in the Word help topics. LaunchWordWithTemplate.zip
  24. Nicolas, First determine if it is the clipboard that is causing the problem. Change your logging code to: Date/Time: Save "dd.MM.yyyy hh:mm" into %T97% Replace "%T99%" with "%T97% | %T98% %T99%" in %T99% Variable Modify String: Append %T99% to Text File Variable Set String %T99% "" If this doesn't change your results, then check to determine if the log file is being accessed by something else making it unwriteable.
  25. Yes, a scheduled macro would work. However, you still need a way to capture the text to read, parse, and react to it. That is why you would use clipboard commands within the scheduled macro.
×
×
  • Create New...