ich weiß der thread ist schon alt, aber ich will keinen neuen dafür eröffnen.
Wie kann ich es verhindern, dass wenn mein C# Webbrowser beim klicken auf einen Link den Internet Explorer startet?
Also der soll immer in meinem Programm bleiben und nichts neues öffnen 😉
edit2:
gut ich bin wieder ein stück weiter.
Nun füllt er aber komischerweise nichtmehr die webform aus.
Es kommt die Meldung InvalidCastException:
private bool is_Paypal_Load_Complete = false;
private bool is_Paypal_Send_Complete = false;
private void btn_Check_Click(object sender, EventArgs e)
{
bW_Loader.RunWorkerAsync();
}
private bool Paypal_Load(WebBrowser Browser)
{
Browser.Navigate("https://www.paypal.com/de/cgi-bin/webscr?cmd=_login-run");
Browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Paypal_Load_Complete);
while (is_Paypal_Load_Complete == false)
{ }
return true;
}
private void Paypal_Load_Complete(object sender, WebBrowserDocumentCompletedEventArgs e)
{
is_Paypal_Load_Complete = true;
}
private bool Paypal_Send(WebBrowser Browser, string EMail, string Passwort)
{
if (Paypal_Load(Browser) == true)
{
Browser.Document.All["login_email"].SetAttribute("value", EMail);
Browser.Document.All["login_password"].SetAttribute("value", Passwort);
Browser.Document.Forms[1].InvokeMember("submit");
Browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Paypal_Send_Complete);
while (is_Paypal_Send_Complete == false)
{ }
return true;
}
return false;
}
private void Paypal_Send_Complete(object sender, WebBrowserDocumentCompletedEventArgs e)
{
is_Paypal_Send_Complete = true;
}
private void bW_Loader_DoWork(object sender, DoWorkEventArgs e)
{
if (Paypal_Send(debug_browser, "", "") == true)
MessageBox.Show("Soweit so gut");
}
edit:
hab gerade gesehen, dass man es mit events machen soll....
gut dann halt so:
private bool Paypal_Load(WebBrowser Browser)
{
Browser.Navigate("https://www.paypal.com/de/cgi-bin/webscr?cmd=_login-run");
Browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Paypal_Load_Complete);
return true;
}
private void Paypal_Load_Complete(object sender, WebBrowserDocumentCompletedEventArgs e)
{
MessageBox.Show("complete");
}
nur wie bekomm ich mein bool jetzt auf true/false, wenns richtig geladen ist.. kann ich dem event i-wie eine art rückgabewert geben?
Also bisher soll er nur die Seite Paypal aufrufen.
Daran scheiter ich schon 😄
private delegate bool T_OUT(WebBrowser Browser);
private void btn_Check_Click(object sender, EventArgs e)
{
bW_Loader.RunWorkerAsync();
}
private bool Paypal_Load(WebBrowser Browser)
{
if (Browser.InvokeRequired)
{
T_OUT t = new T_OUT(Paypal_Load);
Browser.Invoke(t, Browser);
}
else
{
Browser.Navigate("https://www.paypal.com/de/cgi-bin/webscr?cmd=_login-run");
while (Browser.ReadyState.Equals(WebBrowserReadyState.Complete) == false)
{ }
if (Browser.ReadyState.Equals(WebBrowserReadyState.Complete) == true)
return true;
else
return false;
}
return false;
}
private void bW_Loader_DoWork(object sender, DoWorkEventArgs e)
{
Paypal_Load(debug_browser);
}
bei der While-Schleife wo der überprüfen soll ob der Browser die Seite fertig geladen hat, steht IMMER als status "uninizialised"..
ich weiß nicht warum, weil der ja vorher geladen wird.
(debug_browser ist der webbrowser in meiner form)
Tut mir leid, dass ich dich enttäuschen muss, aber es wird richtig gematcht 😉
PS: mit multiline, das hab ich noch nciht hinbekommen.
Ich denke das ist besser, wenn ich das in der RegEx mit löse...
Also nochmal wie kann ich die RegEx: "(/\(.?)\*/)" mit \n\r\t benutzen...
ich überlege auch schon fleißig 😄
hab noch ne ergänzungsfrage.. was ist wenn ein \n \r \t oder sonstiges für eine neue zeile dazwischensteht?
<?php
/hier ist
ein komment/
...code
?>
wie muss dann die regex: "(/\(.)\*/)"
angepasst werden, damit das auch zeilenübergreifend funktioniert?
danke klappt jetzt perfekt
"(/\(.)\*/)" <-- ideal
danke nochmal
jetzt schreib er mir: Nicht erkannte Escapesequenz
???
an sich hab ich mir das auch schon gedacht, dass das von dir richtig ist
ich möchte halt alles was zwischen /* / steht haben + die / */ tags
<?php /quotation/ ?>
soll dann
/quotation/
per regex ausgeben 😉
string Text = "<?php /quotation/ ?>";
RegEx RX = new RegEx("/(.?)*/");
Match m = RX.Match(Text);
so .. reicht das beispiel?
Hallo.
Ich bin gerade dabei nen PHP-Syntax-Highlighter zu schreiben.
Bisher klappt auch alles wunderbar, nur jetzt habe ich ein paar Probleme bei den Comments.
Ich habe 2 RegEx die noch nicth so richtig wollen:
/(.?)/ <- klappt nicht aber ich weiß nicht warum
//(.?)\n <- klappt auch i-wie nicht ... ebenfalls keine ahnung
edit: //(.*?)[\n] <-- so funktionierts.. also fehlt mir nurnoch das erste
Ich hoffe ihr könnt mir helfen
Vielen Dank im Voraus