Toon posts:

[.Net] Webbrowser op hidden form refreshen neemt focus ?

Pagina: 1
Acties:

  • Mavamaarten
  • Registratie: september 2009
  • Laatst online: 17:10
Hallo tweakers :)

Ik ben vandaag begonnen met mijn programma, nl. SmartSchool Notifier.

Misschien kennen jullie SmartSchool, het is een soort platform waarmee leerlingen en leerkrachten mee kunnen communiceren, documenten/taken uitwisselen,...
Het enige k*tte is dat je onmogelijk alles door kan sluizen naar je email. Gevolg : je leest nooit je smartschool.
Het probleem hiervan is natuurlijk dat je soms belangrijke dingen niet weet, enzoverder.

Mijn oplossing : SmartSchool Notifier !
Het logt in de achtergrond in op SmartSchool, en checkt voor de tekst "U heeft nieuwe berichten." en "U heeft een nieuw bericht", dat verschijnt als je een nieuw bericht hebt.
Alles werkt, ik krijg netjes een ballonnetje dat ik een nieuw bericht heb.

HET PROBLEEM :D
Het enige erg lastige is, dat elke 1 minuut (=refresh tijd) mijn focus gaat naar de (hidden) webbrowser.
Als je bijv. iets aan het posten bent op GoT, stop je opeens met typen.
Ik heb echter geen idee waarom dit gebeurt, want ik gebruik natuurlijk geen sendkeys en zo van die dirty oplossingen.

Dit is de code die elke 1 minuut uitgevoerd wordt :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
        If WebBrowser1.IsBusy = False Then
            If InStr(WebBrowser1.Document.Body.InnerText, "U heeft nieuwe berichten.", CompareMethod.Text) > 0 Or InStr(WebBrowser1.Document.Body.InnerText, "U heeft een nieuw bericht", CompareMethod.Text) > 0 Then
                'NIEUW(E) BERICHT(EN)
                Timer3.Interval = 8000
                Timer3.Start()
                NotifyIcon1.Visible = True
                NotifyIcon1.BalloonTipText = "U heeft een nieuw bericht op SmartSchool." & vbCrLf & "Klik op deze ballon om te openen."
                NotifyIcon1.BalloonTipTitle = "SmartSchool Notifier"
                NotifyIcon1.ShowBalloonTip(8000)
            Else
                'Geen berichten
            End If
        End If


Nergens iets dat focus vraagt, toch ?

Ik hoop dat iemand moeite doet om dit alles te lezen,
en hopelijk een antwoord heeft op mijn probleem.

Alvast bedankt,
Mavamaarten.

Android developer & dürüm-liefhebber


  • Alex)
  • Registratie: juni 2003
  • Laatst online: 17-08 18:03
Mijn vermoeden is dat er op de SmartSchool-pagina ergens een stukje javascript staat wat de focus op een control op de pagina zet. Hier kun je weinig tegen doen wanneer je een WebBrowser-control gebruikt. Wat je wél kunt doen, is zelf de webrequests maken i.p.v. Internet Explorer dit te laten afhandelen. Meer werk is het wel, maar ook veel flexibeler.

Kijk eens naar de WebRequest-class en wat je zoal daarmee kunt doen.

Biedt SmartSchool verder geen API's aan trouwens?

We are shaping the future


  • Mavamaarten
  • Registratie: september 2009
  • Laatst online: 17:10
Nope, heb ik al gecheckt.

Is er geen manier om die JavaScript te onderdrukken ?
Ik kan trouwens nergens iets focus-erend achtig vinden met firebug...

Android developer & dürüm-liefhebber


  • RobIII
  • Registratie: december 2001
  • Laatst online: 14:03

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Mavamaarten schreef op vrijdag 01 oktober 2010 @ 18:45:
Nope, heb ik al gecheckt.

Is er geen manier om die JavaScript te onderdrukken ?
Jawel, geen browser control gebruiken maar een Webrequest; zoals reeds gezegd.
Mavamaarten schreef op vrijdag 01 oktober 2010 @ 18:36:
Ik heb echter geen idee waarom dit gebeurt, want ik gebruik natuurlijk geen sendkeys en zo van die dirty oplossingen.
En een hidden browser gebruiken is niet ranzig :? Wat nou als ze, zeg, vandaag of morgen een banner met geluid op die pagina mikken bijvoorbeeld? Zit iedereen zich af te vragen waar dat nou weer vandaan komt :P

[Voor 23% gewijzigd door RobIII op 01-10-2010 19:28]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Roses are red Violets are blue, Unexpected ‘{‘ on line 32.

Over mij


  • Mavamaarten
  • Registratie: september 2009
  • Laatst online: 17:10
Je hebt wel gelijk dat de Webbrowser een beetje een ranzige oplossing is, maar het probleem is dat ik op de main pagina gewoon een string text zoek. De enige manier om in te loggen op die site is door zo'n form in te vullen, en voor die WebRequest class ben ik waarschijnlijk veel te noob om te snappen.

Android developer & dürüm-liefhebber


  • Alex)
  • Registratie: juni 2003
  • Laatst online: 17-08 18:03
Het is je gelukt om het WebBrowser control te snappen, WebRequest gaat je dan ook wel lukken. Wat je moet doen is kijken hoe de sessie wordt opgebouwd in een browser en dat na zien te bootsen d.m.v. WebRequests.

We are shaping the future


  • Mavamaarten
  • Registratie: september 2009
  • Laatst online: 17:10
Nu niet dat WebBrowser veel voorstelt qua snappen, maar ik zal proberen...

Edit : Ik snap de WebRequest class hoor :)
Het enige probleem dat ik nu ondervind, is dat ik enkel de loginpagina kan bereiken. Ik moet ingelogd geraken.

code:
1
2
3
4
5
6
7
8
9
Dim request As WebRequest = WebRequest.Create("http://annuntia.smartschool.be/index.php")
        request.Credentials = New System.Net.NetworkCredential(TextBox1.Text, TextBox2.Text)
        Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)
        MsgBox(response.StatusDescription)
        Dim dataStream As Stream = response.GetResponseStream()
        Dim reader As New StreamReader(dataStream)
        Dim responseFromServer As String = reader.ReadToEnd()
        Timer1.Enabled = False
        MsgBox(responseFromServer)           ' <=== code die ik krijg :)


De code die ik krijg is gewoon de html source van de loginpagina. Hoe kan ik in godsnaam inloggen ?
Ik heb al geprobeerd met NetwordCredentials, maar die neemt hij niet (negeert ze gewoon).

Als iemand mij hiermee verder kan helpen, dan ben ik gered :D

[Voor 88% gewijzigd door Mavamaarten op 02-10-2010 17:55]

Android developer & dürüm-liefhebber

Pagina: 1


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee