mIRC Home    About    Download    Register    News    Help

Active Threads | Unanswered Past 24 hours | Past 48 hours | Past Week | Past Month | Past Year
Scripts & Popups Jump to new posts
Re: Channel List Talon Yesterday at 05:56 AM
I'm not sure if it's possible to use a raw event (321) to halt or haltdef (prevent default) or even use the ^ event prefix with a raw... Even doing a /raw list to avoid the in-built /list alias brings up the window...

What you can do however, is use a parseline event to re-write the incoming line effectively fooling mIRC into not seeing the server-sent raw event in the first place. I would however advise making some kind of state check like: a variable, remote #group, etc... to enable/disable this functionality if you do wish for the /list command to still be able to pop up.

This will break mIRC's "/list" command so instead of using "/list" instead send it as a "/raw list". It WILL work the first time (with the in-built /list), however since we removed these events mIRC never recognizes the list was successful, and subsequent requests for "/list" will result in an info line in your status:
* /list: listing in progress...

Keep in mind this will also prevent a RAW 321:*: (also 322 and 323) from ever triggering (we effectively expunged this from the inbound queue by replacing it with $null) so you may need to do something else if you're relying on this event to start working with the list data.

Here is a small example script to mimic the functionality making use of the custom signal event and also preventing the channel list window, and echoing into the status window instead using a custom alias named "MyCustomList", also taking advantage of groups to enable/disable this functionality allowing mIRC's regular "/list" to still function.

Code
;== Generic alias name to activate the group event enabling parseline to replace raw 321-323 and trigger a signal.
alias MyCustomList {
  .enable #CustomRaw
  .raw list
}

#CustomRaw off
on *:PARSELINE:in:*: {
  ;== Make a variable of the incoming RAW IRC Event line.
  var %pl = $parseline

  ;== UTF-Decode line if applicable
  if ($parseutf) { %pl = $utfdecode(%pl) }

  ;== Test if the line starts with ":<server> 321"
  if ($regex(%pl,$+(/^:,$server,\s32[1-3]/))) {

    ;== Replace the line mIRC's about to process with a blank one
    .parseline -itu0 $null

    ;== Create a signal event called CustomRaw with the data from the event
    .signal CustomRaw $gettok(%pl,2-,32)

    ;== Return to allow mIRC to process this new line
    return 
  }
}
#CustomRaw end

on *:SIGNAL:CustomRaw: {
  if ($1 = 321) {
    echo -s *** Listing Channels
  }
  elseif ($1 = 322) {
    echo -s $3-
  }
  elseif ($1 = 323) {
    echo -s *** End of /List

    ;== Disable customraw group so that /list will work.
    .disable #CustomRaw
  }
}

Command:
/MyCustomList

Output:
Code
*** Listing Channels
#Talon 1 :[+nt]
*** End of /List
1 56 Read More
Bug Reports Jump to new posts
Re: 7.78 / 7.78.beta+ $sfile Khaled 22/01/25 01:20 PM
Thanks this issue has been fixed for the next beta.
3 75 Read More
Scripts & Popups Jump to new posts
Re: need help with a script D: kouyachi 20/01/25 11:39 PM
Wow thank you so much! Honestly I learned a lot from this, so I do appreciate it, hehe smile
3 181 Read More
Bug Reports Jump to new posts
mIRC beta Khaled 20/01/25 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 423,050 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 196 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 62 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 584 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 543 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 117 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 170 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 334 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 212 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 521 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 767 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 172 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 206 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 527 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 136 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 720 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 130 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 600 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 165 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,817 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 106 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,504 Read More
Page 1 of 2 1 2