c# - 从上下文菜单 (C#) 向 Windows 返回一个字符串

标签 c#

我常做的事情是按当前日期/时间命名文件。例如,我将命名为 12-31-2016-08-46-01.jpg

这太棒了。它运作良好。但是每次都输入它很烦人,所以我认为只编写一个将输出作为字符串返回的小程序很有用。这很容易。

public class Program {
   public static string Main() {
      var strFilename = new DateTimeFilename();
      return strFilename.Current();
   }
public class DateTimeFilename {

   public string Current () {
      return // ... logic ... //
   }
}

然后我将此程序添加为 Windows 注册表中的上下文菜单选项。

除非那行不通。显然,我无法从实际程序返回 string

那么有没有办法将 string 从程序中取出并放入当时我的光标试图输入的任何内容?

最佳答案

我建议您在 Windows 文件资源管理器中工作并添加一个 Send To 选项来执行此操作并将当前选择的文件名传递到剪贴板。

以下采用选定的文件名并在名称之后但在扩展名之前添加自定义日期,例如 TheFile.20211123.txt:

static void Main(string[] args)
{
    var name = $"{Path.GetFileNameWithoutExtension(args[0])}.{DateTime.Now.ToString("yyyyMMdd")}{Path.GetExtension(args[0])}";
    // MessageBox.Show(name);
    Clipboard.SetText(name);
}
  • 构建程序并为构建的 exe 创建一个文件资源管理器快捷方式。然后将快捷方式放置到此文件夹:

C:\Users\{用户名}\AppData\Roaming\Microsoft\Windows\SendTo

  • 然后在文件资源管理器中右键单击,选择发送到并选择您为其指定的快捷方式名称。

  • 然后将新名称粘贴到您需要的位置,因为它位于您的剪贴板中。

关于c# - 从上下文菜单 (C#) 向 Windows 返回一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41409288/

相关文章:

c# - 如何在 c# 代码隐藏文件中将标题属性添加到面板 (div)?

c# - Lazy 类是否在生成值后清除对工厂委托(delegate)的引用?

c# - 如何从 Web 处理程序中的全局类访问自定义字段?

c# - 使用 Linq 在 BindingList<T> 中搜索

c# - 递归函数调用抛出 StackOverFlowException

c# - sqlserver 连接字符串中的用户名、密码和其他参数

C# 序列化从 sqlite 返回的 DataTable 结果正在返回 XML 格式

c# - 如何实现语法高亮方案?

c# - Monogame - iOS 上的每像素碰撞

c# - 按不同的对象排序并转换不同的对象