This dll has a special entry function called Mark You MUST call this function in the on join event of mIRC. You also only want to use Mark when its YOU who joins the channel. Following is an example.
on *:join:*:{
if ($nick == $me) {
call Mark here
setup the nicklist here
}
}
If you dont Mark the nicklist in the on join then the dll cannot fill the nicklist.
COMMANDS
The following commands create and setup the nicklist for use.
Usage
Mark # > aliasname option1 option2 .... optionN
aliasname - is the name of the alias to use for Custom Drawing. See below for examples and help. It MUST be the first option past the > in the Mark command. If you dont plan on using Custom Draw then use null.
Options are as follows
autoarrange - arrange icons in icon and smallicon mode when the nicklist is resized.
hottrack - nicknames are selected by hovering over a nick for a few seconds.
grid - each nickname is seperated in a grid
underlinehot - selected nick will be underlined.
underlinecold - unselected nicks will be underlined
borderselect - in icon view mode a small border is placed around the nick and icon when selected.
flatsb - scrollbars will be flat
nosortheader - the header will not act like a button
noheader - no header will be displayed. you can use ShowHeader later on
balloon - tooltips will be balloon style instead of old style. - "New"
The following example will mark the nicklist and use border select
Mark # > borderselect
SetColor
Usage
SetColor # op|halfop|normal|voice|bkg $rgb(0,0,0)
This function sets the color to use for each type of nick as well as a background color.
op - sets op color
halfop - sets halfop color
normal - sets normal users color
voice - sets voiced ppl's color
bkg - sets the nicklists background color
Example:
SetColor # op $rgb(255,0,0)
SetColor # bkg $rgb(0,0,0)
SetFont - "New"
Usage
SetFont # nicks|tooltip|header size weight > face name
This function sets the font for the tooltip header and nicks in the nicklist. You can specify a size and a weight value. A weight is from 0 to 900 400 is normal and 700 is considered bold.
nicks - sets nicknames fonts
tooltip - sets tooltips font
header - sets header text's font
Example:
SetFont # nicks 14 400 > courrier new
SetTipColor - "New"
Usage
SetTipColor # text|bkg $rgb(0,0,0)
This function sets the color to use for the text or background in a tooltip.
text - sets text color
bkg - sets background color
Example:
SetTipColor # text $rgb(255,0,0)
SetTipColor # bkg $rgb(0,0,0)
SetTipTitle - "New"
Usage
SetTipTtle # icon# > Title
This function sets the title and an icon in a tooltip. This can be used with or without balloon style tooltips. The icon is a number from 0 to 3 and the title text is a boldface title placed at the top of the tooltip.
Icon #'s are as follows
0 - No icon
1 - Info icon (!)
2 - Warning icon
3 - Error icon
filename.nli - path to a nli icon scheme file. You can download these or make them yourself. The format is op,halfop,voice,normal. You can use icl dll or exe as long as the icons are in that order.
Changes the view mode of the nicklist. In report mode and list mode the icons will appear in order (ops voices ..) however in icon and smallicon mode they may appear out of order. nicklist.dll uses report mode by default.
You can use either a dll exe ico and icl. If you use a library of icons then you can also use an index to specify wich icon to use.
Example:
SetIcon # op > 5,op_icon.icl
SetHeadertext
Usage
SetHeaderText # > Text
Sets text to the nick list header.
Example:
SetHeaderText # > Header
ShowHeader
Usage
ShowHeader # true|false
Shows or hides the header. use true to show it or false to hide it. If you used 'noheader' in 'Mark' this command will show it.
Example:
ShowHeader # true
CUSTOM DRAWING
Most of the controls in windows have an option know as Custom Draw (NM_CUSTOMDRAW). This allows the application to draw some or all of the control itself instead of windows. nickLUST gives this capability to the scripter. The name you use for aliasname in Mark will be called each time a nick in the nicklist needs to be drawn. The format is
$1 == the reason for calling the alias. see below for a list of reasons
$2 == the channel the nicklist to be drawn is on
$3 == a nickname that is being drawn
Following is a list of reasons the alias is called. This is the $1 parameter in the alias.
color - when the dll calls the alias with this reason you can return a custom color and nickLUST will use that color instead of the default one to draw the nick.
tooltip - when you hover over a nick the alias is called you can return the text to be used for a tooltip for that nick
rclick - when you right click on a nick this reason is passed to the alias if you return FALSE then the default mirc popup is not opened. return TRUE to use the default popup. You can use popups.dll if you so desire.
lsclick - passed when you select a nick. currently no return value is used.
ldclick - when you double click a nick this is passed. you can return TRUE to process it using the default mirc method or FALSE to halt processing.
If you dont have an alias then the default will be used. For example colors will be chosen based on the SetColor function from above.
Custom Drawing Examples
Coloring individual nicknames "On the fly"
The following example assumes the alias name "nickLUST" was used in the 'Mark' Command.
alias nickLUST {
if ($1 == color) {
if ($3 == $me) return $rgb(255,0,0)
return USE_DEFAULT
}
}
In the example above when nickLUST calls the alias with the color parameter we test the nick. If it is our nick we return the value of red. For all other nicks the default color chosen with SetColor will be used.
Adding custom tooltips for each nick.
alias nickLUST {
if ($1 == tooltip) {
if ($3 == $me) return This is you silly :)
if ($3 == My_Freind) return Some silly friend message here.
return Nickname: $3 $+ $crlf $+ Address: $address($3,4)
}
}
When tooltip is called if the nick is ours we return a dumb message since we dont need to know our own info. You can return silly messages for friends. The final return will display the nicks address and nick in the tooltip.
Using my own popups instead of mIRC's
Instead of using mirc's default popups some people like to use DragonZaps Popups.dll. Heres how you do it.
alias nickLUST {
if ($1 == rclick) {
;Code here that opens a popup with popups.dll
return FALSE
}
}
Since we return FALSE in the rclick event nickLUST wont call mirc's default popups. If we were to return TRUE or return nothing at all then the default popups will be opened.
[DisplayName ("Processes"): Amended, Description ("Win32_Process class represents a sequence of events in the Win32. Any sequence of interactions of one or more processors, run some code, and data entry is a child or a member of this class. \ NExample: client application that runs in the Win32. "): Amended ToSubclass, AMENDMENT, LOCALE (0x0419)]
class Win32_Process: CIM_Process
{
[DisplayName ("The path to the executable file"): Amended, Description ("ExecutablePath property specifies the path to the executable process. \ NExample: C: \ \ WINDOWS \ \ EXPLORER.EXE"): Amended ToSubclass] string ExecutablePath;
[DisplayName ("The maximum working set size"): Amended, Description ("MaximumWorkingSetSize property specifies the maximum working set size of the process. Working set of the process - a set of pages available in the process of physical RAM. These pages are resident and available to the application time. \ NExample : 1413120. "): Amended ToSubclass] uint32 MaximumWorkingSetSize;
[DisplayName ("Minimum working set size"): Amended, Description ("MinimumWorkingSetSize property specifies the minimum working set size of the process. Working set of the process - a set of pages available in the process of physical RAM. These pages are resident and available to the application time. \ NExample : 20 480. "): Amended ToSubclass] uint32 MinimumWorkingSetSize;
[DisplayName ("The number of page faults"): Amended, Description ("property specifies the number of errors PageFaults page was generated process. \ NExample 10"): Amended ToSubclass] uint32 PageFaults;
[DisplayName ("Using swap file"): Amended, Description ("Property PageFileUsage indicates the size of the paging file used by the process at this time. \ NExample: 102 435"): Amended ToSubclass] uint32 PageFileUsage;
[DisplayName ("Using a swap file (peak)"): Amended, Description ("PeakPageFileUsage property specifies the maximum size of the paging file used during the process of life. \ NExample: 102 367"): Amended ToSubclass] uint32 PeakPageFileUsage;
[DisplayName ("working set size (peak)"): Amended, Description ("Property PeakWorkingSetSize indicates the peak working set size of the process. \ NExample: 1413120"): Amended ToSubclass] uint32 PeakWorkingSetSize;
[DisplayName ("process id"): Amended, Description ("ProcessId property contains the process ID. This property is important since the inception of the process, before the end of his work."): Amended ToSubclass] uint32 ProcessId;
[DisplayName ("The quota for non-paged pool"): Amended, Description ("QuotaNonPagedPoolUsage property specifies the size used by the process of non-paged pool. \ NExample 15"): Amended ToSubclass] uint32 QuotaNonPagedPoolUsage;
[DisplayName ("Quota Paged Pool"): Amended, Description ("QuotaPagedPoolUsage property specifies the size of the process used by the paged pool. \ NExample 22"): Amended ToSubclass] uint32 QuotaPagedPoolUsage;
[DisplayName ("Queen of the quota for non-paged pool"): Amended, Description ("Property QuotaPeakNonPagedPoolUsage indicates the peak value of the size used by the process of non-paged pool. \ NExample 31"): Amended ToSubclass] uint32 QuotaPeakNonPagedPoolUsage;
[DisplayName ("Peak paged pool quota"): Amended, Description ("Property QuotaPeakPagedPoolUsage indicates the peak value of the size used by the process of paged pool. \ N Example: 31"): Amended ToSubclass] uint32 QuotaPeakPagedPoolUsage;
[DisplayName ("Version of Windows"): Amended, Description ("WindowsVersion property indicates the version of Windows, in which the process works. \ NExample: 4.0"): Amended ToSubclass] string WindowsVersion;
[DisplayName ("Priority"): Amended, Description ("The Priority property specifies the priority of the process. The higher the value, the higher the priority to the process. Valid values range from 0 (lowest priority) to 31 (highest). \ nExample 7. "): Amended ToSubclass] uint32 Priority;
[DisplayName ("counter flow"): Amended, Description ("Property ThreadCount indicates the number of active threads in the process. Instruction is \" unit of execution \ "process. Stream is an object that performs the instructions. Every running process has at least a stream. This property is used only for Windows NT. "): Amended ToSubclass] uint32 ThreadCount;
[DisplayName ("Handle Count"): Amended, Description ("Property HandleCount indicates the total number of handles currently open process. This number represents the sum of the number of handles open by each thread in the process. Descriptor is used to work with system resources. Each corresponds to the descriptor table entry descriptors. This record contains the addresses of resources and tools to determine the type of resource. "): Amended ToSubclass] uint32 HandleCount;
[DisplayName ("ID of the parent process"): Amended, Description ("Property ParentProcessId specifies the unique identifier of the process that created this process. Process IDs can be reused, so they are relevant only for the lifetime of the process. Process specified ParentProcessId, can be interrupted, so ParentProcessId can not point to a running process. Also, it is possible that incorrectly indicates ParentProcessId process re-uses the ID of the parent process. Based on the value of the property CreationDate can determine whether the parent is created later in the process. "): Amended ToSubclass ] uint32 ParentProcessId;
[DisplayName ("session ID"): Amended, Description ("Property SessionId specifies a unique identifier that is generated by the operating system when creating a session. A session is defined as the time between input and output of the system."): Amended ToSubclass] uint32 SessionId;
[DisplayName ("The private page count"): Amended, Description ("Property PrivatePageCount indicates the current number of pages that are only available to this process"): Amended ToSubclass] uint64 PrivatePageCount;
[DisplayName ("Peak virtual address space usage"): Amended, Description ("Property PeakVirtualSize specifies the maximum size of virtual address space used by the process at a time. Use of virtual address space does not necessarily imply corresponding use of the pages in memory or on disk. However, the virtual space course and its excessive use of the process can limit its ability to load libraries. "): Amended ToSubclass] uint64 PeakVirtualSize;
[DisplayName ("Use of virtual address space"): Amended, Description ("Property VirtualSize indicates the current size of the virtual address space used by the process, in bytes. Use of virtual address space does not necessarily imply corresponding use of the pages in memory or on disk. However, the virtual space course and its excessive use of the process can limit its ability to load libraries. "): Amended ToSubclass] uint64 VirtualSize;
[DisplayName ("The number of read operations"): Amended, Description ("Property ReadOperationCount indicates the number of read operations."): Amended ToSubclass] uint64 ReadOperationCount;
[DisplayName ("The number of write operations"): Amended, Description ("Property WriteOperationCount indicates the number of write operations performed."): Amended ToSubclass] uint64 WriteOperationCount;
[DisplayName ("The number of other operations"): Amended, Description ("Property OtherOperationCount indicates the number of executed IO operations other than read and write operations."): Amended ToSubclass] uint64 OtherOperationCount;
[DisplayName ("meter reading data"): Amended, Description ("ReadTransferCount property specifies the size of read data."): Amended ToSubclass] uint64 ReadTransferCount;
[DisplayName ("Counter Write Data Transfer"): Amended, Description ("WriteTransferCount property specifies the size of the recorded data."): Amended ToSubclass] uint64 WriteTransferCount;
[DisplayName ("Count data with other operations"): Amended, Description ("OtherTransferCount property specifies the size of data transferred during operations other than IO."): Amended ToSubclass] uint64 OtherTransferCount;
[DisplayName ("Command line for starting the process"): Amended, Description ("CommandLine property specifies the command line used to start the process, if it is used."): Amended ToSubclass] string CommandLine;
[Description ("Time in kernel mode, in 100 nanoseconds. If this information is missing, the value 0."): Amended ToSubclass] uint64 KernelModeTime;
[Description ("Time in user mode, 100 nanoseconds. If this information is missing, the value 0."): Amended ToSubclass] uint64 UserModeTime;
[Description ("The Create method creates a new process. \ NMetod returns an integer: \ n0 - success; \ n2 - the user does not have access to requested data; \ n3 - you do not have sufficient privileges; \ n8 - Unknown error; \ n9 - the user does not have sufficient privileges; \ n21 - Invalid parameter. \ nFor more return values are described in the error code Win32. "): Amended ToSubclass, Values {" Successful completion "," Access Denied "," Insufficient privileges " "Unknown error", "Path not found", "Invalid parameter", "Other"}: Amended ToSubclass] uint32 Create ([In: ToSubclass, Description ("CommandLine parameter specifies the command line to execute. system adds a NULL character to the command line, truncating it if necessary to specify the file that was used. "): Amended ToSubclass] string CommandLine, [In: ToSubclass, Description (" The parameter indicates the current volume CurrentDirectory and location for the child process. It is essential that the current folder existed. The user can specify an absolute or relative path (including the current working directory.) If the value is NULL, the new process will use the same path as the calling process. This option is primarily designed for shells that run the application, and indicates the working that and the folder for the application. "): Amended ToSubclass] string CurrentDirectory, [In: ToSubclass, Description (" The parameter is ProcessStartupInformation initial configuration process Win32. It includes information used in window displays, and error handling, as well as the characteristics of the application command line. \ n \ nUchtite that in Windows XP and later, the property WinstationDesktop (which was previously the default was set to \ "winsta0 \ \ default \") in all cases be ignored. Instead of the old value is an empty string (\ "\") . "): Amended ToSubclass] Win32_ProcessStartup ProcessStartupInformation, [Out: ToSubclass, Description (" ProcessId parameter contains the ID of the process. This property is important since the inception of the process, before the end of his work. "): Amended ToSubclass] uint32 ProcessId);
[Description ("Terminate method terminates the process and all its child processes. \ NMetod returns one of the following integer values: \ n0 - success; \ n2 - the user does not have access to requested data; \ n3 - you do not have sufficient privileges; \ n8 - Unknown error; \ n9 - user does not have the necessary privileges; \ n21 - Invalid parameter. \ nFor more return values are described in the error code Win32. "): Amended ToSubclass, Values {" Successful completion "," Access Denied "," Insufficient privileges "," Unknown error "," Path not found "," Invalid parameter "," Other "}: Amended ToSubclass] uint32 Terminate ([In: ToSubclass, Description (" Reason parameter indicates the exit code for process and all its streams, which were suspended as a result of this call. "): Amended ToSubclass] uint32 Reason);
[Description ("The method returns GetOwner credentials of the owner (user name and domain name), under which the process works. \ NMetod returns one of the following integer values: \ n0 - success; \ n2 - the user does not have access to requested data; \ n3 - you do not have sufficient privileges; \ n8 - Unknown error; \ n9 - user does not have the necessary privileges; \ n21 - Invalid parameter. \ nFor more return values are described in the error code Win32. "): Amended ToSubclass, Values {"Successful completion", "Access Denied", "Insufficient privileges", "Unknown error", "Path not found", "Invalid parameter", "Other"}: Amended ToSubclass] uint32 GetOwner ([Out: ToSubclass, Description ("The User parameter returns the name of the user who owns the process."): Amended ToSubclass] string User, [Out: ToSubclass, Description ("The parameter Domain returns the domain name in which the process works."): Amended ToSubclass] string Domain );
[Description ("The method gets GetOwnerSid SID (SID) of the owner of this process. \ NMetod returns one of the following integer values: \ n0 - success; \ n2 - the user does not have access to requested data; \ n3 - you do not have sufficient privileges ; \ n8 - Unknown error; \ n9 - user does not have the necessary privileges; \ n21 - Invalid parameter. \ nFor more return values are described in the error code Win32. "): Amended ToSubclass, Values {" Successful completion "," Rejected Access "," Insufficient privileges "," Unknown error "," Path not found "," Invalid parameter "," Other "}: Amended ToSubclass] uint32 GetOwnerSid ([Out: ToSubclass, Description (" Sid property returns a handle identifier Security for this process. "): Amended ToSubclass] string Sid);
[Description ("The method SetPriority trying to change the priority of the process. To set the priority of equal Realtime (real time), the caller must have the privilege of SeIncreaseBasePriorityPrivilege. Without it the highest possible priority to - High (high). \ NMetod returns one of the following integer values: \ n0 - success; \ n2 - the user does not have access to requested data; \ n3 - you do not have sufficient privileges; \ n8 - Unknown error; \ n9 - user does not have the necessary privileges; \ n21 - Invalid parameter. \ nFor more return values are described in the error code Win32. "): Amended ToSubclass, Values {" Successful completion "," Access Denied "," Insufficient privileges "," Unknown error "," Path not found "," The parameter is incorrect " "Other"}: Amended ToSubclass] uint32 SetPriority ([in, Description ("The Priority parameter specifies the new priority class for the process. Values: \ nProstoy - Indicates to process streams of commands that work only when the system is idle. Running threads command processor is interrupted instruction flow process, which has a higher priority. An example is a program saver. idle priority class inherits all the child processes. \ nNizhe average - points to a process that has a higher priority class IDLE_PRIORITY_CLASS, but below NORMAL_PRIORITY_CLASS. for Windows 2000. \ nSredny - indicated for the process with no special requirements for priority implementation. \ nVyshe average - points to the process, the priority is higher than the class NORMAL_PRIORITY_CLASS, but below HIGH_PRIORITY_CLASS. for Windows 2000. \ nVysoky priority - indicates a process that performs time-critical task that should be execute immediately. Streams commands interrupt thread execution priority or medium priority idle. An example is the Task Manager, which should appear on the screen at the request of the user, regardless of the operating system. Use a class of high priority should be with caution, since this class of applications can take all the available CPU time. \ nRealnoe time - Specify the processes that have the highest possible priority. Streams of this class of command terminates the flow of commands all other processes, including the flow of the operating system, perform important tasks. For example, real-time process that executes for longer than moment, may cause a delay updating the disk cache, or a freeze of the mouse pointer. \ n "): Amended ToSubclass, Values {" Idle "," Below Average "," Normal "," Above Average "," high importance "," Real Time " }: Amended ToSubclass] sint32 Priority);
[Description ("The method AttachDebugger starts the debugger process, registered as the default debugger. However, Dr. Watson is not supported. \ NMetod returns 'total error' if it detects an illegal string to the registry key, or one of the following integer values: \ n0 - success; \ n2 - the user does not have access to requested data; \ n3 - you do not have sufficient privileges; \ n8 - Unknown error; \ n9 - user does not have the necessary privileges; \ n21 - Invalid parameter. \ nFor more return values are described in the documentation for error code Win32. "): Amended ToSubclass, Values {" Successful completion "," Access Denied "," Insufficient privileges "," Unknown error "," Path not found "," Invalid parameter ", "Other"}: Amended ToSubclass] uint32 AttachDebugger ();
};
Here you can go ahead to put x)