Я разрабатываю приложение для Windows, мне нужно получить имя папки, щелкнув правой кнопкой мыши по папке, чтобы выполнить некоторые операции с ней.
Пока я сделал следующее:
- Сделал раздел реестра в HKKEY_CLASS_ROOT \ Folder \ shell \ (имя моей программы)
- Сделал раздел реестра с именем моей программы \ command [путь к моей программе]
теперь я сделал ключ реестра для отображения в контекстном меню папки. И в своем заявлении я сделал следующее:
1- в программе.cs
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 p = new Form1();
if (args.Length > 0)
{
p.pathkey = args[0];
}
Application.Run(p);
}
2- в моей форме1:
private string _pathkey;
public string pathkey
{
get { return _pathkey; }
set { _pathkey = value; }
}
private void Form1_Load(object sender, EventArgs e)
{
if (this.pathkey != null)
{
textBox1.Text=pathkey;
}
}
наконец:
теперь, когда я щелкаю правой кнопкой мыши по папке, скажем, например, под названием NEW. тогда textbox3.text = C: \ NEW, пока все работает нормально, но если имя папки - Новая папка, тогда textbox3.text = C: \ New только не C: \ New Folder, и это моя проблема, если args.length> 0 отображается только длина 0, а не полный путь.