• ベストアンサー

VBSのsendkeysで日本語を出力したいです

WshShell.Run "explorer" WScript.Sleep 100 WshShell.AppActivate "explorer" WScript.Sleep 100 WshShell.SendKeys "C:\Users\Default\" WScript.Sleep 100 WshShell.SendKeys "デスクトップ" WScript.Sleep 100 WshShell.SendKeys "{ENTER}" WScript.Sleep 100 *.VBS ファイルに書き込んで、直接実行したいのですが、エラーになります。 どんなコマンドを足すといいのですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

デスクトップを開くだけなら With WScript.CreateObject("WScript.Shell") .Run "explorer.exe " & .SpecialFolders("Desktop") End With

Gen_bamboo
質問者

お礼

完璧でした ありがとうございます

その他の回答 (1)

  • shiojiri
  • ベストアンサー率43% (84/192)
回答No.1

explorerでデスクトップが表示されれば良いのでしょうか? 試してみましたが、SendKeyした時にアドレスバーにカーソルが来ていないとうまくいかないようです。 私のPC(XP)では下記の記述で表示できました。 Set WshShell=Wscript.CreateObject("Wscript.Shell") WshShell.Run("explorer file://C:\Users\Default\デスクトップ/")

Gen_bamboo
質問者

補足

Sendkeys "{%d}" をアドレスを出力する直前に書くことでアドレスバーにカーソルを移動しました。 現在使用しているパソコンはWIN8ですが、プログラミングしているときWINXPだったりします。 どちらでも使えるようにするには、 WshShell.Run("explorer file://C:¥…") の形式が良いのでしょうか?

関連するQ&A

  • JP1からvbs(PSExec)が起動できない

    突然失礼します。 以下のサーバーAにあるvbsを、JP1から起動しようとしていますが、うまく起動しないので、もし原因が分かる方がいたら、ご教授願いたいです。 起動しようとしているサーバーAの「test.vbs」は、簡単に言うと、PsExecを利用して、サーバーBの「hoge.bat」を実行する内容です。 ***test.vbs*** Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "PsExec.exe サーバーBIPアドレス -u 実行ユーザ -p 実行ユーザーパスワード cmd" WshShell.AppActivate "cmd " WScript.Sleep 3000 WshShell.SendKeys "cd C:\" WshShell.SendKeys "{enter}" WshShell.SendKeys "hoge.bat" WshShell.SendKeys "{enter}" WScript.Sleep 10000 WshShell.AppActivate "cmd" WshShell.SendKeys "exit" WshShell.SendKeys "{enter}" ************************ 上記バッチを手動で実行するとうまくいくのですが、 JP1で起動しようとすると、うまくいきません。 そもそもPsExecが実行出来ていないかも。。。。 宜しくお願いします。

  • VBSのSendKeysでクリックができない

    音声認識アプリケーションからvbsを実行できるのですが、ここで一度だけマウスクリックしたい状況が出てきて困っています。 Dim WSHShell As Object Set WSHShell = CreateObject("Wscript.Shell") WSHShell.AppActivate "操作したいアプリケーション名" WSHShell.SendKeys "{TAB}" 'OK WSHShell.SendKeys "{ENTER}" 'OK WSHShell.SendKeys "{CLICK LEFT, 10, 10}" 'NG TABキーやENTERキーは動作するのですが、3番目のマウスクリックがExceptionといわれエラーになってしまいます。Sendkeysでマウスクリックを送信するにはどうしたらよいのでしょうか?ネットで調べたリファレンスだと上記のような書き方で良さそうなのですが・・・ 音声認識アプリケーションはドラゴンスピーチ11Jで、OSはWin 7 ProとWin 8、どちらも64ビットです。

  • VBScript

    下記、プログラムを実行すると、コマンドプロンプトの画面が 消えずに、そのまま残ってしまいます。 どうしたら、画面を消すことができるでしょうか。 お力添えをお願いいたします。 Set WshShell = Wscript.CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment("user") WshEnv("C:\NET\aaa.txt") = "administrator" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:administrator " + chr(34) + "xcopy D:\NET\aaa.txt C:\NET\aaa.txt" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXX") WshShell.SendKeys("{Enter}") WScript.Sleep(500)

  • Windows 7 でのWSH の挙動

    お世話になります。 msdnにある「電卓をアクティブにするサンプルを Vistaで実行すると、電卓がアクティブになり、 計算結果を吐き出しますが、 Windows7(Pro,SP1)で実行すると 最前面に電卓が出るものの アクティブになっていない上に、 複数の電卓がどんどん立ち上がってきます。 Vistaと7で、プロセス(?)の管理が 変わっているのだと思います。 7でも電卓をアクティブにするには、 どうすればいいのでしょうか? 以下コードです。 ================================================ set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "calc" WScript.Sleep 100 WshShell.AppActivate "Calculator" WScript.Sleep 100 WshShell.SendKeys "1{+}" WScript.Sleep 500 WshShell.SendKeys "2" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 500 WshShell.SendKeys "*3" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 2500 ================================================

  • VBS runas実行時のパスワードを隠す方法について

    VBS runas実行時のパスワードを隠す方法について こんにちわ! いつもお世話になっております。 VBSでIPアドレスを変更するスクリプト(netshコマンドを実行する)を作成しました。 このコマンドを実行するためには管理者権限が必要なため、runasコマンド+SendKeys にて、自動的にパスワードを入力して実行するような形になっております。(下記) -----・-----・-----・-----・-----・-----・-----・-----・-----・-----・----- shshell.Run "cmd.exe", 0 WshShell.Run "runas /user:%computername%\administrator ""コマンド""" WshShell.SendKeys("{Enter}") WScript.Sleep(1500) WshShell.AppActivate "C:\Windows\System32\runas.exe" WshShell.SendKeys("パスワード") WshShell.SendKeys("{Enter}") -----・-----・-----・-----・-----・-----・-----・-----・-----・-----・----- [質問] このスクリプトのパスワードの部分を隠すまたは暗号化する方法を教えてください。 [背景] このスクリプトを作成者と使用者が違います。作成者は、管理者のパスワードを 把握していますが、使用者には管理者権限のパスワードを知られたくありません。 つまり、スクリプトを見れば分かってしまうという状況は避けたいのです。 [調査状況] ・ネットワーク上にパスワードを格納したテキスト等を置いておき、それを  読み取る。⇒これは、今回実行するスクリプトがIPアドレスを変更するもの  であるため、ネットワーク上の端末から情報を得ることができません。 ・タスクに登録する。⇒タスクに登録するために使用者のコンピュータ上に  スクリプトをおく必要があるため、これも不可です。 ・スクリプト自体を暗号化する。⇒最終手段として考えてはいますが、できれば  スクリプト内で処理を行いたいというのが現状です。(監督者の要望のため) [実行環境] ・Windows7 皆様、お忙しいとは思いますが、ご教授いただけると助かります。 以上 よろしくお願い致します。

  • WSHを使いTELNETで%USEPROFILE%\デスクトップにファイルを複写したい

    WSHをはじめたばかりです。TELNETで接続した現在の相手のデスクトップにファイルを複写させたいと考えています。 DOSのように指定したのですがカナ文字や%がうまく渡されていないようなのですがどのように設定すればよいか教えてください。 下記のように作成しています。 よろしくお願いします。 set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate "確認" WScript.Sleep 1000 adr = InputBox("端末IPアドレスを入力してください。", 1) adr = "telnet " & adr & "~" rem telnet ホスト名 WshShell.SendKeys adr WScript.Sleep 2000 rem ユーザー名 WshShell.SendKeys "administrator~" WScript.Sleep 1000 rem パスワード WshShell.SendKeys "administrator~" WScript.Sleep 1000 rem コマンド WshShell.SendKeys "cd %USEPROFILE%\デスクトップ~" WScript.Sleep 3000 rem あとCOPYによる複写コマンドの記述

  • 実行中のSendkeysのVBSを途中で停止したい

    下記のような実行中のSendkeysのVBSを途中で 停止するにはどうすればよいのでしょうか? Set s = WScript.CreateObject("WScript.Shell") for i=1 to 100 s.SendKeys i WScript.Sleep 500 next ご存知の方がおられましたらご回答をよろしくお願いします。

  • VBSについて

    VBSの中でDOSのコマンドを実行したいのですが、VBS内で使用した変数を Runで使うことはできないのでしょうか? ################################################ Set WSHShell = CreateObject("WScript.Shell") x = "C:\Documents and Settings\user" WSHShell.Run "cmd.exe /K dir x" ################################################ たとえば上記のようなプログラムを作ったときに最終行のcmd.exeの 実行で変数xを使用したいのですが、可能でしょうか? このまま実行するとコマンドプロンプトの窓が開いて「ファイルが見つかりません」と表示されてしまいます。 何か方法があればご教授ください。よろしくお願いします。

  • net useで接続したファイルをrunasでxcopyできない

    こんにちは。VBScriptに関する質問です。 net useで接続した先のファイルをローカルの同名ファイルに 管理者権限で(runasを使用)xcopyを利用してコピーしたいのですが ネットワークに接続はされるのですが、コピーができません。 ちなみに、ローカルからローカルでは成功しています。 ※下記のバッチを流した場合にエラーはでません。 ※ローカルからの変更点は、Call文を利用してる2行を追加したのと  xcopyの送り先をnet useで接続した先に変えただけです。 ※DOSコマンドで行った場合は成功しています。 環境:Windows XP and Windows 2000 Set WshShell = Wscript.CreateObject("WScript.Shell") Call WshShell.Run("net use l: \\DDD\** /user:DDD\[ログオンID] [ログオンPW]") Set WshEnv = WshShell.Environment("user") WshEnv("C:\TEST\b.txt") = "USER01" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:USER01 " + chr(34) + "xcopy l:\TEST\b.txt C:\TEST\b.txt /Y" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXXX") WshShell.SendKeys("{Enter}") Call WshShell.Run("net use l: /delete /Y") WshShell.SendKeys("exit") WshShell.SendKeys("{Enter}")  手詰まりになってしまい、困っています。 どなたか、お力添えをいただけると助かります。 よろしく、お願いいたします。

  • VBSでブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法

    VBSでブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法を教えてください。 現在、下のような方法で行っているのですが応用が利かないので改善したいと思っています。 Set IE = CreateObject("InternetExplorer.Application") Set WshShell = CreateObject("WScript.Shell") IE.Visible = True IE.Navigate("https://サイトのURL") Do Until IE.Busy = False WScript.Sleep 1000 WshShell.SendKeys "y" Loop '(セキュリティの警告が出るため) WScript.Sleep 100 WshShell.SendKeys "{TAB}" WScript.Sleep 100 WshShell.SendKeys "loginid" WScript.Sleep 100 WshShell.SendKeys "{TAB}" WScript.Sleep 100 WshShell.SendKeys "password" WScript.Sleep 100 WshShell.SendKeys "{TAB}" WshShell.SendKeys "{ENTER}" 操作したいページのソースの一部を抜粋すると下記のようになっています。 テキストボックス <INPUT type="text" name="loginId" class="Necessary" size="20" maxlength="5" value="" tabindex="20"> ボタン <INPUT class="button10" type="button" name="sentaku" value="認証" onClick="javascript:execute・・・・略 うまく操作できる方法を教えてください。 よろしくお願いします。

専門家に質問してみよう