Files

51 lines
1.8 KiB
JavaScript
Raw Permalink Normal View History

var shell = WScript.CreateObject('WScript.Shell');
var fso = WScript.CreateObject('Scripting.FileSystemObject')
function getDir(path){
return path.split('\\').slice(0, -1).join('\\');
}
function listLnk(dir){
var dobj = fso.GetFolder(dir);
var fenum = new Enumerator(dobj.Files);
var denum = new Enumerator(dobj.SubFolders);
var outarr = [];
for(; !fenum.atEnd(); fenum.moveNext()) if(fenum.item().Name.slice(-4) == '.lnk') outarr.push(fenum.item().Path);
for(; !denum.atEnd(); denum.moveNext()){
var ar = listLnk(denum.item().Path);
for(var i = 0; i < ar.length; i++) outarr.push(ar[i]);
}
return outarr;
}
function kissShortcut(pth){
var shortcut = shell.CreateShortcut(pth);
shortcut.IconLocation = getDir(WScript.ScriptFullName)+'\\boykisser.ico,0';
shortcut.Save();
}
function kissFolder(fol, dbg){
var lnks = listLnk(fol);
for(var i = 0; i < lnks.length; i++){
if(dbg) WScript.Echo('kissing: ' + lnks[i]);
try{
kissShortcut(lnks[i]);
}catch(e){
var exec = shell.Exec('cmd /c takeown /f "' + lnks[i] + '" && icacls "' + lnks[i] + '" /grant:r "%username%":f');
while(exec.Status != 1) WScript.Sleep(100);
try{
kissShortcut(lnks[i])
}catch(e){
if(dbg) WScript.Echo('failed: ' + lnks[i]);
}
}
}
}
kissFolder(shell.ExpandEnvironmentStrings('%programdata%') + '\\Microsoft\\Windows\\Start Menu\\Programs', true);
kissFolder(shell.ExpandEnvironmentStrings('%appdata%') + '\\Microsoft\\Windows\\Start Menu\\Programs', true);
kissFolder(shell.ExpandEnvironmentStrings('%public%') + '\\Desktop', true);
kissFolder(shell.ExpandEnvironmentStrings('%userprofile%') + '\\Desktop', true);