C# 以编程方式双击系统托盘图标Windows xp/7
如何以编程方式双击Windows xp/7中的系统托盘图标并打开应用程序窗口?是要打开自己应用程序的程序吗?然后,您可以向该进程发送消息以强制其打开 本文可能会帮助您在进程之间发送消息。C# 以编程方式双击系统托盘图标Windows xp/7,c#,c++,winapi,windows-7,windows-xp,C#,C++,Winapi,Windows 7,Windows Xp,如何以编程方式双击Windows xp/7中的系统托盘图标并打开应用程序窗口?是要打开自己应用程序的程序吗?然后,您可以向该进程发送消息以强制其打开 本文可能会帮助您在进程之间发送消息。 你不能。使用Spy++看起来“用户升级通知区域”无法单击按钮,您无法控制可查看的图标。您可以使用它向操作系统发送输入并双击特定位置: void MouseMove (double x, double y ) { double fx = x*65535.0f; double fy = y*655
你不能。使用Spy++看起来“用户升级通知区域”无法单击按钮,您无法控制可查看的图标。您可以使用它向操作系统发送输入并双击特定位置:
void MouseMove (double x, double y )
{
double fx = x*65535.0f;
double fy = y*65535.0f;
INPUT Input={0};
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_MOVE|MOUSEEVENTF_ABSOLUTE;
Input.mi.dx = (long)fx;
Input.mi.dy = (long)fy;
::SendInput(1,&Input,sizeof(INPUT));
}
void lClick(){
INPUT Input={0};
// left down
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
::SendInput(1,&Input,sizeof(INPUT));
::ZeroMemory(&Input,sizeof(INPUT));
// left up
Input.type = INPUT_MOUSE;
Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
::SendInput(1,&Input,sizeof(INPUT));
}
然后在图标所在的位置调用mousemove,然后单击两次。
但这意味着程序任务栏图标不会移动。。。取决于程序是什么,以及您是否了解计算机。您试图以错误的方式解决此问题。向应用程序发送一条消息,要求其打开。不要尝试双击图标。在WindowsXP和Windows7中,你不可能让它可靠地工作。