Вверх ↑
Этот топик читают: Гость
Ответов: 1061
Рейтинг: 22
#1: 2013-07-19 19:03:17 ЛС | профиль | цитата
Нужен компонент проверки, запущена-ли программа с административными правами, либо возможность без сторонних программ, запускать программу от имени системы (SYSTEM) в windows xp - 7! Сколько это будет стоить?
карма: 0

0
Ответов: 5227
Рейтинг: 587
#2: 2013-07-22 12:26:41 ЛС | профиль | цитата
Запускать процессы от имени системы можно только с правами администратора (тогда какой смысл ). Вот здесь IC для запуска программ от другого пользователя (администратора в том числе) http://forum.hiasm.com/forum.html?q=3&t=60038
http://forum.hiasm.com/forum.html?q=3&t=60025
p.s припоминаю делал и от системы но найти не смог
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
1
Голосовали:RinniX
Ответов: 1061
Рейтинг: 22
#3: 2013-07-22 13:40:02 ЛС | профиль | цитата
andrestudio, спасибо! Почему то запуск приложений через эти ярлыки выдаёт ошибку:


карма: 0

0
Ответов: 5227
Рейтинг: 587
#4: 2013-07-22 14:26:40 ЛС | профиль | цитата
Сам то файл на месте? вот так кстати можешь проверить админские права у своей проги code_31481.txt
------------ Дoбавленo в 14.26:
Припоминаю что саму прогу надо хотябы раз запустиить с админскими правами что-бы файл залилился в системную папку
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
файлы: 1code_31481.txt [2KB] [412]
Ответов: 1061
Рейтинг: 22
#5: 2013-07-22 15:17:23 ЛС | профиль | цитата
andrestudio, да файл на месте, но меня не ярлыки интересуют! ))

andrestudio писал(а):
вот так кстати можешь проверить админские права у своей проги code_31481.txt

А вот это то что нужно! Спасибо! Сколько с меня пива пиши в ЛС! )
карма: 0

0
Ответов: 5227
Рейтинг: 587
#6: 2013-07-23 10:20:52 ЛС | профиль | цитата
RinniX писал(а):
Спасибо! Сколько с меня пива пиши в ЛС! )
код не мой (копипаст) так что попей пивка с другом
------------ Дoбавленo в 10.20:
кстати не во всех случая нужны права администратора, достаточно знать о необходимых привилегиях юзера, вот это даёт список привилегий
Add(MainForm,2953706,217,231)
{
Width=592
Height=424
Position=1
link(onCreate,11047373:GetUserPrivilege,[])
}
Add(InlineCode,11047373,273,245)
{
WorkPoints=#16:GetUserPrivilege|
EventPoints=#6:onList|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,windows,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|22: onList:THI_Event;|56: procedure GetUserPrivilege(var dt:TData; idx:word);|0:|5: end;|0:|14:implementation|0:|39:procedure THiAsmClass.GetUserPrivilege;|6: const|49: TokenSize = 800; // (SizeOf(Pointer)=4 *200) |3:var|19: hToken: THandle;|32: pTokenInfo: PTOKENPRIVILEGES;|23: ReturnLen: Cardinal;|14: i: Integer;|19: PrivName: PChar;|22: DisplayName: PChar;|22: NameSize: Cardinal;|23: DisplSize: Cardinal;|20: LangId: Cardinal;|6: begin|33: GetMem(pTokenInfo, TokenSize);|87: if not OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,|56: hToken) then ShowMessage('OpenProcessToken error');|93: if not GetTokenInformation(hToken, TokenPrivileges, pTokenInfo, TokenSize, ReturnLen) then|46: ShowMessage('GetTokenInformation error');|25: GetMem(PrivName, 255);|28: GetMem(DisplayName, 255);|48: for i := 0 to pTokenInfo.PrivilegeCount -1 do|8: begin|22: DisplSize := 255;|22: NameSize := 255;|81: LookupPrivilegeName(nil, pTokenInfo.Privileges[i].Luid, PrivName, Namesize);|79: LookupPrivilegeDisplayName(nil, PrivName, DisplayName, DisplSize, LangId);|54: //ListBox1.Items.Add(PrivName +^I + DisplayName);|55: _hi_onEvent(onList, (PrivName +';'+ DisplayName));|7: end;|21: FreeMem(PrivName);|24: FreeMem(DisplayName);|23: FreeMem(pTokenInfo);|5: end;|0:|4:end.|
link(onList,10009289:doAdd,[])
}
Add(StringTable,10009289,336,245)
{
Left=100
Top=10
Width=475
Height=380
Align=5
Columns=#14:Привилегия=200|14:Коментарий=300|
}


карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
1
Голосовали:RinniX
Ответов: 1061
Рейтинг: 22
#7: 2013-07-23 14:32:12 ЛС | профиль | цитата
andrestudio писал(а):
достаточно знать о необходимых привилегиях юзера, вот это даёт список привилегий

а запись в реестр в этом списке как называется? Спасибо и за этот код! )
карма: 0

0
Ответов: 5227
Рейтинг: 587
#8: 2013-07-23 14:59:14 ЛС | профиль | цитата
RinniX писал(а):
а запись в реестр в этом списке как называется?
судя по всему это будет - SeTakeOwnershipPrivilege
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
8
Сообщение
...
Прикрепленные файлы
(файлы не залиты)