如何从C#检查VB6应用程序是否正在运行(且未因系统错误而挂起)?
我需要从C#service监视用vb6编写的遗留应用程序,并在它挂起时强制退出/重新启动它 如何从C#检查VB6应用程序是否正在运行(未因系统错误而挂起或完全崩溃) 谢谢 您可以轻松地使用该类型监视崩溃 然而,很难判断应用程序是“暂时忙”还是“挂起”,因此我们需要做一些假设如何从C#检查VB6应用程序是否正在运行(且未因系统错误而挂起)?,c#,.net,winapi,vb6,C#,.net,Winapi,Vb6,我需要从C#service监视用vb6编写的遗留应用程序,并在它挂起时强制退出/重新启动它 如何从C#检查VB6应用程序是否正在运行(未因系统错误而挂起或完全崩溃) 谢谢 您可以轻松地使用该类型监视崩溃 然而,很难判断应用程序是“暂时忙”还是“挂起”,因此我们需要做一些假设 假设这是一个具有活动消息泵的windows窗体应用程序(在VB6中) 我们还可以说,10秒的超时时间是“挂起”应用程序的良好指示 任何依赖消息泵完成的功能都将是挂起应用程序的良好指示器,因为它超过了超时时间 您可以使用任
- 假设这是一个具有活动消息泵的windows窗体应用程序(在VB6中)
- 我们还可以说,10秒的超时时间是“挂起”应用程序的良好指示
SendMessage
命令基本上与其他应用程序的消息泵“连接”
大概是这样的:
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
...
NativeMethods.SendMessage(hWnd, NativeMethods.WM_GETTEXTLENGTH, IntPtr.Zero, IntPtr.Zero)