为什么不能激活

wangli1000000 2014-02-10 12:34:56
#include <windows.h>


int main(void)

{
char str1[]="E:\\飞机\\帮助.exe";
ShellExecute(NULL,"open",str1,NULL,NULL,SW_HIDE);
Sleep(100);

HWND hOut=FindWindow(NULL,str1);
SetActiveWindow(hOut);
ShowWindow(hOut,SW_SHOW);
//if(hOut!=0)PostMessage(hOut,WM_CLOSE,0,0);
return 0;
}


如上代码: 隐藏调用外部程序 "E:\\飞机\\帮助.exe",能关闭,却不能激活。
各位,帮帮忙,谢了。
...全文
134 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-02-10
  • 打赏
  • 举报
回复
请检查每个函数的返回值。
MARIOV 2014-02-10
  • 打赏
  • 举报
回复
路径名对么,可以改成英文的或者换个位置试试
xiaohuh421 2014-02-10
  • 打赏
  • 举报
回复
FindWindow(NULL,str1); 你确定这里查找到了吗? 新开的窗口的名字, 你确定是路径名吗?
wangli1000000 2014-02-10
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
请检查每个函数的返回值。
#include <windows.h> int main(void) { char str1[]="E:\\飞机\\帮助.exe"; ShellExecute(NULL,"open",str1,NULL,NULL,SW_HIDE); Sleep(100); HWND hOut=FindWindow(NULL,str1); printf("%d",hOut); int h; h=ShowWindow(hOut,SW_SHOWNORMAL); printf("\n%d",h); HWND hOut1; hOut1=SetActiveWindow(hOut); printf("\n%d",hOut1); SetForegroundWindow(hOut); getch(); if(hOut!=0)PostMessage(hOut,WM_CLOSE,0,0); return 0; } SetActiveWindow(hOut); 函数返回为0,说明没有激活。 现在问题已经搞定,用 SetForegroundWindow(HWND hOut) 函数。
wangli1000000 2014-02-10
  • 打赏
  • 举报
回复
引用 2 楼 xiaohuh421 的回复:
FindWindow(NULL,str1); 你确定这里查找到了吗? 新开的窗口的名字, 你确定是路径名吗?
能显示 关闭,说明已经找到了。 问题已经搞定,用 SetForegroundWindow(HWND hOut) 函数。
wangli1000000 2014-02-10
  • 打赏
  • 举报
回复
引用 1 楼 derekrose 的回复:
能关闭是什么意思
就是能执行 PostMessage(hOut,WM_CLOSE,0,0);
buyong 2014-02-10
  • 打赏
  • 举报
回复
SW_SHOWNORMAL
yiyefangzhou24 2014-02-10
  • 打赏
  • 举报
回复
ShellExecute(NULL,"open",str1,NULL,NULL,SW_SHOWNORMAL);不就完了
derekrose 2014-02-10
  • 打赏
  • 举报
回复
能关闭是什么意思

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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