Tôi đang viết một tiện ích để bắt đầu và dừng các dịch vụ windows. Chương trình sẽ được phân phối trên nhiều máy tính với các mức độ khác nhau của đặc quyền người dùng vì vậy tôi không muốn sử dụng dòng lệnh. Tôi đã cố gắng sử dụng JNA,Dịch vụ bắt đầu/dừng sử dụng 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();
}
}
}
Khi tôi chạy chương trình tôi nhận được lỗi sau
com.sun.jna.platform.win32.Win32Exception: Việc xử lý không hợp lệ. tại com.sun.jna.platform.win32.W32ServiceManager.openService (W32ServiceManager.java:77) tại windowsservices.WindowsServices.main (WindowsServices.java:26)
Bất kỳ lời đề nghị sẽ là hữu ích nhất.
Điều này khá thú vị, không biết bạn có thể kiểm soát các dịch vụ Windows dễ dàng với JNA. – tmbrggmn
Vấn đề duy nhất tôi tìm thấy với phương pháp này là khi bạn cố gắng dừng các dịch vụ, bạn phải cung cấp thêm các khối try/catch vì một số dịch vụ mất một lúc để đi từ khi chạy đến ngừng. – GEverding
Bạn suhold thêm câu trả lời làm câu trả lời hợp lệ – gavioto