Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.47 MB
Время: 0.033 c
7-42152
G-ray
2003-09-02 15:13
2003.11.13
Блокировка запеска *.exe файлов..


1-41334
ViJen
2003-11-04 17:10
2003.11.13
Свой компонент


4-42275
samson
2003-09-12 08:15
2003.11.13
очередь сообщений Windows


3-41011
WerWolof
2003-10-15 22:29
2003.11.13
Проблема с Excel


1-41633
Islander
2003-10-25 22:28
2003.11.13
Как переопределить событие в классе-наследнике?





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