Форум: "WinAPI";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c