选通过文件扩展名.doc从注册表查出关联程序msword,然后再取得其相关打开文件的参数表,然后再按类似如下的方法传递;
ExeFileName:= 'x:/xyz/msword.exe ';//Word的路径,查注册表得
ParamterFileName:= 'z:/yxz/test.doc ';//Word文档名
CreateProcess(nil,PChar(ExeFileName+ ' '+ParamterFileName), nil, nil, false, 0, nil, nil, @StartInfo, @ProcInfo);
就拿Word文件来说吧,先从 "HKEY_CLASSES_ROOT/.doc "得到(默认)值 "Word.Document.8 "
从而再打开 "HKEY_CLASSES_ROOT/Word.Document.8/shell/Open/command ",取其(默认)值
' "X:/Program Files/Microsoft Office/OFFICE11/WINWORD.EXE " /n /dde '
然后把这个默认值做为ExeFileName,然后再把test.doc的完整路径做为ParamterFileName执行上面的CreateProcess就基本实现了。