![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
windows
文章平均质量分 70
spiderlily
因缘际会,无是无非
展开
-
进程的定向输出
此段程序是将cmd命令的执行结果输出到指定文件中#include "stdafx.h"#include "windows.h"int _tmain(int argc, _TCHAR* argv[]){ wchar_t cmdLine[100]=L"netstat -a"; SECURITY_ATTRIBUTES sa={sizeof(sa),NULL,T原创 2012-12-06 15:20:51 · 514 阅读 · 0 评论 -
转:Windows Shell 编程 第一章
转自:http://yadang418.blog.163.com/blog/static/268436562009653322192/第一章 Windows Shell是什么一个操作系统外壳的不错的定义是它是一个系统提供的用户界面,它允许用户执行公共的任务,如访问文件系统,导出执行程序,改变系统设置等。MS-DOS有一个Command.COM扮演着这个角色。然而Windows已经有了图转载 2012-12-08 08:51:57 · 622 阅读 · 0 评论 -
转:__stdcall、__cdecl与__fastcall
今天写线程函数时,发现msdn中对ThreadProc的定义有要求:DWORD WINAPI ThreadProc(LPVOID lpParameter);不解为什么要用WINAPI宏定义,查了后发现下面的定义。于是乎需要区别__stdcall和__cdecl两者的区别;#define CALLBACK __stdcall#define WINAPI __stdcall#defin转载 2012-12-05 11:43:53 · 910 阅读 · 0 评论 -
转:NTSTATUS类型返回值及含义
0, "STATUS_WAIT_0"1, "STATUS_WAIT_1"2, "STATUS_WAIT_2"3, "STATUS_WAIT_3"63, "STATUS_WAIT_63"128, "STATUS_ABANDONED_WAIT_0"191, "STATUS_ABANDONED_WAIT_63"192, "STATUS_USER转载 2012-11-26 20:19:08 · 7583 阅读 · 0 评论 -
转:Windows Shell 编程 第六章
转自:http://yadang418.blog.163.com/blog/static/2684365620096534118452/第六章快捷方式的最短路径 Windows Shell允许存储任何对象的引用到系统范围内的任何地点。例如,当你从一个文件夹拖拽可执行程序到另一个文件夹时,鼠标自动改变形状给出除拷贝和移动文件之外的第三种选择。转载 2012-12-13 16:16:27 · 501 阅读 · 0 评论 -
转:Windows Shell 编程 第五章_2
转自:http://yadang418.blog.163.com/blog/static/2684365620096534024792/ 探测器允许使用‘打印机’作为通常意义的文件夹名。换言之,它模糊了物理文件夹和虚拟文件夹的差异,精确地讲,‘打印机’是一个内容为有效打印机设备的虚拟文件夹的显示名。在这个例子中我们建立一个示范程序称之为Pidl,其用户界面如下:转载 2012-12-10 11:32:31 · 1719 阅读 · 0 评论 -
关于try/catch的笔记
try{AB(引发异常的代码)C}catch{}引发异常后,A部分已经执行的代码仍然有效,B引发异常,C不执行,无效。原创 2013-07-31 13:34:21 · 679 阅读 · 0 评论 -
转:Windows Shell 编程 第五章_1
转自:http://yadang418.blog.163.com/blog/static/2684365620096533937590/ 第五章浏览文件夹 我在第二章中给出了文件夹的概览和它在Windows Shell中的地位,在这一章中我们打算更详细地讨论它们。我们主要集中精力阐述涉及文件夹所有层面的Shell函数,以及保证所有操作顺利进行的潜在机理。因此,我们需要转载 2012-12-10 11:29:58 · 694 阅读 · 0 评论 -
转:Windows Shell 编程 第四章
转自:http://yadang418.blog.163.com/blog/static/2684365620096533545115/ 第四章文件的本质 以前,所有文件和目录都有一个确定的属性集:时间,日期,尺寸,以及表示‘只读的’,‘隐藏的,‘存档的’,或‘系统的’状态标志。然而,Windos95(及后来的WindowsNT4.0)出现使这些概念产生了改变,其中最重要转载 2012-12-09 13:06:18 · 611 阅读 · 0 评论 -
委托和事件
从群里转来的,不知道原出处。1.比如你要租一个房屋,这是一个事件; public event 委托 租房事件;2.那么委托就是房屋租赁中介; public delegate void 委托;3.当你把租房子的消息告知中介后,租房事件触发; 租房事件();4.中介就会产生出一套符合你要求的房屋租赁方案; 我,租房+=new 中介处理;5.再由中介执行转载 2013-05-17 10:54:57 · 623 阅读 · 0 评论 -
ZedGraph学习笔记
最近工作用到ZedGraph,总结一下近期用到的功能,很常见的就不写了。ZedGraph集成了很多功能,一般常用的都已经实现。1.在控件上的任一位置添加标签:TextObj利用TextObj可以方便的在Graphpane上添加我们想要的标签,方法如下:TextObj text = new TextObj(str, x,y); testGraph.GraphPane.GraphObj原创 2013-01-17 11:10:25 · 1469 阅读 · 0 评论 -
转:InvokeHelper函数的用法
转自:http://blog.sina.com.cn/s/blog_49364213010003co.html 今天看代码时遇到了这个函数,在此把InvokeHelper函数的用法写下来,一来方便自己看,二来希望对大家也有帮助。 ActiveX控件的方法和属性操作与生成的C++类成员函数相关联都是通过InvokeHelper函数的调用来完成的,Invoke转载 2014-01-20 10:18:32 · 1901 阅读 · 0 评论 -
微秒时间的获取
获取系统启动后运行的时间ULONGLONG CadtestDlg::GetLastTime(){// CPU频率LARGE_INTEGER liQPF,liEndTime;// 记录过程时间ULONGLONG currentTime;// 获取CPU频率QueryPerformanceFrequency(&liQPF);// 获取结束时间Quer原创 2014-03-27 16:42:35 · 910 阅读 · 0 评论 -
转:Windows Shell 编程 第二章
转自:http://yadang418.blog.163.com/blog/static/2684365620096533334143/ 第二章Shell的结构 “Shell编程”的大伞之下有大量的API函数和COM接口。这个种类繁多的‘命令’集允许你用不同的方法对Windows Shell进行编程。函数和接口并不是两种提供相同功能的等价途径,相反,它们在不同的逻辑层上提供不同的功转载 2012-12-08 08:56:02 · 629 阅读 · 0 评论 -
转:Windows Shell 编程 第三章
转自:http://yadang418.blog.163.com/blog/static/268436562009653343550/第三章操作文件 我依然清楚地记得,Windows95的贝塔版出现的情形,它在朋友之间和学院中传播,好酷,全新的文件管理器,一种全图标,全彩色可客户化的界面,以及活泼的动画标识使得在文件拷贝和删除方面的操作更容易和直观。 作为真转载 2012-12-09 13:03:53 · 834 阅读 · 0 评论 -
转:GetLastError()返回值及含义
〖0〗-操作成功完成。〖1〗-功能错误。〖2〗-系统找不到指定的文件。〖3〗-系统找不到指定的路径。〖4〗-系统无法打开文件。〖5〗-拒绝访问。〖6〗-句柄无效。〖7〗-存储控制块被损坏。〖8〗-存储空间不足,无法处理此命令。〖9〗-存储控制块地址无效。〖10〗-环境错误。〖11〗-试图加载格式错误的程序。〖12〗-访问码无效。〖13〗-数据无效转载 2012-12-05 12:01:47 · 1194 阅读 · 0 评论 -
exe函数与dll函数的相互调用
今天学习了DLL和EXE函数的相互调用,记录如下。EXE程序代码:#include "stdafx.h"#include#define EXPORT __declspec(dllexport) //这里定义一个宏,作声明导出函数用的,我们在其它程序或DLL中GetProcAddress才可能成功。#pragma comment(lib,"kernel32.lib")原创 2012-12-05 13:37:06 · 7772 阅读 · 0 评论 -
进程的终止
主要过程: 1.由进程命获取PID,进程名要带exe; 2.利用OpenProcess函数获得进程句柄,需要参数PID,调用此函数的第一个参数应包含PROCESS_TERMINATE,否则TerminateProcess执行会没有权限,还应包含SYNCHRONIZE,否则WaitForSingleObject执行会没有权限; 3.利用Terminat原创 2012-12-09 12:58:24 · 570 阅读 · 0 评论 -
转:CreateFile函数详解
看到了一个讲CreateFile函数的文章,详细而精炼,转过来收藏了。出处:http://www.cppblog.com/yishanhante/articles/19545.htmlCreateFile The CreateFile function creates or opens the following objects and returns a handle that转载 2012-12-06 14:38:20 · 1431 阅读 · 0 评论 -
PID和端口关系映射学习
程序功能是获取系统进程ID和TCP/UDP端口的映射关系,利用的是AllocateAndGetTcpExTableFromStack和AllocateAndGetUdpExTableFromStack函数,这两个函数在WIN7之后已经不适用了,虽然有些过时,但对我这种菜鸟学习基础来说还是很有帮助的。 PS:如果想获取进程名与端口的映射关系要麻烦些,需要自己写个函数,通过进程枚举,原创 2012-12-09 18:55:51 · 1248 阅读 · 0 评论 -
rundll32.exe加载dll
应用方法为rundll32.exe nameofdll, entrypointfunction arguments,如在VC的代码中,可这样简单加载:WinExec("rundll32.exe D:\\test.dll ,FnDll",SW_SHOW);这里的第二个参数除非DLL在系统文件夹下,否则应该写上全路径,把DLL放在我们自己的程序同一目录中是没用的(除非设置环境变量),因为这一处调用原创 2012-12-05 19:46:45 · 4225 阅读 · 0 评论 -
进程枚举相关函数
1.EnumProcessModules , GetModuleBaseName 这种方法获取的进程,如果用户名是NETWORK SERVICE或LOCAL SEVICE获取用户名会失败,原因是调用OpenProcess时对这些进程没有权限!示例代码:#include "stdafx.h"#include "windows.h"#include "psapi.h"原创 2012-12-04 10:04:07 · 683 阅读 · 0 评论 -
转:ShellExecute函数与ShellExecuteEx函数
ShellExecute函数ShellExecute函数原型及参数含义如下: function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall; hWnd:用于指定父窗口句柄。当函数调用过程出现错误时,它将作为转载 2012-12-07 09:24:21 · 6938 阅读 · 0 评论 -
进程代码注入
参考教程:windows api编程实现步骤如下:(1)得到指向远程进程的句柄,可以使用OpenProcess函数实现。(2)使用VirtualAllocEx函数在远程进程中为动态链接库名称分配内存。(3)使用WriteProcessMemory函数把动态链接库的名称包括路径信息写入到分配的内存中。(4)通过CreateRemoteThread和LoadLibrary函数映射动原创 2012-12-10 20:35:09 · 837 阅读 · 0 评论 -
窗口程序的运行过程
摘自罗云彬的《Win32汇编教程》在屏幕上显示一个窗口的过程一般有以下步骤,这就是主程序的结构流程:(1)得到应用程序的句柄(GetModuleHandle)。(2)注册窗口类(RegisterClassEx)。在注册之前,要先填写RegisterClassEx的参数WNDCLASSEX结构。(3)建立窗口(CreateWindowEx)。(4)显示窗口(ShowWindo转载 2013-05-03 13:52:28 · 981 阅读 · 0 评论 -
定时器的精度问题
摘自罗云彬的《win32汇编教程》 由于Windows的定时器同样是基于时钟中断的,所以虽然参数的单位是ms,但精度还是55 ms,如果指定一个小于55 ms的周期,不管是1 ms还是54 ms,Windows最快也只能在每个时钟中断的时候触发这个定时器,也就是说,实际上这个定时器是以55 ms为触发周期的;另外,当指定一个时间间隔的时候,Windows以和这个间隔最接近的55转载 2013-05-24 10:23:53 · 2928 阅读 · 0 评论 -
转:容易产生误解的CallNextHookEx函数
转自:http://www.cnblogs.com/grenet/archive/2010/12/08/1900169.html CallNextHookEx函数,从字面的理解就是调用后面一个钩子函数。若后面已经没有钩子函数呢?很多人都会错误的认为将会将消息传递给Window的消息处理函数。他们认为,消息的处理流程如下面所示:假设有4个钩子函数,分别为钩子A、钩子B、钩子C、钩子D转载 2013-09-03 09:54:23 · 1824 阅读 · 0 评论 -
转:什么是 GUID ?
转自:http://hi.baidu.com/uniquechao/item/61a4a1a8c15304726dd45559全球唯一标识符 (GUID) 是一个字母数字标识符,用于指示产品的唯一性安装。在许多流行软件应用程序(例如 Web 浏览器和媒体播放器)中,都使用 GUID。 GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”转载 2013-12-20 16:35:46 · 880 阅读 · 0 评论 -
转:Windows Shell 编程 第七章_1
转自:http://yadang418.blog.163.com/blog/static/2684365620096534257530/第七章侵入Shell 与所有其它Win32进程一样,Shell也有其自己的内存地址空间,这是其它应用完全不可知的地址空间。为了进入这个地址空间,我们必须传递一定数量的控制点,就象我们正在跨过国家边界一样。在Windows Shell这块陆转载 2012-12-13 20:29:16 · 753 阅读 · 0 评论 -
转:COM学习
转自:http://www.cnblogs.com/fangyukuan/archive/2010/06/11/1756724.htmlCoCreateInstance 创建组件的最简单的方法是使用CoCreateInstance函数。在COM库中包含一个用于创建组件的名为CoCreateInstance的函数。此函数需要一个CLSID参数,在此基础上创建相应组件的一个实例,并返回此组转载 2012-12-13 16:08:26 · 410 阅读 · 0 评论 -
PrintWindow截取隐藏窗口
最近工作遇到截图问题,开始用的BitBlt,可是一旦窗口被覆盖或者显示一半,用BitBlt就解决不了了。PrintWindow的好处就在这,只要想截的窗口不是最小化,无论在屏幕外还是只显示一半还是被覆盖,都可以成功截取我们想要的部分。C#代码如下:(网上代码有些缺陷,略做修改) public static Bitmap GetWindow(IntPtr hWnd)原创 2013-01-28 13:20:28 · 18953 阅读 · 4 评论