Delphiでアクティブなフォーム(別のアプリケーションからのものである可能性があります)のClassNameを取得する方法は?
Application.ActiveFormHandle
のみのアクティブなフォームを返すようApplication
です。
Delphiでアクティブなフォーム(別のアプリケーションからのものである可能性があります)のClassNameを取得する方法は?
Application.ActiveFormHandle
のみのアクティブなフォームを返すようApplication
です。
あなたが探しているウィンドウ ハンドルは、 によって返されると思います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 のバッファーを使用しました。