VB5.0でデータをHtmlファイルに保存しました。
そのHtmlファイルをNNではなくIEで起動させたいのですが
ユーザー環境のデフォルトブラウザはNNのため、NNで起動してしまいます。
VBの質問ではなくなってしまうのかもしれませんが、
単独起動時はデフォルトIEで開くよう「Html」にコーディングする方法は
あるのでしょうか?
どなたかよろしくお願いします!!
InternetExplorerオブジェクトが使えるかも。
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate2 "C:\Sample.html"
'必要に応じて、表示位置の指定(指定しなくてもOK)
IE.Top = 0
IE.Left = 0
IE.Width = 800
IE.Height = 600
'IEを表示
IE.Visible = True
Set IE = Nothing
htmlの単独起動時に使用されるブラウザはOSの設定によりますので、無理だと思います。
(拡張子でOSが判断して起動するアプリを決定している)
そうですか・・・無理ですか・・・。
ご回答ありがとうございました。
なぜIEで起動させたいかというと、
IE5以降のブラウザでは画面印刷時に
改ページ制御ができるからです。
NNで制御できれば問題なかったのですが・・。
はぎーさん、こんにちは
さて、htmファイル内にvbscriptなどで魔界の仮面弁士の様な
コードを記載することで、
デフォルトのNNの起動の後で、IEを起動させることはできるようですが
ActiveXの警告などが出て実用的で無いようです。
私の逃げの案としては、
1.拡張子をhtmXなどと現在関連付けされてない拡張子に変更して
この関連付けをIEに指定する。
→この方法では全てのユーザーに関連づけ設定を依頼することになります。
2.フリーソフトなどの起動ソフトを選択できるソフトを、NNがデフォルトの
ユーザーに利用してもらう。あるいは、右クリック拡張メニューに"IEで開く"
を作成し、利用してもらう。
御参考になれば幸いです。
魔界の仮面弁士"様"が抜けておりました。
大変失礼しました。
(余談ですが、魔界の仮面弁士様のレスには私の知らないすばらしいもの
が多く過去ログを読みあさって勉強させて頂いています。 m(_ _)m )
コマンドライン(またはShell関数)から
"explorer xxxx.html"
でいかがでしょうか?
みなさんどうもありがとうございます( *^-^* )
わたしが実現させたい機能は・・・
Htmlファイルは関連ファイルと一緒に1つの圧縮ファイルに
保存されVBプログラムによりサーバーに送られます。
受信者はVBプログラムによりそのファイルをサーバーから
取得し、解凍→画面表示・印刷・保存する、
といったものです。
解凍時はVBプログラミングでなんとかIEを起動させることが
できますよね。問題は別場所に保存したファイルを単独起
動させる場合なのです。
拡張子を変えてみる、という案もいいなと思いましたが
千人以上のユーザーに関連付けを設定してもらうのは難しく。
・必ずVBプログラムを介して起動する
・単独起動では表示を保障しない
という提案をして何とかIEで起動させたいと思います。
話題は変わりますが、
VBにHtmlソースを組み込んでHtmlファイルを作成するって
大変ですね。HtmlビルダとかDreamWeaverで作成したソースを
貼り付けているのですが、値を編集するところがセンスを
問われるところで・・。
はぎーさん、取りあえず問題解決とお考えでしたら"解決"の
チェックを入れられたら如何でしょうか?
なお、
>拡張子を変えてみる、という案もいいなと思いましたが
>千人以上のユーザーに関連付けを設定してもらうのは難しく。
はユーザー(納入先)の了解が得られるのであれば、VBのアプリに
レジストリに関連付けを登録(削除)するコマンドやメニューを
載せて、最初の時に設定していただく方法なら可能だと思いますが。
>話題は変わりますが、
>VBにHtmlソースを組み込んでHtmlファイルを作成するって
>大変ですね。HtmlビルダとかDreamWeaverで作成したソースを
>貼り付けているのですが、値を編集するところがセンスを
>問われるところで・・。
私の場合は、変数になるデータを、例えば
$$001data$$,$$002data$$,・・・と埋め込んで
あとでデータをReplaceします。
MSHtmlを参照して、tag,name などで処理することも
できるでしょうね。
あらゆるマルチメディア対応(必要に応じてプログラムパスと、属性名doc<尾>/xls<尾>/http<頭>/html <尾> を
データベース<単なるTxtファイル>に追加するだけで動作可能の
プログラムを作りました。
VB.NETですが、VB5,6に変換すれば使用可能。
リソース<DB> これを 例えば c:\Ect\Resource.txt に格納しておく
マルチメディアが増えれば、ここに登録追加
doc=Program-MicrosfoftWord;C:\Program Files\Microsoft Office\Office10\WINWORD.exe
vb=Program-MicrosfoftWordPad;C:\Program Files\Windows NT\Accessories\wordpad.exe
xls=Program-MicrosfoftExcel;C:\Program Files\Microsoft Office\Office10\EXCEL.exe
ppt=Program-MicrosfoftExcel;C:\Program Files\Microsoft Office\Office10\POWERPNT.exe
dtp=Program-MicrosfoftExcel;C:\Program Files\Acrobat\acrobatReader\ACReader.exe
html=Program-MicrosfoftExcel;C:\Program Files\Internet Explorer\IEXPLORE.exe
shtml=Program-MicrosfoftExcel;C:\Program Files\Internet Explorer\IEXPLORE.exe
jpg=Program-MicrosfoftExcel;C:\Program Files\Internet Explorer\IEXPLORE.exe
jpeg=Program-MicrosfoftExcel;C:\Program Files\Internet Explorer\IEXPLORE.exe
hml=Program-MicrosfoftExcel;C:\Program Files\Internet Explorer\IEXPLORE.exe
http=Program-MicrosfoftExcel;C:\Program Files\Internet Explorer\IEXPLORE.exe
txt=Program-MicrosfoftExcel;C:\Program Files\Windows NT\Accessories\wordpad.exe
wmp=Program-MicrosfoftExcel;C:\Program Files\Windows Media Player\wmplayer.exe
mpg=Program-MicrosfoftExcel;C:\Program Files\Windows Media Player\wmplayer.exe
wmv=Program-MicrosfoftExcel;C:\Program Files\Windows Media Player\wmplayer.exe
avi=Program-MicrosfoftExcel;C:\Program Files\Windows Media Player\wmplayer.exe
mpeg=Program-MicrosfoftExcel;C:\Program Files\Windows Media Player\wmplayer.exe
==============================
APP<パス取得> 目的プログラムの パスを取得起動APP
なお、これはサービスクラスの GetFileNameを使用する
SSVはサービスクラスのインスタンス
Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
TextBox50.Text = SSV.getFileName()
End Sub
***サービスクラス SSV のファイル名取得Function****
Public Function GetFileName() As String
With OpenFileDialog1
.CheckFileExists = False '存在するか確認
.RestoreDirectory = True 'ディレクトリの復元
.ReadOnlyChecked = True
.ShowReadOnly = True
.Filter = _
"すべてのファイル(*.*)|*.*|テキストファイル(*.txt)|*.txt"
.FilterIndex = 1 'Filterプロパティの2つ目を表示
'ダイアログボックスを表示し、[開く]をクリックした場合
If .ShowDialog = DialogResult.OK Then
'テキストファイルが選択されている場合はファイルを開く
getFileName = .FileName
Exit Function
End If
End With
End Function
====================================
APP<プログラム起動>
Private Sub Button27_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button27.Click
DPS.DocumentDisplay(TextBox50.Text)
End Sub
<<ここで DPS は ドキュメントプログラム管理クラスのインスタンス>
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
APP<リソースファイル解読とプログラム保持>
***ドキュメントプログラム管理クラス****
Public Class DocumentProcesser
Private RCS As ResourceAdmin
Private Program(50) As String
Private ProgramPass(50) As String
Private ProgramCount As Integer
Private ResourceFileName As String
Private SSV As SystemSourvice
Private FN As Integer
Public Sub New(ByVal rcs_data As ResourceAdmin, ByVal ssv_data As SystemSourvice, ByVal file As String)
' MsgBox("Document Process new File Name=" & file)
RCS = rcs_data
SSV = ssv_data
ResourceFileName = file
If GetResource() = False Then
MsgBox("プロセッサークラス初期処理でエラーが発生しました。")
End
End If
End Sub
Private Function GetResource() As Boolean
Dim SS, Word1, Word2, Word3 As String
Dim i, j, PointCounter As Integer
GetResource = True
ProgramCount = 0
PointCounter = 0
FN = FreeFile()
Try
FileOpen(FN, ResourceFileName, OpenMode.Input)
Catch ex As System.IO.FileNotFoundException
MsgBox("リソースファイル(" & ResourceFileName & ")がみあたりません。")
GetResource = False
Finally
End Try
If GetResource = False Then
Exit Function
End If
For i = 1 To 256
SS = LineInput(FN)
Word1 = SSV.GetNextWord(SS, 1)
Word2 = SSV.GetNextWord(SS, 2)
Word3 = SSV.GetNextWord(SS, 3)
If Microsoft.VisualBasic.Left(Word2, 8) = "Program-" Then
ProgramCount = ProgramCount + 1
Program(ProgramCount) = Word1
ProgramPass(ProgramCount) = Word3
PointCounter = PointCounter + 1
End If
If EOF(FN) = True Then
FileClose(FN)
Exit For
End If
Next
End Function
Public Sub DocumentDisplay(ByVal DocPass As String)
Dim i, jk As Integer
Dim ExpandStr, Headstr As String
ExpandStr = SSV.GetLastWord(DocPass)
Headstr = SSV.GetHeadWord(DocPass)
For i = 1 To ProgramCount
If ExpandStr = Program(i) Or Headstr = Program(i) Then
' If Program(i) = "http" And Microsoft.VisualBasic.Right(DocPass, 1) = "/" Then
' DocPass = DocPass & "index.html"
' End If
' MsgBox("Program Id:" & Program(i) & " Pass" & ProgramPass(i))
'MsgBox("DOCPass:" & DocPass)
Shell(ProgramPass(i) & " " & DocPass, AppWinStyle.NormalFocus)
Exit Sub
End If
Next
MsgBox("指定のデータ : " & DocPass & Chr(13) & "を表示するプログラムの登録がありませんでした。")
End Sub
End Class
「解決」チェックを忘れていましたf(^_^;
みなさまありがとうございました
ツイート | ![]() |