tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルExplorerのプロパティ画面呼び出し方法
記事No4632
投稿日: 2006/12/05(Tue) 11:44
投稿者ダンボ
ファイルやフォルダーのプロパティを表示するダイアログを作ろうと思ったのですが、
Explorerのメニューから呼ばれるO/Sの「プロパティ」画面を呼び出すことができれば
それで必要充分です。わざわざバグを作りこむのも何だし。

Explorerの呼び出し方を変えて起動できるかと思いましたがそれは用意されていないみたい。
 Explorer [/n] [/e] [(,)/root,object] [/select,object]
あるいはExplorer内部ではなく、外部タスクを起動しているかとも思いタスクマネージャで
様子を見たのですが新規に起動されたタスクも無いみたいです。

なにか方法はあるでしょうか?

[ツリー表示へ]
タイトルRe: Explorerのプロパティ画面呼び出し方法
記事No4633
投稿日: 2006/12/05(Tue) 12:20
投稿者魔界の仮面弁士
> Explorerのメニューから呼ばれるO/Sの「プロパティ」画面を呼び出すことができれば
> それで必要充分です。わざわざバグを作りこむのも何だし。

FolderItem.InvokeVerb メソッドで表示できるかと。

http://msdn2.microsoft.com/en-us/library/ms630483.aspx

[ツリー表示へ]
タイトルRe: Explorerのプロパティ画面呼び出し方法
記事No4634
投稿日: 2006/12/05(Tue) 12:35
投稿者花ちゃん
こんなのでいいのでしょうか?

   Dim objShell As Object
   objShell = CreateObject("Shell.Application")
   objShell.NameSpace("C:\VB2005Tips\").Items.Item.InvokeVerb("プロパティ(&R)")


# ファイルの方もうまく取得できるか確認している間にかぶってしまったようですね。

 ファイルの方は下記で...。
 http://homepage2.nifty.com/pasocon/shell/folder/getdetailsof.html

[ツリー表示へ]
タイトル[解決+更に]Explorerのプロパティ画面呼び出し方法
記事No4635
投稿日: 2006/12/05(Tue) 15:28
投稿者ダンボ
魔界の仮面弁士さん、花ちゃんさん、まことにありがとうございます。
下記コードで、やりたいようにできました。ファイルの場合も工夫しました。

Private Sub grdFILES_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles grdFILES.CellClick
    Dim objShell As Shell32.Shell, FLD As Shell32.Folder, FullPath As String
    FullPath = txtIn.Text & "\" & grdFILES.Item(e.ColumnIndex, e.RowIndex).Value.ToString
    objShell = CreateObject("Shell.Application")
    If grdFILES.Item(2, e.RowIndex).Value.Equals(picDIR.Image) Then
        FLD = objShell.NameSpace(FullPath)
        FLD.Items.Item.InvokeVerb("プロパティ(&R)")
    Else
        FLD = objShell.NameSpace(GetFolder(FullPath))
        FLD.Items.Item(GetFIle(FullPath)).InvokeVerb("プロパティ(&R)")
    End If

さて別問題として、これをDataGridViewのCellClickイベントに記述したのですが、
このコードではセルの左クリックに反応してしまいます。右クリックだけに限定したいのですが
どうしましようか?
・eの属性からクリックしたボタンが区別できる?
・CellClickイベントではなく他の適切なイベントがある?

[ツリー表示へ]
タイトル[解決]Explorerのプロパティ画面呼び出し方法
記事No4636
投稿日: 2006/12/05(Tue) 16:24
投稿者ダンボ
> このコードではセルの左クリックに反応してしまいます。右クリックだけに限定したいのですが
> どうしましようか?
> ・eの属性からクリックしたボタンが区別できる?
> ・CellClickイベントではなく他の適切なイベントがある?


甘えて済みませんでした。
「DataGridView 右クリック」で答えは見つかりました。CellMouseClick イベント

Private Sub grdFILES_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles grdFILES.CellMouseClick

  If e.Button <> Windows.Forms.MouseButtons.Right Then Exit Sub

[ツリー表示へ]