这已经被问过了,但是用我见过的方法,我无法得到我想要发生的事情。目前,我有一个Windows窗体,如果我运行.EXE(并调出窗体本身),我可以从Outlook放入电子邮件没有问题。但是,我正在寻找的是当用户直接从Outlook将消息放到.EXE文件上的图标时具有此功能。如果我将文件保存到本地并将其放到图标上,但可以直接从Outlook获取,则可以做到这一点。我需要在应用上设置一个属性来完成这项工作。我使用这段代码来将消息放到窗体窗口上来工作。从Outlook窗口拖放到.Net中的应用程序.EXE文件(或图标)。
http://www.codeproject.com/Articles/28209/Outlook-Drag-and-Drop-in-C
这是我写的滴在图标的代码。
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var form = new Form1();
if (args.Length > 0)
{
form.ProcessCommandLine(args[0]);
}
Application.Run(form);
}
}
public void ProcessCommandLine(string commandLine)
{
lstFiles.Items.Clear();
var fileAttributes = File.GetAttributes(commandLine);
if (fileAttributes.HasFlag(FileAttributes.Directory))
{
ProcessDirectory(commandLine);
}
else
{
ProcessFile(commandLine);
}
}
任何帮助将不胜感激,谢谢。
拖放到一个EXE将完全由资源管理器控制(或任何它正在显示您的EXE)。它与你自己的代码无关。 – adelphus 2012-03-05 17:26:47
@adelphus好的,有没有需要改变的设置?就像我说的,对于“文件”它工作得很好,但是在图标外面,没有骰子。感谢您的信息 – 2012-03-05 17:30:47
你误会了。资源管理器将被编码以处理文件 - 没有设置可以更改,因为内部资源管理器不会知道如何处理Outlook项目。对你来说,该项目可能看起来像一个文件,但对于资源管理器来说,它完全不同。我不相信你的问题有一个解决方案。 – adelphus 2012-03-05 17:37:48