如何解决COM对象与现有的“另存为”和“打开”窗口进行交互
是否可以使用COM对象与现有的“另存为”和“打开”窗口进行交互?
Shell.Application
仅列出现有的“文件资源管理器”窗口,而不列出在其他应用程序(如Notepad ++)中打开的现有“打开”和“另存为”窗口,您可以通过运行以下命令来看到这些窗口:
$Shell = New-Object -ComObject Shell.Application
ForEach ($Item in $Shell.windows()) {
Write-Host $Item.LocationName
}
我想在AutoHotkey中使用它,而这个问题不在https://autohotkey.com/board/topic/102127-navigating-explorer-directories/#entry634365的后面
解决方法
您可以尝试使用net类:
[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null
$OpenFileDialog = New-Object System.Windows.Forms.SaveFileDialog
$OpenFileDialog.initialDirectory = $initialDirectory
$OpenFileDialog.filter = "All files (*.*)| *.*"
$OpenFileDialog.ShowDialog() | Out-Null
$OpenFileDialog.filename
,
您可以使用BrowseForFolder()
,可以使用多种选项。这是几个例子。
$shell = New-Object -ComObject Shell.Application
$shell.browseforfolder(0,"Pick a folder",20)
$shell.browseforfolder(0,"Your custom message",20,17)
您甚至可以使其显示文件
$shell.browseforfolder(0,16384,17)
尽管它仅用于选择文件夹,所以要选择名称。它也可以是一个衬垫。以下默认设置为控制面板
(New-Object -ComObject Shell.Application).browseforfolder(0,"Do something",16,3)
我不确定您打算直接从资源管理器中保存什么。看来这将是实际应用程序的功能,例如您提到的记事本++
以下是一些有用的链接
http://www.lee-mac.com/directorydialog.html
您可能还想看看ShellExecute
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。