Я написал приложение для выигрыша, которое работает в сети.Запуск process.start() в сети
В одной из форм пользователь может просматривать и выбирать файл с локального компьютера и добавлять его в список, поэтому приложение копирует эти файлы в папку «Мои сетевые места», к которой у пользователей нет доступа, кроме тех, которые у меня есть. созданный уже для моего приложения, поэтому у меня есть его имя пользователя и пароль. Все работает отлично.
В этой форме пользователь также может открыть файл, нажав кнопку «Открыть», чтобы файл открывался в приложении, относящемся к его расширению (например, test.xlsx должен открыться в Exel.exe). б Process.Start(), чтобы сделать это, но для каждого расширения я получить отдельную ошибку (например, «отказано в доступе» для NotePad и «RunTime ошибки» для AdobeReader и "Не хватает памяти "для Excel).
Какая у меня ошибка?
Примечание:Я использовал ImpersonatUser для входа в систему этого пользователя в своем приложении.
Edit: Я использовал следующий код, чтобы открыть файл:
Using(WindowsImpersonationContext impersonateUser = LogonMethod())
{
ProcessStartInfo pInfo = new ProcessStartInfo(filePathWithExtension);
pInfo.Domain = MyDomainName;
pInfo.UseShellExecute = false;
Process.Start(pInfo);
}
Примечание:Мой LogonMethod использует метод LogonUser из ADVAPI32.dll.
Посмотрите пример кода, который вы пробовали? –
Также было бы полезно уточнить, по какой учетной записи вы пытаетесь запустить приложения, а также код, который вы должны сделать (поскольку иногда может быть несоответствие между намерениями и реализациями). –
@AlexeiLevenkov, Спасибо за ваш ответ. Это обычная учетная запись, но она может выполнять все другие функции, такие как копирование, удаление или вырезание файла, архивирование папки, восстановление резервной копии базы данных и ... –