VBSで表示されるメッセージの位置か状態を指定できますか?

このQ&Aのポイント
  • VBSで表示されるメッセージの位置か状態を指定できるのか疑問に思っています。
  • アプリケーションと連帯させている場合、ポップアップメッセージの位置がアプリの上に表示され、作業の妨げになっています。
  • WScript.Echoを使用している場合、位置の指定や最上位に表示する方法などがあるのか知りたいです。
回答を見る
  • ベストアンサー

VBSで表示されるメッセージの位置か状態を指定できますか?

VBSで表示されるメッセージの位置か状態を指定できますか? メッセージでVBSのコマンドを止めているのですが アプリケーションと連帯させていてアプリでの作業をして再開させようとすると当然なんですが popされる場所が悪く アプリの上にポップされてしまうので作業していたら当然の如くポップが下になりOK押すのにタスクバーから選ぶかどうかって選択肢になってしまいます。 これを避ける為に知りたいのがWScript.Echoは場所の指定が出来るのか常に最上位の場所に居る状態に出来るのかです。 出来れば場所指定と最上位が出来ると良いのですが・・・ 最上位に置けるとしたら逆に位置の指定も出来ないと駄目ですが。 お助け下さい。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4844/10253)
回答No.1

出来ないです。

関連するQ&A

  • vbsでスクロール位置を指定してurlを開くには?

    vbsを実行して、IE等でurlを開くことはできるのですが、 最初に指定した文字列を検索し、その検索一致位置までスクロールを下げた状態で開くことはできますか?

  • VBでメッセージを表示し、VBで閉じる方法

    VBScriptで、以下のような記述でOS上でメッセージを出すとします。 WScript.Echo "こんにちは" これを例えば、message.vbsというファイルにしてPC内に置いておき、これを起動させてメッセージを表示させた後、好きなタイミングでまたVBScriptでこれを自動で閉じたいのですが。 何秒後に自動で閉じるとかではなく、あくまで違うVBScriptファイルでmessage.vbsを閉じるという事は可能なのでしょうか? 使い方としては、message.vbsを起動させてメッセージを表示。 VBScriptでこれを閉じるためのスクリプトを作成しておき(close.vbsとします)、close.vbsを起動。 close.vbsで、message.vbsが起動させてたメッセージを閉じる。 という流れをOS上でさせたいのですが。

  • WScript.Echo と msgbox

    vbsにおいて WScript.Echo msgbox の違いはなんでしょう? WScript.Echo "aaa" msgbox "bbb" とするとどちらもメッセージが表示されます。 vbsでコードを作る際どちらを浸かった方がよいのでしょうか?

  • VBS【ドライブ残量】

    いつも大変御世話になっております。 【D:\test】フォルダ内に、VBS【test.vbs】があります。 この【test.vbs】は以下のようなコードです。 -------------------------------------------------------------------------------------- Dim fso, d, s Set fso = CreateObject("Scripting.FileSystemObject") Set d = fso.GetDrive(fso.GetDriveName("C:\")) s = s & "Cドライブ使用可能領域 : " & FormatNumber(d.FreeSpace/1024, 0) s = s & " KBです。" if FormatNumber(d.FreeSpace/1024, 0) > 50000000 then wscript.echo s & " 50G以上の空き容量を確保してますので安全容量です。" else if FormatNumber(d.FreeSpace/1024, 0) > 20000000 then wscript.echo s & " 20G以上の空き容量があります。" else if FormatNumber(d.FreeSpace/1024, 0) > 10000000 then wscript.echo s & " 10G以上の空き容量があります。" else wscript.echo s & "不要ファイルを削除して下さい。" end if end if end if -------------------------------------------------------------------------------------- 上記VBSはCドライブ内の空き容量をkbでよみにいき、kbの数値で判定しています。 これをGBでよみにいってGBで判定したいのですが可能でしょうか? 理想は2ケタ表示です。 例:25G (四捨五入で繰り上げた値) かつwscript.echoのメッセージ箇所を【D:\test\LOG】フォルダ内の【DRIVE.txt】というファイルに追記とかは可能でしょうか? 計算方法の箇所を変更するばよいのですが、ややこしくて困っています。 何かアドバイス等をご教授願いますでしょうか? 宜しくお願い致します。

  • VBSバックアップ

    バックアップスクリプト(VBS)について教えて下さい。 単純にディレクトリをバックアップするスクリプトは、出来たのですが これに付加機能を与えたいです。 ◆世代管理をしたい。 ◆iniファイルから、バックアップ元と先、管理する世代等の情報を読み込みたい。 <bkup.vbs> Option Explicit Const ForReading = 1 '読み込み Const ForWriting = 2 '書きこみ(上書きモード) Const ForAppending = 8 '書きこみ(追記モード) Dim objFileSys Dim objShell Dim strCopyFrom Dim strCopyTo Dim strToDir Dim strNewDate WScript.echo "バックアップを開始します" Set objFileSys = CreateObject("Scripting.FileSystemObject") Set objShell = CreateObject("WScript.Shell") strNewDate = Year(Now) & _ Right(("0" & CStr(Month(Now)+0)),2) & _ Right(("0" & CStr(Day(Now)+0)),2) strCopyFrom = "C:\vbs" strToDir = "C:\backup" strCopyTo = objFileSys.BuildPath(strToDir,strNewDate) If objFileSys.FolderExists(strCopyTo) = True then WScript.echo "指定のパスには既にディレクトリが存在する為、" & _"バックアップ処理を中断します。" WScript.Quit Else objFileSys.CopyFolder strCopyFrom,strCopyTo WScript.echo "バックアップ処理は正常に完了しました。" End If Set objFileSys = Nothing Set objShell = Nothing 宜しくお願い致します。

  • VBSでデータベースへの接続

    dbon.cfgファイルにSQL Serverへ接続のためのパラメータを設定しておき、それを読み込んでデータベースに接続しようとしていますが接続できません。 dbcon.cfgの中身は下記になっており、]以降のサーバー名、データーベース名を切り出すため、splitを指定しています。 値がわたっていないと思って、ループに"WScript.Echo strDBParm(intCnt)"を指定して中身を確認しようとしましたが、何も表示されません。 お手数をおかけしますがご教示いただけますようお願いいたします。 ----------------------------------------------- [server] サーバー名を指定 [database] データベース名を指定 [uid] [database]で指定したデーターベースに接続できるユーザ名を指定 [pwd] [uid]で指定したユーザーのパスワードを指定 ----------------------------------------------- -------------------------- [VBSスクリプト] Option Explicit Dim objFS Dim objFile Dim objADO Dim strDBParm(3) Dim intCnt Const strDBConCfg="C:\test\dbcon.cfg" Const ForReading = 1 Const TextCompare = 1 intCnt = 0 On Error Resume Next Set objFS = WScript.CreateObject("Scripting.FileSystemObject") If Err.Number <> 0 Then WScript.Echo "FSオブジェクトが作成できませんでした" WScript.Quit(1) End If Set objFile = objFS.OpenTextFile(strDBConCfg,ForReading) If Err.Number <> 0 Then WScript.Echo strDBConCfg & "を開く事ができませんでした" WScript.Quit(1) End If Do Until objFile.AtEndOfLine = True strDBParm(intCnt) = Split(objFile.ReadLine, "]", TextCompare) WScript.Echo strDBParm(intCnt) intCnt = intCnt + 1 Loop Set objADO = CreateObject("ADODB.Connection") If Err.Number <> 0 Then WScript.Echo "ADOオブジェクトが作成できませんでした" WScript.Quit(1) End If objADO.Open "Driver={SQL Server};" & _ "server=strDBParm(0); database=strDBParm(1); uid=strDBParm(2); pwd=strDBParm(3);" If Err.Number <> 0 Then WScript.Echo "サーバーに接続できませんでした" WScript.Quit(1) End If objADO.Close Set objFS = Nothing Set objADO = Nothing

  • レジストリの値を取得、変更したい。 VBS/WSH

    指定するキーが無かった場合は終了。 あった場合、指定キーにデータを上書きする。 無かった場合は終了する。 こういうVBSプログラムを書きたいと思っています。 例)HKEY_CURRENT_USER\Software\TEST1\TEST2\TEST3の中の   名前が Level のキーの値を5に変更 色々探した結果 ---------------------------- WScript.Echo "レジストリの値を変更します" Set Shell = CreateObject("Wscript.shell") On Error Resume Next If IsNull(shell.regread("HKEY_CURRENT_USER\Software\TEST1\TEST2\TEST3\Level")) Then WScript.Echo "レジストリが存在しません。" Else WScript.Echo "レジストリのLavelキーの値を5に変更します。" Shell.RegWrite "HKEY_CURRENT_USER\Software\TEST1\TEST2\TEST3\Level", 5, "REG_SZ" End If -------------------------------- このように書いて、VBSとして実行しようと思うのですが 何か問題とかありそうでしょうか? (また、思い通りの操作ができそうでしょうか…) レジストリということもあり、何も考えずに実行してしまうのは少し怖いです。 以上、回答お願い致します。

  • エクセルブックの複製(.vbs)

    「原紙」という名前のエクセルブックがあり、新しいお客様が増えたらそのブックを複製し、更にその時にダイアログを出してお客様の名前を入力し、それをファイル名にしたいです。 下記の.vbsファイルに元ファイルをドラッグすると連番を付けて複数作る、という目的でのコマンドを見つけました(これも凄いですが)。 もし改良出来る方がいたら教えてください。 ・コピー数の指定は必要ありません(毎回1ファイルのみ複製)。 ・ドラッグすると、ダイアログが出てきて入力したものがファイル名になる。 よろしくお願い致します。 If WScript.Arguments.Count = 0 Then WScript.Quit Dim fso Set fso = CreateObject( "Scripting.FileSystemObject" ) '--- コピー元ファイルの確認 filePath = WScript.Arguments.Item(0) If fso.FileExists( filePath ) = False Then WScript.Echo filePath & "がありません" WScript.Quit End If '--- コピー数の指定 Num = InputBox( filePath & vbNewLine & "をいくつコピーしますか") If IsNumeric( Num ) = False Then WScript.Echo "数値を入力してください。" WScript.Quit End If If Num > 999 Or Num < 1 Then WScript.Echo "数値は1~999で指定してください。" WScript.Quit End If Extention = "." & fso.GetExtensionName( filePath ) '--- ファイルチェック For i=1 To Num newFilePath = Replace( filePath, Extention, "_" & Right( "000" & i, 3) & Extention ) If fso.FileExists( newFilePath ) = True Then WScript.Echo "作成予定のファイル【" & newFilePath & "】が既に存在します。" WScript.Quit End If Next '--- ファイルコピー For i=1 To Num newFilePath = Replace( filePath, Extention, "_" & Right( "000" & i, 3) & Extention ) fso.CopyFile filePath, newFilePath Next

  • VBSを使用したSQLCMDからのQuit

    VBSを使用してSQLCMDを実行してデータベースに接続できることを確認しましたが、 データベースの切断ができません。 SQLCMDユーティリティに制御が移ってしまっているため、VBSのシェルオブジェクトを使用して切断できないのではと考えております。 ADOを使用すれば、いいのは分かっているのですが、実際の環境ではADOを使用したデータベースへの接続が安定しないため、SQLCMDで接続する方法でスクリプトを作成しました。 何かいい方法がありましたら、ご教示頂けますでしょうか。 Option Explicit '■ オブジェクトの宣言 Dim objFSO Dim objFile Dim objWShell '■ 変数の宣言 Dim strBuf Dim strSearch Dim IngPos Dim IngCnt Dim idx Dim Param(3) Dim Hit Dim HitCnt Dim DBConCmd Dim DisConCmd '■ 定数の宣言 '// データベースコンフィグファイル格納フォルダ Const strDBConfigFolder = "c:\DBConfig" '// データベースコンフィグファイル Const strDBConfigFile = "c:\DBConfig\SQLCMDDBCon.cfg" '// 検索開始位置(1文字目) Const IngStart = 1 '// テキストモードで比較 Const IngTextCmp = 1 On Error Resume Next '□ FSOオブジェクトの作成 Set objFSO = CreateObject("Scripting.FileSystemObject") If Err.Number = 0 Then '□ データベースコンフィグファイル格納フォルダの存在チェック If objFSO.FolderExists(strDBConfigFolder) Then WScript.Echo "データベースコンフィグファイルを格納フォルダが存在します" '□ データベースコンフィグファイルの存在チェック If objFSO.FileExists(strDBConfigFile) Then WScript.Echo "データベースコンフィグファイルが存在します" '□ データベースコンフィグファイルの読み込み Set objFile = objFSO.OpenTextFile(strDBConfigFile, 1) '□ データベースコンフィグファイル読み取りチェック If Err.Number = 0 Then WScript.Echo "データベースコンフィグファイルが読み取りできます" '□ ディレクティブをセット strSearch = Array("<server_name>", "<login_id>", "<password>") '□ ヒットカウントの初期化 HitCnt = 0 Do Until objFile.AtEndOfLine = True '□ 1行読み込み、バッファに格納 strBuf = objFile.ReadLine '□ インデックスの初期化 idx = 0 '□ ヒットフラグの初期化 Hit = 0 '□ ディレクティブヒット判定用の初期化 IngPos = 0 Do Until idx > 2 or Hit = 1 IngPos = Instr(IngStart, strBuf, strSearch(idx), IngTextCmp) If IngPos = 0 Then WScript.Echo strSearch(idx) & "が見つかりません" idx = idx + 1 Else WScript.Echo strSearch(idx) & "が見つかりました" IngCnt = Len(strSearch(idx)) Param(idx) = Mid (strBuf, IngCnt + 1) Hit = 1 HitCnt = HitCnt + 1 End If Loop Loop Else WScript.Echo "データベースコンフィグファイルが読み取りできまないため、処理を終了します" WScript.Quit(1) End If Else WScript.Echo "データベースコンフィグファイルが存在しないため、処理を終了します" WScript.Quit(1) End If Else WScript.Echo "データベースコンフィグファイルを格納フォルダが存在しないため、処理を終了します" WScript.Quit(1) End If Else WScript.Echo "FSOオブジェクトが作成できないため、処理を終了します" WScript.Quit(1) End If '□ Shellオブジェクトの作成 Set objWShell = WScript.CreateObject("WScript.Shell") If Err.Number = 0 Then DBConCmd = "sqlcmd -S " & Param(0) & " -U " & Param(1) & " -P " & Param(2) objWShell.run DBConCmd If Err.Number = 0 Then WScript.Echo "データベースサーバーに接続しました" Else WScript.Echo "データベースサーバーに接続できませんでしたので、処理を終了します" WScript.Quit(1) End If Else WScript.Echo "Shellオブジェクトが作成できないため、処理を終了します" WScript.Quit(1) End If DBDisConCmd = "exit" objWShell.run DBDisConCmd '□ オブジェクトのクローズ objFile.Close '□ オブジェクトの開放 Set objShell = Nothing Set objFSO = Nothing

  • DOSコマンドでVBSで取得した値をセットしたい

    DOSコマンドで VBSで取得した値をセットしたい サーバ上のあるフォルダにファイルが蓄積されています。 2011_07_01.csv 2011_07_02.csv 2011_07_05.csv 2011_08_05.csv 今月(8月)になった時点で、先月分(07月)で且つ_01.csv と_05.csvファイル を削除するコマンドを作ろうとしています。 先月を取得する部分をVBSにし、その値をセットしようとしましたが、セット方法が分かりません。 echo WScript.Echo Right("0" & Month(DateAdd("d",-15,Date)), 2)> C:\tmptest.vbs CALL C:\tmptest.vbs とするとメッセージボックスで'07'と出力されます。 イメージですが、この'07'を変数にセットして、 (SET AAA = C:\tmptest.vbsの出力結果 のような) フォルダ内で ????_%AAA%_01.csv ,????_%AAA%_05.csv にマッチすれば削除するとしたいのですが、 (FOR /R %%A IN (????_%AAA%_01.csv,????_%AAA%_05.csv) DO DEL %%A というかんじで) VBSで取得した値をセットする方法を教えてください。