我是C#的新手,我没有解决这个问题。这就是我想要实现的目标。 每当我将文件拖放到.exe文件上时(在图标本身上),应用程序应捕获拖动文件的文件路径。
感谢。
答案 0 :(得分:3)
如果我理解正确,您希望将文件拖放到exe的图标上,而不是应用程序本身。如果是这样,可以使用传递给应用程序的参数轻松实现。如果在创建控制台应用程序时检查原始样板代码,则它具有应用程序入口点:
static void Main(string[] args)
如果将文件拖放到应用程序的图标上,则args [0]将保留要删除的文件的名称。如果目标是将文件放到EXE文件上,那么有很多关于SO的教程。
答案 1 :(得分:1)
如果您创建以下代码,那么当您将文件拖到exe图标上时,args [0]会将其路径保存为参数: (我添加了if语句,如果你启动程序而不拖动任何东西 它不应该崩溃)
class Program
{
static void Main(string[] args)
{
if (args.Length > 0)
{
Console.WriteLine(args[0]);
}
Console.ReadLine();
}
}
答案 2 :(得分:1)
通过将默认的string[] args
添加到Main
中的Program
函数中,我能够将拖放操作添加到使用Windows窗体创建的可执行文件/快捷方式上。然后,将相同的参数添加到Form1
的构造函数中,并传递从args
收集的相同的Main
。
Program.cs
static class Program
{
[STAThread]
//add in the string[] args parameter
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//pass in the args to the form constructor
Application.Run(new Form1(args));
}
}
Form1.cs
//add in the string[] args parameter to the form constructor
public Form1(string[] args)
{
InitializeComponent();
//if there was a file dropped..
if (args.Length > 0)
{
var file = args[0];
//do something with the file now...
}
}