【问题标题】:Running program in background在后台运行程序
【发布时间】:2012-10-20 10:56:46
【问题描述】:


我有一个迷你项目,我必须在“信息系统安全”主题中做,我的想法是当用户浏览网络并执行一些操作时,我必须在后台运行一个程序。
我做了一些搜索,我想我可能需要编写一个 Windows 服务程序。那是对的吗?或者我应该怎么做才能让我的程序在后台运行?
请帮忙。
谢谢。

【问题讨论】:

  • 它必须执行什么样的活动,它的频率是多少?
  • 其实它必须捕捉用户在浏览特定网站时所写的内容,并获取鼠标位置并截屏。
  • @Ruba 听起来更像是一个间谍软件。
  • 我知道,这是“信息系统安全”主题,所以我们需要知道它们是如何工作的

标签: c# windows vb.net background


【解决方案1】:

要让您的程序在后台运行,您可以使用表单的事件Shown

将其放入 Shown 事件中:

    private void Form1_Shown(object sender, EventArgs e)
    {
        this.WindowState = FormWindowState.Minimized;
        this.Hide();
    }

【讨论】:

    【解决方案2】:

    只需创建一个 Winforms 应用程序,删除表单,然后将代码放入 Program.cs 的 Main() 方法中。只要您需要,就让它保持活跃,并运行您需要的任何后台任务。

    【讨论】:

      【解决方案3】:

      如果您不想编写服务程序,您可以在程序启动后隐藏您的程序窗口

      ShowWindow(HWND,int);
      

      为了让Window-Handler到你自己的Window,你可以使用例如

      HWND explorer=::FindWindow(NULL,"explorer.exe");
      

      HWND h = ::GetTopWindow(0);
      while ( h )
      {    if(IsWindowVisible(h)==1 && /*check if it's your Window*/)
           {   ShowWindow(h,0);//will hide Window
               break;
           }
           h = ::GetNextWindow( h , GW_HWNDNEXT);
      }
      

      你必须这样做

      #include <winuser.h>
      

      使用此功能

      【讨论】:

      • 1) 这不适用于 C#(直接)。 2) C#应用程序可以在没有窗口的情况下运行。
      猜你喜欢
      • 1970-01-01
      • 2014-01-10
      • 2011-09-11
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      相关资源
      最近更新 更多