怎样得到窗体句柄(100分)

  • 主题发起人 主题发起人 浪翻云
  • 开始时间 开始时间

浪翻云

Unregistered / Unconfirmed
GUEST, unregistred user!
一般项目中可以用Form1.hwnd, Me.hwnd获得当前窗体的句柄,但在.net的SmartDeviceApplication项目中不能,我想用FindWindow(“”,” From1”)来获得窗体的句柄,但函数返回值总为0(调用失败)。望大家不吝赐教。
 
FindWindow(nil, PChar(应用程序名));
 
var
HWndCalculator : HWnd;
ClassName:string;
begin
// find the exist calculator window
HWndCalculator := FindWindow(nil, '扫雷');
// close the exist Calculator
SetLength(ClassName,25);
GetClassName(HWndCalculator,Pchar(ClassName),25);//文件夹的类名和程序的类名是不一样的.
showmessage(classname);
if HWndCalculator<>0 then
PostMessage(HWndCalculator, WM_CLOSE, 0, 0);
end;
 
.net没用过。这几个函数都不行吗?
GetForegroundWindow;
GetActiveWindow;
FindWindow(nil, '我是一个窗体');
 
function GetSysFocus: Integer;
var
hFgWin, FgThreadID, hFocusWin: Integer;
begin
hFgWin := GetForegroundWindow;
FgThreadID := GetWindowThreadProcessID(hFgWin, nil);
if AttachThreadInput(GetCurrentThreadID, FgThreadID, True) then
begin
hFocusWin := GetFocus;
Result := GetFocus;
AttachThreadInput(GetCurrentThreadID, FgThreadID, False);
end
else
Result := GetFocus;
end;

获得焦点所在的**的HANDLE
 
多谢各位
我试了一下yostgxf提示的GetActiveWindow成功了
以后多谢还望各位多多指教!
 
[:)]既然问题解决了,结帖发分吧
 
问题解决
 
后退
顶部