我创建了一个C#WinForm应用程序,用于将文件存储在硬盘驱动器上的单独安全位置。我试图通过添加右键单击上下文菜单为程序添加功能,因此当用户右键单击Windows中的文件(或文件组)时,我的程序就在上下文中供他们选择。没问题,我已经解决了这个问题。我需要的是以编程方式获取文件列表并将其发送到程序,以便它们已列在列表框中。
我已经在OFD中做了类似于多选的东西,但是我不希望他们必须打开程序,选择浏览,找到文件并在他们已经在windows中选择它们时选择它们。
有大量程序具有此功能(如属性加,文本板等等)。我只需要朝正确的方向推进,以帮助我解决这个问题。
提前致谢,
戴夫
答案 0 :(得分:2)
如果我正确理解您已经实现的内容,那么所有文件应该在程序的命令行中显示为参数。您只需要一种方法来提取每个文件路径并在列表视图中显示它们。
在C#中,以下代码将在命令行中显示一个包含每个参数的消息框:
static void Main(string[] args)
{
foreach(string arg in args)
{
MessageBox.Show(arg);
}
}
但是如果您不想在Main
方法中访问这些内容,您还可以使用提供静态GetCommandLineArgs
method的Environment
类。它返回包含参数的相同字符串数组,您可以以相同的方式遍历它。
答案 1 :(得分:0)
以下是关于如何customise Right-Click Menu Options in Windows
的文章然后正如#CodyGray所说,使用你程序的string[] args
方法中的Main
来获取文件名
答案 2 :(得分:0)
我正在收集所有参数并将它们发送到ArrayList。
static void Main(string[] args)
{
ArrayList myAL = new ArrayList();
foreach (string arg in args)
{
myAL.Add(arg);
}
ALRec nalr = new ALRec();
nalr.getArrList(myAL);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
将其发送到ALRec Class
class ALRec
{
ArrayList MyArrLst = new ArrayList();
public void getArrList(ArrayList AL)
{
MyArrLst = AL;
}
}
为什么要启动我的App的多个实例?