Leter du etter en lett, ultrarask, lett tilgjengelig notatløsning? Søk på nettet, så finner du utallige forslag til slike apper. Og likevel, selv de "letteste" er ofte klønete og kan komme med funksjoner du personlig anser som ubrukelige.

Så la oss se hvordan du kan lage din egen ultralette, lynraske, tilpassede notatapp ved hjelp av AutoHotkey. En enkel, problemfri notatløsning som vil kunne dukke opp på skjermen umiddelbart med et enkelt tastetrykk.

Sette opp en plan for notattaking med AutoHotkey

La oss begynne med å tydelig angi vårt endelige mål og lage en enkel plan for å komme dit.

For dette prosjektet trenger vi ingen fancy tekstformatering, støtte for maler eller andre "avanserte" funksjoner. Vårt mål?

  • Vi ønsker å lage en ultraenkel app som dukker opp på skjermen når vi trykker på en hurtigtastkombinasjon.
  • Dette vinduet lar oss skrive ned et notat og lagre det i en ren tekst/MarkDown-fil.

Og det er alt – ingen ekstra vinduer, dialogbokser, menyer eller knapper.

Heldigvis er et slikt prosjekt enkelt å bygge med AutoHotkey, som vi skal se neste gang. Følg gjerne med selv om du ikke har brukt AutoHotkey før. Imidlertid kan det være best om du først sjekket vår

rask AutoHotkey-guide for nybegynnere.

Hvordan installere AutoHotkey

Siden AutoHotkey er en tredjepartsløsning, må du installere den for å bruke den.

Så ta en tur innom AutoHotkeys offisielle side, og klikk på den vennlige grønne nedlasting knapp. Hopp over både V1 (avviklet) og V2 (beta) versjoner, og velg å Last ned gjeldende versjon. Installer den deretter på datamaskinen din.

Du vil ikke kunne merke noen endringer etterpå siden AutoHotkey bare fungerer som en parser for AutoHotkey-skript. Med andre ord, AutoHotkey gjør ikke noe på egen hånd. I stedet fungerer det som plattformen som skriptet vi skal lage neste gang skal kjøres på.

Hvordan lage et nytt skript i AutoHotkey

Åpne din favoritt filbehandler, som Windows filutforsker, og pek den til katalogen der du vil opprette det nye skriptet. Du kan velge hvilken som helst katalog fra skrivebordet til den personlige mappen Dokumenter.

Den enkleste måten å lage et nytt AutoHotkey-skript på er ved å dra nytte av det nye alternativet som er tilgjengelig via høyreklikk-kontekstmenyen etter installasjon av AutoHotkey. Høyreklikk på et tomt sted i filbehandlingsvinduet, og velg fra menyen som vises Ny > AutoHotkey-skript.

Siden AutoHotkey-skript faktisk er vanlige tekstfiler, kan du alternativt opprette en ny tekstfil og deretter gi den nytt navn, og endre utvidelsen fra tekst til AHK. Det endelige resultatet vil være det samme: du vil ha et nytt tomt AutoHotkey-skript.

Fyr opp favoritttekst- eller koderedigeringsprogrammet og åpne skriptet der for å redigere det. For denne artikkelen bruker vi Notepad++, men du kan bruke et hvilket som helst lignende verktøy, som VS-kode eller Atom.

Selvfølgelig, hvis du foretrekker å holde ting enkelt, kan du alltid bruke den gode gamle Notisblokken som følger med Windows.

Lage en GUI i AutoHotkey

For å forenkle fremtidig tilpasning av skriptet vårt, la oss lagre to viktige opplysninger i to variabler.

  • Den første, som vi kalte NotesPath, er tilordnet hele banen der vi vil at skriptet vårt skal lagre notatene våre. Husk å endre banen til den du vil bruke. Ellers vil notatene dine bli lagret på et uventet sted, eller skriptet vil mislykkes.
  • Den andre, som vi kalte FileNameExtra, inneholder en streng vi skal bruke for notatenes filnavn. Hvert notats fil vil bli oppkalt etter en "sanert" versjon av tittelen, etterfulgt av denne strengen.

Det skal se slik ut:

NotesPath = A:\00_Cloud_Storage\Dropbox\Notes\Obsidian\Duckland! Innboks
FileNameExtra = _MUOnote.md

Vanligvis brukes AutoHotkey for å påvirke andre vinduer, som vi så i artikkelen vår om hvordan du sentrerer et hvilket som helst vindu på skjermen med AutoHotkey, eller for å lage hurtigtaster, som du kan sjekke guiden vår på lage appspesifikke hurtigtaster med AutoHotkey.

I dette scenariet vil vi imidlertid stole mye på AutoHotkeys GUI-opprettingsmuligheter, som mange glemmer. AutoHotkey "trykker inn" i Windows sitt eget "vindusverktøysett". Dette gjør det mulig å lage GUIer med alle de vanlige elementene du forventer å finne i et "standard" OS-vindu, fra tekstfelt og rullegardinmenyer til knapper og rullefelt.

Heldigvis, siden vi lager en enkel og "lite" notatapp, vil prosjektet ikke være komplisert og dermed relativt enkelt å lage. Vår GUI vil kun bestå av tre elementer:

  1. Én tekstboks for notatens tittel
  2. En annen for notatets innhold
  3. En knapp for å lagre notatet.

Vi vil ikke engang legge til en "Avbryt"-knapp siden vi tilordner denne funksjonen til Escape-tasten på tastaturet og handlingen med å lukke vinduet.

Legg til linjen nedenfor i skriptet ditt - det "forteller" i utgangspunktet AutoHotkey at fonten i alle elementene som følger skal være "størrelse 14" og "farge 666666".

Gui, QN: Font, s14c666666

Neste, følgende linje:

Gui, QN:Legg til, Redigere, x5y5w550h60vTitle, Tittel-Filnavn
  1. ...legger til en redigerbar tekstboks ("Rediger")...
  2. ...ved koordinater 5 piksler horisontalt og 5 piksler vertikalt fra kanten av vinduet ("x5 y5")...
  3. ...med en bredde på 550 piksler og en høyde på 60 piksler ("w550 h60").
  4. Alt som skrives inn vil bli tilordnet Tittel-variabelen ("vTitle")...
  5. ...og den vil inneholde teksten "Tittel - Filnavn".

La oss deretter endre skriftstørrelsen til 12 og fargen til 4444444 for alle elementer som kommer etter den linjen.

Deretter legger du til en større redigerbar tekstboks for det faktiske innholdet i notatet, tilordner det til Note-variabelen og forhåndsutfyller det med alt som allerede er i utklippstavlen.

Til slutt legger du til en knapp under de to tekstboksene og nederst i appens vindu, tilordnet skriptets standard OK-funksjon.

Gui, QN: Font, s12c444444
Gui, QN:Legg til, Redigere, x5y70w550h600vMerk, %Utklippstavle%
Gui, QN:Legg til, Knapp, x5y680w550h50, OK

Vi har laget et GUI, men vi trenger også et vindu for å vise det.

For det "berer" følgende linje AutoHotkey om å lage et vindu ved koordinatene 0, 0 (horisontalt, vertikalt), med 560 pikslers bredde og 735 pikslers høyde, kalt "MUONotes".

Gui, QN:Forestilling, x0y0w560h735, MUONmerker

Hele skriptet til nå skal se omtrent slik ut:

NotesPath = A:\00_Cloud_Storage\Dropbox\Notes\Obsidian\Duckland! Innboks
FileNameExtra = _MUOnote.md Gui, QN: Font, s14 c666666
Gui, QN:Legg til, Redigere, x5y5w550h60vTitle, Tittel-Filnavn
Gui, QN: Font, s12c444444
Gui, QN:Legg til, Redigere, x5y70w550h600vMerk, %Utklippstavle%
Gui, QN:Legg til, Knapp, x5y680w550h50, OK
Gui, QN:Forestilling, x0y0w560h735, MUONmerker

Få knappene til å gjøre noe i AutoHotkey

GUI-en vår er klar – du kan sjekke den ut ved å dobbeltklikke på skriptet ditt.

Som du vil se, vil hovednotatets område være forhåndsutfylt med utklippstavlens innhold. Selve appen vil imidlertid være ubrukelig fordi vi ennå ikke har lagt til støtte for å lagre noe.

Løs det ved å legge til følgende i skriptet ditt:

QNButtonOK:
Filkoding, UTF-8-RAW
Gui, QN:Sende inn
TempClipboard = %Clipboard%
Utklippstavle = %Tittel%
gosub CleanText
Filnavn = %Clipboard%
Utklippstavle = %TempClipboard%
FinalFilename = %NotesPath%\%FileName%%FileNameExtra%
FileDelete, %FinalFileName%
FileAppend, %Note%, %FinalFileName%
komme tilbake

La oss demontere det:

  1. "QNButtonOK:" sier at det som kommer etter er det AutoHotkey "bør gjøre" når standard OK-knappen i GUI-en klikkes.
  2. "FileEncoding"-linjen setter den opprettede tekstfilens koding.
  3. "Gui, GN: Submit" henter statusen til hvert GUI-element, noe som betyr at det også "griper" alt som er skrevet inn i de to tekstfeltene.
  4. Vi kopierer deretter midlertidig utklippstavlens faktiske innhold til TempClipboard-variabelen.
  5. Vi gjør det ovenfor fordi vi ønsker å kopiere notatets tittel til utklippstavlen, brukt som et mellomledd for å sende det til en funksjon vi legger til neste gang. Denne funksjonen "renser" teksten, fjerner ikke-alfanumeriske tegn og lar oss bruke tittelens tekst som et filnavn.
  6. Saneringsfunksjonen vil returnere den "rene" tittelen til utklippstavlen, hvorfra vi tilordner den til filnavn-variabelen.
  7. Vi returnerer deretter det opprinnelige innholdet til utklippstavlen fra TempClipboard-variabelen.
  8. For å få hele banen og filnavnet til målfilen "sandwich" vi den nylig sammensatte FileName-variabelen mellom NotesPath og FileNameExtra-variablene. Det er derfor vi definerte dem i begynnelsen av manuset.
  9. Vi sletter forebyggende alle tidligere filer med samme bane og filnavn.
  10. Vi legger til Note-variabelens innhold til FinalFileName-filen.

Desinfisering av teksten i AutoHotkey

Funksjonen "sanering" vi nevnte ovenfor er følgende:

CleanText: CleanMePlease = %ClipBoard%
CleanMePlease := Regexreplace (CleanMePlease, "a-zA-Z0-9", "")
Løkke
{
StringReplace, CleanMePlease, CleanMePlease, %A_SPACE%%A_SPACE%, %A_SPACE%, alle
hvis ErrorLevel <> 0
gå i stykker
}
Utklippstavle = %CleanMePlease%
Komme tilbake

For å gå gjennom det linje for linje:

  1. "CleanText:" er navnet på funksjonen som "inneholder" handlingene som følger.
  2. Vi kartlegger først utklippstavlens innhold til CleanMePlease-variabelen.
  3. Vi bruker en RegEx-regel for å fjerne alle ikke-alfanumeriske tegn fra CleanMePlease-variabelen.
  4. Siden ovennevnte kan introdusere doble mellomrom, bruker vi en løkke for å gre gjennom CleanMePlease-variabelen en gang til, og erstatte dem med enkle mellomrom. Det er biten med de to "%A_SPACE%", etterfulgt av en enkelt, og ordet "alle".
  5. ErrorLevel-linjen "berer" AutoHotkey å "bryte loopen" når den ikke finner flere doble mellomrom i teksten.
  6. Til slutt returnerer vi den "sanitiserte" versjonen av CleanMePlease-variabelen til utklippstavlen.

Gjør de siste tilpasningene til notatappen din

Notatskriptet ditt er klart til bruk, men hvis du prøver det ut, kan du se vinduet som dukker opp og forsvinner umiddelbart. Det er fordi du også må "returnere" hver funksjon du definerte i den.

Så plasser ordet "retur" (uten anførselstegn) under:

  1. Den GUI-skapende delen av skriptet, under GUI, "QN: Show..."-linjen.
  2. "QNButtonOK"-funksjonen, under den siste "FileAppend..."-linjen.
  3. CleanText-funksjonen, under den siste "ClipBoard =..."-linjen.

Men hvis du prøver å kjøre skriptet ditt nå, vil du se at det fortsatt henger i Windows-skuffen etter å ha brukt det. For å få appen til å lukke og skriptet avsluttes helt, legg til følgende helt til slutt:

QNGuiEscape:
QNGuiClose:
ExitApp
komme tilbake

Til slutt, for å få appen til å kjøre umiddelbart når du trenger den, lag en snarvei for skriptet ditt på skrivebordet. Høyreklikk deretter på den, velg Egenskaper, klikk i Hurtigtast feltet, og trykk på ønsket knappekombinasjon.

Gratulerer med å lage din første app i AutoHotkey

Det kan i utgangspunktet ha hørtes ut som et komplisert prosjekt, men som vi så, var det ganske enkelt å lage en "lite" notatapp.

Alt takket være AutoHotkeys menneskevennlige syntaks og evne til å dra nytte av Windows' standard GUI-relaterte elementer.