?? main.cpp
字號:
/**
* @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.保存資源文件,重新編譯。
* 5.注意。本演示圖標為16稱16和32*32。
*/
/** @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)
{
//設置exe程序的工作路徑,這里設置為exe文件所在的位置為工作路徑
char path[3000];
memset(path, 0, 3000);
for (int i = strlen(workingPath) - 1; i >= 0; --i)
{
if (workingPath[i] == '\\')
{
strncpy(path, workingPath, i + 1);
break;
}
}
SetCurrentDirectory(path);
//取得當前工作路徑成功
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 + -