Fixed wrong usernames when Process Hacker is running as a non-admin user

git-svn-id: svn://svn.code.sf.net/p/processhacker/code@241 21ef857c-d57f-4fe0-8362-d861dc6d29cd
This commit is contained in:
wj32
2008-12-06 08:52:30 +00:00
parent d0569058da
commit 367e30e770
3 changed files with 22 additions and 14 deletions
+1
View File
@@ -1,6 +1,7 @@
Process Hacker
1.2.4.0
* Fixed wrong usernames when Process Hacker is running as a non-admin user
1.2.3.5
* Added handle viewing/closing support
@@ -138,7 +138,6 @@ namespace ProcessHacker
Properties.Settings.Default.ShowAccountDomains);
item.UsernameWithDomain = Win32.GetProcessUsername(p.Handle.ToInt32(),
true);
}
catch
{
@@ -149,13 +148,7 @@ namespace ProcessHacker
item.UsernameWithDomain = tsProcesses[p.Id].UsernameWithDomain;
}
catch
{
if (System.Runtime.InteropServices.Marshal.GetLastWin32Error() == 5)
{
item.Username = "(" + Win32.GetLastErrorMessage() + ")";
item.UsernameWithDomain = "(" + Win32.GetLastErrorMessage() + ")";
}
}
{ }
}
newdictionary.Add(p.Id, item);
@@ -196,10 +189,7 @@ namespace ProcessHacker
newitem.UsernameWithDomain = tsProcesses[p.Id].UsernameWithDomain;
}
catch
{
newitem.Username = item.Username;
newitem.UsernameWithDomain = item.UsernameWithDomain;
}
{ }
}
if (newitem.MemoryUsage != item.MemoryUsage ||
+19 -2
View File
@@ -2096,8 +2096,25 @@ namespace ProcessHacker
returnProcesses[i].Info = (WTS_PROCESS_INFO)Marshal.PtrToStructure(
new IntPtr(processes + Marshal.SizeOf(typeof(WTS_PROCESS_INFO)) * i), typeof(WTS_PROCESS_INFO));
returnProcesses[i].Username = GetAccountName(returnProcesses[i].Info.SID, false);
returnProcesses[i].UsernameWithDomain = GetAccountName(returnProcesses[i].Info.SID, true);
try
{
if (returnProcesses[i].Info.SID == 0)
throw new Exception("Null SID pointer");
returnProcesses[i].Username = GetAccountName(returnProcesses[i].Info.SID, false);
}
catch
{ }
try
{
if (returnProcesses[i].Info.SID == 0)
throw new Exception("Null SID pointer");
returnProcesses[i].UsernameWithDomain = GetAccountName(returnProcesses[i].Info.SID, true);
}
catch
{ }
}
WTSFreeMemory(processes);