質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Q&A

1回答

914閲覧

VBS dosのシステムメニュー表示

tak_inoue

総合スコア4

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

0グッド

1クリップ

投稿2020/02/04 09:57

編集2020/02/07 09:30

前提・実現したいこと

telnetのウィンドウでシステムメニューを開いて、編集→貼り付けと実行する処理を
WHSのsendkeysで定義しようとしている

予め用意したデータセットの値を連続で入力する処理を実現したいが、カナや () などの
特殊用途記号が混ざるため、クリップボードからペーストする方法を選択しました

発生している問題・エラーメッセージ

システムメニューを開くため、"alt + space"に相当する「Sendkeys "% "」
を記載するも、 % (=alt)が効いていないのか、メニューは開かずにただスペースを
打って止まってしまう

該当のソースコード

dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.run "cmd"
WshShell.AppActivate ".\windows\system32\cmd.exe"
WScript.Sleep 500

WshShell.SendKeys "% "
WScript.Sleep 500

WshShell.SendKeys "&e"
WScript.Sleep 500

WshShell.SendKeys "&p"

※クリップボードに文字列をセットしている前提です。

試したこと

Sendkeys "% " 以外に
Sendkeys "%( )"
Sendkeys "(% )"
Sendkeys "+(% )"
など"alt + space"に相当しそうな記述をいくつか試しましたがダメでした

### 追記
現在値のpasteを試みているtelnetのウィンドウが何かの制約なのか”ctrl + v"のようなショートカットキーでのpasteを許容しておらず、そのロックを解除するのは時間がかかりそうだったので回避策を考えていました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

目的はpasteであって「システムメニュー表示」が目的じゃないんですよね?

"+{INSERT}"でpasteできますよ。

VBScript

1dim WshShell 2Set WshShell = WScript.CreateObject("WScript.Shell") 3cmdPath = WshShell.ExpandEnvironmentStrings("%SYSTEMROOT%\system32\cmd.exe") 4WshShell.Run(cmdPath) 5WScript.Sleep 500 6WshShell.AppActivate cmdPath 7WshShell.SendKeys "+{INSERT}"

投稿2020/02/05 02:05

編集2020/02/05 02:08
Y.H.

総合スコア7918

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tak_inoue

2020/02/05 08:46

Y.H. 様 回答いただき誠にありがとうございます。 おっしゃる通り、本来の目的は値のpasteです。 ただ、記載が漏れており大変恐縮ですが、現在値のpasteを試みているtelnetのウィンドウが何かの制約なのか”ctrl + v"のようなショートカットキーでのpasteを許容しておらず、そのロックを解除するのは時間がかかりそうだったので回避策を考えていました。 ※結構急ぎの対応を求められていて原因を分析する時間が無いのもあります システムメニューからアクションキーを呼び出してのpasteは動作確認が取れていましたので、そこが最短経路と考えて今回のご質問をさせていただいたという経緯です。 ご教授いただいた"+{INSERT}"でのpasteも効きませんでした。。。
Y.H.

2020/02/05 08:49

もしかして「telnetのウィンドウ」って、cmdじゃない?
Y.H.

2020/02/05 08:57

> 現在値のpasteを試みているtelnetのウィンドウが何かの制約なのか”ctrl + v"のようなショートカットキーでのpasteを許容しておらず、そのロックを解除するのは時間がかかりそうだったので回避策を考えていました。 これを質問を編集し追記ください。
tak_inoue

2020/02/07 09:35

Y.H.様 回答遅くなり失礼しました。 ご指摘の通り追記させていただきました。 また、「telnetのウィンドウ」=cmdか?については yes です。 表現が適切かわかりませんが、cmdで”telnet (ipアドレス)"で画面を呼び出しています。 私自身がvbs初心者で質問に十分な情報を記載出来ておらず大変申し訳ありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問