2016-09-07 19 views

答えて

1

ここにあります。しかし、これがWindowsAPIであることを忘れないでください。深刻なことをする前に、読んで、もっと学びましょう。

Imports System.Runtime.InteropServices 

Public Class Form1 

    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> 
    Private Shared Function ShowWindow(ByVal hwnd As IntPtr, ByVal nCmdShow As ShowWindowCommands) As Boolean 
    End Function 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Dim hWnd As Long = Process.GetProcessesByName("iexplore").First().MainWindowHandle 

     ShowWindow(hWnd, ShowWindowCommands.ForceMinimize) 

    End Sub 

    Enum ShowWindowCommands As Integer 
     Hide = 0 
     Normal = 1 
     ShowMinimized = 2 
     Maximize = 3 
     ShowMaximized = 3 
     ShowNoActivate = 4 
     Show = 5 
     Minimize = 6 
     ShowMinNoActive = 7 
     ShowNA = 8 
     Restore = 9 
     ShowDefault = 10 
     ForceMinimize = 11 
    End Enum 
End Class 

私が説明します。

後で使用されるDllImportを使用するには、最初の行のインポートが必要です。 <DllImport ...で始まるコード行は、user32.dllから関数をインポートします。外部のアプリケーションを使用する予定であるため、Windows APIによって、Windowsが提供する一連のサービスがサポートされます。

私たちが使用している機能には、外部ウィンドウを最小化、最大化、非表示、または復元する機能があります。可能な代替案は、コードの最後にあるEnumに記載されています。 pinvoke.netは、あなたが覗き見が必要な場合、彼らが何をするかをうまく一覧表示します。

このコードでは、ボタンをクリックするだけですべての作業を行うことができますが、これは一例です。希望通りに変更する必要があります。

私たちが必要とするプロセスは、インターネットエクスプローラの場合はiexploreです。タスクマネージャーまたはコマンドプロンプトのtasklistコマンドで見つけることができます。しかし、.exeの部分を使わずに使ってください。プロセスを取得すると、リストが表示されます。もちろん、複数のインスタンスiexploreが実行されている可能性があります。私は最初のものを抽出した。ただし、iexploreが実行されていない場合は、エラーが発生しますので、注意してください。

メインウィンドウのハンドルを取得してください! What is a handle, btw?

ShowWindow(hWnd, ShowWindowCommands.ForceMinimize)を使用すると、APIを使用してInternet Explorerを最小限に抑えることができます。 (。。私は強制的に持っていたことがMinimize = 6値では動作しませんでした)

続きを読むhere on pinvokehere on MSDN

EDIT:
OMG!インターネットエクスプローラはマルチプロセスです! 最初のものを最小化する代わりに、すべてを最小化してください!
Button1_Clickに内部 変更コード:。!の迅速な対応Wickramarangaため、コードの詳細な説明については

For Each p In Process.GetProcessesByName("iexplore") 
    ' Since Internet Explorer always has its name in the title bar, 
    If p.MainWindowTitle.Contains("Internet Explorer") Then 
     Dim hWnd As Long = p.MainWindowHandle 
     ShowWindow(hWnd, ShowWindowCommands.ForceMinimize) 
    End If 
Next 
+0

ありがとうは:)しかし、それはanonymous21編集@私のIEブラウザ:( – anonymous21

+0

を最小限didntの – Wickramaranga

+0

それは感謝に動作します: ) – anonymous21

関連する問題