从发送到选项WPF获取文件路径

时间:2013-08-12 19:52:52

标签: c# wpf listener desktop sendto

我想实现一个可以监听的wpf应用程序 从Send To快捷方式来自桌面的事件。如 右键单击该文件并选择send to app,然后获取文件路径。

如何开发?

1 个答案:

答案 0 :(得分:2)

SendTo解析%APPDATA%\ Microsoft \ Windows \ SendTo文件夹中的链接,并将文件名作为参数传递给正确的可执行文件。您需要让程序接受命令参数然后处理它们。

编辑:我最初错过了WPF的提及。所以你可以像这样处理命令行args。

在App.xaml中为Startup添加一个条目,如下所示:

<Application x:Class="WpfApplication4.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             Startup="App_OnStartup"
             StartupUri="MainWindow.xaml">
  <Application.Resources />
</Application>

在App.xaml.cs中添加像这样的App_OnStartup并将args存储到一个可访问的变量中:

namespace WpfApplication4
{
  /// <summary>
  /// Interaction logic for App.xaml
  /// </summary>
  public partial class App : Application
  {

      public static string[] mArgs;

      private void App_OnStartup(object sender, StartupEventArgs e)
      {
          if (e.Args.Length > 0)
          {
              mArgs = e.Args;
          }
      }
    }
}

在你的主窗口中获取args并使用它做一些事情:

namespace WpfApplication4
{
  /// <summary>
  /// Interaction logic for MainWindow.xaml
  /// </summary>
  public partial class MainWindow : Window
  {
    public MainWindow()
    {
      InitializeComponent();

      string[] args = App.mArgs;

      //do your procedure with the args!
    }
  }
}

然后在%APPDATA%\ Microsoft \ Windows \ SendTo文件夹中放置程序的快捷方式。当您右键单击文件并SendTo您的应用程序时,文件名将是传递到您的应用程序的args。