我正在创建一个简单的 Windows cmd 程序,并且我试图确保它只运行一次(如果你双击 exe 文件,只会显示一个实例..所以在我的代码中..我添加了一个命名互斥锁(名称是一个 GUID).. 如果程序的第二个实例已启动,它会显示消息告诉您,您已经有一个实例正在运行..
我想做的是升级代码。因此,它不会向您显示消息,而是会自动找到已经运行的进程(窗口),将焦点切换到它,然后自行关闭。
现在我正在尝试使用
FindWindow(NULL,window_name);
SetForegroundWindow(window);
但是,当我传递窗口名称(来自任务管理器)时,它找不到它!错误说:未使用:S,这很奇怪,我什至尝试使用任务管理器名称来代替..它仍然找不到它!
所以有人可以向我指出,我哪里出错了?:) 另外,如果你能想到任何其他方法来完成这样的任务,请告诉我..
注意:工作中的一些朋友告诉我使用 enumwindows,这是一个不错的选择(我目前正在阅读它)... 非常感谢!