热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

当License看不到的时候~我们该怎么办

算是给自己一个警示吧~告诉自己千万不能再随便搞内核开发了~就算是搞的话也一定在虚拟机上做~刚一个网友问我他的WIN7上也出现了有关License不显示的问题,那我就算是做个记录,也算是给大家提个醒。

算是给自己一个警示吧~告诉自己千万不能再随便搞内核开发了~就算是搞的话也一定在虚拟机上做~刚一个网友问我他的WIN7上也出现了有关License不显示的问题,那我就算是做个记录,也算是给大家提个醒。

正题开始:

1. 首先对于WIN7,对于安装包这个内容来说,我不主张用这个平台进行开发,如果你真的喜欢WIN7,那么请安装一个虚拟机并搭建XP系统。WIN7的操作感虽然很好,而我也算是MS的忠实用户了,但是被他摧残了几千遍了,原因就在于UAC的设计问题,其实是为用户着想,但是设计的太不科学了,如果是我设计的话~肯定是在用户双击安装包的时候自动弹出一个框框来告诉用户,是否以管理员身份进行安装,如果点是就继续,如果不是就提示用户不以管理员身份安装容易出现不可抗拒的错误发生,但是话说回来,微软就是很王道,不给你任何机会,(PS:一己之见~莫怪!)

2. 对于加载License的步骤我给出以下几张图片~

 这个是我工程里的License文件夹,具体放在哪里无所谓~

License内部(PS:由于我的程序支持5种不同的语言,那么自己定义了几个文件,加以区分)

里面的内容当然我不用说了~是我们的Txt文件,专门是用来存放的用户注册协议的,但是一定要记住一点,就是要所有语言的License都要用相同的名字,这样便于管理,因为我不喜欢很麻烦自己的事情,起一样名字的License对自己来说很简单直接。

// ==================================================================================================//

有了上述的准备OK,我们就可以开始搞我们自己的内容了,打开Installsheild进行内容的加载,(为了简化流程自己只是做2个不同的语言)

首先,我需要把相关的内容加载到工程里,(我的安装包是Installsheild MSI模式)

首先在Installation Designer选项卡中找到Support Files/Billboards这个选项点击进入

找到后,在右边会出现Support Files 内容,这里如果你用很多种语言进行加载的话,那么会有很多不同的选择,那OK了~把你的License加载进去就行了

OK License 加载完毕,那么就该在代码段进行修改了。

一般情况下,系统会给我们生成一些固定的函数,例如说OnBegin,OnFirstUIBefore,OnEnd等等,都是根据过程进行管理的,因为IS也算是一个脚本程序,它的很多内容都可以以C语言的形式进行学习,即面向过程的一个定性。

我们在一般的情况下,看到License都是在OnFirstUIBefore()函数中出现的,但是唯一遗憾的就是macrovision没有给我们生成默认的License内容,那么我们只能手动加载这个License内容:(Dlg_SdWelcome、Dlg_SdCustomerInformation、Dlg_SetupType 这3个内容是添加OnFirstUIBefore自动生成的,而Dlg_SdLicense是我自己添加的)

Dlg_SdWelcome:   

  szTitle = "";    szMsg   = "";   

  nResult = SdWelcome(szTitle, szMsg);   

  if (nResult = BACK) goto Dlg_SdWelcome;

  szTitle   = "";

  svName    = "";   

  svCompany = "";
Dlg_SdCustomerInformation:

  nResult = SdCustomerInformation(szTitle, svName, svCompany, nUser);

  if (nResult = BACK) goto Dlg_SdWelcome;
 
Dlg_SetupType:   

  szTitle = "";    szMsg   = "";     // -- 这里的内容被我删除了,因为我觉得这个界面一点意义都没有

Dlg_SdLicense:

  szTitle =""; szOpt1 = ""; szOpt2 = "";

  szLicenseFile = SUPPORTDIR ^"License.txt";      

  // -- SdLicense2(szTitle,szOpt1,szOpt2,szLicenseFile,bLicenseAccepted)函数原型,

  第三个参数是让我们确定License的路径,那么此时我只需要加载一个License名称就可以了,

  第四个参数则是让生成的按钮的默认状态,如果是TRUE的话,那么这个现实的结果默认就是“是”,反之为“否”。

 // --  (下面的判断很简单,就是根据用户选择的语言种类进行不同的设置,一般情况下,国人喜欢简单,直接PASS过去了,所以可以将最后一个参数设为TRUE,外国人有可能还会看看License的提示内容,那么可以写FALSE);

  if(SELECTED_LANGUAGE = 0x0804)||(SELECTED_LANGUAGE = 0x0404)then

    bLicenseAccepted = TRUE;

  else

    bLicenseAccepted = FALSE;

  endif;

  nResult = SdLicense2(szTitle,szOpt1,szOpt2,szLicenseFile,bLicenseAccepted);

// -- 到此为止就可以了,附2张内容显示的结果~

看到区别了吧~哈哈

PS:隆重向大家推荐北京意畅高科软件有限公司5年时间研发的隐身侠,现在已经推出免费软件版,欢迎大家使用,主要的作用是将你的个人私密信息进行安全有效的管理,那么只有你才可以打开属于自己的保险箱。


推荐阅读
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 修复安装win10失败并提示“磁盘布局不受UEFI固件支持”的方法
    本文介绍了修复安装win10失败并提示“磁盘布局不受UEFI固件支持”的方法。首先解释了UEFI的概念和作用,然后提供了两种解决方法。第一种方法是在bios界面中将Boot Mode设置为Legacy Support,Boot Priority设置为Legacy First,并关闭UEFI。第二种方法是使用U盘启动盘进入PE系统,运行磁盘分区工具DiskGenius,将硬盘的分区表设置为gpt格式,并留出288MB的内存。最后,通过运行界面输入命令cmd来完成设置。 ... [详细]
  • SVN自动化正文共:5007 字预计阅读时间: 13 分钟平时自己多用Git来做版本控制,但很多公司内部依旧使用SVN,核心原因其实就是SVN够用了,懒得换,虽然自己用git,但对 ... [详细]
  • 第九章  Spring Cloud Config
    9-1.SpringCloudConfig是什么?​ 在分布式的系统中,尤其是当我们的分布式项目越来越多,每个项目都有自己的配置文件&# ... [详细]
author-avatar
try
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有