AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Javascript ohne TWebBrowser ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

Javascript ohne TWebBrowser ausführen

Ein Thema von Schwedenbitter · begonnen am 16. Nov 2010 · letzter Beitrag vom 17. Nov 2010
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#11

AW: Javascript ohne TWebBrowser ausführen

  Alt 16. Nov 2010, 20:28
Das musst du mit einer x-beliebigen Socket/HTTP-Komponente an den Webserver schicken (die Indys werden oft empfohlen). Die aufzurufende URL müsste dann z.B. so aussehen:
Code:
http://192.168.1.2/vphone/vp-list-mailin.asp?mode=11&entry=3&nr=512&type=77&read=
, also ohne irgendwelche " oder '.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#12

AW: Javascript ohne TWebBrowser ausführen

  Alt 16. Nov 2010, 22:43
Wichtig ist dabei auch, dass das Ergebnis abgefragt wird! Die HTTP Codes kann hier evtl. helfen. Denn am Schluss willst ein Fax löschen, dass es gar nicht mehr gibt.

BTW: gibts eigentlich keine API für diese Anlage?! Denn sobald der Hersteller der Anlage ein Update raus bringt, kann unter Umständen deine Software nicht mehr funktionieren. Mir ist schon klar, dass das mit einer API auch passieren kann, da ist aber das Risiko geringer.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#13

AW: Javascript ohne TWebBrowser ausführen

  Alt 16. Nov 2010, 23:06
Das musst du mit einer x-beliebigen Socket/HTTP-Komponente an den Webserver schicken (die Indys werden oft empfohlen).
Ich habe es jetzt mit dem Code von hier probiert - Leider ohne Erfolg. Welche Komponente/Unit von den Indys muss ich denn verwenden?
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#14

AW: Javascript ohne TWebBrowser ausführen

  Alt 16. Nov 2010, 23:22
Das musst du mit einer x-beliebigen Socket/HTTP-Komponente an den Webserver schicken (die Indys werden oft empfohlen).
Ich habe es jetzt mit dem Code von hier probiert - Leider ohne Erfolg. Welche Komponente/Unit von den Indys muss ich denn verwenden?
Ach den ... Und welchen von den dreien?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#15

AW: Javascript ohne TWebBrowser ausführen

  Alt 16. Nov 2010, 23:30
Wieso drei? Er referenziert doch genau einen -> Anker im Link! Den mittleren halt
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#16

AW: Javascript ohne TWebBrowser ausführen

  Alt 16. Nov 2010, 23:34
Ach den ... Und welchen von den dreien?
Der erste funktioniert laut Fragesteller nicht und der letzte benutzt die Komponentensammlung 'synapse'. Also der 2. natürlich, zumal der Code von meinem Link auch genau auf diesen scrollen sollte. Das tut er jedenfalls in meinem Browser.

Die Frage zur API muss ich dann mal an den Telefon-Menschen weiterleiten. Im Dezember soll sowieso ein Update aufgespielt werden.

Folgender Code kommt zwar bis zur letzten Bedingung durch und liefert mit ein 'True' zurück. Das Fax bleibt aber beharrlich in der Anlage und nicht dort wo sie hinsollte - ins Nirvana:
Delphi-Quellcode:
Function DeleteItem(sURL, ItemEntry, ItemNr : String): Boolean;
Var
  S : String;
  hSession : hInternet;
  hConnect : hInternet;
  hRequest : hInternet;
Begin
  Result:=False;
  hSession:=InternetOpenA('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG,
    nil, nil, 0);
  If (Assigned(hSession)) Then
  Begin
    hConnect:=InternetConnectA(hSession, PChar(sURL), INTERNET_DEFAULT_HTTP_PORT,
      nil, nil, INTERNET_SERVICE_HTTP, 0, 0);
    If (Assigned(hConnect)) Then
    Begin
      hRequest:=HttpOpenRequestA(hConnect, 'POST', PChar(sURL),
        nil, nil, nil, INTERNET_SERVICE_HTTP, 0);
      If (Assigned(hRequest)) Then
      Begin
        S:='http://' + sURL + '/vphone/vp-list-mailin.asp?mode=11&entry=' +
          ItemEntry + '&nr=' + ItemNr + '&type="77"&read= ';
        Result:=HttpSendRequestA(hRequest, nil, 0, Pointer(S), Length(S));
        InternetCloseHandle(hRequest);
      End;
      InternetCloseHandle(hConnect);
    End;
    InternetCloseHandle(hSession);
  End;
End;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ShowMessage(BoolToStr(DeleteItem('192.168.1.2', '0', '512'), True));
end;
Wo liegt mein Fehler?
Jetzt muss ich morgen vermutlich doch mal zum Siffer greifen und nachsehen, was exakt die Software an den Server in der Anlage sendet.

Gruß, Dank & Gute Nacht, Alex
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: Javascript ohne TWebBrowser ausführen

  Alt 16. Nov 2010, 23:43
Wieso drei? Er referenziert doch genau einen -> Anker im Link! Den mittleren halt
Genau den hätte ich nicht genommen.

Ich würde es mal mit synapse probieren. Da braucht auch nichts installiert werden und nach meinen Erfahrungen sehr sauber und extrem stabil.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#18

AW: Javascript ohne TWebBrowser ausführen

  Alt 17. Nov 2010, 08:45
OK. Dieses Thema hat mich auf folgende Idee gebracht:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  With TDownloadURL.Create(self) Do
  Try
    URL:='http://192.168.1.2/vphone/vp-list-mailin.asp?mode=11&entry=0&nr=512&type="77"&read=';
    FileName:='Dummy.html';
    Try
      ExecuteTarget(nil);
      ShowMessage('Executed OK');
    Except
      On E : Exception Do ShowMessage(E.Message);
    End;
  Finally
    Free;
  End;
end;
Zwar löscht er mir den Eintrag auch nicht. Aber ich bekomme eine html-Datei zurück, die mir mögliche Fehler verrät:
Code:
<html><body>
<h2><b>ASP Error</b></h2>
vp_list_mailin(mode,entry,rnr,type,read);
</body></html>
Wenn ich das richtig verstehe, ist mein 'POST' angekommen und der Server ist sogar noch so nett und sagt mir, wie ich die Funktion richter Weise benutzen soll. Da ich read= nirgends finden kann, bleibt mir also doch nur ein Shniffer. Oder sehe ich das falsch?

Ich möchte keine anderen Komponenten verwenden (Indys eingeschlossen), wenn und soweit die Chance besteht, dass ich es mit den Bordmitteln hinbekomme.

[EDIT]
Habe jetzt den Traffic mal mit Live HTTP Headers mitgeschnitten und es hat den Anschein, dass die Variablen vertauscht und die Argumente andere sind. Ich muss jetzt leider warten, bis wieder ein Fax eingeht und werde es dann probieren. Bins schon ganz euphorisch!
[/EDIT]

Gruß, Alex
Alex Winzer

Geändert von Schwedenbitter (17. Nov 2010 um 09:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#19

AW: Javascript ohne TWebBrowser ausführen

  Alt 17. Nov 2010, 09:01
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  With TDownloadURL.Create(self) Do
  Try
    URL:='http://192.168.1.2/vphone/vp-list-mailin.asp?mode=11&entry=0&nr=512&type="77"&read=';
    FileName:='Dummy.html';
    Try
      ExecuteTarget(nil);
      ShowMessage('Executed OK');
    Except
      On E : Exception Do ShowMessage(E.Message);
    End;
  Finally
    Free;
  End;
end;
Zwar löscht er mir den Eintrag auch nicht. Aber ich bekomme eine html-Datei zurück, die mir mögliche Fehler verrät:
Code:
<html><body>
<h2><b>ASP Error</b></h2>
vp_list_mailin(mode,entry,rnr,type,read);
</body></html>
Ich möchte keine anderen Komponenten verwenden (Indys eingeschlossen), wenn und soweit die Chance besteht, dass ich es mit den Bordmitteln hinbekomme.
Ist das ein Tippfehler in deinem Code?
statt
Code:
entry=0&nr=512&type
müsste es doch
Code:
entry=0&rnr=512&type
lauten
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#20

AW: Javascript ohne TWebBrowser ausführen

  Alt 17. Nov 2010, 10:07
Ist das ein Tippfehler in deinem Code?
statt
Code:
entry=0&nr=512&type
müsste es doch
Code:
entry=0&rnr=512&type
lauten
Ja - genau das. Und auch die Argumente sind anders als im html-Quelltext angegeben. Im Quelltext steht
Code:
type="77"
und
Code:
nr=512
(ohne das zusätzliche r), während es die Funktion umgekehrt und mit r will. Vielleicht eine Falle für Leute, die eine Software für die Anlagen schreiben wollen Wie auch immer.
Es funktioniert jetzt über die URL
Code:
http://192.168.1.2/vphone/vp-list-mailin.asp?mode=11&entry=0&rnr=77&type=512&read=
Danke für Eure Hilfe. Ich fasse mal zusammen:

1. Man kann ein 'POST' ziemlich einfach über TDownloadURL absetzen und damit eine Javascript-Funktion ausführen lassen.
2. Oben steht, wie es insbesondere bei einer OpenCom X320 geht.
Alex Winzer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz