如何在特定时间激活托盘系统

时间:2016-05-11 02:29:46

标签: c# .net

我想在特定时间激活并运行托盘系统。现在我的托盘系统将在PC打开时运行,但我想要做的是,我希望托盘系统启动并运行,当数据库中有特定状态时触发托盘系统激活并运行。我使用托盘系统开发它。

1 个答案:

答案 0 :(得分:1)

如果您希望隐藏托盘中的所有图标,则必须使用Windows dll(pinvoke)。

  1. 首先,您需要找到processId,然后找到要隐藏/显示的对象的处理程序。
  2. 使用SendMessage或ShowWindow窗口api向处理程序发送隐藏/显示

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

    private const int SW_HIDE = 0x00;
    private const int SW_SHOW = 0x05;

  3. 'IntPtr hWnd'是Handler(就像windows形式'this.Handler')
    'int nCmdShow'是您要发送的消息,在您的情况下为SW_HIDE或SW_SHOW

    你会找到一种方法来操纵这个tutoriel中的其他过程元素:
    http://en.code-bude.net/2014/12/04/manipulate-any-program-by-using-c/

    this is a question about hiding a program in the taskbar,也许有用,只需更改为正确的处理程序......

    在过去,当我做这种事情时,我正在使用Inspect找到我需要的Handle,然后尝试不同的消息...

    在您的Google搜索中,请添加“pinvoke”一词。

    处理程序将在每个新实例上更改,您将需要一个函数来按进程找到它,然后命名。我过去使用的是FindWindowEx(windows xp)

    get all controls by FindWindowEx

    我希望它可以帮助您找到解决方案。