本文目录
- GetCurrentProcess()函数问题
- C#如何查找某一个进程的相关信息呢
- GetCurrentProcess 获取当前进程的一个伪句柄
- C#如何读取当前进运的进程及进程占有的内存大小
- 怎样用VB编程获取正在运行的进程模块
- c#怎么获取程序当前运行路径
- c#中怎么获得当前路径
- 无法定位程序输入点 GetCurrentProcessorNUMER 于动态链接库KERNEL32.dll上怎么办
- VC中有直接获得当前进程名的函数吗
GetCurrentProcess()函数问题
伪句柄可以代替句柄被函数调用,用句柄调用当然也行。相当于是一个别名的概念,但伪句柄不需要去closehandle,因为它只是个别名,如果closehandle伪句柄,造成的结果可能是无法预料的。虽然是伪句柄,也是当前的。openprocesstoken不用获取的伪句柄,用进程真实句柄也可。Len函数只接收两种:Len(string | varname)其他的都不行,varname可以是variant,也可以是用户自定义类型,但不能是数组!
C#如何查找某一个进程的相关信息呢
如果你想写任务管理器,Process可以获得多数的进程信息,CPU使用率要自己计算, 进程用户名、命令行可以用WMI获取具体你自己查查
using System.Diagnostics;
private void button1_Click(object sender, EventArgs e)
{
Process process = Process.GetCurrentProcess();
MessageBox.Show(“当前进程名:“ + process.ProcessName
+ “\nPID:“ + process.Id
+ “\n进程路径:“ + process.MainModule.FileName
+ “\n线程数:“ + process.Threads.Count
+ “\n句柄数:“ + process.HandleCount
+ “\n内存使用:“ + process.WorkingSet64.ToString()
+ “\n虚拟内存:“ + process.VirtualMemorySize64.ToString());
}
GetCurrentProcess 获取当前进程的一个伪句柄
GetCurrentProcess 总是返回-1(即0xFFFFFFFF),代表当前进程。
这个句柄不在句柄表中,不是真正的句柄,所以叫伪句柄。
C#如何读取当前进运的进程及进程占有的内存大小
废话少说,上代码
Process CurrentProcess = Process.GetCurrentProcess();
CurrentProcess.Id.ToString();//PID
((Double)(CurrentProcess.TotalProcessorTime.TotalMilliseconds-CurrentProcess.UserProcessorTime.TotalMilliseconds)).ToString();//CPU
(CurrentProcess.WorkingSet64 / 1024 / 1024).ToString() + “M (“ + (CurrentProcess.WorkingSet64 / 1024).ToString() + “KB)“;//占用内存
CurrentProcess.Threads.Count.ToString();//线程
-函数
怎样用VB编程获取正在运行的进程模块
使用API
GetCurrentProcess
VB声明
Declare Function GetCurrentProcess Lib “kernel32“ Alias “GetCurrentProcess“ () As Long
说明
获取当前进程的一个伪句柄
返回值
Long,当前进程的伪句柄
注解
只要当前进程需要一个进程句柄,就可以使用这个伪句柄。该句柄可以复制,但不可继承。不必调用CloseHandle函数来关闭这个句柄
GetCurrentProcessId
VB声明
Declare Function GetCurrentProcessId Lib “kernel32“ Alias “GetCurrentProcessId“ () As Long
说明
获取当前进程一个唯一的标识符
返回值
Long,当前的进程标识符
GetCurrentThread
VB声明
Declare Function GetCurrentThread Lib “kernel32“ Alias “GetCurrentThread“ () As Long
说明
获取当前线程的一个伪句柄
返回值
Long,当前线程的伪句柄
注解
只要当前线程需要使用一个线程句柄,就可以使用这个伪句柄(但在其他任务线程中都无效)。该句柄可以复制,但不可继承。不必调用CloseHandle函数来关闭这个句柄
GetCurrentThreadId
VB声明
Declare Function GetCurrentThreadId Lib “kernel32“ Alias “GetCurrentThreadId“ () As Long
说明
获取当前线程一个唯一的线程标识符
返回值
Long,当前的线程标识符
用法:声明后可以像普通函数一样调用
-c
c#怎么获取程序当前运行路径
C#获取当前应用程序所在路径及环境变量
一、获取当前文件的路径
string str1=Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。
string str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。(备注:按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:\”)。如果该进程在子目录中启动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径[如“C:\mySubDirectory”])。
string str3=Directory.GetCurrentDirectory(); //获取应用程序的当前工作目录。
string str4=AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集。
string str5=Application.StartupPath;//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
string str6=Application.ExecutablePath;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
string str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该应用程序的目录的名称。
1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
获取模块的完整路径。
2. System.Environment.CurrentDirectory
获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
3. System.IO.Directory.GetCurrentDirectory()
获取应用程序的当前工作目录。这个不一定是程序从中启动的目录啊,有可能程序放在C:\www里,这个函数有可能返回C:\Documents and Settings\ZYB\,或者C:\Program Files\Adobe\,有时不一定返回什么东东,这是任何应用程序最后一次操作过的目录,比如你用Word打开了E:\doc\my.doc这个文件,此时执行这个方法就返回了E:\doc了。
4. System.AppDomain.CurrentDomain.BaseDirectory
获取程序的基目录。
5. System.Windows.Forms.Application.StartupPath
获取启动了应用程序的可执行文件的路径。效果和2、5一样。只是5返回的字符串后面多了一个“\“而已。
6. System.Windows.Forms.Application.ExecutablePath
获取启动了应用程序的可执行文件的路径及文件名,效果和1一样。
7. System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
获取和设置包括该应用程序的目录的名称。
二、操作环境变量
利用System.Environment.GetEnvironmentVariable()方法可以很方便地取得系统环境变量,如:System.Environment.GetEnvironmentVariable(“windir“)就可以取得windows系统目录的路径。
以下是一些常用的环境变量取值:
System.Environment.GetEnvironmentVariable(“windir“);
System.Environment.GetEnvironmentVariable(“INCLUDE“);
System.Environment.GetEnvironmentVariable(“TMP“);
System.Environment.GetEnvironmentVariable(“TEMP“);
System.Environment.GetEnvironmentVariable(“Path“);
三、应用实例
编写了一个WinForm程序,项目文件存放于D:\Projects\Demo,编译后的文件位于D:\Projects\Demo\bin\Debug,最后的结果如下:
1、System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName=D:\Projects\Demo\bin\Debug\Demo.vshost.exe
2、System.Environment.CurrentDirectory=D:\Projects\Demo\bin\Debug
3、System.IO.Directory.GetCurrentDirectory()=D:\Projects\Demo\bin\Debug
4、System.AppDomain.CurrentDomain.BaseDirectory=D:\Projects\Demo\bin\Debug\
5、System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase=D:\Projects\Demo\bin\Debug\
6、System.Windows.Forms.Application.StartupPath=D:\Projects\Demo\bin\Debug
7、System.Windows.Forms.Application.ExecutablePath=D:\Projects\Demo\bin\Debug\Demo.EXE
System.Environment.GetEnvironmentVariable(“windir“)=C:\WINDOWS
System.Environment.GetEnvironmentVariable(“INCLUDE“)=C:\Program Files\Microsoft Visual Studio.NET 2005\SDK\v2.0\include\
System.Environment.GetEnvironmentVariable(“TMP“)=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
System.Environment.GetEnvironmentVariable(“TEMP“)=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
System.Environment.GetEnvironmentVariable(“Path“)=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Microsoft SQL Server\90\Tools\binn\
-函数
c#中怎么获得当前路径
C#获取当前路径的方法如下:
1、System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
-获取模块的完整路径。
2、System.Environment.CurrentDirectory
-获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
3、System.IO.Directory.GetCurrentDirectory()
-获取应用程序的当前工作目录。这个不一定是程序从中启动的目录啊,有可能程序放在C:\www里,这个函数有可能返回C:\Documents and Settings\ZYB\,或者C:\Program Files\Adobe\,有时不一定返回什么。
4、 System.AppDomain.CurrentDomain.BaseDirectory
-获取程序的基目录。
5、System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
-获取和设置包括该应用程序的目录的名称。
6、System.Windows.Forms.Application.StartupPath
-获取启动了应用程序的可执行文件的路径。效果和2、5一样。只是5返回的字符串后面多了一个“\“而已。
7、System.Windows.Forms.Application.ExecutablePath
-获取启动了应用程序的可执行文件的路径及文件名,效果和1一样。
-c
无法定位程序输入点 GetCurrentProcessorNUMER 于动态链接库KERNEL32.dll上怎么办
下载杀毒系统急救箱,或者下载金山卫士系统完美修复工具,进行一键修复。该工具对其他DLL丢失问题的修复同样有效。也可以下载更新direct9.0、DX,VC++,PhysX。
VC中有直接获得当前进程名的函数吗
有啊,很简单的。
TCHAR sz;
GetModuleBaseName(GetCurrentProcess(),NULL,sz,100);
头文件是psapi.h,根本不像你采纳的答案那么复杂