两个进程间来回切换,程序的激活状态,SetForegroudWindow与SetActiveWindow等等API都没有用,真是奇怪?

leeseon 2002-07-11 10:50:51
我在程序中开了一个进程来调另一个程序,比如说是游戏(一个非DirectX,非全屏的)。

这个子程序会在当前的这个父程序的TOP上,我想能在一定时间后,父程序会弹出一个对话框在这个游戏上说时间到了,要再玩就要做XX,然后做了XX之后将,再将焦点切换回去,回到游戏上,问题是这个游戏要在玩的时候总会不停的接收,键盘的输入,我用SetForegroudWindow与SetActiveWindow,SetWindowPos等等API都没有用,只要游戏在玩,这个对话框都不能到前台来,我将这个游戏的给EnableWindow(false),
ShowWindow(SW_HIDE)等等也没有用,真的不知是怎么回事。

请大家给一点思路与方法!
...全文
260 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
leeseon 2002-07-15
  • 打赏
  • 举报
回复
下不下来,你发过来吧

leeseon@hotmail.com
lownr 2002-07-13
  • 打赏
  • 举报
回复
我做了一个程序,可以切换到任何正在运行的应用程序,用的就是上面的方法,完全没有问题的。源代码下载地址:

http://www.nesgood.com/ceo/fts.zip
lownr 2002-07-13
  • 打赏
  • 举报
回复
SetActiveWindow(hwndApp);
SetWindowPos(hwndApp, HWND_TOP, 0, 0, 0, 0,
SWP_SHOWWINDOW | SWP_NOSIZE | SWP_NOMOVE);
SetForegroundWindow(hwndApp);
DaQiangZi 2002-07-13
  • 打赏
  • 举报
回复
SetForegroundWindow在98下可以,在2000下不可以。
leeseon 2002-07-13
  • 打赏
  • 举报
回复
to: lownr(廖宇雷)

这个在道理上是没有什么问题的,但是,就这样奇怪,它就是不行,如果你有兴趣可以自己写一个BCB的小程序测一下了,就会明白我为什么百思不得其解了!
leeseon 2002-07-12
  • 打赏
  • 举报
回复
BringWindowToTop不行,这个试过了
leeseon 2002-07-12
  • 打赏
  • 举报
回复
也不行,具体的内容请大家看一下

http://www.csdn.net/expert/topic/870/870418.xml?temp=.3403894
AloneWolf 2002-07-12
  • 打赏
  • 举报
回复
BringWindowToTop
opentuxedo 2002-07-12
  • 打赏
  • 举报
回复
SetFocus
opentuxedo 2002-07-12
  • 打赏
  • 举报
回复
SetFocus
opentuxedo 2002-07-12
  • 打赏
  • 举报
回复
SetFocus
leeseon 2002-07-12
  • 打赏
  • 举报
回复
ATL+TAB,那个在程序之间的切换功能,是怎样的在API中有没有相应的函数或能实现的方法?
sans 2002-07-11
  • 打赏
  • 举报
回复
找到另外一个进程的主线程,然后ResumeThread即可。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧