#uselib "kernel32.dll"
#func GetModuleFileNameA "GetModuleFileNameA" int, int, int #uselib "ADVAPI32.DLL" #func RegCloseKey "RegCloseKey" sptr #func RegCreateKeyExA "RegCreateKeyExA" sptr, sptr, sptr, sptr, sptr, sptr, sptr, sptr, sptr #func RegSetValueExA "RegSetValueExA" sptr, sptr, sptr, sptr, sptr, sptr goto *eee #deffunc strregwrite str prm_16, str prm_17, str prm_18, str prm_19 var_0 = prm_16 if ( 0 ) { var_1++ } if ( var_0 == "HKEY_CLASSES_ROOT" | var_1 ) { var_1 = 0 var_2 = -2147483648 goto *label_01 var_1++ } if ( var_0 == "HKEY_CURRENT_USER" | var_1 ) { var_1 = 0 var_2 = -2147483647 goto *label_01 var_1++ } if ( var_0 == "HKEY_LOCAL_MACHINE" | var_1 ) { var_1 = 0 var_2 = -2147483646 goto *label_01 var_1++ } if ( var_0 == "HKEY_USERS" | var_1 ) { var_1 = 0 var_2 = -2147483645 goto *label_01 var_1++ } if ( var_0 == "HKEY_PERFORMANCE_DATA" | var_1 ) { var_1 = 0 var_2 = -2147483644 goto *label_01 var_1++ } if ( var_0 == "HKEY_CURRENT_CONFIG" | var_1 ) { var_1 = 0 var_2 = -2147483643 goto *label_01 var_1++ } if ( var_0 == "HKEY_DYN_DATA" | var_1 ) { var_1 = 0 var_2 = -2147483642 goto *label_01 } if ( 1 ) { dialog "regerror2" RegCloseKey var_3 return } *label_01 sdim var_4, 1 var_4 = prm_19 var_5 = prm_17 var_6 = strlen(var_4) var_6++ var_7 = prm_18 RegCreateKeyExA var_2, varptr(var_5), 0, 0, 0, 2, 0, varptr(var_3), 0 RegSetValueExA var_3, varptr(var_7), 0, 1, varptr(var_4), var_6 if ( stat ) { dialog "regerror" + prm_16 + "\\" + prm_17 + "\\" + prm_18, 1 } else { } RegCloseKey var_3 return *eee title "レジストリ登録" sdim var_8, 256 GetModuleFileNameA , varptr(var_8), 256 strregwrite "HKEY_LOCAL_MACHINE", "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "レジストリ登録", var_8
Windows XP であるならばこのソースでレジストリに登録できるのですが
Windows 7 , 8 となってくるとなぜかエラーが起きてしまいます。