All Activity

This stream auto-updates   

  1. Earlier
  2. Thank's very much to all of you!!! rberq, Perfect you resolved my problem !!!
  3. Yes, same here. Then a macro ran more or less constantly scanning screens to see whether the pixel colors/positions matched with the coordinate file. That would identify which screen was visible, and call other macros to process the screen. Users with slower computers told me they didn't like it because whenever that application was running the CPU cooling fan would come on and make too much noise.
  4. I had a macro once where the user could train the macro. It stored all the coordinates in a text file. It was simple.
  5. Anchor points -- excellent idea. The script to record anchor points shouldn't be too hard to write. I have done something vaguely similar to record pixel colors of unique points on a series of identically-named web screens, so a subsequent macro can determine which specific screen is currently present. I found the easiest method was to position the mouse by hand, then trigger the recording macro via a keyboard key. If I positioned the mouse then clicked, the clicking jiggled the mouse just enough that I often recorded the wrong location.
  6. Thank you for the feedback. I was recently reminiscing about playing games on my old Tandy 2000 and how you would have to calibrate the joystick every time you use it. I used this idea to set specific anchor points from which my mouse will move relative to that point. My thought is that when the elements deviate slightly from where they used to be, I will just have a script (haven't go that this part yet) to quickly change the coordinates of 4-5 anchor points. I would have liked to incorporate more tabbing into my macros, but it was not working as I had hoped and this new solution seems fine for the moment. I appreciate all the input.
  7. Maybe this? If Variable %x% Contains "BQ" Or this? Text Type (Simulate Keystrokes): <CONTROL>c // Copy text to clipboard... If Clipboard Contains "BQ"
  8. acantor sounds pessimistic, but he is absolutely right. The best Macro Express can do with Windows and especially web forms, is to be almost 100% reliable. It is great for automating personal tasks at work -- I always said it was worth half a person as a time saver. You can even roll it out to dozens or hundreds of users, but not to dummies. You/they have to watch carefully as the macros run and recognize when ME has gone wrong.
  9. 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.
  10. What about the string is distinctive? If you tasked a human to do it manually, how would you describe it? IE what rule would you give them?
  11. Hello, my friends, this is my first post in this great community, so if you are in the wrong place, I apologize. I need your help, For example, I have a variable that contains the text "user with code BQ", I need the code "BQ", however it can appear anywhere in the text. What I've been trying to find is the code to isolate the code "BQ" but i fail, that's it ... does anyone have any ideas? XD My macro is version 4.7.1.1.
  12. If you sink enough time and effort into the problem, you may come up with a solution that almost always works. But you gotta love experimenting and tweaking, or you will likely find the experience a miserable drudge! I use a combination of techniques, including: - Clicking on a "neutral" part of the screen that resets the tab order. Then send tabs/shift tabs to the control. - Searching for a pixel colour on a control, or to something near the target, and then tabbing and/or clicking. - Searching for text on the screen. Then give the word or phrase focus, and then tab to the target. - Searching for text on the screen and then selecting it. Then search for the pixel colour of the selection,and click. Some of my Macro Express scripts perform thousands of actions to zero in on a target on a web app, and are almost 100% reliable. But they were labours of love. I was willing to put in the time to get them to work. And some of them are a bit brittle.
  13. 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.
  14. 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.
  15. 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?
  16. Thank you, I'll check it on out. Thank you for the speedy reply
  17. Define an array variable rather than individually-named text variables. Increment an integer variable and use it as the index to the array.
  18. 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
  19. 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.
  20. 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
  21. 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.
  22. 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.
  23. Wow, It works !!! And It works in other possible case as well. Excellent. THANKS for your great help.
  24. 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
  25. 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.
  26. 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).
  1. Load more activity