Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Kontrolka ActiveX, problem
RubiX
post 3.04.2009, 20:51:46
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 6
Dołączył: 14.02.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam
Mam dziwny problem z kontrolką activeX otóż posiadam drukarkę fiskalną do której producent dołączył kontrolkę activeX orazplikhtml i ocx do sprawdzenia czy wszystko działa. Po zainstalowaniu kontrolki iodpaleniu pliku html z dysku wszytsko działa plik łączy się z drukarką i drukuje paragony. Jednaj po przesłaniu pliku na serwer www i odpaleniu tego pliku z serwera już nic niedziała conajmniej jak by plik html wogle nie widział tej kontrolki (plik html i ocx są w tym samym katalogu na serwerze).
W czym może tkwić problem ?
P.S używam IE


--------------------
===================================

\o/ torebki
Go to the top of the page
+Quote Post
tanwel_programme...
post 3.04.2009, 21:04:21
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 6
Dołączył: 21.03.2009
Skąd: Obecny :)

Ostrzeżenie: (0%)
-----


Nie znam się zbyt dobrze na programowaniu kontrolek ale czy przypadkiem activeX nie jest technologią Microsoft? Może poprostu serwer masz na linuxie a linux prawdopodobnie nie obsługuje tego formatu plików. Nie znam się na tym zbyt dobrze ale to chyba to smile.gif
Go to the top of the page
+Quote Post
mlattari
post 4.04.2009, 02:34:04
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 3
Dołączył: 23.12.2008
Skąd: Piaseczno

Ostrzeżenie: (0%)
-----


Zabezpieczenia IE! Włącz obsługę formantów Active-X (i inne opcje z tym związane) dla danej strefy...

Cytat(tanwel_programmer @ 3.04.2009, 22:04:21 ) *
Nie znam się zbyt dobrze na programowaniu kontrolek ale czy przypadkiem activeX nie jest technologią Microsoft? Może poprostu serwer masz na linuxie a linux prawdopodobnie nie obsługuje tego formatu plików. Nie znam się na tym zbyt dobrze ale to chyba to smile.gif


hmmm to przeglądarka ma obsługiwać formant Active-X a nie serwer :-) To nie php... :-)
Go to the top of the page
+Quote Post
tanwel_programme...
post 4.04.2009, 07:26:39
Post #4





Grupa: Zarejestrowani
Postów: 36
Pomógł: 6
Dołączył: 21.03.2009
Skąd: Obecny :)

Ostrzeżenie: (0%)
-----


OOOOOO dobra ciekawostka. Niestety jeżeli chodzi o ,mnie to activeX to u mnie dno smile.gif
Go to the top of the page
+Quote Post
mlattari
post 4.04.2009, 09:52:37
Post #5





Grupa: Zarejestrowani
Postów: 79
Pomógł: 3
Dołączył: 23.12.2008
Skąd: Piaseczno

Ostrzeżenie: (0%)
-----


Największym dnem jest to, że jesteśmy zmuszeni uzywać IE (exclamation.gif) żeby korzystać z Active-X.... To dopiero dno w dnie!
Go to the top of the page
+Quote Post
erix
post 6.04.2009, 16:28:17
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Może poprostu serwer masz na linuxie a linux prawdopodobnie nie obsługuje tego formatu plików. Nie znam się na tym zbyt dobrze ale to chyba to

Nie wiem, czy drukarka udostępnia kontrolkę COM, ale jeśli tak, to masz problem z głowy - instalujesz PHP na kompie z Windows, za pomocą funkcji COM realizujesz druk. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kurt
post 14.08.2009, 20:59:16
Post #7





Grupa: Zarejestrowani
Postów: 89
Pomógł: 3
Dołączył: 14.07.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Odświeżę temat bo napotkałem na ten sam problem, a nie wydaje mi się aby odpowiedzi wyczerpywały zagadnienie.
Problem wygląda tak:
kontrolka ThermalLib.ocx udostępniana prze firmę Posnet, działa poprawnie na komputerach opartych na systemie windows, oraz tylko w plikach html. Wywołanie jej metod w pliku php nie daje rezultatów.
Przykład:
Mam zaimplementowaną kontrolkę w pliku html:
  1. <OBJECT id=ThermalLib height=0 width=0
  2. classid=clsid:904511D2-5407-4033-8DAD-07B33EC7317E><PARAM NAME="_Version" VALUE="65536"><PARAM NAME="_ExtentX" VALUE="26"><PARAM NAME="_ExtentY" VALUE="26"><PARAM NAME="_StockProps" VALUE="0"></OBJECT>


Dostęp do jej metod odbywa się za pomocą funkcji javascript.
Wszystko jest ok, dopóki nie zmienię rozszerzenia pliku na php - działanie kontrolki ustaje jak ręką odjął.

Szukałem w sieci informacji na temat użycia ActiveX w kodzie PHP ale jest tego niewiele, częściowo są wskazówki na użycie klasy COM, ale próbowałem z wymienioną biblioteką i nic nie wychodzi. Czy ma ktoś z Was jakieś rozwiązanie tej kwestii?

Co do umieszczaania na serwerze linuksowym kontrolki ActiveX , to jest ono z góry skazane na porażkę...
Go to the top of the page
+Quote Post
erix
post 14.08.2009, 21:12:03
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Szukałem w sieci informacji na temat użycia ActiveX w kodzie PHP ale jest tego niewiele, częściowo są wskazówki na użycie klasy COM, ale próbowałem z wymienioną biblioteką i nic nie wychodzi. Czy ma ktoś z Was jakieś rozwiązanie tej kwestii?

Nie wychodzi, to znaczy? COM przyjmuje jako argument np. CLSID, więc powinno pasować.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kurt
post 14.08.2009, 21:25:43
Post #9





Grupa: Zarejestrowani
Postów: 89
Pomógł: 3
Dołączył: 14.07.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


podchodzę do tematu tak:
  1. $com = new COM("ThermalLib.ocx");

I wywala błąd składni:

"Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `ThermalLib.ocx': Nieprawidłowa składnia. ' in D:\xampp\htdocs\test\paragon.php:14 Stack trace: #0 D:\xampp\htdocs\test\paragon.php(14): com->com('ThermalLib.ocx') #1 {main} thrown in D:\xampp\htdocs\test\paragon.php on line 14"


i nie bardzo wiem o co chodzi sad.gif
Go to the top of the page
+Quote Post
erix
post 14.08.2009, 21:29:19
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Eeee, ale masz podać CLSID, a nie nazwę kontrolki. biggrin.gif

Każda zarejestrowana w systemie kontrolka posiada unikalny identyfikator, wg niego jest identyfikowana. Nazwa pliku jest nieistotna.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kurt
post 14.08.2009, 21:40:58
Post #11





Grupa: Zarejestrowani
Postów: 89
Pomógł: 3
Dołączył: 14.07.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jak już jesteśmy tak blisko to powiedz gdzie znaleźć ten CLSID ? smile.gif
Go to the top of the page
+Quote Post
erix
post 14.08.2009, 21:42:37
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Noż stary biggrin.gif
Cytat
  1. <OBJECT id=ThermalLib height=0 width=0
  2. classid=clsid:904511D2-5407-4033-8DAD-07B33EC7317E>

Naprawdę nie widzisz? tongue.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kurt
post 14.08.2009, 21:48:06
Post #13





Grupa: Zarejestrowani
Postów: 89
Pomógł: 3
Dołączył: 14.07.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


No to już tylko kroczek smile.gif

jak tego użyć ?
  1. $com = new COM(904511D2-5407-4033-8DAD-07B33EC7317E);

nie działa
tak :
  1. $com = new COM('904511D2-5407-4033-8DAD-07B33EC7317E');

też nie
Go to the top of the page
+Quote Post
erix
post 14.08.2009, 22:18:20
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A zobacz, jakim prefiksem masz to poprzedzone... dry.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kurt
post 15.08.2009, 14:26:24
Post #15





Grupa: Zarejestrowani
Postów: 89
Pomógł: 3
Dołączył: 14.07.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Opiszę problem jeszcze raz.

Jest plik HTML z dołączoną biblioteką ThermalLib.ocx :

  1. <OBJECT id=ThermalLib height=0 width=0
  2. classid=clsid:904511D2-5407-4033-8DAD-07B33EC7317E><PARAM NAME="_Version" VALUE="65536"><PARAM NAME="_ExtentX" VALUE="26"><PARAM NAME="_ExtentY" VALUE="26"><PARAM NAME="_StockProps" VALUE="0"></OBJECT>


Wywołanie metod obiektu ThermaLib odbywa się przy pomocy funkcji java script:

  1. <script LANGUAGE="JavaScript">
  2.  
  3. function OpenPort(data) {
  4.  
  5. ThermalLib.THLOpenPort(data)
  6. ThermalLib.THLSendBel()
  7. }


Wszystko działa dopóki nie zmienię pliku na php. Pojawia się komunikat, że "obiekt nie obsługuje tej właściwości lub metody" ze wskazaniem na linię:
  1. ThermalLib.THLOpenPort(data)


Nie wiem czy dołączenie obiektu w stylu HTML ma zastosowanie w przypadku php.
Próby obejścia problemu i użycia COM zakończyły się niepowodzeniem.

Bardzo proszę, jeżeli ktoś ma COŚ do powiedzenia w tym temacie o pomoc.
Go to the top of the page
+Quote Post
erix
post 17.08.2009, 11:12:16
Post #16





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Bardzo proszę, jeżeli ktoś ma COŚ do powiedzenia w tym temacie o pomoc.

Jak widzisz, tematyka kontrolek ActiveX jest szeroko rozprowadzona pośród programistów. Raczyłbyś ruszyć swoje szanowne cztery litery, żeby wygłówkować, że mówiłem o prefixie, ale że dopiero tydzień się zaczyna:

  1. $x = new COM('clsid:904511D2-5407-4033-8DAD-07B33EC7317E');
  2.  
  3. // albo
  4. $x = new COM('{904511D2-5407-4033-8DAD-07B33EC7317E}');


Na przyszłość myśl 3x zanim cokolwiek napiszesz. Zdążyłbyś już znaleźć nawet nazwę klasy z danego OCX-a, gdyż są do tego odpowiednie programy.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
kurt
post 17.08.2009, 18:59:47
Post #17





Grupa: Zarejestrowani
Postów: 89
Pomógł: 3
Dołączył: 14.07.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Ech... Młody jesteś to i porywczy, dlatego Ci wybaczam.

Do kontrolki dobrałem się już po nazwie wyciągniętej z rejestru:
  1. $com = new COM('THERMALLIB.ThermalLibCtrl.1');


ale i tak nic to nie dało.
Kontaktowałem się z jej producentem i nie przewidzieli jej do zastosowań w PHP i działa pod HTML oraz w środowisku .NET i VB

W tym konkretnym przypadku szukałem ludzi z doświadczeniem z tą właśnie kontrolką, dlatego Twoje zamykanie tematów i powyższy agresywny ton postu niewiele przynosi.
Ale jak już pisałem nie żywię urazy,
pozdrawiam i łączę wyrazy szacunku.
Go to the top of the page
+Quote Post
erix
post 17.08.2009, 19:17:38
Post #18





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Jeśli masz mi coś do zarzucenia, to zapraszam na PW. I takie uwagi:
Cytat
Ech... Młody jesteś to i porywczy, dlatego Ci wybaczam.

zachowaj dla siebie 3x zastanawiając się, co piszesz. Masz mi coś wprost do powiedzenia? Namiary na mnie łatwo znaleźć, nie pozwolę sobie na bezpodstawne oczernianie mojej osoby tylko ze względu na mój wiek. Netykieta.

Lenistwa na forum nie toleruję, ale Twoje zagadnienie do prostych nie należy, więc nie zamknąłem od razu tematu.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2025 - 05:33