KB » Computer » Shortcuts

Shortcuts

    Tweeten

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

Start Menu is te vinden in

Locaties

Snelkoppelingen staan op een aantal belangrijke locaties (maar de bijbehorende sneltoetsen worden dus niet allemaal door Windows gezien!!):


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

  1. 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.
  2. 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.
  3. Alle vensters moeten standaard gemaximaliseerd zijn.
  4. 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:

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

    Tweeten

© Henk Dalmolen
Reageer via E-mail (dalmolen@xs4all.nl)

Deze pagina is voor het laatst gewijzigd op: 23-4-2014 13:07:51