WebBrowserのことで・・・
投稿者 O-157  (その他)
投稿日時
2011/6/18 20:59:24
>WindowsフォームアプリケーションのWebBrowserでタスクバーに表示される文字や
>ひだりうえのアプリケーション名が表示されるところに
>開いているウェブサイト名-アプリ名
>と言う風に表示させられますか?
このコードを追加してください。
>後、そのWebBrowserでしかみることのできないページを作成することは可能でしょうか?
そればっかりは無理です。自分しか見ることの出来ないページを簡単に作ることは可能ですので、それを紹介します。
HTMLファイルを作ります。
ハードディスクに保存します
ページのアドレスをそのファイルのパスにします
これで自分にしか見れないページを作ることはできます。
>ひだりうえのアプリケーション名が表示されるところに
>開いているウェブサイト名-アプリ名
>と言う風に表示させられますか?
このコードを追加してください。
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からは表示できちゃいますけれどね。
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」というファイルを作り,次の文字列をコピーして保存します。
次に,以下のコードを実行します。
すると,
「暗号化されたホームページを解読して表示する。」
と表示されるはずです。
このページはどんなブラウザでもアクセスはできますが,内容を表示できるのはこのブラウザだけです。
だいぶ無理があるやり方ですが,一応条件を満たしていると思います。どうでしょうか。
ページ全体を暗号化しておき,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.Object, ByVal 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 Object, ByVal 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 String, ByVal length As Integer) As 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 String) As 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 String) As 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>
<html>
<head>
</head>
<body>
暗号化されたホームページを解読して表示する。
</body>
</html>
ひだりうえのアプリケーション名が表示されるところに
開いているウェブサイト名-アプリ名
と言う風に表示させられますか?
後、そのWebBrowserでしかみることのできないページを作成することは可能でしょうか?