TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Tilen Suhadolnik
NA
1
0
c# problem with webBrowser.ReadyState
Aug 11 2010 4:46 AM
Hi,
here I'm stucked again :crying:
I got this error:
System.InvalidCastException was unhandled by user code
System.InvalidCastException was unhandled by user code
Message=Specified cast is not valid.
Source=System.Windows.Forms
StackTrace:
at System.Windows.Forms.UnsafeNativeMethods.IHTMLDocument2.GetLocation()
at System.Windows.Forms.WebBrowser.get_Document()
at System.Windows.Forms.WebBrowser.get_ReadyState()
at test.Form2.timer1_Tick(Object sender, EventArgs e) in C:\Users\Tilen\documents\visual studio 2010\Projects\test\Form2.cs:line 410
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.DoEvents()
at test.Form2.backgroundWorker1_DoWork(Object sender, DoWorkEventArgs e) in C:\Users\Tilen\documents\visual studio 2010\Projects\test\Form2.cs:line 350
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
InnerException:
This error I get with that:
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();
I dont know why I get that error, on the other applications this has worked.
Here is the complete function:
private void timer1_Tick(object sender, EventArgs e)
{
MessageBox.Show("timer time");
timer1.Stop();
timer1.Interval = 300000;
for (int i = 0; i <= 199; i++)
{
string id_mesta, thtml, trenutno, trenutno2;
int[] surovine = new int[4];
int[] tip_polja = new int[19];
int[] indeks_min_surovin = new int[4];
int[,] level_polj = new int[19,3];
int temp_level, zito_na_uro;
bool prva_izbira = true;
id_mesta = globalno.mesta[i, 0];
if (id_mesta == "") break;
if (File.Exists("UserConfig\\" + id_mesta + ".txt"))
{
webBrowser1.Navigate(globalno.g_userServer + "dorf1.php?newdid=" + id_mesta);
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) Application.DoEvents();
// while (webBrowser1.IsBusy == false) Application.DoEvents();
// while (webBrowser1.IsBusy == true) Application.DoEvents();
thtml = webBrowser1.DocumentText;
string tipmesta = funkcije.StringRegExp(thtml, "id=\"village_map\" class=\"", "\"");
switch(tipmesta)
{
// 0-žito, 1-les, 2-glina, 3-železo
case "f1": tip_polja[1] = 0; tip_polja[2] = 0; tip_polja[3] = 1; tip_polja[4] = 0; tip_polja[5] = 0; tip_polja[6] = 2; tip_polja[7] = 3; tip_polja[8] = 0; tip_polja[9] = 0; tip_polja[10] = 3; tip_polja[11] = 3; tip_polja[12] = 0; tip_polja[13] = 0; tip_polja[14] = 1; tip_polja[15] = 0; tip_polja[16] = 2; tip_polja[17] = 1; tip_polja[18] = 2; break;
case "f2": tip_polja[1] = 3; tip_polja[2] = 0; tip_polja[3] = 1; tip_polja[4] = 3; tip_polja[5] = 2; tip_polja[6] = 2; tip_polja[7] = 3; tip_polja[8] = 0; tip_polja[9] = 0; tip_polja[10] = 3; tip_polja[11] = 3; tip_polja[12] = 0; tip_polja[13] = 0; tip_polja[14] = 1; tip_polja[15] = 0; tip_polja[16] = 2; tip_polja[17] = 1; tip_polja[18] = 2; break;
case "f3": tip_polja[1] = 1; tip_polja[2] = 0; tip_polja[3] = 1; tip_polja[4] = 3; tip_polja[5] = 2; tip_polja[6] = 2; tip_polja[7] = 3; tip_polja[8] = 0; tip_polja[9] = 0; tip_polja[10] = 3; tip_polja[11] = 3; tip_polja[12] = 0; tip_polja[13] = 0; tip_polja[14] = 1; tip_polja[15] = 0; tip_polja[16] = 2; tip_polja[17] = 1; tip_polja[18] = 2; break;
case "f4": tip_polja[1] = 1; tip_polja[2] = 0; tip_polja[3] = 1; tip_polja[4] = 2; tip_polja[5] = 2; tip_polja[6] = 2; tip_polja[7] = 3; tip_polja[8] = 0; tip_polja[9] = 0; tip_polja[10] = 3; tip_polja[11] = 3; tip_polja[12] = 0; tip_polja[13] = 0; tip_polja[14] = 1; tip_polja[15] = 0; tip_polja[16] = 2; tip_polja[17] = 1; tip_polja[18] = 2; break;
case "f5": tip_polja[1] = 1; tip_polja[2] = 0; tip_polja[3] = 1; tip_polja[4] = 3; tip_polja[5] = 1; tip_polja[6] = 2; tip_polja[7] = 3; tip_polja[8] = 0; tip_polja[9] = 0; tip_polja[10] = 3; tip_polja[11] = 3; tip_polja[12] = 0; tip_polja[13] = 0; tip_polja[14] = 1; tip_polja[15] = 0; tip_polja[16] = 2; tip_polja[17] = 1; tip_polja[18] = 2; break;
case "f6": tip_polja[1] = 0; tip_polja[2] = 0; tip_polja[3] = 1; tip_polja[4] = 3; tip_polja[5] = 0; tip_polja[6] = 0; tip_polja[7] = 0; tip_polja[8] = 0; tip_polja[9] = 0; tip_polja[10] = 0; tip_polja[11] = 0; tip_polja[12] = 0; tip_polja[13] = 0; tip_polja[14] = 0; tip_polja[15] = 0; tip_polja[16] = 2; tip_polja[17] = 0; tip_polja[18] = 0; break;
case "f7": tip_polja[1] = 0; tip_polja[2] = 0; tip_polja[3] = 0; tip_polja[4] = 1; tip_polja[5] = 2; tip_polja[6] = 2; tip_polja[7] = 3; tip_polja[8] = 0; tip_polja[9] = 0; tip_polja[10] = 3; tip_polja[11] = 3; tip_polja[12] = 0; tip_polja[13] = 0; tip_polja[14] = 1; tip_polja[15] = 0; tip_polja[16] = 2; tip_polja[17] = 1; tip_polja[18] = 2; break;
case "f8": tip_polja[1] = 3; tip_polja[2] = 0; tip_polja[3] = 0; tip_polja[4] = 1; tip_polja[5] = 2; tip_polja[6] = 2; tip_polja[7] = 3; tip_polja[8] = 0; tip_polja[9] = 0; tip_polja[10] = 3; tip_polja[11] = 3; tip_polja[12] = 0; tip_polja[13] = 0; tip_polja[14] = 1; tip_polja[15] = 0; tip_polja[16] = 2; tip_polja[17] = 1; tip_polja[18] = 2; break;
case "f9": tip_polja[1] = 3; tip_polja[2] = 0; tip_polja[3] = 0; tip_polja[4] = 1; tip_polja[5] = 1; tip_polja[6] = 2; tip_polja[7] = 3; tip_polja[8] = 0; tip_polja[9] = 0; tip_polja[10] = 3; tip_polja[11] = 3; tip_polja[12] = 0; tip_polja[13] = 0; tip_polja[14] = 1; tip_polja[15] = 0; tip_polja[16] = 2; tip_polja[17] = 1; tip_polja[18] = 2; break;
case "f10": tip_polja[1] = 3; tip_polja[2] = 0; tip_polja[3] = 1; tip_polja[4] = 2; tip_polja[5] = 2; tip_polja[6] = 2; tip_polja[7] = 3; tip_polja[8] = 0; tip_polja[9] = 0; tip_polja[10] = 3; tip_polja[11] = 3; tip_polja[12] = 0; tip_polja[13] = 0; tip_polja[14] = 1; tip_polja[15] = 0; tip_polja[16] = 2; tip_polja[17] = 1; tip_polja[18] = 2; break;
case "f11": tip_polja[1] = 3; tip_polja[2] = 1; tip_polja[3] = 1; tip_polja[4] = 3; tip_polja[5] = 1; tip_polja[6] = 0; tip_polja[7] = 0; tip_polja[8] = 3; tip_polja[9] = 3; tip_polja[10] = 2; tip_polja[11] = 2; tip_polja[12] = 3; tip_polja[13] = 1; tip_polja[14] = 0; tip_polja[15] = 0; tip_polja[16] = 2; tip_polja[17] = 0; tip_polja[18] = 0; break;
case "f12": tip_polja[1] = 1; tip_polja[2] = 0; tip_polja[3] = 1; tip_polja[4] = 1; tip_polja[5] = 2; tip_polja[6] = 2; tip_polja[7] = 3; tip_polja[8] = 0; tip_polja[9] = 0; tip_polja[10] = 3; tip_polja[11] = 3; tip_polja[12] = 0; tip_polja[13] = 0; tip_polja[14] = 1; tip_polja[15] = 0; tip_polja[16] = 2; tip_polja[17] = 1; tip_polja[18] = 2; break;
default: tip_polja[1] = 1; tip_polja[2] = 0; tip_polja[3] = 1; tip_polja[4] = 3; tip_polja[5] = 2; tip_polja[6] = 2; tip_polja[7] = 3; tip_polja[8] = 0; tip_polja[9] = 0; tip_polja[10] = 3; tip_polja[11] = 3; tip_polja[12] = 0; tip_polja[13] = 0; tip_polja[14] = 1; tip_polja[15] = 0; tip_polja[16] = 2; tip_polja[17] = 1; tip_polja[18] = 2; break;
}
for (int j = 1; j < 19; j++)
{
string level2 = funkcije.StringRegExp(thtml, "class=\"reslevel rf" + j + " level", "\"");
int level = System.Convert.ToInt32(level2);
switch (j)
{
case 1: level_polj[j,0] = level; break;
case 2: level_polj[j,0] = level; break;
case 3: level_polj[j,0] = level; break;
case 4: level_polj[j,0] = level; break;
case 5: level_polj[j,0] = level; break;
case 6: level_polj[j,0] = level; break;
case 7: level_polj[j,0] = level; break;
case 8: level_polj[j,0] = level; break;
case 9: level_polj[j,0] = level; break;
case 10: level_polj[j,0] = level; break;
case 11: level_polj[j,0] = level; break;
case 12: level_polj[j,0] = level; break;
case 13: level_polj[j,0] = level; break;
case 14: level_polj[j,0] = level; break;
case 15: level_polj[j,0] = level; break;
case 16: level_polj[j,0] = level; break;
case 17: level_polj[j,0] = level; break;
case 18: level_polj[j,0] = level; break;
}
}
for (int j = 1; j < 19; j++)
{
string temp = funkcije.preberiPodatek("polje"+j, "UserConfig\\" + id_mesta + ".txt");
if(temp == "error") temp_level = 0;
else temp_level = System.Convert.ToInt32(temp);
switch (j)
{
case 1: level_polj[j, 1] = temp_level; break;
case 2: level_polj[j, 1] = temp_level; break;
case 3: level_polj[j, 1] = temp_level; break;
case 4: level_polj[j, 1] = temp_level; break;
case 5: level_polj[j, 1] = temp_level; break;
case 6: level_polj[j, 1] = temp_level; break;
case 7: level_polj[j, 1] = temp_level; break;
case 8: level_polj[j, 1] = temp_level; break;
case 9: level_polj[j, 1] = temp_level; break;
case 10: level_polj[j, 1] = temp_level; break;
case 11: level_polj[j, 1] = temp_level; break;
case 12: level_polj[j, 1] = temp_level; break;
case 13: level_polj[j, 1] = temp_level; break;
case 14: level_polj[j, 1] = temp_level; break;
case 15: level_polj[j, 1] = temp_level; break;
case 16: level_polj[j, 1] = temp_level; break;
case 17: level_polj[j, 1] = temp_level; break;
case 18: level_polj[j, 1] = temp_level; break;
}
}
for (int j = 1; j < 19; j++)
{
level_polj[j, 2] = level_polj[j, 1] - level_polj[j, 0];
}
trenutno2 = funkcije.StringRegExp(thtml, "<td id=\"l4\" title=\"", "\"");
trenutno = funkcije.StringRegExp(thtml, "<td id=\"l4\" title=\"" + trenutno2 + "\">", "/");
if (trenutno == "error") surovine[1] = 1000;
else surovine[1] = System.Convert.ToInt32(trenutno);
trenutno2 = funkcije.StringRegExp(thtml, "<td id=\"l3\" title=\"", "\"");
trenutno = funkcije.StringRegExp(thtml, "<td id=\"l3\" title=\"" + trenutno2 + "\">", "/");
if (trenutno == "error") surovine[2] = 1000;
else surovine[2] = System.Convert.ToInt32(trenutno);
trenutno2 = funkcije.StringRegExp(thtml, "<td id=\"l2\" title=\"", "\"");
trenutno = funkcije.StringRegExp(thtml, "<td id=\"l2\" title=\"" + trenutno2 + "\">", "/");
if (trenutno == "error") surovine[3] = 1000;
else surovine[3] = System.Convert.ToInt32(trenutno);
trenutno2 = funkcije.StringRegExp(thtml, "<td id=\"l1\" title=\"", "\"");
zito_na_uro = System.Convert.ToInt32(trenutno2);
trenutno = funkcije.StringRegExp(thtml, "<td id=\"l1\" title=\"" + trenutno2 + "\">", "/");
if (trenutno == "error") surovine[0] = 1000;
else surovine[0] = System.Convert.ToInt32(trenutno);
for (int j = 0; j <= 3; j++)
{
if (surovine[0] >= surovine[1])
{
indeks_min_surovin[j] = 0;
if (j == 1) { if (indeks_min_surovin[0] == indeks_min_surovin[j]) indeks_min_surovin[j] = 1; }
if (j == 2) { if (indeks_min_surovin[0] == indeks_min_surovin[j] && indeks_min_surovin[1] == indeks_min_surovin[j]) indeks_min_surovin[j] = 1; }
if (j == 3) { if (indeks_min_surovin[0] == indeks_min_surovin[j] && indeks_min_surovin[1] == indeks_min_surovin[j] && indeks_min_surovin[2] == indeks_min_surovin[j]) indeks_min_surovin[j] = 1; }
}
else
{
indeks_min_surovin[j] = 1;
if (j == 1) { if (indeks_min_surovin[0] == indeks_min_surovin[j]) indeks_min_surovin[j] = 0; }
if (j == 2) { if (indeks_min_surovin[0] == indeks_min_surovin[j] && indeks_min_surovin[1] == indeks_min_surovin[j]) indeks_min_surovin[j] = 0; }
if (j == 3) { if (indeks_min_surovin[0] == indeks_min_surovin[j] && indeks_min_surovin[1] == indeks_min_surovin[j] && indeks_min_surovin[2] == indeks_min_surovin[j]) indeks_min_surovin[j] = 0; }
}
if (surovine[indeks_min_surovin[j]] < surovine[2])
{
if (j == 1) { if (indeks_min_surovin[0] != 2) indeks_min_surovin[j] = 2; }
if (j == 2) { if (indeks_min_surovin[0] != 2 && indeks_min_surovin[1] != 2) indeks_min_surovin[j] = 2; }
if (j == 3) { if (indeks_min_surovin[0] != 2 && indeks_min_surovin[1] != 2 && indeks_min_surovin[2] != 2) indeks_min_surovin[j] = 2; }
}
if (surovine[indeks_min_surovin[j]] < surovine[3])
{
if (j == 1) { if (indeks_min_surovin[0] != 2) indeks_min_surovin[j] = 3; }
if (j == 2) { if (indeks_min_surovin[0] != 2 && indeks_min_surovin[1] != 2) indeks_min_surovin[j] = 3; }
if (j == 3) { if (indeks_min_surovin[0] != 2 && indeks_min_surovin[1] != 2 && indeks_min_surovin[2] != 2) indeks_min_surovin[j] = 3; }
}
if (zito_na_uro < 5)
{
if (j == 1) { if (indeks_min_surovin[0] != 2) indeks_min_surovin[j] = 0; }
if (j == 2) { if (indeks_min_surovin[0] != 2 && indeks_min_surovin[1] != 2) indeks_min_surovin[j] = 0; }
if (j == 3) { if (indeks_min_surovin[0] != 2 && indeks_min_surovin[1] != 2 && indeks_min_surovin[2] != 2) indeks_min_surovin[j] = 0; }
}
}
for (int k = 0; k <= 3; k++)
{
prva_izbira = true;
temp_level = 0;
for (int j = 1; j < 19; j++)
{
if (tip_polja[j] == indeks_min_surovin[k] && (level_polj[j, 2] > 0))
{
if (prva_izbira == true) { temp_level = j; prva_izbira = false; }
else
{
if (level_polj[temp_level, 2] < level_polj[j, 2]) temp_level = j;
}
}
}
if (temp_level == 0) continue;
int id_mesta_stevilka = System.Convert.ToInt32(globalno.mesta[i, 0]);
if (Nadgradi(temp_level, id_mesta_stevilka) == true) break;
}
}
}
timer1.Start();
}
If I call
MessageBox.Show(webBrowser1.IsBusy.ToString()) I got the exception that user code was unhandled ......
and the same here MessageBox.Show(webBrowser1.ReadyState.ToString())
It seems like that webbrowser1 doesnt works at all???
Maybe I forgot something ???
Please I realy need help, I'm stucked here for 4 days .....
Reply
Answers (
0
)
C# Application Lifecycle
MouseEventHandler error