2011-07-21 13 views
5

GetModuleFileNameEx() tarafından çeşitli sistem süreçlerinin yolunu elde değil kodudur tüm süreçlerin yolunu bilmiyorum. Firefox ve diğer benzer kullanıcı seviyesi süreçlerinin yolunu bulmak için iyi çalışıyor. Ancak alg, Svchost gibi süreçler için, bu yöntemle yolu alamıyorum. Tahminimce farklı bir API kullanmalıyım. Bu sorunu nasıl giderebilirim?Ben vs. Burada svchost, Firefox, gibi çeşitli ağ süreçlerin yolunu almak için bu fonksiyonu yarattık

Windows XP, 32 bit kullanıyorum.

cevap

8

Hata ayıklama ayrıcalıklarını ayarlamanız gerekir. Burada nasıl yapıldığını geçerli:

function NTSetPrivilege(sPrivilege: string; bEnabled: Boolean): Boolean; 
var 
    hToken: THandle; 
    TokenPriv: TOKEN_PRIVILEGES; 
    PrevTokenPriv: TOKEN_PRIVILEGES; 
    ReturnLength: Cardinal; 
begin 
    Result := True; 

    // Only for Windows NT/2000/XP and later. 
    if not (Win32Platform = VER_PLATFORM_WIN32_NT) then Exit; 

    Result := False; 

    // Obtain the processes token 
    if OpenProcessToken(GetCurrentProcess(), 
    TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then 
    begin 
    try 
     // Get the locally unique identifier (LUID) . 
     if LookupPrivilegeValue(nil, PChar(sPrivilege), 
     TokenPriv.Privileges[0].Luid) then 
     begin 
     TokenPriv.PrivilegeCount := 1; // One privilege to set 

     case bEnabled of 
      True: TokenPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; 
      False: TokenPriv.Privileges[0].Attributes := 0; 
     end; 

     ReturnLength := 0; // Replaces a var parameter 
     PrevTokenPriv := TokenPriv; 

     // Enable or disable the privilege 

     AdjustTokenPrivileges(hToken, False, TokenPriv, SizeOf(PrevTokenPriv), 
      PrevTokenPriv, ReturnLength); 
     end; 
    finally 
     CloseHandle(hToken); 
    end; 
    end; 
end; 

NtSetPrivilege('SeDebugPrivilege', TRUE); // Call this on form create 
+1

Çok teşekkürler işlemkodu, bu daha sonra Vista veya desteklemeyi planlıyoruz eğer güzelce – CyprUS

+1

1 @CyprUS Hemen UAC sorunu sakının çalışır. –

İlgili konular