直接打开一些Windows对话框

时间:2014-08-14 14:11:05

标签: windows command-line command-prompt shortcut

从我的软件中,我希望能够直接访问几个Windows对话框。基本上是我不时使用的一些对话框的快捷方式,否则很难访问。

一个例子是“合并或删除网络位置”对话框(screenshot)。

使用Process Explorer我发现了有关该对话框的以下信息:

C:\Windows\System32\netprof.dll
C:\Windows\system32\DllHost.exe /Processid:{44C39C96-0167-478F-B68D-783294A2545D}

不幸的是我无法弄清楚该如何处理它。 对于其他对话框/位置,有这样的方法:

Trash:
%windir%\explorer.exe /n,::{645FF040-5081-101B-9F08-00AA002F954E}
Keyboard:
%systemroot%\system32\control.exe /name Microsoft.RegionalAndLanguageOptions /page /p:"keyboard"

但我无法弄清楚这样做的一般方法。

在这种情况下,编程语言并不重要。欢迎您使用任何语言或命令提示符发布解决方案。请使用上面提到的对话框作为示例,但我希望找到一个通用的解决方案。感谢。

1 个答案:

答案 0 :(得分:0)

并非所有对话框都可以按照您的建议以编程方式访问。某些对话框是自定义启动它们的应用程序,因此您将无法轻松访问它们。

我无法找到您主要感兴趣的“合并或删除网络位置”对话框的引用。

对于可以访问的那些,基本上有两种类型。

  1. 可以从常规Windows命令行调用的对话框。 {/ 3}}在评论中由kenny As mentioned捕获了许多已知的命令。

  2. 另一种方法是通过powershell启动对话框。 Powershell可以访问和启动.NET框架对话框。 serverfault question文章提供了通过powershell启动打开文件对话框的示例。

  3. 这篇文章非常值得一读,但这是神奇的片段。

    Function Get-FileName($initialDirectory)
    {  
         [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") |  Out-Null
    
     $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog
     $OpenFileDialog.initialDirectory = $initialDirectory
     $OpenFileDialog.filter = "All files (*.*)| *.*"
     $OpenFileDialog.ShowDialog() | Out-Null
     $OpenFileDialog.filename
    } #end function Get-FileName
    
    # *** Entry Point to Script ***
    
    Get-FileName -initialDirectory "c:\fso"
    

    如果您想要打开文件对话框以外的其他内容,您可以将以下行更改为您需要的对话框。 $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog