【问题标题】:Detecting Process Minimised State in .NET (VB/C#) on Windows 10在 Windows 10 上检测 .NET (VB/C#) 中的进程最小化状态
【发布时间】:2018-06-14 19:44:29
【问题描述】:

我已经为此搜索了几天,但似乎无法找到任何地方。 现在出现了一个问题,我们已将一些工程师移至 Windows10。我们的一个应用程序允许为选定的服务器启动 RDP 窗口。现在,当最小化 RDP 窗口时,WinForms 中似乎没有引发任何事件,这导致表单被隐藏且从未隐藏的问题。

我已经为最初的问题制定了一个解决方案,但这已经让位于一个新的问题。

我需要确定 RDP 窗口是否处于最小化状态,以便我可以在应用程序的计时器滴答声中对此进行标记。

我已尝试使用所选进程的 MainWindowHandle 并尝试实现 IsIconic,但这似乎不再适用于 Windows10 进程。

在我拔头发时,任何帮助将不胜感激。

下面是我正在使用代码的方向,我完全关闭了吗?

    Private Sub CheckMinimisedTimer_Tick(sender As Object, e As EventArgs) Handles CheckMinimisedTimer.Tick
    Dim p As Process = Process.GetProcesses().Where(Function(x) x.MainWindowTitle = $"{Me.Text} RDP CLIENT").FirstOrDefault()
    If p IsNot Nothing Then
        Dim i As Boolean = p.MainWindowHandle
        If Not i Then
            Me.WindowState = FormWindowState.Minimized
        End If
    End If
End Sub

【问题讨论】:

  • 这是关于实际的 RDP 窗口还是您的窗口 inside RDP 屏幕?
  • 我相信该应用程序是作为“RemoteApp”启动的,对吧?
  • 所以应用程序窗口似乎始终保持控制,这很好。但是,如果您最大化 RDP 窗口,它会在顶部使用它自己的控制栏,从中最小化似乎会使其保持“最大化”状态,但只是处于隐藏状态并仍在任务栏上。 @bommelding 目前只是 RDP 应用程序,与我的应用程序交互时很好,我只需要知道如何检测它的窗口状态
  • @NineBerry 它在启动时似乎是一个标准客户端,其进程位于 WinForms 应用进程树下

标签: c# .net vb.net rdp


【解决方案1】:

通过更多的挖掘和朋友的帮助找到了解决方案,似乎在 IsIconic 函数上编组 Bool 就可以了。

    <DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=True)>
Public Shared Function IsIconic(ByVal hWnd As IntPtr) As <MarshalAs(UnmanagedType.Bool)> Boolean
End Function

Private Sub CheckMinimisedTimer_Tick(sender As Object, e As EventArgs) Handles CheckMinimisedTimer.Tick
    Dim p As Process = Process.GetProcesses().Where(Function(x) x.MainWindowTitle = $"{Me.Text} RDP CLIENT").FirstOrDefault()
    If p IsNot Nothing Then
        Dim i As IntPtr = p.MainWindowHandle
        If IsIconic(i) Then
            Me.WindowState = FormWindowState.Minimized
        End If
    End If
End Sub

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2012-05-06
    • 2015-08-27
    • 1970-01-01
    相关资源
    最近更新 更多