- ベストアンサー
サービスの停止
VB6.0でAPIを使用して、サービスの停止/開始をしたいのですが、 サンプル等が少なく、APIの使い方がいまいちわかりません。 停止はできたのですが、 停止するまで待つ方法と、開始の方法がわかりません。
- wan-chan
- お礼率76% (1582/2056)
- Visual Basic
- 回答数3
- ありがとう数2
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ここのサンプルはどうでしょうか? http://www.vbstation.net/ サンプル VB6-サービス 2.WindowsNTサービス、デバイスの列挙(拡張版)
その他の回答 (2)
- KenKen_SP
- ベストアンサー率62% (785/1258)
すみません。ミス訂正で#2 を差し替えます。転記ミスです。 Public Function StopService( _ ByVal ServiceName As String, _ Optional ByVal WaitMilisecondTime As Long = 5000) As Long ' 目 的 : サービスの停止 ' 引 数 : ServiceName サービス名 (String) ' 戻り値 : 成功:0 / 失敗:1 (Long) Dim ServiceList As Object Dim Service As Object Dim Sql As String Dim lRet As String Sql = "Select * From Win32_Service Where Name='" & ServiceName & "'" Set ServiceList = CreateObject("WbemScripting.SWbemLocator") _ .ConnectServer.ExecQuery(Sql) For Each Service In ServiceList If Service.State = "Running" Then lRet = Service.StopService() Sleep WaitMilisecondTime End If Next StopService = IIf(lRet = 0, 1, 0) Set ServiceList = Nothing End Function
お礼
ありがとうございます。 確かにAPIより楽そうですね。 こういう方法があるとは知りませんでした。 勉強になりました。 もうAPIで作成してしまったのですが、 時間があったら試してみます!
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。KenKen_SP です。 API より WMI の方が楽じゃない? Option Explicit Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long) Public Function StopService( _ ByVal ServiceName As String, _ Optional ByVal WaitMilisecondTime As Long = 5000) As Long ' 目 的 : サービスの停止 ' 引 数 : ServiceName サービス名 (String) ' 戻り値 : 成功:0 / 失敗:1 (Long) Dim ServiceSet As Object Dim Service As Object Dim Sql As String Dim lRet As String Sql = "Select * From Win32_Service Where Name='" & ServiceName & "'" Set ServiceList = CreateObject("WbemScripting.SWbemLocator") _ .ConnectServer.ExecQuery(Sql) For Each Service In ServiceList If Service.State = "Running" Then lRet = Service.StopService() Sleep WaitMilisecondTime Next StopService = IIf(lRet = 0, 1, 0) Set ServiceSet = Nothing End Function 待機については、サービスの状況を Service.State で調べられます。 Running (動作中) Stopped (停止) たいていは、この2つ。その他にも Paused (一時停止) Continuing (続行中) がありますが。 サービス開始なら、Service.StartService() です。関数は別途作成して 下さい。エラーコードは StopService とは異なりますよ。0 で成功、 10 なら既に稼動中です。
関連するQ&A
- VB2008 サービス「PrintSpooler」の停止、開始方法
VB2008 サービス「PrintSpooler」の停止、開始方法 VB初心者です どなたか教えていただけると助かります サービス「PrintSpooler」の停止後、特定のファイルを削除してから 再開するプログラムを作りたいのですがまったくわかりません どなたか教えてください よろしくお願いします ※参照すべきコンポーネントも必要であれば教えていただけると助かります
- ベストアンサー
- Visual Basic
- SQLServerサービスマネージャの開始・停止をVB6からするには?
WindowsXP,VB6,SP6,MSDEにて開発しています。 タイトルの通りですが、 VBからSQLServerサービスマネージャの開始・停止をしたいのですが、 どういった方法がありますでしょうか? 色々考えたり調べたりしたのですが、どうしてもわかりません。 どうぞ、ご教授よろしくお願いしますm(_ _)m
- ベストアンサー
- Visual Basic
- 防御ツールサービスの停止???
パソコン立ち上げ時に「アプリケーションの初期化に失敗しました。Windous防御ツールサービスが停止しました。サービスを開始するには、コンピューターを再起動するか、またはサービスを手動で開始する方法を・・・」となります。再起動しても、状態は変りません。手動の方法も分かりません。どうしたら、よいのでしょうか?普段使用のセキュリティは、かなり不安な状況なのでしょうか?どうそ、教えてください。
- ベストアンサー
- Windows XP
- プリンターのサービスが電源を切ると停止してしまう
win7を使っているのですが パソコンを起動するたびに プリンター スプーラーのサービスが停止になってしまいます。 毎回毎回手作業で開始してるのですが、 ずっと開始の状態にして、再起動しても停止しない方法はありますか? http://tantanpopo.blog.so-net.ne.jp/2012-06-28-1 これと状況は似ていますが、 私の場合、サービスを開始するだけで通常通り印刷できますが 一度電源を落とすと停止してしまいます。
- ベストアンサー
- Windows 7
- サービスの停止(無効)に伴う不具合について
サービスの停止(無効)に伴う不具合について 昨年末Windows 7 Home PremiumのPCを購入しました。 不要な「サービス」を停止すると、メモリの使用量が少なくなり、 より快適になるらしいと知って、ネットで調べながら おそらく不要と思われた「サービス」を「手動」に変更 もしくは「無効」にして再起動しました。 すると、「管理ツール」のすべてのプログラムが 開かなくなってしまいました。 「サービス」「イベントビューアー」「コンピューターの管理」 「サービス」「タスクスケジュラー」など。。。 そのときのエラーは「指定されたサービスは無効であるか、 または有効なデバイスが関連づれられていないため、 開始できません」というものです。 停止してはいけない「サービス」を「停止」 してしまったからこうなったのだと思いますが、 msconfig自体が起動しないため、 そもそも修正・変更ができなくなってしまいました。 また、タスクマネージャーの「サービス」から 現在「停止」になっているサービスをとにかく全部、 一旦「開始」してみようとしましたが、 大部分のサービスは「アクセスが拒否された」と出て開始できません。 こうなったのはどの「サービス」を手動や無効に 変更したから駄目になったのか また、解決するにはどうしたらよいか アドバイスいただけましたらと思います。 よろしくお願いいたします。
- ベストアンサー
- Windows 7
- サービスの停止について
Windows 10 64bit Pro 1803 ベースのPCで3つのサービスを開始しますが、停止します。これらの停止によって、サービス・Service Control Manager のエラーがイベントビューアに出ています。お手数でも以下のサービスが起動可能か検証のほど、よろしくお願いいたします。 サービス名は・Routing and Remote Access・Secure Socket Tunneling Protocol Service・Remote Access Connection Manager 以上です。
- ベストアンサー
- Windows 10
- Task Scheduleサービスがすぐに停止してしまいます
日頃、TVチューナーのタイマー録画のためにWindowsのタスクスケジュール機能を使用しているのですが、今朝方より、その実行に必要なTask Scheduleサービスが正しく動作しなくなってしまいました。 コントロールパネルの「管理ツール - サービス」を開いて調べてみたところ、スタートアップの設定は「自動」のままで、起動時に一応は開始されているものの、数分後には停止してしまうため、スケジュールが実行できないようです。 手動で再度サービスを開始しても、やはり同様に停止してしまいます。 サービスを常に「開始」状態にし続けるためには、どのようにすれば良いでしょうか?
- 締切済み
- Windows XP
- Windowsサービスで、停止しているサービスの一覧を取得するに
コマンドプロンプトにおいて、net start で開始しているサービスが表示されますが、停止しているサービスの一覧を取得するにはどうしたらよいですか? MMCサービスみたいに、開始・停止に関係なくサービスの一覧が名前順にソートされていて、右に開始かどうかが表示できればベストです。 コマンドがなければ外部コマンド、VBScriptでもOKです。
- ベストアンサー
- Windows系OS
- 停止してもいいサービス
Vistaのホームプレミアムです。システム構成で不要サービスを停止できるようですが具体的にどのサービスを停止して良いのやら・・・。管理ツールには説明が付いていても難解です。 ではどのサービスを停止してもいいのでしょうか?おしえてください! 備考~ ・CD等自動起動で読み込みはいらない ・ビジネスに殆ど使用しない 家庭パソコンです。音は必要。インターネットをするくらいです。
- ベストアンサー
- Windows Vista
- サービスの停止ができません
初めてVISTAを使うのですが、(Atom1.86GHz、メモリ2Gのマシンです) すぐにCPU使用率が100%、メモリも50%程度に上がり、ほとんど動いてくれません。 故障でしょうか? 本題に戻って^^; サービスを停止して改善したいのですが、 「サービスを停止できません 操作を完了できませんでした。アクセスが拒否されました。」 と表示され停止できません。 ユーザは管理者になっています。 どうすれば停止できるようになりますでしょうか? ぜひ宜しくお願い致します。
- ベストアンサー
- Windows Vista
お礼
ありがとうございます。 このページにはたどり着いたのですが、 サンプルまで探せませんでした。 見つけることができました! 試してみます。
補足
出来ました!