クリップボードのテキストでYahoo検索


VB Tips And Sample(HOME)(VB.NET Sample インデックス)


クリップボードのテキストでYahoo検索を行い検索結果をブラウザで表示させてみる。


ついでにタスクトレイに入れて、アイコンのダブルクリックでIE起動(検索)、
タスクトレイのアイコン→右クリック→メニュー表示→終了が出来るようにしてみる
参考にさせていただいたサイト
http://www.atmarkit.co.jp/fdotnet/dotnettips/392notifyicon/notifyicon.html
http://hanatyan.sakura.ne.jp/index.html
などなど
使用した主なコントロール ContextMenuStrip NotifyIcon



Public Class Form1

    '常に最前面に持ってくるときに使用
    Declare Function SetWindowPos Lib "USER32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal uFlags As Long) As Long

    'タスクトレイにアイコンを入れて・・・・ 参考URL
    'http://www.atmarkit.co.jp/fdotnet/dotnettips/392notifyicon/notifyicon.html
    'ContextMenuStrip コントロールを使用
    'NotifyIcon コントロールを使用

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


        Dim SearchTxt As String = "" '検索キーワード

        Dim data As IDataObject = Clipboard.GetDataObject()

        'クリップボードからテキストを取得する
        If data.GetDataPresent(DataFormats.Text) Then
            SearchTxt = CType(data.GetData(DataFormats.Text), String)
        End If

        'URLエンコードする
        'プロジェクト→参照の追加→.NET→System.Web を参照設定 
        SearchTxt = System.Web.HttpUtility.UrlEncode(Trim(SearchTxt))

        'IEを起動する
        'プロジェクト→参照の追加→COM→Microsoft Internet controls を参照設定 
        Dim ie As New SHDocVw.InternetExplorer
        ie.Visible = True

        If SearchTxt <> "" Then
            ie.Navigate("http://search.yahoo.co.jp/search?p=" & SearchTxt)
        Else
            ie.Navigate("http://search.yahoo.co.jp/")
        End If


        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(ie)
        ie = Nothing

    End Sub

    Private Sub 終了ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 終了ToolStripMenuItem.Click

        NotifyIcon1.Visible = False ' アイコンをトレイから取り除く
        Me.Dispose() '残骸が残るので消す
        Application.Exit() ' アプリケーションの終了
    End Sub


    Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
        e.Cancel = True ' 終了処理のキャンセル
        Me.Visible = False ' フォームの非表示
    End Sub

    
    Private Sub NotifyIcon1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NotifyIcon1.DoubleClick
        Dim SearchTxt As String = "" '検索キーワード

        Dim data As IDataObject = Clipboard.GetDataObject()

        'クリップボードからテキストを取得する
        If data.GetDataPresent(DataFormats.Text) Then
            SearchTxt = CType(data.GetData(DataFormats.Text), String)
        End If

        'URLエンコードする
        'プロジェクト→参照の追加→.NET→System.Web を参照設定 
        SearchTxt = System.Web.HttpUtility.UrlEncode(Trim(SearchTxt))

        'IEを起動する
        'プロジェクト→参照の追加→COM→Microsoft Internet controls を参照設定 
        Dim ie As New SHDocVw.InternetExplorer
        ie.Visible = True

        If SearchTxt <> "" Then
            ie.Navigate("http://search.yahoo.co.jp/search?p=" & SearchTxt)
        Else
            ie.Navigate("http://search.yahoo.co.jp/")
        End If


        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(ie)
        ie = Nothing
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '最小化して見えなくする
        Me.WindowState = FormWindowState.Minimized
    End Sub

    Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
        '最小化して見えなくする
        Me.Visible = False

    End Sub
End Class


このプログラムのインストーラをつくり、そのインストーラでOS起動時、常時起動するようには?
が次に必要になると思います。
それには既にDOBONさんが紹介されていますので以下を参考にしてみてください
OS起動時にプログラムを自動的に実行する



VB Tips And Sample(HOME)(VB.NET Sample インデックス)