1

Тема: AHK: Как задать папку для сохранения скриншотов?

Здравствуйте. Есть скрипт:

LWin:
Send, #{PrintScreen}
Return

По умолчанию он сохраняет сделанные скриншоты в папку Снимки экрана.
Вопрос: можно ли сделать так, чтобы скрипт сохранял скриншоты, сделанные с его помощью, в какую-нибудь другую папку? Например, D:\Рабочая папка\Изображения. А скриншоты, сделанные просто с помощью Win+PrtSc, когда скрипт не был запущен, продолжили сохраняться в папку Снимки экрана.

2

Re: AHK: Как задать папку для сохранения скриншотов?

Самый очевидный (но не самый оптимальный) алгоритм такой:

  • Перед отправкой #{PrintScreen} перечисляете все файлы, находящиеся в данный момент в папке Снимки экрана

  • Отправляете #{PrintScreen}

  • Через небольшое время перечисляете файлы ещё раз, тот, которого раньше не было — новый

  • Перемещаете новый файл в другую папку с нужным названием

Если с этим справитесь, подскажу, как проще.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Как задать папку для сохранения скриншотов?

teadrinker, расписываюсь в своей некомпетентности... Честно говоря, даже не представляю, как это реализовать.

4

Re: AHK: Как задать папку для сохранения скриншотов?

Там 4 пункта, какой именно вызывает затруднения?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Как задать папку для сохранения скриншотов?

teadrinker, все, кроме второго...

6

Re: AHK: Как задать папку для сохранения скриншотов?

И что, даже последний? Не знаете, как файл переместить?
Перечислить файлы можно с помощью Loop, Files.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: Как задать папку для сохранения скриншотов?

teadrinker, ладно, последнее знаю (наверное...):

FileMove, C:\Пользователи\User1\Изображения\Снимки экрана\, D:\Рабочая папка\Изображения\

Но я понятия не имею, как с помощью Loop, Files можно перечислить скриншоты, появившиеся за последние несколько секунд/минут.

8

Re: AHK: Как задать папку для сохранения скриншотов?

Можете просто перечислить все, что есть, сначала до получения скриншота, потом после. После будет файл, которого не было раньше.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Как задать папку для сохранения скриншотов?

teadrinker, можно пример для особо одаренных, как это делать?..

10

Re: AHK: Как задать папку для сохранения скриншотов?

marusa122 На форуме были неоднократно показаны примеры скриншотеров. Можно было бы просто скопировать код, немного изменить да запускать при включении компа.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

11

Re: AHK: Как задать папку для сохранения скриншотов?

marusa122
По ссылке, которую я дал выше, есть примеры. Я бы хотел здесь видеть хотя бы ваши попытки.

folderPath := "C:\Users\mi\Pictures\Screenshots" ; укажите свой путь к папке скриншотов

existing := {} ; сюда будем записывать существующие файлы
Loop, Files, %folderPath%\*.png
{
   existing[A_LoopFileName] := ""
}

Send #{PrintScreen}
Sleep, 2000

Loop, Files, %folderPath%\*.png
{
   if !existing.HasKey(A_LoopFileName) {
      newFilePath := A_LoopFilePath
      break
   }
}

MsgBox % newFilePath
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder