gpt4 book ai didi

c# - 以编程方式调用 SendTo

转载 作者:可可西里 更新时间:2023-11-01 10:01:34 26 4
gpt4 key购买 nike

我如何以编程方式 (.net) 调用 Windows 资源管理器 SendTo 上下文菜单选项上的命令?

最佳答案

sendto 项是文件系统对象这一事实是一个实现细节,菜单由 sendto shell 扩展填充,它可以扩展为在下一版本的 Windows 等中包含其他内容。事实上,将 sendto 文件夹视为自 Windows95 ( powertoys/shell toys ) 以来,只有一个可以使用单个参数执行的快捷方式文件夹一直存在问题

一些 sendto 项目不是 .lnk,而是具有注册放置处理程序的独特文件扩展名(.DeskLink、.OtherFolder、.MAPIMail 等)

调用 sendto 项的记录方式是使用 IContextMenu 。执行此操作的非托管方法是在要模拟 sendto 操作的对象上调用 SHBindToParent(询问 IID_IShellFolder)然后调用 IShellFolder::GetUIObjectOf 并询问 IID_IContextMenu,然后您可以调用 IContextMenu::QueryContextMenu 填写 HMENU,您会然后必须找到 sendto 子菜单(我想如果你用 IContextMenu::GetCommandString 询问它,它会返回 sendto 作为它的动词)然后你可以用 winapi 菜单函数和/或 IContextMenu::GetCommandString 枚举子菜单来找到您要调用的项目,然后调用 IContextMenu::InvokeCommand

关于c# - 以编程方式调用 SendTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4586880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com