You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET窗体中显示Windows控制面板项的IShellView?

.NET窗体中显示控制面板IShellFolder的IShellView异常问题

我希望在.NET窗体中显示Windows控制面板IShellFolder项的IShellView,该操作对普通文件夹有效,但无法作用于控制面板项。

我的实现代码如下:

Dim ww As System.Windows.Forms.Form = New System.Windows.Forms.Form()
ww.Show()
Dim ptr As IntPtr, shellFolder As IShellFolder, shellView As IShellView
Dim h As HRESULT
shellFolder = CType(e.NewValue, Folder).ShellFolder
Try
    h = shellFolder.CreateViewObject(IntPtr.Zero, GetType(IShellView).GUID, ptr)
    shellView = Marshal.GetTypedObjectForIUnknown(ptr, GetType(IShellView))
Finally
    If Not IntPtr.Zero.Equals(ptr) Then
        Marshal.Release(ptr)
    End If
End Try
Dim sb As ShellBrowser = New ShellBrowser(ww.Handle)
Dim fs As FOLDERSETTINGS
fs.fFlags = 0
fs.ViewMode = -1
Dim r As WIN32RECT = New WIN32RECT()
r.Top = 20 : r.Left = 20 : r.Right = 500 : r.Bottom = 500
shellView.CreateViewWindow(Nothing, fs, sb, r, ww.Handle)
shellView.UIActivate(1)

对于普通文件夹,该代码能在窗体中显示文件夹的详细IShellView及其中的项目。但对于控制面板文件夹(示例:::{8E908FC9-BECC-40F6-915B-F4CA0E70D03D}对应的网络和共享中心),仅显示一个仅含「Name」列的空详细视图,而非预期的控制面板项自定义视图。

补充:

  • 尝试在ExplorerBrowser实例(CLSID:71f96385-ddd6-48d3-a0c1-ae06e8b055fb)中显示这些控制面板项,结果相同。

内容的提问来源于stack exchange,提问作者miss programmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:32:38