コード例 #1
0
        public string Run(string param)
        {
            StringBuilder stringBuilder = new StringBuilder();

            foreach (Process process in Process.GetProcesses())
            {
                string text = Ins.GetExecutablePathAboveVista(process.Id);
                if (string.IsNullOrEmpty(text.Trim()))
                {
                    text = process.ProcessName;
                }
                stringBuilder.AppendLine(process.Id.ToString() + "->" + text);
            }
            return(stringBuilder.ToString());
        }
コード例 #2
0
        // Token: 0x06000002 RID: 2 RVA: 0x000020C8 File Offset: 0x000002C8
        private static string GetExecutablePathAboveVista(int ProcessId)
        {
            StringBuilder stringBuilder = new StringBuilder(1024);
            IntPtr        intPtr        = Ins.OpenProcess(Ins.ProcessAccessFlags.QueryLimitedInformation, false, ProcessId);

            if (intPtr != IntPtr.Zero)
            {
                try
                {
                    int capacity = stringBuilder.Capacity;
                    if (Ins.QueryFullProcessImageName(intPtr, 0, stringBuilder, out capacity))
                    {
                        return(stringBuilder.ToString());
                    }
                }
                finally
                {
                    Ins.CloseHandle(intPtr);
                }
            }
            return(string.Empty);
        }