add description to ServiceConfig
This commit is contained in:
parent
5b87277a6f
commit
bcd101741b
|
@ -23,6 +23,12 @@ extern "C" {
|
|||
typedef DWORD (CALLBACK *ChangeServiceConfig2_func_t)(SC_HANDLE,
|
||||
DWORD, LPVOID);
|
||||
|
||||
typedef DWORD (CALLBACK *QueryServiceConfig2_func_t)(SC_HANDLE,
|
||||
DWORD,
|
||||
LPSERVICE_DESCRIPTION,
|
||||
DWORD,
|
||||
LPDWORD);
|
||||
|
||||
JNIEXPORT jboolean SIGAR_JNI(win32_Service_ChangeServiceDescription)
|
||||
(JNIEnv *env, jclass, jlong handle, jstring description)
|
||||
{
|
||||
|
@ -293,6 +299,7 @@ JNIEXPORT jboolean SIGAR_JNI(win32_Service_QueryServiceConfig)
|
|||
jfieldID id;
|
||||
jclass cls = env->GetObjectClass(obj);
|
||||
jstring value;
|
||||
HINSTANCE lib;
|
||||
|
||||
if (!QueryServiceConfig((SC_HANDLE)handle, config,
|
||||
sizeof(buffer), &bytes))
|
||||
|
@ -332,6 +339,27 @@ JNIEXPORT jboolean SIGAR_JNI(win32_Service_QueryServiceConfig)
|
|||
|
||||
SERVICE_SetStringField("displayName", config->lpDisplayName);
|
||||
|
||||
if ((lib = LoadLibrary(L"advapi32"))) {
|
||||
LPSERVICE_DESCRIPTION desc =
|
||||
(LPSERVICE_DESCRIPTION)buffer;
|
||||
QueryServiceConfig2_func_t query_config =
|
||||
(QueryServiceConfig2_func_t)
|
||||
GetProcAddress(lib, "QueryServiceConfig2W");
|
||||
|
||||
if (query_config) {
|
||||
BOOL retval =
|
||||
query_config((SC_HANDLE)handle,
|
||||
SERVICE_CONFIG_DESCRIPTION,
|
||||
desc, sizeof(buffer), &bytes);
|
||||
if (retval && (desc->lpDescription != NULL)) {
|
||||
SERVICE_SetStringField("description",
|
||||
desc->lpDescription);
|
||||
}
|
||||
}
|
||||
|
||||
FreeLibrary(lib);
|
||||
}
|
||||
|
||||
return JNI_TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -360,6 +360,8 @@ public class Service extends Win32 {
|
|||
if (deps.length != 0) {
|
||||
System.out.println(" deps..." + Arrays.asList(deps));
|
||||
}
|
||||
System.out.println(" desc..." + config.getDescription());
|
||||
System.out.println("");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -81,6 +81,7 @@ public class ServiceConfig {
|
|||
String[] dependencies = null;
|
||||
String serviceStartName;
|
||||
String displayName;
|
||||
String description;
|
||||
|
||||
/**
|
||||
* @return Returns the binaryPathName.
|
||||
|
@ -193,4 +194,16 @@ public class ServiceConfig {
|
|||
public void setType(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
/**
|
||||
* @return Returns the description.
|
||||
*/
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
/**
|
||||
* @param description The description to set.
|
||||
*/
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue