如何用C语言写后台程序? c语言生成的执行文件 如何在后台运行

\u600e\u4e48\u7528C\u8bed\u8a00\u5199\u4e00\u4e2a\u5173\u95ed\u540e\u53f0\u67d0\u8fdb\u7a0b\u7684\u7a0b\u5e8f

//kill\u8fdb\u7a0bfrom\u540d\u5b57
BOOL KillProcessFromName(LPCSTR lpProcessName)
{
//\u521b\u5efa\u8fdb\u7a0b\u5feb\u7167(TH32CS_SNAPPROCESS\u8868\u793a\u521b\u5efa\u6240\u6709\u8fdb\u7a0b\u7684\u5feb\u7167)
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
//PROCESSENTRY32\u8fdb\u7a0b\u5feb\u7167\u7684\u7ed3\u6784\u4f53
PROCESSENTRY32 pe;
//\u5b9e\u4f8b\u5316\u540e\u4f7f\u7528Process32First\u83b7\u53d6\u7b2c\u4e00\u4e2a\u5feb\u7167\u7684\u8fdb\u7a0b\u524d\u5fc5\u505a\u7684\u521d\u59cb\u5316\u64cd\u4f5c
pe.dwSize = sizeof(PROCESSENTRY32);

//\u4e0b\u9762\u7684IF\u6548\u679c\u540c:
//if(hProcessSnap == INVALID_HANDLE_VALUE) \u65e0\u6548\u7684\u53e5\u67c4
if(!Process32First(hSnapShot,&pe))
{
return FALSE;
}
CString strProcessName = lpProcessName;
//\u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u5c0f\u5199
strProcessName.MakeLower();

//\u5982\u679c\u53e5\u67c4\u6709\u6548 \u5219\u4e00\u76f4\u83b7\u53d6\u4e0b\u4e00\u4e2a\u53e5\u67c4\u5faa\u73af\u4e0b\u53bb
while (Process32Next(hSnapShot,&pe))
{
//pe.szExeFile\u83b7\u53d6\u5f53\u524d\u8fdb\u7a0b\u7684\u53ef\u6267\u884c\u6587\u4ef6\u540d\u79f0
CString scTmp = pe.szExeFile;

//\u5c06\u53ef\u6267\u884c\u6587\u4ef6\u540d\u79f0\u6240\u6709\u82f1\u6587\u5b57\u6bcd\u4fee\u6539\u4e3a\u5c0f\u5199
scTmp.MakeLower();
//\u6bd4\u8f83\u5f53\u524d\u8fdb\u7a0b\u7684\u53ef\u6267\u884c\u6587\u4ef6\u540d\u79f0\u548c\u4f20\u9012\u8fdb\u6765\u7684\u6587\u4ef6\u540d\u79f0\u662f\u5426\u76f8\u540c
//\u76f8\u540c\u7684\u8bddCompare\u8fd4\u56de0
if(!scTmp.Compare(strProcessName))
{
//\u4ece\u5feb\u7167\u8fdb\u7a0b\u4e2d\u83b7\u53d6\u8be5\u8fdb\u7a0b\u7684PID(\u5373\u4efb\u52a1\u7ba1\u7406\u5668\u4e2d\u7684PID)
DWORD dwProcessID = pe.th32ProcessID;
HANDLE hProcess = ::OpenProcess(PROCESS_TERMINATE,FALSE,dwProcessID);
::TerminateProcess(hProcess,0);
CloseHandle(hProcess);
return TRUE;
}
scTmp.ReleaseBuffer();
}
strProcessName.ReleaseBuffer();
return FALSE;
}
\u4ee5\u6740\u6b7bqq\u7a0b\u5e8f\u4e3a\u4f8b\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e0b\u5217\u65b9\u5f0f\uff1a
KillProcessFromName("qq.exe");

\u6ee1\u610f\u7b54\u6848\u7ea2\u6a21\u4eff7\u7ea72009-07-16C\u8bed\u8a00\u662f\u8fd0\u884c\u5728DOS\u4e0a\u9762\u7684,\u5c31\u6bd4\u5982\u4f60\u73a9\u6e38\u620f,\u6e38\u620f\u5fc5\u987b\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u8fd0\u884c,\u4f60\u6ca1\u64cd\u4f5c\u7cfb\u7edf\u5c31\u65e0\u6cd5\u8fd0\u884c\u6e38\u620f\u5148\u6709DOS\u624d\u6709C\u8bed\u8a00\u7a0b\u5e8f\u7684\u8fd0\u884c,\u6ca1\u6709DOS C\u8bed\u8a00\u7a0b\u5e8f\u8dd1\u4e0d\u8d77\u6765 \u6240\u4ee5\u53c8\u4e2aDOS\u6846\u662f\u5fc5\u987b\u7684 \u8ffd\u95ee\uff1a \u6ca1\u56de\u7b54\u4e00\u6837 \u56de\u7b54\uff1a \u7b97\u4e86,\u8ddf\u521d\u5b66\u8005\u5c06\u8fd9\u4e9b\u7406\u8bba\u4e5f\u4e0d\u61c2 \u4f60\u5148\u6162\u6162\u5b66 \u5b66\u4e45\u4e86\u81ea\u7136\u4f1a\u61c2 \u8ffd\u95ee\uff1a \u54c8\u54c8 \u521d\u5b66\u8005\u600e\u4e48\u4e86 \u4f60\u662f\u8001\u9e1f \u4f60\u53c8\u80fd\u600e\u4e48\u6837 \u56de\u7b54\uff1a \u65e5 \u6211\u662f\u544a\u8bc9\u4f60\u8fd9\u4e2a\u57fa\u672c\u539f\u7406 \u4f60\u73b0\u5728\u5c31\u8ba4\u771f\u5b66 \u7b49\u4f60\u5b66\u5230\u4e00\u5b9a\u7a0b\u5ea6 \u8fd9\u4e9b\u4e1c\u897f \u4f60\u81ea\u7136\u5c31\u4f1a\u61c2\u7684\u73b0\u5728\u89e3\u91ca\u8fd9\u4e9b\u6709\u4e9b\u8fc7\u65e9 \u4f60\u4e5f\u4e0d\u8981\u8fc7\u4e8e\u5173\u6ce8\u8fd9\u4e2a\u95ee\u9898 \u4e0d\u7136\u662f\u4e2a\u6b7b\u5faa\u73af \u8ffd\u95ee\uff1a .... \u4f60\u4e0d\u77e5\u9053dos\u53ef\u4ee5\u540e\u53f0\u64cd\u4f5c\u4e48 \u5173\u952e\u7528c\u600e\u4e48\u8c03\u7528\u8fd9\u4e2a\u547d\u4ee4 \u56de\u7b54\uff1a ``````\u8bf4\u4e86 \u4f60\u5148\u4e0d\u8981\u94bb\u4e86 \u8ddf\u6211\u4ee5\u524d\u5b66C\u7684\u65f6\u5019\u4e00\u6837 \u90a3\u6837\u53ea\u662f\u81ea\u5bfb\u70e6\u607c\u7b49\u4f60\u5b66\u5b8cC\u4e86 \u4f60\u61c2\u539f\u7406\u4e86 \u4f60\u4f1a\u53d1\u73b0\u8fd9\u662f\u5f88\u7b80\u5355\u7684\u4e8b \u8ffd\u95ee\uff1a \u4e0d\u61c2\u624d\u8981\u95ee\u7684 \u7834\u4e66\u4ec0\u4e48\u90fd\u6ca1\u5199\u660e\u767d \u600e\u4e48\u770bc\u90fd\u50cf\u4e2a\u8ba1\u7b97\u5668 \u56de\u7b54\uff1a `````````\u56e0\u4e3a\u4f60\u5f88\u591a\u8fd8\u6ca1\u61c2````\u8bf4\u4e0d\u6e05\u695a\u4e86```````\u53cd\u6b63\u544a\u8bc9\u4f60 \u4f60\u5148\u8010\u5fc3\u628a\u77e5\u8bc6\u70b9\u90fd\u5b66\u4e86 \u8ffd\u95ee\uff1a \u4ec0\u4e48\u77e5\u8bc6\u70b9\u554a \u6211\u7684\u4e66\u50cf\u4e2a\u51fd\u6570\u8bbe\u8ba1\u4f3c\u7684 \u53ea\u4f1a\u6559\u505a\u51fd \u5176\u4ed6\u7684\u4ec0\u4e48\u90fd\u6ca1\u5199 \u56de\u7b54\uff1a \u53bb\u4e70\u672c\u8c2d\u6d69\u5f3a\u7b2c\u4e09\u7248C\u8bed\u8a00\u4e66 \u6d45\u663e\u6613\u61c2````\u4e00\u5b9a\u8981\u4e70\u6b63\u7248\u554a

timeSetEvent(10000,1,Timer1_Timer,1,TIME_PERIODIC);
猜测第一个参数为定时时间间隔,第二个参数为时间编号,第三个参数为函数指针,第四个参数是循环次数么?第五个参数又是用来做什么?
是调用 SetTimer () 设置的定时器么?我对这个函数的内部处理不太了解。
while(!a)
{
Sleep(1);
}
我想,原因可能是这样的。当执行弹出回话框的时候,该弹出操作未完成,即执行该操作的函数栈未出完,这时Sleep()函数正好把主线程给挂起了,破坏了程序必须的某些东西,故造成程序崩溃。

Sleep(1);括号里的单位为毫秒,改大点试试

  • 鐢–璇█缂栧啓鐨绋嬪簭,搴旇鎬庝箞缂栧啓exe绋嬪簭,璁╁畠鍦鍚庡彴杩愯,涔熷氨鏄笉鏄剧ず...
    绛旓細绋嬪簭鍏ュ彛鐐圭敱 int main(int argc, char* argv[]) 鏀逛负 int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmd, INT nShow) 鍗冲彲
  • 鎬庝箞缂栧啓c璇█ 鍦╲c++杞欢涓鍐 鍚庡彴杩愯绋嬪簭 灏辨槸鎵撳紑椹笂灏辫烦娌′簡...
    绛旓細浣犲彲浠ヨ缃殣钘忕獥浣撶殑 杩欐牱灏变細鍦鍚庡彴杩愯 浣犵湅涓嶅埌绐楀彛銆傞殣钘忕獥鍙e叿浣揂PI;ShowWIndow(HWND wnd , SW_HIDE); //wnd鏄綘瑕侀殣钘忕殑绐椾綋鍙ユ焺 绋嬪簭鍐呴儴鐩存帴浣跨敤m_hWnd鍗冲彲锛
  • 鍦↙inux涓鐢–璇█缂栫▼
    绛旓細鎴戜滑灏辨槸涓缂栧啓浠g爜涔熷彲浠ユ妸涓涓绋嬪簭鏀惧埌鍚庡彴鍘绘墽琛岀殑.鎴戜滑鍙鍦ㄥ懡浠ゅ悗闈㈠姞涓&绗﹀彿SHELL灏变細鎶婃垜浠殑绋嬪簭鏀惧埌鍚庡彴鍘昏繍琛岀殑. 杩欓噷鎴戜滑"寮鍙"涓涓悗鍙版鏌ラ偖浠剁殑绋嬪簭.杩欎釜绋嬪簭姣忎釜涓涓寚瀹
  • 鎬庝箞浣C璇█绋嬪簭鍦鍚庡彴杩愯骞舵帴鏀堕敭鐩樿緭鍏?
    绛旓細绗竴锛屼綘瑕佷細鍐橠LL锛屾鏌ワ紝閿洏杩囨护鍑芥暟 WH_KEYBOARD锛岀敤SetWindowsHookEx()灏嗗叾鎸傛帴鍦ㄥ嚱鏁伴摼棣栵紝鐢–allNextHookEx()鎶婃秷鎭紶缁欎笅涓涓嚱鏁般傞敭鐩樻寕閽╁嚱鏁帮細int FAR PASCAL KeyboardProc( int nCode,WORD wParam,DWORD lParam) {} KeyboardProc--鎸傛帴鍑芥暟鍚嶏紝璇ュ嚱鏁板繀椤诲湪妯″潡瀹氫箟鏂囦欢涓埄鐢‥XPORTS鍛戒护杩...
  • 濡備綍鐢–璇█鍐欏悗鍙扮▼搴?
    绛旓細鏄皟鐢 SetTimer () 璁剧疆鐨勫畾鏃跺櫒涔堬紵鎴戝杩欎釜鍑芥暟鐨勫唴閮ㄥ鐞嗕笉澶簡瑙c倃hile(!a){ Sleep(1);} 鎴戞兂锛屽師鍥犲彲鑳芥槸杩欐牱鐨勩傚綋鎵ц寮瑰嚭鍥炶瘽妗嗙殑鏃跺欙紝璇ュ脊鍑烘搷浣滄湭瀹屾垚锛屽嵆鎵ц璇ユ搷浣滅殑鍑芥暟鏍堟湭鍑哄畬锛岃繖鏃禨leep()鍑芥暟姝eソ鎶婁富绾跨▼缁欐寕璧蜂簡锛岀牬鍧忎簡绋嬪簭蹇呴』鐨勬煇浜涗笢瑗匡紝鏁呴犳垚绋嬪簭宕╂簝銆
  • 鎬庝箞鐢–璇█鍐涓涓叧闂鍚庡彴鏌杩涚▼鐨绋嬪簭
    绛旓細//瀹炰緥鍖栧悗浣跨敤Process32First鑾峰彇绗竴涓揩鐓х殑杩涚▼鍓嶅繀鍋鐨勫垵濮嬪寲鎿嶄綔 pe.dwSize = sizeof(PROCESSENTRY32);//涓嬮潰鐨処F鏁堟灉鍚://if(hProcessSnap == INVALID_HANDLE_VALUE) 鏃犳晥鐨勫彞鏌 if(!Process32First(hSnapShot,&pe)){ return FALSE;} CString strProcessName = lpProcessName;//灏...
  • C璇█绋嬪簭鎬庝箞鍚庡彴杩愯
    绛旓細浠ヤ笅閮藉彲浠鍚庡彴锛堜笉浼氭樉绀哄湪浠诲姟鏍忥紝涓嶄細鏄剧ず鍦ㄤ换鍔$鐞嗗櫒鐨勫簲鐢绋嬪簭锛変竴銆丮FC涓嶈绐楀彛锛杩涚▼杩樻槸浼氭湁锛変簩銆佹敞鍐屾垚windows鏈嶅姟锛堣繘绋嬭繕鏄細鏈夛級锛坵indows鏈嶅姟鏄缁熺殑鍚庡彴锛夛紙浠ヤ笅浠诲姟绠$悊鍣ㄨ繘绋嬩篃鐪嬩笉鍒帮紝鍙嶆灏辨槸鎵句笉鍒帮級涓夈丏LL杩滅▼娉ㄥ叆 鍥涖乭ook 浜斻乻hellcode娉ㄥ叆鍒颁换涓绋嬪簭 ...
  • 鐢–璇█缂栫▼鍔犱粈涔堣鍙ユ墠鑳戒笉鏄剧ずDOS鎵ц绐楀彛,璁绋嬪簭鍚庡彴杩愯,鏈濂戒妇涓...
    绛旓細1. 鏂板缓宸ョ▼鐨勬椂鍊,瑕佹柊寤簑indows绋嬪簭.鑰屼笉鏄痺indows鐨勬帶鍒跺彴绋嬪簭.褰撶劧,濡傛灉鍙槸缂栬瘧鏂囦欢,涓嶅缓绔嬪伐绋,閭e氨鍦ㄨ繛鎺ラ夐」閲岀敤 /subsystem: window 杩欐牱灏变笉浼氳功鍑洪粦鑹茬殑dos鎻愮ず绗︾獥鍙d簡 鍏蜂綋鍦ㄤ唬鐮佷腑瀹炵幇鏄繖鏍风殑:pragma comment(linker, "/subsystem:window")2.鏍囧噯鐨剋in32绋嬪簭鐨勫叆鍙d笉鏄痬ain鍑芥暟,鑰屾槸...
  • C璇█瀹炵幇绋嬪簭鍚庡彴杩愯,涓瀹氳C璇█(鍙敤dev C)!涓嶈兘鐢╒C
    绛旓細鎵浠ヤ綘鎵鎻愬強鐨刢蹇呴』瑕乨os鏀寔锛岃繖鍏跺疄鏄笉瀵圭殑銆傚悇绉嶆搷浣滅郴缁熼兘鑳芥敮鎸c璇█銆傝屽浜庝綘鐪嬪埌鐨勫湪windows涓嬮潰鐪嬪埌鐨勯偅涓猟os妗嗭紝鍦ㄤ簬浣犵敤鐨勮緭鍏ヨ緭鍑烘帴鍙i兘鏄爣鍑嗙殑杈撳叆杈撳嚭锛岃屼綘鏈夋病鏈夊仛鐣岄潰锛屽彧鑳界湅璧锋潵鏄偅涓粦涔庝箮鐨勬牱瀛愬暒銆傛渶缁堣繕鏄湪windows涓嬫潵鎵ц锛宮ingw涔熷彧鏄釜浜ゅ弶缂栬瘧鑰屽凡锛屼綘鍙堟病鏈夊仛鐣岄潰锛屽綋鐒...
  • C#鎬庢牱灏嗘帶鍒跺彴搴旂敤绋嬪簭杞叆鍚庡彴?
    绛旓細1銆侀鍏堝畨瑁呭ソC#骞舵墦寮 锛屽涓嬪浘鎵绀恒2銆佺劧鍚庡湪鎵撳紑鐨C璇█涓紝濡備笅鍥炬墍绀猴紝鐐瑰嚮宸︿笂瑙掔殑鏂囦欢銆3銆佺劧鍚庡湪鎵撳紑鐨勪笅鎷夎彍鍗曚腑锛岀偣鍑绘柊寤-椤圭洰锛屽鍥炬墍绀恒4銆佹帴鐫鍦ㄦ墦寮鐨勭獥鍙d腑锛岄夋嫨Visual C#锛屽涓嬪浘鎵绀恒5銆佺劧鍚庨夋嫨鎺у埗鍙板簲鐢绋嬪簭锛屽涓嬪浘鎵绀恒6銆佹渶鍚庣偣鍑荤‘瀹氾紝濡備笅鍥炬墍绀哄氨瀹屾垚浜嗐
  • 扩展阅读:c++编程 ... plc编程必背50个程序 ... 初学编程必背50个 ... 如何自己编程做游戏 ... 编程最简单易懂的方法 ... cnc编程必背50个程序 ... 编程必背100个代码 ... c语言调试步骤视频教程 ... 编程入门必背知识 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网