zoukankan      html  css  js  c++  java
  • c# 隐藏 控制台应用程序

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Diagnostics;
    using System.Runtime.InteropServices;
    
    namespace HideConsole
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.Title = "HideConsole";
                IntPtr hwnd = FindWindow(null, Console.Title);
                if (hwnd != IntPtr.Zero)
                    ShowWindow(hwnd, CmdShow.SW_HIDE);
                //Process p = new Process();
                /////cmd 名称
                //p.StartInfo.FileName = Process.GetCurrentProcess().MainModule.ModuleName;
                //p.StartInfo.CreateNoWindow = true;
                //p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                Console.WriteLine("控制台应用程序隐藏DOS界面");
    
                Console.ReadKey();
            }
    
            #region WinAPI
            /// <summary>
            /// Sets the specified window's show state.
            /// </summary>
            /// <param name="hWnd">A handle to the window.</param>
            /// <param name="nCmdShow">Controls how the window is to be shown. This parameter is ignored the first time an application calls ShowWindow, if the program that launched the application provides a STARTUPINFO structure. Otherwise, the first time ShowWindow is called, the value should be the value obtained by the WinMain function in its nCmdShow parameter. In subsequent calls</param>
            /// <returns></returns>
            [DllImport("User32.dll", EntryPoint = "ShowWindow")]
            private static extern bool ShowWindow(IntPtr hWnd, CmdShow nCmdShow);
            /// <summary>
            /// Retrieves a handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows. This function does not perform a case-sensitive search.
            /// </summary>
            /// <param name="lpClassName">The class name or a class atom created by a previous call to the RegisterClass or RegisterClassEx function. The atom must be in the low-order word of lpClassName; the high-order word must be zero.
            /// If lpClassName points to a string, it specifies the window class name. The class name can be any name registered with RegisterClass or RegisterClassEx, or any of the predefined control-class names.
            /// If lpClassName is NULL, it finds any window whose title matches the lpWindowName parameter.</param>
            /// <param name="lpWindowName">The window name (the window's title). If this parameter is NULL, all window names match.</param>
            /// <returns>If the function succeeds, the return value is a handle to the window that has the specified class name and window name.
            ///If the function fails, the return value is NULL.</returns>
            [DllImport("user32.dll")]
            public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
            #endregion
        }
    
        /// <summary>
        /// http://msdn.microsoft.com/en-us/library/ms633548(VS.85).aspx
        /// </summary>
        public enum CmdShow : int
        {
            /// <summary>
            /// Hides the window and activates another window.
            /// </summary>
            SW_HIDE = 0,
            /// <summary>
            /// Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when displaying the window for the first time.
            /// </summary>
            SW_SHOWNORMAL = 1,
            /// <summary>
            /// Activates the window and displays it as a minimized window.
            /// </summary>
            SW_SHOWMINIMIZED = 2,
            /// <summary>
            /// Activates the window and displays it as a maximized window.
            /// </summary>
            SW_SHOWMAXIMIZED = 3,
            /// <summary>
            /// Displays a window in its most recent size and position. This value is similar to SW_SHOWNORMAL, except that the window is not activated.
            /// </summary>
            SW_SHOWNOACTIVATE = 4,
            /// <summary>
            /// Activates the window and displays it in its current size and position.
            /// </summary>
            SW_SHOW = 5,
            /// <summary>
            /// Minimizes the specified window and activates the next top-level window in the Z order.
            /// </summary>
            SW_MINIMIZE = 6,
            /// <summary>
            /// Displays the window as a minimized window. This value is similar to SW_SHOWMINIMIZED, except the window is not activated.
            /// </summary>
            SW_SHOWMINNOACTIVE = 7,
            /// <summary>
            /// Displays the window in its current size and position. This value is similar to SW_SHOW, except that the window is not activated.
            /// </summary>
            SW_SHOWNA = 8,
            /// <summary>
            /// Activates and displays the window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when restoring a minimized window.
            /// </summary>
            SW_RESTORE = 9,
            /// <summary>
            /// Sets the show state based on the SW_ value specified in the STARTUPINFO structure passed to the CreateProcess function by the program that started the application.
            /// </summary>
            SW_SHOWDEFAULT = 10,
            /// <summary>
            /// Minimizes a window, even if the thread that owns the window is not responding. This flag should only be used when minimizing windows from a different thread.
            /// </summary>
            SW_FORCEMINIMIZE = 11
        }
    }
  • 相关阅读:
    # 机器学习算法总结-第七天(线性回归)
    # 机器学习算法总结-第六天(Adaboost算法)
    # 机器学习算法总结-第五天(降维算法PCA/SVD)
    #再谈 CVE-2017-10271回显POC构造
    # 机器学习算法总结-第四天(SKlearn/数据处理and特征工程)
    # 机器学习算法总结-第三天(支持向量机)
    # 机器学习算法总结-第二天(朴素贝叶斯、逻辑回归)
    # 机器学习算法总结-第一天(KNN、决策树)
    # weblogic CVE-2019-2615/2618(任意文件读取,任意文件上传)
    # CVE-2019-2725二次反序列化EventData Gadget POC/JdbcRowSetImpl POC构造
  • 原文地址:https://www.cnblogs.com/wjshan0808/p/4230355.html
Copyright © 2011-2022 走看看