【问题标题】:VB6, check if application is running on the networkVB6,检查应用程序是否在网络上运行
【发布时间】:2020-12-22 16:30:25
【问题描述】:

我有一个 VB6 应用程序,它应该能够检查相同(或某个其他)应用程序是否正在网络中的其他电脑上运行。这样做的目的是确保应用程序没有在网络中的任何 PC 上运行,以便进行数据库压缩。 如果在网络中的某个地方检测到应用程序,我可以用我的 vb6 应用程序停止它吗? ?

知道如何使用 vb6 实现这一点吗?

提前致谢, 德克

【问题讨论】:

  • 所以这两个实例会检测到并试图杀死对方?
  • 数据库类型是什么?安全问题使这成为一个非常复杂的解决方案。您可能想看看是否可以将您的数据库置于Single Connection 状态。
  • 假设您检查没有其他应用程序正在运行并决定压缩数据库。检查后但开始压缩之前的毫秒数,会启动另一个应用程序。会发生什么?
  • 我想说的是,所有这些容易出现竞争条件的检查的常见解决方案是“只做”并处理/忽略错误。您不能压缩由其他用户打开的数据库。所以就试试吧,如果你成功了,你就是最后一个。

标签: vb6


【解决方案1】:
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")

For Each objItem in colItems
    msgbox objItem.ProcessID & " " & objItem.CommandLine
    If objItem.name = "Calculator.exe" then objItem.terminate
Next

上面\\.\ 中的点是计算机名。 . 表示本地计算机,但您可以在其中输入另一台计算机的名称。要查看可用的属性/方法,请在命令提示符中键入

wmic process get /?

 wmic process call /?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 2021-11-15
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    相关资源
    最近更新 更多