All Activity

This stream auto-updates   

  1. Yesterday
  2. I have done the same as Cory on some screens. Sometimes on a web page I will start with Alt-d to highlight the URL, because that also positions the cursor at the URL and gives a known starting point for tabbing. Of course, whoever maintains the page might also change the number of tabs needed. But you can diagnose and fix that fairly quickly when it happens, with the judicious use of Macro Stop statements inserted temporarily to see where the tabbing has left off. Sometimes if I can position the mouse fairly close above or below where I know the button will be, I write a short Repeat loop to move the mouse down or up a few pixels at a time, checking after each move to see if the mouse pointer has changed from an arrow to a finger. That works pretty well but sometimes fails due to timing, Windows busy doing something else so not changing the pointer quickly enough for example.
  3. In a web browser the entire displayed page is one control. The web form controls within it are not accessible. I too had this same problem. Often it's environmental as well. The user zooms in the web browser, has different borders, and about 99 other things that cause the controls to change position slightly. For that reason I completely abandoned the technique of mouse clicks. Instead I relied completely on tabbing or other keystroke combinations. I would even maintain tables of tab counts externally as a map for all the pages and controls so I didn't have to change my macro as often. It's far more reliable.
  4. I use MEP to automate tasks at work. One of the primary apps that my macros run in is a Java program in IE. For some reason, whoever is in charge of maintaining this application periodically makes slight, seemingly useless modifications to the layout of the program and as a result, all of my macros that require a click will be off by a few pixels. Sometimes this makes no difference, but other times it's the difference between clicking on a button or not clicking on a button. Needless to say, it is infuriating because it renders most of macros useless. I've tried to use the 'Get Control' function, but the utility is not able to recognize any buttons in the application that I am using. In addition, sometimes I am not wanting to click on a button at all. Is there anything that you might suggest I think about when addressing this problem?
  5. Last week
  6. Thank you, I'll check it on out. Thank you for the speedy reply
  7. Define an array variable rather than individually-named text variables. Increment an integer variable and use it as the index to the array.
  8. I don't know about holding a key -- can't think how that would be done. But you might be able to toggle as follows; it is essentially the same solution as you came up with in AutoHotKey. 1) User starts Macro A with a keystroke (the toggle key). 2) Macro A runs Macro B and ends itself. 3) Macro B records current mouse position (A,B) (vertical component B is all that counts). Macro B then loops continuously (Repeat loop), with a very short delay in each iteration of the loop, a few milliseconds. Each time through the loop it resets the vertical component of mouse position to whatever the starting position was. That is, if current mouse position is found to be (x,y) the macro moves the mouse to (x,B). So the user is able to move the mouse both horizontally and vertically, but the vertical movement is almost instantly cancelled by Macro B. 4) User again starts Macro A with a keystroke (the toggle key). 5) Macro A determines that Macro B is already running, and stops Macro B. Worth a try, fairly simple to code. Don’t know what impact it will have on CPU usage due to the looping – probably OK. On my PC the resulting mouse movement is kind of choppy, which may or may not be acceptable to you. Variable Set String %T1% "2" Get Mouse Position Screen: %N1%, %N2% Repeat Until %T1% = "1" Get Mouse Position Screen: %N1%, %N3% Mouse Move Screen %N1%, %N2% Delay 1 Milliseconds Repeat End
  9. How do I go about initially set a string variable and have that variable value increment by one each time I run a repeat macro? (ie.) T1 for first name, T2 for the next name ect. on a list.
  10. Is there a way to script it so that when I hold a certain key, or hold down the middle mouse button, it makes the mouse can only move in horizontal directions - any vertical movement should be prohibited If there is no way to hold a key, can it be make as a toggle on/off that restricts up/down mouse movement? I found a way with AutoHotKey (here), but would much rather use MacroExpress as it is currently on the user's PC for other purposes already. Thanks
  11. Quark! There's a product name I haven't heard for ages. It's very early and I'm tired so I'm not sure how much help I will be but I have a few thoughts for you. I don't think it is but if Quark 8 is a UWP application you will not be able to access controls and will have other limitations. UWP are the new modern apps from MS you get and manage from the App Store. You should try running MEP as an administrator. You should submit a support request with ISS. They are very responsive.
  12. I don’t know if this has been discussed here before; I couldn’t find a reference. Anybody have experience with Macro Express and Quark 8.02, in Windows 10? In my installation, none of my Macro Express keyboard shortcuts (such as "type text" macros) activate. I have a whole range of "diacritic" keyboard shortcuts, for umlauts, letters with accents, etc. etc. I use those in any application. But within Quark, they will not execute. Does anyone have any insight? Thanks.
  13. Wow, It works !!! And It works in other possible case as well. Excellent. THANKS for your great help.
  14. I think you are almost there, but you missed the whole point of FIRST loading the entire text file into a single variable, then using a Repeat loop to process the spreadsheet rows one at a time. Here's your script modified a little: Text File Begin Process: "list-a.txt" Variable Modify String: Trim %T1% Variable Modify String: Append %T1% to %T2% Text File End Process * at this point the whole file is stacked in variable T2 Repeat Until 1=2 (in other words, repeat forever until the IF statement results in Repeat Exit) Clipboard Copy If clipboard = “” (nulls – all spreadsheet have been processed) Repeat Exit End If Variable Set String %T3% from Clipboard Variable Modify String: Trim %T3% If Variable %T2% contains variable %T3% Text Type: <ARROW RIGHT><DELETE><ARROW RIGHT><DELETE><ARROW RIGHT><DELETE><ARROW RIGHT><DELETE><HOME><ARROW DOWN> Else Text Type: <ARROW DOWN> End If Repeat End
  15. Here's my script which is inspired by your kind comment. Thanks a lot. Text File Begin Process: "list-a.txt" Repeat Until %T2% = %T1% Clipboard Copy Variable Set String %T2% from Clipboard Variable Modify String: Trim %T2% If Variable %T2% <> variable %T1% Text Type: <ARROW RIGHT><DELETE><ARROW RIGHT><DELETE><ARROW RIGHT><DELETE><ARROW RIGHT><DELETE><HOME><ARROW DOWN> Else Text Type: <ARROW DOWN> End If Repeat End Text File End Process But There's 1 problem here. The last line of the "list-a.txt" is 2000-5592, and the last row of Excel is 2000-5599. This script ends at 2000-5592 and can't delete rows from 2000-5593 to 2000-5599. I need to delete data if the rows doens't match with the data in the list. I would appreciate it if you give me more help.
  16. I think this approach will work: Use Text File Begin Process, once only, to load all entries from the file into a single text variable. That is, read the file one line at a time into T1, trim, and append its 9 characters to T2 (variable modify string/append), continue until the whole file has been loaded. When done, T2 will be an array of 9-character strings. (But you won’t need to process it as an array – see below.) Next, copy the first spreadsheet cell into the clipboard, store in text variable T3. Command If Variable %T2% contains "%T3%" tells you whether the array (file) contains that cell’s data, and you can type or delete into other cells in the row as desired. Text Type of arrow keys is good for moving from one spreadsheet cell to another. Get this working for a single row of the spreadsheet. Once you have it working for one row, add Repeat Start and Repeat End to handle all the rows one by one. Use Repeat Exit when you reach the end of the spreadsheet (that is, when copy to clipboard finds nothing).
  17. Hello, I'm here to ask help to make a Macro script what I'm struggling. Here's my situation. I have a Excel sheet like this and "A column" is important. Each row of "A column" contains a text string(XXXX-XXXX) and the total number of rows is 600. A column B col C col D col E col 1000-1500 text1 text2 number1 number2 1000-1501 text1 text2 number1 number2 ~ 1000-1599 text1 text2 number1 number2 1000-1800 text1 text2 number1 number2 1000-1801 text1 text2 number1 number2 ~ 1000-1899 text1 text2 number1 number2 1000-3500 text1 text2 number1 number2 ~ 1000-3699 text1 text2 number1 number2 2000-5400 text1 text2 number1 number2 ~ 2000-5599 text1 text2 number1 number2 And I have a text file "list-a.txt" which consists of roughly 300 lines and each line has a text string(XXXX-XXXX). 1000-1504 1000-1507 1000-1810 2000-5411 2000-5599 What I need is to delete data in column (B:E) of a row in Excel if the text sting XXXX-XXXX is NOT in "list-a.txt". And I need to type/input data in column (B:E) if the text string XXXX-XXXX is IN "list-a.txt". For example, if "list-a.txt" file has only 5 lines as above. The Excel sheet has to be the same as the following. A column B col C col D col E col 1000-1500 1000-1501 1000-1502 1000-1503 1000-1504 newT1 newT2 newN1 newN2 1000-1505 1000-1507 newT1 newT2 newN1 newN2 1000-1508 ~ 2000-5410 2000-5411 newT1 newT2 newN1 newN2 ~ 2000-5598 2000-5599 newT1 newT2 newN1 newN2 I used "Text File Begin Process" command from file "list-a.txt" and Set Variable to %T1%. And tried with many more combinations like "Repeat Until" command but all failed. Please help me out. * Windows 7 and Macro Express v3.10.2.1
  18. Congratulations on getting so far! There are many ways to make the script more reliable and robust. For the next iteration, consider substituting "Window Activate" commands for Alt + Tab commands. Alt + Tabs work reliably when only two windows are open. But if you more than two open windows, you may end up in the wrong one. "Window Activate" is more likely to bring up the windows you actually want to act on
  19. Earlier
  20. Repeat Start (Repeat 20 times) Control Key Down Text Type: c Control Key Up ... ... ... Alt Key Down Text Type: <TAB> Alt Key Up Repeat End You might also try repeating indefinitely -- or repeat an extremely high number of times. Then after the copy-to-clipboard (Ctrl-c), if the clipboard contains nothing, exit from the repeat loop. That way your macro would deal automatically with a variable number of entries in a column, as long as the last cell in the spreadsheet column is followed by a null cell. Variable Set Integer %N1% to 1 Repeat Until %N1% <> 1 Control Key Down Text Type: c Control Key Up If Clipboard Text Equals "" Repeat Exit End If ... ... ... Alt Key Down Text Type: <TAB> Alt Key Up Repeat End
  21. UPDATE I have have finally succeded in setting up a script that does exactly what I want, Thank you very much for your help ! The last thing that is left to do is to set up a number of time that I want the script to be REPEATED. I have looked at the repeat command and I find it a bit confusing. So what would it need to be added to the following script if I want it to be repeated let's say 20 times ? Control Key Down Text Type: c Control Key Up Text Type: <ARROW DOWN> Delay 200 Milliseconds Alt Key Down Text Type: <TAB> Alt Key Up Delay 500 Milliseconds Control Key Down Text Type: v Control Key Up Text Type: <DOWN ARROW> Alt Key Down Text Type: <TAB> Alt Key Up
  22. You are probably on the right track by using program launch and window activate commands. 1. For now, forget about looping through multiple files. Simplify. Get it to work for one file. 2. Insert long pauses after each command. 1 or 1.5 seconds should be plenty. Commands that bring up windows and programs take time to work. Once you get the macro to work. use trial and error experimentation to figure out how short delays can be. Sometimes delays can be omitted. Sometimes they need to be longer than you might imagine. 3. Once you get the script functional, use it as often as possible for a day or two or three to ensure it's reliable. Then, make a copy of the macro, and start adding the code to loop through multiple files, which will add another layer of complexity.
  23. Hi Can anyone help me with this issue -- i am trying to automate this task for a work project. -Paul
  24. Thanks, acantor and Cory. In the end, I think my keyboard shortcut might have been the issue. I might have picked a keyboard shortcut that was already being used for something else. I changed it, and the macro is working now! Thanks again.
  25. Exactly what acantor said. If it's MDI you might have some issues. In some cases the 'documents' can exist outside the parent window. But technically they're still part of that parent window. Also if there are multiple windows with the same title it can get difficult. I had that problem with Outlook. But look and see what you see when you browse and we will take it from there.
  26. When inserting the Window Activate command, click the "Browse" and select the specific CintaNotes windows you want to activate. Then set the "window title" drop down to "Exact Match." Save the macro and test. If it works, edit the command to work more generally. For example, if the window title is "CintaNotes - Document001" but you want it to work for Document 001, 002, 003, etc., delete "001" and then change the drop down to "Partial Match."
  27. Hi Cory, I suspect it's a conventional app. Not sure. It's CintaNotes (very useful note-taking application). It has multiple windows you open, and maybe that's part of the problem. Orson
  28. Is the program a UWP app (Windows Store) or a conventional WinAPI program?
  1. Load more activity