<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/twtzw</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; twtzw]]></copyright><item><title><![CDATA[windows 普通用户 使用管理员权限运行程序]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/5540181</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/5540181</guid><author>twtzw</author><pubDate>Wed, 28 Apr 2010 20:00:00 +0800</pubDate><description><![CDATA[#include #include#pragma comment (lib,"userenv.lib") DWORD     dwSize;HANDLE    hToken;LPVOID    lpvEnv;PROCESS_INFORMATION pi = {0};STARTUPINFOW         si = {0};WCHAR             s]]></description><category></category></item><item><title><![CDATA[MFC获取计算机名]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/5528039</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/5528039</guid><author>twtzw</author><pubDate>Sun, 25 Apr 2010 22:54:00 +0800</pubDate><description><![CDATA[ char userName[MAX_PATH]; CString sUsername; DWORD size=MAX_PATH; ::GetComputerName(userName,&size); sUsername.Format("%s",userName);]]></description><category></category></item><item><title><![CDATA[CString 转LPCWSTR]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/5528029</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/5528029</guid><author>twtzw</author><pubDate>Sun, 25 Apr 2010 22:51:00 +0800</pubDate><description><![CDATA[int _convert; UINT _acp = GetACP(); LPCSTR _lpa;  LPCWSTR pwcStr = A2CW((LPCSTR)sUsername);   ]]></description><category></category></item><item><title><![CDATA[汇编之条件转移指令]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3504759</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3504759</guid><author>twtzw</author><pubDate>Fri, 12 Dec 2008 16:10:00 +0800</pubDate><description><![CDATA[ jcxz 如果CX=0,跳转指令                    含义                                            检测的相关标志位je                        等于则转移                                 ZF=1jne                      不等于则转移    ]]></description><category></category></item><item><title><![CDATA[cmp 指令]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3504581</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3504581</guid><author>twtzw</author><pubDate>Fri, 12 Dec 2008 15:51:00 +0800</pubDate><description><![CDATA[ cmp 是比较指令,相当于不保存结果的减法指令,但影响标志寄存器cmp ax,bxax=bx,  则ZF=1ax!=bx, 则ZF=0axaxax>bx,  则CF=0ax>=bx,则CF=0或ZF=1 相关链接:标志寄存器]]></description><category></category></item><item><title><![CDATA[标志寄存器]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3504182</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3504182</guid><author>twtzw</author><pubDate>Fri, 12 Dec 2008 14:57:00 +0800</pubDate><description><![CDATA[按位起作用15    14    13    12    11    OF    10    DF     09    IF    08    TF    07    SF     06    ZF05    04    AF    03    02    PF    01    00    CF                 ]]></description><category></category></item><item><title><![CDATA[汇编加减乘除]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3502334</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3502334</guid><author>twtzw</author><pubDate>Fri, 12 Dec 2008 10:16:00 +0800</pubDate><description><![CDATA[加add 寄存器 数据            add ax,8add 寄存器,寄存器         add ax,bxadd 寄存器,内存单元     add ax,[0]add 内存单存,寄存器     add [0],bx adc带进位加法指令 adc 操作对象1,操作对象2,则结果等于 操作对象1=操作对象1+操作对象2+CF  减sub 寄存器 数]]></description><category></category></item><item><title><![CDATA[汇编debug命令]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3436500</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3436500</guid><author>twtzw</author><pubDate>Wed, 03 Dec 2008 12:59:00 +0800</pubDate><description><![CDATA[r 查看 改为CPU寄存器的内容r 修改 ax寄存器的值 改完后AX=1000 d 查看内存中的内容 命令格式 d 段地址:偏移地址 结尾偏移地址 没有结尾偏移地址的话,就从开始输出128个字节的内容 e 改写内存的内容 u 查看内存中机器码的含义 t 执行当前CS:IP指向的指令 当前1000:0000的指令是 MOV AX,000]]></description><category></category></item><item><title><![CDATA[jmp 偏移地址的计算方法]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3436443</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3436443</guid><author>twtzw</author><pubDate>Wed, 03 Dec 2008 12:53:00 +0800</pubDate><description><![CDATA[E9的jmp距离计算：距离=目的地址-(当前地址+5)(加5是因为JMP命令共占5个字,实际是目的地址减去JMP命令的尾地址,即当前地址+5如目标地址为 f1e0b63e 当前地址为   8093c6d8距离=f1e0b63e -8093c6d8-5=714cef61jmp为当前地址 当前编码                        汇编指令8093c6d8 e961ef4c71(按字倒着写]]></description><category></category></item><item><title><![CDATA[汇编之寄存器]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3394034</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3394034</guid><author>twtzw</author><pubDate>Thu, 27 Nov 2008 20:38:00 +0800</pubDate><description><![CDATA[AX、BX、CX、DX用来存在一般性的数据，称为通用寄存器CX用于存放 loop 的循环次数CS为代码段寄存器，IP为指令指针寄存器 CS：IP指向的内容为当前要执行的指令 CS：IP=CS*N+IP（N为CPU的字长） 修改CS，IP的内容，要用JMP，而不能用MOV，MOV可以修改通用寄存器的内容，但不能修改CS，IP的内容 如：jmp 2000:3,执行后，CS=20]]></description><category></category></item><item><title><![CDATA[命令模式(Command Pattern)]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3373032</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3373032</guid><author>twtzw</author><pubDate>Tue, 25 Nov 2008 21:29:00 +0800</pubDate><description><![CDATA[ 命令模式(Command Pattern)：将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象，命令模式也支持可撤销的操作。 实例：可编程遥控器，每个按钮可自定义设置各种家电命令，但家电厂商种类繁多，不同家电的命令不同，要使遥控器与命令分离 JAVA代码class Light{    String location;    int ]]></description><category></category></item><item><title><![CDATA[将UTF8转成ANSISTRING]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3364520</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3364520</guid><author>twtzw</author><pubDate>Mon, 24 Nov 2008 21:45:00 +0800</pubDate><description><![CDATA[ char * UTF8TOANSI(char *strUTF8){    WCHAR*     strA;           int     i=     MultiByteToWideChar     (     CP_UTF8     ,     0     ,(char*)     strUTF8     ,-1     ,NULL,0);          ]]></description><category></category></item><item><title><![CDATA[判断字符串是否UTF8编码]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3364082</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3364082</guid><author>twtzw</author><pubDate>Mon, 24 Nov 2008 20:05:00 +0800</pubDate><description><![CDATA[ UTF8是以8bits即1Bytes为编码的最基本单位，当然也可以有基于16bits和32bits的形式，分别称为UTF16和UTF32，但目前用得不多，而UTF8则被广泛应用在文件储存和网络传输中。　　编码原理　　先看这个模板：　　UCS-4 range (hex.) UTF-8 octet sequence (binary)　　0000 0000-0000 007F 0xxx]]></description><category></category></item><item><title><![CDATA[驱动层分别使用PEB和sectionObject获取进程执行文件全路径的方法]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3335244</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3335244</guid><author>twtzw</author><pubDate>Wed, 19 Nov 2008 15:39:00 +0800</pubDate><description><![CDATA[本人是在WIN2003 SP2下开发的,请注意不同操作系统的偏移量不同 PEB EPROCESS->PEB(_PEB)->ProcessParameters((_RTL_USER_PROCESS_PARAMETERS)->ImagePathName(_UNICODE_STRING)void GetProcessName( IN OUT PCHAR pszName){]]></description><category></category></item><item><title><![CDATA[PEB 结构导出(WINXP和WIN2003)]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3335236</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3335236</guid><author>twtzw</author><pubDate>Wed, 19 Nov 2008 15:37:00 +0800</pubDate><description><![CDATA[ WINXPlkd> DT NT!_PEB   +0x000 InheritedAddressSpace : UChar   +0x001 ReadImageFileExecOptions : UChar   +0x002 BeingDebugged    : UChar   +0x003 SpareBool        : UChar   +0x004 Mutant           :]]></description><category></category></item><item><title><![CDATA[EPROCESS 的结构导出(WINXP和WIN2003)]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3335226</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3335226</guid><author>twtzw</author><pubDate>Wed, 19 Nov 2008 15:34:00 +0800</pubDate><description><![CDATA[ WINXP lkd> dt nt!_EPROCESS   +0x000 Pcb              : _KPROCESS   +0x06c ProcessLock      : _EX_PUSH_LOCK   +0x070 CreateTime       : _LARGE_INTEGER   +0x078 ExitTime         : _LARGE_INTEGER   ]]></description><category></category></item><item><title><![CDATA[使用SetWindowsHookEx监控全局鼠标(双击右键)]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3312269</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3312269</guid><author>twtzw</author><pubDate>Sun, 16 Nov 2008 16:51:00 +0800</pubDate><description><![CDATA[ HHOOK SetWindowsHookEx( 　　int idHook, // 钩子的类型，即它处理的消息类型　　HOOKPROC lpfn, // 钩子子程的地址指针。如果dwThreadId参数为0　　// 或是一个由别的进程创建的线程的标识，　　// lpfn必须指向DLL中的钩子子程。　　// 除此以外，lpfn可以指向当前进程的一段钩子子程代码。　　// 钩子]]></description><category></category></item><item><title><![CDATA[用RegisterHotKey为程序注册系统热键]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3305558</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3305558</guid><author>twtzw</author><pubDate>Sat, 15 Nov 2008 16:37:00 +0800</pubDate><description><![CDATA[RegisterHotKey　　函数功能：该函数定义一个系统范围的热键。　　函数原型：BOOL RegisterHotKey（HWND hWnd，intid，UINT fsModifiers，UINT vk）；　　参数：　　hWnd：接收热键产生WM_HOTKEY消息的窗口句柄。若该参数NULL，传递给调用线程的WM_HOTKEY消息必须在消息循环中中进行处理。　　id：定]]></description><category></category></item><item><title><![CDATA[枚举IHTMLDocument2中所有IFRAME的内容]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3304218</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3304218</guid><author>twtzw</author><pubDate>Sat, 15 Nov 2008 09:09:00 +0800</pubDate><description><![CDATA[#include  #include  #include  #include  #include  void EnumFrame( IHTMLDocument2 *pHTML ){    CComQIPtr spContainer( pHTML );    if( spContainer )    {        CComPtr spEnume]]></description><category></category></item><item><title><![CDATA[使用IHTMLDocument2操作IE命令]]></title><link>https://blog.youkuaiyun.com/twtzw/article/details/3304208</link><guid>https://blog.youkuaiyun.com/twtzw/article/details/3304208</guid><author>twtzw</author><pubDate>Sat, 15 Nov 2008 09:06:00 +0800</pubDate><description><![CDATA[HRESULT hr;IOleCommandTarget   *pCmd; hr=spDoc->QueryInterface(IID_IOleCommandTarget,(void **)&pCmd); if ( SUCCEEDED(hr) ){     VARIANT VA;//输入参数      VA.vt=VT_BSTR;     VA.bstrVal=O]]></description><category></category></item></channel></rss>