PDA

View Full Version : حرفه ای: اجرای پروژه های دیگر در یک پروژه



sadaf_
شنبه 05 اسفند 1391, 13:54 عصر
چطوری می تونم به دیگر پروژه هام دسترسی داشته باشم
و فرم خاصی را از پروژه دیگر اجرا کنم

danialafshari
شنبه 05 اسفند 1391, 14:09 عصر
سلام
می تونید در بالای پنجره روی Solution کلیک راست کنید و دکمه add رو بزنید و Exisiting Project رو انتخاب کنید و پروژه رو Load کنید و یا فقط برای استفاده از یک فرم روی نام برنامه کلیک راست کنید و مراحل بالا را برید
موفق باشید

sadaf_
شنبه 05 اسفند 1391, 14:12 عصر
منطورم اینه که پروژه ای در حال اجرا هستش یک پروژه دیگر اجرا کنم
و به یک فرم خاص را از اون پروژه لود کنم

abdullah20
شنبه 05 اسفند 1391, 18:56 عصر
سلام
فرض کنید ما دو پروژه به نام های a و b داریم
حال به عنوان مثال در کد کلیک پروژه b کدی نوشتیم که یک فرم از فرم های پروژه اجرا شود
ابتدا در پروژه b کدهای زیر را قرار دهید:

private string msgstr = "interprocess communication";
private uint msg;
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern uint RegisterWindowMessage(string lpString);
private void Form1_Load(object sender, System.EventArgs e)
{
msg = RegisterWindowMessage(msgstr);
if (msg == 0)
{
MessageBox.Show(Marshal.GetLastWin32Error().ToStri ng());
}
}

protected override void WndProc(ref Message m)
{
if (m.Msg == msg)
{
button1.PerformClick();
}
base.WndProc(ref m);
}

private void button1_Click(object sender, EventArgs e)
{
Form2_project2 f2p2 = new Form2_project2();
f2p2.Show();
}

سپس در پروژه a کدهای زیر را قرار میدهیم :

[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool PostMessage(int hhwnd, uint msg, IntPtr wparam,
IntPtr lparam);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern uint RegisterWindowMessage(string lpString);

private string msgstr = "interprocess communication";
private uint msg;
private const int HWND_BROADCAST = 0xffff;

private void button1_Click(object sender, EventArgs e)
{
msg = RegisterWindowMessage(msgstr);
if (msg == 0)
{
MessageBox.Show(Marshal.GetLastWin32Error().ToStri ng());
}
PostMessage(HWND_BROADCAST, msg, IntPtr.Zero, IntPtr.Zero);
}

sadaf_
یک شنبه 06 اسفند 1391, 09:23 صبح
با تشکر از دوستان
من چندین پروژه دارم
حالا از یک پروژه ای به نام a می خوام فرم1 را از پروژه b باز کنم
برای انجام چنین کاری نباید هر سری پروژه b را start کنم و مقدار بدم
چطوری می تونم یک evant را از پروژه b اجرا کنم ؟
ممنون