• Announcements

    • xper

      MSFN Sponsorship and AdBlockers!   07/10/2016

      Dear members, MSFN is made available via subscriptions, donations and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, become a site sponsor and ads will be disabled automatically and by subscribing you get other sponsor benefits.
Oh_Kay

Add 'Find Target' to Right Click...

38 posts in this topic

@dubbin

Nice,

but not quite, if its a link on the desktop then it simply open's desktop and shows the Target which points nowhere intended

Edited by maxXPsoft
0

Share this post


Link to post
Share on other sites
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\lnkfile\Shell\Find Target\command]@="\"explorer.exe\" /select,\"%1\""

When you click on a shortcut in "Quick Launch", it opens Quick Launch folder, not the shortcut's target folder.

0

Share this post


Link to post
Share on other sites

As nobody has picked up on it yet, from my vbs alternative earlier, here is a working method!

First create this file and save it as %SystemRoot%\system32\GeTarget.vbs

Wscript.Echo CreateObject("WScript.Shell").CreateShortcut(WScript.Arguments (0)).TargetPath

The above should all be on one line.

Now paste this single line into Start » Run and click OK

reg add "HKCU\Software\Classes\lnkfile\Shell\Find Target\command" /ve /d "%comspec% /c @echo off&for /f \"delims=\" %%? in ('cscript //nologo %SystemRoot%\system32\GeTarget.vbs \"%1\"') do start \"\" explorer.exe /select, \"%%~?\"" /f

Now right click any shortcut and choose Find Target

I hope this is better!

0

Share this post


Link to post
Share on other sites
As nobody has picked up on it yet, from my vbs alternative earlier, here is a working method!

I hope this is better!

Don't work here, I see a cmd flash and nothing

0

Share this post


Link to post
Share on other sites

I have it running flawlessly on my machines.

What is the string in your registry value data?

This is mine

C:\WINDOWS\system32\cmd.exe /c @echo off&for /f "delims=" %%? in ('cscript //nologo C:\WINDOWS\system32\GeTarget.vbs "%1"') do start "" explorer.exe /select, "%%~?"

Edited by Yzöwl
0

Share this post


Link to post
Share on other sites

C:\WINDOWS\system32\cmd.exe /c @echo off&for /f "delims=" %? in ('cscript //nologo C:\WINDOWS\system32\GeTarget.vbs ""') do start "" explorer.exe /select, "%~?"

I see it now from yours and wonder how that happen, I'm missing the double %% in two places. I copied your stuff and pasted in a cmd file instead of run. The double %% is in the cmd file. Strange

Wanted it in a cmd file for my Unattends

Works when I set it like yours manually. Maybe I better export that reg instead of cmd

Edited by maxXPsoft
0

Share this post


Link to post
Share on other sites

The solution to this problem is probably to go to START > RUN and type:

regsvr32 /i shell32.dll

0

Share this post


Link to post
Share on other sites

Here's a script I made for this.

'Filename:		FindTarget.vbs
'Description: Simulates 'Find Target' button in shortcut properties dialog.
'Created by: Danp129
'@yahoo.com
'Usage: Double click FindTarget.vbs and click 'Yes' to register file.
' Right click a shortcut and click 'Find Target'

' If previous 'Find Target' context menu exists it can backup old
' setting to backup.txt in same path this file is executed from.

option explicit
Dim objShell, sAppPath, ret, sNewRegVal
Const ForAppending = 8

Set objShell = CreateObject("WScript.Shell")

sNewRegVal = "cscript /nologo """ & Wscript.ScriptFullName & """ ""%1"""
sAppPath = Mid(Wscript.ScriptFullName, 1, InStrRev(Wscript.ScriptFullName, "\") - 1)

if WScript.Arguments.count > 0 then
'Script was called from context menu

call FindTarget
else
'Script was not sent arguments, was likely double clicked on
if sNewRegVal<>GetCurRegVal or isnull(GetCurRegVal) then
'Ask user if they wish to add Find Target context menu
ret=msgbox("Register this file as your 'Find Target' handler?", vbYesNo, "Add 'Find Target' context menu?")
if ret=vbYes then
'Call sub to create context menu using this file to handle requests
call CreateContextMenu
end if
else
msgbox "This file is already registered to handle 'Find Target' context menu." & vbcrlf & _
vbcrlf & "To use, simply right-click a shortcut and click 'Find Target'.", vbOKOnly, "Incorrect use"
end if
end if

Set objShell = nothing


Sub FindTarget()
Dim sMainFile, sCmd, sArgs, sPath, arArgOverride, sArgOverride, i, fso, arTmp, sTmp

'Specify lower-case exe files to check if an argument exists
' and should attempt to browse to the argument if it's a
' valid path instead of executable
'Use pipe "|" to seperate files
' e.g. ("notepad.exe|anotherapp.exe")
arArgOverride=split("notepad.exe")

'Shell command for explorer.exe
sCmd = "explorer.exe /select,"

'Main file the link refers to e.g. notepad.exe in 'c:\windows\notepad.exe c:\file.txt'
sMainFile=lcase(CreateObject("WScript.Shell").CreateShortcut(WScript.Arguments(0)).TargetPath)

'Additional arguments in link e.g. c:\file.txt in 'notepad.exe c:\arg.txt'
sArgs=CreateObject("WScript.Shell").CreateShortcut(WScript.Arguments(0)).Arguments

'Check to see if we should browse to arg if specified, if so set blnUseArg to true
if sArgs <> "" then

'get filename only
arTmp=split(smainfile, "\")
sTmp=arTmp(ubound(arTmp))

'Search override filenames for a match
for i = 0 to ubound(arArgOverride)
if sTmp=arArgOverride(i) then
'Create FSO object
Set fso = CreateObject("Scripting.FileSystemObject")

'Remove quotes and leading spaces from args or fso.FileExists will fail
sArgs=trim(replace(sArgs, """", ""))

'See if args is a valid path
if fso.FileExists(sArgs) or fso.FolderExists(sArgs) then
'Use args for path
sPath=sArgs
end if
exit for
end if
next 'iArgO

'Use main file if args was not a valid path
if sPath="" then sPath=sMainFile
else
'No arguments in the shortcut.. Use main file for path
sPath=sMainFile
end if

'Have Explorer open folder containing path
objShell.Run sCmd & sPath

set fso=nothing
end sub

sub CreateContextMenu()

Dim sRegKey, fso, sBackupFile, oTextFile
sBackupFile=sAppPath & "\" & "backup.txt"

sRegKey = GetCurRegVal
if not isnull(sRegKey) then
'Add some prompts to backup current value
if sRegKey<>sNewRegVal and sRegKey<>"" then
ret=msgbox("'Find Target' context menu already exists, would you like to backup the current setting before making changes?", vbYesNoCancel, "Backup current settings?")
if ret=vbCancel then exit sub
if ret=vbYes then
'Save current value to text file, append if backup already exists.
Set fso = CreateObject("Scripting.FileSystemObject")
set oTextFile = fso.OpenTextFile(sBackupFile, ForAppending, true)

oTextFile.Writeline sRegKey
oTextFile.Close
set fso=nothing
set oTextFile=nothing
end if
end if
end if

'Write to registry
objShell.RegWrite "HKCU\Software\Classes\lnkfile\Shell\Find Target\command\", sNewRegVal, "REG_SZ"
end sub

function GetCurRegVal
on error resume next
GetCurRegVal=objShell.RegRead("HKCU\Software\Classes\lnkfile\Shell\Find Target\command\")
if err.number <> 0 then
GetCurRegVal=null
end if
on error goto 0
end function

0

Share this post


Link to post
Share on other sites

Looks like a good idea, I'm not in a position to try it at present however.

Nice first post by the way.

0

Share this post


Link to post
Share on other sites

I've found the 100% cure with a simple reg tweak constructed exactly like it needs to be with no dll.

I'll not disclose it now since its part of my new tweaking program soon to release.

If Oh_Kay still interested then msg me so you can beta the tweak

Edited by maxXPsoft
0

Share this post


Link to post
Share on other sites

Windows Registry Editor Version 5.00

;Note for the Find Target to work you need a default Open unknown files.

;This adds Open w/Notepad if you don't already have something set. Comment out if you do.

[HKEY_CLASSES_ROOT\*\shell\open]

@="Open w/Notepad"

[HKEY_CLASSES_ROOT\*\shell\open\command]

@="notepad.exe \"%1\""

[HKEY_CLASSES_ROOT\*\shell\Find Target...\command]

@="explorer.exe /select, \"%1\""

Vista has 'Open file location' on its right click.

Edited by maxXPsoft
0

Share this post


Link to post
Share on other sites

Sorry I missed your post and offer to beta your code MaxXPsoft, for some reason I didn't get a notification of a reply to this thread...

Well here we are again... another reinstall, looking to add the same feature back that started this thread in the first place, and goole brought me right here!

Your updated version is much better now that no dll is required !

It shall have pride of place on my next unattended...

Thanks to everyone that responded to my original question, and especially to you maxXPsoft, nice to see your still around too ;)

0

Share this post


Link to post
Share on other sites

Oh_Kay :hello:

took me 4 years about :wacko: cause I wanted that also, glad they added to Vista

yes still ticking, messing with Win Seven beta now

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.