Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 22-10-2015
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Puedes encontrar el usuario y el dominio conociendo el Pid de un proceso con esta función:
Código Delphi [-]
 type
 WTS_PROCESS_INFO = record
   SessionId: DWORD;    // session id
   ProcessId: DWORD;    // process id
   pProcessName: LPSTR; // name of process
   pUserSid: PSID;      // user's SID
 end;
 PWTS_PROCESS_INFO = ^WTS_PROCESS_INFO;

 TA_WTS_PROCESS_INFO = array of WTS_PROCESS_INFO;
 PTA_WTS_PROCESS_INFO = ^TA_WTS_PROCESS_INFO;

 function WTSEnumerateProcessesA(hServer: Cardinal; Reserved: DWORD; Version: DWORD;
   var ppProcessInfo: PWTS_PROCESS_INFO; var pCount: DWORD): BOOL; stdcall external 'Wtsapi32.dll';
 procedure WTSFreeMemory(pMemory: Pointer); stdcall external 'Wtsapi32.dll';

 implementation

 function GetUserAndDomainFromPID(ProcessId: Cardinal; var User, Domain: String): boolean;
 var
   snu: SID_NAME_USE;
   pProcessInfo: TA_WTS_PROCESS_INFO;
   nProc,UserSize, DomainSize: Cardinal;
 begin
   Result:= false;
   nProc:= 0;
   UserSize:= 0;
   DomainSize:= 0;

   if WTSEnumerateProcessesA(0, 0, 1, PWTS_PROCESS_INFO(pProcessInfo), nProc) then
   begin
     repeat dec(nProc) until (nProc <= 0) or (ProcessId = pProcessInfo[nProc].ProcessId);
     LookupAccountSid(nil, pProcessInfo[nProc].pUserSid, nil, UserSize, nil, DomainSize, snu);
     if (UserSize <> 0) or (DomainSize <> 0) then
     begin
       SetLength(User, UserSize);
       SetLength(Domain, DomainSize);
       Result:= LookupAccountSid(nil, pProcessInfo[nProc].pUserSid, @User[1], UserSize, @Domain[1], DomainSize, snu);
     end;
     WTSFreeMemory(pProcessInfo);
   end;
 end;

Más información aquí.

Saludos.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
problemas con impresoras en aplicación en terminal server engranaje Impresión 0 11-07-2011 12:16:18
BDE y terminal server yogutero Conexión con bases de datos 6 02-08-2007 15:30:01
Ejecucion de Aplicación en Windows 2000 Server skywaker Servers 2 23-05-2007 17:47:34
Problemas con Terminal Server Win 2003 Server El_Perrito Windows 0 16-10-2004 19:53:45
Detectar Sesión de Terminal Server muli API de Windows 1 15-08-2004 02:06:34


La franja horaria es GMT +2. Ahora son las 21:22:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi