作者jay70120 (小鳥頭)
看板C_and_CPP
標題[問題] 關於SERVICE CONTROL 的問題
時間Tue Jan 15 16:36:11 2019
開發平台(Platform): (Ex: Win10, Linux, ...)
C++
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
N/A
問題(Question):
schSCManager = OpenSCManager(
NULL, // local computer
NULL, // ServicesActive database
SC_MANAGER_ALL_ACCESS); // full access rights
使用OpenSCManager 一直都會有ACCESS Deline 的問題
我把他換成SC_Manager_Connect 就沒問題
但是在後面的OpenService 還是會一直ACCESS Denied…
這個TOOL 本身有支援CMD 直接下-STOP 是沒問題的
但是我要在這個CODE 裡面讓他跑STOP 的CODE 就是會ACCESS Denied
請問有大大能知道這個問題怎麼解決嗎…
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.133.98
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1547541374.A.E97.html
1F:推 LPH66: 「以系統管理員身份執行」你的程式可行嗎? 01/15 16:46
2F:→ jay70120: 這個exe的話 直接在administrator shell 下 對他下 01/15 16:55
3F:→ jay70120: -stop -start 都是可以的 但我在code裡面執行就不行 01/15 16:56
※ 編輯: jay70120 (211.23.76.67), 01/15/2019 17:02:42
4F:→ petercoin: 你說的code裡面執行就不行的意思是?debug run嗎 01/15 17:13
5F:→ petercoin: 是的話用admin執行vc++再跑code應該就可以 01/15 17:13
6F:→ jay70120: 因為我的tool會建一個service 同時也可以用command方式 01/15 17:29
7F:→ jay70120: 當我 在code裡面加一段function讓他判斷情況去關service 01/15 17:30
8F:→ jay70120: 他會denied 但是 直接對這個exe 下command 是沒問題的… 01/15 17:30
9F:→ jay70120: 應該是權限問題 因為我不用admin下command 也不行 01/15 17:30
10F:→ jay70120: 但小弟 不知道該怎麼在code裡面執行admin… 01/15 17:31
11F:推 dces4212: 應該找的到資料 像有些安裝包都是打開後跟你要權限 01/15 17:42
12F:→ jay70120: 是不是要加一個東西我在build 這exe的時候就要讓他有 01/15 17:57
13F:→ jay70120: administrator 的權限? 01/15 17:57
14F:→ jay70120: 但我這個比較類似driver我需要透過INF安裝這樣對MS來說 01/15 17:58
15F:→ jay70120: 是安全的嗎@@? 01/15 17:58
16F:推 jin879: 這個小弟有點經驗,執行檔build完後用mt.exe寫manifest 01/16 08:55
17F:→ jin879: 加入run as adiministrator之類的 01/16 08:56
這位大大 請問一下 那這個方式跟
[Project] -> [Properties] -> [Linker] -> [Manifest File] -> UAC Execution
Level: 選擇 requireAdministrator
這樣的方法有什麼不一樣呢@@?因為我用這個方法也是不行 我來試一下你說的東西
※ 編輯: jay70120 (211.23.76.67), 01/16/2019 09:10:22