进程名称获取窗口句柄&进程名杀死进程

进程名称获取窗口句柄&进程名杀死进程
如何获得一个已经运行起来,但是仅知道进程名称,没有窗口标题,与调用程序没有特殊关系(如父子关系),并且其它条件(如是否置顶)任意的应用程序的窗口句柄???? 加头文件:#include "tlhelp32.h" C++代码现成如下,感谢分享者,注释添加:C++程序员之家: HWND GetXHandle(CString procName) { DWORD iProcID=0; PROCESSENTRY32 pEntry={sizeof(PROCESSENTRY32)}; HANDLE hSnapshot=Cr...

CreateMutex互斥对象实现线程同步

CreateMutex互斥对象实现线程同步
《CreateMutex函数》详细总结了互斥体的用法,下面总结下CreateMutex互斥对象在多线程中的应用。 [cpp]#include #include #include using namespace std; int index = 0; int tickets = 8; HANDLE m_hMutex; DWORD WINAPI Fun1Proc(LPVOID lpParameter) { while (true) { WaitForSingleObject(m_hMutex, INFINITE); if (tickets > 0) cout

CreateMutex函数

CreateMutex函数
CreateMutex函数 函数作用:CreateMutex作用是找出当前系统是否已经存在指定进程的实例。如果没有则创建一个互斥体。 函数声明: HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes, // 指向安全属性的指针 BOOL bInitialOwner, // 初始化互斥对象的所有者 LPCTSTR lpName // 指向互斥对象名的指针 ); 函数说明: lpMutexAttributes:SECURITY_ATTRIBUTES,指定一个SECURITY_ATTRIBUTES结构,...

QueryPerformanceFrequency函数和LARGE_INTEGER类型

QueryPerformanceFrequency函数和LARGE_INTEGER类型
QueryPerformanceFrequency函数和LARGE_INTEGER类型 说明一:QueryPerformanceFrequency和QueryPerformanceCounter()一起计算出精确时间。QueryPerformanceFrequency()函数获得机器内部计时器的时钟频率,QueryPerformanceCounter()函数用于得到高精度计时器的值(如果存在这样的计时器),如果不支持返回值为0。 说明二:LARGE_INTEGER结构实际上是一个联合。如果你的编译器具有内置支持64位整数,使用Quad...

SetThreadAffinityMask选择CPU某个核运行

SetThreadAffinityMask选择CPU某个核运行
SetThreadAffinityMask选择CPU某个核运行 函数说明:The SetThreadAffinityMask function sets a processor affinity mask for the specified thread.  (该函数设置一个核心运行线程) 函数原型: DWORD_PTR SetThreadAffinityMask( HANDLE hThread, DWORD_PTR dwThreadAffinityMask ); 参数说明: hThread:要限制哪个线程 dwThreadAffinityMask:要在哪个核心上运行线程 注意事项: dwThreadAffinityMask...

C++循环一个时间段(MFC)

C++循环一个时间段(MFC)
C++循环一个时间段(MFC):本想用C++写,但是除了for枚举,没有发现更好的方法,而且要考虑的情况实在是多,于是找到了MFC中循环一个时间段的方法。 [cpp] CTime date1(2012, 2, 2, 0, 0, 0); //时间1 CTime date2(2012, 3, 3, 0, 0, 0); //时间2 int nDays = (int)((date2 - date1).GetDays());//时间差 for (int i = 0; i

可变参数const char* fmt,…

可变参数const char* fmt,…
对于可变参数(const char* fmt,...)一些研究及总结。 首先、在函数中使用可变参数,要包含头文件<stdarg.h>。它包含以下几个宏:va_start;va_arg;va_end;va_copy。 VA_ARG宏,获取可变参数的当前参数,返回指定类型并将指针指向下一参数(t参数描述了当前参数的类型): #define va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) ) VA_START宏,获取可变参数列表的第一个参数的地...

CString与string的区别与转换

CString与string的区别与转换
一、简介 CString是MFC或者ATL中的实现。这也就是在MFC、ATL中使用字符串尽量使用CString,它比其它更有优势,方便好用。 string是C++标准库中的实现。最大的优点就是移植性非常好,而且标准库中提供了强大的泛型算法。(不要和<string.h>弄混,<string.h>提供了一些strcat,strcpy等函数;而string是完整的类,头文件是<string>) 二、相同点 用他们都可以取代对char*的使用。 都封装...

GBK转UTF8编码-UTF8转GBK编码(C++)

GBK转UTF8编码-UTF8转GBK编码(C++)
版本一:string,GBK转UTF8,UTF8转GBK #include <iostream> #include "tchar.h" #include <string> #include <windows.h> using namespace std; string GBKToUTF8(const std::string & strGBK) { string strOutUTF8 = ""; WCHAR * str1; int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0); str1 = new WCHAR[n]; MultiByteToWideChar(CP_ACP...

CreateEvent函数

CreateEvent函数
CreateEvent函数常用于线程的同步。 以下是事件在多线程中的应用: 事件对象就像一个开关:它只有两种状态开和关。当一个事件处于”开”状态,我们称其为”有信号”否则称为”无信号”。可以在一个线程的执行函数中创建一个事件对象,然后观察它的状态,如果是”无信号”就让该线程睡眠,这样该线程占用的CPU时间就比较少。 CreateEvent函数原型: HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, B...
Copyright © C/C++程序员之家 保留所有权利.   Theme  Ality 浙ICP备15011757号-3

用户登录