问题标签 [windows-api-code-pack]
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.
c# - WindowsAPICodePack 的 CommonSaveFileDialog 中的 InvalidOperationException
我在 WPF 中使用 WindowsAPICodePack 的 CommonSaveFileDialog 向用户询问文件名。为了在对话框关闭之前检查文件名,我有一个 FileOk 处理程序。但是,如果我尝试获取 FileName 属性,则会引发 InvalidOperationException,说明在关闭对话框之前该属性不可用。
那么如何在 FileOk 处理程序中检索用户选择或输入的完整文件名?
c# - 将 BIG IEnumerable 设置为 ListBox.ItemSource 的最佳方法
我正在尝试使用 Microsoft.Windows.APICodePack.Shell.ShellContainer 作为 ListBox 的 ItemsSource,通过 ListBox.ItemTemplate 显示每个孩子的(ShellObject)缩略图和名称。当 ShellContainer 引用一个非常大的文件夹(比如一千多个文件)时,就会出现问题:如果我只是声明
它会冻结 UI 两三分钟,然后立即显示 ShellContainer 的所有内容。我发现的最好的解决方法是创建一个像这样的异步填充类
然后通过调用它
This takes more time than the previous way, but doesn't freeze the UI and begins to show some content immediately. Is there any better way to obtain a similar behavior, possibly shortening total operation time?
c# - 删除任务栏跳转列表?
因此,我对 Microsoft .NET 的 Windows API 代码包中的 JumpLists 感到困惑,似乎发生了一个小问题。
在删除或编辑代码、引用和删除库本身之后,跳转列表仍然存在。
我想知道的是,如何从我的程序中删除这个 JumpList?(图像显示了编辑后的代码和结果,即之前的代码)。
.net - WinAPICodePack 中的 TaskDialog 在 .NET 4.0 上不起作用
我正在编写一个应用程序并想使用该TaskDialogIndirect
函数 - 但是我不想编写大量的 P/Invoke 内容等,所以我包含了 WinAPICodePack。不过有一个问题!当我创建一个控件TaskDialog
并将其添加到对话框时,一切正常。但是,运行这些Show
方法会导致OverflowException
在 mscorlib 中。我将此归结为一些指针处理和编组。
试验代码的结果是,我发现必须为 .NET 3.5 和包含应用程序TOO编译 DLL 。让我的应用程序在 .NET 4.0 上调用此错误...关于解决方法的任何想法 - 或者您甚至可以重现此错误吗?
另一个问题是我可以将Icon
属性设置为我想要的任何东西,但根本不显示图标。我必须设置一个Opened
动态设置图标的事件......
信息:在 Windows 8 Pro x64 RTM 上运行 Visual Studio 2012 RTM。应用程序是一个标准的 WPF 应用程序。
示例代码:
c# - 访问不存在的缩略图
我制作了一个应用程序,向您显示计算机中的文件列表。每当您单击列表中的任何项目时,它旁边的一个小图片框应显示相应文件的缩略图。我在 Windows 7 上使用 C#。
为了获得缩略图,我重复了在另一个问题中发布的方法。首先,我参考了 Windows API 代码包。然后,我使用以下代码:
这并不总是有效。有时,显示的缩略图仅仅是“默认应用程序”图标。我发现只有当 Windows 先前为该文件生成缩略图并将其存储在缩略图缓存中时,才会显示真正的缩略图。这意味着我必须手动打开一个文件夹,等待 Windows 为每个文件生成缩略图,然后我的应用程序才能看到这些缩略图。
我的程序如何强制 Windows 7 在使用它们之前生成真正的缩略图?
更新(由 Li0liQ 提供)
可以通过添加 FormatOption 来强制检索缩略图:
但是,如果缩略图尚不存在,我会遇到异常:
当前 ShellObject 没有有效的缩略图处理程序,或者在提取此特定外壳对象的缩略图时出现问题。---> System.Runtime.InteropServices.COMException:类未注册(来自 HRESULT 的异常:0x80040154 (REGDB_E_CLASSNOTREG))
请参阅如何在 Windows 资源管理器中刷新文件的缩略图?潜在线索的问题和代码片段。
python - 窗口中进程打开的文件的名称?
如何在窗口中打印由某个进程(PID)打开的文件名?或所有进程 (PID) 当前打开一个文件。
Process Explorer是一个同样适用的实用程序。但是没有提到它是如何工作的?Windows 中存在
任何/proc 文件系统之类的东西吗?
在 Python 中得到了两个解决方案:
1. import psutil
2. import win32api, win32con, win32process
但这对我来说仍然是一个问题!
1. 这些库是如何工作的?
2. 是否有任何寄存器、内存或虚拟文件系统保存这些信息?
如果它可能在窗口中,为什么此信息不存在于任务管理器中?
c# - 从 shell 元数据属性中获取变形视频的显示尺寸
我Microsoft.WindowsAPICodePack.Shell.ShellFile
用来从文件路径获取视频大小(宽度和高度)。
问题是此方法无法检索 m4v 文件的正确大小。你有什么建议吗?我可以使用什么来获得实际的宽度/高度?
示例:我有一个 m4v 视频,其实际尺寸为 856x480
- 如果我在 Windows 资源管理器中查看文件的属性,大小为 720x480(错误)
- 如果我在视频播放器中打开视频,视频将以正确的大小呈现,即使视频细节仍显示 720x480 的大小
- 如果我在 WPF 中的 MediaElement 控件中加载视频,我会通过 获得正确的大小,
mediaElement.NaturalVideoWidth, mediaElement.NaturalVideoHeight
但问题是我需要在没有任何 WPF 引用的类库中获取大小。
c# - 隐藏窗口后任务栏进度条不显示
我正在尝试使用 C#(Net 3.5)向 Windows 7 中的任务栏图标添加进度条。我正在使用 Windows API 代码包来实现这一点:
这工作正常,但只是第一次显示窗口。用户可以选择最小化窗口,然后将其删除,因为存在托盘图标。如果窗口再次显示,我无法再次打开进度条。
当用户最小化窗口时运行代码:
当它恢复正常时:
关闭和打开进度条不起作用。
如何再次显示进度条?
c# - 自定义 CommonFileDialog 到文件夹和文件选择器
我正在尝试在 C# 中创建一个文件和文件夹对话框。(只是一个警告:我会否决所有FolderBrowserDialog
建议。那个对话是对大自然的憎恶)
目前我正在使用CommonOpenFileDialog
在 WindowsApiCodePack 中找到的,它具有属性IsFolderPicker
,使对话框仅成为文件夹选择器。但是我的用户需要能够选择文件或文件夹。
所以我正在寻找一个对话框,它可以让我选择文件和文件夹。手段无所谓。C#、WPF、WindowsApiCodePack、Ookii 对话框、C++、P/Invoke、Com+、Win32、VB 等...
我只需要一个控件,让我可以选择一个文件或文件夹,我可以从 C# 调用它,并且具有默认的 Windows OpenFileDialog 外观。这可能吗,怎么做?
c# - 如何像 IE 一样在任务栏中显示程序的选项卡
Windows 7 和 8 可以在任务栏预览中显示多个选项卡。
一些程序,如 IE、FireFox 和 ... 可以在任务栏中显示所有内部选项卡。
FireFox Multiple Tabs 在任务栏预览示例。
我想创建一个可以使用此功能的 WPF 程序。我知道它可以与 windows API 代码包一起使用,但我没有任何示例。
一些身体可以帮助我吗?