Shortcuts
- Introductie
- Waar vind je snelkoppelingen (shortcuts)?
- Het beheren van snelkoppelingen en sneltoetsen
- Willekeurige programma's starten met willekeurige sneltoetsen (en ook nog opties opgeven)
- Een verzameling tools m.b.v. shortcuts beheren
- Visual Basic scripts
- Terminologie
Introductie
Spraakverwarring
Er zijn shortcuts (snelkoppelingen) en shortcut keys (sneltoetsen). In de snelkoppeling worden de (snel)toetsen gedefinieerd waarmee het programma gestart kan worden waarnaar de shortcut verwijst (mits aan de juiste voorwaarden voldaan is).
Welke shortcut keys worden gebruikt?
Verkenner (Explorer)
kijkt maar naar 2 plaatsen om shortcuts te ontdekken:
Bureaublad (Desktop)
en
Start Menu
.
Het is me niet duidelijk onder welke omstandigheden Windows wijzigingen onmiddellijk oppakt, of alleen bij het (her)starten van het systeem. In Windows XP werden 2 wijzigingen net meteen actief.
Waar vind je snelkoppelingen (shortcuts)?
Paden in verschillende Windows versies
Bureaublad (Desktop)
is te vinden in
- Windows 7:
Users\user
waarbij user de naam van de ingelogde gebruiker is. - Windows XP:
Documents and Settings\user
waarbij user de naam van de ingelogde gebruiker is. - Windows 2K:
%windir%\Documents and Settings\user
waarbij user de naam van de ingelogde gebruiker is. - Windows 98:
- Windows NT:
%windir%\Profiles\user
, waarbij user de naam van de ingelogde gebruiker is.
Start Menu
is te vinden in
- Windows 7:
Users\user
waarbij user de naam van de ingelogde gebruiker is, enUsers\All Users
Je kan om duistere redenen trouwens niet eens de inhoud van je eigen map bekijken, maar daar valt vast wel wat aan te doen. - Windows XP:
Documents and Settings\user
waarbij user de naam van de ingelogde gebruiker is, enDocuments and Settings\All Users
. - Windows 2K:
- Windows 98:
- Windows NT:
%windir%\Profiles\user
, waarbij user de naam van de ingelogde gebruiker is, en%windir%\Profiles\All Users
.
Locaties
Snelkoppelingen staan op een aantal belangrijke locaties (maar de bijbehorende sneltoetsen worden dus niet allemaal door Windows gezien!!):
- Op de desktop (vanwege de bijbehorende sneltoetsen);
- In de map
Start Menu
(vanwege de bijbehorende sneltoetsen); - In de map
Opstarten (Startup)
(programma's die automatisch gestart worden bij het starten van de PC); - In de map
Kopieren naar (SendTo)
(programma's die je ziet als je rechtsklikt op een bestand, en dan opKopieren naar (Send to)
).
Het beheren van snelkoppelingen en sneltoetsen
Speedkey
Een alternatieve manier om programma's heel snel te starten zonder gebruik
te maken van sneltoetsen (maar wel van snelkoppelingen) is het programma
Speedkey
.
Ik gebruik versie 1.04, en ik heb geen idee of het nog ergens te downloaden is.
Alle snelkoppelingen naar
programma's die ik via SpeedKey
wil starten
kopieer ik naar een speciale map:
\Program Files\SpeedKey\programs
Door Ctrl+Alt+Spatie
in te toetsen verschijnt er rechts
onder op het scherm een menuutje met alle programma's in speciale map, op
alfabetische volgorde.
Door de 1e 1 of 2 letters van het gewenste programma in te tikken komt dat
bovenaan te staan, en kan je het met Enter
starten.
Hotkey Detective
Dit programma heb ik ooit van PC Magazine gedownload, en was toen gratis. Ik heb versie 2.0 uit 2002. Maar die werkt nog prima.
Hotkey Detective
laat je alle sneltoetsen zien
die door Verkenner (Explorer)
herkend worden.
Je kan zelfs een lijst afdrukken en bij elke sneltoets vinden in welke map
de bijbehorende snelkoppeling zich bevindt.
Voor mij ideale PC wat betreft snelkoppelingen en sneltoetsen
- Op de desktop moeten snelkoppelingen komen naar alle disks.
De bijbehorende sneltoetsen zijn
Ctrl+Alt+cijfer
(0 is floppy drive, 1 is C:, etc.).
Dit is te bereiken via een simpel Visual Basic script. - Op de desktop moeten shortcuts komen naar belangrijke applets uit het
Control Panel.
De bijbehorende shortcut keys zijn
Alt+Shift+letter
.
Dit is te bereiken via een simpel Visual Basic script. - Alle vensters moeten standaard gemaximaliseerd zijn.
- Ik wil zo mogelijk snelkoppelingen van de ene PC naar een andere over
kunnen hevelen, waarbij ik geen paden wil hoeven aanpassen.
Het target path van de snelkoppeling moet gebruik maken van omgevingsvariabelen (environment variables). Deze variabelen hebben dan op elk systeem dezelfde naam, maar verwijzen naar de voor dat systeem specifieke folders. Het doel zou dan bv. kunnen worden:%Tools%\System Internals\Regmon\Regmon.exe
, waarbij%Tools%
thuis naar een heel andere map verwijst dan op het werk.
Willekeurige programma's starten met willekeurige sneltoetsen (en ook nog opties opgeven)
Veel mensen maken regelmatig gebruik van snelkoppelingen, bv. om programma's vanaf het bureaublad te starten, maar ze beseffen niet dat die snelkoppelingen veel meer mogelijkheden bieden.
De 3 belangrijkste daarvan zijn dat je in elke snelkoppeling ook een toetscombinatie kan definiëren, dat je aan het programma opties kan meegeven, en dat je kan bepalen in welke begintoestand je venster moet zijn (bv. gemaximaliseerd).
Hoe maak je een snelkoppeling?
Bij het installeren van programma's wordt vaak al op 1 of 2 plaatsen een
snelkoppeling gemaakt, nl. op het
Bureaublad (Desktop)
of in het
Start Menu
In dat geval kan je evt. die gebruiken.
Vooral die op het Bureaublad
is natuurlijk
makkelijk te vinden.
Het zelf maken van een snelkoppeling kan op 2 manieren:
- Klik met rechts op het bureaublad.
Klik dan op(New) - (Shortcut)
Tik dan de naam van het programma in of het pad er naartoe, of klik opBladeren (Browse)
en ga er naartoe; - Zoek zelf het programma op waarvoor je een snelkoppeling wilt hebben,
klik er met rechts op, en klik dan op
(Create shortcut)
De snelkoppeling belandt dan in dezelfde map als het programma, en je moet hem nog verhuizen naar het bureaublad.
Het veranderen van de eigenschappen van een snelkoppeling
Klik met rechts op de snelkoppeling en klik dan op
Eigenschappen (Properties)
, of:
Klik op de snelkoppeling, en druk dan op
Alt+Enter
De (in dit kader) spannendste dingen zijn te beleven op het tabblad
(Shortcut)
Sneltoets definiëren
Als je klikt in het veld achter
(Shortcut key)
,
en dan een willekeurige toetscombinatie intikt,
dan wordt dat je sneltoets voor dit programma.
Als het goed is wordt de sneltoets onmiddellijk actief, en hoef je niet eerst de PC opnieuw te starten.
Hoe moet je beginvenster er uitzien?
Achter (Run)
staat een uitklaplijst met 3 mogelijkheden: een
(Normal window)
(dit is de standaard),
Geminimaliseerd (Minimized)
of
Gemaximaliseerd (Maximized)
Padnaam en opties
Aan heel veel programma's kan je opties en parameters meegeven, waardoor je
jezelf een hoop werk kan besparen.
Stel dat je bv. heel vaak Kladblok (Notepad)
of
Wordpad
opent met hetzelfde bestand, dan
zou je een snelkoppeling speciaal voor dat doel kunnen maken.
File managers zou je bv. standaard in een bepaalde map kunnen laten starten.
In het veld achter Doel (Target)
staat als het goed is het volledige pad naar je programma (bv.
C:\Windows\System32\notepad.exe
), en
daarachter kan je nog van alles toevoegen.
Kladblok
heeft bv. een
A
-optie (doet er even niet toe waar die voor dient),
en je zou dus bovenstaande regel kunnen veranderen in
C:\Windows\System32\notepad.exe /A e:\test.vbs
Het enige waar je mee moet oppassen is als er spaties in de padnaam of
parameters zitten.
In dat geval moet je het betreffende deel met dubbele quotes omsluiten.
Bv.: C:\Windows\System32\notepad.exe
"c:\program files (x86)\7-zip\readme.txt"
Een verzameling tools m.b.v. snelkoppelingen beheren
Introductie
Ik heb een grote verzameling tools en utilities, en ben vooral fan van tools die je niet hoeft te installeren (portable tools). Die verzameling tools heb ik in een uitgebreide mappenstructuur georganiseerd, bv. voor multimedia, security, netwerken, diagnose, etc.
Doel 1
In principe zou ik graag vanaf de commandoregel elke tool willen kunnen aanroepen door de naam in te tikken, zonder naar de map te hoeven navigeren waar de tool in zit. Dat kan heel eenvoudig door alle mappen in het zoekpad op te nemen, maar door de grote hoeveelheid mappen is het in mijn geval onmogelijk.
Ik heb daar het volgende op bedacht.
Ik heb 2 aparte mappen, GUI
en
CMDLINE
, waar ik snelkoppelingen in zet naar
alle tools, verdeeld in tools met een grafische interface (GUI) en tools
die je alleen vanaf de commandoregel kunt aanroepen (CMDLINE).
Op die manier hoef ik alleen die beide mappen in het zoekpad op te nemen.
Doel 2
Het bovenstaande werkt op 1 PC, maar ik wil de tools op meer dan 1 PC gebruiken. Sterker nog, ik wil de tools ook op een CD/DVD of USB stick kunnen zetten, en dan op een willekeurige PC gebruiken.
Aangezien je niet van tevoren weet welke schijfletter een USB stick of DVD
krijgt, en het ook handig kan zijn de tools niet op elke PC op dezelfde schijf
op zelfs in dezelfde map te zetten, betekent het dat de snelkoppelingen in de
mappen GUI
en CMDLINE
niet meer (per definitie) kloppen.
Dat vereist dus wat meer gepruts.
De oplossing voor het realiseren van doel 2
Gebruik de collectie tools op 1 PC als basis voor alle andere PC's, DVD's, etc.
In elke snelkoppeling staat het pad van de tool, bv.
e:\Tools DVD\Tools\System Internals\procexp.exe
Met een Visual Basic script
kan je vrij eenvoudig alle paden vervangen,
zodanig dat het variable stuk (e:\Tools DVD
)
vervangen wordt door de omgevingsvariabele %Tools%
(of welke naam je maar wilt).
Je hoeft dan alleen nog maar op de nieuwe PC die variabele de op dat moment
geldende waarde te geven, en alle snelkoppelingen kloppen weer.
Stel dat je de tools op een DVD met schijfletter D hebt gezet, dan kan je
%Tools%
de waarde
D:\Tools DVD
geven.
Verder moet je op de nieuwe PC natuurlijk de 2 mappen met snelkoppelingen in het zoekpad opnemen, en ook daar de omgevingsvariabele gebruiken. Ik doe dat allemaal met een kleine batch file.
Zet een omgevingsvariabele in de snelkoppelingen
Zie de opmerkingen even verderop.
set wshshell = CreateObject("WScript.Shell")
set fs = CreateObject("Scripting.FileSystemObject")
set folderobj = fs.GetFolder("e:\tools\gui")
' The lnk files in folder folderobj will not depend anymore on a fixed path to
' tools, but on the Tools environment variable.
' Both TargetPath and WorkingDirectory will be checked and modified if necessary.
toolsdir = wshshell.ExpandEnvironmentStrings("%Tools%")
toolslen = len(toolsdir)
for each file in folderobj.files
ext = lcase(fs.GetExtensionName(file.name))
if ext="lnk" then ' Only shortcut files
set scut = wshshell.CreateShortcut(file.path)
toolspos = instr(1, scut.Targetpath, "Tools\")
if toolspos > 0 then
newdesc = "%Tools%" & mid(scut.TargetPath, toolspos+5)
scut.TargetPath = newdesc
end if
toolspos = instr(1, scut.WorkingDirectory, "Tools\")
if toolspos > 0 then
newdesc = "%Tools%" & mid(scut.WorkingDirectory, toolspos+5)
scut.WorkingDirectory = newdesc
end if
scut.Save
end if
next
Batch file om de omgeving van de PC geschikt te maken
Onderstaande batch file kan je het beste zetten in de map die de mappen
GUI
, CMDLINE
en
TOOLS
bevat.
Als je de hele verzameling op een DVD gewoon in de root van de DVD zet,
hoef je alleen maar naar de commandoregel te gaan,
dan naar de schijfletter van de DVD (bv. D:\
,
gevolgd door Enter
), en tenslotte
de naam van de file (zonder extensie) gevolgd door
Enter
in te tikken.
Aangezien ik de batch file Settools.bat
heb genoemd,
zou ik op de commandoregel intikken
settools d:
(er van uitgaande dat de tools in de root
van de DVD met schijfletter D staan).
In de batch file hieronder kan je naast de regels met o.a.
GUI
natuurlijk nog veel meer regels opnemen op
mappen met tools.
Ik heb bv. ook van een aantal Windows versies de Resource Kits in dezelfde
hoofdmap staan.
Je kan daarvoor gewoon een aantal soortgelijke set path
regels toevoegen.
Je kan de code van de batch file knippen en plakken in een bestand met de
extensie .BAT
.
echo off
if $%1==$ goto morearg
set pathext=%pathext%;.exe.lnk;.exe.pif;.pif
set kommacddrv=;%1\
rem echo %kommacddrv%
set path=%path%%kommacddrv%gui
set path=%path%%kommacddrv%cmdline
set path=%path%%kommacddrv%tools
set tools=%1
goto end
:morearg
echo usage %0 folder that contains GUI, CMDLINE and TOOLS (no slash at end)
:end
Scripts
Deze scripts controleren niet op problemen, dus ze zouden niet kunnen werken zonder enige zinnige foutmelding. Iemand met enige Basic kennis kan deze scripts waarschijnlijk vrij gemakkelijk aanpassen, bv. als je andere sneltoetsen wilt.
Je kan de code van het script knippen en plakken in een bestand met de extensie
.VBS
(Visual Basic Script), en dan uitvoeren door
erop te dubbelklikken.
Snelkoppelingen naar disks op desktop
' This script creates shortcuts on the desktop to the floppy drive and the
' first 9 normal drives in the system (CD-players and remote disks included).
' The floppy drive (if existent) becomes Ctrl+Alt+0, drive C Ctrl+Alt+1, etc.
' Get access to file system commands:
set fs = CreateObject("Scripting.FileSystemObject")
set wshshell = CreateObject("WScript.Shell")
desktop = wshshell.SpecialFolders("desktop")
' Retrieve list of all available drives:
set drivecollection = fs.Drives
' Enumerate drives
for each drive in drivecollection
disklet = drive.DriveLetter
if disklet < "L" then
if disklet = "A" then
linkname = desktop & "\Floppy drive " & disklet & ".lnk"
else ' <> A
if drive.DriveType = "CD-ROM" then
linkname = desktop & "\CD drive " & disklet & ".lnk"
else ' <> CD-ROM
linkname = desktop & "\Drive " & disklet & ".lnk"
end if ' = CD-ROM
end if ' = A
MsgBox linkname
' Create new shortcut object
set scut = wshshell.CreateShortcut(linkname)
' Fill in information
scut.TargetPath = disklet & ":\"
if disklet = "A" then
scut.Hotkey = "Ctrl+Alt+0"
else ' <> A
scut.Hotkey = "Ctrl+Alt+" & Chr(Asc(disklet)-18)
end if ' = A
' Save shortcut object
scut.Save
end if ' < L
next
Snelkoppelingen naar Configuratiescherm applets
Zie de opmerkingen in de introductie.
N.B. Dit script werkt wel in XP, ben (nog) niet zeker van andere Windows versies.
Const lname=0
Const cplname=1
Const shkey=2
Const nrOfIcons=10 ' Deze waarde aanpassen aan aantal entries in onderstaande lijst
Dim CplItems(10,2)
' De waarde op de lname regel is een zelf te kiezen naam
' De waarde op de cplname regel mag niet veranderd worden
' De waarde op de shkey regel is vrij te kiezen (de toetscombinatie die je wilt gebruiken)
CplItems(0, lname)="Add remove programs"
CplItems(0, cplname)="appwiz.cpl"
CplItems(0, shkey)="Alt+Shift+A"
CplItems(1, lname)="Keyboard control"
CplItems(1, cplname)="Main.cpl,Keyboard" ' Werkt alleen omdat het de 1e in main.cpl is
CplItems(1, shkey)="Alt+Shift+K"
CplItems(2, lname)="Display control"
CplItems(2, cplname)="desk.cpl"
CplItems(2, shkey)="Alt+Shift+D"
CplItems(3, lname)="Printers control"
CplItems(3, cplname)="Printers" ' Zit in main.cpl
CplItems(3, shkey)="Alt+Shift+P"
CplItems(4, lname)="Network control"
CplItems(4, cplname)="ncpa.cpl"
CplItems(4, shkey)="Alt+Shift+N"
CplItems(5, lname)="Regional settings"
CplItems(5, cplname)="intl.cpl"
CplItems(5, shkey)="Alt+Shift+R"
CplItems(6, lname)="Internet options"
CplItems(6, cplname)="inetcpl.cpl"
CplItems(6, shkey)="Alt+Shift+I"
CplItems(7, lname)="Fonts control"
CplItems(7, cplname)="Fonts" ' Zit in main.cpl
CplItems(7, shkey)="Alt+Shift+F"
CplItems(8, lname)="Services control"
CplItems(8, cplname)="Services"
CplItems(8, shkey)="Alt+Shift+S"
CplItems(9, lname)="Multimedia control"
CplItems(9, cplname)="mmsys.cpl,Multimedia" ' Werkt alleen omdat het de 1e in mmsys.cpl is
CplItems(9, shkey)="Alt+Shift+M"
CplItems(10, lname)="Hardware control"
CplItems(10, cplname)="hdwwiz.cpl"
CplItems(10, shkey)="Alt+Shift+H"
' Onderstaand een aantal mogelijkheden voor uitbreiding of verandering
'CplItems(0, lname)="Accessibility options"
'CplItems(0, cplname)="access.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="Bluetooth properties"
'CplItems(0, cplname)="bthprops.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="Firewall control"
'CplItems(0, cplname)="firewall.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="Automatic updates"
'CplItems(0, cplname)="wuaucpl.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="Security center"
'CplItems(0, cplname)="wscui.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="Time and date properties"
'CplItems(0, cplname)="timedate.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="System properties"
'CplItems(0, cplname)="sysdm.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="Power options"
'CplItems(0, cplname)="powercfg.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="User accounts"
'CplItems(0, cplname)="nusermgr.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="Wireless network setup wizard"
'CplItems(0, cplname)="netsetup.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="Game controllers"
'CplItems(0, cplname)="joy.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="ODBC data source administrator"
'CplItems(0, cplname)="odbccp32.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="Remote control"
'CplItems(0, cplname)="smsrc.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="Location information" (telefoon- en modemverbindingen)
'CplItems(0, cplname)="telephon.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(0, lname)="Infrared control"????
'CplItems(0, cplname)="irprops.cpl"
'CplItems(0, shkey)="Alt+Shift+A"
'CplItems(10, lname)="Mouse control"
'CplItems(10, cplname)="mouse" ' Zit in main.cpl
'CplItems(10, shkey)="Alt+Shift+M"
'CplItems(10, lname)="Modem control"
'CplItems(10, cplname)="modem.cpl"
'CplItems(10, shkey)="Alt+Shift+M"
'CplItems(10, lname)="Ports control"
'CplItems(10, cplname)="ports.cpl"
'CplItems(10, shkey)="Alt+Shift+p"
set wshshell = CreateObject("WScript.Shell")
desktop = wshshell.SpecialFolders("desktop")
For i=0 to nrOfIcons
linkname = desktop & "\" & CplItems(i, 0) & ".lnk"
' create new shortcut object
set scut = wshshell.CreateShortcut(linkname)
' fill in information
scut.TargetPath = "control.exe"
scut.Arguments = CplItems(i, 1)
scut.Hotkey = CplItems(i, 2)
' save shortcut object
scut.Save
Next
Reageer via E-mail (dalmolen@xs4all.nl)
Deze pagina is voor het laatst gewijzigd op: 09-02-23 20:19:55