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