掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ShellExecute()後のフォーカスを取り戻すには (ID:45243)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
簡単そうでなかなかうまくいかないものでした・・・ 一応以下でできましたが・・・環境は同じです procedure TForm1.MsgHandler(var Msg: TMsg; var Handled: Boolean); procedure SetForceForegroundWindow(hTarget: HWND); var dwTargetID: DWORD; dwActiveID: DWORD; begin dwTargetID := GetWindowThreadProcessId(hTarget, nil); dwActiveID := GetWindowThreadProcessId(GetForegroundWindow, nil); SetForegroundWindow(hTarget); AttachThreadInput(dwTargetID, dwActiveID, True); BringWindowToTop(hTarget); AttachThreadInput(dwTargetID, dwActiveID, False); end; begin if (GetAsyncKeyState(Ord('V')) and $8000) <> 0 then begin ShellExecute(Handle, 'OPEN', PChar(trim(Edit1.Text)+#0),nil, nil, SW_SHOWNORMAL); Sleep(300); SetForceForegroundWindow(Application.Handle); Application.ProcessMessages; SetForegroundWindow(Form1.Handle); end; if (GetAsyncKeyState(Ord('Z')) and $8000) <>0 then begin Label1.Caption:=Edit1.Text; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.