4

Delphiでアクティブなフォーム(別のアプリケーションからのものである可能性があります)のClassNameを取得する方法は?

Application.ActiveFormHandleのみのアクティブなフォームを返すようApplicationです。

4

1 に答える 1

7

あなたが探しているウィンドウ ハンドルは、 によって返されると思いますGetForegroundWindow

クラス名を取得するには、そのウィンドウ ハンドルを Windows API 関数に渡しますGetClassName。その API 関数の Delphi ラッパーを次に示します。

function GetWindowClassName(Window: HWND): string;
const
  MaxClassNameLength = 257;//256 plus null terminator
var
  Buffer: array [0..MaxClassNameLength-1] of Char;
  len: Integer;
begin
  len := GetClassName(Window, Buffer, Length(Buffer));
  if len=0 then
    RaiseLastOSError;
  SetString(Result, Buffer, len);
end;

ウィンドウ クラス名は 256 より長くすることはできないため、長さ 256 のバッファーを使用しました。

于 2012-12-25T10:40:37.177 に答える