PDA

View Full Version : طراحی اینترفیس ویندوزی باامکان ارسال فرمان به برنامه تحتDOS



ravanfar
شنبه 10 اردیبهشت 1384, 11:10 صبح
سلام
یک برنامه تحت داس داریم (خیلی پیچیده و با محاسبات سنگین ریاضی)
امکان باز نویسی آن هم به ویندوز نیست کسی هم روی این نسخه هم چنین کاری نکرده است.
Source آن هم موجود نیست ضمناْ به گفته سازنده با C و Assembly نوشته شده است.
ضمنا پس از اجرای برنامه و ورود به محیط آن که آن هم متنی و خط فرمانی است ورودی های (داده های)متعددی از طریق خط فرمان میگیرد از قبیل عدد و یا فایل های text که نام فایل را میآوریم به همراه سایر پارامترهای محاسباتی و پس دریافت این دستورات محاسبات شروع میشود ( با مدت طولانی مثلا 3 یا 4 ساعت) و بد بحال استفاده کننده اگر داده های ورودی اشتباه باشد(مثلا تایپی) چون بعد از سه چهار ساعت پاسخ میدهد داده ورودی اشتباه بوده و یا به عبارتی سیستم کنترل داده ورودی از کاربر را ندارد.

حال سوال من:

آیا امکان دارد برنامه ای تحت ویندور طراحی شود که در آن دستورات و پارامترهای فرمان داده شود و پس از مثلا Enter کردن این دستورات و پارامترها به برنامه تحت داس مذکور که آن هم اجرا شده است فرستاده شود یعنی مثلا بجای اینکه ما در خط فرمان در محیط برنامه دستور زیر را :
Proccess /d stm.dat
تایپ کرده سپس enter را بزنیم در محیط تحت ویندوز از یک combobox این دستور را انتخاب کرده نام فایل را بدهیم و با یک enter در اینترفیس ویندوزی برنامه تحت داس محاسبات مورد نظر مارا اجراکرده و خروجی را اگر قابل نمایش بود به ما نشان دهد.

متشکرم

hr110
شنبه 10 اردیبهشت 1384, 11:23 صبح
با دستور winexec میتوانید هر برنامه ایی چه ویندوزی و چه داسی رو اجرا کنید، و حتی پارامترها را هم میتوانید ارسال کنید.

m-khorsandi
شنبه 10 اردیبهشت 1384, 13:38 عصر
درود
فکر کنم شما اول باید ببینید برنامه تحت داسی که دارید به صورت Parametric مقدار میگیره یا نه؟

ravanfar
شنبه 10 اردیبهشت 1384, 16:11 عصر
سلام
جناب آقای ربیعی متشکرم از ارسال جواب شما مشکل آنجاست که وقتی وارد محیط برنامه میشویم در خط فرمان داخل کروشه نام برنامه ظاهر میشود و ما دستورات را جلوی کروشه مینویسیم و امکان ندارد از برنامه خارج شویم و هر دستور منوط به انجام دستور قبل است (سلسله مراتبی)
حال ادامه سوال من
آیا این دستور توانایی دارد به برنامه در حال اجرای تحت داس مذکور به صورت آنلاین دستورات و پارامترها را ارسال کند؟
ضمنا ممنون میشوم در خصوص دستور مذکور بیشتر توضیح بفرمایید
متشکرم - روانفر

vcldeveloper
دوشنبه 12 اردیبهشت 1384, 02:31 صبح
آیا این دستور توانایی دارد به برنامه در حال اجرای تحت داس مذکور به صورت آنلاین دستورات و پارامترها را ارسال کند؟
خیر. این تابع فقط یک برنامه رو فراخوانی میکنه (در هنگام فراخوانی می تونید از پارامتر هم استفاده کنید). با این تابع و ShellExecute می تونید همون کار گزینه Run در منوی Start رو انجام بدید.
با استفاده از دو تابع فوق، امکان ارسال فرامین به یک برنامه در حال اجرا وجود نداره.

ravanfar
دوشنبه 12 اردیبهشت 1384, 10:38 صبح
سلام
علی آقای کشاورز عزیز قربان دست و پنجه ات من یک بار دیگه هم این سوال را پرسیدم و چند نفر هم این جواب را دادند و من هم در حد دانش خودم برنامه ای نوشتم و از این دستور استفاده کردم ولی به همین مورد شما برخوردم وآنچه که مد نظرم بود انجام نشد :(
حالا ببینم واقعاْ راهی داره یا نه :گیج:
ممنون میشوم پاسخ دهید
روانفر

vcldeveloper
سه شنبه 13 اردیبهشت 1384, 01:50 صبح
جناب آقای روانفر،
مطمپن هستم که با استفاده از توابعی که در بالا ذکر شدند، نمیشه منظور شما رو برآورده کرد.
اما در مورد روش های دیگه ایی که ممکن وجود داشته باشند، اطلاعی ندارم. فکر نمی کنم که راهی برای ارتباط برقرار کردن با یک برنامه تحت داس در حال اجرا (و دادن مقادیر به اون) وجود داشته باشه
:sorry: