ارسال مقادیر به بیلدر

haitman

Member
سلام
دوستان من میخوام به بیلدر چند مقدار رو بفرستم
چند راه داره یکی فایل-کلیپ بورد -command line
اما مشکل اینجاست که مقداری که من می خوام بفرستم به هیچ وجه نباید قایل دسرس باشه
توی روش های بالا قابل دسرسه کسی پیش نهادی داره؟
البته اگه راهی هست که مقداری رو با command line بیلدر فرستاد در حالی که فایل بیلدر اجراست.
توضیح:من می خوام مقدار رو از روش command line
در حالی ارسال کنم که برنامه در حال اجراست
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
وقتی برنامه ی ساخته شده با بیلدر درحال اجراست، براحتی میتونیم مقادیری رو از طریق Command Line بهش ارسال کنیم و پردازشش کنیم، ولی باید در هنگام کامپایل برنامه تیک Allow Only One Instance رو بزنیم تا هنگام ارسال اطلاعات یه دسترسی دیگه از برنامه اجرا نشه.
 

haitman

Member
وقتی برنامه ی ساخته شده با بیلدر درحال اجراست، براحتی میتونیم مقادیری رو از طریق Command Line بهش ارسال کنیم و پردازشش کنیم، ولی باید در هنگام کامپایل برنامه تیک Allow Only One Instance رو بزنیم تا هنگام ارسال اطلاعات یه دسترسی دیگه از برنامه اجرا نشه.


مرسی
اما یه سوال دیگه
برای ارسال مقادیر به بیلدر از طریق commandline از این دستور استفاده میشه مثال:
run main.exe 10
خوب میشه بگید چطور وقتی برنامه در حال اجراست مقادیر رو بفرستم؟؟؟؟؟
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
خوب میشه بگید چطور وقتی برنامه در حال اجراست مقادیر رو بفرستم؟؟؟؟؟
باز به همین شکل، تفاوتی نداره، چه برنامه درحال اجرا باشه چه بخایم با یه پارامتر خاص اجراش کنیم، پارامترها به برنامه پاس میشن.
 
درخواست مثال

سلا م آقای nevercom

اگر ممکنه یه مثال واسه این موضوع بزارید تا کاملا جا بیوفته..... :)
 
  • Like
Reactions: mqt

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
سلام،

کد:
[FONT=Courier New][SIZE=2]Path$ = [COLOR=#800000]'C:\Application.exe'[/COLOR] 
Params$ = [COLOR=#800000]'Param1 Param2 Param3'[/COLOR] 
[COLOR=#000090][B]Run[/B][/COLOR]("Path$","Params$")[/SIZE][/FONT]
با قطعه کد بالا سه پارامتر، Param1، Param2 و Param3 به فایل Application.exe ارسال میشن.
روال ارسال پارامتر به برنامه ها به شکل بالا هست،
حالا برای اینکه برنامه ی ما پارامترهای ارسال شده بهش رو دریافت و پردازش کنه، اول ما یه اسکریپت بنام CBK_CMDLINE در Master Top Layer میسازیم.
حالا نوبت نوشتن کد برای دریافت پارامترهای ارسال شده هست
تمام پارامترهای پاس شده به برنامه در متغیرهای رزرو شده ی [CmdLineParam$[nذخیره میشن، که در اینجا n عددی بین صفر و تعداد پارامترهای ارسال شده به برنامه هست.
[CmdLineParam$[0 حاوی تعداد پارامترهای ارسال شده به برنامه هست ، مثلاً اگه مقدار این پارامتر برابر 5 باشه معنیش این هست که 5 پارامتر به برنامه ارسال شده.

مثلاً اگه شما سه پارامتر به برنامه ارسال کنین،
myprogram.exe param1 param2 param3
شکل متغیر [CmdLineParam$[nبدینصورت خواهد بود:
[ltr]CmdLineParam$[0]=>3 ** تعداد پارامترهای پاس شده به برنامه

CmdLineParam$[1]=>param1 ** اولین پارامتر

CmdLineParam$[2]=>param2 ** دومین پارامتر

CmdLineParam$[3]=>param3 ** سومین پارامتر[/ltr]
حالا ما میتونیم به یه کد بنویسیم که اول چک کنه چندتا پارامتر به برنامه ارسال شده، و بعد تمام اون پارامترها رو جایی نشون بدیم یا ازشون استفاده کنیم، مثلاً آدرس یه فایل تصویری رو به برنامه پاس کنیم و بعد از دریافت مسیر توسط برنامه اون رو در یک شئ HotSpot نشون بدیم و ....

در قطعه کد زیر که از راهنمای خود MMB هست (درست مثل تمام این چیزایی که اینجا نوشتم !) پارامترهای ارسال شده به برنامه در یک شئ ListBox نشون داده میشن:
کد:
[FONT=Courier New][SIZE=2][COLOR=#009000]** CmdLineParam$[0] holds number of passed cmd line parameters[/COLOR] 
n=[COLOR=#000090][B]VAL[/B][/COLOR](CmdLineParam$[[COLOR=#ff0000]0[/COLOR]]) 
[COLOR=#009000]** if number of parameters is > 0 then...[/COLOR] 
[COLOR=#0000FF]If[/COLOR] (n>[COLOR=#ff0000]0[/COLOR]) [COLOR=#0000FF]Then[/COLOR] 
  [COLOR=#009000]** This loop simply enumerate the passed parameters[/COLOR] 
  [COLOR=#0000FF]For[/COLOR] i=[COLOR=#ff0000]1[/COLOR] [COLOR=#0000FF]To[/COLOR] n 
    [COLOR=#009000]** ..and show the obtained parameters in message box[/COLOR] 
    [COLOR=#000090][B]ListBoxAddItem[/B][/COLOR]("ListBox","STRING:CmdLineParam$[i]") 
  [COLOR=#0000FF]Next[/COLOR] i 
[COLOR=#0000FF]End[/COLOR][/SIZE][/FONT]
در فایل پیوستی زیر دو تا مثال هست، یکیش که CMDLine نامش هست، مثال همراه خود MMB هست که باید کامپایلش کنید، البته بهمراه تیک Allow Only One Instance
و فایل بعدی مثالی هست که برای فرستادن مقادیر به برنامه هست، که البته هیچ چیزی خاصی درش وجود نداره، اول فایل کامپایل شده رو انتخاب کنید و بعد پارامترها رو ادیت باکس ها بنویسید و بهش ارسال کنید، می بینید که پارامترهای ارسال شده در یک لیست باکس نشون داده میشن.

اگه بازم سوالی بود در خدمتم.
 

پیوست ها

  • Send Parameters.rar
    2.9 کیلوبایت · بازدیدها: 52

Silver Soft

کاربر متخصص مولتی مدیا بیلدر
سلام
دوستان من میخوام به بیلدر چند مقدار رو بفرستم
چند راه داره یکی فایل-کلیپ بورد -command line
اما مشکل اینجاست که مقداری که من می خوام بفرستم به هیچ وجه نباید قایل دسرس باشه
توی روش های بالا قابل دسرسه کسی پیش نهادی داره؟
البته اگه راهی هست که مقداری رو با command line بیلدر فرستاد در حالی که فایل بیلدر اجراست.
توضیح:من می خوام مقدار رو از روش command line
در حالی ارسال کنم که برنامه در حال اجراست

خوب اینکه هیچ امنیتی نداره !!!
شما که با دلفی آشنایی دارید یه پلاگین بنویسید و دستورات رو به صورت Stream به برنامه پاس بدید یا به طور مستقیم از روی رم دستگاه استفاده کنید .
 

جدیدترین ارسال ها

بالا