Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/COM] Component Object Model + API
woolkan
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 10.06.2006

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


Witam,

mam bardzo nietypowy problem. Potrzebuje napisać aplikacje w php która będzie wykożystywać API zainstalowane na systemie windosowym. Do API mam dostęp przez COM (Component Object Model). Wiem że w php COM jest dostępny tylko dla wersji Windosowych więc postawiłem sobie pod XP serwer IIS oraz PHPv5.1.6.

Problem jest tego typu: jak dostać się do dostarczonego API? w necie nic nie znalazłem co mogłoby mnie naprowadzić jak używać COM w php i prawdę mówiąc nie mam zielonego pojęcia jak uruchomić to API z php (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) w manualu php też niewiele pisze:(

Plik PDF z dokumentacją znajduje się pod tym adresem: plik pdf.

API dotyczy platformy inwestycyjnej o której możesz poczytać na tej stronie: http://cms-forex.com/, dodatkowo możesz załozyć konto demo które będzie potrzebne do testowania API. Sama platforma oraz API dla tej platformy jest dostępne na stronie http://vtsystems.com/en/products/.

I teraz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) po zainstalowaniu platformy (VT Trader) na dysku a następnie API (VT Trader API) możesz mieć dostęp do swojego konta inwestycyjnego poprzez inne oprogramowania niżeli VT Trader (to chyba oczywiste). W katalogu gdzie instaluje się API są dostępne przykłady dla różnych języków programowania takich jak VB, C#, PERL, JAVA oraz pliki excelowskie z makrami pisanymi w VB dla excela. Brak przykładu dla php (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ;P
Moim zadaniem jest napisanie aplikacji która będzie umożliwiała połączenie się z serwerami platformy (dla demo serwera adres: vtdemo.fxserver.com) a następnie pobranie informacji o stanie konta (czyli otwarte pozycje stan konta etc.) oraz sprawdzenie aktualnych notowań. W sumie całość będzie podobna do przykładowego pliku excelowego z katalogu z API. Cała aplikacja ma chodzić na serwerze z systemem Windows XP (najpierw a później będzie migracja na win2k3) a dostęp musi być poprzez WWW.

Defakto całość nie wydaje się jakoś szczególnie trudna zwarzywszy że API dostarcza gotowych funkcji które mają zwracać z serwera odpowiednie dane więc moja praca będzie się ograniczać do obrobienia i wyświetlenia danych wyjściowych i tyle.
Najtrudniejszą rzeczą w chwili obecnej jest połączenie się poprzez API. Nigdy wcześniej nie miałem do czynienia z COM i dlatego to dla mnie jest nie do przejścia w chwili obecnej (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Co prawda mógłbym napisać w jakimś języku programowania lecz niestety c++ znam słabo a za jave dopiero się zabrałem więc inne języki poza php odpadają.


Z góry wielkie dzięki wszystkim za ewentualną pomoc,
woolkan (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jarek_bolo
post
Post #2





Grupa: Zarejestrowani
Postów: 149
Pomógł: 12
Dołączył: 3.03.2008
Skąd: łódzkie

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


Cytat(CuteOne @ 25.08.2014, 11:40:44 ) *
Testowałeś dostęp COM na czymś innym niż Twoje API?
  1. <?php
  2. error_reporting('E_ALL');
  3. $wshShell = new COM("WScript.Shell");
  4. $WshShell->Run("cmd /C notepad.exe", 3, false);
  5. var_dump($wshShell);
  6. ?>


Jeżeli powyższy skrypt zadziała, to napisz (dokładnie) jaką komendą zarejestrowałeś bibliotekę

Niestety nic się nie dzieje. Zarówno w CLI, ani w przeglądarce żadnego efektu nie widzę uruchamiając powyższy kod.
EDIT:
Aa widzisz (IMG:style_emoticons/default/smile.gif) Masz literówkę w zmiennej WshShell (IMG:style_emoticons/default/smile.gif) Robiąc kopiuj-wklej nie zadziałało dlatego.
Po ujednoliceniu nazw zmiennych efekt działania jest taki:
W CLI: otworzyło się okno konsoli, a następnie Notatnik się uruchomił.
W przeglądarece: wyświetlony został tekst NULL.

Bibliotekę *.dll z API rejestrowałem poprzez uruchomienie CMD na prawach Administratora i wpisanie REGSVR32 nazwa-pliku.dll
Po wciśnięciu Enter wyskoczyło okno dialogowe informujące, że z sukcesem udało się przeprowadzić operację.
Sprawdzałem następnie w Rejestrze Windowsa i na pozycji HKEY_LOCAL_MACHINE\SOFTWARE\Classes\jest-nazwa-klasy-którą-zarejestrowałem

Ten post edytował jarek_bolo 25.08.2014, 11:13:14
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 12:50