Function Reference

首页  后退  前进

FileCreateShortcut

 

创建文件的快捷方式(.lnk).

 

FileCreateShortcut ( "file", "lnk" [, "workdir" [, "args" [, "desc" [, "icon" [, "hotkey" [, icon number [, state]]]]]]] )

参数

file

创建快捷方式的文件名和完整路径.

lnk

快捷方式文件(*.lnk)的完整路径及文件名称.

workdir

[可选] 工作目录.

args

[可选] 附加文件参数.

desc

[可选] 文件说明.

icon

[可选] 图标文件名称完整路径.

hotkey

[可选] 快捷方式热键, 格式与 Send() 函数相同.

icon number

[可选] 图标编号 (通常为 0)

state

[可选] 快捷方式启动状态. 可使用 @SW_SHOWNORMAL, @SW_SHOWMINNOACTIVE 或 @SW_SHOWMAXIMIZED

返回值

成功:

返回 1.

失败:

返回 0, 无法创建快捷方式.

备注

Windows 快捷方式的热键可以是以下这些形式:

Ctrl+Alt+X, Ctrl+Shift+X, Shift+Alt+X, Ctrl+NumPadKey, 或 Alt+NumPadKey,

其中 X 表示一个字母, 数字, 标点符号或功能键.

如果指定形式无效, Windows 通常默认为 Ctrl+Alt

请注意, Windows 区分常规数字键, 数字键盘键和标点符号键.

FileCreateShortcut 允许创建 Ctrl+X 与 Alt+X 的快捷方式 (Windows 通常只允许 X 为数字键盘键);

但应该尽可能避免指派这种快捷键, 因为它们很容易跟标准的应用程序快捷键发生冲突.

Windows 禁止 ESC, ENTER, TAB, SPACEBAR, PRINT SCREEN, SHIFT, 或 BACKSPACE 等按键作为快捷键.

 

FileCreateShortcut 并不严格要求目标文件, 工作目录, 图标或快捷键等参数的有效性;

但 LNK 文件路径必须是合法的! 若所选快捷键已被使用, 则新建快捷键优先.

如果创建快捷方式指定的路径Windows 快捷方式的热键可以是以下这些形式:

Ctrl+Alt+X, Ctrl+Shift+X, Shift+Alt+X, Ctrl+NumPadKey, 或 Alt+NumPadKey,

其中 X 表示一个字母, 数字, 标点符号或功能键.

如果指定形式无效, Windows 通常默认为 Ctrl+Alt

请注意, Windows 区分常规数字键, 数字键盘键和标点符号键.

FileCreateShortcut 允许创建 Ctrl+X 与 Alt+X 的快捷方式 (Windows 通常只允许 X 为数字键盘键);

但应该尽可能避免指派这种快捷键, 因为它们很容易跟标准的应用程序快捷键发生冲突.

Windows 禁止 ESC, ENTER, TAB, SPACEBAR, PRINT SCREEN, SHIFT, 或 BACKSPACE 等按键作为快捷键.

 

FileCreateShortcut 并不严格要求目标文件, 工作目录, 图标或快捷键等参数的有效性;

但 LNK 文件路径必须是合法的! 若所选快捷键已被使用, 则新建快捷键优先.

如果创建快捷方式指定的路径Windows 快捷方式的热键可以是以下这些形式:

Ctrl+Alt+X, Ctrl+Shift+X, Shift+Alt+X, Ctrl+NumPadKey, 或 Alt+NumPadKey,

其中 X 表示一个字母, 数字, 标点符号或功能键.

如果指定形式无效, Windows 通常默认为 Ctrl+Alt

请注意, Windows 区分常规数字键, 数字键盘键和标点符号键.

FileCreateShortcut 允许创建 Ctrl+X 与 Alt+X 的快捷方式 (Windows 通常只允许 X 为数字键盘键);

但应该尽可能避免指派这种快捷键, 因为它们很容易跟标准的应用程序快捷键发生冲突.

Windows 禁止 ESC, ENTER, TAB, SPACEBAR, PRINT SCREEN, SHIFT, 或 BACKSPACE 等按键作为快捷键.

 

FileCreateShortcut 并不严格要求目标文件, 工作目录, 图标或快捷键等参数的有效性;

但 LNK 文件路径必须是合法的! 若所选快捷键已被使用, 则新建快捷键优先.

如果创建快捷方式指定的路径Hotkeys for windows shortcuts are of the following form: Ctrl+Alt+X, Ctrl+Shift+X, Shift+Alt+X, Ctrl+NumPadKey, or Alt+NumPadKey where X represents a letter, number, punctuation, or function key. If you specify an invalid form, Windows typically defaults to Ctrl+Alt

Note that Windows distinguishes number pad keys from regular number and punctuation keys. FileCreateShortcut() allows you to create Ctrl+X and Alt+X shortcuts (which Windows normally only allows when X is a NumPadKey); however, you should avoid these assignments as they may conflict with standard application hotkeys.

Windows prohibits ESC, ENTER, TAB, SPACEBAR, PRINT SCREEN, SHIFT, or BACKSPACE from being used in hotkeys.

 

FileCreateShortcut() does not require a valid target, workdir, icon, or hotkey in order to "successfully" create the LNK file; however, the destination of the LNK file must be valid! If the hotkey you choose is already in use, your new shortcut takes precedence. Also, if you create a shortcut with the same path\name as as a pre-existing shortcut, it gets overwritten with your new version.

名已存在, 则将覆盖已存在的快捷方式.

名已存在, 则将覆盖已存在的快捷方式.

名已存在, 则将覆盖已存在的快捷方式.

相关

FileCreateNTFSLink, FileGetShortcut

函数示例

#include <MsgBoxConstants.au3>
Example()
Func Example()
    ; Create a constant variable in Local scope of the shortcut filepath.
    Local Const $sFilePath = @DesktopDir & "\FileCreateShortcutExample.lnk"
    ; Create a shortcut on the desktop to explorer.exe and set the hotkey combination Ctrl+Alt+T or in AutoIt ^!t to the shortcut.
    FileCreateShortcut(@WindowsDir & "\explorer.exe", $sFilePath, @WindowsDir, "/e,c:\", _
            "Tooltip description of the shortcut.", @SystemDir & "\shell32.dll", "^!t", "15", @SW_SHOWMAXIMIZED)
    ; Retrieve details about the shortcut.
    Local $aDetails = FileGetShortcut($sFilePath)
    If Not @error Then
        MsgBox($MB_SYSTEMMODAL, "", "Path: " & $aDetails[0] & @CRLF & _
                "Working directory: " & $aDetails[1] & @CRLF & _
                "Arguments: " & $aDetails[2] & @CRLF & _
                "Description: " & $aDetails[3] & @CRLF & _
                "Icon filename: " & $aDetails[4] & @CRLF & _
                "Icon index: " & $aDetails[5] & @CRLF & _
                "Shortcut state: " & $aDetails[6] & @CRLF)
    EndIf
    ; Delete the shortcut.
    FileDelete($sFilePath)
EndFunc   ;==>Example

----------------------------------------