我已经创建了一个WinService,但不幸的是Win7(和Vista)不支持从服务中获取屏幕截图。我要将程序重写为与WinService不同的东西,这种东西没有形式......
你会建议什么?
是否可以完全从winforms应用程序中删除表单?我不想隐藏进程或任何内容,但我希望它在后台作为监听器工作(就像一个服务)。
我将如何关闭它?简单! “停止服务”的替代方法应该是任务管理器的“结束任务”。
编辑:
感谢您的链接!所以我完全删除了 form.cs ,并对 program.cs 进行了以下更改:
static class Program
{
static Thread workerThread;
[STAThread]
static void Main()
{
//Application.EnableVisualStyles();
//Application.SetCompatibleTextRenderingDefault(false);
//Application.Run(new Form1());
load();
workerThread.Start();
}
public static void load()
{
workerThread = new Thread(DoWork);
workerThread.SetApartmentState(ApartmentState.STA);
}
static void DoWork()
{
while (true)
{
string directory = (@"C:\10\new\"); string name = (".bmp");
string filename = String.Format("{0:hh-mm-ss}{1}", DateTime.Now, name);
string path = Path.Combine(directory, filename);
Bitmap bmp = new Bitmap(@"C:\10\1.bmp");
bmp.Save(path);
bmp.Dispose();
Thread.Sleep(1100);
}
}
我是否需要进行一些其他更改,或者它确实可以吗?我不希望我的应用程序窃取焦点..只需要一个进程。
答案 0 :(得分:2)
您可以创建一个控制台应用程序并将其更改为VS中的Windows窗体。然后就不会有任何控制台,只有任务管理器中的进程,但不会限制与桌面的交互。