windowsapi函数:Windows API一日一练(86)GetClipboardData函数

前面介绍如何样把数据放到剪贴板里面那么又是如何样从剪贴板里面获取数据出来呢?当然还是需要使用其它API来获取剪贴板里数据获取剪贴板里数据时是不知道当前剪贴板里是否有数据也不知道剪贴板里数据格式是什么那么下面就来解决这两个问题先使用IsClipboardFormatAvailable来获取剪贴板里格式是否可以处理接着使用OpenClipboard打开剪贴板然后使用GetClipboardData来获... [阅读全文]

windowsapi函数:Windows API一日一练(85)OpenClipboard函数

多个软件Software的间进行数据共享是非常重要难以想像编辑软件Software没有CTRL+CCTRL+V功能是多么不方便很多操作就是拷贝动作就是为了数据共享剪贴板共享是Windows里比较重要功能比如很多采集数据软件Software为了方便导数据到excel里面就可以使用剪贴板功能还有即见即所得界面导到word里面也可以使用剪贴板功能  OpenClipboard声明如下:WINUSERAP... [阅读全文]

windowsapi函数:Windows API一日一练(84)FlushInstructionCache函数

  般都是在运行前已经编译好因此修改指令机会比较少但在软件Software防破解里倒是使用很多当修改指令的后如何样才能让CPU去执行新指令呢?这样就需要使用FlushInstructionCache来把缓存Cache里数据重写回主内存里去让CPU重新加载新指令才能执行新指令下面就来学习下使用这个来实现跳到个静态里执行而不是直接地这个  FlushInstructionCache声明如下:WINBA... [阅读全文]

windowsapi函数:Windows API一日一练(83)GetModuleFileName函数

  在开发软件Software过程里经常需要把数据保存到当前执行文件路径下面或者读取当前执行文件路径下些配置信息这时就需要从当前模块里获取所在目录路径以便进行固定位置操作文件要解决这个需求就需要APIGetModuleFileName来获取模块所在路径  GetModuleFileName声明如下:WINBASEAPIDWORDWINAPIGetModuleFileNameA(    __in_o... [阅读全文]

windowsapi函数:Windows API一日一练(82)LoadLibrary函数

  随着软件Software规模扩大要求功能也是越来越多开发人员参和也是越来越多因此软件Software功能划分就成为了现代软件Software工程重大任务还有软件Software开发并行性也越来越重要为了解决这些问题大家都会看到IT硬件发展非常迅速功能也越来越复杂但硬件中发展明显提高在于采用IC方式来实现复杂功能也就是把大部份功能集成到起只要给出些引脚就可以实现产品了而软件Software中有没... [阅读全文]

windowsapi函数:Windows API一日一练(81)FormatMessage函数

在开发软件Software过程里经常要做工作就是调试许多问题出现不但是逻辑问题还有可能是对API不熟悉或者某种条件下API会出错那么这些出错原因是什么呢?通常只获取到码也就是通过GetLastError得到当然可以根据这个码去查找MSDN就可以知道出错原因但有时在客户那里并没有MSDN那么就需要把API出错信息显示出来或者写到LOG里去这时就需要FormatMessage把出错码详细原因显示出来 ... [阅读全文]

windowsapi函数库:Windows API一日一练(80)MultiByteToWideChar函数

  在软件Software使用过程中经常碰到乱码情况那么乱码原因是什么呢?其实很多情况下就是集区别也就是说同个数字代表区别意思在Windows里目前主要有ANSI和UNICODE方式如果在UNICODE方式里直接显示ANSI串是出现乱码同样在ANSI里也不能显示UNICODE串而是要进行相互转换才能显示正确串在NT以后操作系统里Windows底层已经全部改为UNICODE方式如果还是使用ANSI话... [阅读全文]

windowsapi函数库:Windows API一日一练(79)GlobalMemoryStatusEx函数

  在开发软件Software过程中经常会碰到区别用户PC系统配置不样比如有些用户系统内存配置比较差这样处理大量数据时就不能把大量数据读取到内存里处理了而又有些用户内存比较多或者是机器比较新那么就可以加载大量数据到内存里处理这样可以随着系统更新软件Software处理能力能大幅地提高性能这样就需要了解系统配置信息了最重要资源的内存就是最需要了解需要GlobalMemoryStatusEx来了解内存... [阅读全文]

windowsapi函数库:Windows API一日一练(78)HeapAlloc函数

  前面已经介绍两个分配内存个全局内存分配个是私有内存分配在进程私有内存里分配里又有两种分配情况种上基于栈式内存分配另种是基于堆内存分配在c里使用堆内存分配是使用HeapAlloc来实现也就是实现操作符分配内存时会调这个  HeapAlloc声明如下:WINBASEAPI__bcount(dwBytes)LPVOIDWINAPIHeapAlloc(    __in HANDLE hHeap,   ... [阅读全文]

windowsapi函数库:Windows API一日一练(77)VirtualAlloc函数

  上次学习了全局内存分配在Windows里内存管理是分为两部份全局内存是系统管理内存因而所有进程都可以访问内存而每个进程又有自己内存空间这就是虚拟内存空间了而虚拟内存空间比较大当物理内存不足时系统会把虚拟内存数据保存到硬盘里这样只要硬盘空间足够大每个进程就可以使用3G内存虚拟内存分配可以作为里分配内存主要方式比如大量数据缓冲区动态分配内存空间使用VirtualAlloc来分配内存速度要比全局内存... [阅读全文]

windowsapi函数库:Windows API一日一练(76)GlobalAlloc函数

在Windows系统里有项功能非常实用就是剪贴板功能它能够从个里和另个进行数据交换功能也就是说两个进程上是可以共享数据要实现这样功能Windows系统在底层上有相应支持就是高端地址内存是系统内存这样就可以区别进程进行共享数据了因此GlobalAlloc来分配系统内存让区别进程实现共享数据也就是剪贴板功能可以在个进程内分配内存在另个进程里访问数据后删除内存  GlobalAlloc声明如下:HGLO... [阅读全文]

windowsapi函数库:Windows API一日一练(75)SystemParametersInfo函数

  面对华丽Windows桌面工作心情或许好很多但是久了总会失去兴趣总想定期地更新桌面图片软件Software开发人员又面对这样需求了需要如何样去做呢?努力去找API吧到目前为止还有很多变桌面图片软件Software并且还能很挣钱其实设置桌面图片需求在目前数码相片处理软件Software也有现实需求比如当你去旅游回来后想把照片当作桌面图片就可以在处理图片时就设置为桌面图片这样就需要使用Parame... [阅读全文]

windowsapi函数库:Windows API一日一练(74)GetSystemInfo函数

有次我正在开发个视频压缩而压缩算法是需要非常高效也就是需要使用到CPU多媒体指令在X86领域里目前主要有两家CPU就是INTEL和AMD它们多媒体指令是不样为了区分这种区别指令就需要GetInfo来获取CPU信息然后再区别动态连接库来进行多媒体数据压缩  GetInfo声明如下:WINBASEAPIVOIDWINAPIGetInfo(    __out LPSYSTEM_INFO lpInfo  ... [阅读全文]

windowsapi函数库:Windows API一日一练(73)GetVersionEx函数

Windows发展还是非常快速从Win95到Win98再到Win2000和XP系统每个系统功能也有所区别要想在里区别区别系统就需要获取系统版本信息比如XP里有防火墙而其它以前系统里没有带有但有时编写了个服务器或者编写BT又需要设置个端口对外面接收连接因此在XP系统里就需要设置防火墙端口而在XP以前系统里就没有必要设置端口了这样需求就可以使用GetVersionEx来区分区别系统  GetVersi... [阅读全文]

windowsapi函数库:Windows API一日一练(72)GetUserName函数

  随着系统安全性加强每个系统里越来越多区别帐号登录假如你正在开发个上网安全软件Software让区别用户有区别上网权限这样就需要识别当前用户是什么帐号登录了然后再作出权限分配还有出错时也需要对当前帐号进行记录下来区别帐号有区别权限有些磁盘是不允许操作面对这些需求就需要使用GetUserName  GetUserName声明如下:WINADVAPIBOOLWINAPIGetUserNameA ( ... [阅读全文]

windowsapi函数库:Windows API一日一练(71)GetComputerName函数

当你在个大公司里面当个网络管理员时发现成千上万个电脑需要你去管理时如何去区分这些电脑呢?那肯定是通过计算机名称而这个网络管理员又需要你开发套软件Software它可以把所有电脑名称自动地上报给他面对这样需求就可以使用下面GetComputerName来获取计算机名称并通过网络传送给管理员  GetComputerName声明如下:WINBASEAPIBOOLWINAPIGetComputerNam... [阅读全文]

windowsapi函数库:Windows API一日一练(70)GetSystemTime和GetLocalTime函数

  时间是个非常重要信息比如写LOG时就需要把时间输出来跟踪是什么时候出错或者当你开发个银行交易系统时就要记录当前交易时间以便后面可以输出报表打印给信用卡用户根据区别需求可能需要使用区别时间目前有UTC和本地时间UTC是格林威治时间也就是全球标准时间本地时间就是相对于UTC而言比如中国北京是在东8区相对于UTC就多了8个小时般使用到时间都是使用本地时间也就是GetLocalTime  GetTim... [阅读全文]

windowsapi函数库:Windows API一日一练(69)GetTickCount函数

  时间计时也不是越精确越好有时只需要有个计时就行了这样就可以使用毫秒级别计时GetTickCount这个是记录了系统启动以来时间毫秒当超过49.7天这个值变为从0开始也就是说49.7天是个周期当区别两次调时就返回两次时间差值  GetTickCount声明如下:WINBASEAPIDWORDWINAPIGetTickCount(    VOID    );  例子如下:#001 //般时钟计时#... [阅读全文]

windowsapi函数库:Windows API一日一练(68)QueryPerformanceCounter函数

  精确时间计时有时候是非常必要比如播放多媒体时视频和音频时间同步还有在测试代码性能时也需要使用到非常精确时间计时还有测试硬件性能时也需要精确时间计时这时就需要使用QueryPerformanceCounter来查询定时器计数值如果硬件里有定时器它就会启动这个定时器并且不断获取定时器值这样定时器精度就跟硬件时钟晶振样精确  QueryPerformanceCounter和QueryPerforma... [阅读全文]

settimer回调函数:Windows API一日一练(67)SetTimer和KillTimer函数

  在前面介绍了对定时器API使用现在又介绍另外对API使用它使用起来比前要简单些但它般是使用到有窗口里并且它精度也没有前面API高对于些要求不高场合还是非常合适它是采用消息通知方式每当定时到了就会收到条消息  SetTimer和KillTimer声明如下:WINAPISetTimer(    __in_opt HWND hWnd,    __in UINT_PTR nIDEvent,    __... [阅读全文]

windowsapi函数库:Windows API一日一练(66)CreateWaitableTimer和SetWaitableTimer函数

用户感觉到软件Software好用就是可以定时地做些工作而不需要人参和进去比如每天定时地升级病毒库定时地下载电影定时地更新游戏里人物要想实现这些功能就可以使用定时器APICreateWaitableTimer和SetWaitableTimer来实现了这对API创建时钟是比较精确可以达到100倍10亿分的秒  CreateWaitableTimer和SetWaitableTimer声明如下:WINB... [阅读全文]

windowsapi函数:Windows API一日一练(44)wsprintf函数

接着上面再继续实现更加强大线程类从上面C++类里可以看到要在静态里使用类成员就需要获取this指针也就是通过CreateThread里把类this指针传送进来这样在ThreadProc里参数lpParameter就是this指针了因此把参数lpParameter转换为CThread类指针这样就可以使用类成员在这个例子里使用wsprf来格式化线程ID输出来下面就来详细地分析例子吧  wsprf声明如... [阅读全文]

windowsapi函数:Windows API一日一练(43)WaitForSingleObject函数

  上面已经介绍如何样创建个简单线程在那里就需要使用WaitForSingleObject它是用来做什么呢?其实它是用来实现等待线程结束它机理是这样通知Windows操作系统现在我进入睡眼状态当我关注对象条件是否满足如果满足了就吵醒我在那里关注对象是线程是否退出这是个条件测试如果不等待线程关闭就去删除线程资源就会出错使用前面线程是简单些但它不合适复用现在就使用C++类来封装个比较好用类这样就可以很... [阅读全文]

windowsapi函数:Windows API一日一练(42)CreateThread函数

随着时代发展计算机技术发展得很快CPU已经从单核心到多核心转变也就是个CPU里具备了同时做多件事情能力而不是过去分时复用了而是实实在在地做多件事情因此开发软件Software也进入了个新时代就是多线程软件Software开发时代如何合理地分配多个线程同时运行是提高软件Software效率关键原因了比如像网络游戏客户端里就可以使用个线程不断地更新游戏界面分配另外个线程不断地发送和接收网络数据这样CP... [阅读全文]

windowsapi函数:Windows API一日一练(41)FindWindowEx函数

  当你想控制个现有窗口时就需要获取那个窗口句柄比如有些黑客软件Software需要查找到窗口然后修改窗口标题在外挂流行今天惊奇地发现它们也可以修改输入窗口文字这其中就需要使用到FindWindowEx来定位窗口下面就来使用这个来实现控制Windows里带计算器打开计算器最小化在状态下面运行本例子点击创建按钮后就可以点按钮就会把计算器显示在最前面  FindWindowEx声明如下:#(WINVE... [阅读全文]

windowsapi函数:Windows API一日一练(40)CreateRectRgn和CombineRgn函数

  创新是永恒追求当大家习惯Windows界面时又想自己开发软件Software耳目新感觉那么就得要改变窗口形状比如心形窗口总的是不规则窗口这时就需要使用到叫做区域技术区域就是把区别形状图形进行组合然后可以填充它或者在它那里显示比如MSN左边TAB按钮应就是区域运用就可以实现它了  CreateRectRgn声明如下:WINGDIAPI HRGN    WINAPI CreateRectRgn( ... [阅读全文]

windowsapi函数:Windows API一日一练(39)AnimateWindow函数

  当你开发款年轻人使用软件Software时肯定想用点动感特性来吸引他们比如QQ软件Software就有这个特性当你把它放到桌面边上时就会自动隐藏起来当你鼠标放到那里时就会自动慢慢移动出来副有动感特性肯定让年轻人喜欢上它还有当你开发软件Software时想先动态地显示公司商标或者公司宣传材料时就会使用到闪屏效果其实这两个特性都可以使用APIAnimateWindow来实现下面就来介绍如何使用它 ... [阅读全文]

setwindowpos函数:Windows API一日一练(38)SetWindowPos函数

有天用户突然对我说你这个窗口能不能放到最顶端这样操作和打开文件就很不方便了这个功能就需要改变窗口属性了比如大家使用QQ时就有个功能设置QQ窗口在最顶端不管你选择了什么窗口QQ界面永远都在最前面又像FlashGet状态查看窗口直保持在窗口最前端让你看到当前下载流量程况现在股票那么火爆很多人边工作边查看股票如果错失了机会又少了很多钱啊!面对这样需求就需要把些窗口永远摆在最前面这样起到提示用户作用因此学... [阅读全文]

windowsapi函数:Windows API一日一练(37)MoveWindow函数

当你设计个对话框窗口时就需要布局好所有按钮、文本显示框等等由于每个按钮都是个窗口那么就需要移动这些窗口到合适位置这时就需要使用到MoveWindow或者当你界面需要动态地修改按钮位置比如窗口放大了按钮就需要跟着移动否则按钮还在原来位置放大也不会移动按钮位置这时也需要使用MoveWindow重新设置按钮位置只要你想移动窗口就可以考虑使用这个来实现  MoveWindow声明如下:WINUSERAPI... [阅读全文]

windowsapi函数:Windows API一日一练(36)SetWindowText函数

  在开发软件Software里有时候需要改变窗口上标题文字比如按钮上文字为了适应多国语言显示就需要改变它显示内容这时就需要使用SetWindowText来改它内容下面例子就实现改变按钮标题  SetWindowText声明如下:WINUSERAPIBOOLWINAPISetWindowTextA(    __in HWND hWnd,    __in_opt LPCSTR lpString);W... [阅读全文]
< 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 > >> 共2344条 分79页