Форум

Data.BG Форуми: Модификация на малък скрипт VBS - Data.BG Форуми

Прехвърляне към съдържание

Страница 1 от 1
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

Модификация на малък скрипт VBS

#1
Потребителят е неактивен   flex 

  • Група: Потребители
  • Мнения: 960
  • Регистриран: 10-October 03
  • Репутация: 17
  • Пол:Мъж
  • Град:nickname = PROXIMO
  • Интереси:GSM: O8871O11xx
Здравейте,
търсих доста в нета скрипт за добавяне и премахване на икони от таскбара. Намерих няколко варианта, но един ми хареса, защото е с малък код. Той е само за добавяне в Таскбара. Установих че с промяна на 1 ред може да добавя и в Старт Менюто или да премахна икона от там. Как може кода да се редактира и това къде да отиде или от къде да се махне да бъде като параметър.

'#----------------------------------------------------
----------------------------- 
'#The sample scripts are not supported under any Microsoft standard support 
'#program or service. The sample scripts are provided AS IS without warranty  
'#of any kind. Microsoft further disclaims all implied warranties including,  
'#without limitation, any implied warranties of merchantability or of fitness for 
'#a particular purpose. The entire risk arising out of the use or performance of  
'#the sample scripts and documentation remains with you. In no event shall 
'#Microsoft, its authors, or anyone else involved in the creation, production, or 
'#delivery of the scripts be liable for any damages whatsoever (including, 
'#without limitation, damages for loss of business profits, business interruption, 
'#loss of business information, or other pecuniary loss) arising out of the use 
'#of or inability to use the sample scripts or documentation, even if Microsoft 
'#has been advised of the possibility of such damages 
'#-------------------------------------------------------
-------------------------- 

Option Explicit
Dim objShell

Set objShell = CreateObject("Shell.Application")  

Dim ArgCount
Dim File,FileName
ArgCount = WScript.Arguments.Count
 
Select Case ArgCount 
	Case 1  
    	File = WScript.Arguments.Item(0)
		FileName = File
		Do While InStr(FileName,"\") > 0
			FileName = Right(FileName,Len(FileName)-InStr(FileName,"\"
))
		Loop 
    
    	'Pin file to taskbar
		Dim objFolder,objFolderItem,colVerbs,objVerb
		
		Set objFolder = objShell.Namespace(Left(File,Len(File)-Len(FileName)))
		Set objFolderItem = objFolder.ParseName(FileName) 
		Set colVerbs = objFolderItem.Verbs
		
		'Verify the file can be pinned to taskbar
		Dim Flag
		Flag=0
			
		For Each objVerb in colVerbs	
			If Replace(objVerb.name, "&", "") = "Pin to Taskbar" Then 
				objVerb.DoIt
				Flag = 1
			End If
		Next

End Select 



реда
If Replace(objVerb.name, "&", "") = "Pin to Taskbar" Then
може да се промени на
If Replace(objVerb.name, "&", "") = "Unpin from Taskbar" Then
Както и Taskbar може да се замести с Start Menu

Синтаксиса е cscript ime.vbs Path\Filename.ext
Иска ми се да не са 4 файла, а да задавам какво и къде да правя като параметри.
Благодаря!
0

#2
Потребителят е неактивен   flex 

  • Група: Потребители
  • Мнения: 960
  • Регистриран: 10-October 03
  • Репутация: 17
  • Пол:Мъж
  • Град:nickname = PROXIMO
  • Интереси:GSM: O8871O11xx
Намерих още 1 скрипт с параметри за Pin, Unpin, Start Menu, Taskbar & Both но нещо не мога да го подкарам.
Пробвах с
cscript test.vbs "Pin", "Taskbar", "C:\Windows\system32\Calc.exe"
с и без запетаи и кавички, но ми връща
test.vbs(54, 21) Microsoft VBScript runtime error: Path not found


Ето и самия скрипт
' Specify the file paths of the file to pin or unpin
' The second element on each line of the array can be either "Both", "Start Menu",  or
' "Taskbar" to specify the target of each operation.
' If strMode = "unpin", you can use "unpin_all" in the third element of the array to unpin
' all items from the Taskbar or Start Menu.
' SYNTAX IS <mode>, <location>, <filename> WITH THREE ELEMENTS PER ACTION
arrActions = Array( _
    "unpin", "Both", "unpin_all", _
    "pin", "Start Menu", "C:\Windows\Notepad.exe", _
    "pin", "Taskbar", "C:\Windows\Calc.exe" _
)

For intAction = 0 To (UBound(arrActions) - 2) Step 3

    arrFileNames = Array(arrActions(intAction + 2))
    
    'strMode can be "Pin" or "Unpin"
    strMode = arrActions(intAction)
    
    'strLocation can be "Start Menu" or "Taskbar" or "Both"
    strLocation = arrActions(intAction + 1)
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objShellApp = CreateObject("Shell.Application")
    Set objShell = CreateObject("WScript.Shell")
    If LCase(strLocation) = "both" Then
        arrLocations = Array("Start Menu", "Taskbar")
    Else
        arrLocations = Array(strLocation)
    End If
    
    For Each strLocation In arrLocations
        If LCase(strMode) <> "pin" And LCase(strMode) <> "unpin" Then
            WScript.Echo "Mode is incorrect. Please set to ""pin"" or ""unpin""."
            WScript.Quit
        ElseIf LCase(strLocation) <> "start menu" And LCase(strLocation) <> "taskbar" Then
            WScript.Echo "Location is incorrect. Please set to ""Start Menu"" or ""Taskbar""."
            WScript.Quit
        Else
            strMode = LCase(strMode)
            If strMode = "pin" Then
                strVerb = LCase(strMode & " to " & strLocation)
                strMessage = " has been " & strMode & "ned to the " & strLocation & "."
            ElseIf strMode = "unpin" Then
                strVerb = LCase(strMode & " from " & strLocation)
                strMessage = " has been " & strMode & "ned from the " & strLocation & "."
            End If
            
            For Each strFilePath In arrFileNames
                If LCase(strFilePath) = "unpin_all" And strMode = "unpin" Then
                    strPinLocation = objShell.ExpandEnvironmentStrings("%APPDATA%") & _
                        "\Microsoft\Internet Explorer\Quick Launch\User Pinned\" & _
                        Replace(strLocation, " ", "") & "\"
                    For Each objFile In objFSO.GetFolder(strPinLocation).Files
                        strFullPath = objFile.Path
                        'Set objFile = objFSO.GetFile(objFile.Path)
                        Set objFolder = objShellApp.Namespace(objFile.ParentFolder & "\")
                        Set objFolderItem = objFolder.ParseName(objFile.Name)
                        Set colVerbs = objFolderItem.Verbs
                        For Each objVerb In colVerbs
                            If LCase(Replace(objVerb.name, "&", "")) = strVerb Then
                                objVerb.DoIt
                                WScript.Echo strFullPath & strMessage
                            End If
                        Next
                    Next
                Else
                    If objFSO.FileExists(strFilePath) = True Then
                        Set objFile = objFSO.GetFile(strFilePath)
                        Set objFolder = objShellApp.Namespace(objFile.ParentFolder & "\")
                        Set objFolderItem = objFolder.ParseName(objFile.Name)
                        Set colVerbs = objFolderItem.Verbs
                        blnOptionFound = False
                        For Each objVerb In colVerbs
                            If LCase(Replace(objVerb.name, "&", "")) = strVerb Then
                                objVerb.DoIt
                                blnOptionFound = True
                            End If
                        Next
                        If blnOptionFound = True Then
                            WScript.Echo strFilePath & strMessage
                        Else
                            WScript.Echo "Unable to " & strMode & " " & strFilePath & _
                                " from the " & strLocation & ". The verb does not exist."
                        End If
                    Else
                        WScript.Echo "Could not find " & strFilePath
                    End If
                End If
            Next
        End If
    Next
Next

Мнението беше редактирано от flex: 27.02.19 - 10:53

0

Споделете тази тема чрез:


Страница 1 от 1
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

1 потребители четат тази тема
0 регистрирани потребители, 1 гости и 0 анонимни потребители


Data.BG e форум за дискусии. Data.BG не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Data.BG.

Close  Member Login