1

Тема: AHK:Скрипт сохранения страниц в ФФ

Добрый день, помогите пожалуйста написать скрипт по сохранению страниц в ФФ на жесткий диск.
Имеем - открыто 100 вкладок в ФФ
Надо - сохранить все на жесткий диск.
Пытаюсь запрограмировать такую последовательность действий - Send, ^s{Enter}^w
Но скрипт не успевает нажать на Enter после ^s и сразу жмет ^w (закрыть вкладку)
Пробовал поставить паузу - ничего не помогло...

2

Re: AHK:Скрипт сохранения страниц в ФФ

andrewwallace1981 пишет:

Но скрипт не успевает нажать на Enter после ^s

Почему думаете, что не успевает? Какой алгоритм вы хотите реализовать, можете словами описать?

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

3

Re: AHK:Скрипт сохранения страниц в ФФ

пробовал вот так:

#s::
Send, ^s{Enter}^w

В итоге скрипт нажимает Ctrl-S, выскакивает окно с предложением сохранить страницу, горит активная кнопка Save, но дальше ничего не происходит.
Если бы срабатывала команда {Enter} - то я так понимаю активная кнопка Save нажималась бы.

4

Re: AHK:Скрипт сохранения страниц в ФФ

Вы пишете код, не сформулировав задачу.

teadrinker пишет:

Какой алгоритм вы хотите реализовать, можете словами описать?

Если вы чётко не можете объяснить, что именно нужно делать, как AHK сможет вас понять?

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

5

Re: AHK:Скрипт сохранения страниц в ФФ

попробую еще раз)

Есть открытый Firefox, в нем открыто 100 вкладок.
Мне надо сохранить 100 открытых в Firefox вкладок, сохранить как HTML страницу (или как текст - неважно), сохранить на жесткий диск.
У каждой из 100 открытых страниц свое имя, можно сохранять в одну папку, конфликтов с именем не будет.

6

Re: AHK:Скрипт сохранения страниц в ФФ

я до этого сохранял все ручками - жал по очереди  - CTRL-S - ENTER - CTRL-W, и так 100 раз.
теперь захотел автоматизировать задачу.

7

Re: AHK:Скрипт сохранения страниц в ФФ

andrewwallace1981 пишет:

Есть открытый Firefox, в нем открыто 100 вкладок.
Мне надо сохранить 100 открытых в Firefox вкладок, сохранить как HTML страницу

Не, не вышло. Это вы цель сформулировали, а нужен алгоритм действий для программы.

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

8

Re: AHK:Скрипт сохранения страниц в ФФ

ок, я просто не совсем программист, и возможно у меня отсутствует алгоритмическое мышление.
но попробую еще раз.

Send - переходим на активное окно (в нашем случае - это 100я вкладка в ФФ)
^s - вызываем CTRL-S, при этом на экране появляется окно windows с предложением сохранить текущую страницу
ENTER - жмем ENTER как ответ на предложение сохранить (активна кнопка Save)
^w - вызываем CTRL-W, что вызывает закрытие текущей (100й) вкладки и появляется 99я вкладка.

теперь надо повторить все 99 раз.

9

Re: AHK:Скрипт сохранения страниц в ФФ

andrewwallace1981 пишет:

при этом на экране появляется окно windows с предложением сохранить текущую страницу

А оно моментально появляется после нажатия Ctrl + S, прямо в тот же миг?

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

10

Re: AHK:Скрипт сохранения страниц в ФФ

ну я не засекал, но на глаз да, задержка есть..
но если честно - я не разобрался с Loop и Pause, попробовал пару разных вариантов - не вышло
надеюсь, вы мне поможете..

11

Re: AHK:Скрипт сохранения страниц в ФФ

пробовал вот так, исправьте плиз если криво:

#s::
Loop %RunCount%
{
Send, ^s{Enter}^w
Sleep 1000  ; Пауза 1 секунд.
}

12

Re: AHK:Скрипт сохранения страниц в ФФ

хотя понимаю, что пауза должна быть между ^s и {Enter}

з.ы. сори за кучу постов, надо было все в один, просто к концу дня голова не работает...

13

Re: AHK:Скрипт сохранения страниц в ФФ

До Loop ещё дойти надо, вам бы хоть одну страницу пока что сохранить.

andrewwallace1981 пишет:

на глаз да, задержка есть..

Ну то-есть не сразу Enter надо жать наверно? Нужно сначала окно сохранения подождать. Для этого есть команда WinWait. Вот с ней пока разбирайтесь.

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

14

Re: AHK:Скрипт сохранения страниц в ФФ

написал так:

#s::
Send, ^sWinWait, Save As, ,{Enter}^w

сохранило)

только почему-то переименовывает сохраняемый файл то в ", Save As, ,.txt", то "Save As, ,.txt"
я явно промахиваюсь в синтаксисе очередности (каким разделителем что должно отделяться. и должно ли)

15

Re: AHK:Скрипт сохранения страниц в ФФ

andrewwallace1981 пишет:

сохранило

Странно, не должно было. Все команды нужно писать с новой строки. Посмотрите примеры использования на форуме.

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

16

Re: AHK:Скрипт сохранения страниц в ФФ

ок, у меня не получается.

ну и собственно говоря я не ставил целью научиться писать, я сегодня первый раз увидел этот скрипт, и думаю он мне не понадобится в будущем.
если есть желающие помочь ВОЗМЕЗДНО - напишите пожалуйста.

teadrinker, Вам отдельное спасибо за потраченное время, если бы я собирался пройти курс обучения по AHK - выбор учителя был бы очевиден, но сейчас увы другая ситуация - скрипт нужен здесь и сейчас. Еще раз спасибо. Я Вам отписал на почту с предложением - буду ждать.

17

Re: AHK:Скрипт сохранения страниц в ФФ

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

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

18

Re: AHK:Скрипт сохранения страниц в ФФ

отписал еще раз

19 (изменено: DD, 2020-04-01 22:15:30)

Re: AHK:Скрипт сохранения страниц в ФФ

Не проще расширение найти под задачу сохранения? Я например в FF пользуюсь таким для изображений, и при этом не нужно ждать, чтобы фокус не сбился и тп.

20

Re: AHK:Скрипт сохранения страниц в ФФ

teadrinker пишет:

Собственно, такой алгоритм, который вы пытаетесь реализовать, годится как раз больше для обучения, на практике он скорее всего будет давать сбои

А в чем сбои могут быть?
Разве что, определять, что вкладка закрыта можно через IAccessible.

21

Re: AHK:Скрипт сохранения страниц в ФФ

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

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

22

Re: AHK:Скрипт сохранения страниц в ФФ

С файлом понятно, а почему должен сбиться посыл клавиш?
У меня при нажатии f11 всегда появляется окно о сохранении:

f11:: send ^s

23

Re: AHK:Скрипт сохранения страниц в ФФ

Почему не знаю, если делать в цикле, у меня иногда просто s в поле ввода появляется. Лучше работает

Send {LControl Down}s{LControl Up}

Но перечисленные проблемы только часть того, что может выйти из под контроля. Попробуй лучше из адресной строки код запустить.
https://www.autohotkey.com/boards/viewt … 93#p248993
У меня вышло, но не работает.

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

24

Re: AHK:Скрипт сохранения страниц в ФФ

Этот код у меня сообщение выводит.

javascript alert('Hello World')

25

Re: AHK:Скрипт сохранения страниц в ФФ

У меня тоже. Но копирование в буфер обмена не работает никак, хотя из панели разработчика вроде получается.

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

26 (изменено: Malcev, 2020-04-01 23:52:18)

Re: AHK:Скрипт сохранения страниц в ФФ

А какой именно код?
Такой, на тех сайтах, где должен работать, у меня работает:

f11::
Clipboard := ""
Send ^l
Sendinput javascript navigator.clipboard.writeText(document.documentElement.outerHTML);
Send {Enter}
ClipWait
MsgBox, % Clipboard

27

Re: AHK:Скрипт сохранения страниц в ФФ

У меня почему-то не работает. Только в консоли пишет: uncaught exception: undefined

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

28

Re: AHK:Скрипт сохранения страниц в ФФ

Странно. На сайте гугла тоже не работает?
https://www.google.com/

29

Re: AHK:Скрипт сохранения страниц в ФФ

Сейчас сработало. На некоторых работает, на некоторых нет (все https). На некоторых работает через раз.

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

30

Re: AHK:Скрипт сохранения страниц в ФФ

Иногда ещё как поисковый запрос срабатывает.

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

31

Re: AHK:Скрипт сохранения страниц в ФФ

https://addons.mozilla.org/en-US/firefo … s-to-files
https://addons.mozilla.org/en-US/firefox/addon/savetabs
https://addons.mozilla.org/en-US/firefo … -html-file
https://addons.mozilla.org/en-US/firefo … -open-tabs
https://addons.mozilla.org/en-US/firefox/addon/scrapbee
https://addons.mozilla.org/en-US/firefo … /scrapyard

32 (изменено: Malcev, 2020-04-02 06:06:53)

Re: AHK:Скрипт сохранения страниц в ФФ

Потестировал.
У фаерфокса алгоритм проверки немного другой, чем у хрома.
Перед отправлением JS надо отправить какую-либо клавишу, я отправляю f.
У пути 2 число меняется каждый раз при запуске нового хрома, 3 число может меняться в текущей сессии.

js=
(
navigator.clipboard.writeText(document.documentElement.outerHTML).then(function() {
}, function() {
alert('error');
});
)

f11::
Clipboard := ""
send f
AccAddrBar := Acc_Get("Object", "4.25.6.1",, "ahk_id 0x00f40810")
AccAddrBar.accValue(0) := "javascript " js
send {enter}
ClipWait
msgbox % clipboard