掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
アプリのキャンバスハンドル取得方法 (ID:32418)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
えっと、こういうハッキング的な技術は汎用法はありません。 対象アプリケーションの挙動を確認してそれに合わせた挙動を見つけなくてはなりません。 Labelに何故ハンドルがないのかは自分で調べてください、 確かにVCLがよくできていてEditやButtonと同列に並べているので間違いやすいと言えば間違えやすいです。Windowsで親子関係を作れるのはWindowオブジェクトのみです。(ハンドルを持ってるやつね) 私なりにメモ帳を調べたところ、”メモ帳の場合”は以下のようにすればオブジェクトの配置が可能です。 親EditコントロールがWS_CLIPCHILDRENを持っていなかったので追加します。 くどいようですがこういうプログラミングは相手のアプリケーション次第です。どんなアプリケーションに対してどのようなアプローチをするかは私は詮索しませんが、汎用法などありません。目的のアプリにラベルが張れるかどうかはあなた以外知ることはできません。 procedure TForm1.Button1Click(Sender: TObject); var hw:HWND; i:Integer; begin ShellExecute(Handle,'open','c:\windows\Notepad.exe','','',SW_SHOWDEFAULT); sleep(1000); hw := FindWindow('Notepad',nil); hw := FindWindowEx(hw,0,'Edit',nil); i:= GetWindowLong(hw,GWL_STYLE ); SetWindowLong(hw,GWL_STYLE,i or WS_CLIPCHILDREN); Windows.SetParent(Panel1.Handle,hw); end; procedure TForm1.FormCreate(Sender: TObject); begin Button1.Caption:='set'; Panel1.ParentBackground:=False; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.