1 (изменено: vertalet40, 2016-01-25 14:04:38)

Тема: AHK: Ошибка команды send

В программировании мало разбираюсь, прошу помощи .Часто пользуюсь ножницами Snipping Tool в Windows . Сделал скрипт, который сохраняет Snipping Tool "вырезку" в файл с именем  текущей даты и времени. Но почему-то формат времени обрезает.
Вместо  24-01-2016 19-23-53  имя файла выходит -01-2016 19-23-53

Run, "C:\Windows\Sysnative\SnippingTool.exe"     
WinWaitActive, ahk_class Microsoft-Windows-Tablet-SnipperEditor
Send, {ctrl down}s{ctrl up}
Sleep, 100
send, %A_DD%-%A_MM%-%A_YYYY% %A_Hour%-%A_Min%-%A_Sec%
Sleep, 100
send {Tab}
Sleep, 40
send {Tab}
Sleep, 40
send {Tab}
Sleep, 40
send {Tab}
Sleep, 40
send {Tab}
Sleep, 40
send {Enter}
Sleep, 40
Send !{f4}

2

Re: AHK: Ошибка команды send

Если в скрипте используються горячие клавищи 0-9, то скрипт вместо того что-бы написать их как текст, выполняет их.
Решение либо знак * перед горячей клавишей или #UseHook, On
Или, если причина не в этом, можно использовать буфер обмена:

;#UseHook, On

Run, "C:\Windows\Sysnative\SnippingTool.exe"     
WinWaitActive, ahk_class Microsoft-Windows-Tablet-SnipperEditor
Send, {ctrl down}s{ctrl up}
Sleep, 100
ClipSaved := ClipboardAll
Clipboard := A_DD "-" A_MM "-" A_YYYY " " A_Hour "-" A_Min "-" A_Sec
Send {ctrl down}v{ctrl up}
Clipboard := ClipSaved
ClipSaved =
Sleep, 100
send {Tab}
Sleep, 40
send {Tab}
Sleep, 40
send {Tab}
Sleep, 40
send {Tab}
Sleep, 40
send {Tab}
Sleep, 40
send {Enter}
Sleep, 40
Send !{f4}

3 (изменено: vertalet40, 2016-01-25 16:46:57)

Re: AHK: Ошибка команды send

Спасибо, Ваш скрипт в котором реализован буфер обмена http://www.script-coding.com/AutoHotkey/Clipboard.html корректно присваивает  дату и время в имя файла. Хотя почему мой скрипт некорректно присваивал дату и время в имя файла, я так и не понял ))) . Скрипт забинден на кнопку мыши  "Выполнение программы" в мыше A-Teach X7.  Иногда скрипт не срабатывает,  из 10 - 15 "вырезок" бывает  один - два случая , что поле Имя файла остается пустым. Не могу понять почему так. Windows 7 (64).

4 (изменено: vertalet40, 2016-01-26 15:12:35)

Re: AHK: Ошибка команды send

Немного упростил скрипт , после чего он стал работать корректно

;#UseHook, On

Run, "C:\Windows\Sysnative\SnippingTool.exe"     
WinWaitActive, ahk_class Microsoft-Windows-Tablet-SnipperEditor
Send, {ctrl down}s{ctrl up}
Sleep, 180
ClipSaved := ClipboardAll
Clipboard := A_DD "-" A_MM "-" A_YYYY " " A_Hour "-" A_Min "-" A_Sec
Send {ctrl down}v{ctrl up}
Sleep, 180
Clipboard := ClipSaved
ClipSaved =
;Sleep, 180
;ControlFocus, &Save, Save As; Focus on the control
;ControlClick,  &Save, Save As ; Click the control
Send, {Enter}
WinClose

В данном случае мне необязательно перемещаться по "пунктам" с помощью Tab , его убрал. Просто жму Enter.
Немогу понять почему не работает этот вариант

ControlFocus, Save As, &Save ; Focus on the control
ControlClick, Save As, &Save ; Click the control

пробовал и по другому, тоже не работает

ControlFocus, ClassNN Button1, ahk_class #32770; Focus on the control
ControlClick, ClassNN Button1, ahk_class #32770 ; Click the control

и так тоже не работает

ControlFocus,  Button1, ahk_class #32770; Focus on the control
ControlClick,Button1 , ahk_class #32770

подскажите почему

5 (изменено: Alectric, 2016-01-26 17:07:21)

Re: AHK: Ошибка команды send

Данный класс (#32770) имеют большое количество окон, например окно свойств файла, нужно более конкретно отсеивать окна.

f1::
ControlClick,Button2,Save As ahk_class #32770
return
Win 7 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

6

Re: AHK: Ошибка команды send

Alectric пишет:

Данный класс (#32770) имеют большое количество окон, например окно свойств файла, нужно более конкретно отсеивать окна.

f1::
ControlClick,Button2,Save As ahk_class #32770
return
;#UseHook, On

Run, "C:\Windows\Sysnative\SnippingTool.exe"     
WinWaitActive, ahk_class Microsoft-Windows-Tablet-SnipperEditor
Send, {ctrl down}s{ctrl up}
Sleep, 180
ClipSaved := ClipboardAll
Clipboard := A_DD "-" A_MM "-" A_YYYY " " A_Hour "-" A_Min "-" A_Sec
Send {ctrl down}v{ctrl up}
Sleep, 180
Clipboard := ClipSaved
ClipSaved =
;Sleep, 180
;ControlFocus, &Save, Save As; Focus on the control
ControlClick,Button1, Save As ahk_class #32770 ; Click the control
;Send, {Enter}
WinClose

   Не хочет работать

7 (изменено: Alectric, 2016-01-26 20:18:32)

Re: AHK: Ошибка команды send

Ты уверен что там именно Button1? Может 2? Что показывает WindowSpy?

Избегайте избыточного цитирования! Не цитируйте пост, на который отвечаете, целиком. Используйте цитирование только в том случае, если иначе не будет понятно, на что Вы отвечаете, и старайтесь выбирать только ключевые фразы.

Win 7 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

8 (изменено: vertalet40, 2016-01-26 22:32:05)

Re: AHK: Ошибка команды send

Да. Save - ClassNN Button1.  Cancel - ClassNN Button2

так тоже не работает, по идее должно


Run, "C:\Windows\Sysnative\SnippingTool.exe"     
WinWaitActive, ahk_class Microsoft-Windows-Tablet-SnipperEditor
Send, {ctrl down}s{ctrl up}
Sleep, 180
ClipSaved := ClipboardAll
Clipboard := A_DD "-" A_MM "-" A_YYYY " " A_Hour "-" A_Min "-" A_Sec
Send {ctrl down}v{ctrl up}
Sleep, 180
Clipboard := ClipSaved
ClipSaved =
IfWinExist,  Save As ahk_class #32770
ControlFocus, Button1 , Save As ahk_class #32770
ControlClick,  Button1 , Save As ahk_class #32770 ; 
;Send, {Enter}
WinClose

9 (изменено: Nikva, 2016-01-27 11:36:52)

Re: AHK: Ошибка команды send

Run, "C:\Windows\Sysnative\SnippingTool.exe"
WinWait, ahk_class Microsoft-Windows-Tablet-SnipperEditor
WinActivate , ahk_class Microsoft-Windows-Tablet-SnipperEditor
WinWaitActive, ahk_class Microsoft-Windows-Tablet-SnipperEditor
Send, {ctrl down}s{ctrl up}
WinWait, Сохранить как
FileName := A_DD "-" A_MM "-" A_YYYY " " A_Hour "-" A_Min "-" A_Sec
ControlSetText, Edit1, % FileName, Сохранить как
ControlFocus, Button1, Сохранить как
ControlSend, Button1, {Space}, Сохранить как
WinWaitClose, Сохранить как
WinClose

10

Re: AHK: Ошибка команды send

Спасибо. ControlSend  решил . Я так понял  ControlClick  не хочет работать с  ahk_class #32770 .

11 (изменено: Alectric, 2016-01-27 20:58:17)

Re: AHK: Ошибка команды send

vertalet40 пишет:

Я так понял  ControlClick  не хочет работать с  ahk_class #32770 .

Нет не так.

ControlClick,Button1,Сохранить как ahk_class #32770 ; 

Я думал, что "Save As", которое ты везде указывал в качестве названия окна (Window Title), и есть название окна... так и знал что нужно было спросить об этом...

Win 7 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

12 (изменено: vertalet40, 2016-01-27 20:54:29)

Re: AHK: Ошибка команды send

"Save As"  и есть название окна "Windows Title" . У меня интерфейс Windows английский , и "Сохранить как" отображается как "Save As"
Не работает. (

Run, "C:\Windows\Sysnative\SnippingTool.exe"     
WinWaitActive, ahk_class Microsoft-Windows-Tablet-SnipperEditor
Send, {ctrl down}s{ctrl up}
Sleep, 180
ClipSaved := ClipboardAll
Clipboard := A_DD "-" A_MM "-" A_YYYY " " A_Hour "-" A_Min "-" A_Sec
Send {ctrl down}v{ctrl up}
Sleep, 180
Clipboard := ClipSaved
ClipSaved =
IfWinExist,  Save As ahk_class #32770
;ControlFocus, Button1 , Save As ahk_class #32770
ControlClick,  Button1 , Save As ahk_class #32770 
WinClose

рабочий этот скрипт, но он реализован на ControlSend,  а не ControlClick

Run, "C:\Windows\Sysnative\SnippingTool.exe"
WinWait, ahk_class Microsoft-Windows-Tablet-SnipperEditor
WinActivate , ahk_class Microsoft-Windows-Tablet-SnipperEditor
WinWaitActive, ahk_class Microsoft-Windows-Tablet-SnipperEditor
Send, {ctrl down}s{ctrl up}
WinWait, Save As
FileName := A_DD "-" A_MM "-" A_YYYY " " A_Hour "-" A_Min "-" A_Sec
ControlSetText, Edit1, % FileName, Save As
ControlFocus, Button1, Save As
ControlSend, Button1, {Space}, Save As
WinWaitClose, Save As
WinClose
WinClose, Snipping Tool