- 締切済み
VBSでファイルの自動保存
vbs初心者です。自分なりに調べたのですが、うまくいかず、アドバスを願い致します。目的は、ファイルを自動保存したいのです。 以下のように記載して、最後にカレントデレクトリイに「test.txt」と名前をつけて保存させたいのです。よろしくお願い致します。 Set objShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 1000 objShell.Run "notepad.exe" objShell.SendKeys "hello " objShell.SendKeys "%{F4}" objShell.SendKeys "%y"
- tara22
- お礼率83% (5/6)
- その他(プログラミング・開発)
- 回答数4
- ありがとう数3
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- iriyak
- ベストアンサー率48% (40/82)
こんにちは。 目的が『ファイルを自動保存したい』とのこと。今後複雑な操作の自動化に取り組まれた時に選択肢の一つに含めてもらえればと思い、同様の問題領域に適用可能な Windows 自動化ソフト UWSC をご紹介します。 UWSC による自動保存を指示するスクリプト dim wid1, wid2 dim waits = 0.5 wid1 = EXEC("notepad.exe") SENDSTR(wid1, "hello") SLEEP(waits) CLKITEM(wid1, "上書き保存", CLK_MENU) SLEEP(waits) wid2 = GETID("名前を付けて保存", "#32770") SENDSTR(wid2, "test.txt") SLEEP(waits) CLKITEM(wid2, "保存", CLK_BTN) SLEEP(waits) CLKITEM(GETID("名前を付けて保存", "#32770"), "はい", CLK_BTN) SLEEP(waits) SCKEY(wid1, VK_ALT, VK_F4) SLEEP(waits)
- 参考URL:
- http://www.uwsc.info/
- notnot
- ベストアンサー率47% (4846/10257)
ポイントは、 ・notepad起動時にファイル名を指定 ・appactivate(snedkeysのサンプルに書いてあるはずですが) ・作成しますか?のダイアログに、ALT-Y を回答 Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "notepad.exe test.txt" WScript.Sleep 1000 objShell.AppActivate "test.txt" WScript.Sleep 1000 objShell.SendKeys "%y" objShell.SendKeys "hello " objShell.SendKeys "%{F4}" objShell.SendKeys "%y"
お礼
ポイントに感激致しました。notepad起動時にファイル名を指定する方法は、私に取って盲点でした。利用させて頂きます。 ありがとうございました。
- nda23
- ベストアンサー率54% (777/1415)
それなら、VBSでのテキストファイルの扱い方を覚える方が、ずっと重要です。 SendKeysはフォーカスのあるウィンドウに行くので、狙った通りに行かないし、 多用すべきではありません。 以下、サンプル Dim FSO 'ファイルシステムオブジェクト Dim STM 'テキストストリーム '== オブジェクトをインスタンス化する Set FSO = CretaeObject("Scripting.FileSystemObject") '== ファイルを作成する Set STM = FSO.CreateTextFile("C:\~\hoge.txt", True) '== テキストを書き込む STM.Write "Hel" '改行されない STM.WriteLine "lo" '改行される '== ファイルを閉じる STM.Close ファイルシステムオブジェクトはファイルやフォルダの削除、コピー、移動などで 使用するとても重要なオブジェクトです。
お礼
ご回答ありがとうございました。 注釈が付きで解りやすく勉強になりました。 ファイルの操作勉強してみます。
- nda23
- ベストアンサー率54% (777/1415)
"hello"と書いたテキストファイルを作りたいと言うことですか?
補足
はい、そうなんです。 "Hello"→文字はなんでもOKなのですが Notepad起動して文字入力した テキストファイルが作成したいのです。
関連するQ&A
- vbsでアプリを自動終了する
notepadを起動せさ、「Hello」とキーボードより入力させてから自動的に終了させるvbsで作成しましたが、キーボード入力させるところまで成功しましたが、notepadを自動的に終了させる部分が成功しておりません。(イメージはユーザは何もせずnotepadを保存せずに自動終了させます。)下記のとおり 途中なのですがアドバイスをお願い致します。 ----------------------------------------------------------- Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "notepad.exe" WScript.Sleep 1000 objShell.SendKeys "hello ,"
- 締切済み
- Visual Basic
- WSH動作しない!!(WScript.SleepとSendKeys?)
WSHが動作しなくて困っています。 動作するコードとしないコードは次のとおりです。 いずれも@ITに掲載されているサンプルコードをそのままです。 動作しないコードについても,notepadの起動まではできます。 どうやら,sleepとsendkeysが動いてくれないようです。 <正常に動作するコード> Set objShell = WScript.CreateObject("WScript.Shell") WScript.Echo "メモ帳を起動します。" objShell.Run "notepad.exe" http://www.atmarkit.co.jp/fwin2k/operation/wsh03/wsh03_02.html <動作しないコード> Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "notepad.exe" WScript.Sleep 1000 objShell.SendKeys "hello" http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html ■動作環境 Win XP Pro IE 6.0 ちなみに,WSHファイルに対する実行権限はあります(フルコントロールです)。 以上なのですが,何か点検するべき事項などありましたらご教示ください。
- ベストアンサー
- その他(プログラミング・開発)
- VBSファイルを定期的に自動実行する方法
毎日同時刻に下記のVBSファイルを自動実行したいと思います。 タスクスケジューラで実行すると download.exe は起動しますが 表示されたダイアログがアクティブ状態にならないため (タイトルバーが灰色のまま、タスクバーのボタンが点滅)、 文字入力ができないまま、処理が終了してしまいます。 1.ダイアログをアクティブにし、正常に処理を実行させるには どのように記述すれば良いですか? 2.このVBSファイルをユーザーがログオフされている状態で 実行することは可能ですか? 恐れ入りますが、ご存じの方がおられましたら、ご教示願います。 <環境> Windows 2008 Server R2 standard (64ビット) <D:\aaa.vbs> Set objShell = WScript.CreateObject("WScript.Shell") 'ダウンロードEXEを実行 Set objExec = objShell.Exec("D:\download.exe") WScript.Sleep 1000 objShell.AppActivate(objExec.ProcessID) 'ファイルのダウンロード先を指定し、実行(ENTER) WScript.Sleep 1000 objShell.SendKeys "D:\data.txt~"
- ベストアンサー
- Visual Basic
- VBSからのサーバサイドのEXEの実行
こんにちはSHIRAOといいます。 WScript.Shellを使用してサーバにあるEXEファイルを 起動しようと思っているのですがどうもうまくいきません。WScript.Shellを使用する時に何か設定しなければならないことがあるのでしょうか? <script language="vbscript"> Function Window_OnLoad : Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "C:\WINDOWS\system32\notepad.exe" : End Function </script>
- ベストアンサー
- Visual Basic
- VBSで2バイト文字の送り方の質問です。
VBSで質問です。環境はXP Proです。 InputBoxで入力した日本語を他のアプリケーションに入力をしたいのですが、Sendkeysが2バイト文字は不可とわかり頓挫しました。sendkeys以外で使える技を教えてくださいませ。下記のコードを考えてましたが挫折しました。 -------------------------------------------------- Option Explicit Dim Name Name = InputBox("名前を入力してください") 'シェルを用意 Dim objWshShell Set objWshShell = Wscript.CreateObject("Wscript.Shell") 'notepad起動 objWshShell.Exec "notepad.exe" 'notepadアクティブにする objWshShell.AppActivate "objWshShell.Exec.ProcessID" wscript.sleep 1000 'notepadに名前を入力する objWshShell.Sendkeys Name ***sendkeys以外で文字を送る技を期待しています。
- ベストアンサー
- その他(プログラミング・開発)
- 実行中のSendkeysのVBSを途中で停止したい
下記のような実行中のSendkeysのVBSを途中で 停止するにはどうすればよいのでしょうか? Set s = WScript.CreateObject("WScript.Shell") for i=1 to 100 s.SendKeys i WScript.Sleep 500 next ご存知の方がおられましたらご回答をよろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- 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が実行出来ていないかも。。。。 宜しくお願いします。
- 締切済み
- Visual Basic
- 特定のフォルダを階層下まで表示を変えたい
ほかのカテゴリで質問したのですが回答がありませんでした。 すべてのフォルダではなく、ある特定のフォルダの表示だけを階層下まで「詳細」に変更したいのです。 すべてのフォルダですとWindowsの処理で可能ですし、階層下までをしなくてもいいのなら、WSHで下のように書いて、その中へフォルダをドラッグしたらできました。 '----------------------------------------------------- Set objShell = WScript.CreateObject("WScript.Shell") objShell.SendKeys "{ENTER}" WScript.Sleep 200 objShell.SendKeys "%V" WScript.Sleep 200 objShell.SendKeys "^D" WScript.Sleep 200 objShell.SendKeys "%{f4}" '---------------------------------------- どなたか、階層下まで同じ処理をする方法か、それともそのような処理ができるフリーソフトをご存知ないでしょうか?
- 締切済み
- フリーウェア・フリーソフト
- display.vbsというファイルがstartupフォルダにあるので
display.vbsというファイルがstartupフォルダにあるのですが? display.vbsというファイルがすべてのプログラムのstartupフォルダにあるのですが、これは何でしょうか?名前からして気持ち悪いので正体を知っている人がいたら教えて欲しいです。 メモ帳で開いたら下記のようなソースになっていました。 よろしくお願いします。 -------------------------------------------- ' Self destructive VBScript for changing optimal resolution ' Set optimal resolution Set objShell = Wscript.CreateObject("Wscript.Shell") objShell.Run "c:\windows\options\cfgdisp.exe /optimum", 7, True ' Now destroy itself Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFile("C:\Documents and Settings\All Users\Start Menu\Programs\Startup\display.vbs") --------------------------------------------
- 締切済み
- スパイウェア
- VBSファイルをスタートアップフォルダに入れておいて、
エクセル2007の特定ファイルをそのVBSファイルにより自動起動させる方法を教えてください。ちなみに、次のようなVBSファイルを作成しましたがエラーとなってしまいます。 Option Explicit 'オブジェクト変数の宣言とWshShellオブジェクトの作成。 Dim objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 1000 '1秒待機 objWshShell.Run "C:¥Program Files¥Microsoft Office¥Office12¥EXCEL.exe" です。
- ベストアンサー
- Windows Vista
お礼
UWSCを早速インターネットで調べました。こんのようなツールもあるのですね。勉強してみます。ありがとうございました。