问题标签 [shareware]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
386 浏览

licensing - 发布要通过注册购买的软件的步骤

我即将完成开发一个我想作为共享软件发布的 Windows 应用程序。它是用 C# 开发的,将在 .Net 3.5+ 机器上运行。要使用它,用户必须在线。

我的目的是让用户试用 30 天,然后限制其功能,直到购买注册为止。

安装程序将通过 msi 文件提供。

谁能给出如何实现这一点的一般步骤?这里有一些更具体的问题:由于我试图避免为了建立电子商务网站而进行大量前期投资,所以我正在考虑一种方法,让用户以某种方式付款,同时提供他的电子邮件,其中他然后收到解锁密钥。我找到了一些解决方案,如下所示: 注册服务

我仍然不确定,如果他们是要走的路。

我主要关心的一个问题是防止给定序列号的重用,例如,如果两个用户同时使用相同的序列号运行程序,则应禁用该序列号或采取其他措施。另一点是,我的软件可能只是在不使用安装程序的情况下从一台计算机复制到另一台计算机,因此仅保护安装程序本身是不够的。

也许已经经历过这个过程的人可以给我一些指导,比如所涉及的一般步骤(比如 1. 获取域,2. 获取某种虚拟主机 ....)并解决我上面提到的一些问题。

我很感谢人们可以给我的任何帮助。

0 投票
4 回答
1066 浏览

objective-c - 为 Cocoa 应用程序创建一个唠叨屏幕

我正在创建一个共享软件 Cocoa 应用程序,我想知道放入“nag screen”的最佳方式是什么。基本上在应用程序的主窗口显示之前,我想要一个带有一些文本的窗口、一个注册按钮和一个“Not Yet”按钮(最初是禁用的)。Not Yet 按钮上会有一个计时器,所以按钮标题会根据秒数改变,比如:

“还没有……10” “还没有……9”

等等,在 10 秒结束时,Not Yet 按钮将启用,允许用户继续并使用该应用程序。做这样的事情的最好方法是什么?我可以使用 NSAlert 吗?

我已经看到这在 Pacifist 中做得很好,任何帮助将不胜感激。谢谢

0 投票
10 回答
507 浏览

open-source - 开源和 30 天免费试用?

它可以是开源的而不是免费的吗?为什么开源而不是自由软件?

我看过一本关于这个的书,我想我去看看。徽标上写着“开源商业智能”。有更知名的报告框架,如 Jasper Reports aka“最广泛使用的开源商业智能”.. 它只是流行语吗?

http://www.pentaho.com/products/try_bi_suite.php

0 投票
3 回答
682 浏览

windows - 如何在应用程序中包含广告?

是否有任何服务可以让您在 Windows 软件中投放广告?我想免费赠送我的软件,但仍然需要吃饭!

0 投票
3 回答
925 浏览

c++ - 如何设置动态链接库的试用版?

我正在开发一个类似 sdk 的共享软件库(使用 C++)。该库是一个简单的dll,提供了一些功能。所以,我的第一个问题是简单的 dll 可以进行哪些类型的试验?我不想削减试用dll的功能,所以我倾向于使用time-trial。

我大致了解如何跟踪lib的使用时间,那么第二个问题是如何指示试用期到期?

目前有两个想法:

  1. 评估期到期后,库将无法加载。

    或者

  2. 评估期到期后,库将成功加载,但会显示某种 nag-screen。

但是他们看起来都很粗糙,所以你能给一些建议吗?

谢谢!

0 投票
10 回答
22153 浏览

java - 如何创建 Java 程序的试用版

我正在用 java 编写一个软件,我几乎完成了,我想知道我们如何创建一个试用版,例如可以使用 30 天,因为我会将它发送给一些公司

那么如何使它像共享软件或试用软件一样,我们也可以阻止对 jar 文件中的 .class 的访问吗?

谢谢

0 投票
1 回答
597 浏览

vb.net - 使用 innosetup 打包的共享软件 vb.net 应用程序,安装在不同的目录中创建 2 组不同的应用程序

我使用 vb.net visual studio 2008 for windows desktop 创建了一个共享软件应用程序,并使用 innosetup 5.3.8 对其进行了打包。问题是当我在 C:\Program Files\Application 中安装了应用程序并且它成功运行(使用应用程序的试用期)时,我还可以通过安装在不同的目录中以相同的设置重新安装应用程序。例如 C:\Program Files\Application new 。C:\Program Files\Application new 中的应用程序没有任何已安装的设置。

我哪里错了。我需要在我的应用程序(vb.net)或 innosetup 中处理这个问题吗?如何照顾 innosetup 中已安装的路径或通过升级旧应用程序将已安装应用程序的设置带到新安装的路径。

我不想在注册表中写任何东西,因为该应用程序不需要任何管理权限要求。如果我将应用程序安装在同一路径中,它会更新为旧设置被接管到这个新设置,它工作正常。

0 投票
5 回答
1112 浏览

trial - 试用版宽限期

我应该如何实施功能齐全的宽限期或 N 次使用方案,以最大限度地提高我 5 美元的小型社交网络 Windows 应用程序的销售额,同时鼓励从未(还没有?)付费的用户继续使用受限版本?

宽限期选项:

  1. 使用有限。使用 20 次后,将其削弱。
  2. 日历天有时间限制。首次使用 30 天后,该软件已瘫痪。
  3. 实际使用天数有时间限制,例如。7天。如果在 7+N 天的过程中使用 7 天,则在第 7 天后将其削弱。
  4. 限时。使用或玩耍 20 小时后,将其削弱。
  5. 将上述内容与渐进式瘫痪和可选的唠叨屏幕相结合。
  6. 唠叨屏幕,我不喜欢。

瘫痪软件并不是所有人都喜欢(尤其是开源阵营),但我的决定必须基于快乐的用户和谋生,所以我在下面汇总了我支持的关于限制软件的调查结果。

到目前为止,我的试用软件结论:

  • 专注于让你的软件变得更好,而不是花时间阻止破解者。如果它足够流行,它最终将被逆向工程。
  • 让客户享受您软件的全部功能......一段时间。依赖用户更有可能购买。
  • 假设它有任何好处,残废软件的销量是带有捐赠唠叨屏幕的软件的5 倍。
  • 让支付尽可能简单。
  • 感知价值很重要,但保持低价可能会导致冲动购买。
  • 定价真的很难
  • 提供 100% 无条件退款保证将带来更多销售。

我打算削弱我的演示版本,但我确实希望试用用户体验所有功能。这是一个小型消费者应用程序,具有潜在的庞大用户群,所以我正在考虑将其定价为~$5,但我不知道。对某些用户来说,它可能值 50 美元或 1 美元。我会把定价留到以后。这是关于瘫痪软件。

由按软件类型分组的真实数据支持的答案会更有帮助,但对此的任何想法表示赞赏。

0 投票
4 回答
561 浏览

licensing - 用于许可证检查的电话回家被认为是邪恶的

许多人认为打电话回家强制执行用户许可证是“邪恶的”。但是对于我的依赖于 Web 的 Windows 应用程序来说,它似乎是强制执行单用户、多工作站许可证的完美方法,即在多台机器上使用一个许可证,但一次只能激活一个许可证。例如,考虑单个渲染引擎许可证,其中一个工作进程跨越几个小时,仅在一台机器上处于活动状态。

因此,许可服务器必须在首次运行应用程序时对其进行身份验证,并在启动工作进程之前检查许可证当前是否未在使用中。如果应用程序需要 Internet 访问权限只是为了检查其许可证,我可以看到这将如何被视为邪恶,但无论如何,如果没有 Internet 连接,我的应用程序将毫无用处。站点许可证只需要一张支票。

如果许可服务器曾经宕机(希望几乎永远不会),应用程序应该优雅地降级到受限版本,直到它可以通过身份验证。无论如何,它必须打电话回家检查更新并报告(双方同意的)使用统计信息,那么为什么会如此糟糕呢?

如何让诚实的人保持诚实而不作恶?

0 投票
2 回答
538 浏览

licensing - 我应该将我的许可证密钥输出从纯 md5 输出更改为常见的“XXXX-YYYY-ZZZZ”类型代码吗?

我正在创建一个简单的许可证密钥系统来“让诚实的人保持诚实”。我不关心特别严格的密码学。

如果他们对演示限制感到恼火,他们会去我的注册网站,付款,然后给我他们的电子邮件。我给他们一个许可证密钥。

我让事情变得非常简单,所以:

我有 PHP 和 C# 函数运行相同的算法并获得相同的密钥。

问题是这些函数的输出是一个 32 个字符的字符串,例如:

这可能很难记住/输入。是的,我知道复制/粘贴,但我想让所有付费客户真正轻松地解锁软件。

我应该以某种方式将这个长字符串转换成更短的字符串吗?

假设我只使用前 6 位数字,所以:A69761

显然,其中存在更多的密码冲突,但在实际使用中它是否重要?

还有其他想法可以使事物更具人类可读性/可输入性吗?