Advertisement
npocmaka

pin.french

Feb 22nd, 2016
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 3.79 KB | None | 0 0
  1. @if (@X)==(@Y) @end /* JScript comment
  2.     @echo off
  3.    
  4.     rem :: the first argument is the script name as it will be used for proper help message
  5.     cscript //E:JScript //nologo "%~f0" %*
  6.  
  7.     exit /b %errorlevel%
  8.    
  9. @if (@X)==(@Y) @end JScript comment */
  10.  
  11. //gets an information that normally is acquired by right click-details
  12. // can get image dimensions , media file play time and etc.
  13.  
  14. //////
  15. FSOObj = new ActiveXObject("Scripting.FileSystemObject");
  16. var ARGS = WScript.Arguments;
  17. if (ARGS.Length < 1 ) {
  18.  WScript.Echo("No file passed");
  19.  WScript.Echo("Usage(pins/unpins items to/from startmenu/taskbar):");
  20.  WScript.Echo(WScript.ScriptName + " file [taskbar|startmenu|untaskbar|unstartmenu]");
  21.  WScript.Echo("default is taskbar");
  22.  WScript.Quit(1);
  23. }
  24. var filename=ARGS.Item(0);
  25. var objShell=new ActiveXObject("Shell.Application");
  26.  
  27. var verb="taskbar";
  28. if (ARGS.Length > 1) {
  29.     verb=ARGS.Item(1).toLowerCase();
  30.     switch(verb){
  31.         case "taskbar":
  32.             verb="taskbar";
  33.             break;
  34.         case "startmenu":
  35.             verb="startmenu";
  36.             break;
  37.         case "untaskbar":
  38.             verb="untaskbar";
  39.             break;
  40.         case "unstartmenu":
  41.             verb="unstartmenu";
  42.             break;
  43.         default:
  44.             WScript.Echo("invalid verb "+verb);
  45.             WScript.Quit(5);
  46.     }
  47. }
  48. /////
  49.  
  50.  
  51. //fso
  52. ExistsItem = function (path) {
  53.     return FSOObj.FolderExists(path)||FSOObj.FileExists(path);
  54. }
  55.  
  56. getFullPath = function (path) {
  57.     return FSOObj.GetAbsolutePathName(path);
  58. }
  59. //
  60.  
  61. //paths
  62. getParent = function(path){
  63.     var splitted=path.split("\\");
  64.     var result="";
  65.     for (var s=0;s<splitted.length-1;s++){
  66.         if (s==0) {
  67.             result=splitted[s];
  68.         } else {
  69.             result=result+"\\"+splitted[s];
  70.         }
  71.     }
  72.     return result;
  73. }
  74.  
  75. getName = function(path){
  76.     var splitted=path.split("\\");
  77.     return splitted[splitted.length-1];
  78. }
  79. //
  80. //Unpin from Tas&kbar
  81. //Unpin from Start Men&u
  82. //
  83. function main(){
  84.     if (!ExistsItem(filename)) {
  85.         WScript.Echo(filename + " does not exist");
  86.         WScript.Quit(2);
  87.     }
  88.     var fullFilename=getFullPath(filename);
  89.     var namespace=getParent(fullFilename);
  90.     var name=getName(fullFilename);
  91.     var objFolder=objShell.NameSpace(namespace);
  92.     var objItem=objFolder.ParseName(name);
  93.     //https://msdn.microsoft.com/en-us/library/windows/desktop/bb787870(v=vs.85).aspx
  94.     //https://msdn.microsoft.com/en-us/library/windows/desktop/bb774170(v=vs.85).aspx
  95.     //WScript.Echo(fullFilename + " : !!)
  96.     //WScript.Echo(objFolder.GetDetailsOf(objItem,-1));
  97.    
  98.     var verbs=objItem.Verbs();
  99.    
  100.     if (verbs != null) {
  101.        
  102.         for (var i=0;i<verbs.Count;i++){
  103.             //WScript.Echo(verbs.Item(i).Name);
  104.             if ( verb === "taskbar" &&
  105.             replaceAll("&","",verbs.Item(i).Name).indexOf("Épingler à la barre des tâches") > -1 ) {
  106.                 WScript.Echo("pinning "  + name + " to taskbar ");
  107.                 //objItem.InvokeVerb(verbs.Item(i));
  108.                 verbs.Item(i).DoIt();
  109.                 return;
  110.             }
  111.             if ( verb === "startmenu" &&
  112.             replaceAll("&","",verbs.Item(i).Name).indexOf("Épingler à l'écran d'accueil") > -1) {
  113.                 WScript.Echo("pinning "  + name + " to start menu ");
  114.                 //objItem.InvokeVerb(verbs.Item(i));
  115.                 verbs.Item(i).DoIt();
  116.                 return;
  117.             }
  118.             if ( verb === "unstartmenu" &&
  119.             replaceAll("&","",verbs.Item(i).Name).indexOf("Unpin from Start") > -1) {
  120.                 WScript.Echo("unpinning "  + name + " from start menu ");
  121.                 //objItem.InvokeVerb(verbs.Item(i));
  122.                 verbs.Item(i).DoIt();
  123.                 return;
  124.             }
  125.             if ( verb === "untaskbar" &&
  126.             replaceAll("&","",verbs.Item(i).Name).indexOf("Unpin from Taskbar") > -1 ) {
  127.                 WScript.Echo("unpinning "  + name + " from taskbar ");
  128.                 //objItem.InvokeVerb(verbs.Item(i));
  129.                 verbs.Item(i).DoIt();
  130.                 return;
  131.             }
  132.         }
  133.        
  134.         WScript.Echo("the item " + filename + "does not support selected action("+verb+")");
  135.         return;
  136.     }  
  137. }
  138. main();
  139.  
  140. function replaceAll(find, replace, str) {
  141.   return str.replace(new RegExp(find, 'g'), replace);
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement