venkataramana k Ответов: 2

Я просто хочу открыть командную строку как администрирование, после этого я должен передать что-то для создания Службы, мой код приведен ниже


Process myProcess = новый процесс();
мой процесс.StartInfo. UseShellExecute =true;
мой процесс.свойство StartInfo.Глагол = " руны";
мой процесс.свойство StartInfo.Имя файла = @"cmd.exe";

мой процесс.EnableRaisingEvents = true;
мой процесс.Начать();
строка Рамана = "instsrv.exe" + "" + "YourServiceName" + ""+ @ " D:\WindowsService1.exe";
Нить.Сон(8000);
Система.Окна.Формы.Посылайте ключи.SendWait(ramana + " {ENTER}");

Нить.Сон(3000);
// myProcess.Убивать();
Ящик для сообщений.Шоу ("готово...");

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

Cmd открывается как administation, но событие sendkeys не работает ,если cmd открыт нормально, значит(без администрирования ) он будет работать

может ли кто-нибудь помочь мне выбраться из этого

заранее спасибо

Mehdi Gholam

Почему вы используете SendKey ()?

2 Ответов

Рейтинг:
2

Dave Kreskowiak

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

Это огромный риск для безопасности, и поэтому он отрицается.


Рейтинг:
0

Sinisa Hajnal

Чего вы пытаетесь достичь с помощью sendKeys?SendWait? Если вы просто хотите передавать аргументы, чтобы процесс запустить, использовать аргументы собственность информацию
ProcessStartInfo.Доводы Собственность (Системы.Диагностика)[^]