Я сделал это перед использованием jRegistryKey. Это - библиотека LGPL Java/JNI, которая может сделать то, в чем Вы нуждаетесь. Вот пример того, как я привык его для включенного редактирования Реестра через regedit и также опцию "Show Folder Options" для меня в Windows с помощью реестра.
import java.io.File;
import ca.beq.util.win32.registry.RegistryKey;
import ca.beq.util.win32.registry.RegistryValue;
import ca.beq.util.win32.registry.RootKey;
import ca.beq.util.win32.registry.ValueType;
public class FixStuff {
private static final String REGEDIT_KEY = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System";
private static final String REGEDIT_VALUE = "DisableRegistryTools";
private static final String REGISTRY_LIBRARY_PATH = "\\lib\\jRegistryKey.dll";
private static final String FOLDER_OPTIONS_KEY = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer";
private static final String FOLDER_OPTIONS_VALUE = "NoFolderOptions";
public static void main(String[] args) {
//Load JNI library
RegistryKey.initialize( new File(".").getAbsolutePath()+REGISTRY_LIBRARY_PATH );
enableRegistryEditing(true);
enableShowFolderOptions(true);
}
private static void enableShowFolderOptions(boolean enable) {
RegistryKey key = new RegistryKey(RootKey.HKEY_CURRENT_USER,FOLDER_OPTIONS_KEY);
RegistryKey key2 = new RegistryKey(RootKey.HKEY_LOCAL_MACHINE,FOLDER_OPTIONS_KEY);
RegistryValue value = new RegistryValue();
value.setName(FOLDER_OPTIONS_VALUE);
value.setType(ValueType.REG_DWORD_LITTLE_ENDIAN);
value.setData(enable?0:1);
if(key.hasValue(FOLDER_OPTIONS_VALUE)) {
key.setValue(value);
}
if(key2.hasValue(FOLDER_OPTIONS_VALUE)) {
key2.setValue(value);
}
}
private static void enableRegistryEditing(boolean enable) {
RegistryKey key = new RegistryKey(RootKey.HKEY_CURRENT_USER,REGEDIT_KEY);
RegistryValue value = new RegistryValue();
value.setName(REGEDIT_VALUE);
value.setType(ValueType.REG_DWORD_LITTLE_ENDIAN);
value.setData(enable?0:1);
if(key.hasValue(REGEDIT_VALUE)) {
key.setValue(value);
}
}
}
Один раз нажав кнопку, вы можете сделать так, чтобы sql server выражал зависимость от основного проекта, и он будет развернут с данными установки и установлен, если он еще не установлен, при первой установке приложения .
Это можно сделать в свойствах проекта в Visual Studio.
Вам необходимо установить механизм SQL Express, если вы хотите его использовать. Развертывание только клиентского подключения даст вам именно то, что подразумевает название «клиентское подключение»: вы сможете подключиться к SQL Server. Но только работающий экземпляр SQL Server сможет читать / записывать базу данных вашего приложения.
MSI для установки SQL Express на самом деле очень настраиваемый и допускает множество сценариев, включая автоматическую установку и удаленное развертывание . Основные параметры см. В разделе Настройка SQL Express во время установки . Установщик вашего приложения должен будет вызвать экспресс-установщик, передав требуемые параметры.