精华内容
下载资源
问答
  • C# 控制台面板(最小化隐藏操作)
    千次阅读
    2019-04-19 11:51:22

    在用控制台面板写入一些后台程序,在用于项目中时,会需要隐藏控制面板的操作。毕竟放一个控制台窗口在前台不仅容易被用户操作误关闭,对用户来说,这个窗口也不友好。这时,就需要将窗口进行隐藏。

    1.引用 user32.dll 扩展文件

    (1)直接从网上下载
    (2)从C盘windows\system32目录下copy出来,放到待运行的Debug/Release 目录下

    介于user32.dll 为非托管DLL,需要用到 DllImportAttribute 属性 对从非托管 DLL 导出的函数进行调用。
    DllImportAttribute 属性(需要引用命名空间 System.Runtime.InteropServices)

    2.功能模块如下

    class Program
        {
            [DllImport("User32.dll", EntryPoint = "ShowWindow")]   //
            private static extern bool ShowWindow(IntPtr hWnd, int type);
    
            [DllImport("User32.dll", EntryPoint = "FindWindow")]
            private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
    
            static void Main(string[] args)
            {
                GetHide(); 
                Console.ReadKey();
            }
    
            /// <summary>
            /// 隐藏控制台窗口
            /// </summary>
            private static void GetHide()
            {
                Console.Title = "TestStartHide";            //当前窗口的标题
                IntPtr ParenthWnd = new IntPtr(0);
                IntPtr et = new IntPtr(0);
                ParenthWnd = FindWindow(null, "TestStartHide");       //根据Title 找到对应窗口的句柄,进行操作
                ShowWindow(ParenthWnd, 0);//隐藏本dos窗体, 0: 后台执行;1:正常启动;2:最小化到任务栏;3:最大化
            }
        }
    
    									 				2019-04-19 留下此篇随笔,仅供参考。
    
    更多相关内容
  • 点击outlook2016关闭按钮,程序不关闭,默认为最小化,并隐藏到通知栏,可使应用不用多次加载打开。该功能需要插件配合,通过加载项可实现功能。
  • 电脑环境:win 10+ Outlook 2016 详细讲解设置Outlook 2016最小化隐藏任务栏和Outlook 2016关闭不退出的步骤说明。
  • C#编写最小化隐藏为任务栏图标的 Window appllication.
  • 程序最小化工具

    2018-08-17 09:25:53
    程序最小化TrayIt 汉化V4.6.5.5 可以你电脑里任务栏里开着的程序进行最小化,并隐藏的 一个非常使用的小工具
  • windows系统自带任务自动关机操作不够好,一旦决定关机,无法取消。该实例可实现win10定时自动关机,最小化隐藏窗口,类似QQ窗口隐藏
  • 在利用api引用excel到窗体的事件中,有时需要将小窗体按钮“最小化,最大化,关闭”隐藏起来
  • outlook2016点击关闭后最小化,到任务栏。亲测有效!!!!
  • 内容索引:VB源码,界面编程,最大化,最小化 VB屏蔽窗口上的关闭、最大化、最小化按钮,让VB窗体中的关闭、最大化、最小化按钮不可用
  • 在实际开发中遇到了一个全屏无法最后小化的问题,unity里没有自带的方法,所有就自己写了一个最小化操作,分享大家一起学习参考。
  • 3. WinMaxAndMin脚本 : if_run(开始时自动运行,最小化);Minimize函数,最小化;Maximize函数,最大化;Restore函数,还原; 4. 默认编辑器状态下不运行,托盘的icon放置在StreamingAssets中; 5. 使用时,...
  • 关于C#WinForm FlowLayoutPanel 最小化还原问题解决方案.
  • 见惯了千篇一律,我们有时需要有一点新意,比如来右上角的这最小化、最大化和关闭三个按钮去掉。 对于最大化和最小化按钮,在C#窗体开发时,各一个属性来启用或禁用这两个按钮。对于最大化来说,this.MaximizeBox=...
  • 一个如何将我们的程序隐藏到系统托盘中的小Demo,非常实用适合小白上手,话多说上项目。 项目 1. 打开Visual Studio 2017,新建一个Winform项目,命名为 MissionBoardData。 2. 打开新建项目的文件夹中,新建一个...

    前言

    和大家分享
    一个如何将我们的程序隐藏到系统托盘中的小Demo,非常实用适合小白上手,话多说上项目。

    项目

    1. 打开Visual Studio 2017,新建一个Winform项目,命名为 MissionBoardData。

    2. 打开新建项目的文件夹中,新建一个Image的文件夹,在里面加入一个Icon的图标,找张图片直接百度在线Icon即可。

    3. 打开Form1.Designer.cs文件将我们的Title更换成我们的项目名称MissionBoardData,默认的Form1名称就被我们更换了。

    4. 然后在我们左侧的工具箱中拖入两个控件,分别为 NotifyIcon 控件和 ContextMenuStrip控件

    NotifyIcon控件的作用是将我们的图标放置在托盘中。命名为 :NotIcon

    ContextMenuStrip控件是我们在托盘中可以对程序进行相应点击功能。命名为 :NotMenuStrip

        4.1 点击NotIcon,在窗口属性的外观中找到Icon选项选择我们刚才放入文件的Icon图标,在ContextMenuStrip中选择我们新建的NotMenuStrip,在Text中输入NotMenuStrip(也可以自行输入,这是系统托盘中显示的的名称)。

        4.2 点击NotMenuStrip,这时我们的主窗口中会显示这个插件,在请在此处键入中进行鼠标双击,分别键入显示;隐藏;退出

    5. 现在可以直接点击运行,查看效果,就会发现在我们的系统托盘中已经有了我们的程序图标,并且鼠标右键也会呈现我们刚才在NotMenuStrip键入的显示;隐藏和退出,接下来我们给它们写入命令。

    6. 但是我们发现主程序的左上角还是默认的图标,点击一下主程序窗口,然后在布局中找到Icon进行替换即可。

    7. 点击NotMenuStrip,双击我们刚才键入的显示,会跳到他的Click事件中,依次将隐藏和退出也做如下操作。

    8. 显示

            private void 显示ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                WindowState = FormWindowState.Normal;//正常显示
            }

    9. 隐藏

            private void 隐藏ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                WindowState = FormWindowState.Minimized;//没了
            }

    10. 退出

            private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                //全干死
                this.Dispose();
                this.Close();
            }

    11.然后我们再运行程序发现我们在系统托盘中的图标和它的三个功能就好使了,但是我们发现他每次都是在桌面不同地方呈现,所以我们给它加一个固定居中现在,将他加到主函数中和显示函数中即可。

    this.StartPosition = FormStartPosition.CenterScreen;//居中显示

    这样呢一个实用方便的小操作到这里就结束了,但是对于控制台程序和WPF的程序操作上还是比较麻烦的需要引用自带的程序集和user32.dll文件才可以,但是呢会出现进程优先的问题,可以通过后台线程的方式进行使用,大家可以自己尝试一下。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace MissionBoardData
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                this.StartPosition = FormStartPosition.CenterScreen;//默认居中显示
            }
    
            private void 显示ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                this.StartPosition = FormStartPosition.CenterScreen;//居中显示
                WindowState = FormWindowState.Normal;//正常显示
            }
    
            private void 隐藏ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                WindowState = FormWindowState.Minimized;//没了
            }
    
            private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                //全干死
                this.Dispose();
                this.Close();
            }
        }
    }
    

     

    展开全文
  • 展开全部功能62616964757a686964616fe78988e69d8331333361303733:窗口最小化后或者点击“hide”按钮将窗口隐藏到托盘。通常最小化的窗口会在任务栏上显示一个按钮。当用户按一下这个按钮,窗口就还原了。这是一个被...

    展开全部

    功能62616964757a686964616fe78988e69d8331333361303733:窗口最小化后或者点击“hide”按钮将窗口隐藏到托盘。

    通常最小化的窗口会在任务栏上显示一个按钮。当用户按一下这个按钮,窗口就还原了。这是一个被大多数桌面环境,比如Windows,KDE,GNOME所采用的普遍设计。不过,因为任务栏通常只是桌面边上一小行,容纳不了很多按钮,用户通常希望把那些不常用的程序隐藏起来,只在通知栏显示一个小图标,要使用的时候再点击那个小图标恢复窗口。这种作法最典型的例子是QQ和Winamp。

    最基本的思路是拦截窗口的最小化事件changeEvent(),通过重写changeEvent()即可。

    “hide”按钮的方式,是通过信号--槽来实现。

    --------------------------------------------------------------------

    void TrayMenu::createActions()

    {

    //创建托盘项

    action_show = new QAction(this);

    action_quit = new QAction(this);

    action_login_home = new QAction(this);

    action_help = new QAction(this);

    action_about = new QAction(this);

    action_check_update = new QAction(this);

    action_setting = new QAction(this);

    //设置托盘项图标

    action_show->setIcon(QIcon(":/icon/open"));

    action_login_home->setIcon(QIcon(":/icon/home"));

    action_help->setIcon(QIcon(":/icon/help"));

    action_about->setIcon(QIcon(":/icon/about"));

    action_check_update->setIcon(QIcon(":/icon/update"));

    action_setting->setIcon(QIcon(":/icon/set"));

    action_quit->setIcon(QIcon(":/icon/quit"));

    //加载图片和提示

    QIcon icon(":/images/sysTray.png");

    systemTray = new QSystemTrayIcon(this);

    systemTray->setIcon(icon);

    systemTray->setToolTip("Hello, this is system tray!");

    注意:这里特别提醒,如果你的应用程序要移植到别的机器上,而且这个机器没有装Qt,QIcon的图片格式最好用png,而不要用ico等格式,否则托盘图标不能显示,会很麻烦。

    //设置托盘想文本

    action_show->setText(QString("显示"));

    action_quit->setText(QString("退出"));

    action_login_home->setText(QString("登录网页"));

    action_help->setText(QString("帮助"));

    action_about->setText(QString("关于"));

    action_check_update->setText(QString("检查更新"));

    action_setting->setText(QString("设置"));

    //添加菜单项

    this->addAction(action_show);

    this->addAction(action_setting);

    this->addAction(action_login_home);

    this->addSeparator();

    this->addAction(action_help);

    this->addAction(action_about);

    this->addAction(action_check_update);

    this->addSeparator();

    this->addAction(action_quit);

    action_setting->setVisible(false);

    //设置信号连接(这里仅列举连接显示窗口的信号)

    QObject::connect(action_show, SIGNAL(triggered(bool)), this, SIGNAL(showWidget()));

    }

    LoginDialog::LoginDialog(QWidget *parent) : QDialog(parent)

    {

    QSystemTrayIcon *system_tray = new QSystemTrayIcon();

    //放在托盘提示信息、托盘图标

    system_tray ->setToolTip(QString("我就是托盘"));

    system_tray ->setIcon(QIcon(":/icon/login"));

    TrayMenu *tray_menu = new TrayMenu();

    system_tray->setContextMenu(tray_menu);

    //点击托盘执行的事件

    connect(system_tray , SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconIsActived(QSystemTrayIcon::ActivationReason)));

    connect(tray_menu, SIGNAL(showWidget()), this, SLOT(showNormal()));

    //显示托盘

    system_tray->show();

    //托盘显示提示信息

    system_tray->showMessage(QString("托盘标题"), QString("托盘显示内容"));

    }

    void LoginDialog::iconIsActived(QSystemTrayIcon::ActivationReason reason)

    {

    switch(reason)

    {

    //点击托盘显示窗口

    case QSystemTrayIcon::Trigger:

    {

    showNormal();

    break;

    }

    //双击托盘显示窗口

    case QSystemTrayIcon::DoubleClick:

    {

    showNormal();

    break;

    }

    default:

    break;

    }

    }

    OK,这样我们的托盘功能就Over了!

    =============================================================================

    另://关闭到托盘

    void Widget::closeEvent(QCloseEvent *e)

    {

    e->ignore();

    this->hide();

    }

    //最小化到托盘

    void Widget::changeEvent(QEvent *e)

    {

    if((e->type()==QEvent::WindowStateChange)&&this->isMinimized())

    {

    QTimer::singleShot(100, this, SLOT(close()));

    }

    }

    或者(me)

    //点击窗口的“最小化"按钮会调用此函数(系统默认)---已实现

    void maxLinksGuard::changeEvent(QEvent * event )

    {

    if(event->WindowStateChange)

    {

    switch(this->windowState())

    {

    //点击“最小化”按钮

    case Qt::WindowMinimized:

    this->hide();

    this->setWindowFlags(Qt::Tool);//隐藏任务栏上图标

    systemTray->show();//显示托盘

    systemTray->showMessage(windowTitle(),"Here is system,double click will show!");//提示

    event->ignore();

    break;

    default:

    break;

    }

    }

    }

    //托盘图标事件--------已实现

    void maxLinksGuard::iconActivated(QSystemTrayIcon::ActivationReason reason)

    {

    switch (reason)

    {

    //单击托盘

    case QSystemTrayIcon::Trigger:

    {

    if(!this->isVisible())

    {

    this->setWindowFlags(Qt::Window); //显示之前恢复

    showNormal();

    }

    else

    {

    hide();

    }

    break;

    }

    //双击托盘---貌似不起作用

    case QSystemTrayIcon::DoubleClick:

    {

    if(!this->isVisible())

    {

    this->setWindowFlags(Qt::Window); //显示之前恢复

    showNormal();

    }

    else

    {

    hide();

    }

    break;

    }

    case QSystemTrayIcon::MiddleClick:

    {

    break;

    }

    default: ;

    }

    }

    //点击窗口的“关闭”按钮触发closeEvent事件(关闭应用程序)----已实现

    void maxLinksGuard::closeEvent(QCloseEvent *event)

    {

    if (this->isVisible())

    {

    QMessageBox::critical(NULL,QObject::tr("Prompt:"),QObject::tr("Are you sure you want to kill/stop the MaxLinksGuard?"));

    event->ignore();

    }

    else

    {

    event->accept();

    }

    }

    ==========================================================

    已赞过

    已踩过<

    你对这个回答的评价是?

    评论

    收起

    展开全文
  • Outlook 2016 关闭改为最小化 插件和步骤
  • Delphi制作最小化到系统托盘的程序&TForm1.FormDestroy不执行的原因.zip
  • 如果希望隐藏(没有窗口)进程在后台工作,最好的方法是编写一个windows服务,并使用通常的窗口服务机制启动/停止它。Windows服务可以很容易地用python编写,例如,这里是我自己服务的一部分(如果不做一些修改,它将...

    目的是什么?

    如果希望隐藏(没有窗口)进程在后台工作,最好的方法是编写一个windows服务,并使用通常的窗口服务机制启动/停止它。Windows服务可以很容易地用python编写,例如,这里是我自己服务的一部分(如果不做一些修改,它将无法运行)import os

    import time

    import traceback

    import pythoncom

    import win32serviceutil

    import win32service

    import win32event

    import servicemanager

    import jagteraho

    class JagteRahoService (win32serviceutil.ServiceFramework):

    _svc_name_ = "JagteRaho"

    _svc_display_name_ = "JagteRaho (KeepAlive) Service"

    _svc_description_ = "Used for keeping important services e.g. broadband connection up"

    def __init__(self,args):

    win32serviceutil.ServiceFramework.__init__(self,args)

    self.stop = False

    def SvcStop(self):

    self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)

    self.log('stopping')

    self.stop = True

    def log(self, msg):

    servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,

    servicemanager.PYS_SERVICE_STARTED,

    (self._svc_name_,msg))

    def SvcDoRun(self):

    self.log('folder %s'%os.getcwd())

    self.ReportServiceStatus(win32service.SERVICE_RUNNING)

    self.start()

    def shouldStop(self):

    return self.stop

    def start(self):

    try:

    configFile = os.path.join(jagteraho.getAppFolder(), "jagteraho.cfg")

    jagteraho.start_config(configFile, self.shouldStop)

    except Exception,e:

    self.log(" stopped due to eror %s [%s]" % (e, traceback.format_exc()))

    self.ReportServiceStatus(win32service.SERVICE_STOPPED)

    if __name__ == '__main__':

    win32serviceutil.HandleCommandLine(AppServerSvc)

    你可以通过python svc_jagteraho.py--startup auto install

    运行它python python svc_jagteraho.py start

    我也会出现在服务列表中,例如services.msc将显示它,您可以启动/停止它,否则您可以使用命令行sc stop jagteraho

    展开全文
  • 仿QQ方式,通过快捷键方式(我设置的是Ctrl+Alt+E,可以随意修改),将应用程序在正常状态和最小化至托盘状态进行切换。
  • STATE 必须是以下之一: '隐藏', 'shownormal', '正常', 'showminimized', 'showmaximized', '最大化','shownoactivate','显示','最小化','showminnoactive', 'showna','restore','showdefault','...
  • vb6实现的程序最小化或关闭窗体后, 隐藏到右侧系统托盘, 双击图标后回复原窗体,windows7测试可用.
  • 不想被您的老板或老师在玩单人纸牌游戏,聊天或上网时打败? 单击关闭(隐藏最小化)并打开多个程序。 这样您就不必再惊慌了...
  • 实现点击标题栏中的最小化按钮后隐藏到托盘, 其实方式最小化,不会隐藏
  • 一个超牛VB6写工具,鼠标模拟点击,支持隐藏最小化窗口,自动安装软件必备,内函源代码!
  • C#编写最小化隐藏为任务栏图标
  • labview实现最小化到系统托盘,通过.net构造完成此功能。 labview实现最小化到系统托盘,通过.net构造完成此功能。为啥要100字节??
  • NULL 博文链接:https://wjason.iteye.com/blog/491135
  • QT隐藏最大化和最小化按钮

    万次阅读 2017-04-26 13:39:30
    隐藏(不显示)最大化最小化按钮: MainWindow w; w.setWindowFlags(w.windowFlags()&~Qt::WindowMinMaxButtonsHint); 使窗口可以最大化,但不能最小化: MainWindow w; w.setWindowFlags(w.windowFlags()&~...
  • 最近做的最小化隐藏到托盘的代码,有详细的注释,现在此分享,与大家一同进步
  • 对于GUI程序,如果想要实现当最小化时,程序从任务栏消失,在系统托盘显示一个图标,表示此程序,并能在托盘内通过双击或者菜单使程序界面恢复。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 151,540
精华内容 60,616
关键字:

怎么把最小化的隐藏