john1990_1 Ответов: 1

Как связать расширение файла с моей программой на C#?


Я сделал игру судоку, которая сохраняет игру в файл". sudoku", я хочу, чтобы все файлы". sudoku " открывались с помощью моей программы и показывали значок моей программы.

Что я уже пробовал:

c# - ассоциировать расширение файла с приложением-Stack Overflow[^]

Mehdi Gholam

..- а в чем проблема?

john1990_1

код не работает для меня, может быть, в:

Текущий пользователь.DeleteSubKey ("UserChoice", false);

Я должен заменить "UserChoice" чем-то другим?

Mehdi Gholam

Попробуйте работать от имени администратора.

john1990_1

смотреть ниже

Richard MacCutchan

Поскольку у вас есть ссылка на ответ StackOverflow, именно здесь можно задать этот вопрос.

john1990_1

файлы". sudoku " получили свой значок как моя программа и теперь открываются с моей программой после вызова метода в Main в начале Main, но программа не открывается, даже если я запускаю ее как администратор после публикации и установки, программа просто не появляется.

Когда я прокомментировал строку, которая запускает метод, опубликовал ее и установил, окно программы открывается, и нет никаких проблем, поэтому вызов этого метода отключает открытие основной формы, даже когда я щелкаю правой кнопкой мыши и выбираю Запуск от имени администратора.

Richard MacCutchan

Извините, но я понятия не имею, что означают эти два предложения.

john1990_1

когда пользователь запускает мою программу sudoku в первый раз, я вызываю метод SetAssociation, он работает, файлы". sudoku " теперь имеют значок моей программы и запускаются как и в моей программе, когда я дважды щелкаю по ним, но основные окна, которые вызываются в Main после SetAssociation:

Приложение.Запустить(sudoku_Form = новый Sudoku_FORM(аргументы));

не открывается, это как если бы программа вышла во время или после SetAssociation.

Я запускаю программу, щелкнув правой кнопкой мыши и выбрав пункт "Запуск от имени администратора".

когда я комментирую строку, которая вызывает SetAssociation и publish (make an installer), устанавливаю ее и запускаю, появляется окно, и программа работает.

Richard MacCutchan

Если вы хотите установить ассоциации при первом запуске программы, то она должна работать с правами администратора. Точно так же, как и большинство самоустановщиков.

john1990_1

да, ассоциация была установлена, программа успешно создает ассоциацию при первом запуске, но главное окно не открывается после этого, когда я звоню после этого:

void Main(string[] args)
{
SetAssocation (....);/ / это работает хорошо
//программы в социальных сетях особенно легко приехать сюда
Приложение.Run (sudoku_Form = new Sudoku_FORM(args));/ / это вообще не работает
}
окно моей программы не открывается, задается только ассоциация файлов.

1 Ответов

Рейтинг:
2

#realJSOP

Ну, решение было предоставлено по ссылке, которую вы процитировали, так что ваш единственный выход на данный момент-это быть настоящим программистом и поместить исключение вокруг кода, точку останова в блоке catch, запустить приложение в отладчике и ждать, пока t не выйдет из строя. Исключение (если оно будет брошено) точно скажет вам, что не так.

Вам нужны права администратора, чтобы изменить реестр, и мой дух животного предполагает, что вы, вероятно, не используете учетную запись администратора.


john1990_1

я отладил его, сказал он:

Доступ к ключу реестра 'ключе\. sudoku' запрещен.

как запустить его от имени администратора из visual studio?

john1990_1

смотреть выше