张 张无极 Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-31 #1 请教一下, regf.WriteString( '', application.ExeName+' "%1" ');这句语句中的"%1"是什么意思啊? 谢谢了!
影 影 子 Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-31 #2 参数,自己是%0,第一个是%1,第二个是%2,与dos的.bat是一样的。
Y ysai Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-31 #3 应用程序接受带参数启动 比如 notepad.exe "c:/boot.ini" 就是打开记事本并装入c:/boot.ini文件 这样写入注册表应该是关联文件,可以在资源管理器中双击某类文件自动打开
张 张无极 Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-31 #4 影子大哥,那上面的那句程序是什么意思啊,还是有点不明白耶!
张 张无极 Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-31 #5 ysai大侠真是高手,确实是关联文件,只是小弟愚笨,一时不能弄懂这个语句
张 张无极 Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-01 #8 to ysai; 我是懂得这句话的意思,只是还是' "%1" 参数那一块不懂,这个参数代表 了什么啊?
罗 罗西岛主 Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-01 #9 唉.... 张无极啊,张无极,有你这么说话的吗? 你这样夸 ysai 大侠,却偏偏忘了 影 子 大侠,搞得没人理你了吧。 其实两位大侠说得都对,谁会知道你居然这么菜,连正确和错误都分 不出。 这个 %1 的流行叫法是“可替换参数”。也就是说,一会儿可以代表 X , 一会儿又去代表 Y 。你的问题中,这个 %1 一般表示一个文档名字。 好了。除我之外,上面各位大侠每人给 5 分。
唉.... 张无极啊,张无极,有你这么说话的吗? 你这样夸 ysai 大侠,却偏偏忘了 影 子 大侠,搞得没人理你了吧。 其实两位大侠说得都对,谁会知道你居然这么菜,连正确和错误都分 不出。 这个 %1 的流行叫法是“可替换参数”。也就是说,一会儿可以代表 X , 一会儿又去代表 Y 。你的问题中,这个 %1 一般表示一个文档名字。 好了。除我之外,上面各位大侠每人给 5 分。
张 张无极 Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-01 #10 to ysai大侠: ysai大侠和一位高人在一篇文章中讲的一样,这个我都明白的,问题的实质是俺想详细了解一下 这种形式参数的用法,比如说它为什么代表了记事本呢而不是其他的word或其他的excel等程序呢? 还请大侠不吝赐教!!!!谢谢!!!!
to ysai大侠: ysai大侠和一位高人在一篇文章中讲的一样,这个我都明白的,问题的实质是俺想详细了解一下 这种形式参数的用法,比如说它为什么代表了记事本呢而不是其他的word或其他的excel等程序呢? 还请大侠不吝赐教!!!!谢谢!!!!
张 张无极 Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-01 #11 各位大侠,小弟实在愚笨,能不能指点一下,网上哪有介绍这种"可替换参数"用法的资料, 感激不尽!!!
罗 罗西岛主 Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-01 #12 Windows 发行之初就有所谓文件关联,就是说,你不需要具体地打开某个程序,只要双击 一个和这个程序关联的文档,就可以让这个程序启动来打开这个文档。象 *.txt 一般都 关联到 notepad.exe 这个程序,你双击任意一个 *.txt 的文件,就会启动 notepad.exe。 这样的关联是可以人为设定的,随着 Windows 的升级,设定数据保存到了注册表中,请看: [HKEY_CLASSES_ROOT/.txt] <-------- .txt 为后缀的文件 @="txtfile" <-------- 是 txtfile [HKEY_CLASSES_ROOT/txtfile] <-------- 是 txtfile 文件 @="文本文档" [HKEY_CLASSES_ROOT/txtfile/shell/open/command] @=c:/windows/system32/NOTEPAD.EXE %1 <--- 使用这个命令打开 (关联) 这是从注册表里的不同部分选出来的相关内容。可能你还是看不明白, 但你会注意到 @=c:/windows/system32/NOTEPAD.EXE %1 这一句的。
Windows 发行之初就有所谓文件关联,就是说,你不需要具体地打开某个程序,只要双击 一个和这个程序关联的文档,就可以让这个程序启动来打开这个文档。象 *.txt 一般都 关联到 notepad.exe 这个程序,你双击任意一个 *.txt 的文件,就会启动 notepad.exe。 这样的关联是可以人为设定的,随着 Windows 的升级,设定数据保存到了注册表中,请看: [HKEY_CLASSES_ROOT/.txt] <-------- .txt 为后缀的文件 @="txtfile" <-------- 是 txtfile [HKEY_CLASSES_ROOT/txtfile] <-------- 是 txtfile 文件 @="文本文档" [HKEY_CLASSES_ROOT/txtfile/shell/open/command] @=c:/windows/system32/NOTEPAD.EXE %1 <--- 使用这个命令打开 (关联) 这是从注册表里的不同部分选出来的相关内容。可能你还是看不明白, 但你会注意到 @=c:/windows/system32/NOTEPAD.EXE %1 这一句的。
罗 罗西岛主 Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-01 #13 假如你在注册表中找到了 @=c:/windows/system32/NOTEPAD.EXE %1 这一句,并把它改为 @=c:/Progra~1/Micros~1/Office/word.exe %1 会怎样呢。 对了,所有 .txt 文件都会用 word.exe 来打开了。 而那个 %1 ,并不表示 word.exe 也不表示 notepad.exe 而是代表需要打开的 某个 txt 文件。
假如你在注册表中找到了 @=c:/windows/system32/NOTEPAD.EXE %1 这一句,并把它改为 @=c:/Progra~1/Micros~1/Office/word.exe %1 会怎样呢。 对了,所有 .txt 文件都会用 word.exe 来打开了。 而那个 %1 ,并不表示 word.exe 也不表示 notepad.exe 而是代表需要打开的 某个 txt 文件。
罗 罗西岛主 Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-01 #14 这样,假如我需要用程序写这个注册表的这个数据,怎么办呢。 于是,我们可以: regf.RootKey := HKEY_CLASSES_ROOT; regf.OpenKey('txtfile/shell/open/command',false); regf.WriteString('', 'c:/Progra~1/Micros~1/Office/word.exe'+' "%1"'); // win98 写法 // or 注意看 ' "%1"' 中间有空格 regf.WriteString('', 'c:/Progra~1/Micros~1/Office/word.exe'+' %1'); // nt 写法 这样就把 notepad.exe 改为了 word.exe 。 这下看得懂了吧。以上代码和说明,你看得懂的部分,都是我呕心沥血写的,你看不懂的或 者有错误的,肯定不是我写的,我也不知道是谁写的。
这样,假如我需要用程序写这个注册表的这个数据,怎么办呢。 于是,我们可以: regf.RootKey := HKEY_CLASSES_ROOT; regf.OpenKey('txtfile/shell/open/command',false); regf.WriteString('', 'c:/Progra~1/Micros~1/Office/word.exe'+' "%1"'); // win98 写法 // or 注意看 ' "%1"' 中间有空格 regf.WriteString('', 'c:/Progra~1/Micros~1/Office/word.exe'+' %1'); // nt 写法 这样就把 notepad.exe 改为了 word.exe 。 这下看得懂了吧。以上代码和说明,你看得懂的部分,都是我呕心沥血写的,你看不懂的或 者有错误的,肯定不是我写的,我也不知道是谁写的。
张 张无极 Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-01 #15 若我把@=c:/Progra~1/Micros~1/Office/word.exe %1 改为 @=c:/Progra~1/Micros~1/Office/word.exe %2会有怎么样的结果啊?
罗 罗西岛主 Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-01 #16 没什么结果。%1 是系统设定的。如果你只双击了一个文件,系统就把 %1 替换为文件 名字。如果你选中了一批文件(多选),系统就 %1,%2,%3...这样地把文件代进去。但每 次只替换一个。这是系统做的工作,我们执行规定操作就是了。
没什么结果。%1 是系统设定的。如果你只双击了一个文件,系统就把 %1 替换为文件 名字。如果你选中了一批文件(多选),系统就 %1,%2,%3...这样地把文件代进去。但每 次只替换一个。这是系统做的工作,我们执行规定操作就是了。
罗 罗西岛主 Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-01 #17 也就是说,你的一批文件,系统执行后将它翻译为: %1=a.txt %2=b.txt %3=c.txt . . . 让 word.exe 打开时,系统会这样替换: %1 = a.txt = %1 ---> word.exe a.txt %2 = b.txt = %1 ---> word.exe b.txt . . . 这样,系统里有 %1,%2,%3 ... 这样来记录一系列的文件,以便于系统进行增量操作, 但递送给应用程序时,系统自动将文件回转为应用程序需要的 %1 的样子。
也就是说,你的一批文件,系统执行后将它翻译为: %1=a.txt %2=b.txt %3=c.txt . . . 让 word.exe 打开时,系统会这样替换: %1 = a.txt = %1 ---> word.exe a.txt %2 = b.txt = %1 ---> word.exe b.txt . . . 这样,系统里有 %1,%2,%3 ... 这样来记录一系列的文件,以便于系统进行增量操作, 但递送给应用程序时,系统自动将文件回转为应用程序需要的 %1 的样子。
罗 罗西岛主 Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-01 #18 重申: 以上代码和说明,你看得懂的部分,都是我呕心沥血写的,你看不懂的或 者有错误的,肯定不是我写的,我也不知道是谁写的。