Windowsサービスを開始および停止するユーティリティを作成しています。このプログラムは、さまざまなレベルのユーザー権限を持つ多数のコンピュータに分散されるので、コマンドラインを使用したくないです。ハンドルが無効です:私は、私は次のようなエラーにJNAを使用したサービスの開始/停止
com.sun.jna.platform.win32.Win32Exceptionを取得するプログラムを実行するとJNA、
import com.sun.jna.platform.win32.W32Service;
import com.sun.jna.platform.win32.W32ServiceManager;
import com.sun.jna.platform.win32.Winsvc;
/**
*
* @author
*/
public class WindowsServices {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try
{
// TODO code application logic here
W32ServiceManager serviceManager = new W32ServiceManager();
W32Service service = serviceManager.openService("uvnc_service", Winsvc.SERVICE_ACCEPT_STOP);
service.stopService();
service.close();
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
を使用してみました。 com.sun.jna.platform.win32.W32ServiceManager.openServiceで windowsservices.WindowsServices.mainで(W32ServiceManager.java:77) (WindowsServices.java:26)
任意の提案は、最も参考になります。
これはかなり涼しく、あなたがJNAでWindowsサービスを簡単に制御できるかどうかわかりませんでした。 – tmbrggmn
この方法で見つかった唯一の問題は、サービスを停止しようとすると、一部のサービスが実行中から停止するまでに時間がかかるため、余分なtry/catchブロックを提供する必要があるということです。 – GEverding
あなたはsuholdが有効な答えとして答えを追加します – gavioto