c# - 永久更改 C# WinApp 中字符串的值?

标签 c# .net winapp

假设我的 WinApp 中有一个字符串字段,如下所示:

public string UsingTheApplicationFrom = "Not Yet";

现在,我想在我的应用程序首次运行时永远更改该字段的值。例如:UsingTheApplicationFrom = "Friday, January 21, 2011";

在 C# WinApp 中是否可行?
你能指导我吗?

编辑:
我不想使用数据库或文件或注册表或其他东西。

最佳答案

您正在寻找“我的应用程序的一种安全类型,只有第一个系统(第一次运行该应用程序)可以使用我的应用程序”。我认为您的意思是您销售的每个软件副本一次只能安装在一台计算机上。

你有两个问题要解决:

  • 如何为计算机生成唯一标识符
  • 如何存储标识符值

您有多个选项可用于唯一标识符,但都不是很好。当客户更换计算机硬件、计算机出现故障或希望将软件从一台计算机移动到另一台计算机时,请准备好迎接客户的支持请求。计算唯一标识符的一种看起来不错的方法是 this article (mirror link 因为代码项目文章不可用)。

我建议仅将此标识符作为字符串存储在 app.config 文件中(使用 Properties.Settings,从 this link 开始获取更多信息)。它将以纯文本形式显示,但是当它看起来像“4876-8DB5-EE85-69D3-FE52-8CF7-395D-2EA9”时,未经许可的用户如何知道要为他们的机器将其更改为什么值?如果不匹配,请将他们引导至您的网站/电话以获得支持。

您仍然无法确定何时设置此值——我主张将其设置为安装程序的一部分,而不是在程序第一次运行时保存它,从那时起您仍然无法确定何时该程序是第一次运行。安装程序可能需要某种注册码和一种与中央许可服务器通信的方法。 (是的,这确实变得复杂了——您认为人们破解您的许可的决心有多大?)

关于c# - 永久更改 C# WinApp 中字符串的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4759979/

相关文章:

c# - 如何在 FitNesse 中使用 ArrayFixture?

c# - .NET core JWT授权失败?

c# - 重用样式和模板

c# - 如何在 .Net 应用程序中使用 IE 代理服务器设置及其凭据

vb.net - 什么都没有和 system.DBNull 的区别

c# - 如何在不阅读的情况下获取文件中的行数

.net - Couchbase 客户端在生产服务器上运行速度太慢

c# - .NET C# 中的参数化字符串

c++ - Windows Store C++ 应用程序无法在 Windows 8.1 下使用 fopen() 创建文件