掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ShellExecute()後のフォーカスを取り戻すには (ID:45248)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>環境はWindows7 Delphi6Personalです。 Windows 7 で JPEG 画像を表示するんですよね. Windows フォトビューワ が起動していると思います. ShellExecute の引数を以下のようにして,Windows フォトビューワを指定して起動してみてください. var ViewerdllPath : String; ImagePath : String; begin ViewerdllPath := 'C:\Windows\system32\shimgvw.dll, ImageView_Fullscreen '; ImagePath := Trim(Edit1.Text); ShellExecute(Handle, 'OPEN', 'Rundll32.exe', PChar(ViewerdllPath + ImagePath), nil, SW_SHOWNORMAL); Sleep(300); SetForegroundWindow(Handle); 動作確認は Windows 7 U64(SP1) + Delphi 7 Pro です. Delphi 6 は現在使えない状態なので. (質問のレス用に,正常に起動できないテストをして,そのままなので) 確実にやるには,ShellExecuteEx か CreateProcess で起動して, Windows フォトビューワが完全に起動完了したのを確認してから SetForegroundWindow(Handle); を実行するようにします. しかし,Windows 7 で Delphi 6 は厳しいですね. >私ごときが理解できるレベルではないでした。 理解できるできないに関わらず,やってみることだと思いますよ. でなければ永遠に理解できませんからね. もし,上のコードが理解できないからやらない,というのであれば,無視してください. 他の方にも参考にはなると思いますのでレスしておきます.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.