SCKEYショートカットキー関数

本ページには広告が含まれています。

ショートカットキーを実行します。

構文
  1. void = SCKEY( ID, キー, キー, キー, キー, ... )
引数
ID (Integer)必須
Windowを識別するID。指定するウィンドウがない場合には IDに0を指定。
キー (#sckey必須
アルファベット1文字もしくは仮想キー(VK_*)
動作としてVK_SHIFT,VK_CTRL,VK_ALT,VK_WINのキー指定は押し下げ状態のまま処理する
戻り値

キーコードの調べ方

入力したキーの仮想キーコードをリアルタイムで調べることのできるフリーソフトウェアのKeymillを使うと簡単に取得できます。

KT Software - Keymill

仮想キーコード

定数名 意味 対応キー Shift
1 VK_LBUTTON マウスの左ボタン
2 VK_RBUTTON マウスの右ボタン
3 VK_CANCEL コントロール・ブレイク処理
4 VK_MBUTTON マウスの中央ボタン(3ボタンマウス)
5 VK_XBUTTON1 マウスの第1拡張ボタン
6 VK_XBUTTON2 マウスの第2拡張ボタン
7
8 VK_BACK Backspaceキー Backspace
9 VK_TAB Tabキー Tab
10 予約済
11 予約済
12 VK_CLEAR Clearキー Clear
13 VK_RETURN Enterキー Enter
14 未定義
15 未定義
16 VK_SHIFT
17 VK_CONTROL
18 VK_MENU
19 VK_PAUSE Pauseキー Pause
20 VK_CAPITAL CapsLockキー CapsLock
21 VK_KANA IME かなモード
22 未定義
23 VK_JUNJA IME Junjaモード
24 VK_FINAL IME ファイナルモード
25 VK_KANJI IME 漢字モード
26 未定義
27 VK_ESCAPE Escキー Esc
28 VK_CONVERT IME 変換 変換
29 VK_NONCONVERT IME 無変換 無変換
30 VK_ACCEPT IME 使用可能
31 VK_MODECHANGE IME モード変更要求
32 VK_SPACE スペースキー Space
33 VK_PRIOR PageUpキー PageUp
34 VK_NEXT PageDownキー PageDown
35 VK_END Endキー End
36 VK_HOME Homeキー Home
37 VK_LEFT ←キー
38 VK_UP ↑キー
39 VK_RIGHT →キー
40 VK_DOWN ↓キー
41 VK_SELECT Selectキー
42 VK_PRINT Printキー
43 VK_EXECUTE Executeキー
44 VK_SNAPSHOT PrintScreenキー PrintScreen
45 VK_INSERT Insertキー Insert
46 VK_DELETE Deleteキー Delete
47 VK_HELP Helpキー
48 VK_0 0キー 0
49 VK_1 1キー 1 !
50 VK_2 2キー 2 "
51 VK_3 3キー 3 #
52 VK_4 4キー 4 $
53 VK_5 5キー 5 %
54 VK_6 6キー 6 &
55 VK_7 7キー 7 '
56 VK_8 8キー 8 (
57 VK_9 9キー 9 )
58 未定義
59 未定義
60 未定義
61 未定義
62 未定義
63 未定義
64 未定義
65 VK_A Aキー a A
66 VK_B Bキー b B
67 VK_C Cキー c C
68 VK_D Dキー d D
69 VK_E Eキー e E
70 VK_F Fキー f F
71 VK_G Gキー g G
72 VK_H Hキー h H
73 VK_I Iキー i I
74 VK_J Jキー j J
75 VK_K Kキー k K
76 VK_L Lキー l L
77 VK_M Mキー m M
78 VK_N Nキー n N
79 VK_O Oキー o O
80 VK_P Pキー p P
81 VK_Q Qキー q Q
82 VK_R Rキー r R
83 VK_S Sキー s S
84 VK_T Tキー t T
85 VK_U Uキー u U
86 VK_V Vキー v V
87 VK_W Wキー w W
88 VK_X Xキー x X
89 VK_Y Yキー y Y
90 VK_Z Zキー z Z
91 VK_LWIN 左Windowsキー
92 VK_RWIN 右Windowsキー
93 VK_APPS アプリケーションキー
94 予約済
95 VK_SLEEP コンピュータスリープキー
96 VK_NUMPAD0 テンキーの0キー テンキーの0 Insert
97 VK_NUMPAD1 テンキーの1キー テンキーの1 End
98 VK_NUMPAD2 テンキーの2キー テンキーの2
99 VK_NUMPAD3 テンキーの3キー テンキーの3 PageDown
100 VK_NUMPAD4 テンキーの4キー テンキーの4
101 VK_NUMPAD5 テンキーの5キー テンキーの5
102 VK_NUMPAD6 テンキーの6キー テンキーの6
103 VK_NUMPAD7 テンキーの7キー テンキーの7 Home
104 VK_NUMPAD8 テンキーの8キー テンキーの8
105 VK_NUMPAD9 テンキーの9キー テンキーの9 PageUp
106 VK_MULTIPLY テンキーの*キー テンキーの*
107 VK_ADD テンキーの+キー テンキーの+
108 VK_SEPARATOR 区切り記号キー
109 VK_SUBTRACT 減算記号キー テンキーの-
110 VK_DECIMAL 小数点キー テンキーの. Delete
111 VK_DIVIDE 除算記号キー テンキーの/
112 VK_F1 F1キー F1
113 VK_F2 F2キー F2
114 VK_F3 F3キー F3
115 VK_F4 F4キー F4
116 VK_F5 F5キー F5
117 VK_F6 F6キー F6
118 VK_F7 F7キー F7
119 VK_F8 F8キー F8
120 VK_F9 F9キー F9
121 VK_F10 F10キー F10
122 VK_F11 F11キー F11
123 VK_F12 F12キー F12
124 VK_F13 F13キー F13
125 VK_F14 F14キー F14
126 VK_F15 F15キー F15
127 VK_F16 F16キー F16
128 VK_F17 F17キー F17
129 VK_F18 F18キー F18
130 VK_F19 F19キー F19
131 VK_F20 F20キー F20
132 VK_F21 F21キー F21
133 VK_F22 F22キー F22
134 VK_F23 F23キー F23
135 VK_F24 F24キー F24
136 VK_NAVIGATION_VIEW 割当無し
137 VK_NAVIGATION_MENU 割当無し
138 VK_NAVIGATION_UP 割当無し
139 VK_NAVIGATION_DOWN 割当無し
140 VK_NAVIGATION_LEFT 割当無し
141 VK_NAVIGATION_RIGHT 割当無し
142 VK_NAVIGATION_ACCEPT 割当無し
143 VK_NAVIGATION_CANCEL 割当無し
144 VK_NUMLOCK NumLockキー NumLock
145 VK_SCROLL ScrollLockキー ScrollLock
146 VK_OEM_NEC_EQUAL OEM固有
VK_OEM_FJ_JISHO
147 VK_OEM_FJ_MASSHOU OEM固有
148 VK_OEM_FJ_TOUROKU OEM固有
149 VK_OEM_FJ_LOYA OEM固有
150 VK_OEM_FJ_ROYA OEM固有
151 割当無し
152 割当無し
153 割当無し
154 割当無し
155 割当無し
156 割当無し
157 割当無し
158 割当無し
159 割当無し
160 VK_LSHIFT 左Shiftキー Shift
161 VK_RSHIFT 右Shiftキー Shift
162 VK_LCONTROL 左Ctrlキー Ctrl
163 VK_RCONTROL 右Ctrlキー Ctrl
164 VK_LMENU 左Altキー Alt
165 VK_RMENU 右Altキー Alt
166 VK_BROWSER_BACK ブラウザーの戻るキー
167 VK_BROWSER_FORWARD ブラウザーの進むキー
168 VK_BROWSER_REFRESH ブラウザーの更新のキー
169 VK_BROWSER_STOP ブラウザーの停止キー
170 VK_BROWSER_SEARCH ブラウザーの検索キー
171 VK_BROWSER_FAVORITES ブラウザーのお気に入りキー
172 VK_BROWSER_HOME ブラウザーの開始およびホームキー
173 VK_VOLUME_MUTE 音量ミュートキー
174 VK_VOLUME_DOWN 音量ダウンキー
175 VK_VOLUME_UP 音量アップキー
176 VK_MEDIA_NEXT_TRACK 次のトラックキー
177 VK_MEDIA_PREV_TRACK 前のトラックキー
178 VK_MEDIA_STOP メディア停止キー
179 VK_MEDIA_PLAY_PAUSE メディア再生/一時停止キー
180 VK_LAUNCH_MAIL メール起動キー
181 VK_LAUNCH_MEDIA_SELECT メディア選択キー
182 VK_LAUNCH_APP1 アプリケーション1起動キー
183 VK_LAUNCH_APP2 アプリケーション2起動キー
184 予約済
185 予約済
186 VK_OEM_1 OEM1キー : *
187 VK_OEM_PLUS +キー ; +
188 VK_OEM_COMMA ,キー , <
189 VK_OEM_MINUS -キー - =
190 VK_OEM_PERIOD .キー . >
191 VK_OEM_2 OEM2キー / ?
192 VK_OEM_3 OEM3キー @ `
193 VK_ABNT_C1 予約済
194 VK_ABNT_C2 予約済
195 VK_GAMEPAD_A 予約済
196 VK_GAMEPAD_B 予約済
197 VK_GAMEPAD_X 予約済
198 VK_GAMEPAD_Y 予約済
199 VK_GAMEPAD_RIGHT_SHOULDER 予約済
200 VK_GAMEPAD_LEFT_SHOULDER 予約済
201 VK_GAMEPAD_LEFT_TRIGGER 予約済
202 VK_GAMEPAD_RIGHT_TRIGGER 予約済
203 VK_GAMEPAD_DPAD_UP 予約済
204 VK_GAMEPAD_DPAD_DOWN 予約済
205 VK_GAMEPAD_DPAD_LEFT 予約済
206 VK_GAMEPAD_DPAD_RIGHT 予約済
207 VK_GAMEPAD_MENU 予約済
208 VK_GAMEPAD_VIEW 予約済
209 VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON 予約済
210 VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON 予約済
211 VK_GAMEPAD_LEFT_THUMBSTICK_UP 予約済
212 VK_GAMEPAD_LEFT_THUMBSTICK_DOWN 予約済
213 VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT 予約済
214 VK_GAMEPAD_LEFT_THUMBSTICK_LEFT 予約済
215 VK_GAMEPAD_RIGHT_THUMBSTICK_UP 予約済
216 VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN 割当無し
217 VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT 割当無し
218 VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT 割当無し
219 VK_OEM_4 OEM4キー [ {
220 VK_OEM_5 OEM5キー \ |
221 VK_OEM_6 OEM6キー ] }
222 VK_OEM_7 OEM7キー
223 VK_OEM_8 OEM8キー
224 予約済
225 VK_OEM_AX OEM固有
226 VK_OEM_102 OEM102キー \ _
227 VK_ICO_HELP OEM固有
228 VK_ICO_00
229 VK_PROCESSKEY IME PROCESSキー
230 VK_ICO_CLEAR OEM固有
231 VK_PACKET キーボード以外の入力手段に使用される
32 ビット仮想キー値の下位ワード
232 割当無し
233 VK_OEM_RESET OEM固有
234 VK_OEM_JUMP OEM固有
235 VK_OEM_PA1 OEM固有
236 VK_OEM_PA2 OEM固有
237 VK_OEM_PA3 OEM固有
238 VK_OEM_WSCTRL OEM固有
239 VK_OEM_CUSEL OEM固有
240 VK_OEM_ATTN OEM固有
241 VK_OEM_FINISH OEM固有
242 VK_OEM_COPY OEM固有
243 VK_OEM_AUTO OEM固有
244 VK_OEM_ENLW OEM固有
245 VK_OEM_BACKTAB OEM固有
246 VK_ATTN Attnキー Attn
247 VK_CRSEL CrSelキー CrSel
248 VK_EXSEL ExSelキー ExSel
249 VK_EREOF Erase EOFキー
250 VK_PLAY Playキー
251 VK_ZOOM Zoomキー
252 VK_NONAME 予約済
253 VK_PA1 PA1キー
254 VK_OEM_CLEAR Clearキー
255

SCKEY関数からKBD関数への書き換え

SCKEY関数はショートカットキーを実行する関数、KBD関数はキーボードの操作を行う関数で用途は違いますが、SCKEY関数のショートカットキーの入力というのはキーボードの操作を行っていることと同じなのでKBD関数に書き換えることができます。

修飾子キーが1つ

SCKEY関数の修飾子キーをmodiferKey、組み合わせるキーをkeyとします。

UWSC
SCKEY(ID, modiferKey, key)

修飾子キーが1つの場合はmodiferKeyDOWN処理のままkeyをクリック、modiferKeyUP処理を行い、KBD関数で書き換えると以下のようになります。

UWSC
CTRLWIN(ID, ACTIVATE)

KBD(modiferKey, DOWN)
KBD(key, CLICK)
KBD(modiferKey, UP)

修飾子キーが2つ以上

まずSCKEY関数の処理は、第1引数のウィンドウをアクティブにし第2引数以降のキーを順番に押していく処理を行っています。修飾子キーをmodiferKey、その他の組み合わせるキーをkeyとしSCKEY関数は以下のように記述したとします。

UWSC
SCKEY(ID, modiferKey1, modiferKey2, key)

これをKBD関数で記述した場合は以下のようになります。修飾子キーは押し下げ状態のまま処理が行われるのでmodiferKey1modiferKey2DOWN状態を保持し、keyはクリック、SCKEY関数の最後の引数までキーの処理が終わったら修飾子キーを最後に押し下げたキーから順にUPにしていきます。

UWSC
CTRLWIN(ID, ACTIVATE)

KBD(modifierKey1, DOWN)
KBD(modifierKey2, DOWN)
KBD(key, CLICK)
KBD(modifierKey2, UP)
KBD(modifierKey1, UP)

具体的にタスクマネージャーを起動するショートカットキーCtrlShiftEscを例として示します。

まずSCKEY関数で書くと以下のようになります。

UWSC
SCKEY(0, VK_CTRL, VK_SHIFT, VK_ESC)

これをKBD関数で書き換えると、まず第2引数のCtrlは修飾子キーなので押し下げたままにし、第3引数のShiftも修飾子キーなので押し下げたままにします。第4引数のEscは修飾子キーではないのでクリック処理を行います。

最後の引数まできたので、押し下げたままの修飾子キーを離していきます。

これらの処理をKBD関数で置き換えて記述すると以下のようになります。

UWSC
KBD(VK_CTRL, DOWN)
KBD(VK_SHIFT, DOWN)
KBD(VK_ESC, CLICK)
KBD(VK_SHIFT, UP)
KBD(VK_CTRL, UP)

3つ以上の場合も処理は同じです。

UWSC
SCKEY(ID, modiferKey1, modiferKey2, modiferKey3, modiferKey4, key)
UWSC
CTRLWIN(ID, ACTIVATE)

KBD(modifierKey1, DOWN)
KBD(modifierKey2, DOWN)
KBD(modifierKey3, DOWN)
KBD(modifierKey4, DOWN)
KBD(key, CLICK)
KBD(modifierKey4, UP)
KBD(modifierKey3, UP)
KBD(modifierKey2, UP)
KBD(modifierKey1, UP)

使い方

デスクトップを表示するショートカットキーDを実行します。

特定のウィンドウに対して実行するわけではないので第1引数は0、第2引数以降に実行するショートカットキーの仮想キーコードを記述します。VK_WINDVK_Dなので以下のようになります。

UWSC
SCKEY(0, VK_WIN, VK_D)

このとき注意が必要なのが、第2引数以降ではまず修飾子キー(CtrlShiftAlt)から指定していくということです。

以下のように修飾子キーより先に組み合わせるキーを記述すると、ショートカットキーが上手く動作しません。具体的にはDが順にクリックされるので、テキストが入力できる状態であればそこにDと入力されたあとスタートメニューが表示されると思います。

UWSC
SCKEY(0, VK_D, VK_WIN)

SCKEY関数のキーに指定できる引数の数は35個(IDの引数を含めると36個)までです。

音量を調整

GETITEM関数で現在の音量を取得し、targetに指定された音量になるように調整します。以下の例では音量が30になるように調整します。

UWSC
DIM target = 30

WHILE getVolume() > target
	KBD(VK_VOLUME_DOWN)
WEND

WHILE getVolume() < target
	KBD(VK_VOLUME_UP)
WEND

FUNCTION getVolume()
	GETITEM(GETID("", "Shell_TrayWnd"), ITM_TOOLBAR)
	FOR item IN ALL_ITEM_LIST
		IFB POS("スピーカー: ", item) <> 0 THEN
			DIM volume = REPLACE(REPLACE(item, "スピーカー: ", ""), "%", "")
			BREAK
		ENDIF
	NEXT

	IF volume = "ミュート" THEN volume = 0
	volume = VAL(volume)
	RESULT = volume
FEND

プログラム実行例

アクティブウィンドウのスクリーンショットを撮る

クリップボードにスクリーンショットがコピーされます。

UWSC
SCKEY(GETID(GET_ACTIVE_WIN), VK_ALT, VK_SNAPSHOT)
使用関数

メモ帳に本文を入力し[名前を付けて保存]ダイアログボックスを開いて保存する

UWSC
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
DIM path = "D:\Desktop\sample.txt"
DIM folderspec = FSO.GetParentFolderName(path)
DIM filename = FSO.GetFileName(path)

EXEC("notepad")
DIM ID = GETID("メモ帳", "Notepad")
SENDSTR(ID, "内容", 0)
CLKITEM(ID, "ファイル\名前を付けて保存", CLK_MENU)

IFB FSO.FolderExists(folderspec) THEN
	DIM ID2 = GETID("名前を付けて保存", "#32770")

	CTRLWIN(ID2, ACTIVATE)
	SLEEP(0.500)

	SCKEY(ID2, VK_F4)
	SENDSTR(ID2, folderspec, 1, TRUE)
	SCKEY(ID2, VK_RETURN)
	SLEEP(0.500)

	SCKEY(ID2, VK_ALT, VK_N)
	SENDSTR(ID2, filename, 1, TRUE)
	SLEEP(0.500)

	CLKITEM(ID, "保存", ITM_BTN)
ELSE
	PRINT "フォルダが存在しません。"
ENDIF
使用関数
解説

仮想キーで文章を入力

UWSC
DIM ID = EXEC("notepad")

CTRLWIN(ID, ACTIVATE)

SCKEY(ID, VK_SHIFT, VK_T)
SCKEY(ID, VK_H, VK_I, VK_S, VK_SPACE, VK_I, VK_S, VK_SPACE, VK_A, VK_SPACE, VK_P, VK_E, VK_N, VK_OEM_PERIOD)
結果
プレーンテキスト
This is a pen.
使用関数

設定画面を表示する

Iを実行し、設定画面を起動します。

UWSC
SCKEY(0, VK_WIN, VK_I)
使用関数

仮想デスクトップを追加する

CtrlDを実行し、仮想デスクトップを起動します。

UWSC
SCKEY(0, VK_WIN, VK_CTRL, VK_D)
使用関数

エクスプローラーを起動

Eを実行し、エクスプローラーを起動します。

UWSC
SCKEY(0, VK_WIN, VK_E)
使用関数

タスクバーアプリを起動

タスクバーにあるアプリは「Win+数字」で起動することができます。数字は19(1〜9番目)と0(10番目)。以下は1を実行し、タスクバーの左から1番目のアプリを起動します。

UWSC
SCKEY(0, VK_WIN, VK_1)
使用関数

アクティブウィンドウを最大化

を実行し、アクティブウィンドウを最大化します。

UWSC
SCKEY(0, VK_WIN, VK_UP)
使用関数

アクティブウィンドウを最小化

を実行し、アクティブウィンドウを最小化します。

UWSC
SCKEY(0, VK_WIN, VK_DOWN)
使用関数

指定範囲のスクリーンショットを撮る

ShiftSを実行し、指定範囲のスクリーンショットを撮ります。

UWSC
SCKEY(0, VK_WIN, VK_SHIFT, VK_S)
使用関数

クリップボードを表示

Vを実行し、クリップボードを表示します。

UWSC
SCKEY(0, VK_WIN, VK_V)
使用関数

マルチディスプレイ出力モードの切り替え

Pを実行し、マルチディスプレイ出力モードの切り替え画面を表示します。

UWSC
SCKEY(0, VK_WIN, VK_P)
使用関数

メモ帳の置換ダイアログを表示

[createLink url="/script/function/exec/"]でメモ帳を起動し、メモ帳に対してCtrlHを実行し置換ダイアログを表示します。

UWSC
DIM ID = EXEC("notepad")
SCKEY(ID, VK_CTRL, VK_H)
使用関数

関連記事

ACW関数 (スクリプト関数)
指定したIDのウィンドウの位置・サイズを変更します。IDのみを指定した場合、そのウィンドウをアクティブにします。
CHKBTN関数 (スクリプト関数)
指定したIDのウィンドウにあるチェックボックス・ラジオボタンがチェックされているかを返します。
CLKITEM関数 (スクリプト関数)
指定したIDのウィンドウのアイテムをクリックします。アイテムに指定できるものにはボタン・チェックボックス・ラジオボタン・リストボックス・コンボボックス・タブコントロール・メニュー・ツリービュー・リストビュー・ツールバー・リンクがあります。
GETID関数 (スクリプト関数)
指定したウィンドウのIDを取得します。第一引数に取得したいウィンドウのタイトル(一部でも可)を指定します。UWSCでウィンドウを操作するのによく使う関数です。
GETITEM関数 (スクリプト関数)
指定したIDのウィンドウのキャプション文字やリストなどを取得します。取得した情報は配列変数のALL_ITEM_LIST[ ]に格納されます。戻値は取得した数でInteger型です。
HNDTOID関数 (スクリプト関数)
引数に指定したハンドル値をIDに変換して返します。IDをハンドル値に変換するにはIDTOHND関数を使います。
CTRLWIN関数 (スクリプト関数)
ウィンドウの状態を操作します。ウィンドウを終了、アクティブ化、表示・非表示、最大化・最小化などができます。
GETALLWIN関数 (スクリプト関数)
全ウィンドウのIDを取得します。
IDTOHND関数 (スクリプト関数)
引数に指定したIDをハンドル値に変換して返します。ハンドル値をIDに変換するにはHNDTOID関数を使います。
MOUSEORG関数 (スクリプト関数)
マウス座標を相対座標にする、 またはマウスとキー情報を直接ウィンドウへ送ります。