1

Тема: AHK: Рабочая папка скрипта с GUI

Имеется скрипт, который при перетаскивании в него файла1 создает файл2.

gui, add, text, y+20 w400, Drop files here.
gui, add, edit, readonly w400 h80 vstatus
gui, show,,50i
return

GuiDropFiles:
gui, submit, nohide
FileAppend, test, test.txt
Return

GuiClose:
GuiEscape:
ExitApp

Как сделать так, чтобы он создавал файл2 в папке из которой мы переносим файл1?
Пока на ум приходит такое решение:

gui, add, text, y+20 w400, Drop files here.
gui, add, edit, readonly w400 h80 vstatus
gui, show,,50i
return

GuiDropFiles:
gui, submit, nohide
Loop, parse, A_GuiControlEvent, `n
   SplitPath, A_LoopField,, Dir
SetWorkingDir, %Dir%
FileAppend, test, test.txt
Return

GuiClose:
GuiEscape:
ExitApp

Может можно проще?

2

Re: AHK: Рабочая папка скрипта с GUI

Переиначу вопрос, почему в случае с Gui:  A _WorkingDir = A_ScriptDir ?

3

Re: AHK: Рабочая папка скрипта с GUI

OFF: Кто мне объяснит разницу между A _WorkingDir и A_ScriptDir?

Как сказал мой дед - Я твой дед

4

Re: AHK: Рабочая папка скрипта с GUI

Валентина Гаврикова, Николай Козлов пишет:

A_WorkingDir
Текущий рабочий каталог скрипта, в котором файлы доступны по умолчанию. Конечный обратный слеш включается только в случае, если это корневой каталог. Два примера: C:\ и C:\Мои документы. Для изменения рабочего каталога используйте функцию SetWorkingDir.

A_ScriptDir
Полный путь к каталогу, где находится текущий скрипт. Ради совместимости с AutoIt v2, если скрипт исполняется в файле .aut, то к пути добавляется конечный слеш. Пример для .aut-скрипта: C:\My Documents\

5

Re: AHK: Рабочая папка скрипта с GUI

Malcev пишет:

Переиначу вопрос, почему в случае с Gui:  A _WorkingDir = A_ScriptDir ?

А как должно быть? И при чём тут Gui? Что оно меняет?

6

Re: AHK: Рабочая папка скрипта с GUI

Ну если мы создадим простой скрипт:

FileAppend, test, test.txt

И перенесем в него файл из другой дтректории, то test.txt создастся в той директории, из которой был перенесен файл.

7

Re: AHK: Рабочая папка скрипта с GUI

Да, действительно есть разница. Но это уже вопрос к разработчику АНК.