从注册表搜索并获取文件或协议关联的字符串.
#Include <WinAPIEx.au3>
_WinAPI_AssocQueryString ( $sAssoc, $iType [, $iFlags [, $sExtra]] )
$sAssoc | 用于确定根键的字符串.可以使用以下四种类型的字符串: 1 . 文件扩展名,例如 ".txt". 2 . 标准 "{GUID}" 格式 GUID 的类标识符(CLSID). 3 . 应用程序的 ProgID,例如 Word.Document.8. 4 . 应用程序 .exe 的文件名.必须设置 $ASSOCF_OPEN_BYEXENAME 标志. |
$iType | 指定返回字符串值的类型.参数可以是以下值之一: $ASSOCSTR_COMMAND --- 与 Shell 动词相关联的命令字符串 $ASSOCSTR_EXECUTABLE --- Shell 动词命令的可执行文件字符串 $ASSOCSTR_FRIENDLYDOCNAME --- 文档类型名称 $ASSOCSTR_FRIENDLYAPPNAME --- 可执行文件名称 $ASSOCSTR_NOOPEN --- 忽略打开子键项相关的信息 $ASSOCSTR_SHELLNEWVALUE --- 新 Shell 的子键项 $ASSOCSTR_DDECOMMAND --- DDE 命令模板 $ASSOCSTR_DDEIFEXEC --- 用于创建进程的 DDE 命令 $ASSOCSTR_DDEAPPLICATION --- 传递 DDE 应用程序的名称 $ASSOCSTR_DDETOPIC --- 传递 DDE 的主题名称 $ASSOCSTR_INFOTIP --- 提示注册表值信息 $ASSOCSTR_QUICKTIP --- Internet Explorer 版本6或更高版本.快速提示注册表值 $ASSOCSTR_TILEINFO --- Internet Explorer版本6或更高版本.并列显示注册表值 $ASSOCSTR_CONTENTTYPE --- Internet Explorer版本6或更高版本. 描述 MIME 文件关联类型 $ASSOCSTR_DEFAULTICON --- Internet Explorer版本6或更高版本. 返回图标资源路径 $ASSOCSTR_SHELLEXTENSION --- Internet Explorer版本6或更高版本. Shell 对象关联的扩展 |
$iFlags | [可选参数] 用于控制搜索的标志.可以是以下任意值的组合, 但只有一个 $ASSOCF_INIT_ * 值可以被包含在内: $ASSOCF_INIT_NOREMAPCLSID --- $sAssoc 不是映射的 CLSID 值的 ProgID 值 $ASSOCF_INIT_BYEXENAME --- 初始化参数 $sAssoc 标识值为一个可执行文件的名称 $ASSOCF_OPEN_BYEXENAME --- 相同于 ASSOCF_INIT_BYEXENAME $ASSOCF_INIT_DEFAULTTOSTAR --- $sAssoc 不搜索根键下所要求的价值,它应尝试检索*子项的可比值 $ASSOCF_INIT_DEFAULTTOFOLDER --- $sAssoc 不搜索根键下所要求的价值,它应尝试检索文件夹的子项的可比值 $ASSOCF_NOUSERSETTINGS --- 指定仅搜索 HKEY_CLASSES_ROOT,忽略 HKey_Current_User $ASSOCF_NOTRUNCATE --- 不截断返回得字符串 $ASSOCF_VERIFY --- 验证数据准确的方法 $ASSOCF_REMAPRUNDLL --- 忽略 Rundll.exe 回报的信息 $ASSOCF_NOFIXUPS --- 不能修复不匹配的错误注册表 $ASSOCF_IGNOREBASECLASS --- 忽略 BaseClass 的值 $ASSOCF_INIT_IGNOREUNKNOWN --- 忽略“未知”的 ProgID |
$sExtra | [可选参数] 可供选择的字符串位置的附加信息. 通常设置为命令解释程序(Shell)的动词,如open. |
成功: | 返回包含被请求的 ($ASSOCSTR_*) 信息字符串. |
失败: | 返回空字符串,设置 @error 标志为非 0 值, @extended 标志可能包含一个系统错误代码. |
在MSDN中搜索
#Include <APIConstants.au3>
#Include <WinAPIEx.au3>
Opt('MustDeclareVars', 1)
Global $Ext = '.au3'
ConsoleWrite('(' & $Ext & ')' & @CR)
ConsoleWrite('--------------------' & @CR)
ConsoleWrite('Type: ' & _WinAPI_AssocQueryString($Ext, $ASSOCSTR_FRIENDLYDOCNAME) & @CR)
ConsoleWrite('Command: ' & _WinAPI_AssocQueryString($Ext, $ASSOCSTR_COMMAND) & @CR)
ConsoleWrite('Executable: ' & _WinAPI_AssocQueryString($Ext, $ASSOCSTR_EXECUTABLE) & @CR)
ConsoleWrite('Icon: ' & _WinAPI_AssocQueryString($Ext, $ASSOCSTR_DEFAULTICON) & @CR)