public String readString(String key, String valueName) {
		try {
			OpenResult openResult = openKey(key, READ_ACCESS);
			if (openResult.mSuccess) {
				if (METHOD_QUERY_VALUE_EX == null) {
					METHOD_QUERY_VALUE_EX = getMethod(mRoot.getClass(), "WindowsRegQueryValueEx", int.class, byte[].class);
				}
				byte[] bytes = (byte[]) METHOD_QUERY_VALUE_EX.invoke(mRoot, new Object[] { openResult.mHandle, toCstr(valueName) });
				closeKey(openResult.mHandle);
				return bytes != null ? new String(bytes) : null;
			}
		} catch (Exception exception) {
			Log.error(exception);
		}
		return null;
	}