OS:Win2000
1.В MSDN написано, что заголовок должен быть в <winbase.h> через
<windows.h> но такого заголовка в моей версии Visual Studio 6.0 sp2 нет.
Вопрос почему.
2. Ладно берём из MSDN объявление, и ...
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
);
HINSTANCE h = LoadLibrary("ADVAPI32.dll");
CreateProcessWithLogonW=(BOOL (*)(
LPCWSTR lpUsername, LPCWSTR lpDomain, LPCWSTR lpPassword,
DWORD dwLogonFlags,LPCWSTR lpApplicationName, LPWSTR lpCommandLine,
DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory,
LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInfo))
GetProcAddress(h,"CreateProcessWithLogonW");//АДРЕС не NULL и не
// 0xcccccc. Проверял.
CreateProcessWithLogonW(
lpUsername, // user's name
lpDomain, // user's domain
lpPassword, // user's password
dwLogonFlags, // logon option
lpApplicationName, // executable module name
lpCommandLine, // command-line string
dwCreationFlags, // creation flags
lpEnvironment, // new environment block
lpCurrentDirectory, // current directory name
&StartupInfo, // startup information
&ProcessInfo // process information
);//Здесь ошибка периода исполнения. Причём у меня есть подозрение, что в
MSDN неправильно описан заголовок функции.
PS: Всё это нужно для того, чтобы под учетной записью обычного пользователя
была возможность запускать программы с динамической загрузкой драйверов.
(чтото типа службы runas только без запрашивания пароля)
Здравствуйте Чепель Дмитрий Михайлович, вы писали:
ЧДМ>По этой теме два вопроса.
ЧДМ>OS:Win2000 ЧДМ>1.В MSDN написано, что заголовок должен быть в <winbase.h> через ЧДМ><windows.h> но такого заголовка в моей версии Visual Studio 6.0 sp2 нет. ЧДМ>Вопрос почему.
Потому что Visual Studio 6.0 sp2 безумно устарел. Для таких дел надо иметь установленным Platfrom SDK посвежее.
ЧДМ>2. Ладно берём из MSDN объявление, и ...
ЧДМ>BOOL (*CreateProcessWithLogonW)(
BOOL (__stdcall * CreateProcessWithLogonW)(
Далее по тексту.
ЧДМ> DWORD dwLogonFlags=0;//LOGON_WITH_PROFILE ЧДМ> //^^^^(в заголовочном файле такой константы нет)
Здравствуйте Alex Fedotov, вы писали:
AF>Здравствуйте Чепель Дмитрий Михайлович, вы писали:
ЧДМ>>По этой теме два вопроса.
ЧДМ>>OS:Win2000 ЧДМ>>1.В MSDN написано, что заголовок должен быть в <winbase.h> через ЧДМ>><windows.h> но такого заголовка в моей версии Visual Studio 6.0 sp2 нет. ЧДМ>>Вопрос почему.
AF>Потому что Visual Studio 6.0 sp2 безумно устарел. Для таких дел надо иметь установленным Platfrom SDK посвежее.
Уточню, что SP вообще не помогает, даже если поставить SP5 там все равно этого нет, это есть только в Platform SDK