名前 題名 ▼ Mr.XRAYさん > > サンプルのコードは,新規にブラウザを起動することを前提にしています. > > 起動中のブラウザに対応したコードを追加しました. > ただし,IE11 は起動中のウィンドウに対して操作しても TOPMOST になりません. > > [plBrowseURL_TOPMOST.zip] 1,160 KB > http://mrxray.on.coocan.jp/Delphi/zip/plBrowseURL_TOPMOST.zip > > 起動中のブラウザのハンドルの取得は,以下のコードを使用しています. > > > //----------------------------------------------------------------------------- > // 指定プロセスの起動をチェック > // 戻り値はそのプロセスのウィンドウのハンドル値 > // Toolhelp32Snapshotを使用する方法 > // > // CreateToolhelp32Snapshotの使用には,usesにTlhelp32が必要 > //----------------------------------------------------------------------------- > function TForm1.CheckRunExe(RunExeName: string): THandle; > const > MAX_PROCCOUNT = 2048; > PROCESS_QUERY_LIMITED_INFORMATION = $1000; > PROCESS_NAME_NATIVE = 1; > var > LListHandle : THandle; > LProcEntry : TProcessEntry32; > LProcessID : DWORD; > LTargetWnd : THandle; > LExePath : String; > begin > Result := 0; > //デバッグの特権を有効にする > Privilege.SetPrivilege(SE_DEBUG_NAME, True); > > //プロセスのスナップショットのハンドルを取得 > LListHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); > if LListHandle > 0 then begin > try > //最初のプロセスに関する情報をTProcessEntry32レコード型に取得 > LProcEntry.dwSize := SizeOf(TProcessEntry32); > Process32First(LListHandle, LProcEntry); > repeat > //パス名とプロセスIDを取得 > LExePath := LProcEntry.szExeFile; > > if LowerCase(LExePath) = LowerCase(RunExeName) then begin > LProcessID := LProcEntry.th32ProcessID; > LTargetWnd := LProcessID; > EnumWindows(@EnumTopWindow, LPARAM(@LTargetWnd)); > if LTargetWnd <> LProcessID then begin > Result := LTargetWnd; > Break; > end; > end; > > //次のプロセスに関する情報をTProcessEntry32レコード型に取得 > until Process32Next(LListHandle, LProcEntry) = False; > finally > CloseHandle(LListHandle); > end; > end; > end; GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link