繁体   English   中英

C# 防止 my.exe win 应用程序被重命名?

[英]C# Prevent my .exe win application on being renamed?

嗨,是否可以防止 my.exe 应用程序被重命名..?

这是 senario(我的问题)

在我运行我的程序后,(假设我运行 MyApp.exe)一个不友好的用户突然为了好玩,将我的 MyApp.exe 重命名为......让我们说 Goodtime.exe

在那之后。 他注销 windows(xp),然后当我的程序尝试在启动 MyApp.exe 上运行时,我不会因为它已重命名

是否可以通过代码来防止这种情况?

感谢任何愿意帮助的人=)

你不能真的试图阻止它。 这是用户的计算机,如果他们想重命名计算机上的文件,他们可以这样做。

这是不可能的。

但是,还有另一种方法可以做到这一点。 您可以将用户设置为对其计算机的用户帐户具有有限的权限。 在这种情况下,他无法以他想要的方式重命名文件。 这是操作系统提供的限制,只有计算机的管理员才能对用户帐户设置这些限制。

编辑我的意思是,如果您是计算机的管理员,作为替代方案,您可以手动限制登录计算机的用户的权限。 为了更好地理解我的意思,请阅读我帖子中的回复。 :)

您可以将应用程序放在用户不太可能 go 的位置并重命名它,例如在程序文件文件夹中。 但是您无法阻止他们实际重命名应用程序。

如果用户不是该计算机上的管理员,则默认情况下他们将无权重命名 Program Files 目录中的文件。 人们希望不友好的用户不是目标机器上的管理员(如果是,他们可以做的比重命名一个应用程序文件更糟糕)。

您可以检查可执行文件在运行时的名称。

但是您不能阻止用户重命名它。

您可以考虑使用 clickonce 发布。 在我的一生中,我永远无法保证我可以在单击安装后找到红润的应用程序,这样可能会阻止您友好的用户弄乱该应用程序? ;-)

这是有关ClickOnce Publishing的一些信息。

本质上,编写一个应用程序,右键单击项目/解决方案,选择“发布”,然后按照向导进行操作。

它不能保证用户不能重命名和弄乱文件,但它会让它变得更难。

  1. 正如大多数人在这里解释的那样,通过权限方式。
  2. 愚蠢和浪费的方法是让一个守护进程(服务)在系统启动后一直运行访问这个文件。 这样,除非该守护进程停止,否则系统将不允许重命名该可执行文件。

您可以在运行时阻止重命名或移动 exe 文件。 打开 exe 文件中的 exe 文件进行读取和拒绝写入。 只要它运行,就保持这个文件打开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM