Struct win_wrap::shell::ShellLink

source ·
pub struct ShellLink(/* private fields */);
Expand description

公开用于创建、修改和解析 Shell 链接的方法。

Implementations§

source

pub fn new() -> Self

创建一个快捷连接对象。

source

pub fn set_description(&self, description: String) -> &Self

设置 Shell 链接对象的说明。说明可以是任何应用程序定义的字符串。 description 包含新说明的字符串。

source

pub fn get_description(&self) -> String

获取 Shell 链接对象的说明字符串。

source

pub fn set_path(&self, path: String) -> &Self

设置 Shell 链接对象的目标的路径和文件名。 path 文件的新路径。

source

pub fn get_path(&self, flags: SLGP_FLAGS) -> (WIN32_FIND_DATAW, String)

获取 Shell 链接对象的目标的路径和文件名。

flags 指定要查询的路径信息类型的标志。此参数可以是以下值的组合。

  • SLGP_SHORTPATH 查询标准短(8.3 格式)文件名。
  • SLGP_UNCPRIORITY 支持;不要使用。
  • SLGP_RAWPATH 查询原始路径名。原始路径可能不存在,可能包含需要扩展的环境变量。
  • SLGP_RELATIVEPRIORITY Windows Vista 及更高版本。如果可能,检索快捷方式目标的路径(如果可能),该路径相对于上一个对 IShellLink::SetRelativePath 的调用所设置的路径。
source

pub fn set_arguments(&self, args: String) -> &Self

设置命令行管理程序链接对象的命令行参数。 在创建指向将特殊标志作为参数的应用程序(如编译器)的链接时,此方法非常有用。 args 包含新命令行的参数。

source

pub fn get_arguments(&self) -> String

获取与 Shell 链接对象关联的命令行参数。

source

pub fn set_hotkey(&self, flags: u32, key: VIRTUAL_KEY) -> &ShellLink

设置 Shell 链接对象的键盘快捷方式(热键)。 设置键盘快捷键允许用户通过按特定的键组合来激活对象。 key 虚拟键。 flags 修饰键标志,0表示没有修饰键,可以是已下值的组合:

  • HOTKEYF_ALT Alt 键
  • HOTKEYF_CONTROL CTRL 键
  • HOTKEYF_EXT 扩展密钥
  • HOTKEYF_SHIFT 换档键
source

pub fn get_hotkey(&self) -> (u32, VIRTUAL_KEY)

获取 Shell 链接对象的键盘快捷方式(热键)。 返回键盘快捷方式(修饰符标志,虚拟键代码)。修饰符标志可以是以下值的组合。

  • HOTKEYF_ALT Alt 键
  • HOTKEYF_CONTROL CTRL 键
  • HOTKEYF_EXT 扩展密钥
  • HOTKEYF_SHIFT 换档键
source

pub fn set_icon_location(&self, path: String, index: i32) -> &ShellLink

设置 Shell 链接对象的图标的位置(路径和索引)。 path 包含图标的文件的路径。 index 图标索引。

source

pub fn get_icon_location(&self) -> (String, i32)

获取 Shell 链接对象的图标的位置(路径和索引)。

source

pub fn set_id_list(&self, list: Option<ITEMIDLIST>) -> &ShellLink

设置指向 Shell 链接对象的项标识符列表 (PIDL) 的指针。 当应用程序需要将命令行管理程序链接设置为非文件对象(如控制面板应用程序、打印机或其他计算机)时,此方法非常有用。 list 对象的完全限定 IDL。

source

pub fn get_id_list(&self) -> Option<ITEMIDLIST>

获取 Shell 链接对象的目标的项标识符列表。

source

pub fn set_relative_path(&self, path: String) -> &Self

设置 Shell 链接对象的相对路径。 客户端通常定义一个相对链接,当它可能与其目标一起移动时,导致绝对路径变得无效。set_relative_path 方法可用于帮助链接解析过程根据目标和相对路径之间的公共路径前缀查找其目标。为了协助解析过程,客户端应设置相对路径作为链接创建过程的一部分。 path 其中包含快捷方式文件的完全限定路径,应相对于该路径执行快捷方式解析。它应该是文件名,而不是文件夹名称。

source

pub fn set_show_cmd(&self, show_cmd: SHOW_WINDOW_CMD) -> &ShellLink

设置 Shell 链接对象的 show 命令。show 命令设置窗口的初始显示状态。 show_cmd 接受以下 ShowWindow 命令之一。

  • SW_SHOWNORMAL 激活并显示一个窗口。如果窗口最小化或最大化,系统会将其恢复到其原始大小和位置。应用程序应在首次显示窗口时指定此标志。
  • SW_SHOWMAXIMIZED 激活窗口并将其显示为最大化窗口。
  • SW_SHOWMINNOACTIVE 以最小化状态显示窗口,使当前活动窗口保持活动状态。
source

pub fn get_show_cmd(&self) -> SHOW_WINDOW_CMD

获取 Shell 链接对象的 show 命令。 show 命令用于设置相应对象的初始 show 状态。这是 show_window 中描述的SW_xxx值之一。

source

pub fn set_working_directory(&self, dir: String) -> &Self

设置 Shell 链接对象的工作目录的名称。 除非目标需要工作目录,否则工作目录是可选的。例如,如果应用程序创建指向 Microsoft Word 文档的 Shell 链接,该文档使用驻留在不同目录中的模板,则应用程序将使用此方法设置工作目录。 dir 包含新工作目录的名称。

source

pub fn get_working_directory(&self) -> String

获取 Shell 链接对象的工作目录的名称。

source

pub fn resolve(&self, h_wnd: HWND, flags: SLR_FLAGS) -> &Self

尝试查找命令行管理程序链接的目标,即使该链接已被移动或重命名。 创建链接后,目标的名称或位置可能会更改。resolve 方法首先检索与链接关联的路径。如果对象不再存在或已重命名,resolve 将尝试查找它。如果成功,并且满足以下条件,则从中加载链接对象的文件将更新以反映链接对象的新状态。 • 设置了SLR_UPDATE标志。 • 目标已移动或重命名,更新了 Shell 链接对象的内部状态以引用新目标。 • 命令行管理程序链接对象是通过 PersistFile 从文件加载的。 客户端还可以调用 PersistFile::is_dirty 方法来确定链接对象是否已更改以及文件是否需要更新。 resolve有两种查找目标对象的方法。首先是分布式链接跟踪服务。如果该服务可用,它可以查找位于 NTFS 版本 5.0 卷上并已移动到该卷上其他位置的对象。它还可以查找已移动到另一个 NTFS 版本 5.0 卷(包括其他计算机上的卷)的对象。若要禁止使用此服务,请设置SLR_NOTRACK标志。 如果分布式链接跟踪不可用或找不到链接对象,则resolve会尝试使用搜索启发式方法查找该对象。它首先在对象的最后一个已知目录中查找具有不同名称但属性和文件创建时间相同的对象。接下来,它以递归方式搜索对象最后一个已知目录附近的子目录。它查找具有相同名称或创建时间的对象。最后,resolve在桌面和其他本地卷上查找匹配对象。若要禁止使用搜索启发式方法,请设置SLR_NOSEARCH标志。 如果这两种方法都失败,系统将显示一个对话框,提示用户输入位置。若要禁止显示该对话框,请设置SLR_NO_UI标志。 h_wnd 命令行管理程序将用作对话框父级的窗口的句柄。如果命令行管理程序在解析命令行管理程序链接时需要提示用户输入详细信息,则命令行管理程序将显示该对话框。 flags 操作标志。此参数可以是以下值的组合。

  • SLR_NO_UI (0x0001) 如果无法解析链接,则不显示对话框。设置SLR_NO_UI时,可以将 fFlags 的高阶字设置为超时值,该值指定解析链接所花费的最大时间。如果无法在超时持续时间内解析链接,则返回该函数。如果高阶字设置为零,则超时持续时间将设置为默认值 3,000 毫秒(3 秒)。若要指定值,请将 fFlags 的高位字设置为所需的超时持续时间(以毫秒为单位)。
  • SLR_ANY_MATCH (0x0002) 未使用。
  • SLR_UPDATE (0x0004) 如果链接对象已更改,请更新其路径和标识符列表。如果设置了SLR_UPDATE,则无需调用 IPersistFile::IsDirty 来确定链接对象是否已更改。
  • SLR_NOUPDATE (0x0008) 请勿更新链接信息。
  • SLR_NOSEARCH (0x0010) 不要执行搜索启发式方法。
  • SLR_NOTRACK (0x0020) 不要使用分布式链接跟踪。
  • SLR_NOLINKINFO (0x0040) 禁用分布式链接跟踪。默认情况下,分布式链接跟踪会根据卷名称跨多个设备跟踪可移动媒体。它还使用 UNC 路径来跟踪驱动器号已更改的远程文件系统。设置SLR_NOLINKINFO将禁用这两种类型的跟踪。
  • SLR_INVOKE_MSI (0x0080) 调用 Windows Installer。
  • SLR_NO_UI_WITH_MSG_PUMP (0x0101) Windows XP 及更高版本。
  • SLR_OFFER_DELETE_WITHOUT_FILE (0x0200) Windows 7 及更高版本。当此方法无法解析快捷方式时,提供删除快捷方式的选项,即使快捷方式不是文件的快捷方式也是如此。
  • SLR_KNOWNFOLDER (0x0400) Windows 7 及更高版本。如果目标是已知文件夹,并且已知文件夹已重定向,则报告为脏文件夹。仅当原始目标路径是文件系统路径或 ID 列表,而不是别名已知文件夹 ID 列表时,这才有效。
  • SLR_MACHINE_IN_LOCAL_TARGET (0x0800) Windows 7 及更高版本。解析 UNC 目标中指向本地计算机的计算机名称。此值与 SLDF_KEEP_LOCAL_IDLIST_FOR_UNC_TARGET 一起使用。
  • SLR_UPDATE_MACHINE_AND_SID (0x1000) Windows 7 及更高版本。如有必要,请更新计算机 GUID 和用户 SID。
source

pub fn open_file(&self) -> Option<PersistFile>

打开对象文件。

Trait Implementations§

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.