setup factory 要如何才能写如注册表,实现安装在电脑上后只能在本机使用
复制到其他电脑上不可用
16 个解决方案
#1
如果实现了,那别人得到了安装程序,安装到其他电脑,setup factory 也会在其他电脑写注册表,这样在其他电脑上也可以用了。
不应该用setup factory来做限制。
不应该用setup factory来做限制。
#2
读一下电脑的CPU或硬盘号,然后在程序中写死,只有这台机子才可以用。
不过VFP程序很容易被反编译或看到源码。
所以即使做到了对硬件加密,前提必须是你的VFP的EXE也必须加密,否则是没用的。
不过VFP程序很容易被反编译或看到源码。
所以即使做到了对硬件加密,前提必须是你的VFP的EXE也必须加密,否则是没用的。
#3
我要的限制不高,只要求没有安装文件安装的电脑不可用, 并不是只限制在一个电脑上使用 ,
意思是 从用安装过的电脑上复制到别的地方不可用
#4
Setup Factory 7 注册表实例
*-----------------------------
SF7的注册表操作,以下是一个例子,主要靠点击各个按钮来进行控制。
主要有:创建键,删除键,创建键值,删除键值,读取注册表信息,判断是否有键值等。
if (e_MsgID == MSGID_CLICKED) then
-- 点击了控件...
if (e_CtrlID == CTRL_BUTTON_01) then
-- 在这里插入按钮控制代码,第一个按钮
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\Build");
Dialog.Message("创建", "您创建了一个注册表项!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_02) then
-- 在这里插入按钮控制代码,第二个按钮
Registry.DeleteKey(HKEY_LOCAL_MACHINE, "Software\\Build");
Dialog.Message("删除", "您删除了一个注册表项!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_03) then
-- 在这里插入按钮控制代码,第三个按钮
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1", "字符串值", REG_SZ);
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key2", "11 00 11 12", REG_BINARY);
Dialog.Message("创建键值", "您创建了两个个注册表键值!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_04) then
-- 在这里插入按钮控制代码,第四个按钮
Registry.DeleteValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1");
Dialog.Message("删除", "您删除了一个注册表键值!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_05) then
-- 在这里插入按钮控制代码,第四个按钮
RKEY1 = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1", true);
RKEY2 = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key2", true);
SessionVar.Set("%PATCH1%", RKEY1);
SessionVar.Set("%PATCH2%", RKEY2);
-- 获得键值,并存到变量中,注意变量要事先在主界面的“会话变量”添加,也可以使用 Local 定义局部变量
TKEY1 = Registry.GetValueType(HKEY_LOCAL_MACHINE, "Software\\build", "Key1");
TKEY2 = Registry.GetValueType(HKEY_LOCAL_MACHINE, "Software\\build", "Key2");
SessionVar.Set("%TYPE1%", TKEY1);
SessionVar.Set("%TYPE2%", TKEY2);
-- 获得键值类型,并存到变量中,注意变量要事先在主界面的“会话变量”添加,也可以使用 Local 定义局部变量
Screen.Next();
Screen.Back();
-- 这两个命令用于快速的闪回前进屏幕,以便让大家看清楚变化
Dialog.Message("获得键值", "您获得了两个注册表键值和他们的类型!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_06) then
-- 判断是否有一个键值
BUILD = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "Software\\Build");
if (BUILD == true) then
Dialog.Message("注意", "该键值存在", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
else if (BUILD == false) then
Dialog.Message("注意", "没有该键值", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
end
end
end
*-----------------------------
SF7的注册表操作,以下是一个例子,主要靠点击各个按钮来进行控制。
主要有:创建键,删除键,创建键值,删除键值,读取注册表信息,判断是否有键值等。
if (e_MsgID == MSGID_CLICKED) then
-- 点击了控件...
if (e_CtrlID == CTRL_BUTTON_01) then
-- 在这里插入按钮控制代码,第一个按钮
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\Build");
Dialog.Message("创建", "您创建了一个注册表项!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_02) then
-- 在这里插入按钮控制代码,第二个按钮
Registry.DeleteKey(HKEY_LOCAL_MACHINE, "Software\\Build");
Dialog.Message("删除", "您删除了一个注册表项!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_03) then
-- 在这里插入按钮控制代码,第三个按钮
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1", "字符串值", REG_SZ);
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key2", "11 00 11 12", REG_BINARY);
Dialog.Message("创建键值", "您创建了两个个注册表键值!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_04) then
-- 在这里插入按钮控制代码,第四个按钮
Registry.DeleteValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1");
Dialog.Message("删除", "您删除了一个注册表键值!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_05) then
-- 在这里插入按钮控制代码,第四个按钮
RKEY1 = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1", true);
RKEY2 = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key2", true);
SessionVar.Set("%PATCH1%", RKEY1);
SessionVar.Set("%PATCH2%", RKEY2);
-- 获得键值,并存到变量中,注意变量要事先在主界面的“会话变量”添加,也可以使用 Local 定义局部变量
TKEY1 = Registry.GetValueType(HKEY_LOCAL_MACHINE, "Software\\build", "Key1");
TKEY2 = Registry.GetValueType(HKEY_LOCAL_MACHINE, "Software\\build", "Key2");
SessionVar.Set("%TYPE1%", TKEY1);
SessionVar.Set("%TYPE2%", TKEY2);
-- 获得键值类型,并存到变量中,注意变量要事先在主界面的“会话变量”添加,也可以使用 Local 定义局部变量
Screen.Next();
Screen.Back();
-- 这两个命令用于快速的闪回前进屏幕,以便让大家看清楚变化
Dialog.Message("获得键值", "您获得了两个注册表键值和他们的类型!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_06) then
-- 判断是否有一个键值
BUILD = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "Software\\Build");
if (BUILD == true) then
Dialog.Message("注意", "该键值存在", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
else if (BUILD == false) then
Dialog.Message("注意", "没有该键值", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
end
end
end
#5
在左边导航栏中的“屏幕”,在“安装之前”中添加“按钮”项,
然后将代码写到“操作”中的On Ctrl Message中。
然后将代码写到“操作”中的On Ctrl Message中。
#6
没有更酷一点的方法没吗
或者也可以利用读取硬盘信息来判断
按装
#7
其实有一个更简单的变通方法:
如安装时将一个特殊的文件,[如“MySign.jhz”(此文件可以用创建一个空白的文本文件,然后改一下名,名你自定了)],
安装到Windows的System32或System目录下,也就是说不将这个文件安装到你程序目录下。
然后每次启动程序时,都检查一下这个文件在不在,如果不在,就提示“程序安装不完全”,然后程序就退出。
但首先要保存你VFP程序要加密好,否则别人很容易通过源码知道你的程序检测这样一个文件。
如安装时将一个特殊的文件,[如“MySign.jhz”(此文件可以用创建一个空白的文本文件,然后改一下名,名你自定了)],
安装到Windows的System32或System目录下,也就是说不将这个文件安装到你程序目录下。
然后每次启动程序时,都检查一下这个文件在不在,如果不在,就提示“程序安装不完全”,然后程序就退出。
但首先要保存你VFP程序要加密好,否则别人很容易通过源码知道你的程序检测这样一个文件。
#8
用什么加密方法好呢 ?? 或者有直接加密的软件
#9
好的加密软件都不是免费的。
个人感觉FoxShell 1.2在免费中还可以,不过只支持VFP9.0 SP1.
个人感觉FoxShell 1.2在免费中还可以,不过只支持VFP9.0 SP1.
#10
程序加密
保护版权,,
你可以作一个系统表 dbf 更名为 sys.ini 只有一条记录 保存 运行次数,cpu号,硬盘号,
运行次数小1时,,取得cpu 号,硬盘号(需要用 API函数取得), 保存起来
以后运行,检查就是了,,
这些的数据也可以保存到注册表里,,VFP 操作注册表,你可以找找以前的帖子,或在baidu上搜索下,有,,
VFP 可以反编译,保密性差,,人家看都看见你的代码了,你还报什么密,保护什么版权啊,
保护版权,,
你可以作一个系统表 dbf 更名为 sys.ini 只有一条记录 保存 运行次数,cpu号,硬盘号,
运行次数小1时,,取得cpu 号,硬盘号(需要用 API函数取得), 保存起来
以后运行,检查就是了,,
这些的数据也可以保存到注册表里,,VFP 操作注册表,你可以找找以前的帖子,或在baidu上搜索下,有,,
VFP 可以反编译,保密性差,,人家看都看见你的代码了,你还报什么密,保护什么版权啊,
#11
sys.ini 你要保存在windows 文件下,目录深一点
#12
学习了号方法!
#13
这也能算无满意答案。
1、给出操作注册表,认为麻烦。
2、给出更简单方法,也不满意。
无语了。
1、给出操作注册表,认为麻烦。
2、给出更简单方法,也不满意。
无语了。
#14
我另一贴给过分了; 我没你们懂你们说的我不明白,没解决我的实际问题
所以我在这个帖没有给分 ,不好意思!
所以我在这个帖没有给分 ,不好意思!
#15
在 工程-操作-post install 中加入:
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\Globe");
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Globe", "GlobePath", strInstallFolderPath .."\\Globe.exe", REG_SZ);
strInstallFolderPath就是存放你选择的安装目录的变量
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\Globe");
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Globe", "GlobePath", strInstallFolderPath .."\\Globe.exe", REG_SZ);
strInstallFolderPath就是存放你选择的安装目录的变量
#16
setup factory 7.0 写注册表, 在安装之后里面,Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "MySoftWare", "%AppFolder%\\mysql-5.1.6-alpha-win32\\bin\\mysqld-nt.exe", REG_SZ);
"%AppFolder%\\mysql-5.1.6-alpha-win32\\bin\\mysqld-nt.exe",这个路径有问题啊,能写入注册表中的run,但是不能执行。
不报错,但是安装后,注册表中run里面也能写入,但是 键值仍是"%AppFolder%\\mysql-5.1.6-alpha-win32\\bin\\mysqld-nt.exe",%AppFolder%没有转化为实际的安装路径,这是为什么啊???
"%AppFolder%\\mysql-5.1.6-alpha-win32\\bin\\mysqld-nt.exe",这个路径有问题啊,能写入注册表中的run,但是不能执行。
不报错,但是安装后,注册表中run里面也能写入,但是 键值仍是"%AppFolder%\\mysql-5.1.6-alpha-win32\\bin\\mysqld-nt.exe",%AppFolder%没有转化为实际的安装路径,这是为什么啊???
#1
如果实现了,那别人得到了安装程序,安装到其他电脑,setup factory 也会在其他电脑写注册表,这样在其他电脑上也可以用了。
不应该用setup factory来做限制。
不应该用setup factory来做限制。
#2
读一下电脑的CPU或硬盘号,然后在程序中写死,只有这台机子才可以用。
不过VFP程序很容易被反编译或看到源码。
所以即使做到了对硬件加密,前提必须是你的VFP的EXE也必须加密,否则是没用的。
不过VFP程序很容易被反编译或看到源码。
所以即使做到了对硬件加密,前提必须是你的VFP的EXE也必须加密,否则是没用的。
#3
我要的限制不高,只要求没有安装文件安装的电脑不可用, 并不是只限制在一个电脑上使用 ,
意思是 从用安装过的电脑上复制到别的地方不可用
#4
Setup Factory 7 注册表实例
*-----------------------------
SF7的注册表操作,以下是一个例子,主要靠点击各个按钮来进行控制。
主要有:创建键,删除键,创建键值,删除键值,读取注册表信息,判断是否有键值等。
if (e_MsgID == MSGID_CLICKED) then
-- 点击了控件...
if (e_CtrlID == CTRL_BUTTON_01) then
-- 在这里插入按钮控制代码,第一个按钮
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\Build");
Dialog.Message("创建", "您创建了一个注册表项!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_02) then
-- 在这里插入按钮控制代码,第二个按钮
Registry.DeleteKey(HKEY_LOCAL_MACHINE, "Software\\Build");
Dialog.Message("删除", "您删除了一个注册表项!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_03) then
-- 在这里插入按钮控制代码,第三个按钮
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1", "字符串值", REG_SZ);
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key2", "11 00 11 12", REG_BINARY);
Dialog.Message("创建键值", "您创建了两个个注册表键值!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_04) then
-- 在这里插入按钮控制代码,第四个按钮
Registry.DeleteValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1");
Dialog.Message("删除", "您删除了一个注册表键值!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_05) then
-- 在这里插入按钮控制代码,第四个按钮
RKEY1 = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1", true);
RKEY2 = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key2", true);
SessionVar.Set("%PATCH1%", RKEY1);
SessionVar.Set("%PATCH2%", RKEY2);
-- 获得键值,并存到变量中,注意变量要事先在主界面的“会话变量”添加,也可以使用 Local 定义局部变量
TKEY1 = Registry.GetValueType(HKEY_LOCAL_MACHINE, "Software\\build", "Key1");
TKEY2 = Registry.GetValueType(HKEY_LOCAL_MACHINE, "Software\\build", "Key2");
SessionVar.Set("%TYPE1%", TKEY1);
SessionVar.Set("%TYPE2%", TKEY2);
-- 获得键值类型,并存到变量中,注意变量要事先在主界面的“会话变量”添加,也可以使用 Local 定义局部变量
Screen.Next();
Screen.Back();
-- 这两个命令用于快速的闪回前进屏幕,以便让大家看清楚变化
Dialog.Message("获得键值", "您获得了两个注册表键值和他们的类型!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_06) then
-- 判断是否有一个键值
BUILD = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "Software\\Build");
if (BUILD == true) then
Dialog.Message("注意", "该键值存在", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
else if (BUILD == false) then
Dialog.Message("注意", "没有该键值", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
end
end
end
*-----------------------------
SF7的注册表操作,以下是一个例子,主要靠点击各个按钮来进行控制。
主要有:创建键,删除键,创建键值,删除键值,读取注册表信息,判断是否有键值等。
if (e_MsgID == MSGID_CLICKED) then
-- 点击了控件...
if (e_CtrlID == CTRL_BUTTON_01) then
-- 在这里插入按钮控制代码,第一个按钮
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\Build");
Dialog.Message("创建", "您创建了一个注册表项!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_02) then
-- 在这里插入按钮控制代码,第二个按钮
Registry.DeleteKey(HKEY_LOCAL_MACHINE, "Software\\Build");
Dialog.Message("删除", "您删除了一个注册表项!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_03) then
-- 在这里插入按钮控制代码,第三个按钮
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1", "字符串值", REG_SZ);
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key2", "11 00 11 12", REG_BINARY);
Dialog.Message("创建键值", "您创建了两个个注册表键值!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_04) then
-- 在这里插入按钮控制代码,第四个按钮
Registry.DeleteValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1");
Dialog.Message("删除", "您删除了一个注册表键值!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_05) then
-- 在这里插入按钮控制代码,第四个按钮
RKEY1 = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key1", true);
RKEY2 = Registry.GetValue(HKEY_LOCAL_MACHINE, "Software\\Build", "Key2", true);
SessionVar.Set("%PATCH1%", RKEY1);
SessionVar.Set("%PATCH2%", RKEY2);
-- 获得键值,并存到变量中,注意变量要事先在主界面的“会话变量”添加,也可以使用 Local 定义局部变量
TKEY1 = Registry.GetValueType(HKEY_LOCAL_MACHINE, "Software\\build", "Key1");
TKEY2 = Registry.GetValueType(HKEY_LOCAL_MACHINE, "Software\\build", "Key2");
SessionVar.Set("%TYPE1%", TKEY1);
SessionVar.Set("%TYPE2%", TKEY2);
-- 获得键值类型,并存到变量中,注意变量要事先在主界面的“会话变量”添加,也可以使用 Local 定义局部变量
Screen.Next();
Screen.Back();
-- 这两个命令用于快速的闪回前进屏幕,以便让大家看清楚变化
Dialog.Message("获得键值", "您获得了两个注册表键值和他们的类型!", MB_OK, MB_ICONNONE);
end
if (e_CtrlID == CTRL_BUTTON_06) then
-- 判断是否有一个键值
BUILD = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "Software\\Build");
if (BUILD == true) then
Dialog.Message("注意", "该键值存在", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
else if (BUILD == false) then
Dialog.Message("注意", "没有该键值", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end
end
end
end
#5
在左边导航栏中的“屏幕”,在“安装之前”中添加“按钮”项,
然后将代码写到“操作”中的On Ctrl Message中。
然后将代码写到“操作”中的On Ctrl Message中。
#6
没有更酷一点的方法没吗
或者也可以利用读取硬盘信息来判断
按装
#7
其实有一个更简单的变通方法:
如安装时将一个特殊的文件,[如“MySign.jhz”(此文件可以用创建一个空白的文本文件,然后改一下名,名你自定了)],
安装到Windows的System32或System目录下,也就是说不将这个文件安装到你程序目录下。
然后每次启动程序时,都检查一下这个文件在不在,如果不在,就提示“程序安装不完全”,然后程序就退出。
但首先要保存你VFP程序要加密好,否则别人很容易通过源码知道你的程序检测这样一个文件。
如安装时将一个特殊的文件,[如“MySign.jhz”(此文件可以用创建一个空白的文本文件,然后改一下名,名你自定了)],
安装到Windows的System32或System目录下,也就是说不将这个文件安装到你程序目录下。
然后每次启动程序时,都检查一下这个文件在不在,如果不在,就提示“程序安装不完全”,然后程序就退出。
但首先要保存你VFP程序要加密好,否则别人很容易通过源码知道你的程序检测这样一个文件。
#8
用什么加密方法好呢 ?? 或者有直接加密的软件
#9
好的加密软件都不是免费的。
个人感觉FoxShell 1.2在免费中还可以,不过只支持VFP9.0 SP1.
个人感觉FoxShell 1.2在免费中还可以,不过只支持VFP9.0 SP1.
#10
程序加密
保护版权,,
你可以作一个系统表 dbf 更名为 sys.ini 只有一条记录 保存 运行次数,cpu号,硬盘号,
运行次数小1时,,取得cpu 号,硬盘号(需要用 API函数取得), 保存起来
以后运行,检查就是了,,
这些的数据也可以保存到注册表里,,VFP 操作注册表,你可以找找以前的帖子,或在baidu上搜索下,有,,
VFP 可以反编译,保密性差,,人家看都看见你的代码了,你还报什么密,保护什么版权啊,
保护版权,,
你可以作一个系统表 dbf 更名为 sys.ini 只有一条记录 保存 运行次数,cpu号,硬盘号,
运行次数小1时,,取得cpu 号,硬盘号(需要用 API函数取得), 保存起来
以后运行,检查就是了,,
这些的数据也可以保存到注册表里,,VFP 操作注册表,你可以找找以前的帖子,或在baidu上搜索下,有,,
VFP 可以反编译,保密性差,,人家看都看见你的代码了,你还报什么密,保护什么版权啊,
#11
sys.ini 你要保存在windows 文件下,目录深一点
#12
学习了号方法!
#13
这也能算无满意答案。
1、给出操作注册表,认为麻烦。
2、给出更简单方法,也不满意。
无语了。
1、给出操作注册表,认为麻烦。
2、给出更简单方法,也不满意。
无语了。
#14
我另一贴给过分了; 我没你们懂你们说的我不明白,没解决我的实际问题
所以我在这个帖没有给分 ,不好意思!
所以我在这个帖没有给分 ,不好意思!
#15
在 工程-操作-post install 中加入:
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\Globe");
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Globe", "GlobePath", strInstallFolderPath .."\\Globe.exe", REG_SZ);
strInstallFolderPath就是存放你选择的安装目录的变量
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\Globe");
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Globe", "GlobePath", strInstallFolderPath .."\\Globe.exe", REG_SZ);
strInstallFolderPath就是存放你选择的安装目录的变量
#16
setup factory 7.0 写注册表, 在安装之后里面,Registry.SetValue(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "MySoftWare", "%AppFolder%\\mysql-5.1.6-alpha-win32\\bin\\mysqld-nt.exe", REG_SZ);
"%AppFolder%\\mysql-5.1.6-alpha-win32\\bin\\mysqld-nt.exe",这个路径有问题啊,能写入注册表中的run,但是不能执行。
不报错,但是安装后,注册表中run里面也能写入,但是 键值仍是"%AppFolder%\\mysql-5.1.6-alpha-win32\\bin\\mysqld-nt.exe",%AppFolder%没有转化为实际的安装路径,这是为什么啊???
"%AppFolder%\\mysql-5.1.6-alpha-win32\\bin\\mysqld-nt.exe",这个路径有问题啊,能写入注册表中的run,但是不能执行。
不报错,但是安装后,注册表中run里面也能写入,但是 键值仍是"%AppFolder%\\mysql-5.1.6-alpha-win32\\bin\\mysqld-nt.exe",%AppFolder%没有转化为实际的安装路径,这是为什么啊???