本文整理汇总了C#中System.Diagnostics.ProcessInfo类的典型用法代码示例。如果您正苦于以下问题:C# ProcessInfo类的具体用法?C# ProcessInfo怎么用?C# ProcessInfo使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ProcessInfo类属于System.Diagnostics命名空间,在下文中一共展示了ProcessInfo类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Enum
public static ProcessInfo[] Enum()
{
List<ProcessInfo> Result = new List<ProcessInfo>();
Process[] ProcList = Process.GetProcesses();
for (int i = 0; i < ProcList.Length; i++)
{
Process Proc = ProcList[i];
try
{
ProcessInfo Info = new ProcessInfo();
Info.FileName = Proc.MainModule.FileName;
Info.Id = Proc.Id;
Info.Is64Bit = RemoteHooking.IsX64Process(Proc.Id);
Info.Identity = RemoteHooking.GetProcessIdentity(Proc.Id).Owner.ToString();
Result.Add(Info);
}
catch
{
}
}
return Result.ToArray();
}
示例2: EnumProcesses
public static ProcessInfo[] EnumProcesses()
{
var result = new List<ProcessInfo>();
var procList = Process.GetProcesses();
foreach (var proc in procList)
{
try
{
var info = new ProcessInfo
{
FileName = proc.MainModule.FileName,
ID = proc.Id,
Is64Bit = RemoteHooking.IsX64Process(proc.Id),
User = RemoteHooking.GetProcessIdentity(proc.Id)
.Name
};
result.Add(info);
}
catch
{
}
}
return result.ToArray();
}
示例3: EnumProcesses
public static ProcessInfo[] EnumProcesses()
{
List<ProcessInfo> result = new List<ProcessInfo>();
Process[] procList = Process.GetProcesses();
for (int i = 0; i < procList.Length; i++)
{
Process proc = procList[i];
try
{
ProcessInfo info = new ProcessInfo();
info.FileName = proc.MainModule.FileName;
info.Id = proc.Id;
info.Is64Bit = RemoteHooking.IsX64Process(proc.Id);
info.User = RemoteHooking.GetProcessIdentity(proc.Id).Name;
result.Add(info);
}
catch
{
}
}
return result.ToArray();
}
示例4: FileLocker
static FileLocker()
{
Process currentProcess = Process.GetCurrentProcess();
Int32 processId = currentProcess.Id;
String processName = currentProcess.ProcessName;
Int64 startTimeTicks = currentProcess.StartTime.Ticks;
CurrentProcessInfo = new ProcessInfo(processId, processName, startTimeTicks);
}
示例5: CreateProcessInfo
// -----------------------------
// ---- PAL layer ends here ----
// -----------------------------
private static ProcessInfo CreateProcessInfo(int pid)
{
// Negative PIDs aren't valid
if (pid < 0)
{
throw new ArgumentOutOfRangeException("pid");
}
ProcessInfo procInfo = new ProcessInfo()
{
ProcessId = pid
};
// Try to get the task info. This can fail if the user permissions don't permit
// this user context to query the specified process
Interop.libproc.proc_taskallinfo? info = Interop.libproc.GetProcessInfoById(pid);
if (info.HasValue)
{
// Set the values we have; all the other values don't have meaning or don't exist on OSX
Interop.libproc.proc_taskallinfo temp = info.Value;
unsafe { procInfo.ProcessName = Marshal.PtrToStringAnsi(new IntPtr(temp.pbsd.pbi_comm)); }
procInfo.BasePriority = temp.pbsd.pbi_nice;
procInfo.HandleCount = Interop.libproc.GetFileDescriptorCountForPid(pid);
procInfo.VirtualBytes = (long)temp.ptinfo.pti_virtual_size;
procInfo.WorkingSet = (long)temp.ptinfo.pti_resident_size;
}
// Get the sessionId for the given pid, getsid returns -1 on error
int sessionId = Interop.libc.getsid(pid);
if (sessionId != -1)
procInfo.SessionId = sessionId;
// Create a threadinfo for each thread in the process
List<KeyValuePair<ulong, Interop.libproc.proc_threadinfo?>> lstThreads = Interop.libproc.GetAllThreadsInProcess(pid);
foreach (KeyValuePair<ulong, Interop.libproc.proc_threadinfo?> t in lstThreads)
{
var ti = new ThreadInfo()
{
_processId = pid,
_threadId = (int)t.Key, // The OS X thread ID is 64-bits, but we're forced to truncate due to the public API signature
_basePriority = 0,
_startAddress = IntPtr.Zero
};
// Fill in additional info if we were able to retrieve such data about the thread
if (t.Value.HasValue)
{
ti._currentPriority = t.Value.Value.pth_curpri;
ti._threadState = ConvertOsxThreadRunStateToThreadState((Interop.libproc.ThreadRunState)t.Value.Value.pth_run_state);
ti._threadWaitReason = ConvertOsxThreadFlagsToWaitReason((Interop.libproc.ThreadFlags)t.Value.Value.pth_flags);
}
procInfo._threadInfoList.Add(ti);
}
return procInfo;
}
示例6: AddHookedProcess
//private static List<Int32> ActivePIDList = new List<Int32>();
public static ProcessInfo AddHookedProcess(Process process)
{
lock (ProcessList)
{
ProcessInfo pInfo = new ProcessInfo(process);
ProcessList.Add(pInfo);
HookedProcesses.Add(process.Id);
return pInfo;
}
}
示例7: Player
public Player()
{
currentState = new LoginState(this);
ProcessInfo = new ProcessInfo();
ProcessInfo.Status = ProcessInfo.StatusCode.NotInitialized;
Messager = new Messager();
messageQueue = Messager.Queue;
messagerThread = new Thread(
new ThreadStart(Messager.Receive));
messagerThread.Start();
}
示例8: CreateProcess
// CreateProcess wrapper
public static bool CreateProcess(String ExeName, String
CmdLine, ProcessInfo pi)
{
if (pi == null)
pi = new ProcessInfo();
byte[] si = new byte[128];
return CreateProcess(ExeName, CmdLine, IntPtr.Zero,
IntPtr.Zero, 0, 0, IntPtr.Zero, IntPtr.Zero, si, pi) != 0;
}
示例9: GetProcesses
private void GetProcesses()
{
listBox1.Items.Clear();
var processes = Process.GetProcesses();
foreach (var process in processes)
{
var processInfo = new ProcessInfo(process.Id, process.ProcessName);
listBox1.Items.Add(processInfo);
}
}
示例10: CreateProcessWithLogonW
static extern bool CreateProcessWithLogonW(
string principal,
string authority,
string password,
LogonFlags logonFlags,
string appName,
string cmdLine,
CreationFlags creationFlags,
IntPtr environmentBlock,
string currentDirectory,
ref StartupInfo startupInfo,
out ProcessInfo processInfo);
示例11: CreateProcessInfo
// -----------------------------
// ---- PAL layer ends here ----
// -----------------------------
private unsafe static ProcessInfo CreateProcessInfo(int pid)
{
// Negative PIDs aren't valid
if (pid < 0)
{
throw new ArgumentOutOfRangeException("pid");
}
ProcessInfo procInfo = new ProcessInfo();
// Try to get the task info. This can fail if the user permissions don't permit
// this user context to query the specified process
Interop.libproc.proc_taskallinfo? info = Interop.libproc.GetProcessInfoById(pid);
if (info.HasValue)
{
// We need to convert the byte pointer to an IntPtr
// that we can pass to the Marshal.PtrToStringAnsi call
// but the nullable struct type makes it difficult to inline,
// so make a temp variable to remove the nullable and get the pointer
Interop.libproc.proc_taskallinfo temp = info.Value;
IntPtr ptrString = new IntPtr(temp.pbsd.pbi_comm);
// Set the values we have; all the other values don't have meaning or don't exist on OSX
procInfo.BasePriority = temp.ptinfo.pti_priority;
procInfo.HandleCount = Interop.libproc.GetFileDescriptorCountForPid(pid);
procInfo.ProcessId = pid;
procInfo.ProcessName = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(ptrString);
procInfo.VirtualBytes = (long)temp.ptinfo.pti_virtual_size;
procInfo.WorkingSet = (long)temp.ptinfo.pti_resident_size;
}
// Create a threadinfo for each thread in the process
List<KeyValuePair<ulong, Interop.libproc.proc_threadinfo?>> lstThreads = Interop.libproc.GetAllThreadsInProcess(pid);
foreach (KeyValuePair<ulong, Interop.libproc.proc_threadinfo?> t in lstThreads)
{
if (t.Value.HasValue)
{
procInfo._threadInfoList.Add(new ThreadInfo()
{
_basePriority = 0,
_currentPriority = t.Value.Value.pth_curpri,
_processId = pid,
_startAddress = IntPtr.Zero, // We don't have this info
_threadId = Convert.ToInt32(t.Key),
_threadState = ConvertOsxThreadRunStateToThreadState((Interop.libproc.ThreadRunState)t.Value.Value.pth_run_state),
_threadWaitReason = ConvertOsxThreadFlagsToWaitReason((Interop.libproc.ThreadFlags)t.Value.Value.pth_flags)
});
}
}
return procInfo;
}
示例12: Init
public override void Init(string xmlInformation)
{
XmlDocument xmlDoc = new XmlDocument();
List<ProcessInfo> list = new List<ProcessInfo>();
xmlDoc.LoadXml(xmlInformation);
foreach (XmlNode node in xmlDoc.ChildNodes[0].ChildNodes)
{
ProcessInfo pInfo = new ProcessInfo();
pInfo.PID = int.Parse(node.Attributes["ID"].Value);
pInfo.Name = node.Attributes["Name"].Value;
pInfo.MemoryUsed = long.Parse(node.Attributes["Memory"].Value);
list.Add(pInfo);
}
Processes = list.ToArray();
}
示例13: GetHookedProcess
public static ProcessInfo GetHookedProcess(Process process)
{
lock (ProcessList)
{
ProcessInfo pInfo = new ProcessInfo(process);
int index = ProcessList.IndexOf(pInfo);
if (index > -1)
{
return ProcessList[index];
}
else
{
return null;
}
}
}
示例14: WaitUntilProcessReady
public override IEnumerator<object> WaitUntilProcessReady(ProcessInfo process)
{
bool isReady = false;
do {
yield return Program.EvalPython<bool>(process, @"
try:
m = __import__('uix')
g = getattr(__import__('__builtin__'), 'sm', None)
return (m is not None) and (g is not None)
except:
return False").Bind(() => isReady);
yield return new Sleep(1);
} while (!isReady);
Console.WriteLine("EVE started.");
}
示例15: GetInformationXML
protected override string GetInformationXML()
{
StringBuilder strBld = new StringBuilder();
strBld.Append("<ProcessStateInfo>");
if (activeProcesses != null)
{
if (activeProcesses.Length > 0)
{
foreach (Process p in activeProcesses)
{
ProcessInfo pInfo = new ProcessInfo();
pInfo.Name = p.ProcessName;
pInfo.MemoryUsed = p.PagedMemorySize64;
pInfo.PID = p.Id;
strBld.Append(pInfo.ToXML());
}
}
}
strBld.Append("</ProcessStateInfo>");
return strBld.ToString();
}