Webbrowser Bedienung mit der Maus nicht zulassen
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 30 Antworten in diesem Thema. Der letzte Beitrag () ist von HDebus.
-
-
Indem man das HTML bearbeitet und dort alle Links entfernt(wird aber schwierig wenn es JS Handler gibt die auf das Click-Ereignis warten).
Die Frage ist warum magst du das Ganze sperren?
Lg Mokki -
Hey Mokko,
ich lass so den Zugrif auf Geräten zu, die PW geschützt sind. Ich möchte aber, dass die Anwender nur auf bestimmte Dinge zugreifen können, und so könnte ich das steuern.
z.B.: Zugriff auf einen Router um den Status abzufragen. Mehr aber auch nicht.
Wenn nun aber die Seite angezeigt wird, kann man auf alle weiteren Buttons / Links im WebBrowser klicken und somit kommt man auf Dinge, die man besser nicht macht.
Holger -
Wenn das PW hardcoded ist kann man es auslesen! So kannst du das bei Routern nicht machen.... Ev. gibt es Router die zulassen das man ein Benutzerkonto mit weniger Rechten anlegt.
Lg Mokki -
Hallo Mokki,
ja leider, aber das bleibt "Hausintern" ;=) (Familie)
Aber ich kann nicht immer überall hinfahren etc. Will mir nur einiges einfacher machen, aber die anderen sollen sich nicht auch noch einfach verklicken können. Also mit dem PW ist das nicht so schlimm.
Normalerweise hast Du natürlich recht und ich würde das PW dann auch nicht mit herausgeben.
Aber kann man nun überhaupt die Bedienung im Webbroser sperren und nur per Button zulassen?
Holger -
Ja klar, ich denke wenn du einfach nen durchsichtiges Control drüberlegst würde das schon gehen.
Lg Mokki -
-
Kann mir hier vielleicht jemand noch helfen?
ich habe nun viel gesucht, aber nichts gefunden.
Ich müsste ja z.B.: eine Picturebox über den Webbrowser legen, aber wie bekomme ich nun die Picturebox durchsichtig?
z.B.: das mit dem Transparencykey oder Opacity (nur für eine Form) geht einfach nicht.
Danke
Holger -
-
Aber das Ganze ist durty und hat eben Sicherheitslücken... Ps: Picturebox mit nem Png sollte auch gehen oder nen Label ohne Text.
Lg Mokki -
Ohne irgendwas zu im HTML Code zu editieren, bzw. zu entfernen kannst du die
.Enabled
Eigenschaft verwenden:
Edit://
Ich bin nun darauf gestoßen:
Das Webbrowser-Control besitzt zwar keine.Enabled
-Eigenschaft an sich. Dennoch lässt sich dies, über einen kleinen Umweg, bewerkstelligen.
Grundsätzlich einfach mit:CType(Me, System.Windows.Forms.Control).Enabled = value
Dennoch hier schnell als Control, damit du es direkt als Eigenschaft hast:
VB.NET-Quellcode
- Public Class AdvWebbrowser : Inherits WebBrowser
- Private _Enabled As Boolean = True
- <Browsable(True)>
- <DefaultValue(True)>
- <Description("Indicates, whether this webbrowser is enabled or not.")>
- <Category("Behavior")>
- Public Property IsEnabled As Boolean
- Get
- Return _Enabled
- End Get
- Set(value As Boolean)
- _Enabled = value
- CType(Me, System.Windows.Forms.Control).Enabled = value
- End Set
- End Property
- End Class
Das Ganze dürfte auch ein eindeutig schönerer Weg sein als von @Mokki oder @ChOoSeMyNaMe vorgeschlagen wurde.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Gather“ ()
-
Ok super. Ich dachte auch das es eine bessere Möglichkeit geben muss...
Lg Mokki -
-
Hallo Gather, hallo Mokki
ich habe also folgendes in einer neuen Class eingegeben:
VB.NET-Quellcode
- Imports System.ComponentModel
- Public Class Webbrowser_Transparent : Inherits WebBrowser
- Private _Enabled As Boolean = True
- <Browsable(True)>
- <DefaultValue(True)>
- <Description("Indicates, whether this webbrowser is enabled or not.")>
- <Category("Behavior")>
- Public Property IsEnabled As Boolean
- Get
- Return _Enabled
- End Get
- Set(ByVal value As Boolean)
- _Enabled = value
- CType(Me, System.Windows.Forms.Control).Enabled = value
- End Set
- End Property
- End Class
Danach habe ich dann natürlich das neue Control in meiner Toolbox (siehe Screenshot1):
Wenn ich das dann nun einbauen und die Parameter wie folgt setze, sieht es aber aus wie auf dem Screenshot2:
Das ich dadurchklicken kann oder nicht klappt, aber wie bekomme ich es nun auch noch transparent, so dass der Hintergrund vom Webbrowser angezeigt wird.
Ich glaube, dass es an der folgenden Zeile liegt
Denn eigentlich heißt der Webbrowser über dem das Transparente Control liegt Webbrowser1
Der wird mir aber nicht angeboten
Was mache ich hier falsch?
Danke
Holger -
-
-
Ja zeig mir mal das andere Control (Das halbtransparente)
Edit:// @HDebus Und außerdem, nenn den Webbrowser doch um, denn mit einem Unterstrich ist das ganze eher unschön. --> z.B. TransparentWebbrowser
-
Hey, die Namespaces werde ich noch machen, aber da ist nichts halbtransparentes.
Es gibt hier das Form
Darauf befindet sich das Menüstrip
Darunter zwei Panles
Auf Panel 1 befindet sich das Webbrowswer Control (was die Fritzbox anzeigt)
Darauf dann das Control von Dir.
Dann gibt es noch das zweite Panel und daruf befindet sich ein Button eine TextBox und ein Listview (wir erst nach klicken auf einem Menüpunkt sichtbar und das Panel 1 ausgeblendet.
Also ich sehe nicht halbtransparentes vielleicht sieht man das ja auf dem Screenshot
Holger
Edit
nun habe ich das Panel2 auf die richtige Postition zurückgesetzt, und dann bleibt das Control irgendwie im Vordergrund. Ich habe es aber auf das Panel1 gelegt. (siehe Screen4)
Soll ich mal das Projekt mal mailen? oder schick mir ne Mail und ich schicke Dir nen Link zum downloaden
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „HDebus“ ()
-
Jagut.. ich habe auch nirgends etwas eingebaut dass ein halbtransparentes control ermöglicht
Ich weiß leider noch nicht ganz was du willst.
Aber Controls in den Vordergrund bringen kannst du entweder im Designer (Rechtsklick -> In den Vordergrund) oder via..BringToFront()
Bzw. kannst du natürlich auch andere in den Hintergrund bringen.
Falls du nun über dem Webbrowser eine Art "Transparentes Panel" haben willst probier folgendes.
VB.NET-Quellcode
- Private Sub ApplyTransparentOverlay(c As Color, wb as AdvWebbrowser)
- Dim bit As Bitmap = TakeScreenShot(wb)
- Dim g As Graphics = Graphics.FromImage(bit)
- g.FillRectangle(New SolidBrush(c), New Rectangle(0, 0, bit.Width, bit.Height))
- Dim p As New Panel
- p.Size = Size
- wb.Controls.Add(p)
- p.Dock = DockStyle.Fill
- g = p.CreateGraphics()
- g.DrawImage(bit, 0, 0)
- End Sub
- Private Function TakeScreenShot(ByVal Control As Control) As Bitmap
- Dim tmpImg As New Bitmap(Control.Width, Control.Height)
- Using g As Graphics = Graphics.FromImage(tmpImg)
- g.CopyFromScreen(Control.PointToScreen(New Point(0, 0)), New Point(0, 0), New Size(Control.Width, Control.Height))
- End Using
- Return tmpImg
- _BitmapCreated = True
- End Function
- 'Aufruf:
- ApplyTransparentOverlay(Color.fromargb(50, SystemColors.Control), AdvWebbrowser1)
- 'Entfernen:
- AdvWebbrowser1.Controls.Clear
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Gather“ ()
-
-
Ähnliche Themen
-
Andi2572 - - Sonstige Problemstellungen