找回密码
 加入
搜索
查看: 3781|回复: 2

[AU3基础] 问一个关于win7特殊快捷方式的问题(有源码)

[复制链接]
发表于 2011-11-3 21:55:44 | 显示全部楼层 |阅读模式
本帖最后由 zlmyongheng 于 2011-11-7 20:05 编辑


au3中的代码如下:
FileCreateShortcut(@ProgramFilesDir&"\Tencent\QQ\Bin\QQ.exe",@HomeDrive&"\Users\Administrator\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\腾讯QQ.lnk",@ProgramFilesDir&"\Tencent\QQ\Bin\")
ShellExecute("taskbarpin","","C:\Users\Administrator\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\腾讯QQ.lnk","")

发现ShellExecute例子是执行程序的,而taskbarpin应该是微软的一个api,不知道用shellexecute如何去执行


这个是在nsis安装程序下发现的一个用处,就是如图上所给的在快速启动这个地方创建快捷方式,如何把下面的这句话转换成au3,实在不懂如何操作了
附:nsis执行代码
ExecShell taskbarpin "C:\Users\Administrator\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\腾讯QQ.lnk"




代码2帮忙看看怎么没有用,编辑时好像verb属性无效:
#include-once
#include <WinAPI.au3>
#include <Constants.au3>
;#include <PinToMenu.au3>


;Pin To Taskbar & Start Menu
_PinToMenu(@HomeDrive&'\Users\Public\Desktop\腾迅QQ.lnk', 'Task')
;_PinToMenu(@WindowsDir & '\notepad.exe', 'Start')
#cs
MsgBox(262144, 'Pause', 'Press OK When ready to remove Notepad')

;Remove From Taskbar & Start Menu
_PinToMenu(@WindowsDir & '\notepad.exe', 'Task', 0)
_PinToMenu(@WindowsDir & '\notepad.exe', 'Start', 0)
#ce
Func _PinToMenu($File, $Bar = 'Task', $Pin = True)
    If @OSBuild < 7600 Then Return SetError(1) ; Windows 7 only
    If Not FileExists($File) Then Return SetError(2)
    Local $sFolder = StringRegExpReplace($File, "(^.*\\)(.*)", "$1")
    Local $sFile = StringRegExpReplace($File, "^.*\\", '')
    $ObjShell = ObjCreate("Shell.Application")
    $objFolder = $ObjShell.Namespace($sFolder)
    $objFolderItem = $objFolder.ParseName($sFile)
    For $Val In $objFolderItem.Verbs()
        Select
            Case StringInStr($Bar, 'Task')
                If StringInStr($val(), "TaskBar") Then
                    $Val.DoIt()
                    Return
                EndIf
            Case StringInStr($Bar, 'Start')
                If StringInStr($val(), "Start Menu") Then
                    $Val.DoIt()
                    Return
                EndIf
        EndSelect
    Next
EndFunc   ;==>_PinToMenu

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-11-4 08:03:35 | 显示全部楼层
你可以试试。
 楼主| 发表于 2011-11-7 20:05:33 | 显示全部楼层
帮忙看看,现在有一定代码了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-20 21:36 , Processed in 0.102135 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表