webForumDet fria alternativet

kolla om acrobat reader finns installerat...

13 svar · 627 visningar · startad av Martin.asp

Martin.aspMedlem sedan juli 200147 inlägg
#1

Skulle vilja kolla om acrobat reader finns installerat hos klienten.

Någon som vet hur man gör?

Mvh
Martin

RGBMedlem sedan dec. 1999419 inlägg
#2
<script language="javascript">
function test()
{
var ua=navigator.userAgent.toLowerCase();
var msie = ua.indexOf("msie") != -1;
var mswin = ua.toLowerCase().indexOf("win")!=-1;
var ns = navigator.appName.toLowerCase().indexOf("netscape") != -1;
var mac = ua.indexOf("mac")!=-1;
if(ns||!mswin)
{for(i = 0 ; i<navigator.mimeTypes.length; i++)
{if(navigator.mimeTypes[i].type == "application/pdf"){return true;}}}
if (msie && mswin)
{
/**
* eftersom felhanteringen i JScript v.3 (msie4) är
* kass så använder vi vbscript här...
*/
inst = false; document.writeln('<s'+'cript language=vbscript>\n ON ERROR RESUME NEXT \n inst = IsObject(CreateObject("PDF.PdfCtrl.5"))</scr'+'ipt>\n'); return inst;
}return false;}

if(test()) alert("=)"); else alert("=(");
</script>
Martin.aspMedlem sedan juli 200147 inlägg
#3

Verkar ju fungera kanon! En fråga dock... "PDF.PdfCtrl.5" har det ngt med att den bara kollar om man har version 5 eller räcker det med att man ha 4 installerat?? Om man vill kolla andra program hur gör man då? Finns det ngt generellt sätt hur man skall tänka för att lista ut hur man kollar samtliga program?

Tackar så mycket!

=)

/Martin

Peter SMedlem sedan dec. 20025 483 inlägg
#4

"PDF.PdfCtrl.5" har det ngt med att den bara kollar om man har version 5 eller räcker det med att man ha 4 installerat??

PDF.PdfCtrl.5 representerar endast version 5. Vill du testa för version 4 får du använda PDF.PdfCtrl.1.

Finns det ngt generellt sätt hur man skall tänka för att lista ut hur man kollar samtliga program?

Nja, möjligtvis skulle du kunna ta dig en titt i registret under HKEY_CLASSES_ROOT, leta fram filändelsen för det program du vill testa och läsa av datat för "(Standard)". Inga garantier dock ;)

:)

Martin.aspMedlem sedan juli 200147 inlägg
#5

tack!
=)

Martin.aspMedlem sedan juli 200147 inlägg
#6

Får inte helt rätt på det... ingen höjdare på JavaScript.

Skall plocka in inStr från QueryStringen som är ett filnamn (t ex test.pdf). Om acrobat 5 eller 4 finns installeras öppnas denna filen annars blir man vidareskickad till test.htm.

Tack på förhand!
/Martin

Peter SMedlem sedan dec. 20025 483 inlägg
#7
On Error Resume Next
If IsObject(CreateObject("PDF.PdfCtrl.5")) OR IsObject(CreateObject("PDF.PdfCtrl.1")) Then
	Response.Redirect(Request.QueryString("file"))
Else
	Response.Redirect("test.html")
End If

:)

Martin.aspMedlem sedan juli 200147 inlägg
#8

hmm... syntaxen känns lite bekantare =) men jag får inte rätt på det hela:

Microsoft VBScript runtime error '800a01ad'

ActiveX component can't create object: 'PDF.PdfCtrl.5'

/activecare/testAcrobat.asp, line 4

tog bort ON ERROR...

fungerar detta både på mac och pc respektive IE och NS som javascriptet i början gjorde?

@ndersMedlem sedan juni 200032 969 inlägg
#9

VBScript fungerar bara i Internet Explorer, jag vet dock inte hur det är med IE på Mac, men jag utgår ifrån att det fungerar.

Mvh

Peter SMedlem sedan dec. 20025 483 inlägg
#10

Jag har för mig att VBScript inte fungerar i Internet Explorer på Mac. I version 5.x skall dock JavaScript-koden fungera.

:)

Martin.aspMedlem sedan juli 200147 inlägg
#11

ok tackar för all hjälp men jag har fortfarande inte knåpat ihop en lösning på det hela.

RGB:s första svar fast hjälp med följande:

- inplockning av filnamn (via request.querystring el motsvarande, t ex test.pdf som skall öppnas om allt är ok)
- kolla om antigen Acrobat Reader 4 eller 5 finns installerat

;)

RGBMedlem sedan dec. 1999419 inlägg
#12

Bytut

'<s'+'cript language=vbscript>\n ON ERROR RESUME NEXT \n inst = IsObject(CreateObject("PDF.PdfCtrl.5"))</scr'+'ipt>\n'

Mot

'<s'+'cript language=vbscript>\n '+
' ON ERROR RESUME NEXT \n '+
' If IsObject(CreateObject("PDF.PdfCtrl.1")) Then inst = true \n'+
' If IsObject(CreateObject("PDF.PdfCtrl.5")) Then inst = true \n'+
'</scr'+'ipt>\n'

Sen så lägger du till en funktion som plockar ut det du vill ur söksträngen tex

/**
 * Används för att plocka ut en del av en fråga.
 * för att plocka ut  värdet för xxx ur ?www=80&xxx=90
 * använder du parseqs("xxx")
 */
function parseqs(lookup)
{
var qa = location.search.split("&");
for(i = 0; i < qa.length; i++)
{
	if(qa[i].substring(0,1)=="?")
	{qa[i] = qa[i].substr(1, qa[i].length-1);}

	if(qa[i].toLowerCase().indexOf((lookup+"=")) == 0)
	{return qa[i].split("=")[1];}
}
return "";
}

Sedan så är det väl bara att hålla tummarna och testa...

if(test() && parseqs("pdfdoc") != "") location = parseqs("pdfdoc");
RGBMedlem sedan dec. 1999419 inlägg
#13

VBScript fungerar bara i Internet Explorer

Har för mig att webbläsaren i KDE klarar av både ActiveX och VBScript...

Martin.aspMedlem sedan juli 200147 inlägg
#14

Du är grym!

Tack

Mvh
Martin

136 ms totalt · 3 externa anrop · v20260731065814-full.91fd2ad2
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)