12

たとえば、Ctrl+を押しVてバッファの内容をウィンドウに挿入します。そのような独自のホットキーを作成するにはどうすればよいですか? 初心者の質問で申し訳ありません。

4

7 に答える 7

11

これをすばやく簡単に行うための優れた方法は、マクロプログラミングに焦点を当てたスクリプト言語を使用することです。AutoItヘルプファイルのクリップにあるように、私のお気に入りはAutoItです...

AutoItは当初、数千台のPCを確実に自動化および構成するために、PCの「ロールアウト」状況向けに設計されました。時間の経過とともに、複雑な式、ユーザー関数、ループなど、ベテランのスクリプト作成者が期待するすべてのものをサポートする強力な言語になりました。

AutoItでホットキーアプリケーションを作成するのはこれ以上ないほど簡単です。たとえば、何らかの理由で(言及するのがわかりにくい) 、特定の状況でAlt+Qをテンキー7として反応させたいとしましょう。そうすれば、キーボードを横切って手を伸ばす必要がなくなります。これを行うコードを次に示します...

Func _num7()
    Send("{numpad7}")
EndFunc

HotKeySet("!{q}","_num7")

While 1
    sleep(10)
WEnd

それが十分に単純でない場合は、AutoItヘルプファイルとフォーラムが非常に役立ちます。AutoIt固有の質問が発生した場合は、(非常に)少数のAutoIt開発者がSOで利用できることは言うまでもありません。

上記の例では、他のホットキーに干渉しないように、特定のアプリケーションが使用されているときにのみホットキーをアクティブにしたいとします。このコードはまさにそれを達成します。

; The comment character in AutoIt is ;
Local $inTargetProg = False

Func _num7()
    Send("{numpad7}")
EndFunc

While 1
    If WinActive("Target Application Window Title") and Not $inTargetProg Then
        HotKeySet("!{q}","_num7") ; binds Alt+Q to the _num7() function
        $inWC3 = True
    EndIf

    If Not WinActive("Target Application Window Title") and $inTargetProg Then
        HotKeySet("!{q}") ; UnBind the hotkey when not in use
        $inWC3 = False
    EndIf

    sleep(5)
WEnd
于 2009-06-10T17:22:38.203 に答える
5

Ctrl+のようなプロセスごとのキーボード ショートカットVは通常、リソース (.rc) ファイルで定義され、Win32 API LoadAcceleratorsを介して読み込まれます。

Windows 全体のキーボード ショートカット (ホットキー) は、Win32 API RegisterHotKeyを使用して登録されます。

于 2009-06-10T17:06:35.070 に答える
5

私は仕事でAutoHotkeyを 1 年近く使用しています。

次のファイルを Windows スタートアップ フォルダーに保存するだけです。

キーボードショートカット.ahk

#SingleInstance force
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
Menu, Tray, Icon, Shell32.dll, 44

; Starting Directory for cmd.exe
EnvGet, HOMEDRIVE, HOMEDRIVE
EnvGet, HOMEPATH, HOMEPATH

#i:: Run, notepad
#f:: Run, firefox
#c:: Run, cmd /k, %HOMEDRIVE%%HOMEPATH%
#m:: Run, mailto:
#b:: Run, mailto:boss@mycompany.com

「#b」Winkey+を意味しますB

「実行、mailto:boss@mycompany.com」で上司宛のブラック メールを開きます。

#b:: Run, mailto:boss@mycompany.com
于 2009-06-11T22:37:44.847 に答える
2

サードパーティのソフトウェアを必要としないウィンドウを備えたシンプルなスクリプト。.vbsファイルとして保存してダブルクリックするだけです。

currentDirectory = left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName)))

Set objShell = WScript.CreateObject("WScript.Shell")
Set lnk = objShell.CreateShortcut(currentDirectory  & "search.LNK") 
lnk.TargetPath = currentDirectory  & "search.bat"
lnk.Arguments = ""
lnk.Description = "Abiram's search"
lnk.HotKey = "SHIFT+CTRL+C"
lnk.WindowStyle = "7"
lnk.WorkingDirectory = currentDirectory
lnk.Save
'Clean up 
Set lnk = Nothing

lnk.TargetPathを変更して、呼び出されるexeファイルまたはバッチファイルを含めます。

于 2012-08-16T05:52:11.083 に答える
2

Windowsでショートカットを作成し、それにショートカットキーを割り当てることで、簡単なホットキーを作成できます。これは、パラメーターを使用していくつかのコマンドラインアプリを起動するために行いました。次のリンクは、アプリへのショートカットキーを使用して音量をミュートする方法を説明しています。ミュート

ショートカットプロパティのTarget:とShortcut Key:を、目的に必要なものに置き換えるだけです。

于 2009-06-10T23:26:31.650 に答える
1

わかりました...最も簡単な方法です。たとえば、デスクトップでは、アイコン>プロパティ>ショートカットキーを右クリックして加速コマンドを使用できます。空のスペースをクリックすると、何も起こらないように見えますが、これは、私が使用した「ホットキー」を割り当てるときにShift+ 1、組み合わせるたびにShift+ 1Firefoxが開きます。

于 2011-05-16T15:38:00.133 に答える
0

まず、スタック オーバーフローへようこそ!

第二に、これはプログラムごとのことです。Ctrl+CまたはCtrl+が異なるプログラム間で機能する唯一の理由Vは、オペレーティング システムがクリップボードをサポートしており、多くのプログラムがCtrl+CまたはCtrl+を使用する規則に従っているためVです。独自のプログラムでは、好きなようにキーをバインドできます! 詳細については、プログラムに関する詳細情報が必要です。

Windows 自体の実際のホットキーを作成したい場合、独自のホットキーを作成する方法 (または作成できるかどうか) がわかりません。AutoItを調べてみてください。これは、メニューを自動的にクリックするなど、ホットキーを使用したいあらゆる種類のことを実行できる無料のプログラムです。

于 2009-06-10T17:01:38.683 に答える