Bent u op zoek naar een lichte, ultrasnelle, gemakkelijk toegankelijke oplossing voor het maken van aantekeningen? Zoek online en je vindt talloze suggesties voor dergelijke apps. En toch zijn zelfs de "lichtste" vaak onhandig en kunnen ze worden geleverd met functies die u persoonlijk als nutteloos beschouwt.

Laten we dus eens kijken hoe u uw eigen ultralichte, razendsnelle, aangepaste app voor het maken van notities kunt maken met behulp van AutoHotkey. Een eenvoudige, no-nonsense oplossing voor het maken van notities die direct op uw scherm kan verschijnen met een enkele toetsdruk.

Een plan opstellen voor het maken van aantekeningen met AutoHotkey

Laten we beginnen met het duidelijk aangeven van ons uiteindelijke doel en het bedenken van een eenvoudig plan om daar te komen.

Voor dit project hebben we geen mooie tekstopmaak, ondersteuning voor sjablonen of andere "geavanceerde" functies nodig. Ons doel?

  • We willen een ultraeenvoudige app maken die op ons scherm verschijnt als we op een sneltoetscombinatie drukken.
  • instagram viewer
  • In dit venster kunnen we een notitie noteren en opslaan in een platte tekst/MarkDown-bestand.

En dat is alles: geen extra vensters, dialoogvensters, menu's of knoppen.

Gelukkig is zo'n project eenvoudig te bouwen met AutoHotkey, zoals we hierna zullen zien. Voel je vrij om te volgen, zelfs als je AutoHotkey nog niet eerder hebt gebruikt. Het is echter misschien het beste als u eerst onze snelle AutoHotkey-gids voor beginners.

Hoe AutoHotkey te installeren

Aangezien AutoHotkey een oplossing van derden is, moet u deze installeren om deze te gebruiken.

Breng dus een bezoekje aan De officiële site van AutoHotkey, en klik op de vriendelijke green Downloaden knop. Sla zowel de versie V1 (verouderd) als de versie V2 (bèta) over en kies ervoor Huidige versie downloaden. Installeer het vervolgens op uw computer.

U zult achteraf geen wijzigingen meer kunnen opmerken, aangezien AutoHotkey alleen werkt als een parser voor AutoHotkey-scripts. Met andere woorden, AutoHotkey "doet niets" op zichzelf. In plaats daarvan werkt het als het platform waarop het script dat we hierna gaan maken, wordt uitgevoerd.

Hoe maak je een nieuw script in AutoHotkey

Open je favoriete bestandsbeheerder, zoals Windows Verkenner, en wijs het naar de map waar u uw nieuwe script wilt maken. U kunt elke map vanaf uw bureaublad naar uw persoonlijke map Documenten kiezen.

De gemakkelijkste manier om een ​​nieuw AutoHotkey-script te maken, is door gebruik te maken van de nieuwe optie die beschikbaar is via het contextmenu met de rechtermuisknop na installatie van AutoHotkey. Klik met de rechtermuisknop op een lege plek in het bestandsbeheervenster en kies in het menu dat verschijnt Nieuw > AutoHotkey-script.

Aangezien AutoHotkey-scripts eigenlijk platte tekstbestanden zijn, kunt u ook een nieuw tekstbestand maken en het vervolgens hernoemen, waarbij u de extensie verandert van tekst naar AHK. Het uiteindelijke resultaat zal hetzelfde zijn: je hebt een nieuw leeg AutoHotkey-script.

Start uw favoriete tekst- of code-editor en open het script daar om het te bewerken. Voor dit artikel gebruiken we Notepad ++, maar u kunt elke vergelijkbare tool gebruiken, zoals VS Code of Atom.

Als u het liever eenvoudig houdt, kunt u natuurlijk altijd het goede oude Kladblok gebruiken dat bij Windows wordt geleverd.

Een GUI maken in AutoHotkey

Laten we, om toekomstige aanpassingen van ons script te vereenvoudigen, twee essentiële stukjes informatie opslaan in twee variabelen.

  • De eerste, die we NotesPath hebben genoemd, is toegewezen aan het volledige pad waar we willen dat ons script onze notities opslaat. Vergeet niet het pad te wijzigen in het pad dat u wilt gebruiken. Anders worden uw notities op een onverwachte plek opgeslagen of mislukt het script.
  • De tweede, die we FileNameExtra hebben genoemd, bevat een string die we zullen gebruiken voor de bestandsnamen van onze notities. Het bestand van elke notitie krijgt de naam naar een "opgeschoonde" versie van de titel, gevolgd door deze tekenreeks.

Het zou er zo uit moeten zien:

NotesPath = A:\00_Cloud_Storage\Dropbox\Notes\Obsidian\Duckland! Postvak IN
BestandsnaamExtra = _MUOnote.md

Meestal wordt AutoHotkey gebruikt om andere vensters te beïnvloeden, zoals we zagen in ons artikel over hoe u elk venster op uw scherm kunt centreren met AutoHotkey, of voor het maken van sneltoetsen, waarvoor u onze gids kunt raadplegen op app-specifieke sneltoetsen maken met AutoHotkey.

In dit scenario zullen we echter veel vertrouwen op de GUI-creatiemogelijkheden van AutoHotkey, die veel mensen vergeten. AutoHotkey "maakt gebruik van" de eigen "venstertoolkit" van Windows. Dit maakt het mogelijk om GUI's te maken met alle gebruikelijke elementen die je zou verwachten in een "standaard" OS-venster, van tekstvelden en vervolgkeuzemenu's tot knoppen en schuifbalken.

Gelukkig, aangezien we een eenvoudige en "lichte" app voor het maken van notities maken, zal het project niet ingewikkeld zijn en dus relatief eenvoudig te maken. Onze GUI zal uit slechts drie elementen bestaan:

  1. Eén tekstvak voor de titel van de notitie
  2. Nog een voor de inhoud van de notitie
  3. Een knop om de notitie op te slaan.

We zullen niet eens een knop "Annuleren" toevoegen, omdat we die functie toewijzen aan de Escape-toets op het toetsenbord en de actie van het sluiten van het venster.

Voeg de onderstaande regel toe aan uw script - het "vertelt" AutoHotkey in feite dat het lettertype in elk element dat volgt "grootte 14" en "kleur 666666" moet zijn.

Gui, QN:Lettertype, s14c666666

Vervolgens de volgende regel:

Gui, QN:Toevoegen, Bewerking, x5y5w55060 uurvTitel, Titel-Bestandsnaam
  1. ...voegt een bewerkbaar tekstvak toe ("Bewerken")...
  2. ...op coördinaten 5 pixels horizontaal en 5 pixels verticaal vanaf de rand van het venster ("x5 y5")...
  3. ...met een breedte van 550 pixels en een hoogte van 60 pixels ("w550 h60").
  4. Alles wat erin wordt getypt, wordt toegewezen aan de titelvariabele ("vTitle")...
  5. ...en het zal de tekst "Titel - Bestandsnaam" bevatten.

Laten we vervolgens de lettergrootte wijzigen in 12 en de kleur in 4444444 voor alle elementen die na die regel komen.

Voeg vervolgens een groter bewerkbaar tekstvak toe voor de daadwerkelijke inhoud van de notitie, wijs het toe aan de notitievariabele en vul het vooraf in met alles wat al op het klembord staat.

Voeg ten slotte een knop toe onder de twee tekstvakken en onder aan het app-venster, toegewezen aan de standaard OK-functie van het script.

Gui, QN:Lettertype, s12c444444
Gui, QN:Toevoegen, Bewerking, x5y70w550h600vOpmerking, %Klembord%
Gui, QN:Toevoegen, Knop, x5y680w55050 uur, OK

We hebben een GUI gemaakt, maar we hebben ook een venster nodig om het weer te geven.

Daarvoor "vertelt" de volgende regel AutoHotkey om een ​​venster te maken op de coördinaten 0, 0 (horizontaal, verticaal), met een breedte van 560 pixels en een hoogte van 735 pixels, genaamd "MUONotes".

Gui, QN:Show, x0y0w560h735, MUOOpmerkingen

Het volledige script tot nu toe zou er ongeveer zo uit moeten zien:

NotesPath = A:\00_Cloud_Storage\Dropbox\Notes\Obsidian\Duckland! Postvak IN
FileNameExtra = _MUOnote.md Gui, QN: Lettertype, s14 c666666
Gui, QN:Toevoegen, Bewerking, x5y5w55060 uurvTitel, Titel-Bestandsnaam
Gui, QN:Lettertype, s12c444444
Gui, QN:Toevoegen, Bewerking, x5y70w550h600vOpmerking, %Klembord%
Gui, QN:Toevoegen, Knop, x5y680w55050 uur, OK
Gui, QN:Show, x0y0w560h735, MUOOpmerkingen

De knoppen iets laten doen in AutoHotkey

Onze GUI is klaar - u kunt het bekijken door te dubbelklikken op uw script.

Zoals je zult zien, zal het gebied van de hoofdnoot vooraf gevuld zijn met de inhoud van het klembord. De app zelf zal echter nutteloos zijn omdat we nog geen ondersteuning hebben toegevoegd om iets op te slaan.

Los dat op door het volgende aan je script toe te voegen:

QNButtonOK:
Bestandscodering, UTF-8-RAW
Gui, QN:Indienen
TempClipboard = %ClipBoard%
Klembord = %Titel%
gosub CleanText
Bestandsnaam = %ClipBoard%
Klembord = %TempKlembord%
FinalFilename = %NotesPath%\%FileName%%FileNameExtra%
FileDelete, %FinalFileName%
FileAppend, %Note%, %FinalFileName%
opbrengst

Laten we dat demonteren:

  1. "QNButtonOK:" stelt dat wat erna komt, is wat AutoHotkey "zou moeten doen" wanneer op de standaard OK-knop van de GUI wordt geklikt.
  2. De regel "FileEncoding" stelt de codering van het gemaakte tekstbestand in.
  3. "Gui, GN: Submit" pakt de status van elk GUI-element, wat betekent dat het ook alles "pakt" dat in de twee tekstvelden is getypt.
  4. Vervolgens kopiëren we tijdelijk de daadwerkelijke inhoud van het klembord naar de TempClipboard-variabele.
  5. We doen het bovenstaande omdat we de titel van de notitie naar het klembord willen kopiëren, dat wordt gebruikt als tussenpersoon om het naar een functie te sturen die we hierna zullen toevoegen. Deze functie zal de tekst "opschonen", waarbij niet-alfanumerieke tekens worden verwijderd en we de titeltekst als bestandsnaam kunnen gebruiken.
  6. De opschoningsfunctie retourneert de "schone" titel naar het klembord, vanwaar we deze toewijzen aan de bestandsnaamvariabele.
  7. Vervolgens zetten we de oorspronkelijke inhoud terug naar het klembord vanuit de TempClipboard-variabele.
  8. Om het volledige pad en de volledige bestandsnaam van het doelbestand te krijgen, "sandwichen" we de nieuw samengestelde bestandsnaamvariabele tussen de NotesPath- en de FileNameExtra-variabelen. Daarom hebben we ze aan het begin van het script gedefinieerd.
  9. We verwijderen preventief elk vorig bestand met hetzelfde pad en dezelfde bestandsnaam.
  10. We voegen de inhoud van de Note-variabele toe aan het FinalFileName-bestand.

De tekst in AutoHotkey opschonen

De "sanitisatie" -functie die we hierboven noemden, is de volgende:

CleanText: CleanMePlease = %ClipBoard%
CleanMePlease := Regexreplace (CleanMePlease, "a-zA-Z0-9", "")
lus
{
StringReplace, CleanMePlease, CleanMePlease, %A_SPACE%%A_SPACE%, %A_SPACE%, allemaal
als ErrorLevel <> 0
pauze
}
Klembord = %CleanMePlease%
Opbrengst

Om het regel voor regel door te nemen:

  1. "CleanText:" is de naam van de functie die de volgende acties "bevat".
  2. We wijzen eerst de inhoud van het klembord toe aan de CleanMePlease-variabele.
  3. We gebruiken een RegEx-regel om alle niet-alfanumerieke tekens uit de CleanMePlease-variabele te verwijderen.
  4. Aangezien het bovenstaande dubbele spaties kan introduceren, gebruiken we een lus om nogmaals door de CleanMePlease-variabele te kammen en ze te vervangen door enkele spaties. Dat is het bit met de twee "%A_SPACE%", gevolgd door een enkele en het woord "all".
  5. De regel ErrorLevel "vertelt" AutoHotkey om "de lus te verbreken" wanneer het niet meer dubbele spaties in de tekst kan vinden.
  6. Ten slotte brengen we de "opgeschoonde" versie van de CleanMePlease-variabele terug naar het klembord.

De laatste aanpassingen maken aan uw app voor het maken van notities

Uw script voor het maken van notities is klaar voor gebruik, maar als u het uitprobeert, ziet u mogelijk het venster verschijnen en onmiddellijk verdwijnen. Dat komt omdat u ook elke functie die u erin hebt gedefinieerd, moet "retourneren".

Plaats dus het woord "return" (zonder aanhalingstekens) onder:

  1. Het GUI-creërende deel van het script, onder de GUI, regel "QN: Show...".
  2. De functie "QNButtonOK", onder de laatste regel "FileAppend...".
  3. De CleanText-functie, onder de laatste regel "ClipBoard =...".

Als u echter nu probeert uw script uit te voeren, zult u zien dat het na gebruik nog steeds in het Windows-vak blijft hangen. Als u de app wilt sluiten en het script volledig wilt afsluiten, voegt u helemaal aan het einde het volgende toe:

QNGuiEscape:
QNGuiClose:
App afsluiten
opbrengst

Tot slot, om de app direct te laten werken wanneer je hem nodig hebt, maak je een snelkoppeling voor je script op je bureaublad. Klik er vervolgens met de rechtermuisknop op, kies Eigenschappen, klik in de Sneltoets veld en druk op de gewenste knopcombinatie.

Gefeliciteerd met het maken van uw eerste app in AutoHotkey

Het klonk in eerste instantie misschien als een ingewikkeld project, maar zoals we zagen, was het maken van een "lichte" app voor het maken van notities vrij eenvoudig.

Allemaal dankzij de mensvriendelijke syntaxis van AutoHotkey en het vermogen om te profiteren van de standaard GUI-gerelateerde elementen van Windows.