WebGadget Fehlermeldungen unterdrücken?

Anfängerfragen zum Programmieren mit PureBasic.
Blu-Ray
Beiträge: 15
Registriert: 21.05.2008 12:10

Beitrag von Blu-Ray »

OK. Ich glaube, dass lasse ich lieber ;-)

Aber nochmals vielen Dank für die Antworten!
Benutzeravatar
FGK
Beiträge: 249
Registriert: 09.01.2005 14:02
Computerausstattung: i5-4430 CPU / 8GB RAM
GeForce GT630
Windows 10 Home / 64-bit
Wohnort: Augsburg

Beitrag von FGK »

@ Blu-Ray

Ich hab dir mal ein lauffähiges Beispiel gemacht.
Inklusive ner Routine die das Tab und Del im Browser managt.
Ich denke damit kommst du dann schon klar.

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
Gruß FGK
Blu-Ray
Beiträge: 15
Registriert: 21.05.2008 12:10

Beitrag von Blu-Ray »

Vielen Dank, ich versuche mal, das einzubauen
Benutzeravatar
dige
Beiträge: 1236
Registriert: 08.09.2004 08:53

Beitrag von dige »

FGK 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 
Mit put_Silent(#True) wird zwar das Nachfragefenster fürs Skriptdebugging unterdrückt, aber nun direkt der Debugger gestartet. Kann mann nicht auch
definieren, das Fehler generell unterdrückt werden?
"Papa, ich laufe schneller - dann ist es nicht so weit."
Antworten