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 .....