首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

判断程序运行的有关问题

2012-09-28 
判断程序运行的问题做触摸屏程序时要调出一个虚拟键盘,这个虚拟键盘的程序名是proKb.exe,想这个虚拟键盘的

判断程序运行的问题
做触摸屏程序时要调出一个虚拟键盘,这个虚拟键盘的程序名是proKb.exe,想这个虚拟键盘的程序未运行时点击一下按钮就运行,如果运行了再点击一下就关了它。
用FindWindow,当程序第一次运行时,会判断handle是有值的,即是认为是已运行了,proKb.exe其实是未运行的,但再次点击BiBtn6就正确了,往后的点击也能判断正确。为什么会出现这样的情况?

C/C++ code
void __fastcall TfmMain::BitBtn6Click(TObject *Sender){HWND handle=NULL;handle=FindWindow(NULL,"虚拟键盘");if(IsWindow(handle))        //第一次运行时会判断错误{ SendMessage(handle, WM_CLOSE, 0,0);::DestroyWindow(handle);}else{::ShellExecute(Handle,"open", "proKb.exe","", ".",SW_SHOW);SwitchToThisWindow(handle,TRUE);}}
]

[解决办法]
用计算器做例子,没有问题啊
C/C++ code
HWND handle=NULL;handle=FindWindow(NULL,"计算器");if(IsWindow(handle)) //第一次运行时会判断错误{ SendMessage(handle, WM_CLOSE, 0,0);::DestroyWindow(handle);}else{::ShellExecute(Handle,"open", "calc.exe","", ".",SW_SHOW);//SwitchToThisWindow(handle,TRUE);}
[解决办法]
FindWindow(NULL, "虚拟键盘");

你能保证同一个时刻,系统里只有一个窗体标题是“虚拟键盘”的窗口?
[解决办法]
用类名找虚拟键盘句柄也这样吗?

热点排行