扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
包含api的.h文件,然后直接调用就可以了,比如winsock.h,可以调用recv等
梁园ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
函数
,也可以在函数
前面
加::
答案补充
HWND
hWnd
=
::FindWindow(sClassName,
sWindowName);//传入类明到sClassName,窗口名sWindowName,否则传入NULL
api函数要用C++.
调用其他exe程序,c语言中用
char my_cmd[80]="my_prog_name.exe";
system(my_cmd); 就可以了。
查询运行窗口 .... 这些都是 设及 视窗 的函数,建窗口,显示窗口,关闭窗口,查询等,都有函数。你只要 包括了相关的头文件,调用相应函数,给入实际参数,就可以了。不难,只是繁杂,时不时要查帮助文件,初学者要有耐心,熟能生巧。
很多地方有错误,最明显的几处:
1、EnumProcesses(processes_array,sizeof(processes_array),processes_sumbytes);
sizeof(processes_array)是整个数组的总字节数,这里传入的应该是元素个数
2、for(i=0;iprocesses_sumbytes/sizeof(processes_array);i++)
同上,应该是processes_sumbytes/sizeof(processes_array[0])
3、EnumProcessModules(processes_handle,hmodule_array,sizeof(hmodule_array),sum_module_bytes);
sum_module_bytes没赋值
4、m=strcmp(to_be_terminated,base_name_buffer);
strcmp无法忽略大小写进行名称比较
5、if(m=0)
。。。
贴上我的实现代码,已经测试可行:
#include
windows.h
#include
psapi.h
#include
stdio.h
#define
N
1024
int
WINAPI
WinMain
(HINSTANCE
hInstance,
HINSTANCE
hPrevInstance,
PSTR
szCmdLine,
int
iCmdShow)
{
DWORD
pa[N],
cbNeeded,
i,
cbNeeded2;
HANDLE
hProcess;
HMODULE
hModule;
char
buffer[512];
char*
target
=
"qq.exe";
BOOL
flag
=
FALSE;
if(!EnumProcesses(pa,
N,
cbNeeded))
{
puts("error
while
enumerating
processes.");
return
0;
}
for(i
=
0;
i
cbNeeded/sizeof(pa[0]);
++i)
{
if(!(hProcess
=
OpenProcess(PROCESS_ALL_ACCESS,
FALSE,
pa[i])))
{
printf("open
process
PID:%d
failed\n",
pa[i]);
continue;
}
if(!EnumProcessModules(hProcess,
hModule,
sizeof(hModule),
cbNeeded2))
{
printf("enum
process
modules
failed
PID:%d\n",
pa[i]);
continue;
}
GetModuleBaseName(hProcess,
hModule,
buffer,
sizeof(buffer));
if(lstrcmpi(target,
buffer)
==
0)
{
TerminateProcess(hProcess,
0);
flag
=
TRUE;
break;
}
}
if(flag)
printf("target
process:
%s
successfully
terminated.",
target);
else
puts("terminate
process
failed.");
return
0;
}
这是Windows控制台光标控制用的,其中结构体封装了控制台光标的两个属性:
控制台光标信息结构体:
typedef struct _CONSOLE_CURSOR_INFO {
DWORD dwSize; //光标的高度,控制台一行字符的高度为100,光标的高度为1到100
BOOL bVisible; //是否显示光标,TRUE为显示,FALSE为不显示
} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
而SetConsoleCursorInfo就是用 结构体的信息 设置控制台光标信息,在这里是将光标高度设为1,并隐藏,
另外,下面这个函数用来换取控制台光标信息,返回值存储在CONSOLE_CURSOR_INFO结构中,
BOOL WINAPI GetConsoleCursorInfo(
__in HANDLE hConsoleOutput,
__in const CONSOLE_CURSOR_INFO* lpConsoleCursorInfo
);
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流