mIRC Home    About    Download    Register    News    Help

Active Threads | Unanswered Past 24 hours | Past 48 hours | Past Week | Past Month | Past Year
Bug Reports Jump to new posts
mIRC beta Khaled Yesterday at 05:15 PM
The latest beta can be downloaded here and includes the following changes:

Quote
Beta v7.78.8085 changes:
1.Item 10, the treebar +/- boxes were not using the right color
when in dark mode.

Changed the colors of separators on the switchbar which were
too light in dark mode.

Small change to how Treebar light/dark mode switch is applied
that affects the scrollbar, related to item 2 below.

2.Item 20, changed the following. These only apply when running
under Wine.

Changed how the Treebar is updated under Wine as the light/dark
code was causing Wine to use the wrong background color.

Changed how SysLink controls are handled in the About dialog
to get around a Wine bug that deletes returned brush handles in
the WM_CTLCOLORSTATIC message. mIRC will now recreate these
brushes on-the-fly if it notices that they have been deleted.

Changed how SysLink controls are aligned in the About dialog
to get around Wine returning the Windows version as 10 but only
supporting an older comctl32.dll that does not support LWS_RIGHT.

Changed how Arnie key presses are handled in the About dialog
as this was not working under Wine.

Changed File menu Connect/Disconnect menu item strings, which use
the same &c mnemonic, to only contain the mnemonic when enabled,
since Wine always matches the first mnemonic menu item even if
disabled and does not send a window message.

Beta v7.78.7856 changes:
1.Item 15, changed as previous method was not working as expected.

This is related to the maximum memory that a Win32 application can
allocate. Technically, a Win32 application can allocate up to 2G.
In practice, it is closer to 1.5G - 1.7G. In my tests, allocating
more than 1.3G leads to issues with background DLLs, libraries,
processes, threads, etc. loaded into mIRC's address space that are
then unable to allocate memory, which leads to a crash and/or
unpredictable behaviour.

In this beta, the Log Viewer will check mIRC's working set memory
usage while loading a file and if allocated memory goes beyond
1.2G, it will halt, free all allocated memory, and load the file
using your external editor.

Beta v7.78.7266 changes:
1.Item 10, fixed https://forums.mirc.com/ubbthreads.php/topics/273076
Also fixed the issue with the flickering group box when resizing
the dialog which has been around for a long time.
2.Item 18, updated.
3.Item 10, fixed https://forums.mirc.com/ubbthreads.php/topics/273077
4.Item 19, fixed.

Beta v7.78.7125 changes:
1.Item 10, fixed https://forums.mirc.com/ubbthreads.php/topics/273053
I have implemented support for this in three different ways. The
first beta used WH_CALLWNDPROC which results in a serious slow-down
on Windows 10/11. The second method, using WH_CBT, works well
without any slowdown. For the third method, no hooks are used and
all windows/dialogs need to call the dark mode function directly.
This is probably the fastest method but the least flexible. This
beta uses the WH_CBT method.
2.Item 10, added $darkmode identifier.
3.Fixed https://forums.mirc.com/ubbthreads.php/topics/273054
This crash was due to having a DCC Send/Get window maximized when
closing the window. The issue was not related to dark mode code
but another change relating to how windows are closed.
4.Item 10, fixed DCC Send/Get window buttons not being themed
correctly.
5.Various other minor tweaks/fixes.

Beta v7.78.6786 changes:
1.Item 1, fixed.
2.Item 2, fixed.
3.Item 3, added. Supports animated images and returns $pic().frames
and .delay. Also suported by /drawsave -vw and /drawpic.
4.Item 4, https://forums.mirc.com/ubbthreads.php/topics/272936
5.Item 5, added.
6.Item 6, changed.
Re-arranged sections of the resource file to make CrowdIn import
and export formats more manageable.
7.Item 7, fixed https://forums.mirc.com/ubbthreads.php/topics/272966
The channels list window and the add channel dialog now use
the same code to parse the [+modes] parameter.
8.Item 8, fixed https://forums.mirc.com/ubbthreads.php/topics/272973
9.Item 9, fixed https://forums.mirc.com/ubbthreads.php/topics/272973
10.Item 10, added. Experimental.

Windows 10/11 have minimal support for dark mode for Win32 applications
and where there is support, it is generally incomplete and undocumented.
This feature required a huge amount of experimentation and tweaking.

Comments/observations/notes:

1) I have looked into dark mode support on and off over the last few
years and always came away unconvinced and unwilling to add support
for it because it looked like a mess. Last month, I looked into it
again, and it was still a mess. But I found more discussions and code
examples by other developers, including Notepad++'s dark mode
implementation, so I decided to tinker with it again. This tinkering
snowballed into full support.

2) Dark mode is only supported on the latest, updated versions of
Windows 10 and 11.

3) When Windows is in dark mode, many applications, eg. Explorer,
flash a blinding white when they first open before going dark. I
have tried to implement dark mode support in mIRC in a way that
prevents white flashes. However, there are some places where mIRC has
no control over this, eg. if you click on the Recieved Files menu
item, it will open up an Explorer window - this will flash white
initially since Explorer is a Windows system application. The same
applies to popup menus and other controls. The reason for this is
that Windows uses a default white background color for windows and
controls.

4) Custom coding/drawing was needed for many controls in dark mode. I
usually avoid implementing custom controls as it is better for users to
use standard, native controls. However, there was no way of creating a
consistent GUI in dark mode without this. In the case of controls such
as checkboxes, radio buttons, group boxes, etc. I had to implement my own
versions for dark mode. Some dialogs needed to be redesigned, eg. the
Font dialog, which is a standard Windows system dialog, displayed white
controls even when set into dark mode. The borders of various controls
had to be custom drawn. And so on.

5) There were so many little issues that required far too much time to
resolve, eg. if you open the file dialog in Notepad++ and then change
Windows dark/light mode, a white box will appear around the filename
combobox editbox in dark mode. I found a way to resolve this in mIRC
but it is just one of many dark/light mode anomolies.

6) Windows 10/11 add white scroll buttons to the top and bottom of long
popup menus. In Windows dark mode, all menu parts become dark... except
for these white scroll buttons. I implemented a hack to fix this,
but, as with a lot of the dark mode code, it feels brittle and wrong.

7) mIRC will set all dialogs that it creates to dark mode. This
includes scripted custom dialogs. I am aware that some users use DLLs
that add custom controls. It is unlikely that I can add dark mode
and/or custom drawing for controls that mIRC itself does not normally
use.

8) All black/white icons/cursors/images had to be updated to use
reverse colors for dark mode. Changes to icons/cursors/bitmaps
were made where necessary. All colored icons have been left as they
are. All GUI elements had their colors tweaked for dark mode, eg.
switchbar, treebar, tool tips, tray tips, etc.

9) In dark mode, mIRC's switchbar/toolbar/etc. will use dark, shaded
buttons. On Windows 11, these are rounded, as are checkboxes, group
boxes, etc.

10) The dark mode colors mIRC uses for dialogs and controls are based
on those that Windows 10/11 use when in dark mode. I initially started
with some standard dark mode colors and gradually modified them as
the implementation progressed to get some consistency.

11) The default Monochrome color scheme in mIRC had an incorrect
default light color for the MDI background. mIRC now fixes this
automatically and updates mirc.ini so that it uses a dark color.

12) mIRC will remember the color scheme you are using when in Windows
dark/light mode and will switch to it automatically. I had originally
intended to add a new dark mode scheme to the Colors dialog but the
Monochrome scheme already suits this purpose, so it is used as the
default dark mode scheme.

13) mIRC will always follow the current Windows dark/light setting. At
one point, I added an independent dark/light setting for mIRC. This
worked well except when interacting with system dialogs, which base
the colors of their controls on a combination of the Windows dark/light
mode and the calling application dark/light mode. This results in
a dialog that uses a mix of dark/light controls, which I could not
get around.

14) When mIRC is in full screen mode, Windows draws the menubar in white.
This is an MDI-legacy issue and there is no way around it. I decided to
change how full screen mode works so that it always shows a titlebar.
A titlebar makes Windows display menus in the correct dark/light color,
allows you to see which window you are using, eg. status, channel,
chat, etc., and gives you access to right-click popups on the titlebar,
while still being in full screen mode.

I have tested this feature as much as I can but it involved so much
work and code, for so many interface elements and features, that it
really needs a good amount of testing. Please let me know if you spot
any issues.

11.Item 11, fixed https://forums.mirc.com/ubbthreads.php/topics/272984
12.Item 12, fixed https://forums.mirc.com/ubbthreads.php/topics/272985
13.Item 13, fixed.
14.Item 14, fixed.
15.Item 15, changed.
16.Item 16, changed. When I originally added the scroll buttons to the
vertical switchbar, I chose to not use a full scrollbar as I thought
it would be intrusive. The scroll buttons just serve as indicators
that there are more windows and you can then scroll with the mouse
wheel. But it still felt wrong to not use a standard vertical
scrollbar. I recently experimented with adding a full standard
vertical scrollbar and, and as I thought, it didn't feel right. So
I have improved the scroll buttons a little by not allowing them to
disappear when you are at the top/bottom, which always felt a little
too wrong. They now remain visible but appear disabled if you can't
scroll up/down.
17.Item 17, updated.
18.Changed the way the ball bounces in the About dialog to make it more
realistic. I'd say this change alone is worth the upgrade.

Changes:
1.Fixed buttons with icons not displaying with the correct Windows
theme in some contexts.
2.Fixed control codes being stripped out of displayed lines in
some events when the logging strip codes option is enabled.
3.Added support for loading WebP image files using the Libwebp
v1.5.0 library.
4.Updated channel central to display year for ban list entries.
Also extended $ibl().date to include the year.
5.Added Line shading option to Display/Options dialog that shades
alternate lines. Also added a system menu Shading option for
per-window settings.
6.Updated various resources strings to improve support for
translations.
7.Fixed add channel dialog bug that was including the modes from
the channel list item in the channel description.
8.Fixed conversion of [dirs]/getdir into [extensions].
9.Fixed status window system menu not having a default logging
menu item that matches the setting in the Logging dialog.
10.Added support for dark mode on Windows 10/11.

mIRC now follows the current Windows dark/light setting for
all windows/dialogs/interface elements.

mIRC will remember the color scheme you are using when in
Windows dark/light mode and will switch to it automatically.

Added $darkmode identifier to return Windows light/dark state.

11.Fixed empty perform list entry bug that was causing a crash
when the options dialog was opened.
12.Fixed while loop bug caused by a previous change.
13.Fixed channel central key editbox not hiding the text when
you open the dialog and you do not have ops.
14.Fixed Options/DCC dialog radio buttons not working correctly.
15.Fixed Log View dialog crash when loading large log files.
16.Changed Switchbar scroll buttons so that they are now visible
and/or disabled when necessary.
17.Updated CA root certificates cacert.pem file.
18.Updated LunaSVG library to v3.1.0.
19.Fixed tooltips bug that caused tooltips to flicker when the mouse
was moved over a button.
20.Changed how some features work under Wine to get around various
Wine API/display/behaviour issues.
1 422,747 Read More
Scripts & Popups Jump to new posts
Re: need help with a script D: Epic 19/01/25 10:23 PM
Try using this:
Code
on *:TEXT:!word:#: msg $chan $read(file.txt,nt)
2 71 Read More
Scripts & Popups Jump to new posts
Re: auto bans removal on ping Simo 17/01/25 03:09 PM
Thank you Talon and yes you are right i didn't consider multiple requests of ban list from the ircd might result in booting off the server due to commands flood/abuse, I'll try the code you posted and let you how goes.
2 138 Read More
Feature Suggestions Jump to new posts
extend $window().pbpercent Ook 16/01/25 09:16 PM
It would be nice if $window().pbstate & $window().pbpercent was extended to support dcc windows via:
Code
 $window(@ $+ $send(1).wid).pbstate
 $window(@ $+ $send(1).wid).pbpercent
 $window(@ $+ $get(1).wid).pbstate
 $window(@ $+ $get(1).wid).pbpercent

The code i'm using already has the wid & this would save me having to figure out which wid is a which dcc.
0 50 Read More
Bug Reports Jump to new posts
Re: Window-focus every 30th minutes Khaled 16/01/25 10:23 AM
Just a quick update: rob444 was kind enough to test out a beta and, at this point, it looks like another application/driver is the cause of the window-switching issue. If you track down the cause, please let us know :-)
7 539 Read More
Scripts & Popups Jump to new posts
Re: Help with this script please, I can't Mairel 15/01/25 05:31 PM
It's definitely helpful for me, I'll definitely try it, thanks!
5 509 Read More
Scripts & Popups Jump to new posts
channels list XGamerAMD 11/01/25 11:42 PM
8 Autojoin=#chaco-corrientes,#paranachat

alias con {
var %i = 1
while (%i <= 15) {
echo -a %i $read(config.ini,%i)
inc %i
}
}

i want add some chanel to autojoin
how i do it?

please help
0 106 Read More
Feature Suggestions Jump to new posts
Change thickness of the nicklist divider Epic 11/01/25 04:25 PM
When changing the "Light theme" to a "Dark theme", becomes much more visible the difference in the thickness of the channel window divider between the nicklist, and the thickness of the channel window divider between the editbox. Perfectionists will experience daily pain and suffering.

I propose to equalize them by reducing the thickness of the divider between the channel window and the nicklist so that it is identical to the thickness of the divider between the channel window and the editbox.


Visual example:

    [Linked Image from i.ibb.co]
0 160 Read More
Bug Reports Jump to new posts
Re: Excessive scrollbars in nicklist Epic 11/01/25 03:24 PM
Fixed in mIRC v7.78.7266. Thanks.
2 304 Read More
General Discussion Jump to new posts
Re: Does mIRC have an internal user connect time KindOne 11/01/25 11:32 AM
I think you want something like this:

Code
$calc($ctime - $nick(#channel,KindOne).idle)

The .idle property returns the number of seconds since a user last sent a message in the channel. This starts at 0 when they join.
1 180 Read More
Scripts & Popups Jump to new posts
Re: Time calculation always wrong Incorrigo 09/01/25 11:39 PM
i didn't look at the link you got your code from but this should work

Code
alias endofyear {
  var %newyear $ctime($calc($asctime(yyyy) + 1) $+ /01/01 00:00:00)
  echo -ag $duration($calc(%newyear - $ctime))
}

hope this helps
5 489 Read More
Scripts & Popups Jump to new posts
Re: +draft/reply=mIRC Incorrigo 09/01/25 10:41 PM
dear mIRC

i was asked to do a stand alone version of this by someone and i thought i would post it here so you wouldn't need to go through a load of github crap to get to the actual file,

there are some improvements i have made that were also worth including as an improvement from the OP link i gave you

  • your replies will use both +draft/reply and +reply
  • query / channel replies will still show after window has been closed / re-opened
  • query windows will open minimised so replies don't end up in the wrong conversation
  • both +draft/reply and +reply are supported
  • if another client uses both these tags, only one will be processed to avoid duplication
  • only privmsg is cached so notices won't let services - for instance - fill your cache with unusable crap


i hope you like my improved replies system, and if my code is correct it should support incoming and outgoing with every other client that has implemented reply tags already. many servers will move to +reply without the +draft/ and when it does this version should stand up on its own and survive the change

here is the link: reply_mirc2.rar

if you extract the files to the right place then it should stand alone work on its own. i included aliases that were not declared in the script file so that it should not need to add anything for it work properly

kind regards

westid
2 742 Read More
Bug Reports Jump to new posts
Re: 7.78.7125 / 7.78.6786 channel central Khaled 09/01/25 08:31 PM
Thanks, I was able to reproduce this issue. This has been fixed for the next beta.
1 158 Read More
Bug Reports Jump to new posts
Re: 7.78.6786 speed regression connecting/joining. KindOne 09/01/25 05:35 PM
7.78.7125 Fixed it.

Thanks.
2 190 Read More
Bug Reports Jump to new posts
Re: New dark mode beta crash eahm 09/01/25 09:57 AM
Thank you! I was going to test it with another computer with Windows 10 Education or setup some VMs, glad we caught this one before the next beta.
8 480 Read More
Bug Reports Jump to new posts
Re: 7.78.6786 treebar selected window color Khaled 08/01/25 07:52 AM
Thanks for your bug report. Yes, that is intentional. Colors throughout mIRC have now been standardized on a base set of light and dark mode Windows colors. The Treebar item color is now using the appropriate color for a non-focused treebar item. If you make the Treebar active by clicking in it, the selected item will turn blue. This was actually one of the benefits of working on dark mode - standardizing all of the colors across all features/functions/etc. This was quite tricky to do since Windows itself uses inconsistent colors across different win32 controls in light/dark modes. So more work was required with controls where Windows was actually using completely different colors to other list controls. I have settled on a set of light/dark mode colors that I think are reasonable overall.
1 125 Read More
Bug Reports Jump to new posts
Re: Channel Central doesn't show ban year Khaled 07/01/25 07:29 PM
Quote
And I make a suggestion regarding the /mode #chan +b command, I think it would be better if it returned the time and date in text format associated with the $ctime time value.
If you are referring to the result printed to the status window, mIRC already displays this in brackets:

[19:27] #swiftirc *!*@89.187.177.72 set by SwiftIRC!SwiftIRC@SwiftIRC.net (Sun Dec 17 22:57:25 2023)

If you are using a script to display this numeric, you will need to parse the $ctime value.
5 702 Read More
Feature Suggestions Jump to new posts
Support for Win7+ Thumbnail toolbar buttons? BhaaL 07/01/25 05:39 PM
Since the recent beta contains a Windows 10/11 specific (and experimental) dark theme, I was wondering if that also paves the way for other functions that are specific to certain Windows versions only.

I've had a little DLL project called mircThumbBar (also m7rc, since I made it back with Windows 7) for the longest time, so I can play/pause and prev/next my MP3 player even when mIRC is in the background.
I had my fair share of issues with it, but got something working and have been using it for over 15 years at this point. It looks like this:
[Linked Image from imgur.com]

This uses the Thumbnail Toolbar API from the ITaskbarList3 interface (and some maybe not-so-nice redirecting of the mIRC WndProc to get events back to me). Regular $dll calls to prepare the list, then finally display it. Memory mapped file for the back-channel so I can react to clicks by calling one of my functions/aliases.

I'm not too sure about a command sequence though. Those three buttons on top are three AddButton calls followed by a CreateButtons call (basically: Queue up buttons, set their properties, then trigger the toolbar creation/modification). Later, I use SetButtonIcon/SetButtonFlags and UpdateButtons to (queue and then) make changes; for example when I pause/play and want to change the image.
Maybe as part of /window, perhaps as a new /thumbbar command? To test (and read), accompanying $window (or $thumbbar) identifiers? I can totally see this work without the CreateButtons/UpdateButtons calls, but I feel like I overengineered this to optimize how often I have to call the ITaskbarList3 methods...not to mention that I took a few shortcuts and didn't implement things I didn't need, like RemoveButton/ClearButtons.
There's other Vista/7+ functions for augmenting and interacting with the taskbar, but I feel like those buttons are the most useful ones here. Doing nothing (or returning an error) for Windows versions that don't support the functionality should be fairly easy to do, but at this point none of them are really in support anymore.

Microsoft published a sample project, and my code is here in this Gist.
0 109 Read More
Bug Reports Jump to new posts
Re: Channels List TECO 05/01/25 05:12 PM
Originally Posted by Khaled
Thanks this has been fixed for the next version.

Resolved in beta version 7.78.6786
2 582 Read More
Connection Issues Jump to new posts
Can't connect to undernet server pillsbury 04/01/25 06:02 PM
I can't connect to channel Undernet since few weeks.
I didn't change anything in the default setting, I always get "unable to resolve server".
address: irc.undernet.org
ports: 6667
Group: undernet

Thanks for help
0 147 Read More
Feature Suggestions Jump to new posts
Re: Editable Language Files WarPigs 30/12/24 09:07 AM
I fixed some spelling, grammar and typing issues, in my german dll.

Regards WarPigs
21 9,701 Read More
Feature Suggestions Jump to new posts
Re: Editable language file darta1964 28/12/24 10:51 AM
...and I would like to translate (localize) mIRC into Italian.
0 101 Read More
Developers Jump to new posts
Re: The First A.I. Trading Bot - level 1 duckdowN 27/12/24 10:28 PM
Hi, how is your project going?
1 1,482 Read More
Scripts & Popups Jump to new posts
Re: open website with https socket Wims 26/12/24 07:42 PM
Your GET parameter is not starting with a /, which, as far as I'm concerned, is not possible. This is your 400 error most likely.
But your host header is also incorrect, it should be the same value used in /sockopen.

Your on sockread event also is incorrect on many points.
You need to discard the headers first before looking for your text as your text may appear in headers. And you need better reading logic than just read anything that is available because you may end up with a packet being "TTN" with the next one being "M7", making your if condition fails.
To discard headers you need to use a true/false bool variable to store whether or not you discarded the headers already.
Code
On *:sockread:demo:{
var %r 
Sockread %r
If (!$sockbr) return
If (%headersread) {
If (TTNM7 isin %r) ...
}
Elseif (%r == $null) %headersread = 1
}
}
you will need to make sure %headersread is either unset when the socket close, or reset it when you reopen the socket.

If you are using https 1.1 your connection should stay alive by default and on sockclose won't trigger, you will have to specify a connection: close header.
1 345 Read More