1 | ||||||
Запуск определенной формы с помощью if/else, по состоянию значения ключа EnableLUA17.02.2016, 04:06. Показов 1516. Ответов 22
Всем привет
я только начал учится и пытаюсь написать прогу которая устанавливает нужный мне софт без участия юзера (запустил и пошел кофе пить) проблема в том что некоторый софт при запуске запрашивает UAC и нужно нажимать кнопку "да" чтобы чтото установитьб ну и так далее... Задумка вот какая: Запуск проги она проверяет значение ключа "EnableLUA" в регистре и открывает форму в зависимости от того какое значение имеет ключ "0" или "1" Перелапатил уже все что мог но почемуто не получается запустить нужную мне форму Очень прошу помосчи мой код:
0
|
17.02.2016, 04:06 | |
Ответы с готовыми решениями:
22
Присвоение значения ключа при заполнении формы Изменение значения элементов формы после нажатия определенной клавиши Нажатие определенной клавиши на клавиатуре = Запуск определенной функции Нужно с помощью функции проверить значения в полях формы. |
Администратор
|
||||||
17.02.2016, 04:31 | 2 | |||||
Сообщение было отмечено Steroid как решение
Решение
Steroid, enableLUA имеет тип REG_DWORD. Значит его нужно читать как int значение.
1
|
18.02.2016, 02:52 [ТС] | 3 | |||||
Но происходит тоже самое что и до этого всегда запускается та форма которая находится в if я уже настроил чтоб стартовала с правами админа пояснение: старт программы, она проверяет отключенно UAC или нет, если отключено то запускается форма с чекбоксами, если нет форма форма с кнопкой отключающей UAC и перезагрузка компа, после перезагрузки прога стартует автоматически в форму с чекбоксами, ну и дальше чекбоксы выбираются для инсталяции и тд Добавлено через 7 часов 32 минуты не не получается Добавлено через 11 часов 54 минуты пуш Добавлено через 1 час 9 минут пуш Добавлено через 30 минут OwenGlendower, неполучается Добавлено через 47 минут есть кто живой?
0
|
22.02.2016, 00:27 [ТС] | 6 | |||||
OwenGlendower,
Снова проблемма: Запуск проги как Админ Интро на 5 секунд Запуск формы выключения UAC, если включено, или запуск формы с чекбоксами выбора програм для установки (что проверяется кодом выше) Форма запускается нормально, после выбора чекбокса и при нажатии на кнопку Install, почемуто выкидывает ошибку, (в которой я понять ничего не могу, не никаких ссылок на строку или чтото такое,) в которой можно продолжить или закрыть форму
0
|
Администратор
|
||||||
22.02.2016, 07:24 | 7 | |||||
Сообщение было отмечено Steroid как решение
Решение
Steroid, без исключения можно только гадать. Приведенный код хоть и ужасен, но видимых ошибок не содержит. Приведи хотя бы тип исключения и его текст.
Вообще же код нуждается в рефакторинге. Отмечу несколько моментов.
Кликните здесь для просмотра всего текста
1
|
23.02.2016, 00:53 [ТС] | 8 |
Спасибо за ответ
Отпишусь позже когда домой вернусь счас времени маловато Добавлено через 8 часов 45 минут OwenGlendower, я начал изучать C# недели 3 назад, но пока мало чего знаю, и очень благодарен за помошь. То что код УЖАСЕН я спредпологал я пока не знаю про какие исключения ты говоришь и, зачем они нужны File.Exist я прописал, так как мне не понравился Thread.Sleep, потомучто не всегда точно можно прописать время ожидания, особенно если трафик интернета разный, расчитать трудно сколько поставить ожидание. Также не хочется стартовать следующий процес раньше чем завершился предыдущий... незнал как лучше прописать, в принципе и досих пор не совсем понял чем Thread.Sleep лучше C:\Data это не папка для инсталяции, а просто временная папка куда идут все скачивания и оттуда происходит установка, папка будет удалена после установки всех програм также я не могу понять что точно означает "!=", "==" значит что чтото равно какомуто значению. а что значит "!="? Гугл не помог прояснить Добавлено через 8 минут переименовать форму не навредив скрипту можно или лучше не рисковать?
0
|
Администратор
|
|||||||||||
23.02.2016, 07:49 | 9 | ||||||||||
Сообщение было отмечено Steroid как решение
Решение
Исключения (exceptions) это ошибки происходящие во время исполнения программы. Ты говорил что при нажатии кнопки Install происходит непонятная ошибка. Это оно и есть. Чтобы найти ошибку в коде нужно получить максимум информации о ней. Для этого поставь в начале метода button1_Click строку
Здесь нечего ожидать. Метод DownloadFile вернет управление только когда файл полностью скачан и значит он будет существовать. WaitForExit, который ты уже использовал, позаботится об этом. Thread.Sleep служит всего лишь для организации паузы чтобы, в данном случае, не обрашаться слишком часто к диску. Это операторы "не равно" и "равно" соответственно. Конечно можно. Для надежности используй команду меню Edit -> Refactoring -> Rename
1
|
23.03.2016, 23:25 [ТС] | 10 | |||||
OwenGlendower, большое спасибо за подробный ответ
долго не мог продолжить, был загружен другими делами... try и catch - очень сильно помогло в поиске траблов в выше приведеном примере кода указан пример "если чекбокс выделен то скачивай с линка" Url = www.primer.ru - линк FileName = "primer.exe", - имя для сохранения локально Arguments = "/S" - ну и аргумент все понятно но если я хочу выполнить копирование с последуюшим запуском файла скажем из локальной сети/сервера, имеет ли смысл это записывать сюдаже или лучше записать это отдельно? Пример: new { CheckBox = checkBox2, File.Copy (@"\\server\tools\fail.exe", "C\Data\fail.exe"); Arguments = "/S" или лучше это прописать после foreach отдельным образом if (checkbjx=checked) и т.д я так понимаю что если записывать в последуюющий "foreach" то в коде нужно чтото дабавить!? или пункт отмеченный ***** об этом тоже позаботится? Кликните здесь для просмотра всего текста
0
|
Администратор
|
||||||
24.03.2016, 13:52 | 11 | |||||
Можно отдельно, но можно и совместить
Кликните здесь для просмотра всего текста
В анонимных типах так писать нелья. Это названия переменных. Они выбираются программистом и могут быть любыми. Ключевые слова языка выделяются отдельным цветом. installerRoot это константа объявленная выше. Чтобы это понять нужно было всего лишь внимательно изучить код.
1
|
25.03.2016, 16:22 [ТС] | 12 | ||||||||||
OwenGlendower,
Привет Большое спасибо за твою помошь У меня вопросов куча всяких Полдня мучался с анонимными типами , как только чтото менял в коде все подчеркивалось красным пока не допер почему он это делает Добавлено через 2 часа 52 минуты OwenGlendower, блин незнаю что я поменял теперь в место старта формы которой надо, открывается совершенно новая форма, хотя в этом отношении вообще ничего не менял здесь нет функции "сохранить как..."? Кликните здесь для просмотра всего текста
UAConoff // Кнопка закрытия и перехода на другую форму (ту что с чекбоксами)
0
|
28.03.2016, 00:03 [ТС] | 14 | ||||||||||
OwenGlendower,
переписал весь код один к одному все работает (каждая запятая и даже пробел один к одному), так и не понял в чем ошибка была. ну да ладно... в app.manifest прописано: <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> есть другая проблемма: при запуске , Кликните здесь для просмотра всего текста
выкидывает ошибку что файла не существует, тупо пишу в *.bat C:\Windows\system32\slui.exe все работает нормально записываю в код Кликните здесь для просмотра всего текста
тоже ничего не работает, запускается только cmd.exe в app.manifest уже прописано: <requestedExecutionLevel level="highestAvailable" uiAccess="false" /> нужно чтото особенно указать чтобы запустить файл из "C:\windows"? Добавлено через 5 минут ах да есть ли возможность сохранять проект как например файлы в word типа "Сохранить как..."?
0
|
Администратор
|
|||||||||||
28.03.2016, 00:54 | 15 | ||||||||||
Steroid, элемент requestedExecutionLevel указывает с какими правами запускать процесс, но это не влияет на запуск файлов т.к. права на чтение системного каталога у нас в любом случае есть, а права на запись здесь не нужны. Дело скорее в виртуализации файловой системы (File System Redirector) под x64 Windows. Переделай код запуска так:
Нет. Это можно сделать вручную. Однако это неправильный путь. Правильнее использовать систему контроля версий.
1
|
04.04.2016, 11:41 [ТС] | 17 |
OwenGlendower,
Приветствую тебя с новыми вопросами Как запускать файлы прямо из Resources? Показать прогресс скачивания и установки
0
|
Администратор
|
|||||||
04.04.2016, 12:36 | 18 | ||||||
Steroid,
1
|
25.04.2016, 22:30 [ТС] | 20 |
OwenGlendower,
Привет потомучто если с чистой Windows7.iso устанавливать то нужно ставить дотНет 4.0 чтоб этот метод работал ПыСы: а так скрипт готов инаходится в фазе "BETAtest" как только буду уверен что работает без "реальных" косяков переведу на русский и выложу
0
|
25.04.2016, 22:30 | |
25.04.2016, 22:30 | |
Помогаю со студенческими работами здесь
20
Защита приложения с помощью ключа В зависимости от значения некоторого выражения вычислить значения функции y(x), определенной на отрезке [a;b], Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |