PDA

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



rezaei manesh
دوشنبه 16 اردیبهشت 1387, 11:12 صبح
سلام
من می خوام یه رشته رو به عنوان پارامتر به exe برنامه بدم و اونو موقع اجرای برنامه استفاده کنم
حالا چطوری یه پارامتر از یه برنامه به برنامه دیگه بدم و چطوری در مقصد از اون استفاده کنم

amirsajjadi
دوشنبه 16 اردیبهشت 1387, 13:15 عصر
با سلام
شما یک پروژه از نوع Console درست کن و توی تابع Main به این صورت پارامتر تعریف کن


Sub Main(ByVal a() As String)
MsgBox(a(0))
End Sub

بعد از توی داس به این صورت فایلتو صدا بزن

q.exe PARAM1 PARAM2 ...

rezaei manesh
دوشنبه 16 اردیبهشت 1387, 13:42 عصر
ممنون از توجه شما من الان فرستادن پارامتر رو یاد گرفتم یعنی الان یادم اومد که می شه موقه ای که یه فایل رو از داخل برنامه اجرا کرد می شه پارامتر هم داد
اما چطور این پارامتر رو توی برنامه دوم که باید پارامتر رو بگیره دریافت کنم
یه برنامه با دات نت نوشتم که می خوام بعد از ورود کاربر مقدار پارامتر دریافتی رو چک کنم
این تابع main در کنسول در برنامه معمولی دات نت چیه و...

handvbnet
چهارشنبه 01 خرداد 1387, 19:54 عصر
با سلام
شما یک پروژه از نوع Console درست کن و توی تابع Main به این صورت پارامتر تعریف کن


Sub Main(ByVal a() As String)
MsgBox(a(0))
End Sub

بعد از توی داس به این صورت فایلتو صدا بزن

q.exe PARAM1 PARAM2 ...


میشه بیشتر توضیح بدید؟

علیرضا مداح
چهارشنبه 01 خرداد 1387, 20:09 عصر
سلام دوست عزیز
یک راه هم استفاده از تابع Environment.GetCommandLineArgs که آرگومانهای پاس داده شده به برنامه را به صورت آرایه ای از استرینگ بر میگرداند میباشد ،
به طور مثال در رویداد Load مربوط به فرم کد زیر را بنویسید :


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim parameters As String = Join(Environment.GetCommandLineArgs(), ",")
MessageBox.Show(parameters)
End Sub


سپس در صورتیکه فایل Exe برنامه را به اینصورت اجرا کنید :



"C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\WindowsApplication62\WindowsApplicat ion62\bin\Debug\WindowsApplication62.exe" a b c

یک پیغام با محتوای زیر خواهید دید :


C:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\WindowsApplication62\WindowsApplicat ion62\bin\Debug\WindowsApplication62.exe,a,b,c


توجه کنید که عنصر اول این آرایه مسیر فایل اجرایی برنامه میباشد ،
برای چک کردن هم میتوانید اعضای این آرایه را بررسی کنید ، /

handvbnet
چهارشنبه 01 خرداد 1387, 20:25 عصر
آخه من نمی خوام برنامه بسته بشه و باز شه و چون همش باید بین یک برنامه با برنامه دیگه رابطه داشته باشند . برنامه ای که نوشتم مثل یاهو مسنجر هستش و text ها هی فرستاده و گرفته می شوند . اگر بخواد برنامه بسته شه ، ID طرف هم هی خاموش و روشن میشه . راه دیگه هم دارید؟

علیرضا مداح
چهارشنبه 01 خرداد 1387, 22:03 عصر
@handvbnet
در اینصورت میتوانید با سوکت ها کار کنید :
http://www.codeproject.com/KB/IP/chandrasekar.aspx

rezaei manesh
پنج شنبه 02 خرداد 1387, 09:21 صبح
سلام
دست شما درد نکنه آقای مداح باز مثل همیشه توضیحات شما هونی که ما می خوایم فکر می کنم که دیگه مشکلم حل بشه

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

علیرضا مداح
پنج شنبه 02 خرداد 1387, 10:05 صبح
جناب رضایی منش عزیز ، این مسئله طبیعیست ،/
هنگامیکه شما در یک تاپیک مشترک میشوید ، پس از دریافت آخرین میل ، در صورتی میل های بعدی را دریافت میکنید که بعد از دریافت میل فوروم را ویزیت کرده باشید ،

There may also be other replies, but you will not receive any more notifications until you visit the forum again.

rezaei manesh
پنج شنبه 02 خرداد 1387, 10:39 صبح
سلام
خوب من مگه جواب پست ندادم؟ پس یعنی اومدم
اما امکان داره که پست 4 رو اومده و من از همون میل اونو خوندم و دیگه تو فرمش نیومدم (حقیقتش یادم نیست)
اما از این به بعد همه میل های که برام اومد میام تو سایتش و امید وارم که دیگه این مشکل پیش نیاد
ممنون از توجه شما

handvbnet
پنج شنبه 02 خرداد 1387, 13:20 عصر
حالا اینارو بذارید کنار . مشکل من هنوز حل نشده :(

shahrdar
پنج شنبه 02 خرداد 1387, 17:16 عصر
سلام دوست عزيز
خوده VS اين امکان رو به برنامه نويس داده که من هزار بر هم ازش استفاده کردم
از توی My Project دکمه view Application events رو بزن
در رويدد startup ميتونی از دستور e.commandline استفاده کنی

فکر نميکنم چيزی مبهم باشه در هر صورت اگه مشکلی بود بنويس