首页
学习
活动
专区
圈层
工具
发布

WinAPI 极简教程:超简单的 Windows 接口入门

GetStdHandle() 函数 检索指定标准设备的句柄(标准输入、标准输出或标准错误)。...函数原型 HANDLE GetStdHandle(DWORD nStdHandle); 参数:nStdHandle指定要获取的标准设备类型,常用值有: STD_INPUT_HANDLE (DWORD)...:例如说我们要获得屏幕这个标准输出设备 就可以这样写: //获得标准输出设备的句柄 HANDLE houtput = GetStdHandle(STD_OUTPUT_HANDLE); 好的,我们现在得到了这个句柄...main() { //控制台形式 system("mode con cols=100 lines=30"); system("title 我是控制台"); //获得标准输出设备的句柄 HANDLE...GetAsyncKeyState() 函数 GetAsyncKeyState()是 Windows API 中用于检测键盘按键当前状态的函数,它能异步获取指定虚拟键的按下 / 释放状态,是实现实时键盘控制的关键函数

11810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    windows服务管理操作

    ,第二个参数为NULL表示从注册表中获取,第三个参数的主要传入如下值: SC_MANAGER_ALL_ACCESS (0xF003F) :默认拥有所有权限 SC_MANAGER_CREATE_SERVICE...} } 获取服务的主程序所在路径、启动类型以及依赖项 上述代码只能获取到系统服务的部分信息,比如服务的名称,显示名称,等等至于其他的信息需要调用另外的API函数获取 OpenService...获取具体服务的句柄 SC_HANDLE WINAPI OpenService( __in SC_HANDLE hSCManager, //服务数据库的句柄 __in...获取系统服务主要使用的API函数是QueryServiceConfig2 BOOL WINAPI QueryServiceConfig2( __in SC_HANDLE hService...,因此这部分的代码多了许多判断的部分 SERVICE_STATUS ServiceStatus = {0}; //获取当前的状态 BOOL bRet = QueryServiceStatus(h_SCService

    2.1K11

    Windows编程之模块遍历(C++实现)

    DWORD th32ProcessID                遍历的进程ID,如果为0,则是当前进程,如果不为0,则是创建指定进程的快照进行遍历 ); 注意,创建进程快照需要包含头文件  ...BOOL WINAPI Module32First( HANDLE hSnapshot,       快照句柄 LPMODULEENTRY32 lpme      模块信息结构体...BOOL WINAPI Process32Next( HANDLE hSnapshot,   进程句柄 LPPROCESSENTRY32 lppe 进程信息结构体 ); typedef...} MODULEENTRY32; typedef MODULEENTRY32 *PMODULEENTRY32; 这个常用的也很多 模块基址  模块大小 模块句柄 模块名称,以及模块路径等等....*/ bRet = Module32Next(hSnapshot,&mi); } return 0; } 兼容代码,遍历指定进程模块 思路:   1.获取你想要遍历的进程

    85230

    【读书笔记】Windows程序设计5

    p 指针 四、文本输出 4.1.获取设备环境 获取设备环境方法1:BeginPain和EndPaint函数 将原来的无效区域有效化 WINUSERAPI HDC WINAPI BeginPaint(...2:GetDC 与从BeginPaint函数返回的设备句柄不同,从GetDC返回的设备句柄中的裁剪区域是整个客户区,而不仅仅 是在无效矩形里 hdc = GetDC(hwnd); ReleaseDC(...通过调用GetTextMetrics函数,可以获取字体尺寸。GetTextMetrics函数需要一个设备环境句柄,因为它会返回该设备环境当前选定的字体的信息。...使用BeginPaint函数获取的设备环境句柄,就只能在这个矩形内绘图,调用BeginPaint函数将使这个区域有效。...); 其中,设备环境句柄指的是窗口句柄为hwnd的窗口客户区,从GetDC函数返回的句柄可以在整个客户区绘制,并且GetDC和ReleaseDC函数并不使任何客户区的无效区域变为有效。

    2.9K10

    代码中进程的绝对路径要怎么获取?

    我们日常测试中,有时候有些辅助程序文件比如一些配置文件需要放在主程序执行文件同样的位置,便于管理和调用,这时候我们就需要获取执行文件的绝对路径。...今天为大家总结分享不同操作系统下获取当前进程绝对路径的方法。 Windows系统 提供了获取当前进程加载模块的完整路径的接口。...DWORD WINAPI GetModuleFileName( _In_opt_ HMODULE hModule, //模块句柄,可以是DLL模块或者一个应用程序的实例句柄,如果为NULL,该函数返回该应用程序完路径...调用示例: char link[MAX_PATH]; readlink("/proc/self/exe", link, MAX_PATH); link存储当前进程的绝对路径。...MacOSX系统 提供了函数获取当前进程的路径。

    1.6K30

    【Rust调用Windows API】获取正在运行的全部进程信息

    ", features = ["tlhelp32", "processthreadsapi"] }实现大致步骤:创建进程快照,拿到快照句柄遍历快照中的进程(以迭代器的方式实现),得到每个进程的数据释放快照句柄创建快照句柄创建进程快照需要用到...如果保存进程快照失败,返回的句柄会是一个无效的值(这里用了两个条件或的关系去判断是否无效,其实任用其一都可以,他们都表示一个“空”内存或“空”指针),使用 GetLastError 方法可以获取错误代码...Some(class as i32); } } priority_class }}迭代器实现迭代器中需要保存一些迭代遍历的状态,因此除了前面保存的快照句柄之外还要存储迭代的索引以及释放句柄的状态...if self.finished { return; } // 释放快照句柄。...self.process_snapshot); } self.finished = true; }}代码汇总我在写的时候放在了自定义的utils::process::win包下面,具体引用路径根据自己的情况调整

    1.6K20

    贪吃蛇项目实践!(上)

    它⽤于从⼀个特定的标准设备(标准输⼊、标准输出或标准错误)中取得⼀个句柄(⽤来标识不同设备的数值),使⽤这个句柄可以操作设备。...HANDLE GetStdHandle(DWORD nStdHandle); 例子: HANDLE hOutput = NULL; //获取标准输出的句柄(⽤来标识不同设备的数值) hOutput =...hOutput = NULL; //获取标准输出的句柄(⽤来标识不同设备的数值) hOutput = GetStdHandle(STD_OUTPUT_HANDLE); //设置标准输出上光标的位置为pos...个设置光标位置的函数 //设置光标的坐标 void SetPos(short x, short y) { COORD pos = { x, y }; HANDLE hOutput = NULL; //获取标准输出的句柄...30⾏,100列 //mode 为DOS命令 system("mode con cols=100 lines=30"); //设置cmd窗⼝名称 system("title 贪吃蛇"); //获取标准输出的句柄

    38910

    【C语言项目】贪吃蛇(上)

    (标准输入、标准输出、标准错误)中获得一个句柄,使用这个句柄可以操作设备 HANDLE GetStdHandle(DWORD nStdHandle); ②GetConsoleCursorlnfo 检索有关指定控制台屏幕缓冲区的光标大小和可见性的信息...BOOL WINAPI GetConsoleCursorInfo ( HANDLE hConsoleoutput, PCONSOLE_CURSOR_INFO lpConsoleCursorInfo...); //PCONSOLE_CURSOR_INFO是指向CONSOLE_CURSOR_INFO结构的指针 使用: HANDLE houtput = NULL; //获取标准输出的句柄(⽤来标识不同设备的数值...COORD pos ); 我们将想要设置的坐标信息放在pos当中,调用该函数将光标位置设置到指定的位置 使用: COORD pos = {10, 5}; HANDLE houtput = NULL; //获取标准输出的句柄...专门用来设置光标位置 void SetPos(short x, short y) { COORD pos = { x, y }; HANDLE houtput = NULL; //获取标准输出的句柄

    49310

    Windows黑客编程技术详解 --第四章 木马启动技术(内含赠书福利)

    如果在lpCmdLine参数中可执行文件的名称不包含目录路径,则系统将按以下顺序搜索可执行文件: 应用程序的目录、当前目录、Windows系统目录、Windows目录以及PATH环境变量中列出的目录。...如果此值为NULL,则使用当前的工作目录。如果在lpFile中提供了相对路径,请不要对lpDirectory使用相对路径。 nShowCmd [in] 指定应用程序在打开时如何显示标志。...lpCurrentDirectory [in, optional] 指向进程当前目录的完整路径。该字符串还可以指定UNC路径。如果此参数为NULL,则新进程将具有与调用进程相同的当前驱动器和目录。...lpCurrentDirectory [in,optional] 指向进程当前目录的完整路径。如果此参数为NULL,则新进程将具有与调用进程相同的当前驱动器和目录。...新令牌句柄作为用户主令牌的句柄,指定创建进程的路径,设置优先级和创建标志,设置STARTUPINFO结构信息,获取PROCESS_INFORMATION结构信息。

    4.9K50

    Win32 API介绍​(COORD、GetStdHandle、GetConsoleCursorInfo 、SetConsoleCursorInfo)、<locale.h>本地化、类项

    它用于从一个特定的标准设备(标准输入、标准输出或标准错误)中取得一个句柄(用来标识不同设备的数值),使用这个句柄可以操作设备。...HANDLE GetStdHandle(DWORD nStdHandle); 实例: HANDLE hOutput = NULL; //获取标准输出的句柄(用来标识不同设备的数值)​ hOutput...实例: HANDLE hOutput = NULL; //获取标准输出的句柄(用来标识不同设备的数值)​ hOutput = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO...,通常是控制台窗口 HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); // 调用GetConsoleCursorInfo函数获取当前控制台光标的信息..., 5}; HANDLE hOutput = NULL; //获取标准输出的句柄(用来标识不同设备的数值)​ hOutput = GetStdHandle(STD_OUTPUT_HANDLE);

    65210
    领券