powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вопрос по winapi функция CreateProcessWithLogonW
6 сообщений из 6, страница 1 из 1
Вопрос по winapi функция CreateProcessWithLogonW
    #39991744
Vik153521
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Пытаюсь запустить приложение от имени другого пользователя
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
program Logon2;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils,
  Winapi.Windows;

var
UserN : PChar;
password : PChar;
si : TStartupInfo;
pi : TProcessInformation;
function  CreateProcessWithLogonW(
   lpUsername: LPCWSTR;                 // имя пользователя
   lpDomain : PChar;                   // домен пользователя
   lpPassword : LPCWSTR;                 // пароль пользователя
   dwLogonFlags : DWORD;                 // опция входа в сеть
   lpApplicationName : LPCWSTR;          // имя исполняемого модуля
   lpCommandLine : LPCWSTR;              // командная строка
   dwCreationFlagsv : DWORD;               // флажки создания
   lpEnvironment: Pointer;               // блок новой конфигурации
   lpCurrentDirectory: LPCWSTR;         // имя текущей папки
   lpStartupInfo : PStartupInfo;       // информация предустановки
   lpProcessInfo : PPROCESSINFORMATION // информация о процессе
):Boolean; stdcall; external advapi32;


begin
  try
    { TODO -oUser -cConsole Main : Insert code here }
         UserN:= Pchar('Test');
         password:= Pchar('test');
         ZeroMemory(@si,SizeOf(si));
         si.cb:= SizeOf(si);
         si.lpDesktop:=PChar('winsta0\\Defailt');
         si.dwFlags:= STARTF_USESHOWWINDOW;
         si.wShowWindow:= SW_SHOW;
         ZeroMemory(@Pi,SizeOf(pi));
          if CreateProcessWithLogonW(
            UserN,
            PChar('WORKGROUP'),
            password,
            1,
            PChar('C:\Windows\SysWOW64\calc.exe'),
            nil,
            0,
            nil,
            nil,
            @si,
            @pi
          ) then Writeln('Приложение запущено!') else
          Writeln(IntToStr(GetLastError)+': '+SysErrorMessage(GetLastError));
        CloseHandle(pi.hProcess);
        CloseHandle(pi.hThread);
  except
  on E: Exception do
    Writeln(E.ClassName, ': ', E.Message);
  end;
  Readln;
end.


Получаю следующую ошибку(См. вложение).
Система WIN 10
Подскажите пожалуйста в чем может быть проблема?
...
Рейтинг: 0 / 0
Вопрос по winapi функция CreateProcessWithLogonW
    #39991773
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vik153521Подскажите пожалуйста в чем может быть проблема?

Ну, например, я ни за что не поверю, что твой Windows Domain называется "WORKGROUP".

А вообще 0xc0000142 это ошибка загрузки какой-то библиотеки, обычно возникает из-за
несовпадения разрядностей. ProcessMonitor в руки и тщательно изучать что и откуда пытается
загружаться.

PS: В диалоговых окнах, включая сообщения об ошибках, работает Ctrl-C. Не стоит изображать
блондинку со скриншотами.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос по winapi функция CreateProcessWithLogonW
    #39991785
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
si.lpDesktop:=PChar('winsta0\\Defailt');


Это правильно?
...
Рейтинг: 0 / 0
Вопрос по winapi функция CreateProcessWithLogonW
    #39991787
Vik153521
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
d7i,

Нет это опечатка, но ее исправление к сожалению не решает проблему.
...
Рейтинг: 0 / 0
Вопрос по winapi функция CreateProcessWithLogonW
    #39991812
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vik153521, не знаю как в Windows10 (наверное 64 бит?), но в 32-битном API используются 2 функции:
LogonUser и CreateProcessAsUser. Читайте внимательно MSDN, там всё есть...
...
Рейтинг: 0 / 0
Вопрос по winapi функция CreateProcessWithLogonW
    #39991851
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vik153521,

Смотри JCL. Moдуль jclMiscel. Функция CreateProcessAsUserEx(). Зачем изобретать велосипеды?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вопрос по winapi функция CreateProcessWithLogonW
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]