Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Вниз

Запуск от имени   Найти похожие ветки 

 
syte_ser78 ©   (2005-08-02 12:19) [0]

Мое приложение не хочет запускаться на компьютере пользователей без прав администратора. (Работа с Автокадом через OLE). Постоянно его запускать самому или говорить каждому пароль не хочу.
Вопрос. Как настроить чтобы приложение (и Автокад) постоянно запускались с моими правами?


 
evvcom ©   (2005-08-02 12:43) [1]

Лучше исправить свое приложение. Что же оно такое делает, что не запускается без прав админа?


 
syte_ser78 ©   (2005-08-02 12:52) [2]

Ошибка гласит - невозможно создать OLE сервер (чето типа того).
При запуске автокада с правами админа под профилем пользователя этой ошибки нет


 
3DxFantastika ©   (2005-08-02 12:57) [3]

syte_ser78 ©   (02.08.05 12:19)

> Как настроить чтобы приложение (и Автокад) постоянно
> запускались с моими правами?

сделать его сервисом и появляться только на горячие клавиши например


 
Lamer@fools.ua ©   (2005-08-02 13:03) [4]

>При запуске автокада с правами админа под профилем пользователя

Это как?


 
syte_ser78 ©   (2005-08-02 14:19) [5]

Lamer@fools.ua ©   (02.08.05 13:03) [4]
Вхожу под именем простого пользователя. Запускаю Автокад от своего (администратора) имени. Вот так.

Вобщем вот что я заметил. Отлаживаю код на своей машине. Зашол под своим именем (администратор), автокад гружу от имени не админитратора смотрю на код

  try
...      acd := GetActiveOleObject( "AutoCad.Application");
  except
     acd := CreateOLEObject( "AutoCad.Application");
  end;

При запуске акада от имени админа выпоняется трай условие (отмечено точками)

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


 
Lamer@fools.ua ©   (2005-08-02 14:26) [6]

>>syte_ser78 ©   (02.08.05 14:19) [5]

>Вхожу под именем простого пользователя. Запускаю Автокад от своего (администратора) имени. Вот так.

И при чём здесь профиль пользователя тогда? Работает профиль "своего (администратора) имени". В том числе и настройки реестра.


 
syte_ser78 ©   (2005-08-02 14:26) [7]

Можно ли выполнить запуск программы от определенного имени через командную строку? Если можно, то как?


 
syte_ser78 ©   (2005-08-02 14:28) [8]

Lamer@fools.ua ©   (02.08.05 14:26) [6]
а чтонибуть по делу? Как либо исправить код, либо запустить автокад от своего имени под чужим профилем?


 
3DxFantastika ©   (2005-08-02 14:49) [9]

syte_ser78 ©   (02.08.05 14:26) [7]


E:\>runas
Использование команды RUNAS:

RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]
       /user:<имя пользователя> <программа>

RUNAS [ [/noprofile | /profile] [/env] [/savecred] ]
       /smartcard [/user:<имя пользователя>] <программа>

  /noprofile        Не загружать профиль пользователя. Это приводит к более
                    быстрой загрузке приложения, но может стать причиной
                    неправильной работы некоторых приложений.
  /profile          Загружать профиль пользователя.
                    Этот параметр установлен по умолчанию.
  /env              Использовать текущие параметры среды.
  /netonly          Учетные данные предназначены только для удаленного
                    доступа.
  /savecred         Использовать учетные данные, сохраненные пользователем.
                    Этот параметр не доступен в Windows XP Home Edition
                    и будет проигнорирован.
  /smartcard        Для указания учетных данных используется
                    смарт-карта.
  /user   <имя пользователя> должно быть в виде USER@DOMAIN или DOMAIN\USER
  <программа>       Командная строка для EXE. См. примеры ниже.

Примеры:
> runas /profile /user:mymachine\administrator cmd
> runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc"
> runas /env /user:user@domain.microsoft.com "notepad \"Мой файл.txt\""

Примечание: вводите пароль пользователя только тогда, когда он запрашивается.
Примечание: формат записи USER@DOMAIN несовместим с параметром /netonly.
Примечание: параметр /profile несовместим с параметром /netonly.
Примечание:  параметр /savecred несовместим с параметром /smartcard.


 
syte_ser78 ©   (2005-08-02 15:00) [10]

3DxFantastika ©   (02.08.05 14:49) [9]
в  runas невозможно в командной строке указать пароль. Вот в чем грабли то


 
3DxFantastika ©   (2005-08-02 15:45) [11]


unit ProcessWithLogon;

interface

uses Windows, SysUtils;

const
 LOGON_WITH_PROFILE         = $1;
 LOGON_NETCREDENTIALS_ONLY  = $2;

function CreateProcessWithLogonW(
 UserName,
 Domain,
 Password: PWideChar;
 dwLogonFlags: DWORD;
 lpApplicationName,
 lpCommandLine: PWideChar;
 dwCreationFlags: DWORD;
 lpEnvironment: Pointer;
 lpCurrentDirectory: PWideChar;
 const lpStartupInfo: TStartupInfo;
 var lpProcessInformation: TProcessInformation): BOOL; stdcall;

function StartProcessWithLogon(
      const  strUsername,     // Логин
             strDomain,       // Домен
             strPassword,     // Пароль
             strCommandLine: WideString  // запускаемая программа с путем к ней
): Boolean;

implementation

function CreateProcessWithLogonW; external advapi32 name "CreateProcessWithLogonW";

function StartProcessWithLogon(
      const  strUsername,     // Логин
             strDomain,       // Домен
             strPassword,     // Пароль
             strCommandLine: WideString  // запускаемая программа с путем к ней
): Boolean;
var
 pi: TProcessInformation;
 si:TStartupInfo;
 bResult: boolean;
 St: string;

begin
 Result := False;

 ZeroMemory(@si,sizeof(TSTARTUPINFO));
 si.cb:= sizeof(TSTARTUPINFO);
 si.lpDesktop:=nil;

 bResult := CreateProcessWithLogonW(
   PWideChar(strUsername),
   PWideChar(strDomain),
   PWideChar(strPassword),
   LOGON_WITH_PROFILE,
   PWideChar(strCommandLine),
   nil,
   0,
   nil,
   nil,
   si,
   pi
 );
 if not bResult then
 begin
   St := SysErrorMessage(Windows.GetLastError);
   MessageBox(0, PAnsiChar(St), "Ошибка!", MB_OK or MB_ICONERROR)
 end
 else
 begin
   CloseHandle(pi.hThread);
   CloseHandle(pi.hProcess);
 end;

 Result:=bResult;
end;

end.

Uses ProcessWithLogon;

procedure TForm1.Button2Click(Sender: TObject);
begin
StartProcessWithLogon(Edit1.Text,Edit4.Text,Edit2.Text,Edit3.Text);
end;



 
syte_ser78 ©   (2005-08-02 16:08) [12]

ВАУ Огромный сенькс!!!



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.035 c
14-1123163253
TUser
2005-08-04 17:47
2005.08.28
Браток


6-1116154204
Creo
2005-05-15 14:50
2005.08.28
Програмный выбор сетевого подключения.


14-1123451681
uw
2005-08-08 01:54
2005.08.28
Всем кто сейчас пьет пиво.


14-1123240459
KilkennyCat
2005-08-05 15:14
2005.08.28
Иллюстрированный самоучитель по Delphi 7 для профессионалов


3-1121176529
redlord
2005-07-12 17:55
2005.08.28
создание базы данных для конкретной задачи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский