Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск от имени администратора Win 7 
:(
    Опции темы
Dik0n
Дата 10.5.2013, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 11.5.2011

Репутация: 1
Всего: 10



Цитата

Dik0n, а твой код ошибки не выдаёт, но и не запускает. 

Что то мне кажется что расширение у файла не .ехе, в этом и проблема.

Это сообщение отредактировал(а) Dik0n - 10.5.2013, 16:40
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой
PM MAIL WWW   Вверх
lollollollol
Дата 10.5.2013, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 12.3.2013

Репутация: нет
Всего: нет



Да я сам себя запустить с правами пытаюсь, ParamStr(0) , расширение точно .exe.

Отладчиком пройтись не могу, у компа с делфи только в ПН буду, тогда и сделаю
PM MAIL   Вверх
kami
Дата 10.5.2013, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 15
Всего: 72



Цитата(lollollollol @  10.5.2013,  22:06 Найти цитируемый пост)
Да я сам себя запустить с правами пытаюсь, ParamStr(0) , расширение точно .exe.

Скорее всего, в пути к файлу есть пробел.
Обернуть ParamStr(0) в кавычки. (").
PM MAIL WWW   Вверх
Poseidon
Дата 10.5.2013, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 10
Всего: 133



lollollollol, покажи именно свой код. Потому как я искренне не понимаю людей, которым вылаживаешь кусок рабочего кода, они его коверкают и потом отписываются "не работает". Я это о твоем ParamStr(0). У меня в примере его нет. Да, я понимаю что это то же самое, что и мое Application.ExeName, но все же наличие чего-то, что не приводилось в примере, наводит на мысли о еще каких-нибудь "доработках".


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
lollollollol
Дата 11.5.2013, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 12.3.2013

Репутация: нет
Всего: нет



Код

procedure RunAsAdministrator(const source: string);
var
  shExecInfo: PSHELLEXECUTEINFOW;
begin
  New(shExecInfo);
  with shExecInfo^ do
  begin
    cbSize := sizeof(SHELLEXECUTEINFO);
    fMask := 0;
    Wnd := 0;
    lpVerb := 'runas';
    lpFile := PChar(ExtractFileName(source));
    lpParameters := '';
    lpDirectory := PChar(ExtractFilePath(source));
    nShow := SW_SHOWNORMAL;
    hInstApp := 0;
  end;
  ShellExeCuteex(shExecInfo);
  Dispose(shExecInfo);
  shExecInfo := nil;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  if not IsUserAnAdmin then
    begin
      RunAsAdministrator(ParamStr(0));
      Application.Terminate;
    end;
end;


Р.S.
Application.ExeName = ParamStr(0) - Полный путь до запущеного файла

Добавлено через 9 минут и 52 секунды
Добрался до делфи. Для чстоты эксперемента вместо привычного ParamStr(0) использую Application.ExeName

Ошибка на строке
Код

ShellExeCuteex(shExecInfo);

Как я и ожидал. КОд не менял вообще за исключением 
Код

var
  shExecInfo: PSHELLEXECUTEINFOA; //Было PSHELLEXECUTEINFOW

Если оставить как было, компилятор ругается 
Цитата

[Error] Unit1.pas(36): Incompatible types: 'Char' and 'WideChar'
[Error] Unit1.pas(38): Incompatible types: 'Char' and 'WideChar'
[Error] Unit1.pas(42): Incompatible types: '_SHELLEXECUTEINFOW' and '_SHELLEXECUTEINFOA'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

В Uses добавил только ShellAPI

Это сообщение отредактировал(а) lollollollol - 11.5.2013, 08:45
PM MAIL   Вверх
Dik0n
Дата 11.5.2013, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 11.5.2011

Репутация: 1
Всего: 10



Попробуй манифест добавь если его нет.
Код

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"/>
        </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой
PM MAIL WWW   Вверх
lollollollol
Дата 11.5.2013, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 12.3.2013

Репутация: нет
Всего: нет



С манифестом, как я уже выше говорил, работает.
Я не могу понять почему программно не запускается
PM MAIL   Вверх
Dik0n
Дата 11.5.2013, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 11.5.2011

Репутация: 1
Всего: 10



Цитата

С манифестом, как я уже выше говорил, работает.
Я не могу понять почему программно не запускается

Я привел пример манифеста, без админ прав! После чего, перезапускаете себя уже с правами.
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой
PM MAIL WWW   Вверх
lollollollol
Дата 12.5.2013, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 12.3.2013

Репутация: нет
Всего: нет



Извиняюсь, невнимательность, вечером попробую


P.S.
Что обозначают эти строки, почему именно эти знаечния задаются?
Цитата

version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"


Это сообщение отредактировал(а) lollollollol - 12.5.2013, 07:51
PM MAIL   Вверх
lollollollol
Дата 12.5.2013, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 12.3.2013

Репутация: нет
Всего: нет



С манифестом тоже не работает запуск
PM MAIL   Вверх
Dik0n
Дата 12.5.2013, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 11.5.2011

Репутация: 1
Всего: 10



Цитата(lollollollol @  12.5.2013,  07:50 Найти цитируемый пост)
P.S.Что обозначают эти строки, почему именно эти знаечния задаются?Цитатаversion="6.0.0.0"        publicKeyToken="6595b64144ccf1df"

Это на Delphi 7 так было выставлено, главное здесь это
Код

  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"/>
        </requestedPrivileges>
    </security>
  </trustInfo>

Цитата

С манифестом тоже не работает запуск

С моим примером кода ?
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой
PM MAIL WWW   Вверх
lollollollol
Дата 12.5.2013, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 12.3.2013

Репутация: нет
Всего: нет



угу

А вот с таким манифестом
Код

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
 <assemblyIdentity
   type="win32"
   name="MyCoolProgram"
   version="0.1.0.0"
   processorArchitecture="*"/>
 <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
   <security>
     <requestedPrivileges>
       <requestedExecutionLevel
         level="requireAdministrator"
         uiAccess="false"/>
       </requestedPrivileges>
   </security>
 </trustInfo>
</assembly>

 пытается под админом запустить. Но проблема в том что при запуске сразу запрос UAC, и если пользователь нажмёт НЕТ, приложение не запустится. 

Как можно запустить себя с правами администратора?
PM MAIL   Вверх
Akella
Дата 12.5.2013, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: нет
Всего: 329



Цитата(lollollollol @  12.5.2013,  18:07 Найти цитируемый пост)
пытается под админом запустить. Но проблема в том что при запуске сразу запрос UAC, и если пользователь нажмёт НЕТ, приложение не запустится. 

Ну да, а как по другому?
PM MAIL   Вверх
lollollollol
Дата 12.5.2013, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 12.3.2013

Репутация: нет
Всего: нет



Я хотел пр запуске, если нет прав администратора показать информационное сообщение, с информацией о том что программе необходимы права. И повторно выполнить запуск с правами.

Вариант с манифестом не позволяет это сделать. А запуск через runas не работает.
PM MAIL   Вверх
Dik0n
Дата 12.5.2013, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 11.5.2011

Репутация: 1
Всего: 10



level="requireAdministrator" заменить на level="asInvoker"
Потом запускать через 'runas' но UAC все равно появится при перезапуске, для того он и разработан, иначе бы все трояны втихаря, перезапускали себя под админом.

Это сообщение отредактировал(а) Dik0n - 12.5.2013, 21:12
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой
PM MAIL WWW   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0626 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.