Die meisten Computertastaturen verfügen über eine kleine integrierte LED-Anzeige, die den aktuellen Eingabemodus anzeigt und mit der Feststelltaste gesteuert wird.
Ihre Aufgabe ist es, es zu blinken:
- Mach es an;
- Warten Sie 0,5 (+/- 0,1) Sekunden.
- Schalte es wieder aus.
Videomaterial des LED-Blinkens wird sehr geschätzt!
Regeln
Sie können eine andere LED blinken lassen (z. B. Scroll Lock, Num Lock, WLAN-Status usw.), die sich jedoch physisch auf Ihrer Tastatur befinden muss.
Wenn in Ihrer Sprache ein untergeordneter
sleep
Befehl fehlt , verwendet Ihr Programm möglicherweise stattdessen eine Verzögerung von 1 Sekunde mit einer Strafe von +2 Byte (das ist für0.
).Ihr Programm muss mindestens einmal blinken, was danach passiert, liegt an Ihnen, dh es kann weiterhin blinken (in diesem Fall müssen Sie auf die gleiche Verzögerung warten, bevor Sie es wieder einschalten) oder anhalten usw .;
Wenn die ausgewählte LED standardmäßig AN ist, können Sie auf Ihrem System davon ausgehen, dass sie explizit ausgeschaltet wurde (z. B. manuell), bevor das Programm ausgeführt wird.
Dies ist Code-Golf , die kürzeste Antwort in Bytes gewinnt.
Bestenliste
var QUESTION_ID=110974,OVERRIDE_USER=61904;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Antworten:
Befunge (BEF32),
390334305 BytesDas ist wirklich albern, aber solange diese Seite die Vorstellung akzeptiert, dass der Dolmetscher die Sprache definiert , könnte ich die Regel genauso gut missbrauchen. Dieser Code funktioniert nur in Kevin Vigors Win32 Befunge-93-Implementierung, Version 1.01 (ich denke, die einzige verfügbare Version). Sie können die Binärdatei hier herunterladen .
Normalerweise würden Sie nicht erwarten, dass diese Art von Herausforderung in einer Befunge möglich ist, aber BEF32 ist ein Win32-Port einer sehr alten Version der Referenzimplementierung, und damals gab es keine Einschränkungen beim
p
(put) -Befehl. Auf diese Weise können wir effektiv an eine beliebige Stelle im Speicher schreiben, wodurch der Interpreter letztendlich gezwungen wird, beliebigen Maschinencode auszuführen.Jetzt können wir den vorhandenen Code nicht mehr ändern, da der .text-Abschnitt der ausführbaren Datei keine Schreibrechte hat. Wir können das System jedoch dazu verleiten, eine Adresse im Abschnitt .data auszuführen, indem wir diese Adresse in die Tabelle der Laufzeitbibliothek schreiben
atexit
(zumindest vermute ich, dass dies der Fall ist). Das Endergebnis ist, dass unser Code automatisch ausgeführt wird, wenn der Interpreter beendet wird.Dies beruht auf der Tatsache, dass die ausführbare Datei an einer festen Adresse geladen wird, sodass wir genau wissen, wo sich alles im Speicher befindet - es würde vermutlich nicht funktionieren, wenn Sie die Standard- ASLR- Einstellungen überschreiben . Es hängt auch davon ab, dass der Abschnitt .data ausführbar ist, obwohl das Attribut executable nicht festgelegt ist. Daher würde es höchstwahrscheinlich nicht funktionieren, wenn Sie die Standard- DEP- Einstellungen überschreiben .
Der Code selbst ist im Wesentlichen eine Kopie von Mego ‚s
keybd_event
Technik in Maschinencode übersetzt:Diese Version des Codes blinkt für immer weiter (oder zumindest bis Sie den Vorgang beenden), da sich herausstellte, dass das Golfen einfacher ist als ein einziger Blitz.
Und da jeder Animationen veröffentlicht, ist dies eine Annäherung an das, was auf meiner Tastatur aussieht.
quelle
AutoHotkey,
2926 BytesVielen Dank an @Dane für das Speichern von 3 Bytes
Ich habe ursprünglich gewählt,
NumLock
weil es ein Zeichen kürzer ist alsCapsLock
. Das unten stehende GIF gibt diesen Zustand wieder. Es ist der gleiche Effekt wie der geänderte Code oben. Ich hätte mit demVK90
oben Gesagten weitermachen können, um das GIF noch genauer zu machen, aber die Ausrichtung auf die ursprüngliche Herausforderung fühlte sich besser an.Zu Ehren des Kommentars von mbomb007 ist hier eine Morsecode- Nachricht in 239 Bytes :
Hier sind die ersten 30 Sekunden dieser Nachricht:
quelle
send,{vk14}
stattdessen 3 Bytes zu rasieren? Bonus: Sie würden die Feststelltaste blinken.GFA-Basic 3.51 (Atari ST),
61 56 4335 ByteMit diesem Code blinkt die LED des Diskettenlaufwerks für immer mit der erforderlichen Geschwindigkeit (
PAUSE 25
= Pause für 25/50 Sekunden).Dies wäre wahrscheinlich kürzer in der Montage, aber ich habe nicht die richtigen Werkzeuge zur Hand. Dies ist die Größe der GFA-Basic-Auflistung, die einmal im LST-Format gespeichert und manuell bearbeitet wurde, um nutzlose Leerzeichen zu entfernen, Anweisungen in kürzere Zeichenfolgen umzubenennen und durch
CR+LF
einfache zu ersetzenCR
. Beachten Sie, dass ein FinaleCR
erforderlich ist.Wird automatisch erweitert auf:
SPOKE
ist ein KompressorPOKE
, der den 68000 zuerst in den Supervisor- Modus versetzt, damit er auf eingeschränkte Speicherbereiche zugreifen kann (hier: die Registerschreibadresse des YM2149-Soundchips, der auch für andere E / A verantwortlich ist).Und ja: Die LED befindet sich physisch auf der Tastatur ... nehme ich an.
Ich habe momentan keinen Zugang zu einem echten ST, das ist also nur ein Modell.
quelle
fish + ckb ,
5654 bytesBlinkt meine gesamte Tastatur in zufälligen Farben, obwohl die Zahl nicht 6 Hexadezimalziffern lang ist, ist sie ein bisschen begrenzt.
Und ja, dieser Shell Glob ist potenziell gefährlich. Funktioniert auf meiner Maschine ™
Bonus-Skript, 8 Monate später: Dies wird durch alle Farben gehen. Nicht golfen.
quelle
tee /d*/*/*/c*
? Bonuspunkte für die Gefahr, dass in Zukunft der Computer eines armen Mannes gemauert wird, wenn dies unweigerlich zu etwas Wichtigem wird. (EFI-Variablen jemand? Vielleicht gibt es so etwas wie/dev/efi/vars/cpu_type
)Bash + Amixer, 45 Bytes
Blinkt die Stummschaltung auf meiner Tastatur.
quelle
a()(amixer set Master toggle;sleep .5;a)
oderamixer set Master toggle;sleep .5;$0
als volles Programm etwas kürzer.C (Windows): 79 Byte
Erläuterung
keybd_event
ist eine (veraltete) Windows-API-Funktion zum Senden eines Tastaturereignisses (Hoch- oder Herunterfahren).20
ist der Code für die Feststelltaste,69
ist der Hardware-Scan-Code (ich habe keine Ahnung, was das bedeutet) und1
bedeutet Tastendruck und3
bedeutet Tastendruck. Ein Tastendruck wird simuliert, indem ein Tastendruckereignis unmittelbar gefolgt von einem Tastendruckereignis gesendet wird. Ein Tastendruck wird gesendet, um die Feststelltaste einzuschalten, dann ruht das Programm für 500 Millisekunden, und ein weiterer Tastendruck wird gesendet, um die Feststelltaste wieder auszuschalten.Danke an Steadybox für eine Menge gespeicherter Bytes
quelle
int keybd_event();
?void keybd_event();
, und ich brauche auchvoid Sleep();
auswindows.h
. Diese beiden Deklarationen zusammen sind länger als das Include.#include<windows.h> k(n){keybd_event(20,69,n,0);}f(){k(1);k(3);Sleep(500);f();}
MATLAB,
146,136,70Vielen Dank an @Poke für das Entfernen von 66 Bytes!
Dies nutzt die Fähigkeit von Matlab, Java-Klassen aufzurufen. Die Num Lock-Anzeige blinkt in einer Schleife, indem Sie programmgesteuert drücken und loslassen Num Lock.
Video oder es ist nicht passiert .
quelle
144
anstelle von verwendenjava.awt.event.KeyEvent.VK_NUM_LOCK
? CAPS_LOCK wäre20
x86-Maschinencode für PC (z. B. MS-DOS-COM-Datei), 27 Byte
Dieser Maschinencode (hier mit einem Unicode-Rendering des üblichen CP437 des PC-BIOS angezeigt) blinkt auf einem PC für immer auf der FESTSTELLTASTEN-Anzeige:
Der Code wurde so erstellt, dass er keine NULL-Bytes enthält, und kann daher mit der Tastatur (mit dem Alt + XXX-Trick für erweiterte Zeichen) eingegeben werden, um eine COM-Datei zu erstellen (
COPY CON blink.com
in diesem Fall z. B. mit dem Befehl unter MS-DOS) die Ausgabedatei eine falsche 28 enthalten müssen ten Byte, die^Z
(EOF) Zeichen erforderlich ist, um den Kopiervorgang zu stoppen).Der Effekt wird erzielt, indem Befehle direkt an den Tastatur-Controller des PCs gesendet werden (Port 60h), um den LED-Status festzulegen (als Nebeneffekt können die LEDs Num Lock und Scroll Lock in einen zufälligen, nicht blinkenden Status versetzt werden). Das Timing zur Minimierung der Anzahl der Befehle wird mithilfe des Countdown-Timers erreicht, der vom BIOS unter der Adresse verwaltet wird
0040:0040
(er verringert sich alle 54,925 ms, bei 9 Zyklen beträgt der Blinkzyklus 494,3 ms, was innerhalb des zulässigen Bereichs liegt) - dieser Zähler wird normalerweise vom BIOS zum Stoppen des Diskettenmotors verwendet; Da das Diskettenlaufwerk nicht vom Programm verwendet wird und davon ausgegangen wird, dass der Code in einer Single-Task-Umgebung (z. B. DOS) ausgeführt wird, ist das Spielen mit dem Timer des Diskettenmotors kein Problem.Der Code läuft einwandfrei unter MS-DOS (ausprobiert mit VirtualBox, sollte auch auf echter Hardware einwandfrei laufen, obwohl ich noch keine Zeit hatte, einen bootfähigen MS-DOS-USB-Stick zum Testen zu erstellen). Da es keine Betriebssystemfunktionen benötigt, kann es auch ohne das Betriebssystem ausgeführt werden (z. B. indem es im Bootsektor einer Festplatte abgelegt wird). Es ist mindestens ein 80186-Prozessor erforderlich, um ausgeführt zu werden, da die Anweisungen zum sofortigen Drücken verwendet werden, um den Code einiger Bytes zu verkürzen.
Assembly-Quellcode:
Hexadezimaler Speicherauszug des zusammengesetzten Codes:
Hier ist das Ergebnis, das unter MS-DOS in VirtualBox ausgeführt wird (funktioniert nicht mit DosBox, vermutlich, weil der Tastaturcontroller nicht vollständig emuliert ist):
(Entschuldigung für das verwackelte Video).
quelle
copy con program.exe
: youtube.com/watch?v=iefuJ_jZAiQSmileBASIC,
3623 BytesBlinkt die Mikrofonstatusanzeige. (Video folgt in Kürze)
quelle
Python2 - 108 Bytes
Funktioniert die Feststelltaste. Interessanterweise schaltet dies nur die LED selbst ein, ohne die Tastatur zu beeinflussen oder die Taste zu drücken. Sie können die
4
am Ende ändern2
, um Numlock zu tun.6
macht beides.quelle
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1, in <module> IOError: [Errno 25] Inappropriate ioctl for device
macOS Sierra Version 10.12.1 (16B2555)
.Shell + Numlockx,
4035 Bytes[5 Bytes dank Ryan eingespart.]
Blinkt kontinuierlich die NumLock-Anzeige auf unixish-Systemen.
Einmaliges Blinken, 33 Bytes
quelle
exec sh $0
anstelle vonwhile
5 Byte speichern, odersh $0
wenn das Erstellen von Prozessen für immer als in Ordnung angesehen wird.watch -n0.5 numlockx toggle
für 27 Bytes.numlockx toggle;sleep .5;!#
(27 Byte) für ein einziges Blinken.!#
wird das Ereignis zur Protokollerweiterung durch alles ersetzt, was bisher in der Befehlszeile eingegeben wurde.on
kann das weggelassen werden. Es ist die Standardeinstellung.f=numlockx;$f;sleep .5;$f off
(29). Und (eine minderwertige) Schleifenversion mit Rekursion:g(){ f=numlockx;$f toggle;sleep .5;g;};g
(40).PowerShell , 71 Byte
Anmerkungen
quelle
-Seconds
Parameter ist einint
,0.5
wird also in konvertiertint
, was zur Folge hat0
(rund auf gerade ist der Standardrundungsmodus). Sie schlafen also überhaupt nicht (was zu einer Verzögerung von ca. 1000 Ticks führt, also 10 µs). Ziemlich grundlegende Konvertierungs- und Parameterbindungsregeln in PowerShell.VBS, 75 Bytes
Blinkt wiederholt die Num-Taste, da
numlock
1 Byte kürzer alscapslock
.quelle
C #,
215202198195185 BytesOhne zu bemerken, dass ich den gleichen Code wie diese Antwort von @Mego verwendet habe , probieren Sie es aus !.13 Bytes dank @Metoniem
gespeichert 10 Bytes dank @VisualMelon gespeichert
Hier ist eine voll formatierte Version, die zeigt, dass es funktioniert:
Für Bonus Spaß Änderung
n++ & 2
zun+=2 & 2
und beobachten Sie die Num - Taste und Caps Lock alternative Tasten blinkt ein und aus. Ich habe keine Ahnung, warum das passiert, weil es nicht sollte, aber es sieht "cool" aus.quelle
using System;
aber soweit ich das beurteilen kann, verwenden Sie tatsächlich nichts direkt aus dem System-Namespace. Ich denke, Sie können das entfernen.keybd_event
ist eigentlich die Signatur für die Methodevoid keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
. Ich lasse los, ich könnte dieUIntPtr
nach dem Posten entfernen und habe sie alsint
's und habe nur vergessen, die Verwendung zu entfernen.k
eine, aber sie sind eindeutig undefiniert. Nicht angekreuzt, aber ich denke, es ist besser, wenn Sie einen Aufruf von keybd_event in einer ungerahmten for-Schleife haben, denke ich:for(int i=0;;...Sleep(250))keybd_event(i++&2)
oder so.Java 7,
121118113 BytesEin einziges Drücken und Loslassen löst nur den Status aus. es blinkt nicht. Daher können wir es auch in einer Schleife abspielen, und es sieht so aus, als wäre Rekursion die billigste Methode, dies zu tun.
quelle
()->for(;;){java.awt.Robot r=new java.awt.Robot();r.keyPress(20);r.delay(500);r.keyRelease(20);}
das ist eine Einsparung von 18 Bytes aufgrund des 4-stelligen Lambda-Deklarations-Overheads.JavaScript, 82 Byte
Das Guthaben geht an @FinW . Ich habe gerade die alte Funktion in eine neue ES6- Pfeilfunktion geändert, um einige Bytes zu sparen. Und weil ich nicht genug Punkte habe, um zu kommentieren, habe ich eine neue Antwort geschrieben.
Bearbeiten - gelöschte Klammern, um weitere 2 Bytes zu speichern.
Sein Code sah so aus
quelle
()
mit einem anderen, einzelnen Zeichen wie_
oder indemo
ein Parameter mit einem Standardwert, etwa so:(o=new ActiveXObject("WScript.Shell"))=>
.Scala,
848378 BytesBearbeiten: 1 Byte dank @TheLethalCoder gespeichert,
Er schlug vor,
1>0
anstelle vontrue
.Edit 2: 5 Bytes gespeichert dank @ Corvus_192,
Er schlug vor, die Infixnotation zu verwenden und die Klammern nach dem Konstruktor abzulegen
Ungolfed:
Standard-Scala-Port von @Pokes Java- Antwort . Geben Sie es direkt in die Scala-Interpreter-Eingabeaufforderung ein.
Ein Video davon, in dem sowohl meine Feststelltaste als auch mein OSD blinken, um hochzufahren!
quelle
for(;;)
oderwhile(1>0)
oderwhile(1)
in Scala?r keyPress 20
ein Byte kürzer alsr.keyPress(20)
. Gleiches gilt für die anderen Methodenaufrufe, die insgesamt 3 Byte einsparen.Linux-Terminal, 8 + 11 = 19 Byte
Datei
f
=1B 5B 33 71 1B 5B 30 71
native@shell:~$
pv f -q -L8
WAT?
Nach ECMA-48 ,
1B
beginnt Terminalsteuer Escape - Sequenz.Caps on =
1B 5B 33 71
, dann off =1B 5B 30 71
pv
Fortschrittsanzeigef
Datei-q
ruhig-L8
8 Bytes / s = 0,5 Sekunden VerzögerungVerwendungszweck
Bereiten
Ctrl+ Alt+ F6Schalter auf native Konsole
Lauf
pv f -q -L8
Ctrl+ Alt+ F7schalte zurück
quelle
Bash + Xdotool, 36 Bytes
Führen Sie es einfach in einer Bash-Shell aus. Es muss sich in einer grafischen Umgebung befinden. Endlosschleife von hier . Num_Lock wurde in 66 geändert, um 6 Bytes zu sparen, und danke an @Michael Kjörling für 2 Bytes.
quelle
:
für dietrue
meisten Systeme einen Alias verwenden können.while :;do sth;done
macht dasselbe wiewhile true;do sth;done
aber ist drei Bytes kürzer.for((;;)){ sth;}
ist allerdings noch kürzer.xdotool , 20 Bytes
Drückt die Taste 66 aka Caps Lock zweimal, mit einer Verzögerung von 500 ms zwischen Tastendrücken.
Beachten Sie, dass xdotool eine Skriptsprache ist. Es kann von einer Datei ausgeführt werden und unterstützt sogar Shebangs. Da sein
exec
Befehl das Ausführen von externen Programmen ermöglicht, ist es in der Lage, Additionen und Primalitäten zu testen, sodass es unserer Definition der Programmiersprache entspricht.Testlauf
quelle
Python mit Pyautogui:
126 143 115103 BytesVielen Dank an @ nedla2004 für das Speichern von 12 Bytes
quelle
while 1:keyDown('capslock');time.sleep(.5);keyUp('capslock')
und die erste Zeile infrom pyautogui import*
und die zweite in ändernimport time
.import time;c='capslock' ...
time
insgesamt entfernen .from pyautogui import*; while 1:press('capslock',1,.5)
. ymmv. In meiner Umgebung wirkt sich Pyautogui zwar auf den von mir eingegebenen Fall aus, aber das Licht blinkt nicht.Bash, 31 Bytes
Funktioniert in X, ohne root-Zugriff! (Wenn es bei Ihnen nicht funktioniert, überprüfen Sie anhand der Init-Funktion im folgenden Code, ob xkbcomp richtig konfiguriert ist.)
Und ein Bonus-Skript, um einen Morsecode durch die Feststelltaste zu senden (nicht golfen):
Beispiel:
blink "...././.-../.-../---//.--/---/.-./.-../-..///"
quelle
Bash + Setleds , 43 Bytes
Ziemlich einfach. Dient
setleds
zum Umschalten des Lichts.quelle
Bash, 103 Bytes
Muss als root ausgeführt werden.
Funktioniert das Blinken der gesamten Tastaturbeleuchtung? (Video zu kommen, wenn ich nach Hause komme)
quelle
Does flashing the entire keyboard backlight work?
Nun, wenn Sie daran denken, ist die Tastaturmarkierung ein Indikator dafür, dass die Tastaturmarkierung ein- oder ausgeschaltet ist, und sie befindet sich definitiv "physisch auf der Tastatur". Also, ja, ich denke, es zählt.JavaScript, 90 Bytes
Das
ActiveX
bedeutet, dass es nur im IE ausgeführt wird (Edge unterstützt es jedoch nicht ). Die NUMLOCK-Taste blinkt, da sie wie bei anderen Antworten kürzer ist als die von CAPSLOCK oder SCROLLLOCK.Ungolfed
quelle
Bash, 33 Bytes
Dies setzt voraus, dass Num-Lock aktiviert ist, bevor es ausgeführt wird. Schalten
off
undon
anders. Benötigt dasnumlockx
Paket natürlich;)Bearbeiten:
Saw Alex Howansky hat diese Lösung bereits gepostet, sie jedoch nicht mit Bash markiert, und ich habe gerade auf der Website nach "Bash" gesucht.
quelle
numlockx toggle;sleep .5;!#
(27 Byte).!#
ist das Ereignis, das auf alle bisher eingegebenen Befehle in der Befehlszeile erweitert wird.Batch-Datei (mit Hilfe von VBS), 74 + 2 = 76 Bytes
Teilweise basierend auf Trelzevirs Antwort .
.vbs
ist automatisch enthalten inPATHEXT
.quelle
Kotlin-Skript, 72 Bytes
Obwohl es nicht das kleinste ist, ist es dennoch ziemlich gut. Ich liebe Kotlins Lauf für einige Dinge, und dies ist einer von ihnen (kleiner als val r = java.awt.Robot (), weil wir nicht beide brauchen r. Und val r =. Trotzdem ist es länger als MathLab)
Ungolfed:
quelle
Python3,
5549 BytesDanke @NoOneIsHere für -4 Bytes!
Dies beinhaltet Pakete: pyautogui und
time
ModuleCode:
Danke @NoOneIsHere für -4 Bytes!
Der Schlüssel in Aktion:
quelle
while 1
, indem Sie einen Einzeiler mit einem Semikolon verwenden. (while 1:pyautogui.press("capslock");time.sleep(.5)
)import pyautogui
den Start des Programms ergänzen und den Rest in ändern, könnenwhile 1:pyautogui.press("capslock");time.sleep(.5)
Sie dies zu einer gültigen Antwort machen.import time
da sein.import time
...VBA, 82 Bytes
Anonymous VBE Unmittelbare Fensterfunktion, die keine Eingaben macht und den Benutzer auf unbestimmte Zeit nervt. Abhängig von der Windows-Kernel32-Funktion sleep, die unten deklariert ist.
Schlafdeklaration (Win-32)
Sleep-Deklaration (Win-64, + 8 Bytes)
Anonyme VBE-Sofortfensterfunktion
Etwas mehr Spaß Version, 97 Bytes
Eine Reihe von gegenseitig rekursiven Unterroutinen, die den Benutzer auf unbestimmte Zeit nerven
Fragwürdige Version, 66 + 2 Bytes
Ich bin nicht sicher, ob die Deklaration einer Funktion aus einer DLL als eingebaute Funktion gilt. Falls dies nicht der Fall ist, ist hier eine 66 + 2-Byte-Version, die 1 Sekunde wartet
quelle