api函数

C#调用Win32 的API函数--User32.dll ----转载

纵饮孤独 提交于 2019-12-26 17:15:37
Win32的API函数是微软自己的东西,可以直接在C#中直接调用,在做WinForm时还是很有帮助的。有时候我们之直接调用Win32 的API,可以很高效的实现想要的效果。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace WindowsAPI { class CSharp_Win32Api { #region User32.dll 函数 /// <summary> /// 该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备上下文环境中绘图。hWnd:设备上下文环境被检索的窗口的句柄 /// </summary> [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern IntPtr GetDC(IntPtr hWnd); /// <summary> /// 函数释放设备上下文环境(DC)供其他应用程序使用。 /// </summary> public static extern int ReleaseDC(IntPtr

什么是API

倖福魔咒の 提交于 2019-12-17 01:19:02
阅读编程资料时经常会看到API这个名词,网上各种高大上的解释估计放倒了一批初学者。初学者看到下面这一段话可能就有点头痛了。 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。——百度百科 这篇文章我们就来通俗易懂地解释下什么叫做 API,你只需要花费1分钟时间。 从文件操作开始谈API。 以C语言为例,我们使用fopen()函数可以打开一个文件,感觉非常简单。文件保存在硬盘上,要经过复杂的处理才能显示,这些细节对我们来说是透明的,由操作系统完成。也就是说,我们调用fopen()函数来通知操作系统,让操作系统打开一个文件。 那么,我们如何告诉操作系统打开文件呢? 看似简单的操作到底层都非常复杂,打开文件首先要扫描硬盘,找到文件的位置,然后从文件中读取一部分数据,将数据放进I/O缓冲区,放进内存;这些数据都是0、1序列,还要对照ASCII表或Unicode表”翻译“成字符,再在显示器上显示出来。这个过程如果要让程序员来完成,那简直是噩梦! 怎么办呢?操作系统想了一个很好的办法,它预先把这些复杂的操作写在一个函数里面,编译成一个组件(一般是动态链接库),随操作系统一起发布,并配上说明文档

STM32 HAL库 API函数(一) GPIO

别来无恙 提交于 2019-12-10 11:33:19
首先是XXX_hal_gpio.h中可用的PAI GPIO初始化函数 void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init); void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin); GPIO读写API GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState); void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); GPIO配置寄存器锁定,无法解开,直到下一次RESET HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 外部中断回调函数 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin); 然后是"XXX_hal_gpio_ex.h"中可用的API

什么是API

这一生的挚爱 提交于 2019-12-06 05:42:53
阅读编程资料时经常会看到API这个名词,网上各种高大上的解释估计放倒了一批初学者。初学者看到下面这一段话可能就有点头痛了。 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。——百度百科 这篇文章我们就来通俗易懂地解释下什么叫做 API,你只需要花费1分钟时间。 从文件操作开始谈API。 以C语言为例,我们使用fopen()函数可以打开一个文件,感觉非常简单。文件保存在硬盘上,要经过复杂的处理才能显示,这些细节对我们来说是透明的,由操作系统完成。也就是说,我们调用fopen()函数来通知操作系统,让操作系统打开一个文件。 那么,我们如何告诉操作系统打开文件呢? 看似简单的操作到底层都非常复杂,打开文件首先要扫描硬盘,找到文件的位置,然后从文件中读取一部分数据,将数据放进I/O缓冲区,放进内存;这些数据都是0、1序列,还要对照ASCII表或Unicode表”翻译“成字符,再在显示器上显示出来。这个过程如果要让程序员来完成,那简直是噩梦! 怎么办呢?操作系统想了一个很好的办法,它预先把这些复杂的操作写在一个函数里面,编译成一个组件(一般是动态链接库),随操作系统一起发布,并配上说明文档

调用API函数ShowWindow()来隐藏窗口

◇◆丶佛笑我妖孽 提交于 2019-12-04 16:18:20
只需要将相应代码复制即可。 代码如下: #include <iostream> #include <windows.h> int main() { HWND hDos; //声明窗口句柄变量 hDos=GetForegroundWindow(); //得到窗口句柄 ShowWindow(hDos,SW_HIDE); //隐藏窗口 //中间代码 ShowWindow(hDos,SW_SHOW);//显示窗口 return 0; } 来源: https://www.cnblogs.com/zpchcbd/p/11873201.html

开发REST API

匿名 (未验证) 提交于 2019-12-03 00:26:01
在上一节中,我们演示了如何在koa项目中使用REST。其实,使用REST和使用MVC是类似的,不同的是,提供REST的Controller处理函数最后不调用 render() 去渲染模板,而是把结果直接用JSON序列化返回给客户端。 使用REST虽然非常简单,但是,设计一套合理的REST框架却需要仔细考虑很多问题。 问题一:如何组织URL 在实际工程中,一个Web应用既有REST,还有MVC,可能还需要集成其他第三方系统。如何组织URL? 一个简单的方法是通过固定的前缀区分。例如, /static/ 开头的URL是静态资源文件,类似的, /api/ 开头的URL就是REST API,其他URL是普通的MVC请求。 使用不同的子域名也可以区分,但对于中小项目来说配置麻烦。随着项目的扩大,将来仍然可以把单域名拆成多域名。 问题二:如何统一输出REST 如果每个异步函数都编写下面这样的代码: // 设置Content-Type: ctx.response.type = 'application/json' ; // 设置Response Body: ctx.response.body = { products: products }; 很显然,这样的重复代码很容易导致错误,例如,写错了字符串 'application/json' ,或者漏写了 ctx.response.type =

DLL注入和API Hook

匿名 (未验证) 提交于 2019-12-03 00:21:02
DLL注入和API Hook 第一篇 dll注入 一、什么是dll注入   在Windows操作系统中,运行的每一个进程都生活在自己的程序空间中,每一个进程都认为自己拥有整个机器的控制权,每个进程都认为自己拥有计算机的整个内存空间,这些假象都是操作系统创造的。理论上而言,运行在操作系统上的每一个进程之间都是互不干扰的,即每个进程都会拥有独立的地址空间。比如说进程B修改了地址为0x400000的数据,那么进程C的地址为0x400000处的数据并未随着B的修改而发生改变,并且进程C可能并不拥有地址为0x400000的内存(操作系统可能没有为进程C映射这块内存)。因此,如果某进程有一个缺陷覆盖了随机地址处的内存(这可能导致程序运行出现问题),那么这个缺陷不会影响到其他进程所使用的内存。   正是由于进程的地址空间是独立的,因此我们很难编写能够与其它进程通信或控制其它进程的应用程序。   所谓的dll注入即是让程序A强行加载你给定的a.dll并执行你给定的a.dll里面的代码。注意,你所给定的a.dll原先并不会被程序A加载,但是当你向程序A注入了a.dll后,程序A将会执行a.dll里的代码,这个时候,你的a.dll就进入了程序A的地址空间,你就可以为所欲为了。 二、什么时候需要dll注入   应用程序一般会在以下情况使用dll注入技术来完成某些功能:     1.为被注入的进程添加新的

006_FREERTOS其他API函数

匿名 (未验证) 提交于 2019-12-02 23:42:01
(一)FreeRTOS其他API函数是在调试中使用的,具体使用的看书本,贴出来为了方便查找 (二)FreeRTOS其他API函数 (三)常用 获取信息: 1. 任务句柄 2. 任务名字 3. 任务编号 4. 当前任务壮态,eTaskState 是一个枚举类型 5. 任务当前的优先级 6. 任务基础优先级 7. 任务运行的总时间 8. 堆栈基地址 9. 高水位线 10. 保存系统总的运行时间 获取信息: 1. 创建任务的时候给任务分配的名字 2. 任务的壮态信息,B 是阻塞态,R 是就绪态,S 是挂起态,D 是删除态 3. 任务优先级 4. 任务堆栈的“高水位线”,就是堆栈历史最小剩余大小 5. 任务编号,这个编号是唯一的,当多个任务使用同一个任务名的时候可以通过此编号来做区分 文章来源: https://blog.csdn.net/xiaoguoge11/article/details/91566725

【Robot】Rookit简介

老子叫甜甜 提交于 2019-12-02 06:42:25
转发: https://blog.csdn.net/tiandyoin/article/details/75136484 Rootkit自身也是木马后门或恶意程序的一类,只是,它很特殊,为什么呢?因为,你无法找到它。 正如自然界的规则一样,最流行的病毒,对生物的伤害却是最小的,例如一般的感冒,但是最不流行的病毒,却是最夺命的。Rootkit木马就是信息世界里的 AIDS,一旦感染,就难以用一般手段消灭了,因为它和自然界里的同类做的事情一样,破坏了系统自身检测的完整性——抛开术语的描述也许难以理解,但是可以配合AIDS的图片想象一下,由于AIDS破坏了人体免疫系统,导致白细胞对它无能为力,只能眼睁睁看着人体机能被慢慢破坏。计算机系统没有免疫功能,但是它提供了对自身环境的相关检测功能——枚举进程、文件列表、级别权限保护等,大部分杀毒软件和进程工具都依赖于系统自带的检测功能才得以运作,而 Rootkit木马要破坏的,正是这些功能。 要了解Rootkit木马的原理,就必须从系统原理说起,我们知道,操作系统是由内核(Kernel)和外壳(Shell)两部分组成的,内核负责一切实际的工作,包括CPU任务调度、内存分配管理、设备管理、文件操作等,外壳是基于内核提供的交互功能而存在的界面,它负责指令传递和解释。由于内核和外壳负责的任务不同,它们的处理环境也不同,因此处理器提供了多个不同的处理环境

[windows菜鸟]Windows API函数大全(完整)

与世无争的帅哥 提交于 2019-12-01 12:52:32
Windows API函数大全,从事软件开发的朋友可以参考下 1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 WNetEnumResource 枚举网络资源 WNetGetConnection 获取本地或已连接的一个资源的网络名称 WNetGetLastError 获取网络错误的扩展错误信息 WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 WNetGetUser 获取一个网络资源用以连接的名字 WNetOpenEnum 启动对网络资源进行枚举的过程 2. API之消息函数 BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 GetMessagePos