WinFuture-Forum.de: Button Von Webbrowser - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Button Von Webbrowser


#1 Mitglied ist offline   Trivalik 

  • Gruppe: aktive Mitglieder
  • Beiträge: 40
  • Beigetreten: 15. Mai 03
  • Reputation: 0

geschrieben 30. Mai 2006 - 16:47

Ich habe im Webbrowser eine Webseite. Dort ist ein Formular zum ausfüllen, und wie drücke ich nun den Button im Webbrowser. Ich habe zwar ne möglichkeit gefunden jedoch scheint diese nicht immer zu funktionieren. Deswegen wollte ich auf Handles zurückgreifen. Und mit sendmessage das dann an die handle schicken, das ist ja auch net das prob, nur die Handle eben von dem button.

Ich habe auch das HTMLElement von dem button jedoch konnte ich da auch im debug keine handle entdecken (ich weis das die net statisch ist) um das mal zu testen.
		[DllImport("user32.dll", EntryPoint = "SendMessage")]
		public static extern int SendMessage(System.IntPtr hWnd, int Msg, int wParam, System.IntPtr lParam);
		const int BM_Click = 0xF5;

...

SendMessage(/*Handle*/, BM_Click, 0, System.IntPtr.Zero);

So sieht das im ansatz aus.

Mein alter versuch wo das teils klappte war:

inputs[2].Focus(); //Button aktivieren
SendKeys.Send("{ENTER}");

Diese variante hätte ich vielleicht auch versucht zu erweitern aber ich fand das auch net schön wenn ich das mit Erreignissen vollstopfe gotfocus und lostfocus und einer extra variable in der klasse.

Ich weis das jetzt hier keiner einen Rat weis. <_<
0

Anzeige



#2 Mitglied ist offline   stefanra 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.199
  • Beigetreten: 13. September 04
  • Reputation: 1

geschrieben 30. Mai 2006 - 16:53

Du könntest auch mit Javascript das Formular abschicken.
0

#3 Mitglied ist offline   Trivalik 

  • Gruppe: aktive Mitglieder
  • Beiträge: 40
  • Beigetreten: 15. Mai 03
  • Reputation: 0

geschrieben 30. Mai 2006 - 17:26

Ja das dacht ich mir auch, aber ich habe meine funktionierende lösung nochmal gemacht diesemal mit losingfocus, und dieses wird nicht einmal aufgerufen, also liegt es wirklich an was anderem.

Ich drücke enter auf den Button, nun sollte die Seite neu laden, das passiert aber irgendwie nicht, egal wieviel doevents ich mache. Den die Seite bleibt an Sich immer noch so wie sie ist, erst wenn die funktion zu ende ist seh ich das der lädt. Was mach ich da falsch?

//Documentcomplet wird aufgerufen, jedoch etwa 5 mal aber passiert is nix.
		private bool isBusy;
		private HtmlElement html;
...

//bis hier wurde das formular geladen und gefüllt
				isBusy = true;
				inputs[2].GotFocus += new HtmlElementEventHandler(SmsSend_GotFocus);
				inputs[2].LosingFocus += new HtmlElementEventHandler(SmsSend_LosingFocus);
				html = inputs[2];
				inputs[2].Focus();
				SendKeys.Send("{ENTER}");
				html = null;

...
		void SmsSend_LosingFocus(object sender, HtmlElementEventArgs e)
		{
			if (html != null)
			{
				html.Focus();
			}
		}

		void SmsSend_GotFocus(object sender, HtmlElementEventArgs e)
		{
			
		}

		void webSms_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
		{
			isBusy =false;
		}

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0