একটি C#কনসোল অ্যাপ্লিকেশন এর কনসোল উইন্ডোটি দেখান/লুকান




console console-application (6)

আমি নিজের নিজের কনসোল উইন্ডো কিভাবে লুকিয়ে রাখি তার তথ্যের জন্য প্রায়শই গুগল হয়ে গেছি। অদ্ভুতভাবে, আমি যে সমাধানগুলি পাই তা হ্যাকি সমাধান ছিল যা FindWindow() এর শিরোনাম দ্বারা কনসোল উইন্ডোটি খুঁজে পেতে জড়িত ছিল। আমি উইন্ডোজ এপিআই-তে একটু গভীরে ডুবিয়েছি এবং দেখেছি যে অনেক বেশি সহজ এবং সহজ উপায় রয়েছে, তাই আমি অন্যদের এটি খুঁজে পেতে এখানে পোস্ট করতে চেয়েছিলাম।

কিভাবে আপনি আমার নিজের C # কনসোল অ্যাপ্লিকেশনের সাথে যুক্ত কনসোল উইন্ডোটি লুকিয়ে রাখেন (এবং দেখান)?


"শুধু লুকিয়ে রাখা" আপনি করতে পারেন:

কনসোল অ্যাপ্লিকেশন থেকে আউটপুট টাইপ উইন্ডোজ অ্যাপ্লিকেশন পরিবর্তন করুন ,

এবং new ManualResetEvent(false).WaitOne() পরিবর্তে। new ManualResetEvent(false).WaitOne() Console.Readline/key আপনি new ManualResetEvent(false).WaitOne() ব্যবহার করতে পারেন। অ্যাপটি চলমান রাখতে new ManualResetEvent(false).WaitOne()


আপনি উইন্ডো শিরোনাম উপর নির্ভর করতে চান না, তাহলে এই ব্যবহার করুন:

    [DllImport("user32.dll")]
    static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

...

    IntPtr h = Process.GetCurrentProcess().MainWindowHandle;
    ShowWindow(h, 0);
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new FormPrincipale());

এখানে আমার পোস্ট দেখুন:

উইন্ডোজ অ্যাপ্লিকেশন কনসোল দেখান

আপনি উইন্ডোজ অ্যাপ্লিকেশন (উইন্ডো সহ বা ছাড়া) তৈরি করতে পারেন এবং কনসোলটি পছন্দসই হিসাবে প্রদর্শন করতে পারেন। এই পদ্ধতি ব্যবহার করে কনসোল উইন্ডোটি কখনই প্রদর্শিত হবে না যদি না আপনি এটি স্পষ্টভাবে দেখান। আমি দ্বৈত-মোড অ্যাপ্লিকেশনের জন্য এটি ব্যবহার করি যা আমি কনসোল বা গুই মোডে চালাতে চাই তার উপর নির্ভর করে।


এখানে কিভাবে:

using System.Runtime.InteropServices;
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();

[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

const int SW_HIDE = 0;
const int SW_SHOW = 5;
var handle = GetConsoleWindow();

// Hide
ShowWindow(handle, SW_HIDE);

// Show
ShowWindow(handle, SW_SHOW);

যদি আপনার কোন ছোট ব্যাচ অ্যাপ্লিকেশনটি সংহত করার কোন সমস্যা না থাকে, তবে এই প্রোগ্রামটি Cmdow.exe বলা Cmdow.exe যা আপনাকে কনসোল শিরোনামের উপর ভিত্তি করে কনসোল উইন্ডোগুলি লুকাতে দেয়।

Console.Title = "MyConsole";
System.Diagnostics.Process HideConsole = new System.Diagnostics.Process();
HideConsole.StartInfo.UseShellExecute = false;
HideConsole.StartInfo.Arguments = "MyConsole /hid";
HideConsole.StartInfo.FileName = "cmdow.exe";
HideConsole.Start();

সমাধানের জন্য exe যোগ করুন, "সামগ্রী" এ বিল্ড পদক্ষেপ সেট করুন, আপনি কি সুবিধার জন্য আউটপুট ডিরেক্টরি অনুলিপি সেট করুন, এবং এটি সঞ্চালিত হয় যখন cmdow কনসোল উইন্ডো লুকাবেন।

কনসোলটি আবার দৃশ্যমান করতে, আপনি শুধু আর্গুমেন্ট পরিবর্তন করুন

HideConsole.StartInfo.Arguments = "MyConsole /Vis";

শুধু অ্যাপ্লিকেশন এর প্রোপার্টিগুলিতে যান এবং আউটপুট টাইপ কনসোল অ্যাপ্লিকেশন থেকে উইন্ডোজ অ্যাপ্লিকেশন থেকে পরিবর্তন করুন।





console-application