PDA

View Full Version : سئوالی در مورد ارتباط با برنامه دیگر



rnm123
دوشنبه 12 اسفند 1387, 23:35 عصر
سلام به دوستان عزیز
یک سئوالی داشتم که امیدوارم که راهنماییم کنید
یک بزنامه نوشته ام که کاربر با کلیک برروی یک کلید برنامه ماشین حساب ویندوز را اجرا میکند حال میخواستم ببینم چطور میتوانم در حالتی که کاربر برای باردوم این کلید را میزند دیگر نسخه جدیدی از ماشین حساب باز نشده و فقط ماشین حساب قبلی که باز شده بود نمایش داده شود. البته اینکه فقط یک نسخه از آن باز شود را با Mutex حل کرده ام اما نمیدانم چطورمیتوانم فوکوس برنامه را به ماشین حساب ارجاع دهم تا آن نمایش داده شود و کاربر مجبور نشود از تولبار ویندوز استفاده نماید

Editali
سه شنبه 13 اسفند 1387, 01:41 صبح
سلام.

کاری که شما میخوای انجام بدی کار ساده ایه.

فقط کافیه که تو پردازشهای در حال اجرا دنبال نام پردازشت بگردی.
اگر بود بیاریش جلو و اگر نبود اجراش کنی.

برای آوردن یه پنجره به جلو هم از API ویندوز میتونی استفاده کنی.

کد کامل رو نوشتم، فقط یادت باشه دو تا namespace زیر رو به کدت اضافه کنی:

using System.Diagnostics;
using System.Runtime.InteropServices;

کد برنامه:

[DllImport("user32")]
public static extern int BringWindowToTop(int hwnd);

Process[] processes;

private void button1_Click(object sender, EventArgs e)
{
processes = Process.GetProcesses();
for (int i = 0; i < processes.Length; i++)

if (processes[i].ProcessName == "calc")
{
BringWindowToTop(processes[i].MainWindowHandle.ToInt32());
return;
}
Process.Start("calc");
}