【问题标题】:close an open folder programmatically in vb.net在 vb.net 中以编程方式关闭打开的文件夹
【发布时间】:2014-08-15 01:58:18
【问题描述】:

我已搜索但找不到可以关闭 vb.net 中的文件夹的功能。您可以通过查找其句柄/windows-title/id 来终止正在运行的应用程序,然后发出 process.kill() 命令,但同样不适用于文件夹。例如,假设:

C:\下载\视频\

在我的计算机上打开,我想以编程方式关闭它。我该怎么做?

【问题讨论】:

  • 如果您的 c 盘中有自定义文件夹,则链接 c:downloads/videos 很好,否则它将是 C:\Users\myusername\Downloads\videos
  • 我知道。只是随机想出了问题的示例文件夹。
  • 刚刚意识到我用错了斜线!编辑我的问题以纠正我的错误!哈哈。

标签: vb.net


【解决方案1】:

在你的c盘名称中创建一个文件夹Test

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim myfolder As String = "C:\Test"
    Dim OpenFolder As Object = CreateObject("shell.application")
    For Each item In OpenFolder.Windows
        'ComboBox1.Items.Add(item.document.folder.self.Path)
        If item.document.folder.self.Path = myfolder Then
            item.Quit()
        End If
    Next
End Sub

【讨论】:

  • 谢谢先生!这正是我想要的!
  • MSDN 说 CreateObject 创建并返回对 COM 对象的引用。这是否意味着 COM 对象已经存在并且正在运行,还是该函数创建了一个新实例或一个新对象作为我们使用的副本?
  • CreateObject 启动一个类,然后您可以使用该类的选项。比如 run , quit 等
【解决方案2】:

我看到了您的困境:打开的文件夹只是explorer.exe 进程的一部分。终止该过程会产生不良的副作用。要解决这个问题,您必须向该进程发送正确的命令,而不是直接杀死它。

我希望实现这一点的一个地方是SendKeys 类。您也许可以聚焦窗口并发送 Alt-F4 键来关闭该窗口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    相关资源
    最近更新 更多