Скопировать (в буфер обмена) из таблицы (списка) в программу на Windows
Я использую программу (Comsol), которая вычисляет формулу, введенную в одну ячейку в таблице, и помещает результат в другую ячейку. Первая ячейка редактируется, и я могу скопировать ее в буфер обмена с помощью Ctrl + C, но вторая ячейка не редактируется, а Ctrl + C ничего не делает. Это означает, что я либо должен повторно выполнить вычисление самостоятельно, либо ввести цифры численного ответа вручную.
Я использовал утилиту Window Spy из AutoHotkey (из контекстного меню сценария запуска AHK в системном трее), чтобы увидеть, что элемент управления, реализующий эту таблицу, представляет собой элемент управления ListView (называемый SysListView3217 или SysListView3218 или аналогичный), поэтому это стандартный элемент управления Windows, Точно так же, как в проводнике Windows для отображения файлов и папок. Это неудивительно, поскольку графический интерфейс Comsol, очевидно, построен с помощью SWT, который использует собственные средства управления Windows.
Это на полпути. Каким будет элегантный способ использования AutoHotkey для захвата текста из SysListView?
- Удалить все файлы из папки и ее подпапок
- Macintosh OS X Сценарий выхода
- Автоматизировать скрипт | Переименуйте определенный список имен файлов с помощью определенного списка слов powershell
- Установка даты создания файла в Mac OS X
- Как автоматизировать установку MSI?
- Как запустить команду после загрузки?
- Crontab, чтобы разбудить osx от сна
- Есть ли способ программно установить свойства принтера в Windows?
- Как проверить результат сценария ftp с файлом bat?
- Добавить в начало имени файла
- Что эта команда: () {: |: &} ;: делает?
- Как извлечь полный список типов расширений внутри каталога?
- Открыть окно браузера на указанном экране / координатах
Сбор примеров из нескольких источников ( особенно этот , а также этот ), вот сценарий, который я придумал:
#SingleInstance Force #NoEnv #c:: MouseGetPos, , , , ListView_hwnd, 2 ;2 means return HWND ControlGet, selected_row_text, List, Selected, , ahk_id %ListView_hwnd% Gui, +ToolWindow +AlwaysOnTop -Caption Gui, Add, Edit, unused_variable x11 y15 w950 h66, %selected_row_text% Gui, Add, Button, x62 y84 w140 h30 +Center, Close Gui, Show, , return ButtonClose: Gui, Destroy return
Поместите это в файл AHK для запуска. Выберите строку в элементе управления SysListView, затем нажмите Win + C, и вы должны получить окно, подобное этому (знакомый проводник Windows в качестве примера):
Затем текст можно скопировать в буфер обмена из этого окна с помощью обычного Ctrl + C.
(Линия MouseGetPos
выбирает SysListView в настоящее время под курсором мыши, а строка после этого получает текст выбранной строки таблицы. Все остальные строки отображаются там, где отображается окно с текстовым полем, содержащим текст.)