问题标签 [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.

0 投票
0 回答
202 浏览

c# - 使用 Shellfile 获取 BitmapSource 更改窗口大小

我有这行代码搞砸了一切。

所以在这行代码运行之后,整个窗口都会重新调整大小,这看起来与分辨率和 DPI 的东西有关。我怎样才能解决这个问题?

截图:

我这样做是因为我想获得任何文件的透明缩略图,并且由于某种原因,当我刚刚获得位图时,透明是黑色的。所以我必须获取源代码并将其转换为位图,但这在没有其他代码的情况下发生。

我知道我可以设置透明颜色,但这不是一个完美的解决方案,有些图像看起来很奇怪,所以我不会这样做。

0 投票
1 回答
828 浏览

wpf - 在 WPF 中无缝托管 EXE

我目前的任务是在 WPF 中托管一堆旧的 VB6 exe,同时正在进行看似无限的任务或重构。

托管 EXE 一点也不棘手,但可以使过程无缝。

目前的流程是:1)创建视图2)注入VM 3)启动进程并启动EXE。4) WaitForInputIdle 5) SetParent 6) SetWindowLong 7) SetWindowPos

我遇到的问题是,据我所知,使用这种方法,进程必须先自然加载,然后才能调用 SetParent。这意味着应用程序在停留在 WPF 控件中之前会出现闪烁。
我想找到一种摆脱这种情况的方法,是否有一种方法可以纯粹在内存中打开进程或隐藏进程(我将 UseShellExecute 设置为 true 并且 WindowStyle = ProcessWindowStyle.Minimized)。

可能有另一种方法可以完全打开我不知道的过程。

视图模型构造函数

打开进程

已将示例上传到 github,请随时更新。

https://github.com/OliDow/FormHostPoc/tree/master/FormHostPoc

0 投票
0 回答
793 浏览

c# - 无法获取 WindowsApiCodePack ShellFile 缩略图异步

我正在尝试异步获取目录中文件的缩略图。除 PDF 之外的所有文件似乎都可以异步工作。

所有其他文件都正确返回。但是,如果我再次调用所有这些代码 if image.source == null 那么它工作正常。

在 Hans Passant 回答后编辑我的工作代码

谢谢!

0 投票
1 回答
1532 浏览

c# - C# WindowsApiCodepack PropertySystem AccessViolationException

使用 WindowsAPICodePack 在 Win8/64bit 上做一些资源管理器/shell 的工作。在使用 x64 平台目标迭代文件属性时,属性系统出现一些问题会导致 AccessViolationException。似乎是 PropVariant.cs 中的一些问题。切换到 x86 可以解决问题,但会导致目录列表不完整(系统 32/驱动程序中缺少 fe “etc”)。有任何想法吗?

0 投票
1 回答
343 浏览

c# - Windows XP 机器上的 Windows API 代码包功能

我有一个需要在所有 Windows 平台上运行的 Windows 应用程序。我最近安装了 Windows API 代码包并将文件夹浏览器替换为“CommonOpenFileBrowser”。这很好,直到我尝试在出现异常的 Windows XP 机器上运行我的程序:

PlatformNotSupportedException,CommonOpenFileDialog 需要 vista 或更高版本。

我想继续为 vista 及更高版本使用 CommonOpenFileDialog,但是如果它在运行时检测到 Windows XP 操作系统,是否可以恢复到旧的文件夹浏览器?

更多想法:

我可以使用以下方法检测我的操作系统:

// 如果 Windows Vista 或更高版本
if (Environment.OSVersion.Version.Major >= 6)

但异常发生在启动时,甚至在显示 CommonOpenFileDialog 之前。我听说过一些关于动态加载代码的事情,但我对此知之甚少。

0 投票
0 回答
116 浏览

java - 如何从 Java 访问 Windows 8 Search api?

我的 Java 应用程序应该能够列出 Windows 操作系统中的所有软件,并在其自己的 Java 面板上列出结果。例如,如果我在我的 java 应用程序中键入 skype 或任何软件名称,那么它应该从 windows os 搜索并列出 java 程序,然后应该能够打开它。我不知道如何做这项工作,也没有找到任何例子。我对它没有任何基本的想法。

提前致谢。

0 投票
1 回答
240 浏览

c# - 识别 MSI 是否已被修改的最佳方法是什么

在我们的组织中,每次成功构建后,自动脚本都会将所有 MSI 从构建位置复制到共享文件夹内的新文件夹。有150多个项目。我面临的问题是,即使只更改了 20 个项目,自动脚本也会将所有 150 个 MSI 复制并粘贴到新文件夹中。因此,我无法确定哪个项目的 MSI 在最近的构建中经历了变化。如果我看到时间戳,则新文件夹中的所有 MSI 都是相同的。

任何人都可以建议任何方法来通过程序或使用任何工具手动识别修改后的 MSI 列表吗?如果是手动的,它不应该是一个一个的文件比较。

基本上,我想比较两个共享文件夹以生成修改后的 MSI 列表。

请注意:我们无权访问构建位置,也没有更改现有自动化脚本的范围。但我可以写新的。

0 投票
1 回答
404 浏览

java - 使用 kernal32 VirtualQueryEx 的 Java JNA 返回零(无成功错误代码)

我正在尝试从 kernal32.dll windows API 函数中使用 VirtualQueryEx。

我在调用此函数之前获得的所有指针/地址都是正确的。

对 VirtualQueryEx 的调用返回 0 ,这意味着没有成功。

GetLastError() 还返回错误代码 5,这意味着访问被拒绝):

请问我做错了什么?

  • Windows 8,管理员权限。

JNA 映射:

内核32内

memory_basic 结构:

谢谢 !

0 投票
0 回答
930 浏览

c# - WPF WindowsAPICodePack ExplorerBrowser 停止选项卡

我已经以尽可能多的方式进行搜索,但我还没有看到有人提到这个问题。也许我做错了?

如果我将 Windows API 代码包中的 ExplorerBrowser 控件放置在 WPF 窗口中并调用 Navigate(),则导航完成后,通过控件的选项卡将不起作用。解决此问题的唯一方法是实际单击浏览器控件内部。注释掉 Navigate 调用也会阻止它发生,但会留下一个无用的控件。

控件的最简单使用说明了这个问题。

编译并启动,tab 不起作用。单击浏览器控件内部,它会再次开始工作。

该问题仅在 Navigate() 完成时发生。您可以通过将浏览器控件放置在选项卡控件中来看到这一点。

添加到主窗口()

处理它的函数

现在,当我编译并启动选项卡工作时,直到我单击选项卡以将控件置于前台。消息框弹出,显示 Navigate() 在控件可见之前实际上不会触发,现在选项卡不再起作用,除非我单击控件。

对于项目中的其他窗口也是如此。如果我要打开一个包含控件的对话框,让它导航,然后关闭窗口而不单击控件。现在整个应用程序的制表符都被破坏了。

任何关于改变什么或解决问题的方法的建议都会很棒。任何比移动鼠标光标并以编程方式单击它更简单的东西(是的,我试过了,是的,它可以工作。)。

0 投票
4 回答
1109 浏览

vba - ReadProcessMemory 函数的 ByRef 与 ByVal

我在 VBA/VB6 中使用 Windows 函数ReadProcessMemory,我不明白为什么当我将传递机制更改lpBufferByVal时,该函数仍会修改通过此参数传递的原始对象的值。在文档中,此参数被指定为应通过引用传递的输出。不应该将传递机制更改为按值阻止原始实例被修改吗?为什么不呢?

MSDN ReadProcessMemory