Single-Instance
TECO
4 hours ago
Hi Khaled, I would like to suggest a feature for a future release: a native "Single-Instance" option in the mIRC settings.
Currently, if mIRC is already running and a user clicks the mIRC shortcut in the Windows 11 Start Menu, it automatically launches a new, separate copy/process of the application. It would be extremely helpful to have an option (e.g., under mIRC Options > Display > Options) like "Allow only one instance of mIRC".
When enabled, if a user tries to launch mIRC again while it's already running, the new process should instantly detect the existing one, pass focus to it (maximizing/bringing the active mIRC window to the front), and then gracefully exit without opening a duplicate window.
Modern operating systems make it very difficult to block duplicates via command-line shortcuts or scripts without flashing terminal windows, so having this built natively into the executable would be the perfect solution for many users.
Thank you for considering this request!
Best regards, TECO
0
9
Read More
|
|
Re: sockopen
Marzaliza
11 hours ago
try this..
alias test { sockopen -e fb www.kicker.de 443 }
ON 1:sockopen:fb: {
sockwrite -n $sockname GET /bundesliga/spieltag/ HTTP/1.1
sockwrite -n $sockname Host: www.kicker.de
sockwrite -n $sockname User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:158.0) Gecko/20100101 Firefox/158.0
sockwrite -n $sockname Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
sockwrite -n $sockname Accept-Language: en-US,en;q=0.9
sockwrite -n $sockname Accept-Encoding: text
sockwrite -n $sockname Cookie: %cookies
sockwrite -n $sockname $crlf
}
ON 1:sockread:fb: {
sockread %temp
tokenize 32 %temp
if ($1 = set-cookie:) { inc -u5 %d | if (%d = 1) { set %cookies $2- | sockclose $sockname | test } }
echo -s : $1-
}
1
740
Read More
|
|
mIRC beta
Khaled
10/10/26 10:50 AM
The latest beta can be downloaded here and includes the following changes: Beta v7.85.1319 changes: 1.Item 6, fixed https://forums.mirc.com/ubbthreads.php/topics/2740492.Fixed https://forums.mirc.com/ubbthreads.php/topics/2740513.Item 9, updated ADA IDNA library. This version required a little more patching than the previous one due to use of C++20 <bit> <span> and <range>. Beta v7.85.1267 changes: 1.Item 1, added. 2.Item 2, added. 3.Item 3, fixed. 4.Item 4, fixed https://forums.mirc.com/ubbthreads.php/topics/2740155.Item 5, added. 6.Item 6, fixed https://forums.mirc.com/ubbthreads.php/topics/2740257.Item 7, updated. 8.Item 8, fixed https://forums.mirc.com/ubbthreads.php/topics/2740329.Item 9, updated. 10.Item 9, updated. 11.Item 9, updated. 12.Item 10, added. 13.Added experimental support for enabling space preservation in the script parser. The script parser has always stripped out excess spaces when parsing scripts. This is implicitly expected in all parser-related functions, commands, identifiers, etc. I've been experimenting with different approaches to see if I can come up with something usable with these constraints: 1) No changes to existing parser code to avoid breaking backward compatibility. 2) Add space preservation code that can be enabled/disabled and works around existing parser code. 3) Scripters will be responsible for ensuring command/identifier parameters are stripped of extra spaces where necessary. A /spaces [on|off] command has been added that changes the way the parser splits up a string into words by preserving spaces around them. You can use $spaces to check if the feature is on/off. Changes: 1.Added per server settings to toggle various IRCv3 options. Extended /server to support these with -ircv3 echo-message no-implicit-names and server-time. The server-time option is enabled by default. An option can be disabled by prefixing it with a ! character. 2.Added $spaces(command, parms) identifier that reproduces behaviour of spaces.dll in the on INPUT event. 3.Fixed IRCv3 +reply handling bug where the channel/query reply state was not being reset. 4.Fixed timestamp bug where timestamps were not being displayed for various events, such as CTCP messages. 5.Added $trim(text,lmr) identifer that removes excess spaces from the left, middle, and right of text. 6.Fixed color palette dialog not allowing digits to be entered in editboxes when dialog size is scaled. 7.Updated CA root certificates cacert.pem file. 8.Fixed Options dialog bug when parsing ws:/wss: prefixed sockets when servers/sasl passwords are specified. 9.Updated libraries to OpenSSL v3.5.9, UTF8-CPP v4.2.1, LibZip v1.12, and ADA IDNA v0.7.0. 10.Added $lastecho to return global result of last /echo command.
1
473,664
Read More
|
|
Re: typing space using font Terminal is not monospaced
hundreAd
09/10/26 11:56 AM
Windows 10 [Version 10.0.19043.928]
EDIT: i have just tested in vm: new installation of 21h1; no languages except english new installation of mirc bug reproduced in 7.85
the bug is only when typing a space, i.e. changing from terminal 9 to terminal 14 will now render an already-typed bugged text correctly (but a new space will be bugged again)
2
686
Read More
|
|
Loggings in UTC
Doomstars
05/10/26 08:50 AM
Unless I am overlooking something, I don't think it is currently possible to log in UTC time. I am aware of echo -tN to echo in different offsets, but this isn't about that.
For those of us who want to remain timezone neutral in log files, I am proposing a box to record in UTC. UTC offset may be nice, but not asking for that. Simply a box to record in UTC instead of the local timezone.
0
480
Read More
|
|
Re: mIRC UI too small
Khaled
03/10/26 05:26 PM
Well, I suppose I could try working my way back to Windows 3.1 support but I'm not sure If the number of users would really justify it :-)
7
4,387
Read More
|
|
Re: Editable Language Files
CaPaCuL
20/09/26 05:14 PM
Hello Khaled and the mIRC team, I would like to submit my Turkish (tr-TR) translation for mIRC 7.85 for review and possible inclusion on the official language files page. I have tested the language DLL in mIRC. The final /langdll -d comparison against my mIRC 7.85 executable reports: Changed:2926 Deleted:0 Added:0 Warnings:0 The package includes the compiled mirc785-tr-TR.dll, the translated RC source, and the complete comparison report. Download: Google Drive (Public Access)Script-defined Popups menus are separate and are not included in this package. Please let me know if any wording, layout, or technical adjustments are needed. I would be happy to revise the translation following your review. If the translation is published, please credit me using my nickname, CaPaCuL. Thank you for your time and for mIRC. Best regards, CaPaCuL
42
47,696
Read More
|
|
mIRC 7.85 released
Khaled
09/09/26 04:34 PM
Dear mIRC User, mIRC v7.85 has been released today. This is a small update that adds features and addresses a number of issues reported by users since the last release. It also includes bug and security fixes for various libraries, such as OpenSSL. Changes in this version include: Added support for WebSocket connections. Updated all dialogs to use the default Windows GUI font under Windows 10/11. Added support for Windows 10/11 Text Size scaling/settings for the GUI and dialogs. Changed STS support to allow previously accepted invalid certificate. Added support for IRCv3 extban/accountextban, context-chan, and +reply tokens/events. Fixed custom dialog optional text triggering editbox events. Fixed display/handling of numerics relating to whois, away, and ban list. Updated libraries to OpenSSL v3.5.8, TagLib v2.3.2, and UTF8-CPP v4.2.0. Updated CA root certificates cacert.pem file. How to upgrade?mIRC is distributed in an installer that installs mIRC on your computer for you. Simply download and run the installer from the download page on the mIRC website. Follow the instructions the installer gives to you. When upgrading all your old settings and scripts will stay as they were, if you want that. Read the questions the installer asks with care and nothing can go wrong. You will be chatting with the new mIRC in no time. If you get stuck or if you want to find out more about a certain feature, just click on a Help button or browse the Help file and you should find lots of hints to help you out. Where to download?As always, the latest version of mIRC can be downloaded from the download page on the mIRC website. Registering mIRCAs you know, mIRC can be downloaded freely and evaluated for 30 days. If you find that you enjoy using mIRC, it would be great and much appreciated if you registered your copy. This licenses you to use your copy of mIRC and helps to support our continued work on mIRC. You can find out how to register here. Full list of Fixes, Changes and Additions.For a more detailed list of recent changes, please see the whatsnew.txt file. You will need to read through the help file to learn more about these changes and their impact. Some changes are obvious, some need getting used to - please take your time to play with them and see how they work. May we invite you to use these forums for all questions you might have? The forums offer great help with everything related to mIRC! Thanks for using mIRC, have fun on IRC!
0
2,083
Read More
|
|
Re: $com issue
Ook2
07/09/26 10:45 PM
I have done some more research into this & it seems to be all com's fault, so nothing mirc can do about it  I also found the script issue, the .timer 1 0 .comclose line was causing the issue when the commands were used quickly Fixed version....
; $1- = item to execute & args
; or if $prop is set
; $1 = com object returned by exec()
; $prop = Terminate or pid or Status or eos or Line or ReadLine or WriteLine or debug
alias exec {
if ($0 == 0) return
if ($prop) {
if (!$com($1)) return
if ($prop == Terminate) noop $com($1,Terminate,1)
elseif ($prop == pid) noop $com($1,ProcessID,2)
elseif ($prop == Status) noop $com($1,Status,2)
elseif ($prop == EOS) {
; BUG: causes mirc to freeze when used on a running task when it should return $true! Unfreezes on task exit.
var %exec_stdout exec_stdout $+ $ticks
if ((!$com($1,StdOut,2,dispatch* %exec_stdout)) || ($comerr)) return -1
if ((!$com(%exec_stdout,AtEndOfStream,2)) || ($comerr)) var %res = -2
else var %res = $com(%exec_stdout).result
.comclose %exec_stdout
return %res
}
elseif ($prop == ReadLine) {
; BUG: causes mirc to freeze when used on a running task when it should return 0! Unfreezes on task exit.
; NB: results can be an empty line, 1 used to make it clear this is a good result
var %exec_stdout exec_stdout $+ $ticks
if ((!$com($1,StdOut,2,dispatch* %exec_stdout)) || ($comerr)) return -1
if ((!$com(%exec_stdout,AtEndOfStream,2)) || ($comerr)) var %res = -2
elseif ($com(%exec_stdout).result) var %res = 0
elseif ((!$com(%exec_stdout,ReadLine,1)) || ($comerr)) var %res -3
else var %res = 1 $com(%exec_stdout).result
.comclose %exec_stdout
returnex %res
}
elseif ($prop == WriteLine) {
var %exec_stdin exec_stdout $+ $ticks
if ((!$com($1,StdIn,2,dispatch* %exec_stdin)) || ($comerr)) return -1
if ((!$com(%exec_stdin,WriteLine,1,bstr,$2)) || ($comerr)) var %res = -3
else var %res = 1
.comclose %exec_stdin
return %res
}
elseif ($prop == Line) {
var %exec_stdout exec_stdout $+ $ticks
if ((!$com($1,StdOut,2,dispatch* %exec_stdout)) || ($comerr)) return -1
if ((!$com(%exec_stdout,Line,2)) || ($comerr)) var %res = -2
else var %res = $com(%exec_stdout).result
.comclose %exec_stdout
return %res
}
elseif ($prop == debug) {
echo -s start
var %exec_stdout exec_stdout $+ $ticks
if ((!$com($1,StdOut,2,dispatch* %exec_stdout)) || ($comerr)) return -1
echo -s got stdout
if ((!$com(%exec_stdout,AtEndOfStream,2)) || ($comerr)) var %res = -2
else {
echo -s got AtEndOfStream
var %res = $com(%exec_stdout).result
}
echo -s ok
.comclose %exec_stdout
return %res
}
else return
return $com($1).result
}
var %% = s $+ $ticks, %exec_com = $+(%%,_exec), %exec_stdout = %exec_com $+ _stdout.txt
if (!$com(%%)) .comopen %% wscript.shell
if ($comerr) return
.comclose %% $com(%%,exec,1,bstr,$1-,dispatch* %exec_com)
return %exec_com
}
3
5,055
Read More
|
|
Remember $away when reconnecting to znc.
KindOne
25/08/26 07:25 AM
Currently mIRC loses $away response '$true' when you disconnect/connect to znc. I am suggesting that mIRC read the '306' and set the '$away' into '$true' when reconnect to ZNC. Not sure on how to deal with $awaymsg. ZNC debug log:
[2026-08-25 02:57:21] (KindOne/foobar) CLI -> ZNC [AWAY :I am away]
[2026-08-25 02:57:21] (KindOne/foobar) ZNC -> IRC [AWAY :I am away]
[2026-08-25 02:57:21] (KindOne/foobar) IRC -> ZNC [:kindone.foobar.net 306 KindOne :You have been marked as being away]
[2026-08-25 02:57:21] (KindOne/foobar) ZNC -> CLI [:kindone.foobar.net 306 KindOne :You have been marked as being away]
[2026-08-25 02:57:26] (KindOne/foobar) CLI -> ZNC [QUIT :]
[2026-08-25 02:57:26] USR::KindOne == Disconnected()
// Snip... mIRC Disconnect/Connect to znc
[2026-08-25 02:57:29] (KindOne/foobar) ZNC -> CLI [:kindone.foobar.net 376 KindOne :End of /MOTD command.]
[2026-08-25 02:57:29] (KindOne/foobar) ZNC -> CLI [:KindOne!KindOne@Clk-35EC1D3E MODE KindOne :+iwx]
[2026-08-25 02:57:29] (KindOne/foobar) ZNC -> CLI [:irc.znc.in 306 KindOne :You have been marked as being away]
// ^^^ Feature suggestion: Set '$away' as '$true' here in mIRC
// Snip ... CAP REQ / CAP ACK
[2026-08-25 02:57:29] (KindOne/foobar) CLI -> ZNC [PROTOCTL NAMESX]
[2026-08-25 02:57:29] (KindOne/foobar) CLI -> ZNC [PROTOCTL UHNAMES]
[2026-08-25 02:57:33] (KindOne/foobar) CLI -> ZNC [WHOIS KindOne]
[2026-08-25 02:57:33] (KindOne/foobar) ZNC -> IRC [WHOIS KindOne]
// Snip... whois output
[2026-08-25 02:57:33] (KindOne/foobar) IRC -> ZNC [:kindone.foobar.net 301 KindOne KindOne :I am away]
[2026-08-25 02:57:33] (KindOne/foobar) ZNC -> CLI [:kindone.foobar.net 301 KindOne KindOne :I am away]
// Snip... whois output
[2026-08-25 02:57:33] (KindOne/foobar) IRC -> ZNC [:kindone.foobar.net 318 KindOne KindOne :End of /WHOIS list.]
[2026-08-25 02:57:33] (KindOne/foobar) ZNC -> CLI [:kindone.foobar.net 318 KindOne KindOne :End of /WHOIS list.]
How to replicate:
; /whois myself
raw 301:*:{
if (($2 == $me) && (!$away)) {
echo -ag *** This should not echo
}
}
1, Connect to znc and have znc connected to a network 2, /away 3, Disconnect from znc 4, Connect to znc and /whois 5, See "*** This should not echo"
0
1,303
Read More
|
|
Re: Writing C Code, DCC's Always Fail Midway
Khaled
16/08/26 11:47 AM
The DCC Send/Get code has been stable for about a decade or two, so I haven't looked at it in a long time. If I remember correctly, and someone please let know if I've got this wrong, mIRC sends/expects ACKs of the number of bytes sent/received every so often. Is your code sending ACKs? If not, that could be the issue. Implementations can vary across clients, some of which may not care about sending/receiving ACKs.
1
952
Read More
|
|
|
|