forodo
دوشنبه 30 دی 1392, 13:19 عصر
سلام
من ابتدا قطعه کد زیر رو در رویداد کلیک دکمه نوشتم که وقتی فرم من مینیمم می شد و برنامه Kmplayer هنوز اجرا بود، هنگامی که روی آیکون برنامه خودم در TaskManager کلیک می کردم صدای دینگ می داد و به حالت عادی باز نمی گشت تا وقتی که برنامه kmplayer رو می بستم.
private void radButton1_Click(object sender, EventArgs e)
{
Process p = Process.Start(@"C:\Program Files (x86)\The KMPlayer\KMPlayer.exe", @"D:\Man.Ki.Hastam.1998.HDTV.1080p_Iran-Film.mkv");
this.WindowState = FormWindowState.Minimized;
p.WaitForExit();
if (p.HasExited)
{
this.WindowState = FormWindowState.Normal;
}
}
بعد این کدها رو داخل backgroundworker گذاشتم و در رویداد کلیک دکمه بک گرویندورکر رو اجرا کردم که اروره زیر رو داد که رفعش کردم و کدام به این شکل شد.
Cross-thread operation not valid: Control 'Form1' accessed from a thread other than the thread it was created on.
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Process p = Process.Start(@"C:\Program Files (x86)\The KMPlayer\KMPlayer.exe", @"D:\Man.Ki.Hastam.1998.HDTV.1080p_Iran-Film.mkv");
if (InvokeRequired)
{
this.Invoke(new MethodInvoker(delegate
{
this.WindowState = FormWindowState.Minimized;
p.WaitForExit();
if (p.HasExited)
{
this.WindowState = FormWindowState.Normal;
}
}));
return;
}
}
این کدای جدید رو درست متوجه نشدم چیه که اگر توضیح بدید ممنون می شم.
با این کار هم مشکل من حل نشد و وقتی که برنامه مینیمم می شه تا وقتی که برنامه kmplayer در حال اجراست نمی توانم برنامه را به حالت اول برگردانم.
با تشکر
من ابتدا قطعه کد زیر رو در رویداد کلیک دکمه نوشتم که وقتی فرم من مینیمم می شد و برنامه Kmplayer هنوز اجرا بود، هنگامی که روی آیکون برنامه خودم در TaskManager کلیک می کردم صدای دینگ می داد و به حالت عادی باز نمی گشت تا وقتی که برنامه kmplayer رو می بستم.
private void radButton1_Click(object sender, EventArgs e)
{
Process p = Process.Start(@"C:\Program Files (x86)\The KMPlayer\KMPlayer.exe", @"D:\Man.Ki.Hastam.1998.HDTV.1080p_Iran-Film.mkv");
this.WindowState = FormWindowState.Minimized;
p.WaitForExit();
if (p.HasExited)
{
this.WindowState = FormWindowState.Normal;
}
}
بعد این کدها رو داخل backgroundworker گذاشتم و در رویداد کلیک دکمه بک گرویندورکر رو اجرا کردم که اروره زیر رو داد که رفعش کردم و کدام به این شکل شد.
Cross-thread operation not valid: Control 'Form1' accessed from a thread other than the thread it was created on.
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Process p = Process.Start(@"C:\Program Files (x86)\The KMPlayer\KMPlayer.exe", @"D:\Man.Ki.Hastam.1998.HDTV.1080p_Iran-Film.mkv");
if (InvokeRequired)
{
this.Invoke(new MethodInvoker(delegate
{
this.WindowState = FormWindowState.Minimized;
p.WaitForExit();
if (p.HasExited)
{
this.WindowState = FormWindowState.Normal;
}
}));
return;
}
}
این کدای جدید رو درست متوجه نشدم چیه که اگر توضیح بدید ممنون می شم.
با این کار هم مشکل من حل نشد و وقتی که برنامه مینیمم می شه تا وقتی که برنامه kmplayer در حال اجراست نمی توانم برنامه را به حالت اول برگردانم.
با تشکر