add temporary registry keys

This commit is contained in:
FunkyFr3sh 2024-07-04 07:52:17 +02:00
parent dfca31fab9
commit 79b8b4d083
5 changed files with 79 additions and 0 deletions

View file

@ -9,6 +9,7 @@
#include "debug.h"
#include "config.h"
#include "hook.h"
#include "indeo.h"
#include "versionhelpers.h"
@ -120,6 +121,7 @@ BOOL WINAPI DllMain(HANDLE hDll, DWORD dwReason, LPVOID lpReserved)
set_aware();
}
indeo_enable();
timeBeginPeriod(1);
hook_init();
break;
@ -133,6 +135,7 @@ BOOL WINAPI DllMain(HANDLE hDll, DWORD dwReason, LPVOID lpReserved)
cfg_save();
indeo_disable();
timeEndPeriod(1);
dinput_hook_exit();
hook_exit();

61
src/indeo.c Normal file
View file

@ -0,0 +1,61 @@
#include <windows.h>
void indeo_enable()
{
HKEY hkey;
LONG status =
RegCreateKeyExA(
HKEY_CURRENT_USER,
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Drivers32",
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE | KEY_QUERY_VALUE,
NULL,
&hkey,
NULL);
if (status == ERROR_SUCCESS)
{
LPCTSTR iv31 = "ir32_32.dll";
RegSetValueExA(hkey, "vidc.iv31", 0, REG_SZ, iv31, strlen(iv31) + 1);
LPCTSTR iv32 = "ir32_32.dll";
RegSetValueExA(hkey, "vidc.iv32", 0, REG_SZ, iv32, strlen(iv32) + 1);
LPCTSTR iv41 = "ir41_32.ax";
RegSetValueExA(hkey, "vidc.iv41", 0, REG_SZ, iv41, strlen(iv41) + 1);
LPCTSTR iv50 = "ir50_32.dll";
RegSetValueExA(hkey, "vidc.iv50", 0, REG_SZ, iv50, strlen(iv50) + 1);
RegCloseKey(hkey);
}
}
void indeo_disable()
{
HKEY hkey;
LONG status =
RegCreateKeyExA(
HKEY_CURRENT_USER,
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Drivers32",
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE | KEY_QUERY_VALUE,
NULL,
&hkey,
NULL);
if (status == ERROR_SUCCESS)
{
RegDeleteValueA(hkey, "vidc.iv31");
RegDeleteValueA(hkey, "vidc.iv32");
RegDeleteValueA(hkey, "vidc.iv41");
RegDeleteValueA(hkey, "vidc.iv50");
RegCloseKey(hkey);
}
}