hwnd和hinstance的相互转化???(50分)

  • 主题发起人 主题发起人 rou
  • 开始时间 开始时间
R

rou

Unregistered / Unconfirmed
GUEST, unregistred user!
//得到hinstace;
myInstance:= ShellExecute(Handle,'open','notepad.exe', nil, '', SW_NORMAL);
myHWnd:=windows.FindWindow(nil, 'notepad');
但是myhwnd没得到,为0.why??????????????
//下面的setfocus要用myhwnd
windows.setfocus(myhwnd)来使得notepad得到键盘输入焦点
然后setkeys('test',true);

怎么才能得到myhwnd???或是有更好的方法向notepad setkeys??
 
窗口的标题不是NotePad
应该是Notepad untitled
 
句柄肯定要得到的。hInstance 似乎不用,除非你要用它里面的资源或
其他东西。最好找 FindWindow('TNotepad', nil);
 
CreateProcess用过了吗
 
createprocess没法得到句柄hwnd呀
 
不知道这个问题最后解决没有?
我也遇到这个问题了,好象用
FindWindow('notepad', nil);
可以找到,但是必须调用之前早就启动'notepad'
如果是:
ShellExecute(handle,Nil,'notepad.exe',Nil,Nil,sw_shownormal);
hwd:=FindWindow('notepad',nil);
而系统里有没有第二份notepad,好象hwd就会返回0。
不知为什么?
 
直接使用Windows API函数GetWindowLong。
GetWindowLong(hwnd,GWL_HINSTANCE);
 
有两个
notepad 写字板 classname = 忘了,不是 Notepad 用 spy++ 看一下。
writer 记事本 classname = Notepad

也许那两个反了。
 
多人接受答案了。
 
后退
顶部