随笔4

1.一个类只有一个对象

class   Single 

public:   
    static   Single*   GetObject(); 
private: 
    Single(); 
    static   Single*   m_obj; 
}; 

Single*   Single::GetObject(){   
    if(m_obj   ==   NULL) 
          m_obj   =   new   Single(); 
    return   m_obj; 


Single:m_obj   =   NULL;

2. vector

3. bool EnableDebugPrivilege()

{
HANDLE hToken;
LUID sedebugnameValue;
TOKEN_PRIVILEGES tkp;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))//打开与某进程相关的访问令牌
{
return FALSE;
}
if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &sedebugnameValue))//查询是否有DEBUG权限
{
CloseHandle(hToken);
return false;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(tkp), NULL, NULL))//为进程申请DEBUG权限
{
CloseHandle(hToken);
return false;
}
return true;
}

4.OpenProcess 函数用来打开一个已存在的进程对象,并返回进程的句柄。  

    1.函数原型

  HANDLE OpenProcess

  DWORD dwDesiredAccess, //渴望得到的访问权限(标志)

  BOOL bInheritHandle, // 是否继承句柄

  DWORD dwProcessId// 进程标示符

  );

  2.返回值:

  如成功,返回值为指定进程的句柄。

  如失败,返回值为空,可调用GetLastError获得错误代码。

5.获取进程路径:GetModuleFileNameExA(hProcess, NULL,buf,MAX_PATH);

6.FindFirstFile:根据文件名查找文件

7.SendMessageTimeout:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,并且,如果指定的窗口属于不同的线程,直到窗口程序处理完消息或指定的超时周期结束函数才返回。如果接收消息的窗口和当前线程属于同一个队列,窗口程序立即调用,超时值无用.

转载于:https://www.cnblogs.com/wjl4934/archive/2012/07/16/2593239.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值