Jump to content
Macro Express Forums

rberq

Members
  • Posts

    1,201
  • Joined

  • Last visited

  • Days Won

    61

Everything posted by rberq

  1. Here's a method that's a little messy, so it may be advisable or not depending on who will be using it: Prompt for a string value, for example, Enter length / width / height / weight separated by the letter "x" Response typed by the user will be a single text string, something like 21x15x6x13 -- that is, 21 inches by 15 inches by 6 inches by 13 pounds. Your macro can then parse out the string into separate integer or decimal variables.
  2. One thing I tried was to hover my mouse, wait for the URL to appear, then type Ctrl-a to highlight everything, then copy to clipboard and extract the URL. But the URL at the bottom did not get highlighted and copy to clipboard did not pick it up. Good luck.
  3. Hmmmm. I didn't think it could be that easy. Typing Ctrl-s lets you save the page source as a text file. Perhaps your macro could then open the text file in Notepad, or just read it into memory (ME variables(s)) looking at the URLs and associated text and extracting the information you want. Pulling data out of a text file is not too bad, as long as there is a consistent structure that you can search through. Hope that helps. I haven't come up with any other ideas that work.
  4. I'm not sure if this is what you are asking, but if it's the URL you want Alt-d will highlight it, and Ctrl-c will copy it to the clipboard: Text Type: <ALTD>d<ALTU> Text Type: <CTRLD>c<CTRLU>
  5. I can't see the screen image you attached. But I think you're talking about the icon that disables individual line(s) in a macro. For example in my screen shot below, I have highlighted three lines. If I click the icon the lines will appear with a line drawn through them, and will be ignored when the macro runs. In Macro Express 3.x it just happens that the icon is opposite line 9; it has nothing to do with line 9. As to why a line in your macros is not running, we would have to see the macro scripts.
  6. It sounds like you captured the macro rather than coded it from scratch. Usually when I do that, I wind up with delays that incorporate my thinking time and floundering-around time, which have little to do with the delays REALLY needed when the macro runs. You could use Samrae's Direct Editor approach to change all the delays to something extremely short, like 1ms. But don't delete them yet, because it will be handy to know where they are within the macro. Then, with the script editor test the macro a bit at a time by inserting temporary Macro Return statements and adjusting the delays to realistic values wherever you find they are truly needed. I have never bothered with the macro speed factor because I find it easier to work in terms of real time. Also, the sad fact is that when a macro really requires a delay, it will usually fail occasionally because Windows is busy doing some odd thing or other, and doesn't respond as fast as usual. So if it's a critical macro, you wind up making the delays extra long to allow for that once-in-a-blue-moon slow response. Or, you use some other method to tell when the macro can continue with its next steps.
  7. Here's a variant on Alan's suggestion: Put clipboard data into a text variable, locate the literal "Kindle Locations", delete from there to the end of the text, then delete backwards until you find -- something. I'm not sure what "something" will be -- possibly a carriage return, or carriage return/line feed sequence, like Alan suggested. The only potential advantage of my method over Alan's is, if there are multiple CRs or CR/LFs in the copied text then just finding the first one will end up losing some (or most) of the text. Again as Alan suggested you will use Variable Modify String to strip out the unwanted material. Maybe when you paste an example into Notepad, you could save the Notepad file and attach it to a posting here. Then we could look at it with a hex editor to see what characters are reliably present for delimiting the unwanted material. When you get it working, be sure to let us know how this comes out, because we're curious.
  8. Rather than using the scope tab, perhaps you can put logic within the macro itself so it immediately does a Macro Return if it is running for the wrong window. I’m not sure why ME doesn’t recognize the window title. I have a macro that I start from a hot key, to run in both yahoo mail and gmail, and to assure it is not running in some other application these commands work: If Window Title "Yahoo! Mail" is on top OR If Window Title "gmail" is on top Else Macro Return End If Another approach is to have the macro type Alt-d to highlight the web site’s address line, copy to clipboard, then see if it contains something like this: https://mail.google.com/mail/?tab=wm#inbox
  9. I figured left to right might be easier to visualize. But you're correct, right to left is a little simpler.
  10. This will get you fairly close to what you want. It’s not 100 percent but you can work out the bugs. Basically, it extracts one character at a time from the response saved from the menu, and appends the characters to the output message you are building. Mostly it’s a bunch of Variable Modify String commands, and when you get done you will know all about Variable Modify String. Use the multiple-choice version of the menu, saving item value(s) in %T1%. (But you knew that) Build the beginning of your response in a text variable: Variable Set String %T99% "The answer is " Variable Set Integer %N99% from Length of Variable %T1% (how many responses saved from menu) Repeat Until %N99% < 1 Variable Modify String: Copy first character of %T1% to %T90% Variable Modify String: Append %T90% to %T99% Variable Modify String: Append “,“ to %T99% Variable Modify Integer: decrement N99 by 1 Variable Modify String: remove first character from %T1% (the one just moved to the output message) If N99 = 1 (only one character not yet added to output response) Variable Modify String: Append “ and “ to %T99% EndIf Repeat End
  11. Clever work-around. But I have no answer to your original question.
  12. I have lots of experience making simple programming stuff difficult. My wife says my talent carries over into everyday life as well.
  13. My German is worse than your English, so I won't even try. I don't know if this will work or not. It depends whether the multiple choice menu is seen by Macro Express as a window. The multiple choice menu has a title. Start a second macro based on the menu's window title appearing. In the second macro, wait for a keystroke (any key) making the choice. In the second macro, type ENTER or use the mouse to click the OK key. The original macro that displayed the multiple choice menu should then continue. I can't test this because I have Macro Express 3, not Pro, and ME3 doesn't allow multiple concurrent macros to run.
  14. Ah, yes. I always should ask whether a macro is a one-user thing or a many-user thing. Obviously makes a big difference. Can you run the macros via keystrokes? Pressing Ctrl-Alt gives keystroke access (w then m then v) to the list of macros, where you can then type a macro name and Alt-R to run it. Maybe that would work -- presumably it would not rely on screen resolution, color scheme, etc. You wouldn't even need the macros assigned to buttons.
  15. I wonder if you are making this too hard... In the Macro Express Scripting Editor, click Tools / Mouse Locator, find the screen coordinates of the buttons, and have your macro move the mouse to the button location and click the mouse. Obviously this will work only if the spreadsheet is always in the same position on the screen, so you may want to first make it full-screen and type Ctrl-Home to position to cell A1 before doing the mouse actions. Seems pretty straight-forward, or am I missing something?
  16. If it's something you have to do often, write a generalized macro that you can call ("run") whenever another macro needs the functionality. In the long run, it's easier than finding and copying the code every time you need it. Plus when you inevitably find a bug in your code, you only have to fix it in the one spot.
  17. I don't know of any direct way with ME. If the users are reasonably intelligent, you could have them enter a single string delimited by some special characters. For example, Bob Jones&&123 Easy Street&&Augusta&&Georgia&&50403&& Then it's pretty easy for your macro to deconstruct the string into its components. It's not an ideal solution but it could work.
  18. This might work, depending on what windows and circumstances are involved: Use the Macro Express mouse locator tool to find the boundaries of the Cancel button, that is, where is it on the screen? Trigger a macro to start based on the window appearing. Wait for Left Mouse Button Click. Get mouse location and see if it is within the Cancel button area. P.S. If the multiple choice menu was displayed by Macro Express itself (Create a Multiple Choice Menu), then ignore the above idea, because ME has the option to return the word Cancel to the macro.
  19. +1 MS saw all those books called Windows for Dummies, and decided to make it dumber. Hiding the file extensions, automatically routing files into "standard" folders like Music, Pictures, Videos, Downloads, and worst of all "Documents" in all their variations, replacing Control Panel icons with vague lists ... Did they really think people were too stupid to organize files into folders, all by themselves? So as Windows has become more reliable it has become more opaque and clumsy to control -- like replacing your sports car's rack-and-pinion steering with some heavy-duty rubber bands hooked to the tie rods. No Macro Express for Linux??? Rats!
  20. I set up a similar pixel color scan for my wife's older Windows Vista machine, and the scan was painfully slow because the machine itself is a lot slower. But I found that incrementing mouse position 6 pixels each time though the loop, instead of 1, was adequate to find the button I was scanning for, and SURPRISE made the search 6 times faster.
  21. Save the text, then try Variable Modify String with option Convert to Integer. Variable Modify String: Convert %T1% to integer %N1%
×
×
  • Create New...