WebBrowserのことで・・・

タグの編集
投稿者 たいが  (社会人) 投稿日時 2011/6/18 16:08:35
WindowsフォームアプリケーションのWebBrowserでタスクバーに表示される文字や
ひだりうえのアプリケーション名が表示されるところに
開いているウェブサイト名-アプリ名
と言う風に表示させられますか?
後、そのWebBrowserでしかみることのできないページを作成することは可能でしょうか?
投稿者 O-157  (その他) 投稿日時 2011/6/18 20:59:24
>WindowsフォームアプリケーションのWebBrowserでタスクバーに表示される文字や
>ひだりうえのアプリケーション名が表示されるところに
>開いているウェブサイト名-アプリ名
>と言う風に表示させられますか?
このコードを追加してください。

    Private Sub WebBrowser1_DocumentCompleted() Handles WebBrowser1.DocumentCompleted
        Me.Text = Application.ProductName & "-" & WebBrowser1.DocumentTitle
    End Sub

>後、そのWebBrowserでしかみることのできないページを作成することは可能でしょうか? 
そればっかりは無理です。自分しか見ることの出来ないページを簡単に作ることは可能ですので、それを紹介します。
HTMLファイルを作ります。
ハードディスクに保存します
ページのアドレスをそのファイルのパスにします
これで自分にしか見れないページを作ることはできます。
投稿者 まだまだ  (高校生) 投稿日時 2011/6/19 01:21:20
>後、そのWebBrowserでしかみることのできないページを作成することは可能でしょうか? 
WebBrowserControlのUserAgentに例えば「TaigaBrowser」等と設定しておき、
表示する頁をPHP等で作成し、PHPなどでUserAgentを取得して
「TaigaBrowser」なら表示、違えば別の頁に飛ばす、という手を使えば一応可能かと思います。
ただ、「TaigaBrowser」というUserAgentを持つほかの人のBrowserからは表示できちゃいますけれどね。
投稿者 YAS  (社会人) 投稿日時 2011/6/20 23:48:55
>後、そのWebBrowserでしかみることのできないページを作成することは可能でしょうか? 

ページ全体を暗号化しておき,WebBrowserに読み込まれたタイミングで復号化して表示するという
アイディアはどうでしょう?

暗号化・復号化は次のサンプルをそのまま使った物です。
http://msdn.microsoft.com/ja-jp/library/ms172831(VS.80).aspx

まず,デスクトップに「HomePage.html」というファイルを作り,次の文字列をコピーして保存します。
lVwQGb3PcjN0n8o5jfMtkG7yQf9KusW+ehcwfqeNcUmh9xyDZjWLVbbYnY+RrbiUzvfbpRbhqfxDiIqr6i2EP05Bwy5oTFXv3kFdAkcXRf0o3IplTMiQJGOzK5Id/TKmxDvDPmfo9WXPjMFBqB+DPjaI0k2ygqawOIIJTurLZgQGL/XYR6ok+/qCK379qVuXBdiA+N4PC4U=


次に,以下のコードを実行します。

Imports System.Security.Cryptography

Public Class Form1

    Private WithEvents WebBrowser As New WebBrowser With {.Dock = DockStyle.Fill}

    Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
        Me.Controls.Add(WebBrowser)
        Me.WebBrowser.Navigate(My.Computer.FileSystem.SpecialDirectories.Desktop & "\HomePage.html")
    End Sub

    Private Sub WebBrowser_DocumentCompleted(ByVal sender As ObjectByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser.DocumentCompleted
        If Me.WebBrowser.Url.ToString <> "about:blank" Then
            Dim cipherText As String = Me.WebBrowser.DocumentText
            Dim password As String = "VB2010"
            Dim wrapper As New Simple3Des(password)
            Dim plainText As String = wrapper.DecryptData(cipherText)
            Me.WebBrowser.DocumentText = plainText
        End If
    End Sub

End Class


Public NotInheritable Class Simple3Des

    Private TripleDes As New TripleDESCryptoServiceProvider

    Private Function TruncateHash(ByVal key As StringByVal length As IntegerAs Byte()
        Dim sha1 As New SHA1CryptoServiceProvider
        Dim keyBytes() As Byte = System.Text.Encoding.Unicode.GetBytes(key)
        Dim hash() As Byte = sha1.ComputeHash(keyBytes)
        ReDim Preserve hash(length - 1)
        Return hash
    End Function

    Sub New(ByVal key As String)
        TripleDes.Key = TruncateHash(key, TripleDes.KeySize \ 8)
        TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8)
    End Sub

    Public Function EncryptData(ByVal plaintext As StringAs String
        Dim plaintextBytes() As Byte = System.Text.Encoding.Unicode.GetBytes(plaintext)
        Dim ms As New System.IO.MemoryStream
        Dim encStream As New CryptoStream(ms, TripleDes.CreateEncryptor(), System.Security.Cryptography.CryptoStreamMode.Write)
        encStream.Write(plaintextBytes, 0, plaintextBytes.Length)
        encStream.FlushFinalBlock()
        Return Convert.ToBase64String(ms.ToArray)
    End Function

    Public Function DecryptData(ByVal encryptedtext As StringAs String
        Dim encryptedBytes() As Byte = Convert.FromBase64String(encryptedtext)
        Dim ms As New System.IO.MemoryStream
        Dim decStream As New CryptoStream(ms, TripleDes.CreateDecryptor(), System.Security.Cryptography.CryptoStreamMode.Write)
        decStream.Write(encryptedBytes, 0, encryptedBytes.Length)
        decStream.FlushFinalBlock()
        Return System.Text.Encoding.Unicode.GetString(ms.ToArray)
    End Function

End Class


すると,
「暗号化されたホームページを解読して表示する。」
と表示されるはずです。
このページはどんなブラウザでもアクセスはできますが,内容を表示できるのはこのブラウザだけです。
だいぶ無理があるやり方ですが,一応条件を満たしていると思います。どうでしょうか。
投稿者 YAS  (社会人) 投稿日時 2011/6/20 23:51:30
なお,上の例は次のようなHTMLを暗号化したものです。

<html>
<head>
</head>
<body>
暗号化されたホームページを解読して表示する。
</body>
</html>