Hoi allemaal,
ik ben al een tijdje aan het vechten met een webview2 control en krijg het niet gewonnen.
Het idee is om een website te besturen met muiskliks en key presses, maar die website mag alleen deze events van mijn software krijgen, het is niet de bedoeling dat gebruikers zelf kunnen klikken enz.
Daarom heb ik de webview2 disabled zodat het idd geen events krijgt, en enable hem alleen in de korte tijd dat mn software er clicks en keypresses naartoe stuurt.
Voor de muiskliks heb ik idd een werkbare oplossing gevonden:
Dit werkt behoorlijk stabiel.
Het enige is dat ik dat voor keypresses niet voor elkaar krijg, nu heb ik:
maar daarna loop ik vast
Ik weet nl niet wanneer ik mn control weer moet disablen, en wil dat liever niet met timers doen, responsetijden zijn nl moeilijk in te schatten met browsers.
Als ik een
Ook geprobeerd om de webView_Key* events af te vangen, maar deze worden niet afgevuurd door de webview component.
WebView's wndProc overriden had ook geen zin, de messages die voorbijkomen geven geen enkele hint over wanneer de keys verstuurt/verwerkt zijn
Relevante info: vs2019 met een winforms applicatie op .NET Framework (verschillende versies geprobeerd maar ze leverden allemaal hetzelfde niet-werkende resultaat)
ik ben al een tijdje aan het vechten met een webview2 control en krijg het niet gewonnen.
Het idee is om een website te besturen met muiskliks en key presses, maar die website mag alleen deze events van mijn software krijgen, het is niet de bedoeling dat gebruikers zelf kunnen klikken enz.
Daarom heb ik de webview2 disabled zodat het idd geen events krijgt, en enable hem alleen in de korte tijd dat mn software er clicks en keypresses naartoe stuurt.
Voor de muiskliks heb ik idd een werkbare oplossing gevonden:
code:
1
2
3
4
5
6
7
| webView.Enabled = true; webView.Focus(); Application.DoEvents(); Cursor.Position = new Point(x,y); CursorHelper.DoLeftMouseClick(); webView.Parent.Focus(); webView.Enabled = false; |
Dit werkt behoorlijk stabiel.
Het enige is dat ik dat voor keypresses niet voor elkaar krijg, nu heb ik:
code:
1
2
3
4
5
| webView.Enabled = true; Application.DoEvents(); webView.Focus(); Application.DoEvents(); sendKeys("aaab"); |
maar daarna loop ik vast
Ik weet nl niet wanneer ik mn control weer moet disablen, en wil dat liever niet met timers doen, responsetijden zijn nl moeilijk in te schatten met browsers.
Als ik een
code:
na de sendkeys doe (of met een extra 1
| webView.Enabled=false |
code:
) is het te vroeg en komen de keys niet aan in de webvew.1
| Application.DoEvents(); |
Ook geprobeerd om de webView_Key* events af te vangen, maar deze worden niet afgevuurd door de webview component.
WebView's wndProc overriden had ook geen zin, de messages die voorbijkomen geven geen enkele hint over wanneer de keys verstuurt/verwerkt zijn
Relevante info: vs2019 met een winforms applicatie op .NET Framework (verschillende versies geprobeerd maar ze leverden allemaal hetzelfde niet-werkende resultaat)
Het grote voordeel van windows is dat je meer dos-boxen kan openen