tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^7: WebBrowserコントロールによるWebページにつきまして
投稿日: 2018/02/14(Wed) 14:22
投稿者魔界の仮面弁士
> 質問の意味はレジストリ変更を実行ファイルに含ませる様な事はできないものかと思いましたが、

実行時に設定することも出来ますよ。たとえば

 regKey = "HKCU\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION\"
 regKey = regKey & App.EXEName & ".exe"
 On Error Resume Next
 value = CreateObject("WScript.Shell").RegRead(regKey)
 On Error GoTo 0
 MsgBox value

のようにして現在値を読み取ったり、

 CreateObject("WScript.Shell").RegWrite regKey, 9999&, "REG_DWORD"

としてレジストリに書き込んだりすることができます。


といっても、設定反映にはアプリの再起動が必要なので、
必要に応じて、再起動の処置を組み込む必要はあります。


Public Sub Main()
 'ここが上記のレジストリ書き換え処理。レジストリを修正した場合は True、無加工なら False を返す。
 If FixFeatureBrowserEmulation() Then

  'レジストリ設定が変更されたので再起動
  Call Restart()
  '自分自身は、後は何もせずにアプリ終了
  Exit Sub
 End If
    
 '
 'レジストリが変更済みの場合は、ここに到達するので、
 '本来の処理(フォームの起動など)をここに記述しておく。
 '
End Sub

'自身をもう一つ起動する。ここには自身の終了処理は含まれない。
Private Sub Restart()
 Dim s As String
 s = App.Path
 If Right(s, 1) <> "\" Then
  s = s & "\"
 End If
 s = """" & s & App.EXEName & ".exe"" " & Command()
 Shell s, vbNormalFocus
End Sub



上記は、exe から実行した場合向けのコードとなっています。

上記を応用すれば、vb6.exe の登録も同様に組み込めるのですが、デバッグ実行時に
開発中のプロジェクトが再起動させてしまうのも、いささか都合が悪いかと思いますので、
開発環境の vb6.exe については、手動で登録を行った方が良いと思います。


> レンダリングの意味を知り矛盾を感じて修正により途中で削除致しました。

この手のレジストリ操作はアプリ実行時にはなく、
アプリケーションのインストーラーに任せるのが良いでしょうね。

ちなみに FEATURE_BROWSER_EMULATION の設定ですが、
HKEY_CURRENT_USER の代わりに HKEY_LOCAL_MACHINE に組み込むこともできます。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。