خواندن یک برنامه از حافظه کامپیوتر

  • شروع کننده موضوع شروع کننده موضوع مجید
  • تاریخ شروع تاریخ شروع
وضعیت
موضوع بسته شده است.

مجید

کاربر فعال
ارسال‌ها
26
امتیاز
1
نام مرکز سمپاد
شهید قدوسی قم
سلام.
من سوالی داشتم.
چطور می توانم یک برنامه بنویسم که مثلا پس از اجرا یک سوال از کاربر بپرسد :"آیا می خواهید برنامه Paint را اجرا کنم؟" . اگر جواب دادیم 'بله' آن وقت برنامه را اجرا کند.
مهم نیست به چه زبانی باشد.
ترجیحا : ++C یا بیسیک یا ویژوال بیسیک.
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

منم مدت هاست این سوالو دارم وقت نکردم از کسی بپرسم.
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

من که تو VB میدونم . 2 تا form باز میکنین و تو فرم 1 اون هرطوری که دلتون میخواد ( Msgbox و Label و ... ) سؤال "آیا می خواهید برنامه Paint را اجرا کنم؟" رو از کاربر میپرسید . بعدش دستور کامندی که کابر قراره روش کلیک بکنه تا برنامه ی X باز بشه رو اینطوری می نویسین .

Form1 . Visible = False
Form2 . visible = True
که تو این حالت فرم 2 همون برای مثال Paint هستش . یه نمونه که من نوشتم همین حالا این تو Text Box پسورد ازتون میگیره و فرم 2 رو باز میکنه .
If TextBox1.Text = ("171717") Then
Form1.Visible = False
Form2.Visible = True
البته درستش اینه که اسم فرم هاتون ، فرم 1 و فرم2 نباشه .
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

من تا حالا با VB کار نکردم، ولی فکر کنم این چیزی که گفتین فقط مربوط به باز یا بسته کردن form ها توی خود محیط برنامه تون باشه. میشه یه فایل exe رو هم اون طوری باز کرد؟
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

به نقل از ندا مکرم :
من تا حالا با VB کار نکردم، ولی فکر کنم این چیزی که گفتین فقط مربوط به باز یا بسته کردن form ها توی خود محیط برنامه تون باشه. میشه یه فایل exe رو هم اون طوری باز کرد؟
بله . این یادم رفته بود ! اول از Project خودمون یه Exe میگیریم بعدش میتونیم به راحتی برنامه ای که ساختیم رو استفاده کنیم .
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

به نقل از TNT :
بله . این یادم رفته بود ! اول از Project خودمون یه Exe میگیریم بعدش میتونیم به راحتی برنامه ای که ساختیم رو استفاده کنیم .
می شود یک بار دیگر به طور کامل توضیح بدهید؟
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

فكر كنم سوال اين بوده كه برنامه ما يك برنامه ى EXE رو باز كنه ولى كد شما فرم ديگرى توى همون برنامه رو نشون مى ده.
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

به نقل از آرمیتا ثابتی اشرف :
فكر كنم سوال اين بوده كه برنامه ما يك برنامه ى EXE رو باز كنه ولى كد شما فرم ديگرى توى همون برنامه رو نشون مى ده.
آهان ! درسته . شرمنده من سؤال رو اشتباه متوجه شدم ... در این مورد والا من بلد نیستم .
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

برای c++ هم فکر نمیکنم مشکلی باشه،چون که دو حالت داره : یا شما برنامه ساده رو میخواهید که قبل از run کردنش ازتون اجازه بگیره که برای اون کافیه بگید که اگه گفت نه break کنه یا اگه بخواید continue بزارید که دوباره برگردونه سر حلقه.یا اینکه شما یه برنامه ای دارید که میخواهید بازش کنید ولی از داخل یه برنامه دیگه،که در اینصورت باید که بگید با وارد شدن به حلقه فایل اون برنامه رو قبل از هر چیز صدا کنه و...
من در مورد دوم اطلاع چندانی ندارم،ممکن که اشتباه باشه،دوستان لطفا اصلاحش کنید اگه اشکالی داره.
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

به نقل از مجید :
سلام.
من سوالی داشتم.
چطور می توانم یک برنامه بنویسم که مثلا پس از اجرا یک سوال از کاربر بپرسد :"آیا می خواهید برنامه Paint را اجرا کنم؟" . اگر جواب دادیم 'بله' آن وقت برنامه را اجرا کند.
مهم نیست به چه زبانی باشد.
ترجیحا : ++C یا بیسیک یا ویژوال بیسیک.

توی C++وC بسته به کامپایلرت میتونی این کار را بکنی. مثلا توی لینوکس برای اجرا کردن فلان برنامه باید در c++ بگی
کد:
system("./prog")
برای ویندوز مثلا میگی
کد:
system("mspaint");
اون وقت برنامه Paint را باز میکنه. ولی بازم میگم بستگی به کامپایلرت داره توی ویندوز با Dev-CPP تست کن فکر کنم جواب بگیری.
این سیستم در PHP هم داریم . یعنی روی سرور اگر خواستی چیزی ران کنی دقیقا فرمانهاش همینه.(البته exec , ...) هم داره
با توجه به ساختار Visual C احتمالا این فرمانها روی اون هم جواب میدن.

توی ویژوال بیسیک برای باز کردن یک برنامه دیگه باید بگی
کد:
Shell "mspaint", vbNormalFocus
اینطوری mspaint را باز میکنه. آرگومان دوم نحوه ی نمایش برنامه را مشخص میکنه. وقتی داری کد میزنی خودش گزینه های مختلف را نشون میده.
mspaint چون در فولدر system32 ویندوز قرار گرفته با اجرای فرمان mspaint قابل اجراست
اگر بخوایید برنامه دیگه ای را باز کنید که در فولدر system32 نیست باید آدرس کاملش را وارد کنید.
توی C++ و C هم به همین شکله

راستی عنوان تاپیک را اشتباه زدی.
خواندن یک برنامه از حافظه کامپیوتر با اجرا کردن یک برنامه از روی سیستم دوتا چیز کاملا متفاوته.
اولیش که بش Memory Dumping هم میگن یعنی زمانی که برنامه روی حافظه است و اجرا شده از اطلاعاتش کپی گرفته شه.
بیشتر کاربردش در Unpack کردنه. یک سری برنامه ها هستن که وقتی اجرا شدن تازه توی حافظه Extract و اجرا میشن. با این کار دسترسی مستقیم کاربر به هسته برنامه را غیر ممکن میکنن
بعد برای اون کار از عبارت اول استفاده میشه.
در صورتی که شما دنبال عبارت دوم یعنی اجرا کردن یک برنامه از روی سیستم هستید.
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

پس در کل نمی توان!
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

نمی دونم هدفت چیه! ولی یه چیزی به نظرم می رسه کار جالبی باشه!

یادم میاد یه کاری می کردیم با وی.بی یه برنامه رو اجرا می کردیم hwnd رو می گرفتیم می دادیم به یه form، اون برنامه در چارچوب اون فرم نمایش داده می شد!! یه چیزی شبیه به MDIform و Child ها! یادم نمیاد چه جوری و ربطش به سوالتون نیازمند تفکر سر فرصت است که بنده وقتش رو ندارم :دی
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

به نقل از مجید :
پس در کل نمی توان!

:)
هر کاری که فکرش را بکنی میشه کرد!(من برنامه Exe را مجبور میکنم کلاغ پر بره برات!)
ببین کاری که شما میخوایید بکنید همه چیش بدیهی بود الا اون تیکه که میخواستید یک برنامه خاص را باز کنید!

شما باید یک فرم طراحی کنید . بعد وقتی کاربر دکمه بله را فشار داد شما فرمانی که گفتم را بزنید برای باز کردن برنامه مورد نظرتون .
اگر هنوز مسئله برات دقیقا مشخص نیست بگو من برات با VB بنویسم و بزارم اینجا.
به نقل از مـ‌‍‌‌همّد بذرکار :
نمی دونم هدفت چیه! ولی یه چیزی به نظرم می رسه کار جالبی باشه!

یادم میاد یه کاری می کردیم با وی.بی یه برنامه رو اجرا می کردیم hwnd رو می گرفتیم می دادیم به یه form، اون برنامه در چارچوب اون فرم نمایش داده می شد!! یه چیزی شبیه به MDIform و Child ها! یادم نمیاد چه جوری و ربطش به سوالتون نیازمند تفکر سر فرصت است که بنده وقتش رو ندارم :دی
این چیزی که گفتید از تابع های API ویندوزه. هر ویندو که نمایش داده میشه از طریق WindowHandler یک مشخصه ای تحت عنوان WindowHandle میگیره.
بعد شما میتونید یک فرمی (سیاه و سفید از قالب صفحه) درست کنید و به یک تابع دیگه با Handle ای که دارید بدید . ویندوز میاد و صفحه برنامه را به قالب خاصی که میخوایید در میاره!
(بعضا اگر اسم Process را هم پاس بدیم این کار را میکنه(اگر برنامه فقط یک ویندو داشته باشه))
ذات برنامه های ویندوز در یک صفحه مستطیل تعریف شده اند. حالا اگر برنامه گوشه های صفحه اش گرده یا کلا مستطیل نیست از این طریق شکل خودش را تنظیم میکنه.
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

به نقل از Sylar :
:)
هر کاری که فکرش را بکنی میشه کرد!(من برنامه Exe را مجبور میکنم کلاغ پر بره برات!)
ببین کاری که شما میخوایید بکنید همه چیش بدیهی بود الا اون تیکه که میخواستید یک برنامه خاص را باز کنید!

شما باید یک فرم طراحی کنید . بعد وقتی کاربر دکمه بله را فشار داد شما فرمانی که گفتم را بزنید برای باز کردن برنامه مورد نظرتون .
اگر هنوز مسئله برات دقیقا مشخص نیست بگو من برات با VB بنویسم و بزارم اینجا.

الان این چیزی که گفتید منو گیج کرد!!!من به جای صاحب بحث خواهش میکنم که برنامه شو بنویسید و بزارید اینجا!
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

به نقل از فاطمه زهرا قرائی منش :
الان این چیزی که گفتید منو گیج کرد!!!من به جای صاحب بحث خواهش میکنم که برنامه شو بنویسید و بزارید اینجا!

بفرمایید:
http://www.mediafire.com/download.php?2jyt3h2gjyo
برید توش بعد سمت چپ صفحه نوشته Click here to start download . روی اون کلیک کنید تا دانلود شه
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

من منظورم فرم دادن فرم ها نبود :دی اینکه با یه ماسک شکل فرم رو عوض کنیم کار جالبیه ولی این رو من نگفتم!
فکر کنین یه فرم دارین که توی این فرم یه فرم دیگه دارین و می تونین چپ و راست ببرینش! (مثالش می شه MDIFormها!) حتی می تونی یه فرم رو توی یه "پیکچر باکس" فرم دیگه نمایش بدین! فقط یادم نمیاد چطوری!
(* وقتی چنین کاری می کردیم پرسس زیادی می طلبید :دی گاهی وقتا که چندتا کار با هم انجام می شد هنگ می کرد!)
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

یک سوال خارج از بحث:
البته عذر می خواهم :
این ":دی" چی هست که شما بین نوشته هایتان به کار می برید؟
متشکر می شوم اگر جوابم را بدهید.
در ضمن ، اگر مثلا من بخواهم برنامه را طوری تنظیم کنم که برنامه ی خاصی که به برنامه های اصلی ویندوز (مانند paint) ربطی ندارند را اجرا کند ، آن وقت که نمی توانم از دستور shell استفاده کنم. و همچنین دستوری که برای ++C قرار داده بودید ، عمل نکرد.
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

دستور c++ فکر می کنم نیاز به include داشته باشه!
توی فراخوانی تابع shell گفته شد که آدرس فایل مورد نظر رو هم می تونین بنویسین! مثلا "C:\apps:\Name.exe" رو به جای "mspaint" بزارین!

{ :دی همون : D خودمونه که فارسی نویسی شده! برای راحتی در تایپ :دی)
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

به نقل از مجید :
یک سوال خارج از بحث:
البته عذر می خواهم :
این ":دی" چی هست که شما بین نوشته هایتان به کار می برید؟
متشکر می شوم اگر جوابم را بدهید.
در ضمن ، اگر مثلا من بخواهم برنامه را طوری تنظیم کنم که برنامه ی خاصی که به برنامه های اصلی ویندوز (مانند paint) ربطی ندارند را اجرا کند ، آن وقت که نمی توانم از دستور shell استفاده کنم. و همچنین دستوری که برای ++C قرار داده بودید ، عمل نکرد.

چرا میتونی از Shell استفاده کنی. به جای "mspaint" مثلا بزن "c:\program.exe" یا هر آدرس دیگه ای داره.
راستی اگر برنامه ای که میخوایی اجرا کنی درکنار برنامه ات باشه با اسمش میتونی اجراش کنی مثلا "program.exe"

اون فرمان ۱۰۰٪ کار میکنه. فکر کنم باید اول برنامه cstdlib را include کنید. و به Compiler تون هم کاملا بستگی داره.
 
پاسخ : خواندن یک برنامه از حافظه کامپیوتر

به نقل از Sylar :
چرا میتونی از Shell استفاده کنی. به جای "mspaint" مثلا بزن "c:\program.exe" یا هر آدرس دیگه ای داره.
راستی اگر برنامه ای که میخوایی اجرا کنی درکنار برنامه ات باشه با اسمش میتونی اجراش کنی مثلا "program.exe"

اون فرمان ۱۰۰٪ کار میکنه. فکر کنم باید اول برنامه cstdlib را include کنید. و به Compiler تون هم کاملا بستگی داره.
سلام.
با تشکر از شما دوست عزیز . برنامه ی ++C هم عمل کرد ولی آیا در ++C هم مثل VB می شود برنامه را از یک آدرس خاص اجرا کرد؟ چطور؟
 
وضعیت
موضوع بسته شده است.
Back
بالا