- ·上一篇文章:在ASP中模拟.NET下的cache技术
- ·下一篇文章:在ASP程序中访问Access数据库
得到95和NT中正在运行的进程
有些时候,我们在运行一些程序的时候,需要得到当前系统中所有的进程的列表。当然,这对于一个比较熟悉计算机的人来说,很简单,在WINNT中我们可以使用任务管理器来知道,在WIN95/98/ME中我们可以使用一些工具来知道就可以了。不过我们现在要写一个既能在NT中运行,又能在95/98/ME中运行的程序,它能得到进程的列表,而又不必要一些麻烦的操作。因此,我写了一个C++类,它使用Win32Process来得到当前系统中所有运行的进程,当然肯定是用MFC写的,而且这个程序在NT和95/98/ME中都能运行,这就是我在这儿提出来的原因。这个程序能得知系统的类型,并且选择要运行程序的哪部分,进行什么操作。
该类的代码是这样写的(代码可到“程序代码”下载),它使用了DLL,函数都是动态加载的,所以你不必要去连接一个LIB文件,而使得你的代码(或者是你的工程设置)在NT和98/95/ME中需要不同的的写法(需要不同的设置)。比如,我们在NT上编译,但是我们需要使用WIN95中的TOOLHELP函数Process32Next(),即使这样,编译、连接和运行却都能进行。因此,我们要做的就是把代码加到你工程中去,然后你就能高枕无忧的运行就行了,因为类回自动选择该用什么。
使用步骤:
1.要使用这个类,首先得把它的头文件加到我们要用的地方。
2.然后声明变量,比如:Win32Process m_win32proc。
3.在使用之前还应该初始化它,代码如下:
if(!m_win32proc.Init())
AfxMessageBox(m_win32proc.GetLastError());
如果你是在95上初始的,就能得到需要的函数的指针。如果是在NT上的,该函数什么事都不干,但是它还是会被调用的。运行成功的话就返回TRUE值,失败则是FALSE,如果要想得到是什么错误的话,可以调用GetLastError(),它能返回一个关于错误属性的字符串。如下,就可以得到进程的列表了:
if (!m_win32proc.EnumAllProcesses())
{
AfxMessageBox(m_win32proc.GetLastError());
return;
}
热门推荐:ASP与数据库应用(给初学者) php入门
该类的代码是这样写的(代码可到“程序代码”下载),它使用了DLL,函数都是动态加载的,所以你不必要去连接一个LIB文件,而使得你的代码(或者是你的工程设置)在NT和98/95/ME中需要不同的的写法(需要不同的设置)。比如,我们在NT上编译,但是我们需要使用WIN95中的TOOLHELP函数Process32Next(),即使这样,编译、连接和运行却都能进行。因此,我们要做的就是把代码加到你工程中去,然后你就能高枕无忧的运行就行了,因为类回自动选择该用什么。
使用步骤:
1.要使用这个类,首先得把它的头文件加到我们要用的地方。
2.然后声明变量,比如:Win32Process m_win32proc。
3.在使用之前还应该初始化它,代码如下:
if(!m_win32proc.Init())
AfxMessageBox(m_win32proc.GetLastError());
如果你是在95上初始的,就能得到需要的函数的指针。如果是在NT上的,该函数什么事都不干,但是它还是会被调用的。运行成功的话就返回TRUE值,失败则是FALSE,如果要想得到是什么错误的话,可以调用GetLastError(),它能返回一个关于错误属性的字符串。如下,就可以得到进程的列表了:
if (!m_win32proc.EnumAllProcesses())
{
AfxMessageBox(m_win32proc.GetLastError());
return;
}


