اجرا شدن دستورات یک فرم حتی در زمان minimize بودن
سلام خدمت برنامه نویسان عزیز
من به یک مشکل برخوردم اونم اینه که یک برنامه نوشتم که یک فایل رو هر ده دقیقه یک بار از یک سایت به خصوص دانلود کنه و جایی ذخیره کنه تا یک برنامه دیگه از اون استفاده کنه مشکل من از این قسمت شروع می شه که وقتی برنامه دانلود فایل از حالت active خارج می شه دیگه اون فایل دانلود نمی شه و برنامه اصلی به مشکل بر می خوره و مساله اینجاست که نمی تونم این کد رو توی همون برنامه اصلی جا بدم ممنون می شم راهنماییم کنید که چجوری برنامه رو توی پس زمینه اجرا کنم تا کل این مشکلات حل شه
نقل قول: اجرا شدن دستورات یک فرم حتی در زمان minimize بودن
دوست عزیز نمیدونم دقیقاً مشکل شما چیه اما از چیزی که برداشت کردم شما دو کار میتونی انجام بدی:
1. از tray icon استفاده کن که برنامه همزمان باز باشه و معلوم نباشه.
2. برنامه رو بصورت تسک در task scheduler ذخیره کن که هر چند وقت یکبار باز شه، کارشو انجام بده و بسته بشه.
نقل قول: اجرا شدن دستورات یک فرم حتی در زمان minimize بودن
مرسی از وقتی که گذاشتید دوست عزیز می شه واسم این دو تا راهی رو که فرمودید توضیح بدید ممنون می شم اخه تا حالا این کارا رو انجام ندادم و بلد نیستم مرسی
نقل قول: اجرا شدن دستورات یک فرم حتی در زمان minimize بودن
برای راه اول میتونید یک کنترل notify icon به فرم تون اضافه کنید و در فرمتون خاصیت showintaskbar رو false کنید.
در کد notify icon هم فرم رو نمایش بدین.
نقل قول: اجرا شدن دستورات یک فرم حتی در زمان minimize بودن
نقل قول:
نوشته شده توسط
ASHKANLAEI
برای راه اول میتونید یک کنترل notify icon به فرم تون اضافه کنید و در فرمتون خاصیت showintaskbar رو false کنید.
در کد notify icon هم فرم رو نمایش بدین.
متاسفانه این جواب کارم رو نداد و برنامه من اگر مینی مایز بشه نیمه کاره می مونه تا من دوباره برنامم رو اجرا کنم
من در عمل می خوام برنامه ام مثل خیلی از برنامه های ویندوز توی بک گراند اجرا بشه بدون نیاز به اکتیو بودن فرم برنامه
نقل قول: اجرا شدن دستورات یک فرم حتی در زمان minimize بودن
از backgroundworker استفاده کنید.
نقل قول: اجرا شدن دستورات یک فرم حتی در زمان minimize بودن
نقل قول:
نوشته شده توسط
ASHKANLAEI
با عرض پوزش من چندین سال برنامه ننوشتم ممکنه بیشتر راهنمایی کنید ممنون
نقل قول: اجرا شدن دستورات یک فرم حتی در زمان minimize بودن
public Form1(){
InitializeComponent();
backgroundWorker1.DoWork += backgroundWorker1_DoWork;
backgroundWorker1.ProgressChanged += backgroundWorker1_ProgressChanged;
backgroundWorker1.WorkerReportsProgress = true;
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
for (int i = 0; i < 100; i++)
{
Thread.Sleep(1000);
backgroundWorker1.ReportProgress(i);
}
}
private void backgroundWorker1_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
در حلقه، 100 رو به تعداد باری که میخواین کارتون تکرار بشه تغییر بدین.
در thread.sleep، باید 1000 رو به مدت زمان فاصلۀ بین دو کد متوالی تغییر بدین (به میلی ثانیه).
و در نهایت،
progressBar1.Value = e.ProgressPercentage;
رو به کد برنامه تون تغییر بدین.
نقل قول: اجرا شدن دستورات یک فرم حتی در زمان minimize بودن
نقل قول:
نوشته شده توسط
peyman10663
سلام خدمت برنامه نویسان عزیز
من به یک مشکل برخوردم اونم اینه که یک برنامه نوشتم که یک فایل رو هر ده دقیقه یک بار از یک سایت به خصوص دانلود کنه و جایی ذخیره کنه تا یک برنامه دیگه از اون استفاده کنه مشکل من از این قسمت شروع می شه که وقتی برنامه دانلود فایل از حالت active خارج می شه دیگه اون فایل دانلود نمی شه و برنامه اصلی به مشکل بر می خوره و مساله اینجاست که نمی تونم این کد رو توی همون برنامه اصلی جا بدم ممنون می شم راهنماییم کنید که چجوری برنامه رو توی پس زمینه اجرا کنم تا کل این مشکلات حل شه
یعنی چی از حالت اکتیو خارج بشه دیگه کار نمیکنه، برنامه در حال اجرا هیچ فرقی نمیکنه مینیمایز باشه یا ماکسیمایز، مخفی باشه یا آشکار، در هر حالتی کار خودش رو انجام میده ربطی به اکتیو بودن نداره، شما کداتو کجا مینویسی که در حالت غیر اکتیو کار نمیکنه؟
نقل قول: اجرا شدن دستورات یک فرم حتی در زمان minimize بودن
نقل قول:
نوشته شده توسط
ASHKANLAEI
public Form1(){
InitializeComponent();
backgroundWorker1.DoWork += backgroundWorker1_DoWork;
backgroundWorker1.ProgressChanged += backgroundWorker1_ProgressChanged;
backgroundWorker1.WorkerReportsProgress = true;
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
for (int i = 0; i < 100; i++)
{
Thread.Sleep(1000);
backgroundWorker1.ReportProgress(i);
}
}
private void backgroundWorker1_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}
در حلقه، 100 رو به تعداد باری که میخواین کارتون تکرار بشه تغییر بدین.
در thread.sleep، باید 1000 رو به مدت زمان فاصلۀ بین دو کد متوالی تغییر بدین (به میلی ثانیه).
و در نهایت،
progressBar1.Value = e.ProgressPercentage;
رو به کد برنامه تون تغییر بدین.
ممنون از کمکتون