Hej! >Själv misstänker jag att det har att göra med placeringen av Interop.SHDocVw.dll: kör jag .exe-filen inifrån /bin-mappen så finns ju filen där (likaså när jag kör debug inifrån VS.NET), men inte när jag kopierar .exe-filen till exempelvis skrivbordet. Inkludera alla DLL-filer...som i kopiera DLL-filen och distribuera den tillsammans med .exe.filen? Eller är det något i koden jag glömt? Nipp, den dll-en är skapad speciellt för din app eftersom att den fungerar som ett lager mellan din com-komponent och vanligt .NET... Dvs. ditt program anropar interopt-dll'en, interopt-dll'en anropar com-komponenten. Det är bara com-komponenten som finns på varje system som har ie... du kan ju alltid signera den och kasta in den i GAC ...fast den måste fortfarande distribueras...Fel uppstår när jag blandar in COM-komponent!?
Kan någon vänlig själ tala om för mig varför nedanstående kod genererar ett fel när jag kör .exe-filen UTANFÖR /bin-mappen?
Själv misstänker jag att det har att göra med placeringen av Interop.SHDocVw.dll: kör jag .exe-filen inifrån /bin-mappen så finns ju filen där (likaså när jag kör debug inifrån VS.NET), men inte när jag kopierar .exe-filen till exempelvis skrivbordet.
Quite annoying om man säger så, varför hjälp gärna mottages!
/Marcus
<code>
' Har tidigare, via Project >> Add Reference, lagt till
' COM-komponenten Microsoft Internet Controls 1.1
Module mdlStartModule
Public Sub Main()
' Lägger in felhanterare för att
' undvika programkrascher
Try
' Deklarerar variable för Internet Explorer-objekt
Dim Explorer As SHDocVw.InternetExplorer
' Deklarerar variabel för att spara värdet
' på den inmatade URL:en
Dim strURL As String
' Hämtar in värdet på inmatad URL, för att veta
' vilken webbsida som ska visas
strURL = InputBox("Please enter the URL of" & Chr(10) _
& "the website you want to visit:", _
"Enter URL")
' Testar olika värden på inmatad URL
If strURL = "" Then
' Om strängen är tom så ska ingenting hända
Exit Sub
Else
' Om strängen INTE är tom så ska ett nytt
' Internet Explorer-objekt skapas och
' samtidigt visa rätt webbsida (i lagom
' stort fönster) beroende på inmatad URL
Explorer = New SHDocVw.InternetExplorer
Explorer.Navigate(strURL)
Explorer.Width = 800
Explorer.Height = 600
Explorer.Visible = True
End If
Catch
MessageBox.Show(Err.Description, _
"An error occurred", _
MessageBoxButtons.OK, _
MessageBoxIcon.Error)
End Try
End Sub
End Module
</code>Sv: Fel uppstår när jag blandar in COM-komponent!?
Ja kopierar du EXE filen och kör den någon annanstans ifrån får du se till att inkludera alla DLL filer den beror på också.
MSSv: Fel uppstår när jag blandar in COM-komponent!?
Själv tycker jag det låter omständigt om man ska behöva flytta runt DLL-filen med .exe-filen eftersom DLL-filen i det här fallet finns på alla system som har Internet Explorer installerat.
/MarcusSv: Fel uppstår när jag blandar in COM-komponent!?
Sv: Fel uppstår när jag blandar in COM-komponent!?
Sv: Fel uppstår när jag blandar in COM-komponent!?