EXE读取变量
本帖最后由 wingking84 于 2012-6-14 09:23 编辑a.exe 要启用其它程序,分发给其它PC使用,每个PC上的程序路径不一样。
目前有2种思路:
1在a.au3中#include "ini.au3"
ini.au3中直接定义变量$dir = "c:\a\b"
编译后,读取不到ini.au3中重新设置的变量值。
2.读取ini.
ini中设置dir = c:\a\b
但ini中有多个变量,如
dir1 = aa
dir2 = bb
dir3 = cc
len1 = 10
len2 = 20
IniReadSection (var[$i] =key , var[$i] = value) + IF 可实现,但编码有点复杂,不灵活。
想用eval($var[$i]) = $var[$i])却实现不了。
求各位指点。或者其它思路。 你第一种方法我第一次见到!有创意! 要启动的程序有注册表信息没?有就直接读取路径。没有就手动指定一次,保存到注册表或Ini。 没事做: 可以进行全盘搜索该执行程序的.
有事做:也可以这样:#include <array.au3>
Local $dirs = ['c:\1', 'd:\2', 'e:\3', 'c:\4', 'd:\33']
Local $sequence = Number(StringRegExpReplace(@ComputerName, '\D', ''))
If $sequence < UBound($dirs) Then
MsgBox(0, '第 ' & $sequence & ' 台机器', '路径: ' & @TAB & $dirs[$sequence])
Else
MsgBox(16, '第 ' & $sequence & ' 台机器', '此机器未设置好程序路径! ')
EndIf 回复 3# afan
有的程序有注册表,有的没有。
a.exe每次启动要读取这些变量值,关键还是读取后给一个变量赋值。 回复 4# user3000
关键是程序要和变量在不同文件。 回复 5# wingking84
如果你的 PC 名有序号,可以研究下 user3000 的代码。
也可以如下,可应对非规律 PC 名,如“abc、kkk、sd2”
x.ini 文件大致如下
abc = xx\xx
kkk = xx\xxx
sd2 = x\x
...
$sDir = IniRead('x.ini', 'dd', @ComputerName, '') 笨人有笨办法.就是在ini里面修改
[机器名1]
run=程序路径
[机器名2]
run=程序路径
然后程序里只要写 IniRead('x.ini',@ComputerName, "run")
页:
[1]