|
本帖最后由 wangms 于 2014-9-10 09:12 编辑
这几天发现_WinAPI_AssocQueryString ( $sAssoc, $iType [, $iFlags = 0 [, $sExtra = '']] )函数很实用,根据文件扩展名如.au3,返回参数$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 --- IE 6 或更高版本.快速提示注册表值.
$ASSOCSTR_TILEINFO --- IE 6 或更高版本.并列显示注册表值.
$ASSOCSTR_CONTENTTYPE --- IE 6 或更高版本. 描述 MIME 文件关联类型.
$ASSOCSTR_DEFAULTICON --- IE 6 或更高版本. 返回图标资源路径.
$ASSOCSTR_SHELLEXTENSION --- IE 6 或更高版本. Shell 对象关联的扩展.
如根据.au3扩展名可返回:
$ASSOCSTR_FRIENDLYDOCNAME ---> AutoIt v3 Script 文档类型名称
$ASSOCSTR_COMMAND ---> "d:\AutoIt3\AutoIt3.exe" "%1" %* 与 Shell 动词相关联的命令字符串
$ASSOCSTR_EXECUTABLE ---> d:\AutoIt3\AutoIt3.exe Shell 动词命令的可执行文件字符串.
$ASSOCSTR_DEFAULTICON ---> d:\AutoIt3\Icons\au3script_v10.ico 图标资源路径
咋样,很实用吧!如是写代码读注册那是很麻烦的,得按:扩展名-->标识主键-->shell 在注册表枚举去查找,很费事。
但这个函数很奇怪,既然能直接返回shell下面的许多信息,为什么不多加一个返回Shell 动词名称的$iType 选项?
Shell 动词名称,是我暂定名字,就是注册表子键shell的默认值,如图圈圈里的玩意:
圈圈里的玩意就是决定双击AU3脚本,是运行、还是编辑的东东。
请高手老师们费神扩展一下这个函数,多加一个返回Shell 动词名称的$iType 选项。在此谢谢先!!
_WinAPI_AssocQueryString()函数如下:
Func _WinAPI_AssocQueryString($sAssoc, $iType, $iFlags = 0, $sExtra = '')
Local $sTypeOfExtra = 'wstr'
If Not StringStripWS($sExtra, $STR_STRIPLEADING + $STR_STRIPTRAILING) Then
$sTypeOfExtra = 'ptr'
$sExtra = 0
EndIf
Local $aRet = DllCall('shlwapi.dll', 'long', 'AssocQueryStringW', 'dword', $iFlags, 'dword', $iType, 'wstr', $sAssoc, _
$sTypeOfExtra, $sExtra, 'wstr', '', 'dword*', 4096)
If @error Then Return SetError(@error, @extended, '')
If $aRet[0] Then Return SetError(10, $aRet[0], '')
Return $aRet[5]
EndFunc ;==>_WinAPI_AssocQueryString |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入
×
评分
-
查看全部评分
|