[gelöst] URL im Hintergrund aufrufen

15. September 2008 17:49

Hallo,

ist es möglich in Navision eine URL im Hintergrund aufzurufen?

Über Hyperlink(); kann ich ja ein Fenster mit der URL öffnen.

Folgende Bewandniss:
Wir setzten SK Suite ein. Dort kann ich über CTI eine Rufnummer wählen. Jetzt ist es so, dass ich die Rufnummer Markieren, Kopieren, TK-Suite öffen und auf wählen klicken muss. Ich kann aber auch über eine URL wählen "http://tksuite:5080/contact?call=rufnummer".
Da ich dann aber immer ein Browserfenster zu schließen haben, wäre es einfacher wenn Navision die URL im Hintergrund aufruft, geht das?

P.S.: Habe einen Beitrag über SMS verschicken gelesen, siehe hier http://www.navision24.de/tutorials/sms-verschicken.html
Nun habe ich aber Windows XP x64 und x32. Auf dem x64 System lässt er mir die dll nicht regristrieren.

Hat jemand eine Idee?
Zuletzt geändert von Wimpp am 18. September 2008 12:56, insgesamt 1-mal geändert.

Re: URL im Hintergrund aufrufen

16. September 2008 07:23

kleiner Tip und Wink mit dem Zaunpfahl: schau dir mal die Automation variable vom IE-Explorer an ...

Re: URL im Hintergrund aufrufen

16. September 2008 10:51

Ok habe jetzt ein Variable angelegt:

Name DataType Subtype Length
Wählen Automation 'Microsoft Internet Controls'.InternetExplorer

Dann habe ich im onPush Trigger folgendes eingefügt:

Code:
CREATE(Wählen);
Wählen.Navigate('http://tksuite:5080/contact?call='+"Telefonnr.");
Wählen.Visible(FALSE);
IF NOT Wählen.Busy() THEN Wählen.Quit();
CLEAR(Wählen);


Jetzt wählt er aber nicht jedesmal. Sondern nur selten.

wenn ich allerdings Visible auf True stelle funktioniert es ohne Probleme bei jedem anlauf.

Woran kann das liegen? Übersehe ich Irgendwas?

Re: URL im Hintergrund aufrufen

16. September 2008 16:47

Was möchtest du mit dieser Zeile erreichen?

Code:
IF NOT Wählen.Busy() THEN
  Wählen.Quit();

Re: URL im Hintergrund aufrufen

16. September 2008 16:58

Versuch mal folgendes:

Code:
CREATE(Wählen);
Wählen.Navigate('http://tksuite:5080/contact?call='+"Telefonnr.", 14);
Wählen.Visible(FALSE);
SLEEP(1000);
Wählen.Quit();
CLEAR(Wählen);


Ggf. reicht die Zeit nicht immer aus um die URL aufzurufen. Die 14 definiert folgendes (optional):

navNoHistory = 0x2,
navNoReadFromCache = 0x4,
navNoWriteToCache = 0x8,

Damit wird nichts in die Historie geschrieben und weder vom Cache gelesen noch geschrieben.

Eventuell musst du noch eine Schleife bauen, die über Busy() abfragt, ob die Seite bereits komplett aufgerufen wurde. Dazu dann noch eine weitere Abbruchbedingung, falls der Browser Busy bleibt (abschließen mit Stop()).

Re: URL im Hintergrund aufrufen

18. September 2008 12:56

Danke, Funktioniert.

Allerdings musste ich die "14" weglassen weil er damit nichts anfangen kann.
Aber ich nehm an damit es durch das Sleep funktioniert.

Re: [gelöst] URL im Hintergrund aufrufen

18. September 2008 13:25

Nachschlag: Die 14 wird wahrscheinlich funktionieren, wenn sie als Variable übergeben wird. Also so in etwa:

Code:
Flags := 14;
Wählen.Navigate('http://tksuite:5080/contact?call='+"Telefonnr.", Flags);


Wobei Flags als Integer definiert sein müsste.