トップページ > プログラム > 2016年08月15日 > wycrF0RU

書き込み順位&時間帯一覧

20 位/169 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000000112



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Win32API質問箱 Build122

書き込みレス一覧

Win32API質問箱 Build122
770 :デフォルトの名無しさん[sage]:2016/08/15(月) 22:57:42.57 ID:wycrF0RU
win8.1/win10で動作するもので、管理者権限で実行を必要とするものを
(Windowsのサービスを停止、再開)を作りたいのですが、うまく動きません。
sc.exeとnet.exeを呼び出して、
SellExecuteExでコマンドを送っているのですが、うごく動いていません。

環境はvs2015です。ビルドオプションかなにかが必要でしょうか?

SHELLEXECUTEINFO info;
memset(&info, 0, sizeof(info));
info.cbSize = sizeof(info);
info.lpVerb = L"open";info.lpFile = L"net.exe";
info.lpParameters = L"stop 停止させたいサービス名";
info.nShow = SW_SHOWNORMAL;
info.fMask = SEE_MASK_NOCLOSEPROCESS;
ShellExecuteEx(&info);
WaitForSingleObject(info.hProcess, INFINITE);
info.lpFile = L"sc.exe";
info.lpParameters = L"config 停止させたいサービス名 start = disabled";

バッチファイル形式で管理者権限を設定して実行すればうまく動くのですが、
呼び出すAPIが間違っているのでしょうか?
こっちだとうまく動きます。
停止.bat
net stop サービス名
sc config サービス名 start= disabled

ご教授お願いします。
Win32API質問箱 Build122
772 :デフォルトの名無しさん[sage]:2016/08/15(月) 23:16:47.36 ID:wycrF0RU
>>771
回答ありがとうございます。
ビルドして試しましたが、実機では、サービスが停止していないようでした。
コンソール画面では停止したとは出ていました。

外部呼出しでうまくいけばよかったのですが、これからOpenSCManagerあたり調べてみます。
UAC周りで悪さしているのかなぁ。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。