C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

指定したファイルフォルダを前面にする方法


(過去ログ 147 を表示中)

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■86221 / inTopicNo.1)  指定したファイルフォルダを前面にする方法
  
□投稿者/ 和ぎゃんらんど (1回)-(2017/12/28(Thu) 12:14:04)

分類:[.NET 全般] 

2017/12/28(Thu) 12:24:27 編集(投稿者)
2017/12/28(Thu) 12:24:23 編集(投稿者)
2017/12/28(Thu) 12:17:19 編集(投稿者)
<pre><pre>2017/12/28(Thu) 12:15:25 編集(投稿者)
<pre><pre>2017/12/28(Thu) 12:14:31 編集(投稿者)

<pre><pre>あるファイルパスを指定し、
そのファイルパスが入ったフォルダーがエクスプローラー上で開かれていなければ、
そのフォルダを開き、
既にそのフォルダーが開かれていなければ、
そのウインドウを前面に表示するプログラムを作成しました。

このプログラムで一応動作するのですが、
このままだと、指定したフォルダーが複数開かれていた場合、
それら全てが前面表示されてしまいます。
どれが一つだけで良いので、
            'Thread.Sleep(200)
                        'Marshal.ReleaseComObject(win)
                        'Exit Sub

というところのコメントアウトを外せば、うまくいくはずなのですが
なぜかこのコメントアウトを外すとウインドウが前面表示されません。
一体何が原因でしょうか?



    Sub Folder_Open_Check2(filepath$)

        Dim folpath As String = Get_Parent(filepath)

        If Len(folpath) = 2 Then

            folpath &= "\"

        End If


        Dim wins As New SHDocVw.ShellWindows



        For i As Integer = 0 To wins.Count - 1

            Dim win As IWebBrowser2 = CType(wins.Item(i), IWebBrowser2)

            If win Is Nothing Then Continue For

            Dim Name As String = Path.GetFileNameWithoutExtension(win.FullName.ToString)

            If Name.ToUpper() = "EXPLORER" Then

                Dim oDc2 As String = win.LocationURL

                If oDc2 <> "" Then

                    Dim u As New Uri(oDc2)
                    Dim Path2 As String = u.LocalPath + Uri.UnescapeDataString(u.Fragment)


                    If Path2 = folpath Then


                        SetForegroundWindow(CType(win.HWND, IntPtr))
            ’Thread.Sleep(200)
                        'Marshal.ReleaseComObject(win)
                        'Exit Sub

                    End If

                End If
            End If

            Marshal.ReleaseComObject(win)



        Next i




        Process.Start("EXPLORER.EXE", "/select,""" & filepath & """")


    End Sub

</pre></pre></pre></pre></pre></pre>

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -