Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

v1.0.37 released: Retrieve text from external ListViews


  • Please log in to reply
29 replies to this topic
Chris
  • Administrators
  • 10727 posts
  • Last active:
  • Joined: 02 Mar 2004
For v1.0.37.02: Fixed key-up hotkeys such as "LButton Up" to avoid disruption of non-hotkey events such as Shift-LeftClick. [thanks Icfu]

Chris
  • Administrators
  • 10727 posts
  • Last active:
  • Joined: 02 Mar 2004
Here are the changes for v1.0.37.03:

Fixed minor issues when a script's language/layout changes while it's running. This affects hotkeys, hotstrings, Send, and possibly other areas.

Fixed the hotkey control for Numlock and NumpadDiv (previously it yielded SC145 and SC135).

Improved "Gui, Tab" with an exact-match mode. [thanks Tekl]

Improved hotkeys to recognize the following symbols as valid key names: #!^+$<>*~ [thanks Tekl]

Chris
  • Administrators
  • 10727 posts
  • Last active:
  • Joined: 02 Mar 2004
If you happened to have downloaded today's release (1.0.37.03), it introduced some serious bugs affecting the Send command's ability to send modifier keys and other keystrokes.

Therefore, if you're running version 1.0.37.03, please upgrade to 1.0.37.04. If you have 1.0.37.02 or older, you don't have to upgrade unless you need any of the other recent fixes or improvements.

Sorry for the bad release.

Chris
  • Administrators
  • 10727 posts
  • Last active:
  • Joined: 02 Mar 2004
Here are the changes for v1.0.37.05:

Fixed hotkeys such as ^!a not to fire twice when "a & b::" is a hotkey. Also fixed hotkeys such as ^!a to work without a $ when "a" is a prefix key such as "a & b::". [thanks t0nyk0]

Fixed hotkeys "LButton::" and "RButton::" not to disrupt Edit control context menus. [thanks Tekl]

Fixed "GuiControl ChooseString" not to ignore the first two items in each ListBox/ComboBox/DDL. [thanks Tekl]

Chris
  • Administrators
  • 10727 posts
  • Last active:
  • Joined: 02 Mar 2004
Here are the changes for v1.0.37.06:

Fixed auto-replace wildcard hotstrings whose last character is a diacritical letter (e.g. :*:js√°::). [thanks jordi]

Fixed the tray icon to turn green when a paused thread is interrupted by a new thread.

Changed and improved the Pause command: 1) "Pause Off" always affects the thread immediately beneath the current thread rather than the nearest paused thread; 2) "Pause [Toggle]" always pauses the current thread if the thread beneath it is unpaused; 3) Added an option to pause the underlying thread rather than the current thread. [thanks Decarlo110]

Improved the "Pause Script" menu item to work even when the script is idle (which prevents timers from running). [thanks Rajat]

Improved SoundSet and SoundGet to support N/A for ComponentType and numeric values for ControlType. There is also an example script to discover your soundcard's capabilities.

Chris
  • Administrators
  • 10727 posts
  • Last active:
  • Joined: 02 Mar 2004
Here are the changes for v1.0.37.07:

Fixed disruption of a GUI window's custom icon when "Menu, Tray, Icon" loads a new icon. [thanks Tekl]

Fixed hotstring option "O" (omit end-char) to work even when "B0" (no-backspace) is in effect. [thanks Tekl]

Improved AltTab hotkeys to support Escape as a means of canceling the operation. [thanks catweazle]

norton
  • Members
  • 1 posts
  • Last active: Sep 02 2005 10:24 PM
  • Joined: 02 Sep 2005
Is there any way to get "ControlGet, List" to work with a subclass of list view? If not, is there any other method that might work for retrieving the list?

Chris
  • Administrators
  • 10727 posts
  • Last active:
  • Joined: 02 Mar 2004
The short answer is that you might consider using OCR to extract the text, such as the free command line utility gocr: http://www.autohotke...opic.php?t=4089

Longer answer:
The inability to retrieve text from a particular ListView -- rather than being due to subclassing -- is more likely due to the app keeping the data private as opposed to putting it into the control.

I've seen one program called MXTool 2.0 beta that can get text from a private ListView, but I think was written to work only with WinMX. It uses a DLL to load a system-wide messaging hook. It then sends some messages to the ListView to get it to cough up its text in a way that can be monitored by the hook.

Unfortunately, I don't think any source code was released with it, so getting it work with other ListViews might be impossible. I didn't find many links for it on the web, but here's one direct download link: http://win-mx-jp.hoo...xtool20BETA.zip

skrommel
  • Members
  • 193 posts
  • Last active: Jun 07 2010 08:30 AM
  • Joined: 30 Jul 2004
The codeproject have a solution:

http://www.codeproje...64_memsteal.asp

Skrommel

Chris
  • Administrators
  • 10727 posts
  • Last active:
  • Joined: 02 Mar 2004
I'm pretty sure the method described in that article is exactly what "ControlGet, List" does to extract text from "cooperative" ListViews. If so, it won't work on apps that store their ListView data privately rather than inside the control.

skrommel
  • Members
  • 193 posts
  • Last active: Jun 07 2010 08:30 AM
  • Joined: 30 Jul 2004
:oops: I hadn't downloaded the latest version, and couldn't extract any listviews correctly, so I though that was the problem... Sorry!

But how can I extract the syslist header?

Skrommel

Chris
  • Administrators
  • 10727 posts
  • Last active:
  • Joined: 02 Mar 2004
There is no built-in way to get the text in the column headers. But in most cases, you might find that you don't need it because even if the user has changed the ordering of the columns via drag & drop, I believe the columns are retrieved in their original order by the script.

If you find that this isn't true for a common ListView such as Explorer, please let me know.

skrommel
  • Members
  • 193 posts
  • Last active: Jun 07 2010 08:30 AM
  • Joined: 30 Jul 2004
But SmartGUI Creator's GUI stealer can do this! Or at least the first colums header.

What I want is to mimic and expand TaskManager, and to avoid language problems, I need to extract the column headers.

Any suggestion?

Skrommel

Chris
  • Administrators
  • 10727 posts
  • Last active:
  • Joined: 02 Mar 2004
I don't know how SGUI does it. As far as I know, the only way to do it is with LVM_GETCOLUMN or HDM_GETITEM, but I believe both of them require:

1) A structure, which adds complexity but not too bad.
2) Inter-process memory to copy the text into the script. This can probably be done from a script but would be quite complicated.

The reason "ControlGet List" can't fetch column text is that the code size would be rather large and it seemed too rare that anyone would want it. But obviously someone does want it. :)

So if it's important, I could try to do it in a script or add it to the program (which might be a better use of time).

skrommel
  • Members
  • 193 posts
  • Last active: Jun 07 2010 08:30 AM
  • Joined: 30 Jul 2004
:D No need to rush this! I just needed to get a process list, and stealing the tasman's listview solves this, with or without the headers. Thanks!

Skrommel