Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account


Photo

Pin To Start Menu - Solved

- - - - -

  • Please log in to reply
20 replies to this topic

#1
Maelstorm

Maelstorm

    AT Field Pattern Blue

  • Member
  • PipPip
  • 265 posts
After some research, I have figured out how to pin items to the start menu. Here's what you do.

1. Set the pinned items the way that you want.
2. Open regedit and navigate to the following key: [HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage]
3. Export the above key to a reg file.
4. Using Notepad or a similar text editor, open the reg file and remove all values EXCEPT FavoritesChanges, FavoritesResolve, and Favorites.
5. Set the DWORD value of FavoritesChanges to 2. (Or, if you want to test now, add 1 to the current value and set it to that.
6. Save the reg file.
7. If you want to test now, then make sure you did the test now part in step 5 and then merge the data into the registry.
8. Add this tweak to your reg tweaks on your AIO CD.

Hope this Helps.

As for what the exact data is, I'm not sure. But, if you go and edit Favorites and FavoritesResolve, you will see in the ASCII portion of the editing window pathnames, filenames, and other binary data. Because path names and filenames are variable, it could be using a character counter or a end of field marker. I'll leave it up to the guys who hack DLL files figure this one out.
MAELSTORM


How to remove advertisement from MSFN

#2
Maelstorm

Maelstorm

    AT Field Pattern Blue

  • Member
  • PipPip
  • 265 posts
Additional Information:

If you have Internet and E-mail under "Show on Start menu" in the "Customize Start Menu" checked, then those settings will carry over in the reg file as well.

Also I have discovered another tweak. In the registry key [HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] there is a DWORD value called Start_MinMFU that directly controls how many items appear in the start menu under recent programs. The default is 6, but you can change it to anything you want...within reason. I generally set it to 0.
MAELSTORM

#3
jtsm

jtsm
  • Member
  • 8 posts
Is there a way to make a Pinned menu default? So any new users that logon will get the modified pinned menu?

#4
oneless

oneless

    Advanced Member

  • Member
  • PipPipPip
  • 374 posts

...
If you have Internet and E-mail under "Show on Start menu" in the "Customize Start Menu" checked....

<{POST_SNAPBACK}>

how can i uncheck the two items unattended ?
     oneLess

#5
Maelstorm

Maelstorm

    AT Field Pattern Blue

  • Member
  • PipPip
  • 265 posts

Is there a way to make a Pinned menu default? So any new users that logon will get the modified pinned menu?


Yes, there is. You can install the modified reg file during T-12 or T-9 during GUIMode setup. Any registery changes during this point in the install become part of the default profile and will apply to all users when their accounts are created. Alternativly, you can change HKEY_CURRENT_USER to HKEY_USERS\.DEFAULT in the reg file to write the values into the default profile during First Login when RunOnceEX executes.
MAELSTORM

#6
Maelstorm

Maelstorm

    AT Field Pattern Blue

  • Member
  • PipPip
  • 265 posts
New Information


I have found that when you export the registry files for HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartMenuPage, that you can set a couple of the values to 0xFF and Windows will accept that.

Attached File  StartMenuPin.reg   12.46KB   1051 downloads

The values that you can do this to are ProgramsCache and FavoritesResolve. Notice that 0xff at the end. That is the end of list marker for the start menu. Doing it this way allows you to set the pinned items on the start menu to anything that you want, and it saves space as well. I'm not sure what FavoritesResolve does, but once set to 0xff, it does not change. I haven't noticed any problems with it though, so it's probably ok to leave it like that. ProgramsCache holds the information for every program that you have executed from either a icon or by Start->Run, and hence it can be very large. It seems though that FavoritesResolve follows ProgramsCache, or it could just be updated when you install a new program that registers itself. At any rate, it's Favorites that hold the actual data for the pinned start menu items.

As to the record format, I'm still not sure. It seems to be an array of variable length structures. Variable length because of file names. The filenames are stored in Unicode format hence the ASCII character and the 0x00 byte. It appears that certian bytes may denote the size of the record or point to the beginning of the next record in sequence. That's about as far as I have gotten with it. Hopefully someone with a better clue will take the ball and run with it.

Edited by Maelstorm, 09 January 2006 - 04:54 AM.

MAELSTORM

#7
tkmadison

tkmadison

    Junior

  • Member
  • Pip
  • 75 posts
I used to have this working....combining the information in this thread with some information I'd found elsewhere.
That was a few years ago. Now I find myself trying to make another unattended CD and I'm trying this tweak and it just won't take.
My start menu comes up blank every time (except for default internet explorer and default outlook express).
As I recall I had to append one of the registry entries in order to get it to work properly.
Nothing is true, everything is permitted.
— Hassan-i-Sabbah

#8
gui_m

gui_m

    Member

  • Member
  • PipPip
  • 211 posts
Hi guys,

I must have somehow disabled the ability to pin to the start-menu with my nLite XP. Do you know if there's a registry tweak to re-enable it??

Thanks in advance!

#9
vit100

vit100
  • Member
  • 1 posts
to turn off pined applications set


[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage]
"Favorites"=hex:ff

#10
Jules1974

Jules1974
  • Member
  • 1 posts
I created a simple how-to for our desktop staff, attached. This is mainly for setting the Pinned start menu for all users.


I hope you all find it usefull, it perhaps explains things about loading hive's for those not familiar.

Cheers
Julian.

Attached Files


Edited by Jules1974, 03 June 2008 - 01:03 PM.


#11
Acheron

Acheron

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 988 posts
  • OS:XP Pro x86
  • Country: Country Flag
The methods described here doesn't work on my system. I have created a VBScript that does the job:

pin_explorer.vbs
Set Shell	= WScript.CreateObject("Shell.Application")
Set FSO	  = WScript.CreateObject("Scripting.FileSystemObject")

ssfPROGRAMS = 2
ssfCOMMONPROGRAMS = 23
ssfSTARTUP = 7

Select Case GetLocale()
	Case 1033   strPinVerb = "P&in to Start Menu"
	Case 1043   strPinVerb = "Aan het menu S&tart vastmaken"
End Select

' Pin Corel Paint Shop Pro shortcut to Start menu
Set objFolder	 = Shell.Namespace(ssfCOMMONPROGRAMS)
Set objFolderItem = objFolder.ParseName("Corel Paint Shop Pro X.lnk")

objFolderItem.InvokeVerb(strPinVerb)

' Pin FileZilla shortcut to Start menu
Set objFolder	 = Shell.Namespace(ssfCOMMONPROGRAMS)
Set objFolderItem = objFolder.ParseName("FileZilla.lnk")

objFolderItem.InvokeVerb(strPinVerb)

' Pin Nero Express shortcut to Start menu
Set objNeroFolderItem	 = Shell.Namespace(ssfCOMMONPROGRAMS).ParseName("Nero")
Set objNeroFolder		 = Shell.Namespace(objNeroFolderItem.Path)
Set objShortcutFolderItem = objNeroFolder.ParseName("Nero Express.lnk")

objShortcutFolderItem.InvokeVerb(strPinVerb)

' Pin Notepad++ shortcut to Start menu
Set objFolder	 = Shell.Namespace(ssfCOMMONPROGRAMS)
Set objFolderItem = objFolder.ParseName("Notepad++.lnk")

objFolderItem.InvokeVerb(strPinVerb)

' Pin OpenOffice.org Writer shortcut to Start menu
Set objOpenOfficeFolderItem = Shell.Namespace(ssfCOMMONPROGRAMS).ParseName("OpenOffice.org 2.4")
Set objOpenOfficeFolder	 = Shell.Namespace(objOpenOfficeFolderItem.Path)
Set objShortcutFolderItem   = objOpenOfficeFolder.ParseName("OpenOffice.org Writer.lnk")

objShortcutFolderItem.InvokeVerb(strPinVerb)

' Pin Windows Media Player shortcut to Start menu
Set objFolder	 = Shell.Namespace(ssfPROGRAMS)
Set objFolderItem = objFolder.ParseName("Windows Media Player.lnk")

objFolderItem.InvokeVerb(strPinVerb)

' Pin Windows Messenger shortcut to Start menu
Set objFolder	 = Shell.Namespace(ssfCOMMONPROGRAMS)
Set objFolderItem = objFolder.ParseName("Windows Messenger.lnk")

objFolderItem.InvokeVerb(strPinVerb)

' Delete script when done
On Error Resume Next
Set objFolder	 = Shell.Namespace(ssfSTARTUP)
Set objFolderItem = objFolder.ParseName("pin_explorer.vbs")

Set File		  = FSO.GetFile(objFolderItem.Path)

File.Delete(true)
On Error Goto 0

Have fun :hello:

Place script in USER STARTUP Folder. When I tried running the script from HKCU\SOFTWARE\Microsoft
CurrentVersion\RunOnce the wscript.exe was called but did nothing. I think Microsoft disabled this option to prevent any virusses to launch automaticly at startup.

I like this method, since changing shortcuts is simple and works on different platforms. Didn't test this script on Vista though.

Anyway I spend alot of time on it to get it to work also for subdirs. VBScript is nice, but I prefer AutoIT.

UPDATE: Script only gets deleted from User startup dir now.

Edited by Acheron, 14 August 2008 - 11:56 AM.

Say no to bloatware. Download Nero Lite!

#12
ykchanaed

ykchanaed

    Junior

  • Member
  • Pip
  • 94 posts
Acheron:

I tried your method, but in Chinese Traditional settings. The vbs:

Set Shell = WScript.CreateObject("Shell.Application")
Set FSO = WScript.CreateObject("Scripting.FileSystemObject")

ssfPROGRAMS = 2
ssfCOMMONPROGRAMS = 23
ssfSTARTUP = 7

Select Case GetLocale()
Case 1033 strPinVerb = "P&in to Start Menu"
Case 1043 strPinVerb = "Aan het menu S&tart vastmaken"
Case 1028 strPinVerb = "固定至 [開始] 功能表(&I)"

End Select

' Pin PQBoot shortcut to Start menu
Set objFolder = Shell.Namespace("C:\Documents and Settings\All Users\「開始」功能表\程式集\Norton PartitionMagic 8.0\Norton PartitionMagic 8.0 Tools")
Set objFolderItem = objFolder.ParseName("PQBoot for Winodws.lnk")

objFolderItem.InvokeVerb(strPinVerb)


It showed the error is in objFolderItem

#13
b-man

b-man

    Member

  • Member
  • PipPip
  • 226 posts

...
If you have Internet and E-mail under "Show on Start menu" in the "Customize Start Menu" checked....

<{POST_SNAPBACK}>

how can i uncheck the two items unattended ?

while leaving pinned menu enabled

#14
Geej

Geej

    Senior Member

  • Member
  • PipPipPipPip
  • 635 posts
  • OS:XP Pro x86
  • Country: Country Flag

...
If you have Internet and E-mail under "Show on Start menu" in the "Customize Start Menu" checked....

<{POST_SNAPBACK}>

how can i uncheck the two items unattended ?

while leaving pinned menu enabled

1) first uncheck these 2 items on your host PC
(Right-Click on "Start" button, select 'Properties", select "Customize...", uncheck "Internet" & "E-mail", then ok)

2) Logout (Essential step as it will then save your setting to registry)

3) Login using same user again, then save these 3 registry keys for your unattended tweaks:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartPage]
"FavoritesResolve"
"Favorites"
"FavoritesChanges"

#15
Acheron

Acheron

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 988 posts
  • OS:XP Pro x86
  • Country: Country Flag
As I'm slowly moving from Windows XP to Windows 7 the script I posted no longer works. Luckily more and more people discover the InvokeVerb method to pin items to the Start Menu so it wasn't difficult to find a solution:

http://blogs.technet...via-script.aspx
Say no to bloatware. Download Nero Lite!

#16
g-force

g-force

    Tester

  • Member
  • PipPipPipPip
  • 599 posts
  • OS:XP Pro x86
  • Country: Country Flag
A small AutoIt-Script to enable/disable the "Quick Lauch" in Taskbar
(change on every execution, "disabled is XP-Standard, so one run turn to ON):
Run("RunDll32.exe shell32.dll,Options_RunDLL 1")
Sleep(1000)
Send("{S}")
Send("{ENTER}")
My way to setup my "Quick Lauch" (delete everything, setup new links, SFX, can be changed easily):
Attached File  701___Quick_Launch.exe   149.75KB   48 downloads

Edited by g-force, 12 September 2009 - 12:34 AM.

g-force @ Win-Lite.de
Make sure to always start with a fresh copy of your CD files/folders,
do all your work in one nLite session and integrate only one SP.
Please report when you have a solution, so others can benefit.


#17
Geej

Geej

    Senior Member

  • Member
  • PipPipPipPip
  • 635 posts
  • OS:XP Pro x86
  • Country: Country Flag

Run("RunDll32.exe shell32.dll,Options_RunDLL 1")
Sleep(1000)
Send("{S}")
Send("{ENTER}")

Could not get it to work in XP.
However if I change Send("{S}") to Send("!{Q}"), it works in XP. Is your script meant for Vista?

#18
g-force

g-force

    Tester

  • Member
  • PipPipPipPip
  • 599 posts
  • OS:XP Pro x86
  • Country: Country Flag

Could not get it to work in XP.
However if I change Send("{S}") to Send("!{Q}"), it works in XP. Is your script meant for Vista?


No, it`s for WinXP - and it works on my XP-SP3.
I tried your changes, but it won`t work on my XP.

g-force @ Win-Lite.de
Make sure to always start with a fresh copy of your CD files/folders,
do all your work in one nLite session and integrate only one SP.
Please report when you have a solution, so others can benefit.


#19
Geej

Geej

    Senior Member

  • Member
  • PipPipPipPip
  • 635 posts
  • OS:XP Pro x86
  • Country: Country Flag
Hi g-force

I tried another 2 XP PC with your script & my script. Both yr couldn't work whereas for my scrpit : 1 m/c works but after applied, the Start menu is unable to go away immediately. Takes about 6 sec to go away by itself. The 2nd m/c works w/o issue.

I don't know what causes this, so I guess "your mileage may varies". Maybe other user can feebdack their finding.
Just for sharing info only. Cheers :)

*It is not my intention to say who comes up with better script



Edit: When I translate Quick to German, it means Schnellsuche. Does it means the key is "S" as in your script?

Edited by Geej, 13 September 2009 - 01:38 AM.


#20
tatang00

tatang00
  • Member
  • 1 posts
  • OS:none specified
  • Country: Country Flag
i`ve solved and rewrite in autoit3.
i store my links in C:\WINDOWS\Linkq
$Shell = ObjCreate("shell.application")	; Get the Windows Shell Object
$strPinVerb = "P&in to Start Menu"

$objFolder    = $Shell.Namespace("C:\WINDOWS\Linkq")
$objFolderItem = $objFolder.ParseName("Yahoo! Messenger.lnk")
$objFolderItem.InvokeVerb($strPinVerb)

$objFolderItem = $objFolder.ParseName("GOM Player.lnk")
$objFolderItem.InvokeVerb($strPinVerb)

$objFolderItem = $objFolder.ParseName("WinAmp.lnk")
$objFolderItem.InvokeVerb($strPinVerb)

$objFolderItem = $objFolder.ParseName("Media Player Classic.lnk")
$objFolderItem.InvokeVerb($strPinVerb)

$objFolderItem = $objFolder.ParseName("mIRC.lnk")
$objFolderItem.InvokeVerb($strPinVerb)

$objFolderItem = $objFolder.ParseName("Mozilla Firefox.lnk")
$objFolderItem.InvokeVerb($strPinVerb)

$objFolderItem = $objFolder.ParseName("Notepad.lnk")
$objFolderItem.InvokeVerb($strPinVerb)


#21
djm0

djm0
  • Member
  • 1 posts
  • OS:Windows 7 x64
  • Country: Country Flag

i`ve solved and rewrite in autoit3.
i store my links in C:\WINDOWS\Linkq

$Shell = ObjCreate("shell.application")	; Get the Windows Shell Object
$strPinVerb = "P&in to Start Menu"

$objFolder    = $Shell.Namespace("C:\WINDOWS\Linkq")
$objFolderItem = $objFolder.ParseName("Yahoo! Messenger.lnk")
$objFolderItem.InvokeVerb($strPinVerb)

$objFolderItem = $objFolder.ParseName("GOM Player.lnk")
$objFolderItem.InvokeVerb($strPinVerb)

$objFolderItem = $objFolder.ParseName("WinAmp.lnk")
$objFolderItem.InvokeVerb($strPinVerb)

$objFolderItem = $objFolder.ParseName("Media Player Classic.lnk")
$objFolderItem.InvokeVerb($strPinVerb)

$objFolderItem = $objFolder.ParseName("mIRC.lnk")
$objFolderItem.InvokeVerb($strPinVerb)

$objFolderItem = $objFolder.ParseName("Mozilla Firefox.lnk")
$objFolderItem.InvokeVerb($strPinVerb)

$objFolderItem = $objFolder.ParseName("Notepad.lnk")
$objFolderItem.InvokeVerb($strPinVerb)


I have a VBS I created with some help from a post I found:

I setup the default user profile to run this vbs once (stored locally on the image) so every profile gets these pinned icons set on first login.

'********************************************************************************************
'* *
'* PIN TO TASKBAR SCRIPT *
'* Dan M - 07/29/2010 *
'* *
'********************************************************************************************
on error resume next
'Required Objects
Set objShell = CreateObject("Shell.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")


'Remove Pins
strlPath = "C:\Program Files (x86)\Windows Media Player\wmplayer.exe"
strFolder = objFSO.GetParentFolderName(strlPath)
strFile = objFSO.GetFileName(strlPath)
Set objFolder = objShell.Namespace(strFolder)
set objFolderItem = objFolder.ParseName(strFile)
Set colVerbs = objFolderItem.Verbs
For each itemverb in objFolderItem.verbs
If Replace(itemverb.name, "&", "") = "Unpin from Taskbar" Then itemverb.DoIt
Next

'Remove Pins
strlPath = "C:\Windows\explorer.exe"
strFolder = objFSO.GetParentFolderName(strlPath)
strFile = objFSO.GetFileName(strlPath)
Set objFolder = objShell.Namespace(strFolder)
set objFolderItem = objFolder.ParseName(strFile)
Set colVerbs = objFolderItem.Verbs
For each itemverb in objFolderItem.verbs
If Replace(itemverb.name, "&", "") = "Unpin from Taskbar" Then itemverb.DoIt
Next


'Pin Office Objects
strlPath = "C:\Program Files (x86)\Microsoft Office\Office12\WINWORD.EXE"
strFolder = objFSO.GetParentFolderName(strlPath)
strFile = objFSO.GetFileName(strlPath)
Set objFolder = objShell.Namespace(strFolder)
set objFolderItem = objFolder.ParseName(strFile)
Set colVerbs = objFolderItem.Verbs
For each itemverb in objFolderItem.verbs
If Replace(itemverb.name, "&", "") = "Pin to Taskbar" Then itemverb.DoIt
Next

strlPath = "C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE"
strFolder = objFSO.GetParentFolderName(strlPath)
strFile = objFSO.GetFileName(strlPath)
Set objFolder = objShell.Namespace(strFolder)
set objFolderItem = objFolder.ParseName(strFile)
Set colVerbs = objFolderItem.Verbs
For each itemverb in objFolderItem.verbs
If Replace(itemverb.name, "&", "") = "Pin to Taskbar" Then itemverb.DoIt
Next

strlPath = "C:\Program Files (x86)\Microsoft Office\Office12\OUTLOOK.EXE"
strFolder = objFSO.GetParentFolderName(strlPath)
strFile = objFSO.GetFileName(strlPath)
Set objFolder = objShell.Namespace(strFolder)
set objFolderItem = objFolder.ParseName(strFile)
Set colVerbs = objFolderItem.Verbs
For each itemverb in objFolderItem.verbs
If Replace(itemverb.name, "&", "") = "Pin to Taskbar" Then itemverb.DoIt
Next




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users



How to remove advertisement from MSFN