如何使用C#,WPF在WinPE中使用FileOpenDialog和Image

时间:2017-06-06 08:20:33

标签: c# wpf winpe

我正在开发一个在WinPE上运行的应用程序。 我使用C#和WPF(.Net Framework 4.5)

但是我遇到了一些问题。

我想使用FileOpenDialog选择文件。它不在WinPE(版本6.3)中运行

我尝试了两种方式来使用FileOpenDialog

  1. System.Windows.Forms.FileOpenDialog - 没有发生任何事情
  2. Microsoft.Win32.FileOpenDialog - 发生异常
  3. 另一个问题是Image。 我想使用图像,但不会出现一些图像。

    正常情况下,图像小于1KB。但是屏幕上没有出现超过400KB的大尺寸图像。

    所有功能通常都在Windows 10上运行但这些问题只出现在WinPE中。

    如何解决这些问题?

1 个答案:

答案 0 :(得分:0)

要运行fileDialog,您需要从正在运行的Windows 10系统中复制ExplorerFrame.dll。该文件位于system32文件夹中。留意建筑。

您还需要将以下注册表修改添加到WinPE注册表中。几个月前,这帮助我解决了同样的问题。根据您的应用程序,您还需要安装WinPE-WMI.cab,WinPE-PowerShell.cab,WinPE-NetFx.cab及其语言包。这些可以在MS ADK中找到。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SW\Classes\CLSID\{AE054212-3535-4430-83ED-D501AA6680E6}]
@="Shell Name Space ListView"

[HKEY_LOCAL_MACHINE\SW\Classes\CLSID\{AE054212-3535-4430-83ED-D501AA6680E6}\InProcServer32]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,65,00,78,00,\
  70,00,6c,00,6f,00,72,00,65,00,72,00,66,00,72,00,61,00,6d,00,65,00,2e,00,64,\
  00,6c,00,6c,00,00,00
"ThreadingModel"="Apartment"