|
|
(6 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
− | The '''$keychar''' identifier is filled during an [[on keydown - mIRC|ON KEYDOWN]], or an [[on keyup - mIRC|ON KEYUP]] event inside of a [[custom windows - mIRC|custom @window]].
| + | {{mirc title|$keychar identifier}}'''$keychar''' is filled during an {{mirc|on keydown}}, {{mirc|on keyup}} or {{mIRC|on char}} event inside of a {{mirc|custom windows|custom @window}}, it returns the characters that was inputted if any. |
| + | |
| + | |
| + | '''/!\''' This identifier is broken by design inside the {{mirc|on keydown}} and {{mirc|on keyup}} events. |
| + | These two events have been trying for years to report AND keypresses, AND resulting characters but their implementation was wrong. |
| + | On newer version of mIRC, this was fixed, {{mirc|on keydown}} and {{mirc|on keyup}} only trigger for keypresses. |
| + | |
| + | To get the resulting character, one should use the {{mirc|on char}} event. $keychar is still filled inside {{mirc|on keydown}} and {{mirc|on keyup}} for backward compatibility purpose. To get an idea, both events will correctly fill $keychar with the character when you press 'A', because it's one keypress corresponding to one character, but the main issue was that some keyboard/language requires you to press two keys to generate a character, sometimes mores. |
| + | |
| + | To sum up, checking $keychar inside {{mirc|on keydown}} and {{mirc|on keyup}} is incorrect and won't work for any language/keyboard, those two events are to be used to look for keypresses only with $keyval, use $keychar inside {{mirc|on char}} only, to get characters. |
| + | |
| | | |
| == Synopsis == | | == Synopsis == |
Line 14: |
Line 24: |
| ON *:KEYDOWN:@myWindow:*: { | | ON *:KEYDOWN:@myWindow:*: { |
| clear @myWindow | | clear @myWindow |
− | drawtext @myWindow 1 3 3 Key value: $iif($keyval,$v1,NA) | + | drawtext @myWindow 1 3 3 Key value: $keyval |
− | drawtext @myWindow 1 3 25 Key character: $iif($keychar,$v1,NA)
| |
| drawtext @myWindow 1 3 47 @myWindow Repeating: $keyrpt | | drawtext @myWindow 1 3 47 @myWindow Repeating: $keyrpt |
| + | } |
| + | on *:char:@mywindow:*:{ |
| + | drawtext @myWindow 1 3 25 Key character: $keychar |
| }</source> | | }</source> |
| | | |
Line 26: |
Line 38: |
| [[File:Keyup event.png|This screenshot shows an example of the ON KEYDOWN event custom example.]] | | [[File:Keyup event.png|This screenshot shows an example of the ON KEYDOWN event custom example.]] |
| | | |
− | Note that this makes use of a [[Picture Windows - mIRC|picture window]], as well as the [[/drawtext command - mIRC|drawtext command]]. These types of [[Picture Windows - mIRC|windows]] and their tools can be very powerful in creating some amazing graphical layouts, as well as mIRC games. | + | Note that this makes use of a {{mirc|picture window}}, as well as the {{mirc|/drawtext|/drawtext command}}. These types of {{mirc|picture windows|windows}} and their tools can be very powerful in creating some amazing graphical layouts, as well as mIRC games. |
− | | |
− | == Compatibility ==
| |
− | Added: mIRC v5.5
| |
− | 08/01/99 - mIRC v5.5
| |
− | Added On: 08/01/99
| |
− | | |
− | == See Also ==
| |
− | * [[custom windows - mIRC|Custom Windows]]
| |
− | * [[/drawtext command - mIRC|/drawtext]]
| |
− | * [[on keyup - mIRC|ON KEYUP]]
| |
− | * [[$keychar identifier - mIRC|$keychar]]
| |
− | * [[$keyrpt identifier - mIRC|$keyrpt]]
| |
| | | |
| == Compatibility == | | == Compatibility == |
− | Added: mIRC v5.8
| + | {{mirc compatibility|5.5}} |
− | 08/01/99 - mIRC v5.5
| |
− | Added On: 05/09/2000
| |
| | | |
| == See Also == | | == See Also == |
− | * [[custom windows - mIRC|Custom Windows]] | + | * {{mirc|on char}} |
− | * [[/drawtext command - mIRC|/drawtext]] | + | * {{mirc|$keyrpt}} |
− | * [[on keyup - mIRC|ON KEYUP]] | + | * {{mirc|$keyval}} |
− | * [[$keyval identifier - mIRC|$keyval]] | + | * [[List of identifiers - mIRC]] |
− | * [[$keyrpt identifier - mIRC|$keyrpt]]
| + | {{mIRC identifier list}} |
| + | [[Category:mIRC identifiers|keychar]] |
Latest revision as of 14:36, 12 August 2022
$keychar is filled during an on keydown, on keyup or on char event inside of a custom @window, it returns the characters that was inputted if any.
/!\ This identifier is broken by design inside the on keydown and on keyup events.
These two events have been trying for years to report AND keypresses, AND resulting characters but their implementation was wrong.
On newer version of mIRC, this was fixed, on keydown and on keyup only trigger for keypresses.
To get the resulting character, one should use the on char event. $keychar is still filled inside on keydown and on keyup for backward compatibility purpose. To get an idea, both events will correctly fill $keychar with the character when you press 'A', because it's one keypress corresponding to one character, but the main issue was that some keyboard/language requires you to press two keys to generate a character, sometimes mores.
To sum up, checking $keychar inside on keydown and on keyup is incorrect and won't work for any language/keyboard, those two events are to be used to look for keypresses only with $keyval, use $keychar inside on char only, to get characters.
Synopsis[edit]
$keychar
Parameters[edit]
None
Example[edit]
Create an alias that launches a custom, picture window which listens for key presses and displays the key value pressed, the key character pressed, and if it is repeating:
alias keyDownTest {
window -p $+ $iif($window(@myWindow),ra) @myWindow 550 300 250 105
}
ON *:KEYDOWN:@myWindow:*: {
clear @myWindow
drawtext @myWindow 1 3 3 Key value: $keyval
drawtext @myWindow 1 3 47 @myWindow Repeating: $keyrpt
}
on *:char:@mywindow:*:{
drawtext @myWindow 1 3 25 Key character: $keychar
}
The following command can now be typed into any mIRC command prompt:
/keyDownTest
Below is an image reflecting what this example will look like:
Note that this makes use of a picture window, as well as the /drawtext command. These types of windows and their tools can be very powerful in creating some amazing graphical layouts, as well as mIRC games.
Compatibility[edit]
Added: mIRC v5.5
Added on: 08 Jan 1999
Note: Unless otherwise stated, this was the date of original functionality.
Further enhancements may have been made in later versions.
See Also[edit]
v · d · e mIRC identifier list
$
$$, $, $0, $1-, $!, $&, $*, $+, $++, $?
A
$abook, $abs, $acos, $active, $activecid, $activewid, $adate, $address, $addtok, $addtokcs, $agent, $agentname, $agentstat, $agentver, $alias, $and, $anick, $ansi2mirc, $aop, $appactive, $appstate, $asc, $asctime, $asin, $atan, $atan2, $auto, $avoice, $away, $awaymsg, $awaytime
|
B
$banlist, $banmask, $base, $beta, $bfind, $bindip, $bitoff, $biton, $bits, $bnick, $bvar, $bytes
C
$calc, $caller, $cancel, $cb, $cd, $ceil, $chan, $chanmodes, $channel, $chantypes, $chat, $chr, $cid, $clevel, $click, $cmdbox, $cmdline, $cnick, $color, $colour, $com, $comcall, $comchan, $comchar, $comerr, $compact, $compress, $comval, $cos, $cosh, $count, $countcs, $cr, $crc, $creq, $crlf, $ctime, $ctimer, $ctrlenter
|
D
$date, $day, $daylight, $dbuh, $dbuw, $dccignore, $dccport, $dde, $ddename, $debug, $decode, $decompress, $deltok, $devent, $dialog, $did, $didreg, $didtok, $didwm, $dir, $disk, $dlevel, $dll, $dllcall, $dname, $dns, $donotdisturb, $dqwindow, $duration
E
$ebeeps, $editbox, $email, $emailaddr, $encode, $envvar, $error, $eval, $evalnext, $event, $eventid, $eventparms, $exists, $exiting
|
F
$false, $feof, $ferr, $fgetc, $file, $filename, $filtered, $find, $finddir, $finddirn, $findfile, $findfilen, $findtok, $findtokcs, $fline, $flinen, $floor, $font, $fopen, $fread, $fromeditbox, $fserv, $fserve, $fulladdress, $fulldate, $fullname, $fullscreen
|
G
$get, $getdir, $getdot, $gettok, $gmt, $group
H
$halted, $hash, $height, $hfile, $hfind, $hget, $highlight, $hmac $hmatch, $hnick, $host, $hotline, $hotlinepos, $hotlink, $hotp, $hregex, $hypot
|
I
$iaddress, $ial, $ialchan, $ibl, $idle, $iel, $ifmatch, $ifmatch2, $ignore, $iif, $iil, $inellipse, $ini, $initopic, $inmidi, $inmode, $inmp3, $inpaste, $inpoly, $input, $inrect, $inroundrect, $insong, $insongpause, $instok, $int, $intersect, $inwave, $inwho, $ip, $iptype, $iql, $isadmin, $isalias, $isbit, $isdde, $isdir, $isfile, $isid, $islower, $istok, $istokcs, $isupper, $isutf
|
K
$keychar, $keyrpt, $keyval, $knick
L
$lactive, $lactivecid, $lactivewid, $left, $leftwin, $leftwincid, $leftwinwid, $len, $level, $lf, $line, $lines, $link, $lock, $locked, $lof, $log, $log10, $logdir, $logstamp, $logstampfmt, $longfn, $longip, $lower, $ltimer
|
M
$maddress, $mask, $matchkey, $matchtok, $matchtokcs, $maxlenl, $maxlenm, $maxlens, $md5, $me, $menu, $menubar, $menucontext, $menutype, $mid, $mididir, $mircdir, $mircexe, $mircini, $mkfn, $mklogfn, $mknickfn, $mnick, $mode, $modefirst, $modelast, $modespl, $mouse, $mousecx, $mousecy, $mousedx, $mousedy, $mousekey, $mouselb, $mousex, $mousey, $mousewin, $mp3, $mp3dir, $msfile, $msgstamp, $msgtags
|
N
$N, $naddress, $network, $newnick, $nhnick, $nick, $nickmode, $no, $nofile, $nopath, $nopnick, $noqt, $not, $notags, $notify, $null, $numeric, $numtok, $nvnick
O
$ok, $online, $onlineserver, $onlinetotal $onpoly, $opnick, $or, $ord, $os
|
P
$parmN, $parms, $parseline, $parsetype, $parseutf, $passivedcc, $pi, $pic, $play, $pnick, $portable, $portfree, $pos, $poscs, $prefix, $prop, $protect, $puttok
Q
$qt, $query
R
$r, $raddress, $rand, $rands, $rawbytes, $rawmsg, $read, $readini, $readn, $regbr, $regerrstr, $regex, $regml, $regmlex, $regsub, $regsubex, $remote, $remove, $removecs, $remtok, $remtokcs, $replace, $replacecs, $replacex, $replacexcs, $reptok, $reptokcs, $result, $rgb, $right, $rnick, $round
|
S
$samepath, $scid, $scon, $script, $scriptdir, $scriptline, $sdir, $send, $server, $serverip, $servertarget, $sfile, $sha1, $sha256, $sha384, $sha512, $shortfn, $show, $signal, $sin, $sinh, $site, $sline, $snick, $snicks, $snotify, $sock, $sockbr, $sockerr, $sockname, $sorttok, $sorttokcs, $sound, $speak, $sqrt, $sreq, $ssl, $sslcertsha1, $sslcertsha256, $sslcertvalid, $ssldll, $ssllibdll, $sslready, $sslversion, $starting, $status, $str, $strip, $stripped, $style, $submenu, $switchbar, $sysdir
|
T
$tan, $tanh, $target, $tempfn, $ticks, $time, $timeout, $timer, $timestamp, $timestampfmt, $timezone, $tip, $tips, $titlebar, $token, $toolbar, $topic, $totp, $treebar, $true, $trust
U
$ulevel, $ulist, $unsafe, $upper, $uptime, $url, $usermode, $utfdecode, $utfencode
V
$v1, $v2, $var, $vc, $vcmd, $vcmdstat, $vcmdver, $version, $vnick, $vol
|
W
$wavedir, $wid, $width, $wildsite, $wildtok, $wildtokcs, $window, $wrap
|
X
$xor
Y
$yes
|
Z
$zip
=
=$nick
|