PDA

View Full Version : مدیریت در بازو بسته کردن مرورگرهای اینترنتی - Firefox , IE , Chrome



mahmood1000
پنج شنبه 30 شهریور 1391, 12:03 عصر
سلام دوستان
من با asp.net تحت C-sharp برنامه نویسی میکنم.
برای اجرای یکی از پروژهام به این نیاز دارم که: وقتی برنامه (برنامه ای که Win App هستش) اجرا میشه مرورگر (IE, FireFox,...) باز میشه به آدرسی که من بهش میدم بره و وقتی مرورگر رو بست بنامه من هم بسته بشه. آیا همچین راهی هست؟
اگر سوالم تکراریه واقعا منو ببخشید ، هرچی گشتم چیزی پیدا نکردم
:خجالت::خجالت:

از تمام دوستان تقاضای کمک و راهنمایی دارم

Farshid007
پنج شنبه 30 شهریور 1391, 12:50 عصر
IE:
try
{
System.Diagnostics.Process P = new System.Diagnostics.Process();
P.StartInfo = new System.Diagnostics.ProcessStartInfo("iexplore.exe", "http://barnamenevis.org");
P.Start();
}
catch
{
MessageBox.Show("System Cannot Internet Explorer");
}

Fire Fox:
try
{
System.Diagnostics.Process P = new System.Diagnostics.Process();
P.StartInfo = new System.Diagnostics.ProcessStartInfo("firefox.exe", "http://barnamenevis.org");
P.Start();
}
catch
{
MessageBox.Show("System Cannot Fire Fox");
}
برای بستن:
P.Kill();

mahmood1000
پنج شنبه 30 شهریور 1391, 13:30 عصر
دوست عزیر ممنونم از راهنمایی خوبت اما در خصوص بستن برنامه من اینو نمیخواستم.
من میخوام وقتی به فرض Firefox بسته میشه برنامه من بسته بشه.
این چیزی که شما گفتید از داخل برنامه فایرفاکس رو میبنده

Saman_12
پنج شنبه 30 شهریور 1391, 14:54 عصر
شما میتونید از متد WaitForExit ه Process استفاده کنید :

ویرایش : نمونه پیوست شد.


private void WaitForProcess(Object Param)
{

if (!(Thread.CurrentThread.Name == "WaitForProcessThread"))
{
Thread WFPThread = new Thread(new ParameterizedThreadStart(WaitForProcess));

WFPThread.Name = "WaitForProcessThread";
WFPThread.IsBackground = true;
WFPThread.Start(Param);
}
else
{

Process P = (Process)Param;

P.WaitForExit();
Process.GetCurrentProcess().Kill();
}
}


پاورقی : پروسس باید در حال اجرا باشه یعنی نمیتونید فایرفاکسی که هنوز باز نشده به تابع بدید که منتظر باز شدنش باشه!!!

mahmood1000
پنج شنبه 30 شهریور 1391, 15:42 عصر
امکانش هست بیشتر توضیح بدید؟
چطور باید این متد رو فراخوانی کنم؟

Saman_12
جمعه 31 شهریور 1391, 07:10 صبح
امکانش هست بیشتر توضیح بدید؟
چطور باید این متد رو فراخوانی کنم؟
این متد موجب میشه ترد فرخوان منتظر بمونه تا وقتی که پروسس مورد نظر بسته بشه بعد ترد آزاد میشه و ...
کد مثال هم پیوست شده که میاد در اولین فرخوانی یک ترد ایجاد میکنه و ترد ایجاد شده در دومین فراخوانی منتظر میمونه و در آخر هم پروسس ما kill میشه.

mahmood1000
جمعه 31 شهریور 1391, 10:40 صبح
ممنونم از توضیح خوبت.
من این تابع رو تو تایمر گذاشتم و داره قشنگ کار میکنه.
حالا میخواستم بدونم راهش همینه؟ یا نیازی به تایمر نیست؟

Saman_12
جمعه 31 شهریور 1391, 22:00 عصر
ممنونم از توضیح خوبت.
من این تابع رو تو تایمر گذاشتم و داره قشنگ کار میکنه.
حالا میخواستم بدونم راهش همینه؟ یا نیازی به تایمر نیست؟

هیچ نیازی به تایمر نیست کافیه فقط یک بار در هر جا که مایلید یک پروسس به void معرفی کنید بعد خودش یک ترد میسازه و منتظر میمونه شما هم میتونید به بقیه کارها برسید!

negar.rafie
شنبه 01 مهر 1391, 08:37 صبح
سلام
من نتو نستم از تابع استفاده کنم میشه یه مثال مثلا برای همین بستن فایرفاکس بزارید؟

mahmood1000
شنبه 01 مهر 1391, 10:06 صبح
شما کجاش دقیقا مشکل دارید؟

mahmood1000
شنبه 01 مهر 1391, 10:12 صبح
هیچ نیازی به تایمر نیست کافیه فقط یک بار در هر جا که مایلید یک پروسس به void معرفی کنید بعد خودش یک ترد میسازه و منتظر میمونه شما هم میتونید به بقیه کارها برسید!
ممنونم از توجه شما دوست عزیز
اما مسئله اینجایت من تنها راهی که یه مقدار به تابع ارسال کنه تا چک کنه بسته شده یا نه استفاده از تایمر بوده
بدون تایمر اصلا کار نمیکنه.

این مشکل رو دوستمون هم خانم نگار دارند

سلام
من نتو نستم از تابع استفاده کنم میشه یه مثال مثلا برای همین بستن فایرفاکس بزارید؟