|
本帖最后由 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 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入
×
|