IE的'查看源文件'默认打开的是记事本,怎样才能用我的文本编辑器打开?(0分)

  • 主题发起人 主题发起人 apacheii
  • 开始时间 开始时间
A

apacheii

Unregistered / Unconfirmed
GUEST, unregistred user!
请问IE的'查看源文件'默认是用记事本打开,我做了个程序,替换了记事本后双击TXT文件
或编辑其他默认用记事本打开编辑的文件时都能正常打开!而用查看源文件方法打开却不
能正常看到源文件!我想问的是IE的查看源文件功能可以更改为别的程序打开吗?(不是
编辑功能哦),此功能在注册表里能修改吗?

此问题看回答详细程度和准确度给分,最高为我的到答案时所有的分!
 
修改注册表就可以阿:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Internet Explorer/View Source Editor/Editor Name]
@="I://Windows//Notepad.exe"//这里用你的程序的路径和名字就可以了

 
兄弟,你说的是2000系统里的吧?可我用98怎么找不到这样一个键啊?
 
一般系统里面是没有的,自己建一个就可以了
 
@="I://Windows//Notepad.exe"
如果是这样写导入注册表,这里要用“//”来分隔目录
如果是直接修改注册表,就把“默认”的值改为“I:/Windows/Notepad.exe”
 
谢谢你,兄弟,建一个后能用我自己的程序打开,可是这样却还是无法打开!返回的消息是
"无法打开文件:C:/WINDOWS/Local"
系统返回来的文件路径里包含了空格就会被认为有多条命令行参数,而程序只能把第一条参
数做为文件名来打开......
请问你有办法处理这个问题吗?(我把文本文件放在包含空格的文件夹里也无法正常打开),但
替换了记事本后可以打开,查看源文件不行!
我试过把系统返回的命令行显示出来,才发现这个问题的
 
var
i: Integer;
s: String;
begin
s := '';
for i:= 1 to ParamCount do s := s + ParamStr(i) + ' ';

s := Trim(s);//s就是参数的完整路径了,然后用你的程序打开这个s
end.
 
说的简单一点,就是我导入这个注册表:
REGEDIT4

[HKEY_LOCAL_MACHINE/Software/Microsoft/Internet Explorer/View Source Editor/Editor Name]
@="C://Program Files//Accessories//WORDPAD.EXE"


后却不能正常打开!(我用写字板代替了记事本)
这个问题好象跟命令行有没有"%1"有关,有"%1"系统返回的路径就正常,没有返回的路径会
分为几段,怎样才能修改掉"查看源文件"的命令行呢!
也就是说怎样才能使用写字板打开也正常!
 
你的意思是把被分散的参数再组合起来成为文件的完整路径啊?可还有个功能就是"打印",
如果我右击文本文件,点"打印",系统给的参数带有"/P",这样组合起来就晕了......
如果我判断一下也可以正常打开,可这样就....
你告诉我怎样判断参数里有没有"/",后面的我自己再想想,谢谢了,帮完了这些忙我马上给
分你,现在我还有三百多分,全给你了吧
 
写字板的问题可能是IE4没有处理好参数吧,我没有试过,在98上装IE6也这样吗?
可能是IE4在给写字板传递参数时没有用引号将文件名括起来,
而记事本在运行时考虑到了这种情况,写字板只判断了参数,没有考虑到有空格的情况。
可以这样试验一下:
建一个文本文件,名为“file name with spaces.txt”
下面两种方式都能正确打开文件:
notepad.exe "file name with spaces.txt"
wordpad.exe "file name with spaces.txt"
如果去掉引号,就只有notepad才能打开
notepad.exe file name with spaces.txt//可以打开
wordpad.exe file name with spaces.txt//出错

要判断参数里有没有“/”,就用一个循环,
var
i, j: Integer;
s: String;
begin
s := '';
if (ParamCount >= 1) and (UpperCase(ParamStr(0)) = '/P') then //需要打印
j := 2
else if (ParamsCount >= 1) then
begin //不需要打印
j := 1;
for i:= j to ParamCount do
begin
s := s + ParamStr(i) + ' ';
end;
end;

s := Trim(s);//s就是参数的完整路径了,然后用你的程序打开这个s

end.
 
这时只有一个参数的情况,如果你的程序可能有多个参数,就应该在循环中判断每一个参数
这样应该可以了吧?
我在XP里面,指定用写字板打开源文件没有问题,因此我觉得可能是IE4的原因。
 
谢谢你,我明白了!还有个问题,哪里能下载到delphi5?
来这里拿分
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1789709

 
接受答案了.
 
后退
顶部