tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Processによるアプリの起動について
投稿日: 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。