PDA

View Full Version : باز کردن کنسول در ویندوز فرمCli



mohsen@
پنج شنبه 09 خرداد 1392, 22:46 عصر
سلام دوستان من میخوام تو ویندوز فرم سی شارپC++‎/Cli یه کنسول باز کنم کسی نمونه سورس کد داره

roomusic
جمعه 10 خرداد 1392, 05:17 صبح
سلام دوست عزیز
میخوای داخل فرمت باز بشه یا بیرون فرمت ( به صورت یه برنامه مجزا) ؟

barnamenevisjavan
جمعه 10 خرداد 1392, 08:13 صبح
احتمال زیاد میخواد داخل فرم باز بشه
من هم قبلا همین مشکل رو داشتم به جایی نرسیدم

roomusic
جمعه 10 خرداد 1392, 23:05 عصر
سلام دوست عزیز
این کار ، کاری نداره (باز شدن برنامه در فرم)
شما اول تو فرمت یه Panel اضافه کن بعد کد زیر رو تو یه button یا Form_Load وارد کن تا برنامه ای که دلت میخواد برات باز بشه(تو قسمت آدرس برنامه میتونی فقط نام برنامه هایی با پسوند شونو که برای خود ویندوز هستن رو بنویسی ، در غیر این صورت باید آدرس بدی):

Process p = Process.Start("آدرس برنامه");
p.WaitForInputIdle();

SetParent(p.MainWindowHandle, panel1.Handle);

[DllImport("user32.dll")]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

(ولی فکر نمی کنم رو CMD کار کنه ، چون یه جورایی CMD خاصیت برنامه ای خودشو داره) :لبخند:

این کد هم برای باز شد فرم دیگه تو فرم خودتون ( برای این هم تو فرم اصلیتون باید یه پنل اضافه کنید) :
var frm = new Form1();
frm.TopLevel = false;
frm.Parent = panel1;
frm.Dock = DockStyle.Fill;
frm.Show();

موفق باشید:لبخند:

mohsen@
دوشنبه 13 خرداد 1392, 19:49 عصر
سلام دوست عزیز ازتون ممنونم
من میخوام ازتو فرمcli مثلا روی یک باتن که کلیک کردم کنسول باز شه ویهthread رو فراخوانی کنم وکد زیرو هم توش نوشتم فقط از تعریف کنسولم ایراد مگیره

if (!isConsole) { isConsole=AllocConsole(); Console::OpenStandardOutput(); Console::SetWindowSize(80,25); Console::Write("\n The console is activated now ..."); } else Console::Write("\n The console is already activated ????");