2011-12-13 17 views
1

私たちは皆一度も経験したことがあるので、クリップボードの内容を他のコンテンツと置き換える必要があるのは本当に迷惑です。AutoHotkey extend clipboard

私はautohotkeyを使ってこの問題を解決できると思っていましたが、手がかりはありません。

あなたはCtrlキーCを押したときに、古いクリップボードコンテンツはAutoHotkeyを内部に格納されます、そしてあなたはすなわちAltキーを押すことにより、その古いコンテンツを取得することができように私は、ホットキーで変数を設定することを考えていますV、通常はCtrlVは、クリップボードの現在の値を返します。

誰でも私に助けてくれますか?私はAutoHotkeyの中に永久に値を格納する方法を知らない。

よろしく、 本部Aart


編集:私は完璧なスクリプトを発見した

。私はそれを働かせたいと思ったので、私はそれを修正した。あなたは今ちょうどはCtrl +Cを使用してコピーを続けていくが、あなたが何かを取得したい場合は、単にAltキー左矢印を使用して、それがありますすることができます!それを楽しみましょう。私はそれを知っている。 :)

コントロール:

  • はCtrl +Cは>>
  • は、Altキー + V >>
  • Altキー + 左矢印コピー&ペースト>>サイクルバック
  • Altキー + 右矢印前方 >>サイクル
  • Altキー + H >>表示このメッセージ

コード:

handleClip(action) 
{ 
    global static AddNextNum 
    global static GetNextNum 
    global static HighestNum 
    global static ClipArray 
    global static ClipArray1 
    global static ClipArray2 
    global static ClipArray3 
    global static ClipArray4 
    global static ClipArray5 
    global static ClipArray6 
    global static ClipArray7 
    global static ClipArray8 
    global static ClipArray9 
    global static ClipArray10 
    global static ClipArray11 
    global static ClipArray12 
    global static ClipArray13 
    global static ClipArray14 
    global static ClipArray15 
    global static ClipArray16 
    global static ClipArray17 
    global static ClipArray18 
    global static ClipArray19 
    global static ClipArray20 
    global static ClipArray21 
    global static ClipArray22 
    global static ClipArray23 
    global static ClipArray24 
    global static ClipArray25 
    global static ClipArray26 
    global static ClipArray27 
    global static ClipArray28 
    global static ClipArray29 
    global static ClipArray30 

    if (action = "save") 
    { 
     if (AddNextNum < 30) 
     { 
     AddNextNum += 1 ; 
     } 
     else 
     { 
     AddNextNum := 1 ; 
     } 


     if (HighestNum < 30) 
     { 
     HighestNum += 1 ; 
     } 

     GetNextNum := AddNextNum ; 
     ClipArray%AddNextNum% := Clipboard 
    } 
    else if ((action = "get") OR (action = "roll")) 
    { 
     if (GetNextNum != 0) 
     { 
     if (action = "roll") 
     { 
      Send, ^z 
     } 
     Clipboard := ClipArray%GetNextNum% 
     if (GetNextNum > 1) 
     { 
      GetNextNum -= 1 ; 
     } 
     else 
     { 
      GetNextNum := HighestNum 
     } 
     Send, ^v 
     } 
    } 
    else if (action = "rollforward") 
    { 
     if (GetNextNum != 0) 
     { 
     Send, ^z 
     if (GetNextNum < HighestNum) 
     { 
      GetNextNum += 1 ; 
     } 
     else 
     { 
      GetNextNum := 1 
     } 
     Clipboard := ClipArray%GetNextNum% 
     Send, ^v 
     } 
    } 
    else if (action = "clear") 
    { 

     GetNextNum := 0 
     AddNextNum := 0 
     HighestNum := 0 
    } 
} 

!0:: 
    handleClip("clear") 
return 

^c:: 
    suspend on 
    Send, ^c 
    suspend off 
    handleClip("save") 

return 

!v:: 
    handleClip("get") 
return 

!Left:: 
    handleClip("roll") 
return 

!Right:: 
    handleClip("rollforward") 
return 

!H:: 
MsgBox Extended Clipboard controls: `r`n`r`nCtrl+C >> copy `r`nAlt+V >> paste `r`nAlt+Left Arrow >> cycle back `r`nAlt+Right Arrow >> cycle forward`r`nAlt+H >> display this message 

免責事項:I私はこのコードを自分で書いていませんでした。私はちょうどそれを修正した。元のスクリプトはhereです。

+0

を必要なツールを与えたこのスレッド(http://flamefusion.net/software/shapeshifter-clipboard-managerに遭遇することが起こってきました)は、この特定の領域でAutoHotkeyよりも直感的に動作するプログラムです。 –

答えて

2

これは私がそれを解決した方法です。私はファイルに値を保存しているので、再起動後に "メモリ"に留まります。その後

+#F1:: ; Shift Windows F1 
M1= 
Sleep, 50 
Send, ^c 
Clipwait 
Sleep, 100 
M1 = %clipboard% 
IniWrite, %M1%, C:\Tmp\Robert.ini, Memory, M1 
TrayTip, Copy,Data stored in M1,1,1 
return 
#F1:: ; Windows + F1 
If M1 = 
{ 
    IniRead, M1, C:\Tmp\Robert.ini, Memory, M1 
} 
ClipBoard = %M1% 
Send, ^v 
TrayTip, Paste,Data pasted from M1,1,1 
Return 

が、これは

ああ、b.t.w.を助けWindowsの + F4

希望..... のWindows + F2のために同じことをやりましたこれは、すべての

+0

働いているようですが、私が好きなほど良くはありません。変数を半永久的に格納する方法はありませんか? –

+0

^を参照してください。私は答えを掲載した。しかし、私はまだこれを使ってデータを保存しています。 :) Dropboxに.iniを追加したので、すべてのコンピュータからクリップボードにアクセスできます。これはかなり素晴らしいです。 :P –

+1

Aart、Dropboxのクリップボードデータを.iniファイルに置くことをお勧めします!私は実際にPSの間の一貫性を保証するためにDropboxに.ahkファイルを置いたが、そこに.iniファイルを置くことは決して考えなかった。 –

0

すべてであなたのクリップボードを変更しないもう一つの単純なスクリプト....あなたのデータから書式を取り除き、しかし、あなたの最後の10(修正:最初の行を参照)にアクセスする機会与えクリップボードテキストをエントリ。私は自分自身で次のことがなくては生きられませんでした。プログラミングに役立ちます。

取り扱い対象:sqlite。必要に応じて:sqlite3.dllとclass_SQLiteDB.ahk

http://pastebin.com/1weXi1eX

1

は、私はあなたが再び番号を使用して、Ctrl +番号を使用して番号を選択した内容を割り当て、それらの内容にアクセスする別の変化、スタークラフトスタイルの種類を、作られましたナンバーパッドから。あなたがそれを試してみたいと思ったら、私はそれを投稿したいと考えました。私にとっては、歴史をスクロールするのではなく、自分が望むコンテンツに簡単にアクセスできるように感じます。これをスレッドに持ってきてくれてありがとう。私はこの何度も考えたし、私が私が今[多相の戦士]使用

#SingleInstance force 

handleClip(action, num) 
{ 
    global static ClipArray0 
    global static ClipArray1 
    global static ClipArray2 
    global static ClipArray3 
    global static ClipArray4 
    global static ClipArray5 
    global static ClipArray6 
    global static ClipArray7 
    global static ClipArray8 
    global static ClipArray9 

    if (action = "save") 
    { 
     ClipArray%num% := Clipboard 
    } 
    else if (action = "get") 
    { 
     Clipboard := ClipArray%num% 
     Send, ^v 
    } 
} 

;COPY 
^1:: 
    suspend on 
    Send, ^c 
    suspend off 
    handleClip("save", 1) 
return 

^2:: 
    suspend on 
    Send, ^c 
    suspend off 
    handleClip("save", 2) 
return 

^3:: 
    suspend on 
    Send, ^c 
    suspend off 
    handleClip("save", 3) 
return 

^4:: 
    suspend on 
    Send, ^c 
    suspend off 
    handleClip("save", 4) 
return 

^5:: 
    suspend on 
    Send, ^c 
    suspend off 
    handleClip("save", 5) 
return 

^6:: 
    suspend on 
    Send, ^c 
    suspend off 
    handleClip("save", 6) 
return 

^7:: 
    suspend on 
    Send, ^c 
    suspend off 
    handleClip("save", 7) 
return 

^8:: 
    suspend on 
    Send, ^c 
    suspend off 
    handleClip("save", 8) 
return 

^9:: 
    suspend on 
    Send, ^c 
    suspend off 
    handleClip("save", 9) 
return 

^0:: 
    suspend on 
    Send, ^c 
    suspend off 
    handleClip("save", 0) 
return 

;PASTE 
Numpad1:: 
    handleClip("get", 1) 
return 

Numpad2:: 
    handleClip("get", 2) 
return 

Numpad3:: 
    handleClip("get", 3) 
return 

Numpad4:: 
    handleClip("get", 4) 
return 

Numpad5:: 
    handleClip("get", 5) 
return 

Numpad6:: 
    handleClip("get", 6) 
return 

Numpad7:: 
    handleClip("get", 7) 
return 

Numpad8:: 
    handleClip("get", 8) 
return 

Numpad9:: 
    handleClip("get", 9) 
return 

Numpad0:: 
    handleClip("get", 0) 
return