Meine Lösung finde ich natürlich viel besser
auch wenn nun immer das Programm mehrfach gestartet wird bei jedem Aufruf.
Wie man das ändert weiß ich nicht. Hoffe es kann mir jemand sagen
Code: Alles auswählen
Procedure.i WebGadgetSilent(pbnr)
;keine Fehlermeldungen
Protected browser.IWebBrowser2
browser = GetWindowLongPtr_(GadgetID(pbnr), #GWL_USERDATA)
If browser: browser\put_Silent(#True): EndIf
EndProcedure
Procedure.i WebGadgetBusy(pbnr)
Protected event
While GetGadgetAttribute(pbnr, #PB_Web_Busy)
event = WindowEvent()
Delay(1)
Wend
ProcedureReturn #S_OK
EndProcedure
Word.s = ProgramParameter()
If Word
If Right(Word, 1) = "_"
Word = Left(Word, Len(Word) -1)
ElseIf Left(Word, 1) = "#"
Word = Right(Word,Len(Word) -1)
EndIf
Else
MessageRequester("Error", "kein Suchbegriff")
End
EndIf
LoadFont(0, "Arial", 18)
url$ = "https://search.msdn.microsoft.com/search/en-US/Default.aspx?siteId=0&tab=0&query=" + Word
OpenWindow(0, 0, 0, 1500, 700, "MSDN", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget(1,500,320,600,66,"bitte warten.. suche nach " + word)
SetGadgetFont(1, FontID(0))
br = WindowWidth(0)
hh = WindowHeight(0)
WebGadget(0, 0, 0, 0, 0, url$)
HideGadget(0, 1)
WebGadgetSilent(0)
WebGadgetBusy(0)
ergebnis$ = GetGadgetItemText(0, #PB_Web_HtmlCode)
searchurl$ = "https://msdn.microsoft.com/en-us/library/windows/desktop"
p1 = FindString(ergebnis$, searchurl$)
If p1
p2 = FindString(Ergebnis$, ".aspx", p1)
If p2
wordurl$ = Mid(ergebnis$, p1, p2-p1) + ".aspx"
SetGadgetText(0, wordurl$)
HideGadget(1, 1)
ResizeGadget(0, 0, 0, br, hh)
HideGadget(0, 0)
Else
error = 2
EndIf
Else
error = 1
EndIf
If error
MessageRequester("Error", "Finde nix")
End
EndIf
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
In die IDE einbinden.
Programm kompilieren
Werkzeuge / Werkzeuge konfigurieren aufrufen
Neu wählen
Kommandozeile = Programmname incl.Pfad
Argumente = %WORD
Arbeitsverzeichnis = 'nix'
Name = z.B. MSDN Hilfe
Ereignis so lassen
Tastenkürzel z.B. Alt F1
ok drücken