webForumDet fria alternativet

Infoga en ActiveX-kontroll på en webbsida

.NET

5 svar · 304 visningar · startad av Xyzi

Medlem sedan mars 20034 inlägg
Frågan#1

Hej. Jag skall bygga en activex-kontroll som, ifrån en webbsida, kan öppna upp en exekverbar filen som ligger på server, och som sedan körs lokalt. Jag har packeterat filen till en CAB-fil (exes.cab) genom Visual Basics inbyggda Package and Deployment Wizard (activex-kontrollen är konstruerad i Visual Basic 6.0 Enterprise edition).

Efter att guiden är avslutad följer det med en HTML-fil med följande innehåll:
<HTML>
<HEAD>
<TITLE>exes.CAB</TITLE>
</HEAD>
<BODY>
<!-- If any of the controls on this page require licensing, you must
create a license package file. Run LPK_TOOL.EXE to create the
required LPK file. LPK_TOOL.EXE can be found on the ActiveX SDK,
http://www.microsoft.com/intdev/sdk/sdk.htm. If you have the Visual
Basic 6.0 CD, it can also be found in the \Tools\LPK_TOOL directory.

The following is an example of the Object tag:

<OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
<PARAM NAME="LPKPath" VALUE="LPKfilename.LPK">
</OBJECT>
-->

<OBJECT ID="UserControl1"
CLASSID="CLSID:191CF8A1-CD5B-41B6-8F85-1C4F550B05F7"
CODEBASE="exes.CAB#version=1,0,0,0">
</OBJECT>
</BODY>
</HTML>

När jag laddar upp cab-filen och denna html-fil till en webbserver fungerar det inte som förväntat. På min egen dator fungerar det utmärkt, men på andra datorer, som inte har activexkontrollen installerad blir det bara en liten tom ruta av activex-kontrollen i webbläsaren.

Jag kom att tänka på att GUID:en, eller classid:et, kanske har något med saken att göra, så tog reda på filen Guidgen.exe och genererade därifrån en ny GUID, som jag hänvisade till i html-filen. Nu ombads jag installera activex-kontrollen när jag kom in på sidan, dock utan resultat eftersom att det inte heller efter installationen fungerade. Sedan kom jag på att det naturligtvis inte kunde fungera eftersom att det måste finnas någon koppling mellan classid:et i activex-kontrollen och i html-filen.. Därför gick jag in i cab-filen och hittade där en inf-fil som innehöll ett clsid, vilket jag infogade i koden. Inte heller nu tycktes det fungera på andra datorer än min egen. Jag har läst att man kan signera sin activex-kontroll, som med t ex Verisign. Är en sådan signering nödvändig? Det verkar som att en sådan krävs för att en webbläsare, med högsta säkerhetsinställningen, skall kunna acceptera kontrollen, men annars? Hur går man tillväga för att, på enklast möjliga vis, fixa detta? I de kommenterade raderna i html-koden ovanför står det att man kan använda LPK_TOOL.EXE för att skapa en licensfil. Jag har varken hittat det programmet på min hårddisk eller på internet. Adressen som de hänvisar till i kommentaren verkar vara ogiltig.

Sammanfattning: Mitt problem är alltså att överhuvudtaget få en activex-kontroll att kunna köras på en webbsida, så att vem som helst (med windows och internet explorer, naturligtvis), kan köra den. Tack på förhand.

Medlem sedan feb. 2003124 inlägg
#2

ÖÖÖÖÖh!!! Orkar inte läsa det ä så sent men jag kan tänka mig att... f*n där dog ja

Medlem sedan mars 20034 inlägg
#3

*ler* Haha... ja du... svara imorgon :p.. eller senare idag aknske det blir ;)

Medlem sedan okt. 20023 030 inlägg
#4

Jag har också undrat hur man får in ActiveX-kontroller på en sida. Skulle faktiskt kunna vara bra någon gång. :)

Medlem sedan mars 20034 inlägg
#5

Ja du.. jag lyckades lösa det där. Det var bara det att man vid packet and deployment-wizard var tvungen att kryssa för att kontrollen var säker både för scripting och körning typ... dvs man försäkrade att man inte hade någon skadlig kod genom att kryssa i den där rutorna. (eller var två combobox:es snarare)

Medlem sedan okt. 20023 030 inlägg
#6

Ok. Tack!

262 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)