zlmyongheng 发表于 2011-11-3 21:55:44

问一个关于win7特殊快捷方式的问题(有源码)

本帖最后由 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

chenronting 发表于 2011-11-4 08:03:35

你可以试试。

zlmyongheng 发表于 2011-11-7 20:05:33

帮忙看看,现在有一定代码了
页: [1]
查看完整版本: 问一个关于win7特殊快捷方式的问题(有源码)