1

Тема: AHK: задать путь сохранения.

добрый день. Как задать путь до директории вот в этом окне?
Необходимо при вызове окна, открыть ту папку, которую мы пропишем в коде.

обычное окно сохранения файла в программе.

Буду благодарен за помощь

2

Re: AHK: задать путь сохранения.

Не знаю, правильно ли я понял условие…
Если одновременно открыть несколько диалогов, то будет работать только с первым:

#SingleInstance force
#NoEnv

DIRECTORY = D:\Soft
EXENAME = notepad.exe

1:
WinWait ahk_class #32770 ahk_exe %EXENAME%
ControlGetText SavedText, Edit1
ControlSetText Edit1, %DIRECTORY%
ControlClick Button2
ControlSetText Edit1, %SavedText%
ControlFocus Edit1
WinWaitClose
goto 1

3

Re: AHK: задать путь сохранения.

Не совсем так. Ваш код сохраняет файл, но не в указанную папку directory.  файл сохраняется непонятно куда.
Скорее всего в ту директорию, которая была последней открыта.

Мне необходимо в edit2! задать путь, куда сохранится файл

4

Re: AHK: задать путь сохранения.

В notepad используется edit , можно к примеру так:


WinWait ahk_class #32770 ahk_exe %EXENAME%
ControlGetText SavedText, Edit1
ControlSetText Edit1, %SavedText%
Send, {F4}
ControlSetText Edit2, %DIRECTORY%
ControlClick, Button2, ahk_class #32770 
WinWaitClose

но скажем в photoshop, как и в других более продвинутых программах используется combobox
Как передать ему строку %DIRECTORY%   ?

5 (изменено: wisgest, 2013-10-13 15:18:05)

Re: AHK: задать путь сохранения.

maxfashko пишет:

Ваш код сохраняет файл, но не в указанную папку directory.  файл сохраняется непонятно куда.

Мой код вообще не сохраняет файл, он лишь переключает директорию на указанную («D:\Soft» в примере); после чего пользователь должен сам отредактировать имя файла или выбрать существующий. Работоспособность кода было проверена.
Если папка указанная в переменной DIRECTORY не существует, но существует её надпапка, то да, произойдёт сохранение файла под этим именем.
Возможно ещё, что если задано расширение по умолчанию (например, «ext»), то тоже произойдёт сохранение файла D:\Soft.ext вместо перехода в папку D:\Soft — если это так, то следует добавить к DIRECTORY «\» или «\*».
Ещё, возможно, для устойчивой работы стоит попробовать добавить Sleep перед ControlClick или использовать SetControlDelay.

maxfashko пишет:

Мне необходимо в edit2! задать путь, куда сохранится файл

Включая само имя файла?

maxfashko пишет:

В notepad используется edit , но скажем в photoshop, как и в других более продвинутых программах используется combobox

Нет, в notepad тот же combobox.

6

Re: AHK: задать путь сохранения.

Спасибо, понял.

Будете смеяться, но я не знал, что в строку имени файла можно вбить путь, и он там будет сохраняться

7

Re: AHK: задать путь сохранения.

WinWait ahk_class #32770 ahk_exe %EXENAME%

— приношу извинения, сказывается отсутствие опыта в AHK,
на самом деле ahk_class #32770 имеют почти все диалоговые окна и скрипт будет реагировать на любой MessageBox (и не только) от отслеживаемого приложения.
Чтобы этого не происходило, следует в условие ожидания добавить заголовок диалогового окна:

. . .
DIALOGTITLE=Сохранить как

1:
WinWait %DIALOGTITLE% ahk_class #32770 ahk_exe %EXENAME%
. . .