タイトル | : Processによるアプリの起動について |
記事No | : 11204 |
投稿日 | : 2014/01/23(Thu) 19:18 |
投稿者 | : しん |
ファイルの拡張子に紐ずくアプリケーションを起動させたく悪戦苦闘しています さらに起動したアプリは他のウィンドウより最前面に固定表示させたいと思っています
ネットでは NOTEPAD.EXE を起動するサンプルがありこれを試してみると正常動作するのですが EXCEL や WORD 等ほかのアプリファイルを起動するとエラーが発生したりしてうまくいきません ですが拡張子を判断して下記のコーディングで何とか思い通りの動作をするようになりました
ところが PDFファイルの場合起動するのですがウィンドウの最前面に固定できなくて 他のウィンドウをクリックしたりすると、他のウィンドウの下に隠れてしまったりします
どのようにしたらPDFファイルを最前面に固定させる事ができますでしょうか または拡張子ごとにロジックを書かなくてもいいようなコーディングはないでしょうか
===================================================================== Dim strFName As String = "" Dim strExt As String = ""
strFName = XXXXXX.XXX 'ファイルパスから拡張子を取得します strExt = System.IO.Path.GetExtension(strFName)
If strFName.Trim <> "" Then Try Dim p As New Process p = System.Diagnostics.Process.Start(strFName) Select Case StrConv(strExt, VbStrConv.Uppercase) Case ".TXT", ".XLS", ".XLSX" p.WaitForInputIdle() SetWindowPos(p.MainWindowHandle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE) Case ".DOC" p.WaitForExit() Case Else SetWindowPos(p.MainWindowHandle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE) End Select Catch Return End Try End If
==================== 環境 VB2010
|