I Made a Windows Tool For the F13-F24 Keys
HTML-код
- Опубликовано: 2 авг 2024
- It might come in handy 🤔
⇒ Become a channel member for special emojis, early videos, and more! Check it out here: ruclips.net/user/ThioJoejoin
Link to GitHub Page: github.com/ThioJoe/F-Key-Sender
▼ Time Stamps: ▼
0:00 - Intro
1:22 - How It Works
2:47 - Why?
3:58 - Technical Overview
4:28 - Problem With SendKeys
5:35 - The Solution: SendInput
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
• My Gear & Equipment ⇨ kit.co/ThioJoe
• Merch ⇨ teespring.com/stores/thiojoe
• My Desktop Wallpapers ⇨ thiojoe.art/
⇨ / thiojoe
⇨ / thiojoe
⇨ / thiojoetv
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Наука
My school forces us to use Winforms to learn application programming. This is the first time I have seen someone other than my school use Winforms xD
Same
winforms are kinda the easiest way to do it, if you only care about windows. if you want it to be cross platform than you obviously won't use winforms
@@collared ye ofc i know, i went to this course with a MacBook.... XD had to dualboot windows
you'd be surprised
our old professor for idk what god damn reason wanted us to use oracle forms 6
if you look at the last "patch" for the app, it's in 2007
biggest challenge was to install it and get everything working with other apps lmfao
@@xdct.4790 Why would you even use MacBook?
I NEEDED a tool like this. I cannot express how glad I am that you made this. Thank you so much for making this program.
If one person finds it useful then it’s worth it 😌
Yeah, you’re both right @@ThioJoe
What do you use it for?. I'm just curious as a person that has and probably never will have a real use case for this.
for waht?
@@WyattOShea I use f13 - f17 as controls when i am drawing. F13 to undo, f14 to redo, f15 to auto pick the colour where my mouse is, f16 to switch between pen and eraser and f17 to switch between two colours. I had a extra key thingie and it had f13 - f20 and i would just use that for my drawing tasks. I know all the above mentioned things can be done by pressing specific keys or holding a key while pressing with mouse but i found it much easier to do so. later i "accidently" broke my extra key thingie (i still have no idea what it is called but I just call it extra key thingie) and i just had to use my keyboard. Now that Joe has made it into a simple exe file, i can just use my mobile as secondary display via usb, the "F-key sender" would be on my mobile display and my drawing program on my laptop display and work easily. I know this sounds a really stupid use case of extra function keys but i just like it. I think it look cool (or maybe I am lazy). I also used to use f18 to mute and unmute on discord and f19 to defen. The above written use case is highly specific but hey I am lazy and if it can be automated with a button press, I should be automated with a button press, atleast for me.
"Ugly, but it works"
Me when I test web pages I made that look like it was made almost 30 years ago.
Real
Subscribed
I hope they also work like old webpages, and load in old browsers. we have enough modern sludge
nah, the web pages are prob beautiful
FINALLY I use F13-F24 all the time and nobody references them ever
Hi Lexi!
lexiiii
greetings
Wait, on a physical keyboard, or?
Same I use another keyboard for macros and flight sim shenanigans
(Yoo it's Lexi! :3)
Extremely niche use case:
When you're playing Celeste at a high level, you can never have too many jump buttons, for instance, there's a room in a custom map called dashless+ which involves doing a trick where you press 3 jump keys at once. being able to set up extra jump keys without any conflicts with system keys would prove useful
5250 or 3270 terminal emulation - although those programs typically map [shift]+Fx.
This tool is super usful for configuring the macro buttons on my mouse. I was struggling to find a key I never use, however the F13-F24 keys work perfectly for this. Thank you for making this tool!
That's so funny you mention this issue, I usually temporarily assign an f13-f24 key to my Razer Device whenever I need to map it into some other software and then change it back. This tool will help quite a bit lol.
You are my hero. I use the F13 through F24 keys as mapping for disability stuff, and this makes it so much easier for things that require detecting keypresses. I haven't watched more than 30 seconds of the video, but I can tell it's going to be a good one.
There is actually a project called Avalonia UI which is an open source, cross platform, modernized implementation of Winforms. I used it to create a similarly basic GUI application but for Linux.
actually it is inspired by wpf , wpf is a more modern version of winform but that come before windows store app (aka uwp app)
I was actually looking for something like this ngl (for absolutely no reason, just wanted lots of keys 😂)
"F25 key? Are you ready for this? Promise not to tell. I'm gonna hit the F25 key, get ready!"
I Was want talk like that
@@OfficialDubEnderDragon it's a reference to a meme.
@@ChillaxeMake i already know that meme
@@OfficialDubEnderDragon😐
*galaxian screaming noises*
I couldn't really tell you why, but I've always liked the Winforms aesthetic. It's like brutalism for software.
Winforms is fine. I really enjoy gtk3 which is mostly used by certain linux distros. That one's my favorite, but programming guis with it is an absolute pain. Still worth it, because your program will look dope.
@@ulroxvladtepes4023 I certainly prefer Winforms to the overengineered mobile-on-desktop interfaces we have in Current Year, at any rate.
For me it's because a ton of really useful tools over the years have been cobbled together using it so I associate with no frills, useful things that don't require me to download another 500 MB electron bullshit over and over again.
Underrated comment
@@ulroxvladtepes4023WinForms and GTK3+ - both completely incapable of adhering to even basic DE customisation. Figures.
I can't tell you how much this helps! A lot of productivity software has a keyboard shortcut assignment menu with a bunch of useful options unassigned, because they ran out of key combinations to assign to them. Now I can have 12 of those directly assigned to either my G13 or my "MMO" mouse keys.
Thanks a bunch!
I still use a keyboard named the OmniKey Ultra. This dates from at least 35 years ago, probably more. In its day, it was considered the best keyboard available anywhere, and nothing about that has changed, but for all the dedicated Windows function keys added to the lexicon in the interim. It has a separate register of so-called "special function" keys, which are just the 13-24 keys. When I got it, programs didn't naturally recognize those keys, so Omni included a DOS-based program allowing the user to program their usage. With several office moves, over the years that disk and program disappeared, and I never made significant use of the idea anyway. It probably wouldn't work in a modern Windows environment anyway. So, I'll give this a try, although I'm not yet sure what I will program the keys to do if it works.
Whenever I start up a new game I make a custom profile for my mouse's macro buttons, and I have a lot of profiles lying around in a folder somewhere.
Now I can have one web profile and one game profile and just remap the keybinds in the game instead of fiddling with the mouse software.
A simple, easy to use software you only need to use once is close to perfect.
Thank you.
C# dev here, I still use WinForms a lot for little tools like this.
Thank you! This is fantastic info and appreciate the effort you made to put the program together. Hoping one day keyboard manufacturers bring back options for those who want F13-F24 - until then this is a great stopgap.
Thank you I didn't even know about the f13-f24 this is very useful for mouse button mapping. Especially because you made a super simple and easy to use program for them!
That's super useful! I often record macros that use those keys for various tools that let you remap stuff but not quite. And sending F17 through AHK itself is a minor inconvenience that gets more and more annoying as I debug and test my scripts.
oh my god I've actually been wanting a tool like this for SOOOOO long. Havn't even watched the video yet but I've always wanted an F13-F24 tool. I allready have F13, 16, 23, & 24 bound to some of my extra mouse buttons for random stuff, but being able to access all of them easiley with a tool like this is AMAZING
Now we need this for the f25 key
The program I didn’t know I needed. Ty for making this.
Yes, the 7th tool that ThioJoe makes that no one will ever use productively :D
This is fantastic, I always had to write my own autohotkey scripts to push these buttons. Thank you!
Super cool! I will definitely be using this in the future.
can't wait for the F25 Key... might need a much longer video to demonstrate 😂
I dare you, do this for linux, specifically for wayland.
WL would be a pain to target. Maybe a wrapper around the compositor, maybe a wlRoots specific hack?
Have you seen libei? :)
Joe, once again you have helped me to better wrangle Windows. Always appreciated, and keep up the great work here that you are doing.
I once had to do something similar and used powershell for the same effect. It was relatively simple to setup but this looks very cute. I will defo use this if I ever need to again.
I use F1 - F12 maybe once a year, so .... 😄But thank you for the effort, Joe.
Maybe you don't need that but it is worth learning some of the keys. F5 - refresh; F1 - help docs.
i am a power user of alt+f4... you can only imagine my disappointment when my new keyboard didn't have dedicated F keys at all.
Thio Jo, after ThePrimeTime and Theo, you are my favourite youtuber for a reason. You have a be of doing something smart/technical/useful to a niche and I just love that so much about your content. Thanks! :)
For my mouse, I was able to bind F24 by creating a random function key bind, then opening the profile file in a file editor, finding the bind, and just changing a string like "F12" to "F24"
I use Logitech's Gaming Software (9.02) for my Logitech G600 mouse.
Amazing stuff as usual.
Microsoft should just hire you part-time.
DUDE!!! I NEEDED THIS!!! THANK YOUUUuuuuuuu
You use a timer for waiting until the user selects another window. You could do something like what Keepass does; send Shift+Alt+Tab to select the previous window. Or use a different API to list all open windows and activate it before sending the input. :)
or wait for a defocus
If were to assign functions from F13 to F24 keys, I'd forget what each one does 🙄. It's a great program Joe and thanks for the efforts!
Your scripts are amazing, I learn a lot from your GH
You are in my Bing!! Yay!!!
10/10 fits on a 1366x768 screen🎉
This automatically makes it better than most other programs in the entire known universe 💗
It's always infuriating when system oriented control panel utilities have sooo much padding and use font sizes sooooo gigantic that they _require a 4k monitor just to see the ok&cancel buttons at the bottom of the window._ Yours wins the size constraint wars by a LOT!
That app looks really good in my opinion. Change the "(i)" to "context help" or sth. "Delay" to "Delay to key press" and "Hold duration" Time key is pressed. Change the list to Radio. Add help button ("Help") Put them both in seconds. That kinds of problems if at all.
I used to manually edit the configs to assign F13-F24 keys to macro buttons, which is easy enough to do, but your tool will definitely make the process faster
I know from experience that SendInput sometimes has problem with being detected within Games when sent via a external Program and not a Driver.
Tried this to automate fishing in MC, and SendInput would sometimes not work at all. I would use then Send Event as in KeyStrokes, basically the kbd_event, and it worked.
Really depends on where you use it, since i guess some Programs just aren't that good at detecting External Program's SendInput
If you're wondering which language, it's Autohotkey v1, Completely relied on Windows's own dlls and functions.
I use a mac keyboard on my windows PC, so I have F13 to F19 keys!
Jealous
I like hearing about Thio's programming projects
Thank you this is what I needed. I use a footswitch which with the included software I can assign any function key but the Logitech software is frustrating for assigning G keys.
Thanks for posting this video
That's very cool! If I still had a keyboard with macro keys, I would rely on it right away 😁
Really cool idea. Only feature request I have would be to make it possible to set fractional seconds for the Delay. Looks like it allows decimals to be input, but then rounds to the nearest integer when the key is clicked.
Thanks it would help a lot
Thanks for bringing this to my attention, apparently auto hotkey v1 has the f13-24 keys built into its recognition so if you wanna just use some ahk script a::f24 return would turn a into f24 for example
Man im going to check this out for sure 100% and if it works for what I want it to do then its totally amazing and I owe you some money. I typically assign shortcuts way too much actually because im about to go into surgery for carpal tunnel for that exact reason because its just my left hand i need the surgery for and thats typically my only hand I am doing shortcut key combinations with. Crazy huh? But yeah I have a stream deck and also I even make shortcuts to programs and put the shortcut keys i want to press to open them for alot of different things and ive almost run out of combinations to create for a lot of things.
Specifically in XYplorer because I have made so many shortcuts to helping to manage either file renaming and clean up or copy and move to certain locations certain files and a whole lot more. So i think this is what I really need!!!! Thank you!
This is awesome!
I was waiting for this.. Even though i probably could have used autohotkey.
An interesting use case for the additional F-keys: a video production computer called a Chyron Duet (which the TV station I worked for years ago used) had a row of additional keys that I'm pretty sure corresponded to the extended F-key set.
Our Hero is back with a bang
Good job, ThioJoe. Yes, it is probably useful for many applications and you can get an X-keys keyboard from P.I. Engineering an get some real good shortcut macros going. Of course, X-keys have their own software (Macroworks 3.1) but I'm going to try it with your software because I have an X-keys keyboard.
@ThioJoe
Yes this will for sure be useful. I use the Logi software as well and some of the games I play and utilities it would be nice to use these extra key codes.
Thank you :)
Thats actually pretty cool
Thank you for this
This is so useful. Cant remember which, but either iCUE (my mouse) or steelseries (my kb) doesn't list F13-24 keys, and I have 3 always on AHK scripts on tgose buttons, so now I can finally simplify those.
The 122-key keyboards are used for IBM 3270 and 5250 terminal emulation. Later PS/2s had BIOS support for the "host connect" keyboard with - of course - a PS/2 connection. Terminal emulation programs will typically just use [shift]+Fx for the upper row of function keys on a regular keyboard, and yes, they are used for some host functions.
INT 15h, Function C0h reports whether there is 122-key keyboard support in BIOS - then there are INT 16h BIOS functions to get the keystrokes.
good vid , personally have no use for it. but now i know
This is great for some accessibility features.
So can you can set a key combo like Ctrl + any of the F13-F24 Keys and that would work too?
I typically make use of these special F keys with OBS, which readily accepts being assigned hotkeys with them, and a KeyChron keyboard, which typically allows assigning their macro keys with them.
I assigned such keys with Touch Portal. You can easily set it up, and on the mobile interface you can send those keystrokes.
First off, using F13-F24 makes sense only if you have a software app using them (mostly industrial or banking apps).
And if you need it, you can buy a kbd with 24 F-keys, as many have suggested.
And I think in Windows you can enter these codes using the Shift key, ie Shirt+F1 enters F13, Shift+F2 F14 and so on.
As someone who uses macros all the time, this is great! No one can stop you! 💪🏻
Hi! Great video!
W
It seems like they'd be useful for function macro's, especially if you work in programs like cad, and want shortcuts to make life easier.
I write AutoHotkey scripts and bind keys like F13 to F24 and use the Corsair iCUE software to bind keys to those function keys. My Corsair K95 is the 18 G-Key edition, so I also bind some of the other keys to Int1-6 and/or Lang1-9. Who knew those were also hidden hardware keys? AutoHotkey can see those keys using scan codes so you can bind to SC073:: for Int1 for example.
i, just today, made an autohotkey script to press f24 after a second explicitly for the logitech usecase you mentioned. would've liked this, lol
03:45 Ctrl+F4 is pretty common to close the current document or tab. (Nowadays, programs also support Ctrl+W for that)
this would have been really handy last year when I was trying to do precisely the same thing, and had to resort to crappy AHK scripts. mousbinds for tarkov and teamspeak will basically an entire 102-key lol
Literally just watched that other vid you made on this. Im flabbergasted
Actual literal literally actually.
This is what I've been looking for. I was using Autohotkey, but it was too clunky to use. Also the Power Automate that was recommended before wouldn't run on my pc, as it was stuck on error saying it couldn't update. Thanks for making it Open source, too.
The tool gave me an idea of a tool I’ve been looking for, may fork and and give it a try for my use case…. Use case is when I connect to remote devices the client disables copy/paste text from host to remote device. Sometimes I need to send long strings of text (long URLs) this would be very useful.
a nice feature would be a drop down or other menu where you can pick from any key or at least the less common ones, a lot of stuff just isnt available on say a 60% keyboard and cant always be found in the software
A version where the app youre typing into retains focus would be useful (similar to how the windows on-screen keyboard works)
i wish there were more FNumbers. I love asigning shortcuts on my programs that I use with another keyboard using HID macros and give it the fnumbers. never liked replacing default shortcuts, so fnumbers are pretty useful as a blank slate to assign
i downloaded this immediately
Last time i had to do this, i generated the fake inputs with the Autohotkey console. It's capable of sending inputs very reliably. But i already forgot how to do this.
Autohotkey also has a simple UI framework and will package a script into a small-ish self contained executable for easy deployment.
Perhaps i should make a tiny little USB keyboard with tiny little tact switches for the extended Fkeys that i misplace every time i need it. Based on the new one-dollar bluepill with the c6 version of the chip (32K flash, 10K RAM), which is just about capable enough of simple USB input tasks. The last batch that i got even has the correct USB pullup resistor! Only took them 10 years.
I remapped my F1 key to F13 (using powertoys) and rebound it wherever i actually needed F1 (i put F13 wherever F1 used to be in games or other programs that i care about) so it does not trigger help which is the default action for that key in windows and many programs since i found myself misclicking it so much...
Include all the 'linux-only' special keys and this'll be the ONLY free OSK out there that serves this.
IDK any paid-for software that provides this too, actually.
It's why i got here in the middle of my search, just now.
Currently configuring a new midi gear i got to run macros on. In my setup, i'm forced to use an OSK.
This program is a godsend. Too bad i'll have to find those 'linux-only' special keys on an OSK elsewhere. But still, can't be thankful enough for this!
f13-24 keys are such a blessing for macros because no software uses them, wish they were included in actual keyboards.
If they were included in actual keyboards then software would use them, and they would become useless for macros. ☹
thank you
Useful? Unsure. Cool? Most definitely! Something to play around with on a lazy Sunday afternoon.
Yeah, if you've used SDL any you'll get more familiar with crafting your own event structures and pushing them into the event loop. Done that a few times to change input mechanisms for various open source games and stuff like that. As for me, if I used Windows, I'd set the F14 key to display a tomcat when you press it, and F22 would put the computer in stealth mode. I don't know if Linux has any hidden function keys like that, but if so, maybe I should do something funny like that on Linux.
This would absolutely be useful for me lol
Its always "fun" to end up going into a lower level of the OS API rabbit hole. Just come up for air when you see electrons whizzing by.
WE ARE GOING BACK TO 1998 WITH THIS ONE🗣🗣🔥🔥
copyfarm
Except SendInput was introduced in Windows 2000 🧠
@@mandai2 I stand corrected
Might as well have the whole keyboard, because people don't necessarily have full keyboard, but might want to assign those functions to mouse buttons etc.
Power automate is actually a great tool I wish I lnew about earlier.
i set up my mouse driver to f13+, works in most apps but not some old ones
Actually the new copilot pcs that have the copilot key, The copilot key corresponds to the F24 key
My keyboard has 22*4 macro keys (steelseries apex 350 with 4 profiles) and my mouse has like 11 macro keys (steelseries rival 500), and I usually have trouble finding empty shortcuts to assign to them as macros. You just gave me 12*8 more options including the CRTL, ALT, SHIFT combos.
Imagine if it was possible to connect another keyboard, however the keys on that one, could be remapped to shortcuts in programs like video editors or CAD, photo editing etc. and you just marked the keys of that extra keyboard with the assigned shortcuts.
i finally saw the F13-F24 on an actual keyboard out in the wild
if thio joe add all function keys, it will be useful more to me (this is another person who is talking from his bother chromebook)
For anything else just use the built in on-screen keyboard
thanks