Вниз
Скачать: CL | DM;

CreateProcessWithLogonW   Найти похожие ветки 

← →
AlexTregubov ©   (2003-09-09 16:07) [0]

Мастера!!! Подскажите, как с этой функцией работать.
Весь день бьюсь с ней и никак не могу одолеть.
Постоянно Access Violation возникает, хотя вроде бы все верно.

Заранее спасибо


← →
clickmaker ©   (2003-09-09 16:12) [1]

Такое впечатление, что тут не форум по дельфи, а конкурс телепатов какой-то...

Хоть бы код публиковали, уважаемые вопрошающие, а ?


← →
AlexTregubov ©   (2003-09-09 16:24) [2]

Вот пример


ZeroMemory(@SInfo,SizeOf(SInfo));
SInfo.cb:=SizeOf(SInfo);
ZeroMemory(@PInfo,SizeOf(PInfo));
if not CreateProcessWithLogonW(PWideChar(strUserName),
nil,
PWideChar(strPassword),
0,
PWideChar(strAppName),
nil,
CREATE_DEFAULT_ERROR_MODE or
CREATE_NEW_CONSOLE or
CREATE_NEW_PROCESS_GROUP,
nil,
nil,
SInfo,
Pinfo)
then ShowMessage("Не работает");


← →
clickmaker ©   (2003-09-09 16:38) [3]

А как описана функция? В Д5 source ее ведь нет


← →
AlexTregubov ©   (2003-09-09 16:41) [4]

Она есть в Advapi32.dll

BOOL CreateProcessWithLogonW(
LPCWSTR lpUsername, // user"s name
LPCWSTR lpDomain, // user"s domain
LPCWSTR lpPassword, // user"s password
DWORD dwLogonFlags, // logon option
LPCWSTR lpApplicationName, // executable module name
LPWSTR lpCommandLine, // command-line string
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // new environment block
LPCWSTR lpCurrentDirectory, // current directory name
LPSTARTUPINFOW lpStartupInfo, // startup information
LPPROCESS_INFORMATION lpProcessInfo // process information
);


← →
clickmaker ©   (2003-09-09 16:44) [5]

Понятно, что там она есть )
В дельфях она как описана?


← →
AlexTregubov ©   (2003-09-09 16:45) [6]


unit Win2kUtils;

interface

uses
Windows;

function CreateProcessWithLogonW(
lpUsername: PWideChar; // user"s name
lpDomain: PWideChar; // user"s domain
lpPassword: PWideChar; // user"s password
dwLogonFlags: integer; // logon option
lpApplicationName: PWideChar; // executable module name
lpCommandLine: PWideChar; // command-line string
dwCreationFlags: integer; // creation flags
lpEnvironment: Pointer; // new environment block
lpCurrentDirectory: PWideChar; // current directory name
lpStartupInfo: TStartupInfo; // startup information
lpProcessInfo: TProcessInformation // process information
): boolean; stdcall;

implementation

function CreateProcessWithLogonW; external "Advapi32.dll" name "CreateProcessWithLogonW";

end.


← →
clickmaker ©   (2003-09-09 16:57) [7]

Правильней так:

function CreateProcessWithLogonW(
const lpUsername: PWideChar; // user"s name
const lpDomain: PWideChar; // user"s domain
const lpPassword: PWideChar; // user"s password
dwLogonFlags: Cardinal; // logon option
const lpApplicationName: PWideChar; // executable module name
lpCommandLine: PWideChar; // command-line string
dwCreationFlags: Cardinal; // creation flags
lpEnvironment: Pointer; // new environment block
const lpCurrentDirectory: PWideChar; // current directory name
lpStartupInfo: TStartupInfo; // startup information
var lpProcessInfo: TProcessInformation // process information
): BOOL; stdcall;


В lpProcessInfo она возвращает инфу о процессе, поэтому var.
Либо и lpStartupInfo и lpProcessInfo обозначить как Pointer и передавать @SInfo и @PInfo


← →
clickmaker ©   (2003-09-09 17:02) [8]

Сорри, нужно const lpStartupInfo: STARTUPINFO, а то скорей всего опять AV будет


← →
Игорь Шевченко ©   (2003-09-09 17:03) [9]

И где же наконец, GetLastError ? точно, телепатов ищем :)


← →
Игорь Шевченко ©   (2003-09-09 17:05) [10]

И еще: как объявлены переменные strUserName и прочие ?



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.022 c
1-41156
Михаил
2003-11-03 11:59
2003.11.13
Help


1-41572
Udjin
2003-10-27 14:42
2003.11.13
Сравнение экземпляров классов


8-41741
Linork
2003-07-14 21:12
2003.11.13
Програмирование по MEDIA


3-40830
geg
2003-10-22 09:25
2003.11.13
IBQuery1 filds то F_1 to SUM


1-41300
zapped
2003-10-31 10:19
2003.11.13
Run




   Наверх