2013-07-26 68 views
0

我在VB.Net WinForms VS2010中創建一個文件工具,我想允許用戶在Windows資源管理器中選擇多個文件,並將它們拖放到我的exe文件中。這甚至有可能嗎?捕獲資源管理器文件列表上刪除exe

我的代碼在打開的窗體上工作。但需要弄清楚我是否可以將對象放在EXE上。

Private Sub frmDragDrop_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
    Dim returnValue As String() 
    returnValue = Environment.GetCommandLineArgs() 
    If returnValue.Length > 1 Then 
     MessageBox.Show(returnValue(1).ToString()) ' just shows first file from WE 
    Else 
     MessageBox.Show("Nothing") 
    End If 
End Sub 

該工程確定(不是一個完整的例子,其他設置需要在表格上):

Private Sub ListBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lstFromList.DragDrop 
    If e.Data.GetDataPresent(DataFormats.FileDrop) Then 
     Dim MyFiles() As String 
     Dim i As Integer 
     ' Assign the files to an array. 
     MyFiles = e.Data.GetData(DataFormats.FileDrop) 
     ' Loop through the array and add the files to the list. 
     For i = 0 To MyFiles.Length - 1 
      If IO.Directory.Exists(MyFiles(i)) Then 
       MyFiles(i) &= " <DIR>" 
      End If 
      lstFromList.Items.Add(MyFiles(i)) 
     Next 
     RefeshCounts() 
    End If 
End Sub 

回答

0

原來這是很容易:

Private Sub frmDragDrop_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
    Dim sARGS As String() 
    sARGS = Environment.GetCommandLineArgs() 
    If sARGS.Length > 0 Then 
     For Each s In sARGS 
      TextBox1.AppendText(s & vbCrLf) 
     Next 
    End If 
End Sub 

並不是所有的ARGS()文件,第一個或第二個是開銷。

如果有人知道如何使用上面的代碼調試,請讓我知道!即你可以以某種方式讓VS2010將相同的args()傳遞給在IDE中運行的程序?

+0

您可以:在項目設置|調試選項卡,設置「命令行參數」。 –

+0

請注意,數組中的第一項只是您的應用程序的路徑。 –

0

這裏有一個快速提示了一個順暢的調試體驗:

Sub Main() 
     Dim commandLineArgs() As String 

#If Not Debug Then 
     commandLineArgs = Environment.GetCommandLineArgs() 
#Else 
     commandLineArgs = "/fake/path/for/debugging/myApp.exe".Split() 
#End If 

     For Each argument As String In commandLineArgs 
      Console.WriteLine(argument) 
     Next 
    End Sub 
相關問題