Bladwijzer balk - Pagina openen

Status
Niet open voor verdere reacties.

creative

Gebruiker
Lid geworden
25 dec 2006
Berichten
298
Beste mede forummer's
Ik heb een webbrowser gemaakt en werkt bijna volledig. Nu alleen voor de bladwijzer balk
als je op de knop van je bladwijzer klikt dat hij dan de pagina in Webbrowser1 opent.

Iemand een idee hoe je zo iets moet maken ?


Bladwijzer Favoriet laden van XML
Code:
    Private Sub maak_bladwijzer_load()


        Dim Dir As New IO.DirectoryInfo(Application.StartupPath + "\settings\")
        MsgBox(Dir.ToString)

        Dim Files As IO.FileInfo() = Dir.GetFiles()
        Dim File As IO.FileInfo

        For Each File In Files
            REM MsgBox(File.Name)




            Dim doc As New XmlDocument

            doc.Load(Application.StartupPath + "\settings\" & File.Name)
            Dim naam As XmlNode = doc.SelectSingleNode("root/naam")
            Dim url As XmlNode = doc.SelectSingleNode("root/url")
            Dim ico As XmlNode = doc.SelectSingleNode("root/ico")
            If naam IsNot Nothing Then
            

                Dim blad_wijzer As New ToolStripButton
                Dim blad_text As String = naam.InnerText
                Dim blad_url As String = url.InnerText
                Dim blad_ico As String = ico.InnerText
                blad_wijzer.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText

                blad_wijzer.Text = blad_text
                blad_wijzer.Image = Image.FromFile(ico.InnerText)
                tsmBladwijzer_Balk.Items.Add(blad_wijzer)

                blad_wijzer.Text = blad_text
                tsmBladwijzer_Balk.Items.Add(blad_wijzer)
            End If
        Next
    End Sub

Bladwijzer Favoriet maken
Code:
    Private Sub maak_bladwijzer()


        Try

            ' Bladwijzer in Toolmenu zetten
            Dim blad_wijzer As New ToolStripButton
            Dim blad_text As String = WebBrowser1.Document.Title
            Dim blad_url As String = WebBrowser1.Url.ToString
            Dim blad_ico As String = blad_text & ".ico"

            If File.Exists(blad_text & ".ico") Then
                MsgBox("U hebt " & blad_text & " al in uw bladbalk.")
            Else
                My.Computer.Network.DownloadFile(blad_url & "/favicon.ico", blad_text & ".ico")
                blad_wijzer.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText

                blad_wijzer.Text = blad_text
                blad_wijzer.Image = Image.FromFile(blad_text & ".ico")
                tsmBladwijzer_Balk.Items.Add(blad_wijzer)

                ' kijk als map bestaat.. zo niet dan maken we er 1
                If Not Directory.Exists(Application.StartupPath + "\settings") Then
                    MkDir(Application.StartupPath + "\settings")
                End If

                REM  Dim rand As New Random()
                REM  Dim number = rand.Next(1, 100)



                If Not File.Exists(Application.StartupPath + "\settings\" & blad_text & ".dll") Then
                    Dim streamwriter As New StreamWriter(Application.StartupPath + "\settings\" & blad_text & ".dll")
                    streamwriter.WriteLine("<root>")
                    streamwriter.WriteLine("<naam>" & blad_text & "</naam>")
                    streamwriter.WriteLine("<url>" & blad_url & "</url>")
                    streamwriter.WriteLine("<ico>" & blad_ico & "</ico>")
                    streamwriter.WriteLine("</root>")
                    streamwriter.Close()
                End If


            End If



        Catch ex As Exception

        End Try

    End Sub
 
Laatst bewerkt:
Google eens Ie7clone. Je kunt de source gratis downloaden. Volgens mij zit daar ook een bladwijzerbalk in.
Suc6:thumb:
 
Het ziet er leuk uit, maar ik kan dat stukje source niet vinden van de Bladwijzer balk, Van als je op dei bladwijzer knop klikt dat hij de pagina opent,
 
Laatst bewerkt:
als je wilt hartstikke bedankt :)

wat ik namelijk voor elkaar wil krijgen is als ik op de des betreffende bladwijzer klik dat hij dan die URL opent.

maar ik heb geen Idee hoe ?
 
Laatst bewerkt:
Bericht ook gepost op MSDN :) als ik daar bericht kijg dan laat ik het hier natuurlijk ook weten :)
 
Ik heb hem gevonden:
Hoofdform:
Code:
Imports System.IO
Imports System.Runtime.InteropServices

Public Class Form1
    Private fitm As ToolStripMenuItem

    'tbLinks = de toolbar
    Private Structure SHFILEINFO
        Public hIcon As IntPtr
        Public iIcon As Integer
        Public dwAttributes As Integer
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> _
        Public szDisplayName As String
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> _
        Public szTypeName As String
    End Structure

    Private Declare Auto Function SHGetFileInfo Lib "shell32.dll" _
            (ByVal pszPath As String, _
             ByVal dwFileAttributes As Integer, _
             ByRef psfi As SHFILEINFO, _
             ByVal cbFileInfo As Integer, _
             ByVal uFlags As Integer) As IntPtr

    Private Const SHGFI_ICON = &H100
    Private Const SHGFI_SMALLICON = &H1
    Private Const SHGFI_LARGEICON = &H0
    Private nIndex

    

    Private Sub LoadFavorites()
        Dim Path As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
        LoadLinkFolders(New System.IO.DirectoryInfo(Path & "\Links\"), Nothing)
        LoadLinksPath(Path & "\Links\", Nothing)


    End Sub







    Private Sub LoadLinkFolders(ByVal dirInfo As System.IO.DirectoryInfo, _
    ByVal oitm As ToolStripMenuItem)

        Dim fitm As ToolStripMenuItem
        Dim objDir As System.IO.DirectoryInfo

        For Each objDir In dirInfo.GetDirectories()
            fitm = New ToolStripMenuItem
            fitm.Text = objDir.Name
            fitm.Tag = ""

            If oitm Is Nothing Then
                tbLinks.Items.Add(fitm)
            Else

                oitm.DropDownItems.Add(fitm)
            End If

            If objDir.GetDirectories().Length = 0 Then

                LoadLinksPath(objDir.FullName, fitm)
            Else
              
                LoadLinkFolders(objDir, fitm)
                LoadLinksPath(objDir.FullName, fitm)
            End If
        Next objDir
    End Sub

    Private Sub LoadLinksPath(ByVal strPath As String, _
    ByVal mitm As ToolStripMenuItem)

        Dim oitm As ToolStripMenuItem
        Dim name As String
        Dim objDir As New System.IO.DirectoryInfo(strPath)
        Dim SmallIco As IntPtr
        Dim shinfo As SHFILEINFO
        shinfo = New SHFILEINFO

        Dim objFile As System.IO.FileInfo
        For Each objFile In objDir.GetFiles("*.url")
            oitm = New ToolStripMenuItem

            shinfo.szDisplayName = New String(Chr(0), 260)
            shinfo.szTypeName = New String(Chr(0), 80)

            SmallIco = SHGetFileInfo(objFile.FullName, 0, shinfo, _
                        Marshal.SizeOf(shinfo), _
                        SHGFI_ICON Or SHGFI_SMALLICON)

            name = Path.GetFileNameWithoutExtension(objFile.Name)
            Dim oIcon As Icon = System.Drawing.Icon.FromHandle(shinfo.hIcon)

            If mitm Is Nothing Then
                oitm.Text = name
                oitm.Image = oIcon.ToBitmap
                oitm.Tag = objFile.FullName
                tbLinks.Items.Add(oitm)

                AddHandler oitm.MouseDown, AddressOf HandleFavMouseDown
            Else
                oitm.Text = name
                oitm.Image = oIcon.ToBitmap
                oitm.Tag = objFile.FullName
                mitm.DropDownItems.Add(oitm)

                AddHandler oitm.MouseDown, AddressOf HandleFavMouseDown
            End If
        Next objFile
    End Sub


    Private Sub HandleFavMouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        Select Case e.Button
            Case Windows.Forms.MouseButtons.Left
                Dim fi As ToolStripMenuItem = sender
                Dim obj As New tlxIni(fi.Tag)
                WebBrowser1.Navigate(obj.GetString("INTERNETSHORTCUT", "URL", String.Empty))
            Case Windows.Forms.MouseButtons.Right

                fitm = sender
        End Select
    End Sub





    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        LoadFavorites()
    End Sub


End Class

Maak een class aan genaamd: tlxIni
Code:
Code:
Imports System.IO
Imports System.Collections
Imports Microsoft.VisualBasic
Imports System.Xml
Imports System.Text
Imports System.Windows.Forms


Public Class tlxIni

    Private Declare Ansi Function GetPrivateProfileString _
      Lib "kernel32.dll" Alias "GetPrivateProfileStringA" _
      (ByVal lpApplicationName As String, _
      ByVal lpKeyName As String, ByVal lpDefault As String, _
      ByVal lpReturnedString As System.Text.StringBuilder, _
      ByVal nSize As Integer, ByVal lpFileName As String) _
      As Integer
    Private Declare Ansi Function WritePrivateProfileString _
      Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _
      (ByVal lpApplicationName As String, _
      ByVal lpKeyName As String, ByVal lpString As String, _
      ByVal lpFileName As String) As Integer
    Private Declare Ansi Function GetPrivateProfileInt _
      Lib "kernel32.dll" Alias "GetPrivateProfileIntA" _
      (ByVal lpApplicationName As String, _
      ByVal lpKeyName As String, ByVal nDefault As Integer, _
      ByVal lpFileName As String) As Integer
    Private Declare Ansi Function FlushPrivateProfileString _
      Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _
      (ByVal lpApplicationName As Integer, _
      ByVal lpKeyName As Integer, ByVal lpString As Integer, _
      ByVal lpFileName As String) As Integer
    Dim strFilename As String

    Enum Sections
        [DEFAULT]
        InternetShortcut
    End Enum

    Enum Keys
        BASEURL
        ICON
        URL
    End Enum

    Public Sub New(ByVal Filename As String)
        strFilename = Filename
    End Sub


    ReadOnly Property FileName() As String
        Get
            Return strFilename
        End Get
    End Property

    Public Function GetString(ByVal Section As String, _
      ByVal Key As String, ByVal [Default] As String) As String
        Dim ret As String = String.Empty

        Try
            Dim intCharCount As Integer
            Dim objResult As New System.Text.StringBuilder(256)
            intCharCount = GetPrivateProfileString(Section, Key, _
               [Default], objResult, objResult.Capacity, strFilename)
            If intCharCount > 0 Then ret = _
               Left(objResult.ToString, intCharCount)
            Return ret

        Catch ex As Exception
            Return ex.Message.ToString
        End Try
    End Function

    Public Function GetInteger(ByVal Section As String, _
      ByVal Key As String, ByVal [Default] As Integer) As Integer

        Return GetPrivateProfileInt(Section, Key, _
           [Default], strFilename)
    End Function

    Public Function GetBoolean(ByVal Section As String, _
      ByVal Key As String, ByVal [Default] As Boolean) As Boolean

        Return (GetPrivateProfileInt(Section, Key, _
           CInt([Default]), strFilename) = 1)
    End Function

    Public Sub WriteString(ByVal Section As String, _
      ByVal Key As String, ByVal Value As String)

        WritePrivateProfileString(Section, Key, Value, strFilename)
        Flush()
    End Sub

    Public Sub WriteInteger(ByVal Section As String, _
      ByVal Key As String, ByVal Value As Integer)

        WriteString(Section, Key, CStr(Value))
        Flush()
    End Sub

    Public Sub WriteBoolean(ByVal Section As String, _
      ByVal Key As String, ByVal Value As Boolean)

        WriteString(Section, Key, CStr(CInt(Value)))
        Flush()
    End Sub

    Private Sub Flush()

        FlushPrivateProfileString(0, 0, 0, strFilename)
    End Sub

End Class

Suc6:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan