做個服務拉起應用程序的需求,發現程序後台起了,但是沒有介面
先看這兩篇:
穿透session 0 隔離(一)
穿透session 0 隔離(二)
說的很清楚,這裡不做解釋
我們這裡用c++**實現
handle getprocesshandle(int id)
bool gettokenbyname(handle &htoken, lpstr lpname)
handle hprocesssnap = null;
bool bret = false;
processentry32 pe32 = ;
handle hprocess = null;
if (hprocesssnap == invalid_handle_value)
pe32.dwsize = sizeof(processentry32);
if (process32first(hprocesssnap, &pe32))
} while (process32next(hprocesssnap, &pe32));
} closehandle(hprocesssnap);
return (bret);
}bool startprocess(lpcstr lpprocname)
handle htoken = null;
if (!gettokenbyname(htoken, "explorer.exe"))
startupinfo ststartup;
process_information stprocinfo;
zeromemory(&ststartup, sizeof(startupinfo));
ststartup.cb = sizeof(startupinfo);
ststartup.lpdesktop = text("winsta0\\default");
ststartup.dwflags |= startf_useshowwindow;
ststartup.wshowwindow = sw_shownormal;
bool bresult = createprocessasuser(htoken, lpprocname, null, null, null,
false, normal_priority_class, null, cursubprocessdir.c_str(), &ststartup, &stprocinfo);
closehandle(htoken);
if (!bresult)
return bresult;
}int killprogram(lpcstr lpprocname)
; if (!lpprocname || !lpprocname[0])
strfile = strrchr((const char*)lpprocname, '\\');
if (0 != strfile)
if (hprocesssnap == (handle)-1)
//用來給stprocentry32空間賦值0
memset(&stprocentry32, 0, sizeof(stprocentry32));
stprocentry32.dwsize = sizeof(processentry32);
if (process32first(hprocesssnap, &stprocentry32))
} while (process32next(hprocesssnap, &stprocentry32));
} closehandle(hprocesssnap);
return 0;
}
呼叫時,只需要
startprocess("f:\\demo.exe");
如果在服務中呼叫messagebox也一樣,故有下面**代替
#include #pragma comment( lib, "wtsapi32.lib" )
bool svcmessagebox(lpstr lpcap, lpstr lpmsg, dword style, dword &result)
示例:
dword resutl;
svcmessagebox("錯誤", "連線斷開,請檢查伺服器服務!", mb_ok | mb_iconinformation, resutl);
win7及以後都有會話(session)問題,這確實有點煩人 C windows服務安裝
第二步 以超級管理的身份開啟cmd命令視窗 程式為framework 4.0,輸入cd c windows microsoft.net framework v4.0.30319 程式為framework 2.0,輸入cd c windows microsoft.net framework v2.0....
C windows服務知識集錦
最近公司專案,本人也是剛接觸windows服務,現在把這兩天上網學習的一些資料拿出來與大家分享。1 關於windows服務安裝包的製作和自動啟動服務 2 關於windows服務如是進行除錯。實際上,我們可以直接在onstart 方法中通過eventlog.writeentry hi,i m wise...
C windows服務 一 建立
新建服務專案 雙擊service1.cs,出現介面,右鍵,選擇 新增安裝程式 專案中會生成 projectinstaller.cs,修改projectinstaller.cs 設定執行該服務應用程式時所使用的帳戶型別,預設account,服務安裝的時候會提示輸入使用者名稱密碼 this.servic...