Search in sources :

Example 11 with HKEY

use of com.sun.jna.platform.win32.WinReg.HKEY in project processing by processing.

the class WindowsRegistry method setIntValue.

/**
   * Writes an int value.
   *
   * @return true on success
   * @param rootKey root key
   * @param subKeyName key name
   * @param name value name
   * @param value value
   */
public static boolean setIntValue(REGISTRY_ROOT_KEY rootKey, String subKeyName, String name, int value) {
    //Advapi32 advapi32;
    //int handle;
    //byte[] data;
    byte[] data = new byte[4];
    data[0] = (byte) (value & 0xff);
    data[1] = (byte) ((value >> 8) & 0xff);
    data[2] = (byte) ((value >> 16) & 0xff);
    data[3] = (byte) ((value >> 24) & 0xff);
    Advapi32 advapi32 = Advapi32.INSTANCE;
    HKEY handle = openKey(rootKey, subKeyName, WinNT.KEY_READ | WinNT.KEY_WRITE);
    boolean ret = false;
    //if(handle != 0) {
    if (handle != null) {
        if (advapi32.RegSetValueEx(handle, name, 0, WinNT.REG_DWORD, data, data.length) == WinError.ERROR_SUCCESS) {
            ret = true;
        }
        advapi32.RegCloseKey(handle);
    }
    return ret;
}
Also used : Advapi32(com.sun.jna.platform.win32.Advapi32) HKEY(com.sun.jna.platform.win32.WinReg.HKEY)

Example 12 with HKEY

use of com.sun.jna.platform.win32.WinReg.HKEY in project processing by processing.

the class WindowsRegistry method setStringValue.

/**
   * Writes a String value.
   *
   * @param rootKey root key
   * @param subKeyName key name
   * @param name value name
   * @param value value
   * @throws java.io.UnsupportedEncodingException on error
   * @return true on success
   */
public static boolean setStringValue(REGISTRY_ROOT_KEY rootKey, String subKeyName, String name, String value) throws UnsupportedEncodingException {
    //int handle;
    //byte[] data;
    // appears to be Java 1.6 syntax, removing [fry]
    //data = Arrays.copyOf(value.getBytes("UTF-16LE"), value.length() * 2 + 2);
    byte[] data = new byte[value.length() * 2 + 2];
    byte[] src = value.getBytes("UTF-16LE");
    System.arraycopy(src, 0, data, 0, src.length);
    Advapi32 advapi32 = Advapi32.INSTANCE;
    HKEY handle = openKey(rootKey, subKeyName, WinNT.KEY_READ | WinNT.KEY_WRITE);
    boolean ret = false;
    //if(handle != 0) {
    if (handle != null) {
        if (advapi32.RegSetValueEx(handle, name, 0, WinNT.REG_SZ, data, data.length) == WinError.ERROR_SUCCESS) {
            ret = true;
        }
        advapi32.RegCloseKey(handle);
    }
    return ret;
}
Also used : Advapi32(com.sun.jna.platform.win32.Advapi32) HKEY(com.sun.jna.platform.win32.WinReg.HKEY)

Example 13 with HKEY

use of com.sun.jna.platform.win32.WinReg.HKEY in project jna by java-native-access.

the class Advapi32Util method registryGetStringValue.

/**
	 * Get a registry REG_SZ value.
	 *
	 * @param root
	 *            Root key.
	 * @param key
	 *            Registry path.
	 * @param value
	 *            Name of the value to retrieve.
	 * @return String value.
	 */
public static String registryGetStringValue(HKEY root, String key, String value) {
    HKEYByReference phkKey = new HKEYByReference();
    int rc = Advapi32.INSTANCE.RegOpenKeyEx(root, key, 0, WinNT.KEY_READ, phkKey);
    if (rc != W32Errors.ERROR_SUCCESS) {
        throw new Win32Exception(rc);
    }
    try {
        return registryGetStringValue(phkKey.getValue(), value);
    } finally {
        rc = Advapi32.INSTANCE.RegCloseKey(phkKey.getValue());
        if (rc != W32Errors.ERROR_SUCCESS) {
            throw new Win32Exception(rc);
        }
    }
}
Also used : HKEYByReference(com.sun.jna.platform.win32.WinReg.HKEYByReference)

Example 14 with HKEY

use of com.sun.jna.platform.win32.WinReg.HKEY in project jna by java-native-access.

the class Advapi32Util method registryCreateKey.

/**
	 * Create a registry key.
	 *
	 * @param root
	 *            Root key.
	 * @param parentPath
	 *            Path to an existing registry key.
	 * @param keyName
	 *            Key name.
	 * @return True if the key was created, false otherwise.
	 */
public static boolean registryCreateKey(HKEY root, String parentPath, String keyName) {
    HKEYByReference phkKey = new HKEYByReference();
    int rc = Advapi32.INSTANCE.RegOpenKeyEx(root, parentPath, 0, WinNT.KEY_CREATE_SUB_KEY, phkKey);
    if (rc != W32Errors.ERROR_SUCCESS) {
        throw new Win32Exception(rc);
    }
    try {
        return registryCreateKey(phkKey.getValue(), keyName);
    } finally {
        rc = Advapi32.INSTANCE.RegCloseKey(phkKey.getValue());
        if (rc != W32Errors.ERROR_SUCCESS) {
            throw new Win32Exception(rc);
        }
    }
}
Also used : HKEYByReference(com.sun.jna.platform.win32.WinReg.HKEYByReference)

Example 15 with HKEY

use of com.sun.jna.platform.win32.WinReg.HKEY in project jna by java-native-access.

the class Advapi32Util method registryGetLongValue.

/**
	 * Get a registry QWORD value.
	 *
	 * @param root
	 *            Root key.
	 * @param key
	 *            Registry key path.
	 * @param value
	 *            Name of the value to retrieve.
	 * @return Integer value.
	 */
public static long registryGetLongValue(HKEY root, String key, String value) {
    HKEYByReference phkKey = new HKEYByReference();
    int rc = Advapi32.INSTANCE.RegOpenKeyEx(root, key, 0, WinNT.KEY_READ, phkKey);
    if (rc != W32Errors.ERROR_SUCCESS) {
        throw new Win32Exception(rc);
    }
    try {
        return registryGetLongValue(phkKey.getValue(), value);
    } finally {
        rc = Advapi32.INSTANCE.RegCloseKey(phkKey.getValue());
        if (rc != W32Errors.ERROR_SUCCESS) {
            throw new Win32Exception(rc);
        }
    }
}
Also used : HKEYByReference(com.sun.jna.platform.win32.WinReg.HKEYByReference)

Aggregations

HKEYByReference (com.sun.jna.platform.win32.WinReg.HKEYByReference)21 HKEY (com.sun.jna.platform.win32.WinReg.HKEY)14 Advapi32 (com.sun.jna.platform.win32.Advapi32)12 IntByReference (com.sun.jna.ptr.IntByReference)8 SP_DEVINFO_DATA (com.sun.jna.platform.win32.SetupApi.SP_DEVINFO_DATA)1 KEY_BASIC_INFORMATION (com.sun.jna.platform.win32.Wdm.KEY_BASIC_INFORMATION)1 WinBase (com.sun.jna.platform.win32.WinBase)1 HANDLE (com.sun.jna.platform.win32.WinNT.HANDLE)1 TreeMap (java.util.TreeMap)1 TreeSet (java.util.TreeSet)1