Domino 9 und frühere Versionen > Entwicklung

URL über anderen Webretriever öffnen

(1/3) > >>

klez:
Guten Morgen allerseits!

Ich habe folgendes Problem:
Ich sollte eine Mail erstellen, in welcher der User eine Website durch Klick auf einen Textlink oder Button aufrufen kann. Diese Seite muss zwingend in einem externen Internet Explorer-Fenster geöffnet werden. Unsere Mitarbeiter können aber ihren Webretriever unter den Location Settings selber einstellen. Diese Einstellungen sollten nicht verändert werden, bzw nach der URL-Öffnung erhalten bleiben.

Als Notes-Neuling habe ich einen Button in der Mail folgendermassen verunstaltet:

--- Code: ---Sub Click(Source As Button)
'------------------------
Dim str_URL As String
str_URL = "www.google.ch"
'------------------------

Dim session As NotesSession
Dim strLocation As String   'used to get Location from Notes.INI
Dim intComma As Integer     'position of first comma
Dim dbNAB As NotesDatabase  'personal Name & Address Book
Dim viewLocations As NotesView
Dim docLocation As NotesDocument
Dim item As NotesItem
Dim int_oldbrowser

Set session = New NotesSession
strLocation = session.GetEnvironmentString("Location",True)
intComma = Instr(strLocation, ",")
strLocation = Left$(strLocation, intComma-1)
Set dbNAB = session.GetDatabase("", "names.nsf")
Set viewLocations = dbNAB.GetView("Locations")
Set docLocation = viewLocations.GetDocumentByKey(strLocation)
int_oldbrowser = docLocation.GetItemValue( "WebRetriever" )
If (docLocation.WebRetriever(0) <> "2") Then
Set item = docLocation.ReplaceItemValue("WebRetriever", "2")
Call docLocation.Save(True, False)
End If
Set notesUIWorkspace = New NotesUIWorkspace
Call notesUIWorkspace.URLOpen(str_URL)
Set item = docLocation.ReplaceItemValue("WebRetriever", int_oldbrowser)
Call docLocation.Save(True, False)

End Sub
--- Ende Code ---

Meine Überlegung kurz erläutert:
- Zuerst sollte die alte Einstellung in der Variable "int_oldbrowser" gespeichert werden.
- Dann mit "Set item = docLocation.ReplaceItemValue("WebRetriever", "2")" auf den externen IE einstellen.
- Dann mit "Call notesUIWorkspace.URLOpen(str_URL)" die Website öffnen.
- Alte Einstellung wieder einstellen: "Set item = docLocation.ReplaceItemValue("WebRetriever", int_oldbrowser)"

Leider klappt das ganze nicht so, wie ich will. Die Einstellungen werden  zwar übernommen, jedoch anscheinend zu spät. Der Link öffnet weiterhin innerhalb von Notes.

Was mache ich falsch?


mfg

Michael



animate:
keine Antwort auf deine Frage, aber ein anderer Lösungsvorschlag.

Du könntest mit dem shell Befehl den IExplorer starten und ihm sagen, welche Seite er öffnen soll.

Der Befehl zum Starten des IE lautet

iexplore http://www.atnotes.de

also insgesamt könnte das so aussehen:

Call Shell("iexplore http://www.atnotes.de")

klez:

--- Zitat von: Thomas Völk am 22.08.05 - 10:58:56 ---keine Antwort auf deine Frage, aber ein anderer Lösungsvorschlag.

Du könntest mit dem shell Befehl den IExplorer starten und ihm sagen, welche Seite er öffnen soll.

Der Befehl zum Starten des IE lautet

iexplore http://www.atnotes.de

also insgesamt könnte das so aussehen:

Call Shell("iexplore http://www.atnotes.de")

--- Ende Zitat ---

Sehr interessanter Vorschlag, der mir auch viel logischer vorkommt :)

Nur meine Umsetzung misslang:


--- Code: ---Sub Click(Source As Button)
Call Shell("iexplore http://www.atnotes.de")
End Sub
--- Ende Code ---
Das ergibt den Fehler:
"Data not saved due to script error(s)" (kann das Script gar nicht speichern.

In der Notes Hilfe finde ich folgendes Beispiel:

--- Code: ---' Start the Windows Calculator as a normal (not minimized)
' window with focus.
Dim taskId As Integer
taskId% = Shell("CALC.EXE", 1)
--- Ende Code ---
Und angepasst:

--- Code: ---Sub Click(Source As Button)
Dim taskId As Integer
taskId% = Shell("iexplore http://www.atnotes.de", 1)
End Sub
--- Ende Code ---
Dann bekomme ich:
"File not found"

In der Hilfe steht noch folgendes, womit ich nicht klar komme:

--- Zitat ---Usage
Shell must be called from within an expression or an assignment statement, so that its return value is used.
--- Ende Zitat ---

animate:
der Shell-Befehl kennt also den Ort, an dem die iexplore.exe liegt, nicht.
Dann musst du ihn wohl aus der Registry ermitteln.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App
Paths\IEXPLORE.EXE

flaite:
Ist es dann nicht wesentlich einfacher die Politik den Webretriever zu benutzen zu ändern?
Dh. im Location Dokument IE einzustellen?
Weiss eigentlich jemand, ob am Web Retriever von Seiten von Lotus überhaupt weiterentwickelt wird?

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln