整个流程很长,但是很奇怪,前台返回一直是200,但返回为null。 一度以为是网闸的锅,找原因也找了很久。 在本地远程服务A看日志,请求没过去,那会也没怀疑服务A会存在问题。...本身服务A比较简单,就是接收前台参数,用OkHttp转发给本地远程服务B,接收本地远程服务B的返回结果处理之后就返回。 调了半下午,一度有点怀疑人生。...比如前端的地址(因为网闸的原因,前端地址不固定)是:172.16.10.9,那此时本地远程服务B的请求地址就是:http://172.16.10.9/xxxx 但172.16.10.9这个地址其实在服务...请求超时之后,没有处理任何请求,就直接返回的null(null来背锅!)。 后续怎么办? 把本地远程服务B的地址改为固定地址。 再试一次,果然可以了。
假设參数hinst为空,而且LR_LOADFROMFILE被指定,那么这个參数低位字一定是被装载的OEM图像标识的。...cxDesired:指定图标或光标的宽度,以像素为单位。...cyDesired:指定图标或光标的高度,以像素为单位。...返回值:假设函数执行成功,返回值是相关资源的数据的句柄。假设函数执行失败,返回值为NULL。若想获得很多其它的错误信息,请调用GetLastError函数。...【返回值】 Long,运行成功则返回对象的一个句柄;零表示失败 【其他】 【參数列表】 hInst ———- Long,要从当中加载图象的DLL或应用程序模块或实例句柄。
返回值: 若函数调用成功,则返回值大于31。若函数调用失败,则返回值为下列之一: ① 0:系统内存或资源已耗尽。 ...假如lpFile指定一个文档文件,nShowCmd应为空。 返回值: 若函数调用成功,则返回值大于32,否则为一个小于等于32的错误值。 说明:可以用此函数打开或搜索一个外壳文件夹。...返回值: 若函数调用成功,则返回值不为0;若函数调用失败,返回值为0。 ShellExecute和WinExec命令用于简单的作业。...⑶ 返回值: 若函数调用成功,则返回值大于31。若函数调用失败,则返回值为下列之一: ① 0:系统内存或资源已耗尽。 ...⑶ 返回值: 若函数调用成功,则返回值不为0;若函数调用失败,返回值为0。 ShellExecute和WinExec命令用于简单的作业。
); 暂时可以将句柄理解成,句柄是用来找到内存的东西,但绝对不是指针。...---- WM_CREATE 产生时间:在窗口创建成功但还没显示时。...;//定时器处理函数指针(一般不使用,为NULL)创建成功,返回非0。...更改窗口当前点) BOOL MoveToEx( [in] HDC hdc, [in] int x, [in] int y, [out] LPPOINT lppt//为空则不返回上一个点...GetProcAddress( HMODULE hModule,//DLL句柄 LPCSTR lpProcName//函数名称 );//成功返回函数地址 4.使用函数 5.卸载动态库
返回值: 若函数调用成功,则返回值大于31。若函数调用失败,则返回值为下列之一: ① 0:系统内存或资源已耗尽。 ...假如lpFile指定一个文档文件,nShowCmd应为空。 返回值: 若函数调用成功,则返回值大于32,否则为一个小于等于32的错误值。 说明:可以用此函数打开或搜索一个外壳文件夹。...返回值: 若函数调用成功,则返回值不为0;若函数调用失败,返回值为0。 ShellExecute和WinExec命令用于简单的作业。...有时,不想设置任何信息,也必须传递一个有效的指针给空结构(确定设置大小到cb,及设置dwFlags成员为0)。参数lpProcessInformation返回进程和线程句柄,还包括进程和线程ID。...其返回值是布尔型的,而真正感兴趣的返回值发生于作为参数传送的结构中(PROCESS_INFORMATION)。CreateProcess返回该结构中的进程ID及其句柄,以及初始线程ID及其句柄。
如果参数hinst为空,并且LR_LOADFROMFILE未被指定,那么这个参数低位字一定是被装载的OEM图像标识的。...cxDesired:指定图标或光标的宽度,以像素为单位。...cyDesired:指定图标或光标的高度,以像素为单位。...如果LR_SHARED未被设置,则再向同一个资源第二次调用这个图像时就会再装载一遍这个图像且返回不同的句柄。...返回值:如果函数运行成功,返回值是相关资源的数据的句柄。如果函数运行失败,返回值为NULL。若想获得更多的错误信息,请调用GetLastError函数。
⑶ 返回值: 若函数调用成功,则返回值大于31。若函数调用失败,则返回值为下列之一: ① 0:系统内存或资源已耗尽。 ...假如lpFile指定一个文档文件,nShowCmd应为空。 ⑶ 返回值: 若函数调用成功,则返回值大于32,否则为一个小于等于32的错误值。 ...⑶ 返回值: 若函数调用成功,则返回值不为0;若函数调用失败,返回值为0。 ShellExecute和WinExec命令用于简单的作业。...有时,不想设置任何信息,也必须传递一个有效的指针给空结构(确定设置大小到cb,及设置dwFlags成员为0)。参数lpProcessInformation返回进程和线程句柄,还包括进程和线程ID。...其返回值是布尔型的,而真正感兴趣的返回值发生于作为参数传送的结构中(PROCESS_INFORMATION)。CreateProcess返回该结构中的进程ID及其句柄,以及初始线程ID及其句柄。
前言 记得小学的时候玩页游把家里电脑弄坏了(怎么回事,页游还能弄坏电脑?),然后我爸拿去重新装了系统,回来之后电脑里有了两个新的单机游戏,植物大战僵尸和大鱼吃小鱼。...外挂程序编写 先来了解几个Windows的API。...HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName); 通过类名或窗口名查找,返回窗口句柄 DWORD GetWindowThreadProcessId...(HWND hWnd,LPDWORD lpdwProcessId); 得到窗口句柄后通过GetWindowThreadProcessId这个函数来获得窗口所属进程ID和线程ID HANDLE OpenProcess...(DWORD dwDesiredAccess,BOOL bInheritHandle,DWORD dwProcessId) 打开一个已存在的进程对象,并返回进程的句柄 bool WriteProcessMemory
wc.hCursor = NULL; // 鼠标的句柄 wc.hIcon = NULL; // 窗口图标的句柄 wc.hInstance = hIns; // 当前模块的实例句柄...WM_CREATE (创建窗口前) 产生时间:在窗口创建成功但还未显示时。...wc.hCursor = NULL; // 鼠标的句柄 wc.hIcon = NULL; // 窗口图标的句柄 wc.hInstance = hIns; // 当前模块的实例句柄...wc.hCursor = NULL; // 鼠标的句柄 wc.hIcon = NULL; // 窗口图标的句柄 wc.hInstance = hIns; // 当前模块的实例句柄...WM_CREATE 在窗口创建成功但还未显示时。
被添加或被修改或被删除的图标的句柄。...应用程序提供的自定义图标的句柄在通知区域的图标应该被独立使用。如果这个成员变量是非空的并且在成员变量dwInfoFlags 中设置了NIIF_USER 标志,那么这个图标作为通知图标。...在Windows 7 系统下将会返回TRUE。guiditem成员必须设置为0,除非该成员的返回TRUE。 注意:此代码是特定于Windows 7的版本号。...Return value Type: BOOL 如果成功返回TRUE,否则返回 FALSE。...如果dwmessage设置为NIM_SETVERSION且版本已成功更改,函数返回TRUE,如果请求的版本不支持则返回FALSE。
如果句柄不在I/O文件中,它是毫无用处的。 句柄是Windows用来标志应用程序中建立的或是使用的唯一整数,Windows大量使用了句柄来标识对象。...如果该参数为一个成员,则它必须为前次调用theGlobafAddAtom函数产生的全局成员。该成员为16位,必须位于IpClassName的低 16位,高位必须为 0。...IpWindowName:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为空,则为所有窗口全匹配。...返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄;如果函数失败,返回值为NULL。...如果找到了满足条件的窗口,这个函数返回该窗口的句柄,否则返回0。例如: IntPtr hwnd = FindWindow(null, “计算器”); if (hwnd !
win32API不同于C语言基础语法,大多都是封装好的函数,初次接触这样的开发可能会有些头晕,但这是向制作更复杂的项目的必经之路,也是学习更高级的语言的必然过程,需要尝试去接受。...5. 3 GetStdHandle GetStdHandle 是一个Windows API函数。...//设置标准输出上光标的位置为 pos SetConsoleCursorPosition(hOutput, pos); } 这样,我们只需要传入 x,y 就可以很方便地设置光标的位置了。...,函数通过返回值来分辨按键的状态。...如果我们要判断一个键是否被按过,可以检测GetAsyncKeyState返回值的最低值是否为1。
在vs2008中新建一个VC++的空项目 在解决方案资源管理器,源文件文件夹中添加一个CPP文件 在此文件中输入以下代码 #include windows.h> int WinMain( HINSTANCE..., LPSTR lpCmdLine, int nCmdShow) WinMain函数是程序的入口点,windows操作系统执行一个程序的时候,从这里进入程序 HINSTANCE hInstance 应用程序本次运行的实例句柄...HINSTANCE hPreInstance 应用程序之前运行的实例句柄,此处一般为NULL LPSTR lpCmdLine 命令行的参数 int nCmdShow 应用程序窗口(如果有)的显示状态...LPCTSTR lpText 显示的消息 LPCTSTR lpCaption 标题 UINT uType 消息框的类型 return 0; WinMain函数的返回值是int型,这里是把...0返回给操作系统 另: 这里涉及到一个句柄的概念 windows系统中有很多对象,所有表示一个对象的数据类型都是句柄
函数功能:该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。...Windows NT5.0 and later:如果hwndParent是HWND_MESSAGE,函数仅查找所有消息窗口。 hwndChildAfter :子窗口句柄。...lpszClass:指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。...该成员为16位,必须位于lpClassName的低16位,高位必须为0。 lpszWindow:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为 NULL,则为所有窗口全匹配。...返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄。如果函数失败,返回值为NULL。 若想获得更多错误信息,请调用GetLastError函数。
是一个光标资源 第八个hbrBackground---窗口类的背景画刷句柄 第九个lpszMenuName----以空终止的字符串---指定菜单资源的名字 第十个lpszClassName----以空终止的字符串...我们常用库函数printf----这些C库函数都是编译器厂商提供的。在windows平台下面也有类似的库函数,但这是windows操作系统提供的。...窗口通过句柄识别:HWND 创建各种资源的时候也会返回他们的句柄:图标句柄HICON,光标句柄HCURSOR 消息与队列 系统反过来调用用户进程---------这个调用通过–消息—实现 事件驱动设计程序...Instead, use code like this: 在 hWnd 是无效参数的情况下返回值为 -1的可能性(例如引用已经被销毁的窗口)意味着这样的代码可能导致致命的应用程序错误。...NT和Windows 9x为32位);它是unsigned int的同义词 LRESULT 窗口程序返回值的类型 LPARAM 声明lParam所使用的类型,lParam是窗口程序的第四个参数
" //要调用的很多windows api函数的头文件 HHOOK g_hHook = NULL; //HHOOK是钩子句柄,如果想搭建钩子链,也可把下一个需要传给的钩子句柄放在这。...和PROCESS_VM_READ权限 //因为下面的GetModuleFileNameEx函数指定要这两个权限 //第二个参数是输入参数,用来标识该句柄是否希望被子进程继承,不过不考虑子进程的继承权限则直接赋值为...\System32\notepad.exe //第一个参数是输入参数,输入需要获取进程名的进程句柄 //第二个参数是输入参数,输入需要获取的模块的模块句柄,为NULL表示获取进程主模块...,系统每发现一个窗口都会调用该回调函数 //HWND是窗口句柄类型 //第一个参数返回的是当前窗口句柄,第二个参数类型可以自己定,我传入的是目标进程id { DWORD CurrentWindowProcessId...,获取该窗口的所在的进程及线程 //第一个参数是输入参数,输入目标窗口句柄 //第二个参数是输出参数,类型是LPDWORD,及指向DWORD的指针,所以要取地址,函数执行成功后CurrentWindowProcessId
函数来获取标准输出句柄(什么是句柄可以看这个blogger的文章:戳我跳转),使用这个句柄可以操作设备。...值范围为1到100。光标外观会变化,范围从完全填充单元格到单元底部的水平线条。 bVisible 参数,设置光标的可见性,如果光标不可见,设置为false。 ...int vKey); 将键盘上的键值传给函数,通过函数返回值来判断按键的状态。...GetAsyncKeyState 返回值是short类型,在上一次调用此函数后,如果返回的16位的short数据中,最高位是1,说明按键的状态是按下,如果最高位是0,说明按键的状态是抬起;如果最低位被置为...如果我们要判断按键是否被按过,只需要判断返回值最低值是否为1即可,我们可以按位与上0x1来获取最低位的值,那么我们就可这样来编写函数: #define KEY_PRESS(VK) ((GetAsyncKeyState
1、概念: 这是一个多功能的函数,可打开或创建文件或者I/O设备,并返回可访问的句柄:控制台,通信资源,目录(只读打开),磁盘驱动器,文件,邮槽,管道。...); 2、返回值: 如执行成功,则返回文件句柄。...即使函数成功,但若文件存在,且指定了 CREATE_ALWAYS 或 OPEN_ALWAYS ,GetLastError 也会设为 ERROR_ALREADY_EXISTS lpFileName Pointer...指向一个空结尾字符串。该参数指定了用于创建或打开句柄的对象。...(device); //释放打开的句柄(参数是句柄,即函数CreateFile()的返回值)
Windows NT5.0 and later:如果hwndParent是HWND_MESSAGE,函数仅查找所有消息窗口。 hwndChildAfter :子窗口句柄。...lpszClass:指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobaIAddAtom函数产生的全局成员。...该成员为16位,必须位于lpClassName的低16位,高位必须为0。 lpszWindow:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为 NULL,则为所有窗口全匹配。...返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄。如果函数失败,返回值为NULL。 若想获得更多错误信息,请调用GetLastError函数。...(2)调用FindWindow函数得到任务栏的窗口句柄。 (3)调用FindWindowEx函数得到任务栏各子区域的窗口句柄。
是一个进程获取函数,当我们利用函数CreateToolhelp32Snapshot()获得当前运行进程的快照后,我们可以利用Process32Next函数来获得下一个进程的句柄。...TH32CS_SNAPPROCESS, 0);//获取到系统全部进程 if (processAll == INVALID_HANDLE_VALUE) //CreateToolhelp32Snapshot函数失败返回值...这样就可以成功在目标的空间中利用CreateRemoteThread创建一个多线程。...所以说,我们可以先用VirtualAllocEx函数在对方的进程中申请一块内存,然后用WriteProcessMemory函数将指定DLL写入到目标的进程空间中,然后利用GetProcAddress函数去获取...LoadLibrary的地址,最后利用CreateRemoteThread函数创建线程并注入进目标的进程当中,最后等待线程结束后释放DLL空间并关闭线程。
领取专属 10元无门槛券
手把手带您无忧上云