een html pagina openen met visual basic.
- foxxy girl
- Pro Member
- Berichten: 322
- Lid geworden op: 05 jun 2004, 20:59
- Locatie: geel
ik ben ietsje aan het maken. niet heel moeilijk maar met mijn beperkte kennis kom ik er weer niet uit.
ik wil een tekst "open de pagina" en als ik daarop klik moet een html pagina geladen worden. (het word later wss op een cd'tje gebrand)
kan je dan een form laden met daarin een html pagina? en hoe?
of kan je enkel een internet browser laten openen met daarin de html pagina?
de html-pagina staat nu op de harde schijf, maar word later mee op het cd'tje gebrand.
ik wil een tekst "open de pagina" en als ik daarop klik moet een html pagina geladen worden. (het word later wss op een cd'tje gebrand)
kan je dan een form laden met daarin een html pagina? en hoe?
of kan je enkel een internet browser laten openen met daarin de html pagina?
de html-pagina staat nu op de harde schijf, maar word later mee op het cd'tje gebrand.
groetjes foxxy
Herm, vba, VB5, VB6, VB.net 2002, VB.net 2003?
"We are the Borg. Lower your shields and surrender your ships. We will add your biological and technological distinctiveness to our own. Your culture will adapt to service us. Resistance is futile."
- foxxy girl
- Pro Member
- Berichten: 322
- Lid geworden op: 05 jun 2004, 20:59
- Locatie: geel
vb6
groetjes foxxy
-
- Elite Poster
- Berichten: 1158
- Lid geworden op: 03 maa 2004, 09:04
- Uitgedeelde bedankjes: 18 keer
- Bedankt: 16 keer
Foxxy girl,
Dit zal waarschijnlijk een beetje Chinees zijn, maar via een API functie kan je dit in 2 regeltjes code oplossen.
API functies zijn functies die in standaard DLL's van Windows zitten.
Ik heb de code voor jou uitgeschreven zodat http://www.userbase.be wordt geopend met de default browser (hoeft dus niet IE te zijn).
Dit zal waarschijnlijk een beetje Chinees zijn, maar via een API functie kan je dit in 2 regeltjes code oplossen.
API functies zijn functies die in standaard DLL's van Windows zitten.
Ik heb de code voor jou uitgeschreven zodat http://www.userbase.be wordt geopend met de default browser (hoeft dus niet IE te zijn).
Code: Selecteer alles
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub Command1_Click()
ShellExecute Me.hwnd, "open", "http://www.userbase.be", vbNullString, vbNullString, 1
End Sub
Het voor- of nadeel (net hoe ge het bekijkt) van de API-calls is dat de standaard ingestelde browser op een gebruikers machine wordt geopend. Is die er niet dan wordt er niets getoond (zal tegenwoordig wel nie snel gebeuren). Met de webbrowser control van VB hou je alles binnen je eigen programma wat voordelen kan hebben.
-
- Elite Poster
- Berichten: 1158
- Lid geworden op: 03 maa 2004, 09:04
- Uitgedeelde bedankjes: 18 keer
- Bedankt: 16 keer
Indien een extensie niet gekend is, kan je ook vrij eenvoudig de 'Open With..."-dialog openen zodat de gebruiker zelf een programma kan kiezen om het bestand te openen.
VB6 is gericht op de Windows-markt, en gezien Internet Explorer standaard in Windows zit, lijkt me dit in dit geval eigenlijk totaal geen probleem.
Nadeel van die webbrowser control is dan weer dat je alle navigatie-knoppen nog zelf moet voorzien (address-bar, next, previous, ...).
Hangt allemaal een beetje af van wat de gevraagde functionaliteiten zijn, beide hebben ze hun voor- en nadelen.
Foxxy,
Wens je gebruik te maken van deze control, ga dan naar Project > Components.
Selecteer in dit venster 'Microsoft Internet Controls' en klik op OK.
Nu heb je de webbrowser control in je toolbox staan. Zet deze op je form in de gewenste grootte en voeg volgende code toe:
Dan kan je zelf kiezen welk van de twee je wil gebruiken.
VB6 is gericht op de Windows-markt, en gezien Internet Explorer standaard in Windows zit, lijkt me dit in dit geval eigenlijk totaal geen probleem.
Nadeel van die webbrowser control is dan weer dat je alle navigatie-knoppen nog zelf moet voorzien (address-bar, next, previous, ...).
Hangt allemaal een beetje af van wat de gevraagde functionaliteiten zijn, beide hebben ze hun voor- en nadelen.
Foxxy,
Wens je gebruik te maken van deze control, ga dan naar Project > Components.
Selecteer in dit venster 'Microsoft Internet Controls' en klik op OK.
Nu heb je de webbrowser control in je toolbox staan. Zet deze op je form in de gewenste grootte en voeg volgende code toe:
Code: Selecteer alles
Private Sub Form_Load()
WebBrowser1.Navigate2 "http://www.userbase.be"
End Sub
Dan kan je zelf kiezen welk van de twee je wil gebruiken.
- foxxy girl
- Pro Member
- Berichten: 322
- Lid geworden op: 05 jun 2004, 20:59
- Locatie: geel
hey bedankt, dat is wat ik zocht.
ik heb nog wel een vraagje.
ik heb al gezegt dat ik het op een cd'tje ga branden.
moet ik dan om de html pagina van de cd te openen typen ../fotos/pagina.html ?
want als ik het op een cd brand en ik typ f:/fotos/pagina.html of g:/fotos/pagina.html.
dan weet ik niet of het lukt om dat niet bij iedereen het schijfstation de zelfde naam heeft.
ik heb nog wel een vraagje.
ik heb al gezegt dat ik het op een cd'tje ga branden.
moet ik dan om de html pagina van de cd te openen typen ../fotos/pagina.html ?
want als ik het op een cd brand en ik typ f:/fotos/pagina.html of g:/fotos/pagina.html.
dan weet ik niet of het lukt om dat niet bij iedereen het schijfstation de zelfde naam heeft.
groetjes foxxy
-
- Elite Poster
- Berichten: 1158
- Lid geworden op: 03 maa 2004, 09:04
- Uitgedeelde bedankjes: 18 keer
- Bedankt: 16 keer
Op zich hoeft dit geen probleem te zijn. Op het moment dat het programma draait, kan je gewoon via App.Path vragen in welke directory het staat.
Gezien ik niet weet welke van de 2 systemen je hebt gekozen, heb ik in beide samengezet in onderstaand voorbeeld:
Gezien ik niet weet welke van de 2 systemen je hebt gekozen, heb ik in beide samengezet in onderstaand voorbeeld:
Code: Selecteer alles
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub Form_Load()
Dim strDrive As String
strDrive = Left(App.Path, 3)
WebBrowser1.Navigate2 strDrive & "Fotos/Pagina.html"
ShellExecute Me.hwnd, "open", "Pagina.html", vbNullString, strDrive & "Fotos", 1
End Sub
- foxxy girl
- Pro Member
- Berichten: 322
- Lid geworden op: 05 jun 2004, 20:59
- Locatie: geel
ik heb de tweede gebruikt. voor mij leek dat het gemakkelijkste.
bedankt voor de hulp en als het niet lukt dan mogen jullie nog wat helpen.
thanks
bedankt voor de hulp en als het niet lukt dan mogen jullie nog wat helpen.
thanks
groetjes foxxy
- foxxy girl
- Pro Member
- Berichten: 322
- Lid geworden op: 05 jun 2004, 20:59
- Locatie: geel
hey,
ben het aan het uittesten, maar er zit toch nog een foutje in.
als ik deze code gebruik.
waaruit ik dus de regel
heb gewist.
krijg ik steeds de foutmelding dat hij de pagina niet kan vinden.
welke gegevens moet ik veranderen.
de map waarin het project staat is ook de map waarin de map "fotos" staat, dus het zou allemaal moeten kloppen.
ben het aan het uittesten, maar er zit toch nog een foutje in.
als ik deze code gebruik.
Code: Selecteer alles
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub Form_Load()
Dim strDrive As String
strDrive = Left(App.Path, 3)
WebBrowser1.Navigate2 strDrive & "Fotos/slideshow.htm"
End Sub
waaruit ik dus de regel
Code: Selecteer alles
ShellExecute Me.hwnd, "open", "Pagina.html", vbNullString, strDrive & "Fotos", 1
heb gewist.
krijg ik steeds de foutmelding dat hij de pagina niet kan vinden.
welke gegevens moet ik veranderen.
de map waarin het project staat is ook de map waarin de map "fotos" staat, dus het zou allemaal moeten kloppen.
groetjes foxxy
- foxxy girl
- Pro Member
- Berichten: 322
- Lid geworden op: 05 jun 2004, 20:59
- Locatie: geel
dat maakt geen verschil.
ik heb al wel gemerkt dat als ik
verander in
ik een foutmeliding krijg met de tekst "kan c:/fotos/slideshow.html niet vinden"
en als ik
gebruik. dan krijg ik de form met de melding "getaway timeout"
dus ik denk dat het daar wel iets mee te maken heeft
ik heb al wel gemerkt dat als ik
Code: Selecteer alles
strDrive = Left(App.Path, 3)
verander in
Code: Selecteer alles
strDrive = Left(App.Path, 2)
ik een foutmeliding krijg met de tekst "kan c:/fotos/slideshow.html niet vinden"
en als ik
Code: Selecteer alles
strDrive = Left(App.Path, 1)
gebruik. dan krijg ik de form met de melding "getaway timeout"
dus ik denk dat het daar wel iets mee te maken heeft
groetjes foxxy
-
- Elite Poster
- Berichten: 1158
- Lid geworden op: 03 maa 2004, 09:04
- Uitgedeelde bedankjes: 18 keer
- Bedankt: 16 keer
Deze code was bedoeld om rechtstreeks onder de root van een schijf (bijvoorbeeld CD-rom) te draaien.
Als je dit wil testen vanop je C-schijf, dan moet je er voor zorgen dat de folder Fotos met het bestand Slideshow.html zich onder de root bevindt.
Dus C:\Fotos\Slideshow.html moet bestaan.
Dit omdat ik van de veronderstelling was uitgegaan dat de map Fotos onder de root van de CD ging staan (bijv: E:\Fotos).
Indien de folder Fotos een subfolder zal zijn van de folder van de applicatie zelf, kan je de code aanpassen als volgt:
Note: De slash stond inderdaad in de verkeerde richting in de vorige code, maar de web-control maakt hier, net als IE, geen probleem van.
Als je dit wil testen vanop je C-schijf, dan moet je er voor zorgen dat de folder Fotos met het bestand Slideshow.html zich onder de root bevindt.
Dus C:\Fotos\Slideshow.html moet bestaan.
Dit omdat ik van de veronderstelling was uitgegaan dat de map Fotos onder de root van de CD ging staan (bijv: E:\Fotos).
Indien de folder Fotos een subfolder zal zijn van de folder van de applicatie zelf, kan je de code aanpassen als volgt:
Code: Selecteer alles
Private Sub Form_Load()
Dim strDrive As String
strDrive = App.Path
If Right(strDrive, 1) <> "\" Then strDrive = strDrive & "\"
WebBrowser1.Navigate2 strDrive & "Fotos\Pagina.html"
End Sub
Note: De slash stond inderdaad in de verkeerde richting in de vorige code, maar de web-control maakt hier, net als IE, geen probleem van.
- foxxy girl
- Pro Member
- Berichten: 322
- Lid geworden op: 05 jun 2004, 20:59
- Locatie: geel
bedankt, hij doet het weer.
ik dacht dat het zo gemaakt was dat hij de pagina zocht vanuit de map waarin het project zelf stond.
ik dacht dat het zo gemaakt was dat hij de pagina zocht vanuit de map waarin het project zelf stond.
groetjes foxxy
- foxxy girl
- Pro Member
- Berichten: 322
- Lid geworden op: 05 jun 2004, 20:59
- Locatie: geel
ik heb weer een vraagje, maar ik denk dat het deze keer niet mogelijk is.
het gaat verder over deze topic daarom dat ik het hier post.
ik heb enkele html-pagina's die in zo'n browser control geladen worden.
nu is mijn vraag of het mogelijk is om de grote van een html pagina (normaal gewoon het scherm op resolutie 1024*768 helemaal gevuld)
aan te passen zodat ze juist in de control past.
dit om er voor te zorgen dat je met een schermresolutie van 800*600 de pagina ook in één keer kan bekijken.
thank u
het gaat verder over deze topic daarom dat ik het hier post.
ik heb enkele html-pagina's die in zo'n browser control geladen worden.
nu is mijn vraag of het mogelijk is om de grote van een html pagina (normaal gewoon het scherm op resolutie 1024*768 helemaal gevuld)
aan te passen zodat ze juist in de control past.
dit om er voor te zorgen dat je met een schermresolutie van 800*600 de pagina ook in één keer kan bekijken.
thank u
groetjes foxxy
-
- Elite Poster
- Berichten: 1158
- Lid geworden op: 03 maa 2004, 09:04
- Uitgedeelde bedankjes: 18 keer
- Bedankt: 16 keer
Als het een HTML-pagina is waar je zelf geen toegang tot de source hebt, dan zal het moeilijk gaan.
Is het een eigen pagina, dan zal je in de HTML-code moeten duiken zodat alles op de gewenste resolutie past.
Is het een eigen pagina, dan zal je in de HTML-code moeten duiken zodat alles op de gewenste resolutie past.
- foxxy girl
- Pro Member
- Berichten: 322
- Lid geworden op: 05 jun 2004, 20:59
- Locatie: geel
khsw schreef:Als het een HTML-pagina is waar je zelf geen toegang tot de source hebt, dan zal het moeilijk gaan.
Is het een eigen pagina, dan zal je in de HTML-code moeten duiken zodat alles op de gewenste resolutie past.
ik kan zelf aan de source, maar wat bedoel je met duiken?
het zen wel een stuk of vijftig pagina's.
groetjes foxxy
-
- Elite Poster
- Berichten: 1158
- Lid geworden op: 03 maa 2004, 09:04
- Uitgedeelde bedankjes: 18 keer
- Bedankt: 16 keer
Gewoon, dat je de HTML-code zult moeten aanpassen. Desnoods via een editor zoals Frontpage of Dreamweaver om er voor te zorgen dat alles past op 800x600.
50 pagina's is wel veel. Is 800x600 echt een vereiste? 1024x768 begint langzamerhand een beetje de standaard te worden...
50 pagina's is wel veel. Is 800x600 echt een vereiste? 1024x768 begint langzamerhand een beetje de standaard te worden...
- foxxy girl
- Pro Member
- Berichten: 322
- Lid geworden op: 05 jun 2004, 20:59
- Locatie: geel
Snakehit schreef:of te wel moet je een functie inbouwen die zelf de resolutie kan bepalen veel gemakkelijker gewoon uw sites op verschillende resoluties bouwen. Zodat alles kan gebruikt worden.?
kan je hier iets meer uitleg over geven? mss dat dit nog de beste oplossing is.
en khsw: het is wel vrij noodzakkelijk om dat ik het aan een groepje mensen moet geven, en ik weet dat die nog een resolutie hebben van 800*600. en ik denk de meeste laptob's (niet voor profesionele mensen dan) ook nog een scherm hebben waar je het beste 800*600 kan kiezen.
groetjes foxxy
-
- Administrator
- Berichten: 4143
- Lid geworden op: 15 sep 2002, 09:08
- Locatie: Belgium, Haacht
- Contacteer:
- foxxy girl
- Pro Member
- Berichten: 322
- Lid geworden op: 05 jun 2004, 20:59
- Locatie: geel
SeNsEi Ze0n schreef:de laptops van tegenwoordig hebben minimum 1024*xxx de meesten zelfse 1240*xxx
ja, dat kan wel zijn. weet ik zelf eigenlijk niet zo goed, maar maakt niet uit want ik wil ze toch op 800*600 zetten. toch bedankt
groetjes foxxy
-
- Premium Member
- Berichten: 725
- Lid geworden op: 26 apr 2004, 10:39
- Locatie: Neerpelt
- Uitgedeelde bedankjes: 16 keer
- Bedankt: 6 keer
- Contacteer:
Hallo, ik zou hier een vervolg aan willen breien...
In VB6 ben ik een menu aan't maken, dat via shellexecute ofwel een programma kan openen, ofwel de browser opent en naar een url gaat.
Dat werkt allemaal.
Maar... ik zou graag bij het aanklikken van een knop van dat menu eerst controleren of dat window nog open staat van een vorige keer, en als dat zo is dat 'oude' window de focus geven en naar voor halen ipv opnieuw openen.
In VB6 ben ik een menu aan't maken, dat via shellexecute ofwel een programma kan openen, ofwel de browser opent en naar een url gaat.
Dat werkt allemaal.
Maar... ik zou graag bij het aanklikken van een knop van dat menu eerst controleren of dat window nog open staat van een vorige keer, en als dat zo is dat 'oude' window de focus geven en naar voor halen ipv opnieuw openen.