Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pozivanje ActiveX funkcije iz JS

[es] :: Javascript i AJAX :: Pozivanje ActiveX funkcije iz JS

[ Pregleda: 2411 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Pera Pisar

Član broj: 33427
Poruke: 18
*.rcub.bg.ac.yu.



Profil

icon Pozivanje ActiveX funkcije iz JS04.09.2007. u 23:07 - pre 201 meseci
Pokusavam da iz javascripta ili vbscripta pozovem funkciju activex komponente koja se nalazi na klijentskom racunaru.
Napravio sam u Visual C++ 2005 jednu jednostavnu activeX komponentu (ocx fajl) i exportovao jednu jedinu funkciju koja vraca int vrednost. Kada pokusam da pozovem tu funkciju iz VB-a, sve radi kako treba, tj. dobijam broj koji funkcija treba da vrati.

Registrovao sam activex komponentu na klijentskoj masini pomocu regsvr32. Na dva nacina sam pokusavao da iz javascripta pozovem funkciju
- pomocu new ActiveXObject("progID") gde sam progID nasao u registriju
- pomocu <object classid="clsid:xxxxxxx" id="xx">, a classid sam isto nasao u registriju

Javascript uspe da napravi objekat, ali ne moze da pozove funkciju tog activex-a. Na web stranici se javlja greska "Object doesn't support this property or method".

U opcijama Internet explorera sam omogucio rad sa svim vrstama activex objekata i u Internet i u intranet zoni.

Svuda sam trazio neko resenje, ali nisam uspeo. Vrtim se oko dve linije koda vec nedelju dana. Saljem i kod html stranice sa javascriptom. Hvala puno na bilo kakvoj pomoci.

<HTML>
<HEAD>
<OBJECT classid="A2733628-A334-4207-83F1-F00198758EFF" id="a"></OBJECT>
<TITLE></TITLE>
<script type='text/javascript' language='javascript'>
function callTest()
{
//prvi nacin
try{ //prvi nacin
var myobject;
myobject = new ActiveXObject("OCXTEST.ocxtestCtrl.1");
alert(myobject.test()); // funkcija activex-a se zove test
}
catch(e)
{
alert(e.message);
}
//drugi nacin
try{
alert(a.test());
}
catch(e)
{
alert(e.message);
}
}
</SCRIPT>
</HEAD>
<BODY>
<INPUT TYPE="button" value="TEST" onClick="callTest()">
</BODY>
</HTML>
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
195.178.55.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Pozivanje ActiveX funkcije iz JS05.09.2007. u 09:36 - pre 201 meseci
alert (myobject);//da proveriš da li je objekt kreiran valjano, treba da vrati "[Object]" (valjda :-)
alert (myobject.test);//da proveriš da li je vidljiva funkcija, ako je ok vraća "[Function]"

Konkretnije ne mogu pomoći, ovo je samo mali hint za proveru (nisam se nikad igrao s ActiveX, verovatno i neću). Interesuje me šta dobijaš u alertima pri pozivu koda koji si ostavio.
 
Odgovor na temu

Pera Pisar

Član broj: 33427
Poruke: 18
212.62.55.*



Profil

icon Re: Pozivanje ActiveX funkcije iz JS05.09.2007. u 10:17 - pre 201 meseci
U prvom alertu - alert(myobject); vraca [object],
a u drugom - alert (myobject.test); ne vrati [function], nego 'undefined'.

Kada stavim alert(myobject.test()); vraca gresku 'Object doesn't support this property or method'.

Jos jednom da kazem da je funkcija test exportovana i da se vidi iz npr. Visual Basica.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
195.178.55.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Pozivanje ActiveX funkcije iz JS05.09.2007. u 10:55 - pre 201 meseci
Code:
<textarea id="area" cols="72" rows="24"></textarea>
<script>
function inspectObj (obj) {
    if (typeof (obj) != 'object') return alert ('Error: object is expected');
    var out = '';
    for (var i in obj) out += i + ' : ' + obj [i] + '\n\n';
    document.getElementById ('area').value = out;
}
</script>

Ovo bi mogla da bude korisna funkcija da vidiš šta ima u samom objektu. Dodaš ovaj kod i pogledaj šta dobijaš u textarea pri pozivu inspectObj (myobject);
 
Odgovor na temu

Pera Pisar

Član broj: 33427
Poruke: 18
212.62.55.*



Profil

icon Re: Pozivanje ActiveX funkcije iz JS06.09.2007. u 10:56 - pre 201 meseci
Hvala puno na odgovorima.

Pri pozivu inspectObj (myobject); ne ispise bas nista. Prazan text field. Probao sam i sa alertom, ali isto je prazan.
 
Odgovor na temu

Pera Pisar

Član broj: 33427
Poruke: 18
212.62.55.*



Profil

icon Re: Pozivanje ActiveX funkcije iz JS07.09.2007. u 14:02 - pre 201 meseci
Resio sam problem!!!

Problem uopste nije bio u javascript-u nego u samom ocx fajlu, kao sto sam kasnije i pretpostavio. Naime, ne mogu da se u ActiveX kontroli eksportuju fajlovi kao sto sam ih ja eksportovao u klasicnom dll-u (Win32 project). Tada sam ih eksportovao u .def fajlu ili pomocu __declspec(dllexport).

U MFC ActiveX Control projektu, metode postaju vidljive za aplikacije koje ce ih koristiti upotrebom dispatch map-a. Najbolje je sve takve metode dodati pomocu wizarda i onda ih Visual Studio u razlicitim fajlovima deklarise kao metode koje se exportuju.
 
Odgovor na temu

[es] :: Javascript i AJAX :: Pozivanje ActiveX funkcije iz JS

[ Pregleda: 2411 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.