随笔分类 - System:Windows
摘要:开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列" 经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要...
阅读全文
摘要:1.c\c++:高度的性能要求充足的开发调试时间,特别是调试时间。。。高度定制的gui多线程2.lua中偏高的性能要求业务逻辑代码要求允许通过服务器获取来实时更新的复杂的业务逻辑处理应用功能要求不高或者有宿主提供的(如网络库、编解码特定库等)3.python对性能要求一般要求快速构建成型不需要高度定制的gui的要求开发库齐全,不需要自己费心思去考虑封装自己的库的复杂的应用功能要求,如同时需要网络操作,编解码,特殊领域算法等等的,可以免去自己封装库的时间适合代替混账的bat批处理(在文件内容替换等操作中批处理真的狠垃圾)More......Let me think......
阅读全文
摘要:目前,我们常用的配置文件格式有XML和ini, XML层次分明,但其缺点就是写起来太繁杂,对一些关键字如<>之类的处理比较特殊。而ini呢,配置不够灵活,只有简单的段-键-值模式,对于一些多层结构的配置,或者一些列表类型的配置,就显得力不从心了,往往需要编码人员自己分割字符串。 Lua脚本非常简洁清
阅读全文
摘要:用Inno Setup实现静默安装,去除所有安装提示,安装完毕直接运行程序。做游戏的时候,我们往往会提供一个微端,微端的运行方式也往往要求非常简便,安装包一般需要满足这些要求:一、所有安装全部由程序自动完成,自动创建快捷方式和程序组的菜单,不需要用户干预。二、安装完毕自动启动程序。Inno Setup可以做到静默安装的,只不过默认情况下是通过用户提示一步一步安装。原文链接:Inno Setup 静默安装 去除所有安装提示
阅读全文
摘要:如何用RAR制作安装程序winrar是一个著名的文件压缩软件,它功能强大、操作方便,较winzip有过之而无不及。与winzip相比,winrar有一个比较方便的地方就是它不用压缩成zip或rar文件就可以直接创建自解压文件(即exe格式文件)。下面我就以最常用的winamp为例,简单地介绍一下其“安装程序”的制作方法。 打开所需要安装的文件夹,按ctrl+a全选该文件夹中的所有文件,单击右键选择“winrar”下的“添加到档案文件...”,随后打开一个参数设置框,在“常规”选项卡中勾选复选框“创建自释放格式档案文件”,填入你想要生成的可执行文件的文件名,压缩方式选择“最好”; 切换至“高..
阅读全文
摘要:不规则窗口在程序界面设计中能提供非常好的用户体验,以下是我程序运行时的效果图:以下是代码,注意需要修改一些简单的位置,如资源ID,项目的头文件,图片资源等,这些是根据你创建的win32程序的项目名改变的,我的项目名为RgnWindow.// RgnWindow.cpp : Defines the entry point for the application.//#include "stdafx.h"#include "RgnWindow.h"#include <comdef.h>#define ULONG_PTR ULONG#include
阅读全文
摘要:在nopad++中,双击选中某个关键字后,在文档中所有出现该关键字的地方都会高亮,非常方便查看在那些地方有调用。VS2010其实也可以支持该功能,主要设置查找引用的颜色即可。选择菜单:Tools->Options->Environment->Fonts and Colors.在对话框的display item中下拉,选择VA X Find Reference,设置背景颜色(我设置为绿色)选择VA X Find Reference(modify) 这表示是被修改过的引用,设置背景颜色(我设置为红色)需要安装的插件:Visual Assert X(或以上版本)
阅读全文
摘要:在 Win32 API 中,创建线程的基本函数是 CreateThread,而 _beginthread(ex) 是C++ 运行库的函数。为什么要有两个呢?因为C++ 运行库里面有一些函数使用了全局量,如果使用 CreateThread 的情况下使用这些C++ 运行库的函数,就会出现不安全的问题。而 _beginthreadex 为这些全局变量做了处理,使得每个线程都有一份独立的“全局”量。所以,如果你的编程只调用 Win32 API/SDK ,就放心用 CreateThread;如果要用到C++ 运行时间库,那么就要使用 _beginthreadex ,并且需要在编译环境中选择 UseMul
阅读全文
摘要:PE 的意思是 Portable Executable(可移植的执行体)。它是 Win32环境自身所带的执行文件格式。它的一些特性继承自Unix的Coff(common object file format)文件格式。“Portable Executable”(可移植的执行体)意味着此文件格式是跨Win32平台的;即使Windows运行在非Intel的CPU上,任何win32平台的PE装载器都能识别和使用该文件格式。 PE文件在文件系统中,与存贮在磁盘上的其它文件一样,都是二进制数据,对于操作系统来讲,可以认为是特定信息的一个载体,如果要让计算机系统执行某程序,则程序文件的载体必须符合某种..
阅读全文
摘要:上次在《关于内联汇编的几个技巧》一文中只是简单地介绍了如何在C++中使用内联汇编,这一次先对上一次的文章作一补充,然后介绍如何使用MMX指令。 一、 内联汇编的一般原则:1、 自由使用通用寄存器;(EAX,EBX,ECX和EDX)2、 其它寄存器利用堆栈保留,使用,最后恢复;一般的像下面这样: __asm{ push ebp push esp ……….//使用EBP和ESP pop esp pop ebp} 二、 内联汇编__asm可以单独使用:例如:__asm mov eax,anyval1__asm mov ebx,anyval2 三、 函数返回值可以直接放到eax中,可以不理会警告例如:
阅读全文
摘要:有时我们的程序需要一些很高的执行效率或者执行系统底层的功能模块,这些关键的部分我们可以采用内联汇编直接插入汇编指令来达到我们的要求,以下是几个技巧与大家共同探讨. 1. 内联汇编嵌入VC语句:在VC中内联汇编非常方便,只需要按照如下格式__asm{ //汇编语句}请看如下示例代码void CAlcmemDlg::OnButton3() { DWORD d=(m_size*1024*1024)/sizeof(DWORD); DWORD*p=(DWORD*)m_p; DWORD s; m_pr.SetMin(0); m_pr.SetMax((float)d); m_pr.SetEnabled(T.
阅读全文
摘要:原作:王少华转自:http://www.zdnet.com.cn/developer/code/story/0,2000081534,39142983-1,00.htm步骤1:首先在你的进程中创建函数MyFunc,我们将把它放在另一个进程中运行,这里以windows计算器为目标进程。static DWORD WINAPI MyFunc (LPVOID pData){//do something//...//pData输入项可以是任何类型值//这里我们会传入一个DWORD的值做示例,并且简单返回return *(DWORD*)pData;}static void AfterMyFunc (voi
阅读全文
摘要:HOOK是一种WINDOWS下存在很久的技术了。 HOOK一般分两种1。HOOK MESSAGE2。HOOK API 本问讨论的是HOOK API之修改IAT。(如果你是HOOK高手就不要看了) 在最初学HOOK-API的时候通常都是通过覆盖地址和修改IAT的方法。通过这两种技术,我们基本都可以实现对本进程的API函数进行HOOK了。但是在高兴之余会有点遗憾,怎么才能HOOK其他进程的API函数呢?怎么才能对一个API函数进行全局的HOOK呢?下面是我的一个简单的“HOOK其他进程API函数”的实现。(对另一进程的MessageBoxA这个函数进行HOOK) 其实里面的应用了两个技术1。远程线
阅读全文
摘要:Public Function GetProcessPath(ByVal dwProcessId As Long) As String Dim ntStatus As Long Dim objBasic As PROCESS_BASIC_INFORMATION Dim objFlink As Long Dim objPEB As Long, objLdr As Long Dim objBaseAddress As Long Dim bytName(260 * 2 - 1) As Byte Dim strModuleName As String, objName As...
阅读全文
摘要:GetCurrentProcessID 得到当前进程的ID OpenProcessToken 得到进程的令牌句柄LookupPrivilegeValue 查询进程的权限 AdjustTokenPrivileges 判断令牌权限要对一个任意进程(包括系统安全进程和服务进程)进行指定了写相关的访问权的OpenProcess操作,只要当前进程具有SeDeDebug权限就可以了。要是一个用户是Administrator或是被给予了相应的权限,就可以具有该权限。可是,就算我们用Administrator帐号对一个系统安全进程执行OpenProcess(PROCESS_ALL_ACCESS,FALSE,
阅读全文