Главная страница
    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.48 MB
Время: 0.051 c
14-1122904640
oldman
2005-08-01 17:57
2005.08.28
Кто нибудь боролся с Яхой?


14-1122959574
Ega23
2005-08-02 09:12
2005.08.28
С днем рождения! 2 августа


4-1121056430
Untermensch
2005-07-11 08:33
2005.08.28
Как заставить систему выйти диалапом в инет и обратно.


14-1123121764
КаПиБаРа
2005-08-04 06:16
2005.08.28
Чего только не нарисуют


14-1122993165
IceBeerg
2005-08-02 18:32
2005.08.28
Замена OutPost у





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский