ここから本文です

VBScript - 「Windowsボタン + W」をSendkeyしたい。

tie********さん

2017/1/418:00:05

VBScript - 「Windowsボタン + W」をSendkeyしたい。

ショートカット:
「Windowsボタン + W」→「Tab」→「Enter」で、
Windows10の新機能の「スケッチパッド」が開きます。

■質問内容
これをVBScript(拡張子:vbs)で実現したいのですが、
どのようなコードを書けばいいでしょうか?

*********************************************
・コード例?
Option Explicit
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
'〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
'「Windwsボタン + W」キーを送信する
'〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
WScript.Sleep(1000)
WshShell.SendKeys("{Tab}")
WshShell.SendKeys("{Enter}")

*********************************************
・参考になるかもしれないサイト(keybd_event関数)
https://www.ka-net.org/blog/?p=6531
http://3rd.geocities.jp/kaito_extra/Source/KeybordCtrl.html

*********************************************
・Windows10の新機能:「スケッチパッド」について
http://support.hp.com/jp-ja/document/c05209270

補足https://www.ka-net.org/blog/?p=6531
を参考にすると、
VBScript(拡張子vbs)ではなく、エクセルのマクロ(拡張子xlsm)
なら、下記のコードでうまくいくのですが…。
VBScript(拡張子vbs)では、どのようにしたらいいのでしょうか?


'***
Private Declare Sub keybd_event Lib "user32.dll" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)

Private Const KEYEVENTF_KEYDOWN = &H1
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_LWIN = &H5B

Public Sub Sample3()
keybd_event VK_LWIN, 0, 0, 0
keybd_event vbKeyW, 0, 0, 0
keybd_event VK_LWIN, 0, KEYEVENTF_KEYUP, 0
keybd_event vbKeyW, 0, KEYEVENTF_KEYUP, 0

Application.Wait [Now() + "0:00:00.2"]
DoEvents
keybd_event vbKeyTab, 0, KEYEVENTF_KEYDOWN, 0
keybd_event vbKeyTab, 0, KEYEVENTF_KEYUP, 0

Application.Wait [Now() + "0:00:00.2"]
DoEvents
keybd_event vbKeyReturn, 0, KEYEVENTF_KEYDOWN, 0
keybd_event vbKeyReturn, 0, KEYEVENTF_KEYUP, 0
End Sub
'***

Windows10,ショートカット,Dim WshShell,Set WshShell,Option Explicit,ESC,%W&quot

閲覧数:
4,577
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

kak********さん

2017/1/503:28:20

Windowsキーは、Ctrl + ESC なので以下のコードになるのではと思いますが、期待に沿えなかったらご容赦。

WshShell.SendKeys("^({ESC}W)")

こちらは Ctrl + ESC に次いで Alt + W

WshShell.SendKeys("^{ESC}%W")

  • 質問者

    tie********さん

    2017/1/611:40:57

    >kakaru_yossyさん  回答ありがとうございます。

    Windowsキー単独なら、そうなんですけど、
    Windwsキーとの組み合わせだと、ダメでした。

    WshShell.SendKeys("^({ESC}W)")
    で、「Windowsボタン + W」の同時押しにはなりませんでした。

  • その他の返信(1件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる