
Aber nochmals vielen Dank für die Antworten!
Code: Alles auswählen
#WebGadget = 1
Procedure Webgadget_PostMessage(Gadget.l,wParam,lParam)
Static FirstCall.l
If IsGadget(Gadget) And GadgetType(Gadget)=#PB_GadgetType_Web
If FirstCall = 0
CoInitialize_(0)
CoCreateInstance_(?CLSID_IOleInPlaceActiveObject, 0, 1, ?IID_IOleInPlaceActiveObject,@OleObject.IOleInPlaceActiveObject)
FirstCall = 1
EndIf
WebObject.IWebBrowser2 = GetWindowLong_(GadgetID(Gadget), #GWL_USERDATA)
WebObject\QueryInterface(?IID_IOleInPlaceActiveObject, @OleObject.IOleInPlaceActiveObject)
web.MSG\message = #WM_KEYDOWN
web\wParam = wParam
web\lParam = lParam
OleObject\TranslateAccelerator(@web)
OleObject\Release()
EndIf
EndProcedure
If OpenWindow(0,10,10,820,620,"Webbrowser")
If CreateGadgetList(WindowID(0))
WebGadget(#WebGadget,10,10,800,600,"www.google.de")
EndIf
Repeat
EventID.l = WaitWindowEvent()
EventType.l = EventType()
EventGadget.l = EventGadget()
Select EventID
Case #WM_KEYDOWN
If EventGadget = #WebGadget
If EventwParam() = #VK_TAB Or EventwParam() = #VK_DELETE
Webgadget_PostMessage(#WebGadget,EventwParam(),EventlParam())
EndIf
EndIf
EndSelect
Until EventID=#PB_Event_CloseWindow
EndIf
CoUninitialize_()
End
DataSection
IID_IOleInPlaceActiveObject: ; {00000117-0000-0000-C000-000000000046}
Data.l $00000117
Data.w $0000, $0000
Data.b $C0, $00, $00, $00, $00, $00, $00, $46
CLSID_IOleInPlaceActiveObject: ; {00000320-0000-0000-C000-000000000046}
Data.l $00000320
Data.w $0000, $0000
Data.b $C0, $00, $00, $00, $00, $00, $00, $46
EndDataSection
Mit put_Silent(#True) wird zwar das Nachfragefenster fürs Skriptdebugging unterdrückt, aber nun direkt der Debugger gestartet. Kann mann nicht auchFGK hat geschrieben:Code: Alles auswählen
Procedure NoScriptingErrors(Gadget.l) If IsGadget(Gadget) And GadgetType(Gadget) = #PB_GadgetType_Web Browser.IWebBrowser2 = GetWindowLong_(GadgetID(Gadget), #GWL_USERDATA) If Browser Browser\put_Silent(#True) EndIf EndIf EndProcedure