当前位置:首页 » 编程语言 » 句柄c语言

句柄c语言

发布时间: 2024-06-01 02:10:23

‘壹’ c语言中如何获得当前进程句柄,谢谢!

DWORD PID;
PID = GetProcessPID(L"test.exe");
//获取进程pid函数
DWORD GetProcessPID(LPCTSTR pName)
{
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (INVALID_HANDLE_VALUE == hSnapshot) {
return NULL;
}
PROCESSENTRY32 pe = { sizeof(pe) };
BOOL fOk;
for (fOk = Process32First(hSnapshot, &pe); fOk; fOk = Process32Next(hSnapshot, &pe)){
if (!_tcsicmp(pe.szExeFile, pName)) {
CloseHandle(hSnapshot);
return pe.th32ProcessID;
}
}
return NULL;
}
//由进程pid获取进程句柄,置顶
HWND hh = GetProcessTopWindows(PID);
HWND GetProcessTopWindows(DWORD dwPID){
count = 0;
EnumWindows((WNDENUMPROC)EnumWndProc, (LPARAM)dwPID);
if(count > 0) {
//cout << "窗口句柄是:" << nhWnd[count -1] << endl;//输出句柄,可用spy++工具核对
return (nhWnd[count -1]);
}
return NULL;
}
别忘了添加对应头文件。

‘贰’ HandleType;在c语言里是什么意思

这个是Windows API库里面的东西

‘叁’ 谁能解释一下 HANDLE hConsole = GetStdHandle((STD_OUTPUT_HANDLE))在C语言中是什么意思

上句执行后,定义了一个句柄变量hConsole,将其赋值为GetStdHandle((STD_OUTPUT_HANDLE)),即标准输出的句柄。

例如:

#include <stdio.h>

#include <windows.h>

int main(void)

{

HANDLE consolehwnd; //创建句柄,详细句柄知识,请网络一下或查MSDN

consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE); //实例化句柄

SetConsoleTextAttribute(consolehwnd, FOREGROUND_RED);//设置字体颜色

printf("hello ");

SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY | FOREGROUND_GREEN);
printf("world! ");

getchar();

SetConsoleTextAttribute(consolehwnd,BACKGROUND_INTENSITY |BACKGROUND_BLUE);
printf("It is really beautiful! ");

return 0;

}

(3)句柄c语言扩展阅读:

注意事项

SetConsoleTextAttribute()函数是一个API设置字体颜色和背景色的函数。参数表中使用两个属性(属性之间用,隔开)。GetStdHandle()和FOREGROUND_*或BACKGROUND_*。*值为INTENSITY或RED或GREEN或BLUE。第一个属性获得句柄(即要设置颜色的地方),第二个属性设置颜色。属性相加是在属性值中间加“|”隔开即可。

GetStdHandle(STD_OUTPUT_HANDLE)获得句柄。

FOREGROUND_INTENSITY表示设置前景色为高亮显示。

FOREGROUND_RED表示设置前景色为红色,即字体颜色为红色。

FOREGROUND_GREEN表示设置前景色为绿色,即字体颜色为绿色。

FOREGROUND_BLUE表示设置前景色为蓝色,即字体颜色为蓝色。

BACKGROUND_INTENSITY表示设置背景色为高亮显示。

BACKGROUND_RED 表示设置背景色为红色。

BACKGROUND_GREEN表示设置背景色为绿色。

BACKGROUND_BLUE表示设置背景色为蓝色。

说明:在使用时要在预处理中包含window.h头文件。

‘肆’ 求助:C语言如何输出句柄

句柄就是一种资源的序号,一般是个无符号整数而已,比如文件句柄,就是系统提供一组可以打开文件的数据结构(实际上是结构数组),句柄就是数组下标。
所谓输出句柄,你可以将句柄当作函数调用的返回值,或者打印出来看也不是不可以。

‘伍’ 对于一个只懂C语言得人来说,怎么理解句柄

句柄是一个序号, 它不是一个内存地址。


它用于管理Windows内核对象,比如用户打开一个文件,Windows即会建立一个文件内核对象,所谓内核对象就是一块内存结构,里面有文件路径,文件大小,当前文件指针等等信息。Windows系统会打开很多的文件,因此就有很多的文件内核对象,同样Windows系统还会建立其它的类型的很多很多的内核对象。如何管理这么多的内核对象 呢?Windows通过建立一个叫做句柄表的东西,用于记录内核对象的地址。表中每一个元素,都是一个内核对象的起始地址,然后给每一个对象对应一个序号,此序号即为句柄。


//句柄表类似于下面的结构,像0、1、2这样的序号即为句柄
----------------------------------------------------
0第一个内核对象的地址
1第二个内核对象的地址
2第三个内核对象的地址
----------------------------------------------------
热点内容
sql语句or和and 发布:2024-11-27 08:37:09 浏览:799
sql2005加密 发布:2024-11-27 08:32:11 浏览:741
安卓手机如何锁屏录像 发布:2024-11-27 08:31:14 浏览:98
wms源码 发布:2024-11-27 08:30:25 浏览:3
华为编译器系列 发布:2024-11-27 08:29:42 浏览:855
长江存储上海 发布:2024-11-27 08:29:31 浏览:328
crm客户管理系统源码 发布:2024-11-27 07:59:26 浏览:363
匠辰app安卓在哪里下载 发布:2024-11-27 07:47:12 浏览:731
sql表操作 发布:2024-11-27 07:46:31 浏览:814
云顶之脚本 发布:2024-11-27 07:45:37 浏览:659