![]() |
1
4
步骤1获取分配给文件扩展名的可执行文件,例如使用以下函数:
(见 here ,或者marc_'s anwser来回答这个问题:-) 步骤2现在您可以从这个可执行文件的版本信息中读出程序的名称!最简单的方法是使用你可以通过google找到的tversioninfo类,例如 here .
但是,您必须注意,有些程序因此使用描述码(如rad studio本身或ms-excel),而其他程序则使用产品名称键… |
![]() |
2
11
当有一些api函数被设计来满足您的需要时,不要在注册表中进行spelunging。
在你的情况下,你想要
该api函数是
|
![]() |
3
4
Delphi附带了一个shellAPI.pas单元,在下面的示例代码中使用。文件必须存在。 使用方法如下:
|
![]() |
4
4
我认为你需要把mef和rob kennedy的答案结合起来。 接受罗伯·肯尼迪的回答,从梅夫的回答中采取第二步。直接阅读注册表不是件好事,所以你应该扔掉他的第1部分。
assocquerystring不仅返回文件类型的友好名称( ASSOCSTR_FRIENDLYDOCNAME ,但也可以返回可执行文件的名称以打开文件( ASSOCSTR_EXECUTABLE )-这就是你需要的。 更重要的是:我不确定,但可能是 ASSOCSTR_FRIENDLYAPPNAME 会满足你的需要。在这种情况下,你可以只用罗伯·肯尼迪的答案。 直接读取注册表的问题是它可能返回错误的信息。那是因为你读了系统设置-这就是应用程序注册的内容。但用户可能会忽略这一点。例如,他可以右键单击.xls并选择“打开方式…”->“其他应用。”->“OpenOffice”->“始终使用此应用”。不会更改.xls类型的注册信息(用户首选项保存在单独的位置,因此应用程序不能与之混淆),因此您的代码(直接读取注册表)将继续生成“MS Excel”,即使用户双击文件时也会启动OpenOffice。 |
![]() |
5
3
这篇文章怎么样: Determining the associated application
在excel的具体例子中,您将发现
当你去寻找
|
![]() |
6
0
如果用户对存储在
密钥有一个包含应用程序名称的条目“application”(例如“soffice.exe”)。它与香港的应用程序密钥相关,例如
|
![]() |
PHPLover · “支持PHP扩展或功能的端口”实际上是什么意思? 1 年前 |