停止将我的应用程序检测为病毒

问题描述:

我制作的应用程序在运行时会将.exe放入启动。我有这个代码:停止将我的应用程序检测为病毒

RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 

rkApp.SetValue("smartAppointment", Application.ExecutablePath.ToString()); 

将创造为启动与Windows的应用程序中的系统登录,但有一个问题,有些杀毒软件就会检测到我的应用程序作为病毒。

我怎样才能停止防病毒检测我的应用程序作为病毒?

我认为有任何方式的应用程序会自动尝试在启动时运行将被标记为像任何防病毒系统行为的病毒。只需告诉用户在解决方案安装时批准更改。

除非(当然)你试图写一个病毒。

在这种情况下停止。

+0

不是病毒,是约会的应用程序。应用程序将从Windoews开始,并将宣布您的约会。 – AnDr3yy 2012-07-21 15:39:56

+0

正如其他人所说,你的应用程序需要进行数字签名才能做到“正确”。如果首先切换到管理员身份(如果用户没有以管理员身份运行,则会向用户弹出警告),您也可能会有更多的运气。 – Hogan 2012-07-21 18:08:07

如果您需要在启动时运行,一般首选的方法是运行它作为Windows服务。

如果你需要一个GUI为好,那么你应该有一个可与承载您的应用程序的窗口服务的GUI。

+0

但是,你是否仍然需要以某种方式启动GUI部分,可能通过注册表? – svick 2012-07-21 15:46:48

+0

'一般首选的方式是将其作为Windows服务运行'这不是真的:不需要与用户交互的后台服务 - >服务,GUI程序如果没有用户登录就不需要运行和/或在用户帐户下运行(或者可以在多个会话中多次运行,考虑终端服务器) - > Autorun – 2012-07-21 16:00:11

+0

实际上,您的声明不正确。这在* nix空间中非常普遍,窗口对于这类任务来说没有那么不同。用户表示他们需要一种能够提醒一个人发生事件的服务。为什么你会一直运行一个完整的GUI来做到这一点?你不会的。这是一个windows服务的典型例子。您需要一个gui来管理他想要通知的事情,但通知本身以及调度和时间安排以及所有对于服务来说都是完美的。这是远程处理和WCF的意图之一。 – 2012-07-21 21:41:22

通常你安装程序(MSI)将设置“启动时启动应用”注册表设置,但是我认为,如果你的应用程序进行数字与验证码签名签那么这个问题就会消失。

+0

以及如何做到这一点? – AnDr3yy 2012-07-21 15:56:27

您的应用程序是否经过数字签名?如果没有,你应该尝试登入您的应用程序(你需要一个公共证书,但要花钱)

Application signing/verification