我编写了一个程序来触发串行端口上的继电器开关。继电器关闭 10ms,之后程序关闭。但是,该程序坚持在一个小的命令提示符窗口中运行。我希望程序在不窃取焦点的情况下运行;要么在后台运行,要么更好,根本不打开窗口。
这是完整的程序:
#include <windows.h>
//Initialise Windows module
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance,
LPSTR lpszArgument, int nFunsterStil)
{
//Define the serial port precedure
HANDLE hSerial;
//Open the port
hSerial = CreateFile("COM1",GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
//Switch on relay
EscapeCommFunction(hSerial, SETDTR);
//Wait 10ms
Sleep(10);
//Switch off relay
EscapeCommFunction(hSerial, CLRDTR);
//Close the port
CloseHandle(hSerial);
//End with error code 0
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我必须更改什么才能防止它在窗口中运行?
尝试添加
#pragma 注释(链接器,“/SUBSYSTEM:WINDOWS”)
如果这不起作用,请尝试手动隐藏窗口:
HWND hWnd = GetConsoleWindow(); ShowWindow( hWnd, SW_HIDE );