Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

.NET embedded in IE

Pagina: 1
Acties:

  • ? ?
  • Registratie: Mei 2007
  • Niet online
En normale ActiveX schrijven met .NET is niet meer mogelijk, maar je kan wel een dll bestand met een UserControl als object gaan embedden in Internet Explorer.

Al de gedownloade voorbeeldjes werkten niet op mijn computer. Zoveel info is er ook niet over te vinden.

Na heel wat proberen lukte het dan opeens wel! De control kwam tevoorschijn in IE en mijn messagebox.show() werd aangeroepen!

Ik paste dll aan, maakte een nieuwe build en zette de overschreef de oude dll met de nieuwe.
Ik druk F5 in Internet Explorer => noppes, object werd niet meer getoond.

Ik heb de pagina toen via de share opgeroepen \\server\c$\webroot\test\test.htm enz en de dll geopend via UNC en gewoon via http, IE gesloten enz en opeens kwam de control opnieuw te voorschijn.

Ik heb de dll weer aangepast, maar nu gebeurt er niets meer :)

Volgens het beetje documentatie dat ik gevonden heb zou dit goed moeten werken:
code:
1
<object classid="http://server/test/dllTest.dll#dllTest.uc" width="800" height="300"></object>


Moet die DLL eerst geregistreerd worden ofzoiets ? (niet echt ervaring met dlls) of wat moet er gebeuren om mijn .NET in IE te laten lopen?

I know: ClickOnce is makkelijk, maar een embedded applicatie vind ik nog altijd gebruiksvriendelijker en 'cooler' ;)

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 19:45

TeeDee

CQB 241

Ik kan me voorstellen dat als er een exception is (of gewoon een fout) je ActiveX control niet getoond wordt.

Voor de volledigheid:
HTML:
1
2
3
     <object id="testControl" height="400" width="400"
         classid="/WebApplication1/TestControl.dll#test.TestControl">
     </object>

Persoonlijk zet ik altijd het id attribuut erbij.

[ Voor 52% gewijzigd door TeeDee op 19-10-2007 16:28 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • ? ?
  • Registratie: Mei 2007
  • Niet online
Ja dat klopt

Maar de 1ste en 2e versie van de dll waren zeker correct (simpele button en messagebox) en die werkte ook, maar na 'iets' te doen. Alleen weet ik niet wat :P Aan de serverkant (html bestand of dll) werd niks veranderd toen het opeens van 'werkt niet' naar 'werkt wel' ging

Ook aan mijn IE settings heb ik toen niets veranderd.. vandaar mijn verwondering

De syntax is toch ook: ?

classid=Filename#ProjectName.ClassName

[ Voor 20% gewijzigd door ? ? op 19-10-2007 16:33 ]


  • ? ?
  • Registratie: Mei 2007
  • Niet online
Code in VB.NET 2005:
Project noemt dllTest
- Class1.vb doet niets
- uc.vb met deze code:
code:
1
2
3
4
5
6
Imports System.Windows.Forms
Public Class uc
    Private Sub uc_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MessageBox.Show("test")
    End Sub
End Class


Werkt dus weer niet :(

[ Voor 5% gewijzigd door ? ? op 19-10-2007 16:37 ]


  • ? ?
  • Registratie: Mei 2007
  • Niet online
1. Ik open de webpagina http://server/test/test.htm
- er gebeurt niets, ik zie een object, maar dat is niet geladen

2. Ik ga naar de url http://server/test/dllTest.dll#dllTest.uc en open de dll (verder gebeurt er niets, want Windows zoekt naar een programma om de DLL te openen, ik annuleer dan)
- het object is nog steeds niet werkend, ook niet na een refresh

3. Ik sluit de browser, heropen en ga terug naar http://server/test/test.htm
- Alles werkt !

Waarom?
Ik gebruik atm VB.NET 2005 Express

[ Voor 4% gewijzigd door ? ? op 22-10-2007 09:50 ]


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 19:45

TeeDee

CQB 241

Krijg je geen ActiveX meldingen in IE?
Misschien dat door het direct aanroepen van de DLL het e.e.a in een cache ergens gezet wordt en dat je app het daardoor wel doet.

Waarom doet Class1.vb niets?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 31-10 11:58
offtopic:
Je eigen topic kicken binnen 24 uur is niet gewenst, gebruik daarvoor de edit knop

Je had deze tutorial al gevonden?
One major thing to note about this user control is that it does not use any system colours. The colour of the form, panel and the textbox are all defined in this control. This is an important thing to note because if anything is set to system colours, the control will not load in the browser.

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


  • ? ?
  • Registratie: Mei 2007
  • Niet online
Jep, ik kreeg dus een leeg object met zo'n OLE icoontje.
Class1.vb is leeg en mag weg, maakt geen verschil uit.

Update:
Alles hierboven heb ik in IE6.0 gedaan (had laptop geformatteerd), ik heb net IE 7.0 gedownload en nu werkt dat zonder enig probleem.
Om gek te worden!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 18-11 20:57
Een classid moet voor zover ik weet een GUID zijn om je object te identificeren, geen pad ernaartoe. Om het te laten installeren kun je wel parameters opgeven, codebase dacht ik.

We are shaping the future

Pagina: 1