C# 如何将单击事件附加到.exe文件控件?
我有一个.exe windows桌面应用程序(WinForm),但我无权访问该.exe文件的代码。我想处理已在应用程序中呈现的.exe控件的双击事件 由于我没有这方面的代码,所以我开始采用以下方法来实现这一点C# 如何将单击事件附加到.exe文件控件?,c#,events,process,C#,Events,Process,我有一个.exe windows桌面应用程序(WinForm),但我无权访问该.exe文件的代码。我想处理已在应用程序中呈现的.exe控件的双击事件 由于我没有这方面的代码,所以我开始采用以下方法来实现这一点 我有一个C#程序,它在后台运行并捕获所有双击事件(使用钩子概念) 当桌面上生成任何双击事件时,我会检查my.exe是否正在运行 Process.GetProcesByName(“我的exe名称”) 因此,如果我的.exe正在运行,那么我将执行我的业务逻辑 问题:-当我的.exe正在运行但不
如果方法本身不正确,请向我建议其他方法。是的,最后这是按预期工作的代码
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);
private string GetActiveWindowTitle()
{
const int nChars = 256;
StringBuilder Buff = new StringBuilder(nChars);
IntPtr handle = GetForegroundWindow();
if (GetWindowText(handle, Buff, nChars) > 0)
{
return Buff.ToString();
}
return null;
}
然后在我的全球钩事件中
private void HookManager_MouseDoubleClick(object sender, MouseEventArgs e)
{
string activeWindow = this.GetActiveWindowTitle();
if (activeWindow.ToLower().Contains("my .exe name") && e.X >= 64 && e.X <= 86 && e.Y >= 32 && e.Y <= 54)
CallChildProcess();
}
private void HookManager\u MouseDoubleClick(对象发送方,MouseEventArgs e)
{
字符串activeWindow=this.GetActiveWindowTitle();
如果(activeWindow.ToLower().Contains(“my.exe name”)&&e.X>=64&&e.X=32&&e.Y可能存在不重复的重复,因为直到全局挂接为止,其工作正常。检查my.exe是否在前台时出现问题。