Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата Nun-Nun:
Может быть, но мне кажется, что лучше ориентироваться на исполняемый файл, запускаемый ярлыком. »
Это оно и есть.

Примерно так:
читать дальше »
Код: Выделить весь код
Option Explicit

Dim objFSO
Dim arrTargetPaths


arrTargetPaths = Array("C:\WINDOWS\winhlp32.exe", "C:\WINDOWS\winhelp.exe", "C:\WINDOWS\Installer\{90110419-6000-11D3-8CFE-0150048383C9}\wordicon.exe")

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

With WScript.CreateObject("Shell.Application")
	ScanSubFolders objFSO.GetFolder(.NameSpace("shell:Start Menu").Self.Path), arrTargetPaths
	ScanSubFolders objFSO.GetFolder(.NameSpace("shell:Common Start Menu").Self.Path), arrTargetPaths
End With

Set objFSO = Nothing

WScript.Quit 0
'=======================================================

'=======================================================
Sub ScanSubFolders(objFolder, arrTargetPaths)
	Dim objSubFolder
	Dim objFile
	
	Dim elem
	
	WScript.Echo "[" & objFolder.Path & "]"
	
	For Each objFile In objFolder.Files
		If UCase(objFSO.GetExtensionName(objFile.Path)) = UCase("lnk") Then
			With WScript.CreateObject("WScript.Shell").CreateShortcut(objFile.Path)
				For Each elem In arrTargetPaths
					If UCase(elem) = UCase(.TargetPath) Then
						WScript.Echo vbTab, "Name:   ", objFSO.GetBaseName(objFile.Name)
						WScript.Echo vbTab, "Path:   ", objFile.Path
						WScript.Echo vbTab, "Target: ", .TargetPath
						WScript.Echo vbTab
						
						'objFile.Delete True
						
						Exit For
					End If
				Next
			End With
		End If
	Next
	
	For Each objSubFolder In objFolder.SubFolders
		ScanSubFolders objSubFolder, arrTargetPaths
	Next
End Sub
'=======================================================
Поиск осуществляется в «Главном меню» текущего пользователя и в общем «Главном меню». Перечень target'ов задаётся массивом «arrTargetPaths»:
Код: Выделить весь код
arrTargetPaths = Array("C:\WINDOWS\winhlp32.exe", "C:\WINDOWS\winhelp.exe", "C:\WINDOWS\Installer\{90110419-6000-11D3-8CFE-0150048383C9}\wordicon.exe")
Удаление найденного ярлыка в скрипте «во избежание» закомментировано:
Код: Выделить весь код
'objFile.Delete True
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:05, 03-03-2011 | #4