请问各位大虾
如何用程序代码使自己的可执行文件(.EXE)成为打开某种扩展名的文件的默认打开程序
好象双击*.txt直接用NOTEPAD.EXE打开
好象双击*.doc直接用word.EXE打开
好象双击*.mp3直接用winamp.EXE打开
即只需双击此类文件(扩展名相同)自动用自己的EXE打开
急,急,急
重酬,谢了
如何用程序代码使自己的可执行文件(.EXE)成为打开某种扩展名的文件的默认打开程序
好象双击*.txt直接用NOTEPAD.EXE打开
好象双击*.doc直接用word.EXE打开
好象双击*.mp3直接用winamp.EXE打开
即只需双击此类文件(扩展名相同)自动用自己的EXE打开
急,急,急
重酬,谢了
1.备份注册表为reg文件
2.shift+右键-》打开方式始终用次程序打开
3.再备份注册表为reg文件
4.比较两个注册表文件的不同,用系统自带的fc命令就可以,具体参数自己看,很简单
5.找到了文件关联的注册表键值你就自己编程序修改吧。
4.比较的时候要用重定向
fc 文件1 文件2 >Result.txt
如果不满意结果
可以这样
fc /?
看看fc的帮助,试一下每一个参数,肯定能有适合你的。
lphKey: HKEY;
sKeyName, sKeyValue: String;
begin
sKeyName := 'xyz文件';
sKeyValue := 'xyz文件类型';
RegCreateKey(HKEY_CLASSES_ROOT, PChar(sKeyName), lphKey);
RegSetValue(lphKey, '', REG_SZ, PChar(sKeyValue), Length(sKeyValue));
sKeyName := '.xyz';
sKeyValue := 'xyz文件';
RegCreateKey(HKEY_CLASSES_ROOT, PChar(sKeyName), lphKey);
RegSetValue(lphKey, '', REG_SZ, PChar(sKeyValue), Length(sKeyValue));
sKeyName := 'xyz文件';
sKeyValue := 'd:\winnt\NOTEPAD.EXE'; //这里应该是你的exe的路径
RegCreateKey(HKEY_CLASSES_ROOT, PChar(sKeyName), lphKey);
RegSetValue(lphKey, 'shell\open\command', REG_SZ, PChar(sKeyValue), Length(sKeyValue));
end;—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
procedure SetFileOpener(FileKind, FileDescription, FileExt, OpenerPath: String);
var //例如SetFileOpener('xyz文件', 'xyz文件类型', '.xyz', 'd:\winnt\NOTEPAD.EXE');
lphKey: HKEY;
begin
RegCreateKey(HKEY_CLASSES_ROOT, PChar(FileKind), lphKey);
RegSetValue(lphKey, '', REG_SZ, PChar(FileDescription), Length(FileDescription));
RegCreateKey(HKEY_CLASSES_ROOT, PChar(FileKind), lphKey);
RegSetValue(lphKey, 'shell\open\command', REG_SZ, PChar(OpenerPath), Length(OpenerPath));
RegCreateKey(HKEY_CLASSES_ROOT, PChar(FileExt), lphKey);
RegSetValue(lphKey, '', REG_SZ, PChar(FileKind), Length(FileKind));
end;—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
???fc
举个例子
假如我编了一个记事本,名为:mynote.exe,现在你要求只要双击.txt文件,就用mynote.exe将其打开,
我怎样在MYNOTE.EXE中获取文件的完全路径
是自动获取吗?
解答完就结!