Print Spooler サービスが実行されているかどうかを検出する必要があります。VB.NET のさまざまなリソースを見つけることができます (たとえば、ServiceProcess.ServiceController
実際にサービスを操作するために使用します) が、VB6 のリソースはありません。
印刷スプーラーが VB6 で実行されているかどうかを確認する方法はありますか? そして理想的にはそれを開始しますが、私はそれなしで生き残ることができます.
Print Spooler サービスが実行されているかどうかを検出する必要があります。VB.NET のさまざまなリソースを見つけることができます (たとえば、ServiceProcess.ServiceController
実際にサービスを操作するために使用します) が、VB6 のリソースはありません。
印刷スプーラーが VB6 で実行されているかどうかを確認する方法はありますか? そして理想的にはそれを開始しますが、私はそれなしで生き残ることができます.
は 1 つしかないため、単一のインスタンスのクラスをPrint Spooler
クエリできます。Win32_Service
次に、Started
プロパティをチェックして、開始/実行中かどうかを判断します。
Set objSpooler = GetObject("winmgmts:root\cimv2:Win32_Service.Name='Spooler'")
If objSpooler.Started Then
MsgBox "Print Spooler is running."
Else
MsgBox "Print Spooler is NOT running."
End If
すでに投稿された両方の回答は適切です(そして問題を解決します)が、私は自分の質問に答えて、他の場所(VBForums.comのユーザーBonnie Westによる)の回答を組み込みたいと思いました。これは、追加のアプローチを提供し、おそらく役立つからです。この質問を見つけた他の人のために:
Option Explicit 'In a standard Module
Private Sub Main()
With CreateObject("Shell.Application") 'Or New Shell if Microsoft Shell Controls And Automation is referenced
If .IsServiceRunning("Spooler") Then
.ServiceStop "Spooler", False
Else
.ServiceStart "Spooler", False
End If
End With
End Sub