📄 main.cpp.bak
字号:
/**
* @file main.cpp
* @brief 演示了隐藏控制台窗口、禁用关闭按钮、控制台窗口启动最小化、更改控制台图标的实现。
* @author Hao Liming
* @date 2009-1-9 9:11:51
* @version 0.1
* <pre><b>copyright: CASCO</b></pre>
* <pre><b>email: </b>haoliming@casco.com.cn</pre>
* <pre><b>company: </b>http://www.casco.com.cn</pre>
* <pre><b>All rights reserved.</b></pre>
* <pre><b>modification:</b></pre>
* <pre>Write modifications here.</pre>
*/
/**
* @brief
* a.隐藏控制台窗口、禁用关闭按钮、控制台窗口启动最小化在main函数中实现.
* b.更改控制台程序图标的实现在这里进行说明。在VS2008中可以直接创建图标,并与资源文件绑定。这里仅对VC6进行说明。
* 1.新建图标文件。“File”->"New"->"Icon File"->假设输入文件名为pic,则图标文件名为pic.ico
* 2.新建资源文件。“File”->"New"->"Resource Script"->输入与工程同名的资源名称,本示例为ConsoleManamengent.rc
* 3.修改资源文件。用记事本工具打开工程目录下的ConsoleManamengent.rc,在最后一行加入:IDI_ICON1 ICON DISCARDABLE "pic.ico"
* 4.保存资源文件,重新编译。
*/
/** @brief 需要包含的头文件*/
#include <windows.h>
/** @brief 1.隐藏控制台窗口*/
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
int main(int argc, char * argv[])
{
char buf[MAX_PATH];
GetConsoleTitle(buf, MAX_PATH);
HWND hwnd = ::FindWindow(NULL, buf);
HMENU hmenu = ::GetSystemMenu(hwnd, FALSE);
if (hwnd)
{
/** @brief 2.禁用控制台窗口的关闭按钮*/
::RemoveMenu(hmenu, SC_CLOSE, MF_BYCOMMAND);
/** @brief 3.控制台程序启动时窗口最小化*/
::SendMessage(hwnd, WM_SYSCOMMAND, SC_MINIMIZE, 0);
}
/** @brief 4.获得服务器启动程序当前路径,并添加到注册表自启动*/
TCHAR workingPath[MAX_PATH];
ZeroMemory(workingPath, MAX_PATH);
if (GetModuleFileName(NULL, workingPath, MAX_PATH) > 0)
{
//取得当前工作路径成功
HKEY hKey;
if (RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", &hKey) != ERROR_SUCCESS)
{
//创建注册表成功
}
else
{
if (RegSetValueEx(hKey, "CASCO Log Sever", 0, REG_SZ, (CONST BYTE *)(LPCTSTR)workingPath, strlen(workingPath)) != ERROR_SUCCESS)
{
//设置注册表失败,不自启动
}
else
{
//设置注册表成功,启动设置成功
}
RegCloseKey(hKey);
}
}
else
{
//取得当前工作路径成功失败,不自启动
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -