Контекстное меню Windows Explorer Context Function не работаетC#

Место общения программистов C#
Ответить
Anonymous
 Контекстное меню Windows Explorer Context Function не работает

Сообщение Anonymous »

Я хочу позволить пользователям выбирать только файлы со следующими расширениями: .jpg, .png, .tiff, .gif, .png . Используя контекстное меню Windows Explorer , я следил за этой ссылкой: http://www.codeproject.com/articles/151 ... x4779433xx, и я мог бы успешно зарегистрировать и UN-REGIGER SECORALY FOR A .JPG. filecopytodira , ничего не происходит, то есть функция не работает. (Я следовал тому же подходу, используя приложение консоли с моей функцией - которая работает.)fileCopytoDirA Нажмите?InitializeComponent();
string menuCommand = string.Format("\"{0}\" \"%L\"", Application.Current);
FileShellExtension.Register("OISjpegfile", "fileCopytoDirA", "fileCopytoDirA", menuCommand);
< /code>
Функция для выполнения во время клика: < /p>
static void fileCopytoDirA(string filePath)
{
try
{
File.Copy(filePath, System.IO.Path.Combine(@"C:\Test\Directories\", System.IO.Path.GetFileName(filePath)), true);
}
catch (Exception ex)
{
MessageBox.Show(string.Format("An error occurred: {0}", ex.Message));
return;
}
}
< /code>
Function to unregister the registry entries during WPF application close:
< /code>
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
FileShellExtension.Unregister("OISjpegfile", "fileCopytoDirA");
}
< /code>
Edit after Metadings Ответ:
App()
{
InitializeComponent();
string menuCommand = string.Format("\"{0}\" \"%L\"", System.Reflection.Assembly.GetExecutingAssembly().Location);
FileShellExtension.Register("OISjpegfile", "fileCopytoDirA", "fileCopytoDirA", menuCommand);
}

[STAThread]
public static void Main(string args)
{
if (string.IsNullOrEmpty(args))
{
// Run your Main Form
// (blocks until Form1 is closed)
Window3 window = new Window3();
App app = new App();
app.Run(window);
}
else
{
// Run the context menu action
fileCopytoDirA(args);
}

// exit
}

static void fileCopytoDirA(string args)
{
try
{
File.Copy(args, System.IO.Path.Combine(@"C:\Test\Directories\", System.IO.Path.GetFileName(args)), true);
}
catch (Exception ex)
{
MessageBox.Show(string.Format("An error occurred: {0}", ex.Message));
return;
}
}


Подробнее здесь: https://stackoverflow.com/questions/224 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»