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 Startmenu in closed environment

- - - - -

  • Please log in to reply
1 reply to this topic

#1
linkking

linkking
  • Member
  • 2 posts
  • OS:none specified
  • Country: Country Flag
Hi
I got a situation where the rightclick option "Pin to Startmenu"
has been disabled for non native windows apps.
(Corporate environment)
Next best thing?
Make your application stick just underneath the pinned apps and not
"trickle down" the start list, but always be on top.

The position in this list is governed by several counters in the
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}\Count]
&
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count] keys

The rule is ONLY SHORTCUTS initiated from the desktop or the programdata folder
will show up in this list, and they are located under the
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}\Count] key

The actual executable file these shortcuts are pointing to is in the other key
CEBFF5CD-ACE2-4F4F-9178-9926F41749EA

The counters are in the binary data, and by manipulating these values to high
numbers one effectively pushes the shortcuts to the top of the list.

You can use the Userassistview app to decode these entries as they are encoded in Rot13,
and get a view of the counters
Userassistview

Since desktop is a "current user" destination folder, i made a batchscript that
collects the %USERNAME% and converts it to Rot13 and writes it to a regfile that
gets applied with the manipulated binary values.

I then execute a pinvoke to refresh the startmenu.(Clearcache.exe)
Pinvoke
(So you don't need to logout or kill explorer for the changes to take place)

In this example i'm pushing Mozilla Firefox.Ink on the desktop, that's pointing to Mozilla Firefox.exe installed in the root of F: to the top of the startmenu (Rot13.bat)

@echo off&setlocal enabledelayedexpansion

set input=%USERNAME%

set "upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
set "upmap=NOPQRSTUVWXYZABCDEFGHIJKLM"
set "lomap=nopqrstuvwxyzabcdefghijklm"

set "step=%input:!=^!%"

:rotloop
if defined step (
set "isletter=false"
for /l %%x in (0,1,25) do (
if /i "!step:~0,1!"=="!upper:~%%x,1!" (
if "!step:~0,1!"=="!upper:~%%x,1!" (
set "out=!out!!upmap:~%%x,1!"
) else (
set "out=!out!!lomap:~%%x,1!"
)
set "isletter=true"
)
)
if "!isletter!"=="false" (
set "out=!out!!step:~0,1!"
)
set "step=!step:~1!"
goto rotloop
)




ECHO Windows Registry Editor Version 5.00 > ASSIST.reg
ECHO. >> ASSIST.reg
ECHO [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}\Count] >> ASSIST.reg
ECHO "P:\\Hfref\\!out!\\Qrfxgbc\\Zbmvyyn Sversbk.yax"=hex:00,00,00,00,02,05,01,00,\ >> ASSIST.reg
ECHO 00,00,00,00,00,ff,00,00,00,00,80,bf,00,00,80,bf,00,00,80,bf,00,00,80,bf,00,\ >> ASSIST.reg
ECHO 00,80,bf,00,00,80,bf,00,00,80,bf,00,00,80,bf,00,00,80,bf,00,00,80,bf,ff,ff,\ >> ASSIST.reg
ECHO ff,ff,00,2c,d7,7f,70,66,cc,01,00,00,00,00 >> ASSIST.reg
ECHO. >> ASSIST.reg
ECHO [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count] >> ASSIST.reg
ECHO "U:\\Zbmvyyn Sversbk.rkr"=hex:00,00,00,00,02,05,01,00,02,05,ff,00,00,00,00,00,\ >> ASSIST.reg
ECHO 00,00,80,bf,00,00,80,bf,00,00,80,bf,00,00,80,bf,00,00,80,bf,00,00,80,bf,00,\ >> ASSIST.reg
ECHO 00,80,bf,00,00,80,bf,00,00,80,bf,00,00,80,bf,ff,ff,ff,ff,00,2c,d7,7f,70,66,\ >> ASSIST.reg
ECHO cc,01,00,00,00,00 >> ASSIST.reg

REGEDIT /S ASSIST.reg
del ASSIST.reg
Clearcache.exe
cls

Red color = variable with Rot13 encoded username
Green color = 66818 times executed
Blue color = 65280 times executed
Orange color = 16712962 Focus counter

Edited by linkking, 06 September 2011 - 04:46 PM.



How to remove advertisement from MSFN

#2
linkking

linkking
  • Member
  • 2 posts
  • OS:none specified
  • Country: Country Flag
I found a way to pin "non-pinnable" apps.
That is, on systems that allow pinning, but the option is missing from the context menu on particular items, exe files etc.
Here's how.

1.Pin an object that has the verb "Pin to Start Menu" in it's context menu
(Calculator for example)
This can be done thru a simple vbs script:
Pin Items to the Start Menu or Windows 7 Taskbar via Script

Const CSIDL_COMMON_PROGRAMS = &H17 
Const CSIDL_PROGRAMS = &H2
Set fso = CreateObject("Scripting.FileSystemObject")
Set sh = CreateObject("WScript.Shell")
Set oEnv = sh.Environment("Process")
sProfile = oEnv.Item("UserProfile")
If fso.FileExists(sProfile &"\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\Mozilla Firefox.lnk") Then
wscript.quit
End If
Set objShell = CreateObject("Shell.Application") 
Set objAllUsersProgramsFolder = objShell.NameSpace(CSIDL_COMMON_PROGRAMS) 
strAllUsersProgramsPath = objAllUsersProgramsFolder.Self.Path 
Set objFolder = objShell.Namespace(strAllUsersProgramsPath & "\Accessories") 
Set objFolderItem = objFolder.ParseName("Calculator.lnk") 
Set colVerbs = objFolderItem.Verbs 
For Each objVerb in colVerbs 
    If Replace(objVerb.name, "&", "") = "Pin to Start Menu" Then objVerb.DoIt 
Next

2.Then manipulate the pinned Calculator shortcut that gets created here:
C:\Users\USERNAME\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\Calculator.LNK
to point to your desired target:
(In this example i'm pointing to Mozilla Firefox.exe that's located in the root of F:)

Set fso = CreateObject("Scripting.FileSystemObject")
Set sh = CreateObject("WScript.Shell")
Set oEnv = sh.Environment("Process")
sProfile = oEnv.Item("UserProfile")
If fso.FileExists(sProfile &"\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\Mozilla Firefox.lnk") Then
wscript.quit
End If
Set shortcut = sh.CreateShortcut(sProfile &"\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\Calculator.LNK")
shortcut.TargetPath = "H:\Mozilla Firefox.exe"
shortcut.Arguments = ""
shortcut.Description = ""
shortcut.IconLocation = "H:\Mozilla Firefox.exe, 0"
shortcut.WorkingDirectory = "H:"
Wscript.Sleep(1000)
shortcut.Save

Set oFile = fso.GetFile(sProfile &"\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\Calculator.LNK") 
oFile.Name = "Mozilla Firefox.lnk"

Voi'la your un-pinnable application is now pinned! :thumbup

Edited by linkking, 06 September 2011 - 04:58 PM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users



How to remove advertisement from MSFN