0

Send To我想实现一个 wpf 应用程序,它将从快捷方式中侦听来自桌面的事件。比如右键文件选择send to app,然后获取文件路径。

那将如何发展?

4

1 回答 1

2

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

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

在您的 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 文件夹中。当您右键单击文件并发送到您的应用程序时,文件名将是传递给您的应用程序的参数。

于 2013-08-12T20:03:59.210 回答