• ベストアンサー

VBScriptでノートパッド起動

HTMLのボタン押下イベントで、VBScriptの関数を呼んで その中でノートパッドを開いてます。 VBScriptの関数は、 <Script language = "VBScript"> Sub showReport(FILEPATH) Dim intRtn Dim objShell Set objShell = CreateObject("WScript.Shell") intRtn = objShell.Run("notepad " & FILEPATH, 1, True) Set objShell = Nothing EndSub </Script> です。 ファイルのフルパスを引数で渡して、ノートパッドから開いてます。 この処理を行うと、起動して最初の1回だけ 「このページのActiveXコントロールは、安全ではない可能性があり、ページのほかの部分に影響する可能性があります。ほかの部分に影響しても問題ありませんか?」 というダイアログが表示されてしまいます。 一度「はい」を選択すると、ウィンドウを閉じるまでは出なくなりますが、 また起動した場合はダイアログが表示されます。 このダイアログを表示しない方法を教えていただけますでしょうか? プログラムの記述が悪いのでしょうか? IE6のSP1です。 よろしくお願いします。

noname#23059
noname#23059

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

  • ベストアンサー
  • X-trail_00
  • ベストアンサー率30% (438/1430)
回答No.1

WindowsXP SP2でしょう? 原因はActiveXのセキュリティの強化です。 回避策は・・・ないです。 HTAで作ると出ないらしい。

noname#23059
質問者

お礼

ありがとうございます! HTAにすることで解決しました!!

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

IEでしょうから、ツール→インターネットオプション →セキュリティー→信頼済みサイトでそのhtmlがおいて あるサイトを追加しておき、 信頼済みサイトのレベルカスタマイズで、ほとんど の選択肢を「有効にする」にしておくとActiveX系の コーションはでにくくなります。 信頼済みサイトの取り扱いには十分に注意をはらって ください

noname#23059
質問者

お礼

ありがとうございます! 今回はHTAで作ることにしました!

関連するQ&A

  • VBScriptでのフォルダ指定ダイアログについて

    VBSciptでの「フォルダ指定ダイアログ」について教えてください。 「フォルダ指定ダイアログ」を利用して、保存元のフォルダと保存先の フォルダを選択し、特定ファイル(*.jpg)のコピーをするツールを作っています。 下記のプログラムで、「フォルダ指定ダイアログ」が表示されるのは 確認できたのですが、選択したフォルダの階層をテキストフォームに 表示させる方法を教えてください。(書き込みできませんのエラーになります。) --------------------------------------------------------- Dim objShell Dim objFolder ' オブジェクトの生成 Set objShell = CreateObject("Shell.Application") ' フォルダ選択ダイアログを表示 Set objFolder = objShell.BrowseForFolder(0, "フォルダを選択してください。", 0) Set objShell = Nothing --------------------------------------------------------- 以上、宜しくお願い致します。

  • VBScript による疎通確認

    今、以下のVBScriptを使い2台のPCサーバへ成功の監査としてログイン・ログオフ記録をアプリケーションログに書き込んでいます。しかし、このVBScriptでは、2台のPCサーバの生死を判断することは出来ず、ダウンしているPCサーバだろうがアクセスします。そのため、ログイン・ログオフする度にエラーポップが出てしまいます。 そこで、このVBScriptに疎通確認し判断したのち、生きているPCサーバへのみアクセスするようにしたいのですがどのようにコードを組めば良いのか解りません。ご教授お願いします。 ログインスクリプト Const AUDIT_SUCCESS = 8 Set objShell = WScript.CreateObject("WScript.Shell") Set objNetwork = WScript.CreateObject("WScript.Network") strMsg = objNetwork.UserName + " logon " objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名1" objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名2" ログオフスクリプト Const AUDIT_SUCCESS = 8 Set objShell = WScript.CreateObject("WScript.Shell") Set objNetwork = WScript.CreateObject("WScript.Network") strMsg = objNetwork.UserName + " logoff " objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名1" objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名2"

  • VBscriptでのエクセルの起動について

    phpで開発しているのですが 問題はVBscriptでの問題と思われますのでここで 質問させてください。 vbscript上で Dim xl Dim book, sheet Set xl = CreateObject("Excel.Application") xl.Visible = false Set book = xl.WorkBooks.Add("http://**/****.xls") xl.DisplayAlerts = False -------- phpでのエクセルへのデータ操作 -------- xl.DisplayAlerts = true xl.visible = true set book = Nothing Set xl = Nothing という形でエクセルを起動して、データを挿入してから 画面上に表示という事をしています。 このときに、エクセルはちゃんと起動してくるのですが アクティブウインドウになってくれません。 タスクバーのボタンがピコピコ点滅するだけです。 クリックすると前面に表示されるのですが。。。 どうにか、自動的に前面に出すことはできないでしょうか?

  • VBScriptで、既に開いているIEを画面の最前面に表示させる

    VBScriptで、既に開いているIEを画面の最前面に表示させる OS:WindowsXP SP3 ブラウザ:InternetExplorer6 期待している機能としましては、IEが開いていない場合は新規にIEを立ち上げ、既に開いている場合は、それを画面の最前面に表示させる(最小化されている場合はそれを解除する)といった感じです。 教えて頂きたいのは、IEを画面の最前面に表示させる方法(最小化の場合はそれを解除)です。 現状のソースを記載します。おかしな点がありましたらご指摘よろしくお願い致します。 Dim objShell Dim objWindow Dim objIE Dim ieFlag ieFlag = False '開いているウィンドウからIEを検索 Set objShell = CreateObject("Shell.Application") For Each objWindow In objShell.Windows If TypeName(objWindow.Document) = "HTMLDocument" Then ieFlag = True Set objIE = objWindow Exit For End If Next 'IEが開いていたらそれを画面の最前面に、そうでないなら新規で開く If ieFlag = True Then 'IEを画面の最前面に又は、最小化解除 Else '新規にIEを開く Set WshShell=Wscript.CreateObject("Wscript.Shell") WshShell.Run("http://www.google.co.jp/") WScript.Sleep(4000) End If

  • VBScriptの繰り返し文について

    こんにちは。下のスクリプトでクリックボタンをクリックすると、サブフォルダ名が表示されるようにしたいのですが、どこのクリックボタンをクリックしても、一番下のサブフォルダの名前が表示されてしまいます。何かいい方法はあるでしょうか。よろしくお願いいたします。 <html><head> <title>test</title> </head> <body> <h3>サブフォルダ一覧</h3> <table border> <tr><td>サブフォルダ名</td><tr> <script language=VBScript> <!-- Option Explicit Dim FSO Dim TestFolder Dim F Dim X set FSO = CreateObject("Scripting.FileSystemObject") Set TestFolder = FSO.GetFolder(".").ParentFolder For Each f IN TestFolder.SubFolders X = f.name Document.Write "<tr><td> " & X & " </td></tr><td><input type=button onclick=setnum value=クリック></td></tr>" Next Sub setnum msgbox X End Sub Set FSO = Nothing Set TestFolder = Nothing --> </script> </table> </body></html>

  • VBScriptでのファイルコピー

    こんにちは いつもお世話になります。 現在、「ファイルの指定ダイアログ」で選択されたファイルの中身(ファイル名) と「フォルダ指定ダイアログ(参照先)」で選択されたフォルダ(サブフォルダ含む) 内のファイルの名前を比較して、一致しているファイルを「フォルダ指定ダイアログ (保存先)」にコピーし、一致しないファイル名を同じく「フォルダ指定ダイアログ (保存先)」に出力するというツールを作成しています。 以下を実行させても、ファイルのコピーも出力もされないのですが、教えていただけます でしょうか。 宜しくお願い致します。 ---------------------------------------------------------------------- <html><head> <script language="VBScript"> 'Call Window.ResizeTo(500,200) Set objFso = CreateObject("Scripting.FileSystemObject") 'テキストファイル吐き出し場所 Const LIST_FILE = "C:\Documents and Settings\All Users\デスクトップ\NonFile.txt" '色々宣言 Dim objFso Dim inFolderName Dim outFolderName Dim inFileName Dim objTxIn Dim ListFile Dim CurrentFileName '色々定数 Const TristateTrue = -1 Const TristateFalse = 0 Const TristateUseDefault = -2 Const ForReading = 1 Const ForWriting = 2 Const ForAppending = 8 '参照フォルダをテキストに表示 '------------------------------------------------------------ sub inFolder() Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder( _ 0, "フォルダを選択してください", 0, "ssfDeskTop") If objFolder Is nothing Then MsgBox("フォルダを選択されませんでした。") Else pathFolder = objFolder.Items().Item().Path ifd.value = vbCr & pathFolder Set objFolder = nothing End If End sub '保存先フォルダの選択 '------------------------------------------------------------ sub outFolder() Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder( _ 0, "フォルダを選択してください", 0, "ssfDeskTop") If objFolder Is nothing Then 'MsgBox("フォルダを選択されませんでした。") Else pathFolder = objFolder.Items().Item().Path ofd.value = vbCr & pathFolder Set objFolder = nothing End If End sub '------------------------------------------------------------ Sub btn_onClick 'ファイルの有無チェック txOut="" inFileName = inFile.Value outFolderName = ofd.value If objFso.FileExists(inFileName) = True Then Set ListFile = objFso.OpenTextFile(inFileName,ForReading,false,TristateTrue) 'ファイルが無いとき Else MsgBox("ファイルが選択されていません。") End If Call iFolder(inFolderName) MsgBox("完了") End Sub 'サブフォルダ内ファイル検査→有 コピー/無 テキスト出力 '------------------------------------------------------------ Sub iFolder(inFolderName) CurrentFileName="" 'フォルダオブジェクト取得 outFolderName = ofd.value If inFolderName ="" then inFolderName = ifd.value Set fsoFolder = objFso.GetFolder(inFolderName) On Error Resume Next CurrentFileName = ListFile.ReadLine For Each fsoFile In fsoFolder.Files If fsoFile.Name = CurrentFileName Then fsoFile.Copy outFolderName,CurrentFileName,false Else set NoFile = objFso.CreateTextFile(LIST_FILE,True) NoFile.WriteLine(CurrentFileName) NoFile.Close End If fsoFile.Close Set fsoFile = Nothing Next For Each fsoSubFolder In fsoFolder.SubFolders Call iFolder(fsoSubFolder) Next End Sub </script> </head>

  • JavaScript と VBScript を同時に使う

    メタ内に VBScript, JavaScript の順にスクリプトを配置しているのですが,ボディ内から JavaScript の関数を引数つきで呼び出そうとすると,「Sub プロシージャを呼び出すときに,かっこを使うことはできません。」と表示されエラーになります。 どうすればいいでしょうか。よろしくお願いします。

  • JavaScript と VBScript を同時に使う

    meta内に VBScript, JavaScript の順にスクリプトを配置しているのですが,body内から JavaScript の関数を引数つきで呼び出そうとすると,「Sub プロシージャを呼び出すときに,かっこを使うことはできません。」と表示されエラーになります。 どうすればいいでしょうか。よろしくお願いします。

  • JavaScriptとVBScriptに関して

    こんにちは。質問です! JavaScriptの確認ダイアログに「はい」「いいえ」「キャンセル」を出す関数がないので、 execScript()を使って、VBScriptのMsgBoxで出力することにしました。 以下、簡単なソースです。 function msgBox() {   var msg1 = "次のページへ移ります。";   var msg2 = "よろしいですか?";   //msg1とmsg2を改行してMsgBoxに出力したい。   var allMsg = msg1 + "vbCrLf" + msg2;     window.execScript("anser = MsgBox('" + allMsg + "',vbYesNoCancel,'確認')","VBScript"); } としているのですが、 VBScriptの改行の"vbCrLf"が文字列扱いとなり、以下のようにそのまま出力されてしまいます。 「次のページへ移ります。vbCrLfよろしいですか?」 ※VBのChr$(13) & Chr$(10)やChr(13) & Chr(10)でも試しましたが同じ結果です。 対処法をご存知の方がおりましたら、ご回答お願い致します。

  • 隠しフィールドをVBScriptでの受取る方法

    初めての投稿です。 ぜひ、おしえてください。 隠しフィールドのデータを次のページ(VBScript)での受取り方法がお聞きします。 default.aspファイルに下記を記述しています: <FORM NAME="MyForm" method=Post Action="./sub.asp"> <INPUT TYPE=Hidden VALUE="<% Response.Write MyData %>" Name="MyData"> <INPUT type="submit" name="cmdSend" value="送る"> </Form> sub.aspファイル(次ページ)に下記を記述しています: <SCRIPT LANGUAGE="VBScript"> Dim temp temp = MyForm.MyData.Value </SCRIPT> 上記の記述文では、データの引渡しができませんが、 (sub.aspページでMyFormがエラーになります) どなたか、正しい書き方を教えてもらえませんか? すみませんが、よろしくお願いいたします。

専門家に質問してみよう