Re[4]: Имя пользователя в процесе логона
От: Тарик Украина  
Дата: 11.10.03 18:49
Оценка:
Здравствуйте, server_mouse, Вы писали:

_>Здравствуйте, Тарик, Вы писали:


Т>>Пробовал.... Или пустая строка или випадает в систему с ошибкой....

Т>>Может я не правлиьно работал с PWSTR типом...
Т>>Подскажите как его перевести в какойнибудь стандартний...

_>Вот пример:

_>
_>int WINAPI WlxLoggedOutSAS(PVOID pWlxContext,DWORD dwSasType,PLUID pAuthenticationId,PSID pLogonSid,PDWORD pdwOptions,PHANDLE phToken,PWLX_MPR_NOTIFY_INFO pMprNotifyInfo,PVOID *pProfile)
_>{
_>    char *sLogin=NULL;
_>//Вызываем оригинальную гину
_>    int nRet=Wlxtbl.WlxLoggedOutSAS(pWlxContext,dwSasType,pAuthenticationId,pLogonSid,pdwOptions,phToken,pMprNotifyInfo,pProfile);
_>    if(WLX_SAS_ACTION_LOGON==nRet)
_>    {
_>        //Если логон успешный - тырим логин...
_>        char *sLogin=new char[wcslen(pNprNotifyInfo->pszUserName)+1];
_>        sprintf(sLogin,"%ws",pNprNotifyInfo->pszUserName);
_>    }
_>//Ну во и всё. Если всё намана, логин лежит в sLogin...
_>//..... делаем свои чудеса
_>    return nRet;
_>}
_>


Большое спасибо.....
Помогло....
Но еще вопрос...

Изменяем пример так:
int WINAPI WlxLoggedOutSAS(PVOID pWlxContext,DWORD dwSasType,PLUID pAuthenticationId,PSID pLogonSid,PDWORD pdwOptions,PHANDLE phToken,PWLX_MPR_NOTIFY_INFO pMprNotifyInfo,PVOID *pProfile)
{
char *sLogin=NULL;
//Вызываем оригинальную гину
int nRet=Wlxtbl.WlxLoggedOutSAS(pWlxContext,dwSasType,pAuthenticationId,pLogonSid,pdwOptions,phToken,pMprNotifyInfo,pProfile);
if(WLX_SAS_ACTION_LOGON==nRet)
{
//Если логон успешный — тырим логин...
char *sLogin=new char[wcslen(pNprNotifyInfo->pszUserName)+1];
sprintf(sLogin,"%ws",pNprNotifyInfo->pszUserName);
MessageBox(NULL,TEXT(sLogin),TEXT(sLogin),MB_OK);
}
MessageBox(NULL,TEXT(sLogin),TEXT(sLogin),MB_OK);
//Ну во и всё. Если всё намана, логин лежит в sLogin...
//..... делаем свои чудеса
return nRet;
}

В итоге первый месаге бокс показывает логин
а второй говорит ерор... и не показывет логин....

Если убрать первый то второй тоже не показывает логин а только пустую срочку с названием
окна "Error".
Что это значит...????
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.