And to add to what's already been said as far as workarounds in the meantime...
; Here are the identifiers you named...
;alias
ident if ($isid) return $ial($me).user
alias
user if ($isid) return $ial($1).user
alias
Identd if ($isid) return
$Identd.EnableIdentdServer ( $+
$Identd.UserID $+ )
; And here are the rest of the properties from that Options page, as $identifiers.
;alias
Identd.EnableIdentdServer if ($isid) return $iif($readini($mircini, ident, active) == yes, On, Off)
alias
Identd.UserID if ($isid) return $readini($mircini, ident, userid)
alias
Identd.System if ($isid) return $readini($mircini, ident, system)
alias
Identd.Port if ($isid) return $readini($mircini, ident, port)
alias
Identd.ShowIdentdRequests if ($isid) return $iif($readini($mircini, Options, n0), 4, 44), On, Off)
alias
Identd.EnableOnlyWhenConnecting if ($isid) return $iif($readini($mircini, Options, n0), 27, 44), On, Off)
; And finally, here is an example of how to more fully implement commands for one of these properties,
; using $com, the WScript.Shell object and its SendKeys method to change the selections as necessary.
;
; USAGE:
; [color:#840017]$Identd.UseIDFromEmailAddress (returns On or Off)
;
/Identd.UseIDFromEmailAddress (echos the current state)
;
/Identd.UseIDFromEmailAddress On;
/Identd.UseIDFromEmailAddress Off;[/color]
alias
Identd.UseIDFromEmailAddress {
- ; Retrieve the current setting in On or Off format.
;
var %OnOff = $iif($readini($mircini, Options, n6), 33, 44), On, Off)
; If it's being called as an identifier, return the current setting.
;
if ($isid) return %OnOff
; If it's being called as a command with no parameter, echo the current setting.
;
elseif (!$1) echo -atic info2 * Identd: Use ID from email address is $+($chr(2),%OnOff)
; Make sure the first parameter is either "On" or "Off", case insensitive.
;
elseif (!$istok(On Off, $1, 32)) echo -atic info2 * Usage: /Identd.UseIDFromEmailAddress [On|Off]
; Check to see if the setting is already set to the chosen parameter, On or Off.
;
elseif ($1 == %OnOff) echo -atic info2 * Identd: Use ID from email address is already $+($chr(2),%OnOff)
; Otherwise, toggle the setting, using the SendKeys method to navigate to and change the correct setting.
; % $+ o means Alt+O, and opens the Options dialog.
; {HOME} puts the cursor on Connect.
; {LEFT} closes the Connect node, if it wasn't already.
; {RIGHT 5} opens it back up (gets it to a known state) and then moves down to the 4th node underneath Connect, which is Identd.
; {TAB 7} tabs seven times to arrive on the correct checkbox.
; The space between the {TAB 7} and {ENTER} toggles (either puts a check in or removes the check from) the checkbox.
; {ENTER} presses the OK button to save and exit.
;
else {
; Open the WScript.Shell object by the name W.
;
.comopen W WScript.Shell
; Close the W object after using its SendKeys method to send the string to mIRC.
;
.comclose W $com(W,SendKeys,3,*bstr,% $+ o{HOME}{LEFT}{RIGHT 5}{TAB 7} {ENTER})
}
}
Note: I would normally have used a more descriptive object name, such as objWSH, and perhaps added $ticks to its name to prevent duplicate objects. However, for the purposes of this example, I didn't want the SendKeys string to wrap so that you would see where the space goes, between {TAB 7} and {ENTER}, that toggles the checkbox. That is why I intentionally made the
else block as short as I could and still fit on a single line to fit these forums.
Is this overkill, or what?