tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルDrag&DropでDrag元のショートカットのリンク先取得
記事No6841
投稿日: 2008/01/17(Thu) 15:06
投稿者佐藤
いつもお世話になっております。
OSはWindowsVistaでVB2005で開発しております。

VB2005で開発したフォーム上にボタンを配置しました。
このボタンにデスクトップにあるショートカットをDrag&Dropで
ショートカットのリンク先を割り当てようと思っております。

ここで2つ問題なのですが、どうしてもボタンがDragDropイベントを発生しません。
また、Drag元ショートカットのリンク先を取得するにはどのようにしたら
良いのでしょうか。

お忙しい中とは存じますがご教授の程、宜しくお願い致します。

[ツリー表示へ]
タイトルRe: Drag&DropでDrag元のショートカットのリンク先取得
記事No6843
投稿日: 2008/01/17(Thu) 15:35
投稿者Hongliang
> どうしてもボタンがDragDropイベントを発生しません。
AllowDrop プロパティの設定及び DragEnter または DragOver イベントの処理はできていますか?

> また、Drag元ショートカットのリンク先を取得するにはどのようにしたら良いのでしょうか。
WshShortcut なんか使うことが多いようですね。

[ツリー表示へ]
タイトルRe^2: Drag&DropでDrag元のショートカットのリンク先取得
記事No6844
投稿日: 2008/01/17(Thu) 16:12
投稿者佐藤
Hongliangさん 回答有難う御座います。
AllowDrop プロパティの設定はしています。

DragEnterのイベントではドラッグ元のリンク先とドラッグ元のショートカット名を
欲しいのですが、記述がどうしてもわかりません。

また、DragDropのイベントでWshShortcutをどのように使ったら良いのでしょうか。

今回、DragDropをはじめて使うので分からない事だらけで、Googleでも色々検索したのですが・・・

[ツリー表示へ]
タイトルRe^3: Drag&DropでDrag元のショートカットのリンク先取得
記事No6848
投稿日: 2008/01/18(Fri) 08:32
投稿者y4yama
横レスで失礼します
> AllowDrop プロパティの設定はしています。

> また、DragDropのイベントでWshShortcutをどのように使ったら良いのでしょうか。
不要?のようです
> 今回、DragDropをはじめて使うので分からない事だらけで、Googleでも色々検索したのですが・・・
F1のHelpでもTextについては出てきますよね

Testだけですが、下記にて XP、VB2005ExpressEdition では動きました
Vistaでは、どうでしょうか・・

    Private Sub Button6_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Button6.DragDrop
        If e.Data.GetDataPresent(DataFormats.FileDrop) Then
            'ドロップされたデータを取得
            Dim itemObj As Object = e.Data.GetData(DataFormats.FileDrop)
            Console.WriteLine(" DragDroped:" & itemObj(0).ToString)
        End If
    End Sub

    Private Sub Button6_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Button6.DragEnter
        Console.WriteLine("fire Enter")  '<<--Vistaで、これは出るでしょうか?
        Console.WriteLine("e.AllowedEffect=" & e.AllowedEffect)
        If e.Data.GetDataPresent(DataFormats.FileDrop) Then

            If (e.AllowedEffect And DragDropEffects.Copy) = _
               DragDropEffects.Copy Then
                e.Effect = DragDropEffects.Copy
            Else
                e.Effect = DragDropEffects.None
            End If
        End If
    End Sub
電卓のアイコンをCtrlキーを押しながらButton6にDragします。ショートカット名
DragDroped:C:\Documents and Settings\xxxxxx1yama\デスクトップ\電卓.lnk
と表示しました

[ツリー表示へ]
タイトルRe: Drag&DropでDrag元のショートカットのリンク先取得
記事No6849
投稿日: 2008/01/18(Fri) 09:01
投稿者魔界の仮面弁士
> VB2005で開発したフォーム上にボタンを配置しました。
> このボタンにデスクトップにあるショートカットをDrag&Dropで
> ショートカットのリンク先を割り当てようと思っております。

リンク先ではなく、ショートカットそのものを割り当てるわけには行かないのでしょうか?

最近のOffice 等のように、「アドバタイズ インストール」されたアプリケーションだと、
リンク先が無いショートカット(プロパティのリンク先が淡色表示されている)ものも
ありますよね。

[ツリー表示へ]
タイトルRe^2: Drag&DropでDrag元のショートカットのリンク先取得
記事No6858
投稿日: 2008/01/18(Fri) 14:52
投稿者佐藤
Hongliang様 y4yama様 魔界の仮面弁士様
ご親切な回答、誠に有難う御座います。感激です。
ソースまで提示頂き、本当に助かります。早速組み込んでみます。

魔界の仮面弁士様にご提示いただいた様にショートカットそのものの
PATHの取得についても試みてみます。

[ツリー表示へ]
タイトルRe^3: Drag&DropでDrag元のショートカットのリンク先取得
記事No6859
投稿日: 2008/01/18(Fri) 15:07
投稿者佐藤
Hongliang様 y4yama様 魔界の仮面弁士様
ご親切な回答、誠に有難う御座います。感激です。
ソースまで提示頂き、本当に助かります。早速組み込んでみました。

ExcelのショートカットをボタンへDragDropすると
\デスクトップのパス\Microsoft Office Excel 2003.lnk というように、
ショートカットのパスが表示されます。

しかし、\Excelがインストールされているパス\Excel.exe のように、
実際にショートカットがリンクしているEXEのパスを取得したいのですが、

ソースのどの部分がその指定になっているのでしょうか?

DragEnterやDragDropで検索したのですが、その部分がどうしても分からず、
また投稿させて頂きました。

重ね重ねお手数をお掛けいたします。

[ツリー表示へ]