PDA

View Full Version : سوال: ارور در حین اجرای برنامه



forodo
سه شنبه 01 بهمن 1392, 11:13 صبح
سلام
بعضی مواقع که برنامه رو اجرا می کنم این ارور رو میده.
اصلاً معلوم نیست که این ارور میاد یا نه در بیشتر مواقع نمیاد.
این هم بگم که فقط موقعی که exe برنامه در پوشه debug برنامه رو اجرا می کنم این ارور میاد و از داخل ویژوال این اتفاق نمی افته.
115693
این هم متن Details اروره:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.InvalidOperationException: A valid active Window is needed to update the Taskbar
at Microsoft.WindowsAPICodePack.Taskbar.TaskbarManage r.get_OwnerHandle()
at Microsoft.WindowsAPICodePack.Taskbar.TaskbarManage r.SetProgressState(TaskbarProgressBarState state)
at AliFilmCollection.FindFilm.NoJHJ(String AGL, RadGridView RGV, RadProgressBar RPB, RadGridView RGVFile) in E:\Programming\AliFilmCollection\AliFilmCollection \FindFilm.cs:line 364
at AliFilmCollection.FindFilm.Film(String AGL, RadGridView RGV, RadProgressBar RPB, RadGridView RGVFile, Label l, TextBox tb) in E:\Programming\AliFilmCollection\AliFilmCollection \FindFilm.cs:line 58
at AliFilmCollection.Form1.radMenuItem20_Click(Object sender, EventArgs e) in E:\Programming\AliFilmCollection\AliFilmCollection \Form1.cs:line 92
at Telerik.WinControls.RadItem.OnClick(EventArgs e)
at Telerik.WinControls.UI.RadButtonItem.OnClick(Event Args e)
at Telerik.WinControls.UI.RadMenuItem.OnClick(EventAr gs e)
at Telerik.WinControls.RadItem.DoClick(EventArgs e)
at Telerik.WinControls.RadItem.RaiseBubbleEvent(RadEl ement sender, RoutedEventArgs args)
at Telerik.WinControls.RadElement.RaiseRoutedEvent(Ra dElement sender, RoutedEventArgs args)
at Telerik.WinControls.RadItem.RaiseBubbleEvent(RadEl ement sender, RoutedEventArgs args)
at Telerik.WinControls.RadElement.RaiseRoutedEvent(Ra dElement sender, RoutedEventArgs args)
at Telerik.WinControls.RadElement.DoMouseUp(MouseEven tArgs e)
at Telerik.WinControls.ComponentInputBehavior.OnMouse Up(MouseEventArgs e)
at Telerik.WinControls.RadControl.OnMouseUp(MouseEven tArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Mes sage& m)
at Telerik.WinControls.RadControl.WndProc(Message& m)
at Telerik.WinControls.UI.RadPopupControlBase.WndProc (Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
AliFilmCollection
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/AliMP/Desktop/AliFilmCollection/AliFilmCollection/bin/Debug/AliFilmCollection.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Telerik.WinControls.GridView
Assembly Version: 2012.1.12.215
Win32 Version: 2012.1.12.0215
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Telerik.WinControls.GridView/2012.1.12.215__5bb2a467cbec794e/Telerik.WinControls.GridView.dll
----------------------------------------
Telerik.WinControls
Assembly Version: 2012.1.12.215
Win32 Version: 2012.1.12.0215
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Telerik.WinControls/2012.1.12.215__5bb2a467cbec794e/Telerik.WinControls.dll
----------------------------------------
Telerik.WinControls.UI
Assembly Version: 2012.1.12.215
Win32 Version: 2012.1.12.0215
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Telerik.WinControls.UI/2012.1.12.215__5bb2a467cbec794e/Telerik.WinControls.UI.dll
----------------------------------------
TelerikCommon
Assembly Version: 2012.1.12.215
Win32 Version: 2012.1.12.0215
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/TelerikCommon/2012.1.12.215__5bb2a467cbec794e/TelerikCommon.dll
----------------------------------------
jgnatwfp
Assembly Version: 2012.1.12.215
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.1 built by: RTMRel
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
Microsoft.WindowsAPICodePack.Shell
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/AliMP/Desktop/AliFilmCollection/AliFilmCollection/bin/Debug/Microsoft.WindowsAPICodePack.Shell.DLL
----------------------------------------
Microsoft.WindowsAPICodePack
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/AliMP/Desktop/AliFilmCollection/AliFilmCollection/bin/Debug/Microsoft.WindowsAPICodePack.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

hamid_hr
سه شنبه 01 بهمن 1392, 11:53 صبح
مال این خطه
\FindFilm.cs:line 364
کدها رو بزار

forodo
سه شنبه 01 بهمن 1392, 12:17 عصر
اون 2تا خط دیگه که ارور می ده مهم نیست. از کجا متوجه شدید برای اون خط از بین اون 3 خط؟
خط 364 اون کلاسم اینه که برای پرشدن پروگرس بار آیکون برنامه ام توی taskmanager هستش:

taskbarInstance.SetProgressState(Microsoft.Windows APICodePack.Taskbar.TaskbarProgressBarState.Normal );

کدای کلیش هم ایناست:

// ریختن فیلمهای با عناوین دیگر درون ردگریدویوی فولدرها
private static void NoJHJ(string AGL, RadGridView RGV, RadProgressBar RPB, RadGridView RGVFile)
{
// برای اضافه شدن پروگرس بار آیکون برنامه در تسک منیجر
int bb = 0;
// برای مقدار ماکزیمم پروگرس بار آیکون برنامه در تسک منیجر
int MaximumIconProgressbar = 0;
#region پاک کردن تمام سطرهای ردگریدویوها

RGV.Rows.Clear();
RGVFile.Rows.Clear();

#endregion
// شمارنده برای اینکه مقداری به ارتفاع هر سطر داده شود
int RowCountFilm = 0;
#region مربوط به اضافه شدن پروگرس بار آیکون برنامه در تسک منیجر

var taskbarInstance = Microsoft.WindowsAPICodePack.Taskbar.TaskbarManage r.Instance;
taskbarInstance.SetProgressState(Microsoft.Windows APICodePack.Taskbar.TaskbarProgressBarState.Normal );

#endregion
#region سوییچ کردن اینکه کدام نوع فیلم جستجو می شود

switch (AGL)
{
// اکشن
case "Action":
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار
RPB.Maximum = ActionFilm;
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار آیکون برنامه در تسک منیجر
MaximumIconProgressbar = ActionFilm;
break;
// انیمیشن
case "Animation":
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار
RPB.Maximum = AnimationFilm;
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار آیکون برنامه در تسک منیجر
MaximumIconProgressbar = AnimationFilm;
break;
// کمدی
case "Comedy":
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار
RPB.Maximum = ComedyFilm;
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار آیکون برنامه در تسک منیجر
MaximumIconProgressbar = ComedyFilm;
break;
// رزمی
case "Fight":
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار
RPB.Maximum = FightFilm;
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار آیکون برنامه در تسک منیجر
MaximumIconProgressbar = FightFilm;
break;
// تاریخی
case "Historical":
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار
RPB.Maximum = HistoricalFilm;
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار آیکون برنامه در تسک منیجر
MaximumIconProgressbar = HistoricalFilm;
break;
// ترسناک
case "Horror":
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار
RPB.Maximum = HorrorFilm;
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار آیکون برنامه در تسک منیجر
MaximumIconProgressbar = HorrorFilm;
break;
// سریال
case "Serial":
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار
RPB.Maximum = SerialFilm;
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار آیکون برنامه در تسک منیجر
MaximumIconProgressbar = SerialFilm;
break;
// دیگر
case "Other":
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار
RPB.Maximum = OtherFilm;
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار آیکون برنامه در تسک منیجر
MaximumIconProgressbar = OtherFilm;
break;
// دوبله
case "Doubleh":
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار
RPB.Maximum = DoublehFilm;
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار آیکون برنامه در تسک منیجر
MaximumIconProgressbar = DoublehFilm;
break;
// زیرنویس
case "Subtitle":
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار
RPB.Maximum = SubtitleFilm;
// دادن تعداد فولدرهای موجود به ماکزیمم ردپروگرس بار آیکون برنامه در تسک منیجر
MaximumIconProgressbar = SubtitleFilm;
break;
}

#endregion
// پیداکردن مسیرهای عنوان مورد نظر
foreach (string Masir in Directory.GetDirectories(@"E:\Films", AGL, SearchOption.AllDirectories))
{
// پیداکردن تمامی فولدرهای داخل مسیر پیدا شده
foreach (string FolderFilm in Directory.GetDirectories(Masir, "*.*", SearchOption.AllDirectories))
{
// فیلتر کردن نتایج فولدرهای پیدا شده
if ((Path.GetFileName(FolderFilm) != "D & S" && Path.GetFileName(FolderFilm) != "Subtitle" && Path.GetFileName(FolderFilm) != "Doubleh" && !char.IsNumber(Path.GetFileName(FolderFilm), 0) &&
Path.GetFileName(FolderFilm) != "AUDIO_TS" && Path.GetFileName(FolderFilm) != "VIDEO_TS" && !Path.GetFileName(FolderFilm).Contains("DVD") && !Path.GetFileName(FolderFilm).Contains("Fairy Tail E") &&
Path.GetFileName(FolderFilm) != "codec" && Path.GetFileName(FolderFilm) != "K-Lite Codec Pack" && !Path.GetFileName(FolderFilm).Contains("Avatar - The Legend of Korra- S0") && Path.GetFileName(FolderFilm) != "All" &&
!Path.GetFileName(FolderFilm).Contains("Avatar The Legend of Korra S0") && !Path.GetFileName(FolderFilm).Contains("Avatar ") && Path.GetFileName(FolderFilm) != "All Of Them" && Path.GetFileName(FolderFilm) != "Film" &&
Path.GetFileName(FolderFilm) != "Mahvare" && Path.GetFileName(FolderFilm) != "Films" && Path.GetFileName(FolderFilm) != "OVA" && !Path.GetFileName(FolderFilm).Contains("Season ") &&
Path.GetFileName(FolderFilm) != "New" && Path.GetFileName(FolderFilm) != "American Pie" && Path.GetFileName(FolderFilm) != "Eurotrip" && Path.GetFileName(FolderFilm) != "Roadtrip" &&
!FolderFilm.Contains("Harry Potter") && !FolderFilm.Contains("Jackie Chan") && !FolderFilm.Contains("Jet Li") && !FolderFilm.Contains("Bruce Lee")) || (Path.GetFileName(FolderFilm) == "3×4"))
{
try
{
#region مربوط به اضافه شدن پروگرس بار آیکون برنامه در تسک منیجر

taskbarInstance.SetProgressValue(bb, MaximumIconProgressbar);
Thread.Sleep(1);
bb++;

#endregion
// اضافه کردن مقدار پروگرس بار برای پرشدن
RPB.Value1 += 1;
// اضافه کردن سطر به ردگریدویو
RGV.Rows.Add(Path.GetFileName(FolderFilm), Image.FromFile(FolderFilm + "\\FolderMarker.ico"), FolderSize(FolderFilm), ConvertMiladiToShamsi(FolderFilm), FolderFilm);
// تغییر سایز ستون عکس
RGV.Rows[RowCountFilm].Height = 350;
// اضافه کردن یک واحد به شمارنده برای اینکه مقداری به ارتفاع هر سطر داده شود
RowCountFilm++;
// کد خطرناک ولی کارا برای من
Application.DoEvents();
}
catch (Exception)
{
#region در صورت پیدا نکردن آیکون فیلم

switch (AGL)
{
// اکشن
case "Action":
RGV.Rows.Add(Path.GetFileName(FolderFilm), Image.FromFile(AppDomain.CurrentDomain.BaseDirecto ry + "Action.ico"), FolderSize(FolderFilm), ConvertMiladiToShamsi(FolderFilm), FolderFilm);
RGV.Rows[RowCountFilm].Height = 350;
RowCountFilm++;
break;
// انیمیشن
case "Animation":
RGV.Rows.Add(Path.GetFileName(FolderFilm), Image.FromFile(AppDomain.CurrentDomain.BaseDirecto ry + "Animation.ico"), FolderSize(FolderFilm), ConvertMiladiToShamsi(FolderFilm), FolderFilm);
RGV.Rows[RowCountFilm].Height = 350;
RowCountFilm++;
break;
// کمدی
case "Comedy":
RGV.Rows.Add(Path.GetFileName(FolderFilm), Image.FromFile(AppDomain.CurrentDomain.BaseDirecto ry + "Comedy.ico"), FolderSize(FolderFilm), ConvertMiladiToShamsi(FolderFilm), FolderFilm);
RGV.Rows[RowCountFilm].Height = 350;
RowCountFilm++;
break;
// رزمی
case "Fight":
RGV.Rows.Add(Path.GetFileName(FolderFilm), Image.FromFile(AppDomain.CurrentDomain.BaseDirecto ry + "Fight.ico"), FolderSize(FolderFilm), ConvertMiladiToShamsi(FolderFilm), FolderFilm);
RGV.Rows[RowCountFilm].Height = 350;
RowCountFilm++;
break;
// تاریخی
case "Historical":
RGV.Rows.Add(Path.GetFileName(FolderFilm), Image.FromFile(AppDomain.CurrentDomain.BaseDirecto ry + "Historical.ico"), FolderSize(FolderFilm), ConvertMiladiToShamsi(FolderFilm), FolderFilm);
RGV.Rows[RowCountFilm].Height = 350;
RowCountFilm++;
break;
// ترسناک
case "Horror":
RGV.Rows.Add(Path.GetFileName(FolderFilm), Image.FromFile(AppDomain.CurrentDomain.BaseDirecto ry + "Horror.ico"), FolderSize(FolderFilm), ConvertMiladiToShamsi(FolderFilm), FolderFilm);
RGV.Rows[RowCountFilm].Height = 350;
RowCountFilm++;
break;
// سریال
case "Serial":
RGV.Rows.Add(Path.GetFileName(FolderFilm), Image.FromFile(AppDomain.CurrentDomain.BaseDirecto ry + "Serial.ico"), FolderSize(FolderFilm), ConvertMiladiToShamsi(FolderFilm), FolderFilm);
RGV.Rows[RowCountFilm].Height = 350;
RowCountFilm++;
break;
// دیگر
case "Other":
RGV.Rows.Add(Path.GetFileName(FolderFilm), Image.FromFile(AppDomain.CurrentDomain.BaseDirecto ry + "Other.ico"), FolderSize(FolderFilm), ConvertMiladiToShamsi(FolderFilm), FolderFilm);
RGV.Rows[RowCountFilm].Height = 350;
RowCountFilm++;
break;
// دوبله
case "Doubleh":
RGV.Rows.Add(Path.GetFileName(FolderFilm), Image.FromFile(AppDomain.CurrentDomain.BaseDirecto ry + "Doubleh.ico"), FolderSize(FolderFilm), ConvertMiladiToShamsi(FolderFilm), FolderFilm);
RGV.Rows[RowCountFilm].Height = 350;
RowCountFilm++;
break;
// زیرنویس
case "Subtitle":
RGV.Rows.Add(Path.GetFileName(FolderFilm), Image.FromFile(AppDomain.CurrentDomain.BaseDirecto ry + "Subtitle.ico"), FolderSize(FolderFilm), ConvertMiladiToShamsi(FolderFilm), FolderFilm);
RGV.Rows[RowCountFilm].Height = 350;
RowCountFilm++;
break;
}

#endregion
}
}
}
}
// مربوط به اضافه شدن پروگرس بار آیکون برنامه در تسک منیجر
taskbarInstance.SetProgressState(Microsoft.Windows APICodePack.Taskbar.TaskbarProgressBarState.NoProg ress);
// رفتن اسکرول بار به اولین سطر
RGV.TableElement.ScrollToRow(0);
// صفر شدن مقدار ردپروگرس بار
RPB.Value1 = 0;
}

forodo
شنبه 05 بهمن 1392, 14:11 عصر
دوستان خواهشاً یکی یاری برسونه.

Mousavmousab
شنبه 05 بهمن 1392, 17:11 عصر
سلام

شما یک Try Catch برای کل این قطعه کد بزار ببین مشکل از کجاست؟

forodo
شنبه 05 بهمن 1392, 18:26 عصر
سلام

شما یک Try Catch برای کل این قطعه کد بزار ببین مشکل از کجاست؟
آخه تمام دردم اینه که برنامه رو با ویژوال اجرا می کنم هیچ مشکلی نیست و هیچ اروری نیست. اگه اغراق نکرده باشم شاید 1000 بار این برنامه رو از وقتی که شروع کردم به نوشتن با ویژوال اجرا کردم.
ولی وقتی می رم تو پوشه debug و exe رو از اونجا اجرا می کنم معلوم نمی کنه ممکنه ارور بیاد ممکنه نیاد.
اینه داره منو می سوزونه. :عصبانی++: آخه به کی بگم.

forodo
شنبه 05 بهمن 1392, 19:57 عصر
کل تابع هام رو try catch گذاشتم و توی catch گفتم پیغام exception رو نشون بده ولی حالا هر چی می زنم انگار با دیواری.:گیج:
یعنی درست شده فعلاً

forodo
یک شنبه 06 بهمن 1392, 09:26 صبح
پیغام exception ام اینو می گه:
چی میگه و چطوری میشه درستش کرد؟
115935

firoozi90
سه شنبه 06 آبان 1393, 08:47 صبح
منم دقیقا همین مشکلو دارم
خواهشا اساتید راهنمایی کنند

pedram.11
سه شنبه 06 آبان 1393, 09:59 صبح
سلام مشکل وقتی پیش میاد که آیکون تسکبار هنوز لود نشده باشه و شما این قطعه کدارو اجرا کنید.
شاید درست نباشه ولی من با این روش این ارور رو رفع کردم:
public Form1(){
InitializeComponent();
this.Activated += Form1_Activated;
}
void SetProgressState(Microsoft.WindowsAPICodePack.Task bar.TaskbarProgressBarState state)
{
if (!activated)
{
Thread.Sleep(10);
new Thread(new ThreadStart(() => SetProgressState(state))).Start();
return;
}
var taskbarInstance = Microsoft.WindowsAPICodePack.Taskbar.TaskbarManage r.Instance;
taskbarInstance.SetProgressState(state);
}
void SetProgressValue(int current, int max)
{
if (!activated)
{
Thread.Sleep(10);
new Thread(new ThreadStart(() => SetProgressValue(current,max))).Start();
return;
}
var taskbarInstance = Microsoft.WindowsAPICodePack.Taskbar.TaskbarManage r.Instance;
taskbarInstance.SetProgressValue(current, max);
}
bool activated = false;
private void Form1_Activated(object sender, EventArgs e)
{
activated = true;
}



و از این به بعد برای تغییر آیکون از متد SetProgressState و تغییر میزان پراگرس از SetProgressValue استفاده میکنم...