innosetup区分正常状态和静默安装状态(通过传递的参数)
命令行运行程序,如:
myprogram.exe /abc /bcd
如果我们想获取其中的参数,“/abc”、“/bcd”
1. 直接使用innosetup自带的方法, GetCmdTail()
将所有参数作为一个字符串返回,安装和卸载都适用
注意:如果打算使用此方法,建议先看一下它返回字符串的格式,如上例子,
返回的可不仅仅是:/abc /bcd
2.使用innosetup自带的ParamCount() 和ParamStr()
2.1. ParamCount(), 获取参数的个数
2.2. ParamStr(), 根据参数下标,返回一个参数
例子: test.exe /name abc /age 18
{根据参数名,返回参数值}
function GetMyParam(PName:String):String;
var
CmdLine : String;
CmdLineLen : Integer;//参数的个数
i : Integer;
begin
CmdLineLen:=ParamCount();
for i:= to CmdLineLen do
begin
CmdLine:=ParamStr(i);
if CmdLine= PName then
begin
CmdLine:=ParamStr(i+);
Result := CmdLine;
Exit;
end;
end;
end;
GetMyParam('name') 结果是:abc
总结:因为innosetup进行静默安装,需要在程序后面传参数,所以可以通过获取参数来判断是否进行静默安装
innosetup静默安装的参数请参考:http://www.cnblogs.com/tommy-huang/p/4580424.html
innosetup区分正常状态和静默安装状态(通过传递的参数)的更多相关文章
- 静默安装oracle 11g及参数配置优化详解
一.安装前准备工作1.修改主机名#vi /etc/hosts //并添加内网IP地址对应的hostname,如下127.0.0.1 localhost::1 ...
- jQueryAjax笔记
ajax优点:能在不刷新整个页面的前提下更新数据,使用户操作与服务器响应异步化. ajax缺点:破坏浏览器“前进”.“后退”按钮的正常功能,搜索引擎爬虫不能理解那些奇怪的JS代码和因此引起的页面内容的 ...
- Android aidl Binder框架浅析
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38461079 ,本文出自[张鸿洋的博客] 1.概述 Binder能干什么?B ...
- 直接通过Binder的onTransact完成跨进程通信
1.具体代码: 服务端实现: public class IPCService extends Service { private static final String DESCRIPTOR = &q ...
- AIDL基本使用
1.概述 Binder能干什么?Binder可以提供系统中任何程序都可以访问的全局服务.这个功能当然是任何系统都应该提供的,下面我们简单看一下Android的Binder的框架 Android Bin ...
- C#之多线程
多线程在C#中使用得非常频繁,线程之间的充分利用显得尤为重要,一般的写法都是得不到充分利用资源,本人针对多线程写了一种方法,可以充分利用资源,保证每次同时启动10条线程,现在执行完马上再启动一条,总之 ...
- BeeUISignal详解
https://github.com/i5ting/Bee_Tutorial/wiki/BeeUISignal%E8%AF%A6%E8%A7%A3 BeeUISignal是beeframework的核 ...
- 简单实现Shiro单点登录(自定义Token令牌)
1. MVC Controller 映射 sso 方法. /** * 单点登录(如已经登录,则直接跳转) * @param userCode 登录用户编码 * @param token 登录令牌,令牌 ...
- 设计模式19---设计模式之状态模式(State)(行为型)
1.场景模拟 考虑一个在线投票的应用,分为四种情况 正常投票 正常投票以后还继续重复投票 用户恶意投票 黑名单用户 2.不用模式的解决方案 package demo17.state.example1; ...
随机推荐
- C#委托同步异步说明,并比较control调用Invoke和BeginInvoke的异同
一.委托的同步和异步: 1.同步 使用Invoke调用同步,或直接写fun1("func"),在fun1.Invoke这一步会明显的阻塞线程 使用: static void Mai ...
- Promise超时重新请求
export default function (promiseProducer, params, interval, attemptTimes) { interval = typeof interv ...
- C++中 栈和队列的使用方法
C++中 栈和队列已经被封装好,我们使用时只需要按照如下步骤调用即可. 1.包含相关的头文件 包含栈头文件: #include<stack> 包含队列头文件: #include<qu ...
- 最短路径SPFA算法(邻接表存法)
queue <int> Q; void SPFA (int s) { int i, v; for(int i=0; i<=n; i++) dist[i]=INF; //初始化每点i到 ...
- TFS 30177 错误
不知道什么原因,创建团队项目失败. 参考 下面链接成功解决,表示感谢. http://www.cnblogs.com/Wendy_Yu/archive/2012/07/26/TFS2010_T ...
- 19.阻止事件冒泡e.stopPropagation();
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- docker下ubutun没有ifconfig命令问题
解决: apt-get update #更新apt-get apt install net-tools # ifconfig apt install iputils-ping # ...
- rabbitmq消息消费者
pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http:// ...
- python之freshman00
编译型vs解释型 编译型优点:编译器一般会有预编译的过程对代码进行优化.因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高.可以脱离语言环境独立运行.缺点:编译之后如果需要修改就需要整 ...
- [洛谷P4721]分治FFT
NTT入门,放个板子 // luogu-judger-enable-o2 #include <bits/stdc++.h> using namespace std; #define fr( ...