2016-11-04 5 views
0

У вас есть много коробок код образца в вопросах и ответах в StackOverflowПример кода окно в StackOverflow - Как выбрать весь текст в окне и сохранить файл в один клик AutoHotkey

Я хочу это: если я иду к тому, что я могу сделать это в ОДИН КЛИКf2 Сохраните текст с этого поля прямо в файл.

AutoHotkey (АХК) скрипт должен это сделать:

  • Выбрать весь текст в поле
  • Скопируйте текст в буфер обмена
  • сохранить текст в файл (например. ahk)

Этот скрипт не работает.

;^= Ctrl 
; ! = Alt 
; # = Win (Windows logo key) 
; + = Shift 
f2:: 
; this does not work it will select all text from the website 
; but i want do that it select all the text in that box 
; and then save it direct to a file 
send ^a 
send ^c ;copy selected text to clipboard 
FileAppend, %Clipboard%, %A_MyDocuments%\example.ahk ;save clipboard to file 
return 
+0

Ожидаете ли Вы сценарий работать? Разумеется, вы должны знать, что '^ a' выбирает весь текст в документе браузера, а не только выбранное в настоящий момент« поле кода ». Во всяком случае, AHK не может получить вас очень далеко, поскольку современные браузеры не раскрывают никакого содержания своих документов. Внесение собственного JavaScript в документ браузера (например, с помощью [User script] (https://wiki.greasespot.net/User_script)) является самым мощным вариантом. – MCL

ответ

1

Может быть что-то вроде этого:

F2:: 
FileDelete, %A_Temp%\stackoverflow website.txt 
FileDelete, %A_MyDocuments%\example.ahk 
ClipSaved := ClipboardAll  ; save clipboard 
clipboard = ""     ; empty clipboard 
Send, ^l      ; mark the adress in your browser 
Sleep, 100 
Send, ^c      ; copy the adress 
ClipWait 1      ; wait for the clipboard to contain data 
If not ErrorLevel    ; If NOT ErrorLevel clipwait found data on the clipboard 
{ 
    If !InStr(clipboard, "http://stackoverflow.com") 
    { 
     MsgBox, You're NOT in stackoverflow 
     clipboard := ClipSaved 
       return 
    } 
    ; otherwise: 
    UrlDownloadToFile, %clipboard%, %A_Temp%\stackoverflow website.txt 
     Sleep, 200 
    FileRead, Contents, %A_Temp%\stackoverflow website.txt 
    { 
     Array := StrSplit(Contents, "code>") 
     for key, val in Array 
     { 
      If (SubStr(val, -1) = "</") 
      { 
       If (StrLen(val) < 50) 
        continue 
       If InStr(val, "WScript") 
        continue 
       ; ... add more restrictions 

       val := SubStr(val, 1, -2) 
       MsgBox, 4,, Do you want to save this code? `n`n%val%     
       IfMsgBox Yes 
       { 
        FileAppend, %val%, %A_MyDocuments%\example.ahk ; save val to file 
         break 
       } 
      } 
     } 
    } 
} 
Sleep, 300 
clipboard := ClipSaved    ; restore original clipboard 
FileDelete, %A_Temp%\stackoverflow website.txt 
return 
+0

Давайте продолжим обсуждение в чате (http://chat.stackoverflow.com/rooms/127409/discussion-between-arnoldburg-and-user3419297). – arnoldburg

+0

user3419297 Спасибо, это будет работать для меня: он запрашивает все поля, если вы хотите его сохранить. – arnoldburg