Jump to content
Macro Express Forums

acantor

Members
  • Posts

    1,534
  • Joined

  • Last visited

  • Days Won

    18

Everything posted by acantor

  1. The "Left Window" and "Right Window" keys appear on most full sized keyboard. Sometimes, one or both is absent on laptop keyboards. The key is sometimes referred to the "Windows Logo key." There are usually two on full-sized keyboards, usually both are on the bottom row, i.e., the same as the spacebar. Pressing one of these keys is equivalent to clicking on Start. You can also use the key as a modifier (like Shift or Ctrl) -- hold it down while pressing another key. For example: Window + R = Run Window + D = Minimize all windows and put focus on desktop "Application" is available on most (but not all) keyboards, usually on the bottom row. The image on the key looks a little like a sheet of paper. It is the equivalent of right clicking, assuming an object has keyboard focus. If you "click" once on a desktop icon, pressing the Application key is the same as right clicking it. It's also equivalent, in most cases, to pressing Shift + F10. Not all applications support the Application key., "Context" may be the same as "Application" because right clicking can bring up the "context menu." I don't know what Rel, Erase OF, Zoom, or PA1 do. There are other keys in the list. Some are obvious; but some may cause your keyboard to stop responding, so be careful when experimenting! I imagine users in Europe would like a way to simulate "Alt Gr," but I don't know how to do that. In Canada and the USA, keyboards do not have this key, although I believe the French Canadian keyboard differentiates the left and the right "Alt" to provide a means to insert accented characters. "FN" is more hardware than software related. It's a proprietary key, usually appearing only on laptop and other small keyboards. It provides a means to access keys that have been left out to save space. I know of no way to simulate it with Macro Express, although there are sometimes workarounds. For example, on keyboards with embedded number pads, you may have to press FN + / to produce Numpad +. But Macro Express provides a means to simulate all of the Numpad keys using the "Miscellaneous" list in the "Text Type" dialog.
  2. I think it's a bug. Navigation by keyboard and acting on objects should be separate. In other words, navigating using the tab key, arrow keys, etc. should only move focus from one object to another, not activate anything. In Macro Express 3, it was possible to use the arrow keys to navigate through the activation methods. In Macro Express Pro, navigating through the list using the down arrow key causes focus to switch to the edit field where you enter a hotkey. And it assumes you want "down arrow" as the hotkey. There is a workaround, although it is clunky: press the Tab key twice, which moves focus to the checkbox, and then use Alt + accelerator key to choose an activation method: Alt + W = Window Event Alt + M = Mouse Event
  3. After I installed 4.0.2.1, Window Title Activation seemed to be working again... but a few days later, I noticed that many of the macros had stopped working, and in fact, none are working now, including new ones that I create. So it's gone from erratic to nothing. As before, the macros will activate if I Alt + Tab away from the window, and then Alt + Tab again to give the window focus a second time.
  4. Thank you to Kevin, Stan, and all other ISS people who have worked hard to improve MEP. And thank you to everybody on this forum who has found and reported problems. How good it is that ISS quickly fixes the bugs that we discovered!
  5. There are advantages and disadvantages to the Find feature, just like there are advantages and disadvantages to a built in incremental listview search. For example, if you type two letters instead of one, you significantly increase the likelihood of going directly to the command you want. But this also applies to incremental searches in a listview. It is good to be able to use either strategy. So please, do make a feature request!
  6. Hi Notbob, The incremental search of yore does not work in MEP. This would be a fine feature to reintroduce. FEATURE REQUEST!!!! (I assume that the grid of commands was a listview control in Macro Express 3. The search comes for "free" as part of the control: type the first letter to get to the first item that starts with that letter, or the type the first few letters quickly to get to the first item that starts with that string of characters.) There is a workaround in MEP. It takes an extra step, but it also more powerful: Press Ctrl + F to "Find," type a search string -- which can be as short as one character, and then press Enter. Every time you press Enter, you find the next instance of the search string. Press Esc to close the search dialog, and the desired command should have focus. You can specify a search in Nicknames, Activations, and other columns as well. It would be better if the search automatically wrapped to the top if a search string is not found, but it does not. FEATURE REQUEST!!!! For example: to go to a command with nickname "test xyz", you could search for any of the following: test te t x t x yz etc.
  7. you can move a folder to another folder, but you need to do so by dragging with a mouse. There does not appear to be a keyboard (or menu) equivalent.
  8. I find that the "Last Run Time" is reliable, and it is one of the features I especially appreciate about this version of Macro Express. There are issues, however, with the Explorer screen after running a macro. It is not always up-to-date. Sometimes, the same macro is listed twice. Pressing the up and down arrow keys a few times complete the screen update, but it would be better if the Explorer screen automatically refreshed itself every time a macro is triggered.
  9. I have taken a rather different approach to organizing commands. There are about 14 commands (or command categories) that I use regularly. These include: Text Type Repeat Mouse If Else etc. These fourteen cover about 95% of my needs. So over a period of a few hours, I created fourteen hotkey macros that directly activate the commands or command categories that I constantly use. As I access these commands all the time, I memorized the hotkeys quickly. Each macro navigates through the Scripting Editor user interface to insert the desired command, or to place focus in the desired category so that a command can be chosen by keyboard (or mouse, if you prefer). Of course, you can use any hotkeys you want, but for this set, I use Shift + Alt + something, e.g., Shift + Alt + T = Text Type Shift + Alt + R = Repeat Shift + Alt + M = Mouse Shift + Alt + I = If Else All macros have Scope = Window = Scripting Editor. All fourteen macros have two parts: 1. A set of commands that reliably puts focus at the start of the "All Commands" tree view. For the way that I have configured Macro Express, the key sequence is this: Text Type (Simulate Keystrokes): <ALT>n Text Type (Simulate Keystrokes): <TAB> Text Type (Simulate Keystrokes): <ARROW LEFT><ARROW LEFT><ARROW LEFT><ARROW LEFT><ARROW LEFT><ARROW LEFT> Text Type (Simulate Keystrokes): <TAB><TAB> Text Type (Simulate Keystrokes): ca Text Type (Simulate Keystrokes): <TAB> I implemented the above as a macro nicknamed "Prepare to Search for Command" that all other scripts call: Macro Run: Prepare to Search for Command 2. The second part of the macro consists of specific keystrokes to activate the desired command, or navigate to a set of commands. I worked out the key sequences through a little trial-and-error experimentation. Undoubtedly there are more elegant ways, but here are examples of key sequences that work on my machine: "Text Type" (Command) Text Type (Simulate Keystrokes): k<ARROW RIGHT>t<ENTER> "Repeat" (Category) Text Type (Simulate Keystrokes): s<ARROW UP><ARROW RIGHT> Repeat Start (Repeat 6 times) Text Type (Simulate Keystrokes): <ARROW DOWN> End Repeat "Mouse" (Category) Text Type (Simulate Keystrokes): mo<ARROW RIGHT> Text Type (Simulate Keystrokes): <ARROW DOWN><ARROW DOWN><ARROW DOWN><ARROW DOWN><ARROW DOWN><ARROW DOWN><ARROW DOWN><ARROW DOWN><ARROW DOWN><ARROW DOWN><ARROW DOWN> Obviously there are limits to this technique -- most people will not want to memorize dozens of hotkeys. But for the finite number of commands that I use constantly, I find this technique very convenient. It's using Macro Express to make it easier to use Macro Express!
  10. For those of us who don't use -- or avoid using -- a mouse, there is a built-in keyboard command to do this: Ctrl + Alt + C. The same functionality is also available through the Edit menu as the "Comment" command. Good job, Macro Express developers!
  11. When scripting for Firefox, I know of no way to automatically move the mouse cursor (or the text cursor) to anywhere other than the upper-left corner of the viewport, other than the two convoluted (and not always reliable) methods I described in an earlier post: pixel sniffing and mouse pointer hunting. Given the popularity of Firefox, I propose a feature request: mouse movement commands that detect focused objects in Firefox.
  12. I don't think there is an elegant solution. I have tried to do what you are trying many times, without success. The problem seems to stem from Firefox. Firefox does not seem to be dealing with the normal text cursor when a link has focus, or even when a field has focus (and there really is a cursor there)! The upper left corner of the screen registers as the text cursor position, regardless of where it actually is. There is an add-in to Firefox that changes the colour of the find box if a search string is not found. I am not sure if that would help. But at least you could monitor the colour change at a fixed position on the screen. The best solutions I have come up with are pixel sniffing and mouse cursor checking. Pixel Sniffing: If I expect a colour change to occur somewhere along the vertical line x = 200... X = 200 Y = 100 // Start position // Repeat 300 times // Check up to 300 pixels along x = 200 Move Mouse to X, Y N = pixel color If N = Target Colour // Success - Perform an action and quit Macro Stop Else // Colour not found - Increment 1 pixel and try again Y = Y + 1 End if End Repeat Mouse Cursor Checking: If I expect a mouse pointer to change shape along the vertical line x = 200... X = 200 Y = 100 // Start position // Repeat 300 times // Check up to 300 pixels along x = 200 Move Mouse to X, Y If Mouse Cursor = Target Shape (e.g., internet pointer, horizontal split, whatever) // Success - Perform an action and quit Macro Stop Else // Cursor not found - Increment 1 pixel and try again Y = Y + 1 End if End Repeat More sophisticated versions of these scripts check pixels or mouse cursors along a spiral path, or check every pixel in an area of the screen, or in an extreme case, every pixel on the screen. But these are brute force methods that take time to run. (I have a macro that uses the spiral method; it checks a 2 cm by 2 cm patch of screen in three or four seconds. I use this method regularly. I also have written macros that check the entire screen, but these take too long to execute: on a 1280 x 1024 pixel screen, that's 1.3 million iterations.)
  13. Another way to do this is to monitor the shape of the mouse cursor. That is what I do in one macro I wrote to automatically log on to my hotmail account via Firefox. It involved moving the cursor to a "neutral" location where the cursor shape is less likely to inadvertently change to an unexpected shape. Part of the script ended up looking like this: Mouse Move: 4, 4 Relative to Current Window Wait for Not Mouse Cursor: App Start Wait for Mouse Cursor: Arrow Wait for Not Mouse Cursor: App Start Wait for Mouse Cursor: Arrow Wait for Not Mouse Cursor: App Start Wait for Mouse Cursor: Arrow There are problems with all approaches. One issue with web pages appears to be that a page may not be fully loaded until after any Javascript is done running. To make my macro work reliably, I needed to insert strategic delays. And even then, it's not 100% reliable... but I would guess it works 18 or 19 times out of 20.
  14. Unfortunately, when scripting macros, we have limited access to the inner workings of the OS and applications. And even when we do have programmatic access, it may not be the fastest way to accomplish a task. For example, it may be possible to harvest information about the user interface, store it in a variable, parse it, make decisions, and activate something... but it may be a lot faster to move the bloody mouse pointer to a button and click! Like you, I do not like including delays in macros. I prefer to wait for events. But delays are an almost inevitable aspect of macro scripting. My goal is to script macros that are fast, portable, reliable, and elegant. In actual practice, I usually manage two or three out of four. My suggestion is to make peace with delays. Adding delays is not illegal, not unhealthy, and not immoral. The worst thing about delays is that they are not pretty! But in time, delays begin to reveal a beauty of their own. There is art to be found...
  15. Yes. No. A blank line of text does contains something, even if only a line break, which counts as text. It depends on what those empty lines -- which are not actually empty -- consist of. The first task is to figure out what exactly is on those lines: spaces, tabs, hard line breaks, soft line breaks, optional hyphens, and so on. In a Word document, there are more invisible "characters" possible than in, say a plain text file. That is the most convenient way that I know of. It may be possible to set a text variable to null, e.g., T1 = "", and then make the clipboard = T1. I'm not sure if Macro Express lets you do this, though.
  16. Hello friends at Insight Software Solutions: So... is it a bug?
  17. I'm not finding it under Timing in Version 4. This is what "Wait for Cursor Change" looks like in Version 3:
  18. In Version 3, one of the most useful Wait options (for me) was the recently introduced "Wait for Mouse Cursor Change." It triggered when the mouse cursor changed from one shape to another. I am not finding this in Version 4. Is the command on holiday, AWOL, or has it been moved?
  19. I will try to create a sample, and post it here in the next day or two. My initial sense is that it usually happens when the hotkey involves more than two keys, e.g., Ctrl + Alt + Q.
  20. Assume I have a working macro, and have checked the "Wait for the Hot Key to be Released before Activating" checkbox. Everything works fine. When I uncheck the checkbox, one of two things happen: 1. The macro activates as soon as I press the key combination. Yay. 2. The macro does nothing. What are the conditions that cause the macro to fail when the checkbox is unchecked?
  21. There are lots of dialog boxes for which Enter does not activate the default button. Sometimes it's necessary to give focus to the button by tabbing to it; then Enter or Space activates the button. Also, pressing Enter won't do anything unless the window itself is the focused window. I have noticed a few times that dialog boxes created with Macro Express Pro sometimes receive focus, sometimes don't. Or sometimes they appear to NOT have focus, but they receive input from the keyboard anyways.
  22. Is there a way to create a dialog box using Macro Express Pro with some text and two (or more) buttons? Something like this: ----------------------------------------- Do you want to continue? | Yes | | No | ----------------------------------------- Then, store the result in a variable?
  23. Here is a short macro to do what you want in Firefox. It would be easy to modify the code for other browsers. It's best to set the scope of the macro to window specific, e.g., "- Mozilla Firefox" etc. // Hotkey to view Page Source... Text Type: <CONTROL>u Wait for Window Title: Source of: // Copy all to clipboard... Text Type: <CONTROL>a Text Type: <CONTROL>c
×
×
  • Create New...