Здравствуйте, Светлый.
Вы писали 15 мая 2025 г., 10:02:51:
> Не сказал я бы и не искал. Есть кнопка, но она в виде неподписанной графики,
> вот на нее жмешь иоткрывается диалог открытия файла. Скормил картинку, но на
> ней нет текста и он так и сказал. Попросил распознать сцену, он отказался.
>
А можно как-то спозиционировать нахождение этой кнопки? Где примерно
она находится? Что в окружении? Всю графику распозновать не хочется.
Вчера пытался заставить его распознать действие на видео, он сказал,
что файлы не принимает из-за безопасности. Речь идёт о приложении
портабельном.
Предложил сперва на яндекс диск выложить, потом передумал. Короче
компоссировал мозги.
предложил картинки выложить на:
Image Describer-Бесплатный продвинутый анализ изображений
https://www.yeschat.ai/ru/gpts-2OToJWTeSH-Image-Describer
Зарегистрировался, но пока не выкладывал, да и не картинки мне надо
было попробовать распознать, а видео.
Смеха ради, попросил написать Jaws скрипт на перемещение файла с
указанием папки-приёмника в виде параметра. Он
написал. Правда синтаксис показался подозрительным и точно компиляция
не прошла.
Вот первые строки скрипта:
var
TargetFolder string ; Папка-приёмник (можно задать заранее или передавать параметром)
Первый раз вижу такое описание переменной, чтобы слово string шло
после наименования переменной.
Может я от жизни отстал, хотя компилятору такая конструкция тоже не
понравилась.
Может кто пояснит такой синтаксис?
на всякий случай ниже весь текст скрипта и комментарий:
#include "HJConst.jsh"
var
TargetFolder string ; Папка-приёмник (можно задать заранее или передавать параметром)
; Основной скрипт Script MoveFileToDestination(string sTargetFolder)
var
hWnd HWND,
sSourcePath string,
sFileName string,
sDestPath string,
bSuccess boolean
; Получаем путь к выделенному файлу
hWnd = GetForegroundWindow()
if !IsWindow(hWnd) then
SayMessage(OT_MESSAGE, "Ошибка: окно не активно")
return
endif
sSourcePath = GetFocusObjectPath()
if sSourcePath == "" then
SayMessage(OT_MESSAGE, "Ошибка: не удалось получить путь к файлу")
return
endif
; Проверяем, что это файл (а не папка)
if IsDirectory(sSourcePath) then
SayMessage(OT_MESSAGE, "Ошибка: выбранная папка, а не файл")
return
endif
; Если папка-приёмник не передана, используем значение по умолчанию
if sTargetFolder == "" then
sTargetFolder = TargetFolder
if sTargetFolder == "" then
SayMessage(OT_MESSAGE, "Ошибка: папка-приёмник не указана")
return
endif
endif
; Проверяем существование папки-приёмника
if !IsDirectory(sTargetFolder) then
SayMessage(OT_MESSAGE, "Ошибка: папка-приёмник не существует: " + sTargetFolder)
return
endif
; Формируем конечный путь
sFileName = GetFileName(sSourcePath)
sDestPath = sTargetFolder + "\\" + sFileName
; Перемещаем файл
bSuccess = MoveFile(sSourcePath, sDestPath)
if bSuccess then
SayMessage(OT_MESSAGE, "Файл успешно перемещён в: " + sTargetFolder)
else
SayMessage(OT_MESSAGE, "Ошибка: не удалось переместить файл!")
endif
endscript
; Вспомогательные функции string function GetFileName(string sPath)
var
nPos int
nPos = StringLastPos(sPath, "\\")
if nPos >= 0 then
return StringSegment(sPath, nPos + 1, 0)
endif
return sPath
endfunction
Как использовать?
Установка папки по умолчанию (опционально):
В начале скрипта можно задать путь к папке-приёмнику:
javascript
TargetFolder = "C:\\МоиДокументы\\Архив" ; Пример пути
Назначение горячей клавиши (например, Insert + M):
Откройте JAWS > Utilities > Keyboard Manager.
Найдите скрипт MoveFileToDestination.
Назначьте комбинацию клавиш.
Использование:
Выделите файл в Проводнике.
Нажмите горячую клавишу.
Если папка не задана в скрипте, JAWS запросит её через диалоговое окно.
Пример с параметром
Если нужно передавать папку динамически (например, через диалог JAWS):
javascript
Script PromptAndMoveFile()
var
sFolder string
sFolder = ShowDialog("Введите путь к папке-приёмнику:", "C:\\")
if sFolder != "" then
MoveFileToDestination(sFolder)
endif
endscript
Назначьте этот скрипт на другую клавишу (например, Insert + Shift + M).
Важно!
Скрипт использует встроенные функции JAWS (MoveFile, IsDirectory и др.).
Для работы с путями следите за экранированием (\\ вместо \).
Если нужно перемещать несколько файлов, скрипт можно доработать с использованием GetSelectedFiles.
Нужны доработки? Готов помочь! ??
Удачи.