Windows 系统用户的任务栏图标在哪里?

Windows 系统用户的任务栏图标在哪里?,windows,service,taskbar,notifyicon,Windows,Service,Taskbar,Notifyicon,我创建了一个应用程序,其唯一的UI是windows任务栏图标。直接启动应用程序时(例如在Windows资源管理器中双击),它会正确显示任务栏图标。我需要确保此应用程序始终运行。为此,我在C#中创建了一个windows服务,它每10秒检查一次应用程序是否仍在运行,如果没有,它将通过调用 System.Diagnostics.Process.Start("MyApp.exe"); 从任务管理器中可以看到,流程已启动。但是,我找不到任务栏图标。我注意到,当它从窗口服务启动时,它在系统用户名下运行 从

我创建了一个应用程序,其唯一的UI是windows任务栏图标。直接启动应用程序时(例如在Windows资源管理器中双击),它会正确显示任务栏图标。我需要确保此应用程序始终运行。为此,我在C#中创建了一个windows服务,它每10秒检查一次应用程序是否仍在运行,如果没有,它将通过调用

System.Diagnostics.Process.Start("MyApp.exe");
从任务管理器中可以看到,流程已启动。但是,我找不到任务栏图标。我注意到,当它从窗口服务启动时,它在系统用户名下运行


从Windows服务启动时,如何使任务栏图标可见?

服务与Vista或Win7上的用户无法访问同一桌面。默认情况下,由其他进程启动的应用程序与启动它们的应用程序具有相同的权限(它们在同一帐户下运行)。您需要让您的服务在用户帐户下运行,或者使用(不确定此功能的.NET版本是什么-希望您能以此为起点找到它)。

服务与Vista或Win7上的用户无法访问相同的桌面。默认情况下,由其他进程启动的应用程序与启动它们的应用程序具有相同的权限(它们在同一帐户下运行)。您需要让您的服务在用户帐户下运行,或者使用(不确定此函数的.NET版本是什么-希望您能够以此为起点找到它)。

该服务需要使用
CreateProcessAsUser()
函数(或任何与.NET等效的函数)运行托盘图标应用程序。该服务需要使用
CreateProcessAsUser()
函数(或任何与.NET等效的函数)运行托盘图标应用程序。请尽量避免将服务作为系统运行。为此,我认为LOCALSERVICE是您所需要的。为什么您需要确保它始终运行?那么,怎样才能阻止用户停止你的防护服务,然后杀死应用程序呢?或者该应用程序只是不稳定且经常崩溃?请尽量避免将您的服务作为系统运行。为此,我认为LOCALSERVICE是您所需要的。为什么您需要确保它始终运行?那么,怎样才能阻止用户停止你的防护服务,然后杀死应用程序呢?还是这个应用程序太脆弱,经常崩溃?