问题标签 [shell32]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ms-office - Internet Shortcut IDList 值解码
我一直在尝试查找有关存储在从 MS-Office for SharePoint 库生成的 url 快捷方式中的值的任何信息。我们正在从 Office 2007 迁移到 Office 365,2007 创建这些链接的功能在 Office 365 中似乎不可用。
如果在另存为对话框中单击 .url 文件时没有 IDList 值,它会将文件名更改为快捷方式。我尝试将 .url 更改为 .lnk 但非办公应用程序无法处理它们。
.url 文件的内容
同一用户重新生成的文件
来自另一个用户的文件的值
我无法弄清楚如何解码这个值,或者我无法弄清楚其中存储了哪些数据。我已经阅读了一堆不同的方法来以编程方式使用 Windows 脚本和 shell 32 在 Powershell 和 C# 包装器中创建快捷方式,C++ 寻找任何信息。我唯一的希望是shell链接也有一个pidl的项目ID列表,但我无法确认这是否相关。
我所知道的是 IDList 可以移动到另一个 .url ,它会带你到原始路径。IDList 的某些部分会根据创建它们的用户和重新创建 url 文件的时间而变化。
Internet 快捷方式 https://msdn.microsoft.com/en-us/library/bb776784(v=vs.85).aspx
vb.net - Visual Basic (vb.net):获取视频文件的详细信息,例如。框架宽度
我正在使用 shell32.dll 来检索文件的扩展属性。我的文本框将显示文件的每个属性(iCollumn -1 到 300),但不会显示 framewidth 或 frameheight(以及许多其他属性)。
有没有办法使用 shell32.dll 获得这些?如果没有,是否有替代方法来获取这些缺失的属性?
注意:我在 Windows 资源管理器中显示了扩展,我的项目引用了 Microsoft shell 控件和自动化。
代码:
输出(为了空间我只显示了没有显示的结果):
dll - windows pe文件的地址导出表中出现空条目的原因是什么?
我有一个检查 Windows PE 文件的项目。在处理某些文件(例如 User32 和 Shell32)时,我注意到导出地址表中有条目为 0。导出地址表中有一个空 (0) 条目的目的是什么?(条目 0 不会解析为有效的虚拟地址)
仅供参考 - 使用 NikPEViewer 和 Dll Export Viewer 等应用程序根本不会显示这些条目,DumpBin 会显示未包含在导出名称表和序号表中的导出,但它会跳过空条目。
c++ - 导出无def文件的序数
我们可以使用def文件导出序数。但是系统dll不使用def文件。仍然shell32.dll有569个序数导出,user32.dll有181个序数导出。
有没有办法在没有def文件的情况下导出序数?
winapi - 在 Windows 中显示特定于窗口的 JumpList
我的程序在任务栏(不是 MDI)上打开多个窗口。我想显示一个特定于每个窗口的 Jumplist。它是如何完成的?
c - 为什么 SHGetPathFromIDList 函数导出了 3 次
我知道 shell32.dll 导出两种类型的函数——ANSI 和 UNICODE。(为简单起见,我只讨论接受 CHAR*/WCHAR* 参数的函数。)
例如,ShellMessageBoxA
是 ANSI 版本,ShellMessageBoxW
而是 Unicode 版本。ShellMessageBox
是头文件中定义的宏:
所以ShellMessageBox
不作为从 Shell32.dll 导出的函数存在。
但是现在我发现SHGetPathFromIDList
导出了三遍:
- 序数 312 -
SHGetPathFromIDList
- 序数 313 -
SHGetPathFromIDListA
- 序数 314 -
SHGetPathFromIDListW
这样做的目的是什么?
vba - 如何在 Windows 上的 1 条语句中压缩文件夹内容?
CopyHere
我正在尝试使用 Windows shell命令压缩包含子文件夹和项目的文件夹:
https://msdn.microsoft.com/en-us/library/windows/desktop/bb787866(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ ms723207(v=vs.85).aspx
更新:请注意,更喜欢本机解决方案——这是针对分布式 Excel VBA 工具的,因此捆绑第 3 方文件并不理想。并且,需要同步压缩。
我可以轻松地将文件夹及其内容添加到 zip:
所以我们知道CopyHere可以在 1 条语句中处理文件夹内的多个对象。
问题是,上面的命令将包含文件夹放在 zip 的根目录下,其中的内容。但是,我不想要包含文件夹——只是它的内容。
该文档提到了通配符(选项 128),但是当我使用通配符时,出现错误:
您指定的文件名无效或太长。
也许有一种方法可以使用我上面的第一个命令,然后将 zip 中的项目移动到 zip 的根目录?
循环遍历源文件夹中的每个项目,一次添加一个到 zip 是可以接受的。但是,由于 CopyHere 是异步的,因此如果前一个 CopyHere 未完成,则每个后续 CopyHere 都会失败。没有任何修复适用于此问题:
比较 source-folder 和 destination-zip 中的项目数失败,因为如果 zip 包含一个文件夹,则仅计为 1 个项目(其中包含的项目不计算在内。https://stackoverflow.com/a/16603850/209942
在每个项目之间等待一段时间是可行的,但计时器是不可接受的:它是任意的。我无法提前猜测每个对象的大小或压缩时间。
检查 zip 是否被锁定以供我访问失败。如果我阻塞循环直到文件未被锁定,我仍然会收到文件访问错误。https://stackoverflow.com/a/6666663/209942
更新: VBA 可以同步调用 shell 命令(而不是在 VBA 中创建shell32.shell
对象),所以如果 CopyHere 在命令行或 PowerShell 上工作,那可能是解决方案。正在调查...
vb.net - 使用 InvokeVerbEx("Print") 在 VB.net 中将文件发送到没有打印机对话框的打印机
我想在没有打印机对话框的情况下将几种类型的文件发送到打印机;
我找到了一个 vbs 脚本,它可以像这样将它翻译成 vb.net;
此错误消息出错了;
在这条线上;MyFile = MyFolder.ParseName(MyPj.FileName)
MyPj.Filename 包含文件夹中文件的名称 (MyPj.Path)。
我也试过这个例子;https://msdn.microsoft.com/en-us/library/windows/desktop/bb774057%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396没有成功。
在我使用它向打印机发送文件之前,但这会显示一个带有“okey”按钮的对话框;
.net - shell32 copyhere 在 .Net 和 powershell 脚本中都不起作用
有一个powershell脚本可以通过MTP以编程方式在pc和android之间复制文件,请参阅access-file-system-against-mtp-connection,它在powershell控制台下运行时工作,然后我制作了如下脚本:
该脚本在powershell控制台上运行良好,但是当我在cmd下运行它时
powershell -文件 mtpcp.ps1 c:\test\Android\test\
或者
powershell ./mtpcp.ps1 c:\test\Android\test\
它什么也不做(没有显示错误)。
然后我使用 system.Shell32 在 .Net 上实现了相同的功能,CopyHere 功能适用于常规路径c:\
,但不适用于 mtp 设备路径,就像 powershell 一样,它在 CopyHere 功能上什么也不做,也没有错误消息出现。