PDA

View Full Version : سوال: ارسال پارامتر به برنامه exe



Mohamad_Gha3mi
چهارشنبه 20 بهمن 1389, 11:46 صبح
سلام به همگی
من میخوام به برنامه exe خودم پارامتر بفرستم.
کد زیر رو در نظر بگیرید: این کد مرورگر اینترنت رو باز میکنه

System.Diagnostics.Process.Start("iExplore.exe");

که همین کد رو به صورت زیر با پارامتر مینویسیم: این کد مرورگر اینترنت رو باز میکنه و به سایت یاهو میره

System.Diagnostics.Process.Start("iExplore.exe", "www.yahoo.com");

البته به دوستان بر نخوره که من کد رو نوشتم و توضیح دادم . میدونم که همتون بلدید:قلب:

حالا یه فرم رو که یک TextBox داره رو میخوام با ارسال پارامتر به exe او فرم مقدار بدم

ممنون میشم اگه جواب بدید.


System.Diagnostics.Process.Start("MyProject.exe", "TextBoxValue");

ASKaffash
چهارشنبه 20 بهمن 1389, 12:03 عصر
سلام
برنامه main را بصورت مثلا ذیل تغییر دهید :


static void Main(string[] args)
{
// Display the number of command line arguments:
System.Console.WriteLine(args.Length);
}

Mohamad_Gha3mi
چهارشنبه 20 بهمن 1389, 12:13 عصر
دوست عزیز برنامه main منظورت Program.cs هست.
چون من Console Application نمینویسما

ASKaffash
چهارشنبه 20 بهمن 1389, 12:37 عصر
سلام
بله در program و برای WinApp است نه برای console شما امتحان کن پشیمون نمی شوی

ali.rezaei7
چهارشنبه 20 بهمن 1389, 12:47 عصر
درود. براي دسترسي به آرگومان هاي ارسال شده به يه WinApp از تابع Environment.GetCommandLineArgs استفاده كنيد. آرگون هاي ارسالي رو در قالب آرايه اي از string بر ميگردونه.

مثال:

foreach (string a in Environment.GetCommandLineArgs())
MessageBox.Show(a);

Mohamad_Gha3mi
چهارشنبه 20 بهمن 1389, 12:56 عصر
دوستان ممنون از کمکتون مشکل حل شد.

من یه سوال دیگه هم دارم.

اصولا در برنامه های دارای بانک اطلاعاتی کد Fill کردن یک دیتا تیبل رو در رویداد Form_Load مینویسند . اگه این کد رو در Constractor کلاس فرم بنویسیم از نظر اصولی چه مشکلی داره؟

shuriken
چهارشنبه 20 بهمن 1389, 15:06 عصر
فک نمیکنم مشکل خاصی داشته باشه.
ولی از لحاظ اصولی کار درستی نیست.
چون اگه شما کد Fill رو در سازنده بنویسی برای هر شی که از فرمت میسازی حتی قبل از اینکه نیاز به نمایشش باشه
داری فضای خیلی بزرگی رو اشغال میکنی.
در صورتی که تا قبل از نمایش داده شدن فرم تقریبا هیچ سودی برامون نداره.
پس بهتره موقع Load اینکارو بکنی که هر وقت نیاز شد عمل Fill رو انجام بده و اون رو نمایش بده.
و حتی بهتر از اون اینه که حتی تو load هم ننویسی و فقط موقعی که به اون اطلاعات نیاز داری Fill کنی.

Mohamad_Gha3mi
چهارشنبه 20 بهمن 1389, 15:23 عصر
دوست عزیز shuriken:

من توی یک فرم اطلاعات لازم رو میگیریم و در جدول Insert میکنیم که توی یک فرم دیگه محتوای جدول رو نشون میدم.

برای ویرایش همون اطلاعات یه Constractor میسازم که فیلد کلید جدول رو میگیره و اطلاعات مورد نظر رو

توی Object های فرم نشون میدم تا بعد از ویرایش ذخیره بشه. که تو همین Constractor ، متد FillByPrimaryKey رو مینویسم.

شما چه راه حلی رو پیشنهاد میدید که Fill رو در Constractor ننویسم؟

shuriken
شنبه 23 بهمن 1389, 09:38 صبح
اگه فرم رو فقط برای ویرایش اطلاعات استفاده میکنین توی همون سازنده بنویسین بهتره
ولی بهر حال شما میتونید توی سازنده فقط فیلد کلید جدول رو بگیرین و در یک متغیر global ذخیره کنین
بعد هروقت که نیاز داشتین (مثلا توی رخداد formload) تابع FillByPrimaryKey رو فراخونی کنید.
اینطوری کنترل بیشتری روی برنامه خواهید داشت.