答案 0 :(得分:2)
使用正确的工具完成工作 使用Windows服务项目模板创建Windows服务。
答案 1 :(得分:1)
<强> Program.cs的强>
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
//Application.EnableVisualStyles();
//Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
<强> Form.cs 强>
public partial class Form1 : Form
{
public Form1()
{
//InitializeComponent();
}
#region Silent mode
private static Form1 _instance;
/// <summary>
/// Prevent window getting visible
/// </summary>
/// <param name="value"></param>
protected override void SetVisibleCore(bool value)
{
// Prevent window getting visible
CreateHandle();
_instance = this;
//do not show the window
value = false;
base.SetVisibleCore(value);
}
#endregion
}
以特定间隔启用计时器触发器,浏览正在运行的进程并实现您想要执行的操作。
Timer _timer;
public Form1()
{
//InitializeComponent();
_timer = new Timer();
_timer.Interval = 1000; //ms
_timer.Elapsed += _timer_Elapsed;
}
private void _timer_Elapsed(object sender, ElapsedEventArgs e)
{
foreach (var process in Process.GetProcesses())
{
//compare and perform tasks
}
}
答案 2 :(得分:0)
这是我使用的方法。 processName是您尝试查找的进程的名称,newPrecessPath是您不会运行的进程的路径 如果你不想隐藏你的主要只是使用this.Hide() 您可以在计时器中使用此方法每隔x秒尝试查找运行进程。
private void LookProcess(string processName, string newProcessPath)
{
foreach (var process in Process.GetProcesses())
{
if (process.ProcessName == processName)
{
ProcessStartInfo prcinf = new ProcessStartInfo();
prcinf.WindowStyle = ProcessWindowStyle.Maximized;
prcinf.FileName = newProcessPath;
Process.Start(prcinfprc);
}
}
}