ورود

View Full Version : سوال: مخفی کردن پنجره CMD با اجرای دستور RUN



jooybar
دوشنبه 13 مهر 1388, 13:25 عصر
آیا راهی وجود دار که بشه تو VFP بعد از اجرای دستور تحت داس توسط RUN پنجره معروف مشکی رنگ (CMD ) باز نشه و یا بشه موقعیت پنجره رو به جای دیگری انتقال داد ؟
چون من در قسمتی از برنامه باید برنامه ای رو از dos اجرا کنم و این باز شدن مرتب پنجره سیاه برام مشکل ساز شده !

mehran_337
دوشنبه 13 مهر 1388, 15:11 عصر
قبلا توضیح داده شده . n/ را بلافاصله بعد از دستور run بنویسید اینگونه :

run/n

jooybar
سه شنبه 14 مهر 1388, 09:09 صبح
سویچ /n در مواردی موجب حذف پنجره خواهد شد که برنامه مورد نظر شما تحت ویندوز باشد .
مثلا regedit-gpedit -calc
ولی در مورد برنامه های که تحت داس هستند سویچ /n کاربردی ندارد.
مثلا شما با اجرای دستور dir/s و استفاده از سویچ /n اصولا پیغام خطا دریافت خواهید کرد و این سویچ در برنامه یا دستورات تحت داس کاربردی ندارد.

mehran_337
سه شنبه 14 مهر 1388, 11:03 صبح
پس بیشتر توضیح بدید تا ببینییم مشکل کجاست ؟ چه کاری می خواهید اجام بدهید مثالی بزنید

سعید حمیدیانفر
سه شنبه 14 مهر 1388, 11:12 صبح
سلام
اينها امتحان كنيد


run <yourdosprogram> /n7

run <yourdosprogram> /n0

run <yourdosprogram> /n5

rahro
سه شنبه 14 مهر 1388, 12:15 عصر
در داس
RUN/0

jooybar
سه شنبه 14 مهر 1388, 14:00 عصر
با تشکر از کلیه اساتیدی که در این مورد وقت گذاشتن .
متاسفانه با روشهای دوستان جواب نگرفتم .
جناب مهران :
من در بخشی از برنامه باید systeminfo را اجرا کنم و مقادیر بدست آمده را به یک tabel انتقال بدم
بنابراین در برنامه قرار دادم RUN systeminfo >_chksys.tmp
البته دستورات دیگری هم هستند که مرتبا پنجره cmd باز میشه و جلوه خوبی نداره .

rezaTavak
چهارشنبه 15 مهر 1388, 08:09 صبح
یک راه دیگر هم هست استفاده از API های ویندوز.

البته دستور فوق را شاید نتوان از این طریق اجرا کرد:



DECLARE integer ShellExecute IN shell32.dll integer , string , string , string , string,integer
= ShellExecute(1,"open","cmd","systeminfo >_chksys.tmp","",7)

http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx (http://msdn.microsoft.com/en-us/library/bb762153%28VS.85%29.aspx)



Private Const SW_SHOWNORMAL = 1
Private Const SW_SHOWMINIMIZED = 2
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOW = 5
Private Const SW_MINIMIZE = 6
Private Const SW_SHOWMINNOACTIVE = 7
Private Const SW_SHOWNA = 8
Private Const SW_RESTORE = 9
Private Const SW_SHOWDEFAULT = 10

mehran_337
دوشنبه 16 آذر 1388, 08:07 صبح
مثلا یک فایل word را در برنامه می خواهیم باز کنیم :
run test.doc با هر پارامتری پنجره سیاه داس را باز می کند . برای رفع این ، راهی هست؟

binyaz2003
دوشنبه 16 آذر 1388, 09:28 صبح
همانطور که آقاي توکل گفتن ميتونيد از API ها مثل زير استفاده کنيد.

Declare Integer ShellExecute In SHELL32 Integer, String, String, String, String, Integer
ShellExecute(0,"open","c:\test.doc","","",1)