JesúsGandia Master


Registrado: 17 Jul 2004Mensajes: 403Ubicación: Gandia, Valencia
|
Publicado: Lun 26 Nov, 2018 2:01 pm Asunto: Recuperar ID actual USUARIO WINDOWS |
|
|
| Código: |
//Capturo el ID del USUARIO WINDOWS
String USER_Win(void)
{
TRegistry *Registro = new TRegistry;
Registro->RootKey = HKEY_CURRENT_USER;
TStringList* USER = new TStringList();
String VALUE = NULL;//String para retornar
if(Registro->OpenKeyReadOnly(L"SOFTWARE\\Microsoft\\Internet Explorer\\InternetRegistry\\REGISTRY\\USER"))
Registro->GetKeyNames(USER);//Capturo todas las Claves dentro de USER
if(!USER->Strings[0].IsEmpty()) //Solo recupero la primera CLAVE de la Lista,
VALUE = USER->Strings[0]; //puesto que en teoria solo hay una CLAVE por USUARIO WINDOWS.
Registro->CloseKey();
delete Registro;//Elimino TRegistry
delete USER;//Elimino TStringList()
return VALUE;
}
|
Otra posible utilidad es para poder comprobar más instancias de una misma aplicación desde distintos USUARIOS WINDOWS.
| Código: |
//---------------------------------------------------------------------------
//Comprobar instancias de USUARIOS WINDOWS
bool __fastcall USER_Win(void)
{
bool VALUE = false;//Si existe otra Instancia devuelve true
TRegistry *Registro = new TRegistry;
Registro->RootKey = HKEY_CURRENT_USER;
TStringList* USER = new TStringList();
if(Registro->OpenKeyReadOnly(L"SOFTWARE\\Microsoft\\Internet Explorer\\InternetRegistry\\REGISTRY\\USER"))
Registro->GetKeyNames(USER);//Capturo todas las Claves dentro de USER
Registro->CloseKey();
delete Registro;//Elimino TRegistry
if(!USER->Strings[0].IsEmpty())//Solo recupero la primera CLAVE de la Lista, puesto que en teoria solo hay una CLAVE por USUARIO WINDOWS.
{
TIniFile* DAT = new TIniFile("C:\\User.dat");
if(!FileExists("C:\\User.dat"))
{//Si el fichero aun no existe, crea la sección y el valor ID de USUARIO
if(DAT->ReadString("Nombre Seccion", "ID Usuario Windows", "").IsEmpty())
DAT->WriteString("Nombre Seccion", "ID Usuario Windows", USER->Strings[0]);
}
else
{//Si el fichero existe, comparo que la los USUARIO no sean los mismos
if(USER->Strings[0] != DAT->ReadString("Nombre Seccion", "ID Usuario Windows", ""))
VALUE = true;//Para que esto funcione solo la primera instancia del PROGRAMA al cerrarse o salir, debe eliminar el fichero User.dat
}
delete DAT;
}
delete USER;//Elimino TStringList()
return VALUE;
}
//---------------------------------------------------------------------------
|
_________________ Muchos hombres no se equivocan jamás porque no se proponen nada razonable. |
|