Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/152: Рейтинг темы: голосов - 152, средняя оценка - 4.63
3 / 3 / 1
Регистрация: 11.11.2010
Сообщений: 39

Запуск приложения от имени администратора

09.01.2011, 18:10. Показов 32286. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Скажите пожалуйста, а есть ли возможность в delphi7 программно запустить программу от имени администратора. То есть при старте программа сразу запрашивает разрешение на то.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2011, 18:10
Ответы с готовыми решениями:

Запуск от имени Администратора
Доброго времени, Ув. делфисты! Нужна ваша помощи, подскажите как можно реализовать запуск под Админом, вместо "ПКМ-запуск от имени...

Запуск внешней программы от имени администратора
Есть интересный вопрос: понадобилось из делфи запустить внешний батник от имени администратора. Отыскал на форумах функцию запуска от...

Программный запуск cmd от имени администратора
Имеется форма, на ней кнопка. Суть в том, чтобы при нажатии на кнопку открывалась командная строка с запросом на открытие от имени...

29
13 / 11 / 0
Регистрация: 21.06.2012
Сообщений: 66
09.07.2013, 12:45
Студворк — интернет-сервис помощи студентам
А ещё есть UAC, и будь вы хоть трижды админом - что-то вам все равно будет запрещено.
0
 Аватар для Geba
0 / 0 / 0
Регистрация: 21.07.2009
Сообщений: 55
29.12.2015, 17:01
Цитата Сообщение от maxo Посмотреть сообщение
procedure TForm1.FormCreate(Sender: TObject);
var
SEI: TShellExecuteInfo;
lpExitCode: DWORD;
begin
if IsUserAnAdmin then
exit
else begin
ZeroMemory(@SEI, SizeOf(SEI));
SEI.cbSize := SizeOf(TShellExecuteInfo);
SEI.Wnd := Handle;
SEI.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI;
SEI.lpVerb := PChar('runas');
SEI.lpFile := PChar(Application.ExeName);
SEI.nShow := SW_SHOWNORMAL;
//SEI.lpParameters:= '';
ShellExecuteEx(@SEI);
GetExitCodeProcess(SEI.hProcess, lpExitCode);
end;
Доброго времени суток форумчане. Есть небольшой вопросик по вше изложенному коду. У меня на Delphi 2010 написан небольшой загрузчик файлов. Суть такова. Перед загрузкой файлов по FTP я пингую хост и соответственно получаю ответ доступен он или нет. Так вот, что бы пропинговать хост мне надо запустить файл от имени администратора, в противном случае пингование не осуществляется. Нашел на форуме этот код, который в принципе работает, но... запускется две копии программы, одна с правами админа, другая без онных. Код вставил в Create главной форміы. Сделал пошаговую проверку, и что получается, сначала срабатывает "ShellExecuteEx(@SEI) в Application.CreateForm затем отрабатывает Application.Run и в итоге на экране два окна программы, одно с правами админа, другое без.
Можно ли это исправить?
0
5996 / 4571 / 1096
Регистрация: 29.08.2013
Сообщений: 28,229
Записей в блоге: 3
29.12.2015, 17:05
а может пинг переписать? так что бы он прав админа не требовал?
0
 Аватар для Geba
0 / 0 / 0
Регистрация: 21.07.2009
Сообщений: 55
29.12.2015, 17:22
А дальше качалка ...
Лучше уж добиться запуска от имени админа наверное.

Добавлено через 13 минут
Вот с товарищем пообщался, сделали поправочку в коде, если кому надо будет:

procedure TfmLoader.FormCreate(Sender: TObject);
var
SEI: TShellExecuteInfo;
lpExitCode: DWORD;
begin
if IsUserAnAdmin then
exit
else begin

ZeroMemory(@SEI, SizeOf(SEI));
SEI.cbSize := SizeOf(TShellExecuteInfo);
SEI.Wnd := Handle;
SEI.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI;
SEI.lpVerb := PChar('runas');
SEI.lpFile := PChar(Application.ExeName);
SEI.nShow := SW_SHOWNORMAL;
//SEI.lpParameters:= '';
ShellExecuteEx(@SEI);
Application.Terminate; <---------------------------- Добавить эту строку
GetExitCodeProcess(SEI.hProcess, lpExitCode);
end;
0
5996 / 4571 / 1096
Регистрация: 29.08.2013
Сообщений: 28,229
Записей в блоге: 3
29.12.2015, 17:30
то есть вы из своего приложения запускаете свое же с правами админа и свое убиваете

где смысл?
0
 Аватар для Geba
0 / 0 / 0
Регистрация: 21.07.2009
Сообщений: 55
29.12.2015, 17:36
Может это и глупо (убить свой же процесс), но файл программы один exe. Запустил, скачал,закрыл. Если у Вас есть какие то предложения, я с удовольствием выслушаю.
0
5996 / 4571 / 1096
Регистрация: 29.08.2013
Сообщений: 28,229
Записей в блоге: 3
29.12.2015, 17:38
Geba, у меня где-то было 4 или 5 вариантов пинга
сохранять файлы можно во временную папку - там права не нужны
0
 Аватар для Geba
0 / 0 / 0
Регистрация: 21.07.2009
Сообщений: 55
29.12.2015, 17:45
С пингом можно поиграться. Вариантов много. У меня на сервере установочные файлы программы. Я делаю онлайн загрузчик для установки программы на компьютер. В последних версиях windows очень жесткие права администрирования. Начинаешь что то делать, только и сталкиваешься с правами. Вот для самой программы этот вариант с правами надо пересматривать.
0
5996 / 4571 / 1096
Регистрация: 29.08.2013
Сообщений: 28,229
Записей в блоге: 3
29.12.2015, 17:48
Цитата Сообщение от Geba Посмотреть сообщение
В последних версиях windows очень жесткие права администрирования
что жесткие?
пользователю - пользовательское

для того что бы скачать во временную папку программу и установить ее в AppData админские права не нужны
0
 Аватар для Geba
0 / 0 / 0
Регистрация: 21.07.2009
Сообщений: 55
29.12.2015, 17:56
Я в последнее время перешел на хранение настроек в реестр. Отказался от ini (хотя в некоторых случаях ini поудобнее будет), только потому, что без прав администратора не дает делать изменение в ini файлах.
Вот вам и "пользователю - пользовательское".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.12.2015, 17:56
Помогаю со студенческими работами здесь

Запуск приложения от имени администратора
Я заменил стандартный текстовый редактор (notepad) на программу Notepad2 которая мне удобнее, хотя в принципе всё равно на что именно я...

Запуск приложения от имени администратора
Здравствуйте! На форуме нашла код, который будет запускать приложение от имени администратора. Пробую запустить - ругается на Application,...

Запуск приложения от имени администратора
Ребята помогите пожалуйста, как можно проверить у приложение запущена она под правами админа или нет?

Запуск приложения от имени администратора
Всем доброго времени суток. Прежде чем начнете кидать камнями и кричать используй поиск прочитайте до конца и поймите суть моей проблемы. ...

Запуск приложения от имени администратора
Ребята подскажите пожалуйста, как проверить у программы запущенна ли она под админом или нет?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru