Este é o código exceprt que faz o que você quer, a partir de uma ferramenta que você quer analisar: winetricks :
w_override_dlls()
{
w_skip_windows w_override_dlls && return
_W_mode=$1
case $_W_mode in
*=*)
w_die "w_override_dlls: unknown mode $_W_mode.
Usage: 'w_override_dlls mode[,mode] dll ...'." ;;
disabled)
_W_mode="" ;;
esac
shift
echo Using $_W_mode override for following DLLs: $@
cat > "$W_TMP"/override-dll.reg <<_EOF_
REGEDIT4
[HKEY_CURRENT_USER\Software\Wine\DllOverrides]
_EOF_
while test "$1" != ""
do
case "$1" in
comctl32)
rm -rf "$W_WINDIR_UNIX"/winsxs/manifests/x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.2982_none_deadbeef.manifest
;;
esac
if [ "$_W_mode" = default ]
then
# To delete a registry key, give an unquoted dash as value
echo "\"*$1\"=-" >> "$W_TMP"/override-dll.reg
else
# Note: if you want to override even DLLs loaded with an absolute
# path, you need to add an asterisk:
echo "\"*$1\"=\"$_W_mode\"" >> "$W_TMP"/override-dll.reg
#echo "\"$1\"=\"$_W_mode\"" >> "$W_TMP"/override-dll.reg
fi
shift
done
w_try_regedit "$W_TMP_WIN"\override-dll.reg
unset _W_mode
}
Essa função bash cria primeiro um arquivo override-dll.reg
no diretório temp e, em seguida, tenta importá-lo para o prefixo selecionado usando regedit
. Você pode especificar substituições como:
w_override_dlls native,builtin comctl32
Outra função útil define a substituição para uma aplicação específica, como:
w_override_app_dlls winecfg.exe builtin comctl32
O que você pode fazer é escrever o seu próprio script bash usando isto como inspiração, ou estender a própria funcionalidade do winetricks (google para escrever metadados de verbos winetricks) para os seus casos de uso, ou apenas usar funções winetricks como biblioteca.