|
Joined: Apr 2012
Posts: 48
Ameglian cow
|
OP
Ameglian cow
Joined: Apr 2012
Posts: 48 |
A problem arises when confirmation is enabled to quit mirc... If the question "are you sure you want to quit mirc?" this happens: If you choose the option "Yes" (everything works fine why close mirc) If you choose the "NO" option (the error) The DCX.DLL is is broken and no trace remains in memory as it is active but lacks features that were previously active. Coming back to mirc becomes necessary to reactivate the dcx with a command : menu menubar { wake dcx.dll: { .timer 1 0 /dll -u dcx.dll | .timer 2 0 xpopup_menu } } You can create an event close mirc, which allows you to operate the alias after deciding not to quit mirc?
A Creative & Interactive mIRC Scripting
|
|
|
|
Joined: Oct 2003
Posts: 3,918
Hoopy frood
|
Hoopy frood
Joined: Oct 2003
Posts: 3,918 |
Looks like a bug in dcx. It's allowing itself to be unloaded, which means you have to re-initialize it. I have dlls that stay persistent in memory when hitting "No" to the exit confirmation dialog, so this isn't a bug in mIRC. As a sidenote, you should always be testing if dcx is active and loading it if it is not. This should be at the top of all of your dcx related commands. DCX can be unloaded for a number of reasons, and your script should be able to handle that and recover. You shouldn't have some hacky popup that reinitializes it manually. Instead, add something like the following to your script: alias load_dcx {
if ($dll(dcx.dll)) return
dll dcx.dll LoadDCX | ; replace this with the line to initialize dcx
} And use /load_dcx prior to any popup/dialog creation commands.
- argv[0] on EFnet #mIRC - "Life is a pointer to an integer without a cast"
|
|
|
|
Joined: Apr 2012
Posts: 48
Ameglian cow
|
OP
Ameglian cow
Joined: Apr 2012
Posts: 48 |
The fault only occurs using popups, but the error does not occur with respect to other functions of the dcx.dll is a problem which affects content in dcx_tool.mrc aliases provided in support...type xpopup alias or not this I do not know... in any case the alias you 've suggested returns me this error ;==============================================================; alias load_dcx { if ($dll(dlls\dcx.dll)) return dll dlls\dcx.dll LoadDCX } - * /dll: no such routine 'LoadDCX' (line 31, menu.vxd) - for eventual verification of placed the problem of link plugin Thanks argv0 DCX xPopups
A Creative & Interactive mIRC Scripting
|
|
|
|
Joined: Apr 2012
Posts: 48
Ameglian cow
|
OP
Ameglian cow
Joined: Apr 2012
Posts: 48 |
Clicking Exit, the client should just propose the dialog without taking action towards any function, but this is not the case
to evade the dcx dll, you can create an event on "exit" that uses the alias? or you can force the close behavior so that it does not propose the choice though in mirc options is enabled this function?
alias load_dcx { if ($dll(dcx.dll)) return dll dcx.dll LoadDCX | ; replace this with the line to initialize dcx }
Thanks argv0
Unloading a DLL
You can unload a loaded DLL by using the -u switch:
/dll -u <filename>
You can browse the list of loaded DLLs by using:
$dll(N/filename) returns the Nth loaded DLL
mIRC will automatically unload a DLL if it is not used for ten minutes, or when mIRC exits.
You can also define an UnloadDll() routine in your DLL which mIRC will call when unloading a DLL to allow it to clean up.
int __stdcall UnloadDll(int mTimeout);
The mTimeout value can be:
0 UnloadDll() is being called due to a DLL being unloaded with /dll -u.
1 UnloadDll() is being called due to a DLL not being used for ten minutes. The UnloadDll() routine can return 0 to keep the DLL loaded, or 1 to allow it to be unloaded.
2 UnloadDll() is being called due to a DLL being unloaded when mIRC exits.
Last edited by DEATHJ0KER; 28/04/12 12:01 PM.
A Creative & Interactive mIRC Scripting
|
|
|
|
Joined: Apr 2012
Posts: 48
Ameglian cow
|
OP
Ameglian cow
Joined: Apr 2012
Posts: 48 |
Clicking Exit, the client should just propose the dialog without taking action towards any function, but this is not the case
to evade the dcx dll, you can create an event on "exit" that uses the alias? or you can force the close behavior so that it does not propose the choice though in mirc options is enabled this function?
alias load_dcx { if ($dll(dcx.dll)) return dll dcx.dll LoadDCX | ; replace this with the line to initialize dcx }
Thanks argv0
Unloading a DLL
You can unload a loaded DLL by using the -u switch: /dll -u <filename> You can browse the list of loaded DLLs by using:
$dll(N/filename) returns the Nth loaded DLL
mIRC will automatically unload a DLL if it is not used for ten minutes, or when mIRC exits.
You can also define an UnloadDll() routine in your DLL which mIRC will call when unloading a DLL to allow it to clean up.
int __stdcall UnloadDll(int mTimeout);
The mTimeout value can be:
0 UnloadDll() is being called due to a DLL being unloaded with /dll -u.
1 UnloadDll() is being called due to a DLL not being used for ten minutes. The UnloadDll() routine can return 0 to keep the DLL loaded, or 1 to allow it to be unloaded. 2 UnloadDll() is being called due to a DLL being unloaded when mIRC exits.
/*!
* \brief mIRC DLL Load Function
*
* This function is called when the DLL is loaded.
*
* It initializes all what the DLL needs and links mIRC received information to the mIRCDLL \b mIRCLink
* data structure to be used later in various functions in the DLL.
*
* \param load mIRC Load Structure Pointer
*/
void WINAPI LoadDll( LOADINFO * load ) {
mIRCLink.m_hFileMap = CreateFileMapping( INVALID_HANDLE_VALUE, 0, PAGE_READWRITE, 0, 4096, "mIRC" );
mIRCLink.m_pData = (LPSTR) MapViewOfFile( mIRCLink.m_hFileMap, FILE_MAP_ALL_ACCESS, 0, 0, 0 );
mIRCLink.m_mIRCHWND = load->mHwnd;
g_OldmIRCWindowProc = (WNDPROC) SetWindowLong( mIRCLink.m_mIRCHWND, GWL_WNDPROC, (LONG) mIRCSubClassWinProc );
WNDCLASS wc;
ZeroMemory( &wc, sizeof( WNDCLASS ) );
wc.hInstance = GetModuleHandle( NULL );
wc.lpszClassName = XPOPUPMENUCLASS;
wc.lpfnWndProc = XPopupMenu::XPopupWinProc;
RegisterClass( &wc );
mhMenuOwner = CreateWindow( XPOPUPMENUCLASS, NULL, 0, 0, 0, 0, 0, 0, 0, GetModuleHandle(NULL), 0 );
g_mIRCPopupMenu = new XPopupMenu( NULL );
g_mIRCMenuBar = new XPopupMenu( GetMenu( mIRCLink.m_mIRCHWND ) );
}
/*!
* \brief mIRC DLL UnLoad Function
*
* This function is called when the DLL is unloaded.
*
* It initializes all what the DLL needs and links mIRC received information to the mIRCDLL \b mIRCLink
* data structure to be used later in various functions in the DLL.
*
* \param timeout Unload trigger indicator (0 = timeout unload after 10 min - 1 = exit or /dll -u)
*/
int WINAPI UnloadDll( int timeout ) {
// DLL unloaded because mIRC exits or /dll -u used
if ( timeout == 0 ) {
SetWindowLong( mIRCLink.m_mIRCHWND, GWL_WNDPROC, (LONG) g_OldmIRCWindowProc );
g_XPopupMenuManager.clearMenus( );
delete g_mIRCPopupMenu;
g_mIRCMenuBar->cleanMenu( GetMenu( mIRCLink.m_mIRCHWND ) );
delete g_mIRCMenuBar;
if ( mhMenuOwner != NULL )
DestroyWindow( mhMenuOwner );
UnregisterClass( XPOPUPMENUCLASS, GetModuleHandle( NULL ) );
UnmapViewOfFile( mIRCLink.m_pData );
CloseHandle( mIRCLink.m_hFileMap );
return 1;
}
// keep DLL in memory
else
return 0;
}
/*!
* \brief blah
*
* blah
*/
A Creative & Interactive mIRC Scripting
|
|
|
|
Joined: Apr 2012
Posts: 48
Ameglian cow
|
OP
Ameglian cow
Joined: Apr 2012
Posts: 48 |
Clicking Exit, the client should just propose the dialog without taking action towards any function, but this is not the case of xpopup Unloading a DLL
You can unload a loaded DLL by using the -u switch: /dll -u <filename> You can browse the list of loaded DLLs by using:
$dll(N/filename) returns the Nth loaded DLL
mIRC will automatically unload a DLL if it is not used for ten minutes, or when mIRC exits.
You can also define an UnloadDll() routine in your DLL which mIRC will call when unloading a DLL to allow it to clean up.
int __stdcall UnloadDll(int mTimeout);
The mTimeout value can be:
0 UnloadDll() is being called due to a DLL being unloaded with /dll -u.
1 UnloadDll() is being called due to a DLL not being used for ten minutes. The UnloadDll() routine can return 0 to keep the DLL loaded, or 1 to allow it to be unloaded. 2 UnloadDll() is being called due to a DLL being unloaded when mIRC exits.
/*!
* \brief mIRC DLL Load Function
*
* This function is called when the DLL is loaded.
*
* It initializes all what the DLL needs and links mIRC received information to the mIRCDLL \b mIRCLink
* data structure to be used later in various functions in the DLL.
*
* \param load mIRC Load Structure Pointer
*/
void WINAPI LoadDll( LOADINFO * load ) {
mIRCLink.m_hFileMap = CreateFileMapping( INVALID_HANDLE_VALUE, 0, PAGE_READWRITE, 0, 4096, "mIRC" );
mIRCLink.m_pData = (LPSTR) MapViewOfFile( mIRCLink.m_hFileMap, FILE_MAP_ALL_ACCESS, 0, 0, 0 );
mIRCLink.m_mIRCHWND = load->mHwnd;
g_OldmIRCWindowProc = (WNDPROC) SetWindowLong( mIRCLink.m_mIRCHWND, GWL_WNDPROC, (LONG) mIRCSubClassWinProc );
WNDCLASS wc;
ZeroMemory( &wc, sizeof( WNDCLASS ) );
wc.hInstance = GetModuleHandle( NULL );
wc.lpszClassName = XPOPUPMENUCLASS;
wc.lpfnWndProc = XPopupMenu::XPopupWinProc;
RegisterClass( &wc );
mhMenuOwner = CreateWindow( XPOPUPMENUCLASS, NULL, 0, 0, 0, 0, 0, 0, 0, GetModuleHandle(NULL), 0 );
g_mIRCPopupMenu = new XPopupMenu( NULL );
g_mIRCMenuBar = new XPopupMenu( GetMenu( mIRCLink.m_mIRCHWND ) );
}
/*!
* \brief mIRC DLL UnLoad Function
*
* This function is called when the DLL is unloaded.
*
* It initializes all what the DLL needs and links mIRC received information to the mIRCDLL \b mIRCLink
* data structure to be used later in various functions in the DLL.
*
* \param timeout Unload trigger indicator (0 = timeout unload after 10 min - 1 = exit or /dll -u)
*/
int WINAPI UnloadDll( int timeout ) {
// DLL unloaded because mIRC exits or /dll -u used
if ( timeout == 0 ) {
SetWindowLong( mIRCLink.m_mIRCHWND, GWL_WNDPROC, (LONG) g_OldmIRCWindowProc );
g_XPopupMenuManager.clearMenus( );
delete g_mIRCPopupMenu;
g_mIRCMenuBar->cleanMenu( GetMenu( mIRCLink.m_mIRCHWND ) );
delete g_mIRCMenuBar;
if ( mhMenuOwner != NULL )
DestroyWindow( mhMenuOwner );
UnregisterClass( XPOPUPMENUCLASS, GetModuleHandle( NULL ) );
UnmapViewOfFile( mIRCLink.m_pData );
CloseHandle( mIRCLink.m_hFileMap );
return 1;
}
// keep DLL in memory
else
return 0;
}
/*!
* \brief blah
*
* blah
*/
A Creative & Interactive mIRC Scripting
|
|
|
|
Joined: Apr 2012
Posts: 48
Ameglian cow
|
OP
Ameglian cow
Joined: Apr 2012
Posts: 48 |
The fault only occurs using popups, but the error does not occur with respect to other functions of the dcx.dll is a problem which affects content in dcx_tool.mrc aliases provided in support...type xpopup alias or not this I do not know... ;==============================================================; for eventual verification of placed the problem of link plugin Thanks argv0 DCX xPopups
A Creative & Interactive mIRC Scripting
|
|
|
|
Joined: Apr 2012
Posts: 48
Ameglian cow
|
OP
Ameglian cow
Joined: Apr 2012
Posts: 48 |
of course the dcx dll presents this bug, but adopting a dll to gestiure closing party which mirc wnd.dll, this problem does not occur [script]
on 1:START:{
wndll hook $window(-2).hwnd
unset %vxd.close*
}
alias wndll { return $dll(dll\wnd.dll,$1,$2-) } but according to another location that does not imply the use of dlls to handle closing mirc, you can re-enable pop-up colors with the following commands mpopup mirc 1
mpopup mircbar 1
my question is by itself ... by clicking on the close button and mirc, if the exit confirmation option is enabled, there is a method to tell mirc to close and reactivate the menubar if you choose to cancel the closing of mirc? can I help the event on *:exit:{ ???
A Creative & Interactive mIRC Scripting
|
|
|
|
Joined: Oct 2003
Posts: 3,918
Hoopy frood
|
Hoopy frood
Joined: Oct 2003
Posts: 3,918 |
There is no event for a cancelled exit confirmation.
- argv[0] on EFnet #mIRC - "Life is a pointer to an integer without a cast"
|
|
|
|
Joined: Apr 2012
Posts: 48
Ameglian cow
|
OP
Ameglian cow
Joined: Apr 2012
Posts: 48 |
Thanks argv0, I will opt for the utilities solution using wnd.dll to fix the bug of dcx.dll.
my script is a puzzle of dll LoL
A Creative & Interactive mIRC Scripting
|
|
|
|
Joined: Apr 2012
Posts: 48
Ameglian cow
|
OP
Ameglian cow
Joined: Apr 2012
Posts: 48 |
with wnd, DLLs, i must disable the option closing, and that is what I want to avoid...because the problem reoccurs again Sorry if I insist on this, but when I want to get a function I until not working can I simulate a click event in the command status popups, channel, query windows, to activate the alias when the menu pops up? ---> event on 1:rclick:*:#:{ can not find the correct syntax to activate it in the various menus but above all it is possible?
Last edited by DEATHJ0KER; 08/06/12 10:58 PM.
A Creative & Interactive mIRC Scripting
|
|
|
|
Joined: Oct 2003
Posts: 3,918
Hoopy frood
|
Hoopy frood
Joined: Oct 2003
Posts: 3,918 |
If you want code to execute when a popup is loaded you can add an identifier to a menu item like: menu menubar {
$didrun:noop
} The above will execute $didrun everytime the menubar menu is rendered on screen. As for simulating the event, you can perhaps simulate the menubar menu with COM, but you would need a DLL for the others, ironically. You can't do it with mIRC alone.
- argv[0] on EFnet #mIRC - "Life is a pointer to an integer without a cast"
|
|
|
|
Joined: Apr 2012
Posts: 48
Ameglian cow
|
OP
Ameglian cow
Joined: Apr 2012
Posts: 48 |
tnx argv0 I was reading through the help of mirc and actually I can't find a solution even though there are many identifiers the problem only occurs with the syntax of my code as it activates the menubar by dcx dll using xpopups.dll in dcx do a practical example invoke the popup using script alias (This problem does not occur) xpopups converter...alias menupath by flobse quakenet
menu Status {
$status-menu($1-)
}
alias status-menu {
if ($active != Status Window) { return }
var %MenuName status-menu
if ($xpopup(%MenuName).ismenu) { xpopup -d %MenuName }
xpopup -c %MenuName %stile
if (%stile == custom) { xpopup -b %menuName %cust }
xpopup -p %MenuName %background %iconbox %checkbox %disablecheckbox %disabledselected %disabledtext %selecttext %selectbox %separator %menustext %selectedtext
xpopup -x %MenuName +dp
xpopup -R %MenuName +a %chiaro
xpopup -i %MenuName +a 184 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 280 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 247 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 183 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 251 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 102 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 82 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 119 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 146 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 18 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 194 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 157 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 158 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 121 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 190 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 187 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 134 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 86 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 87 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 44 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 225 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 270 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 147 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 0 $mircdirgfx\icons\x1.ico
xpopup -i %MenuName +a 116 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 209 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 269 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 299 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 27 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 197 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 117 $mircdirgfx\icons\VxD.icl
xpopup -i %MenuName +a 21 $mircdirgfx\icons\VxD.icl
menupath reset
xpop -a %MenuName $menupath(.) $chr(9) + 1 31 Server
xpop -a %MenuName $menupath(.) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(.) $chr(9) + 2 10 Lista Dei Canali
xpop -a %MenuName $menupath(.) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(.) $chr(9) + 3 9 Entra in ???
xpop -a %MenuName $menupath(.) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(.) $chr(9) + 4 6 Bussa ad un canale
xpop -a %MenuName $menupath(.) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(.) $chr(9) +s 0 14 InfoServ
xpop -a %MenuName $menupath(..) $chr(9) + 5 15 Amministratori
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 6 1 Away $iif($away,On ( $+ $duration($awaytime) $+ ),Off)
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 7 17 IP Address $ip
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 8 18 Idle Time $idle
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 9 20 Linkaggio
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 10 15 Lusers
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 11 15 Motd
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 12 15 Mappa
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 13 22 mIRC $uptime(mirc,1)
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 14 23 Network $network
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 15 24 Nick $me
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 16 26 Prefissi $iif($server != $null,$prefix,n/a) $+
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 17 25 Server $server
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 18 28 Server IP $serverip
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 19 29 Server Port $port
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 20 18 Server $uptime(server,1)
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 21 15 Statistiche
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 22 18 System $uptime(system,1)
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 23 19 Time
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 24 30 User Mode $usermode
xpop -a %MenuName $menupath(.) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(.) $chr(9) + 25 11 Lingua Italiana
xpop -a %MenuName $menupath(.) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(.) $chr(9) +s 0 1 AWAY
if (%sonoaway == OFF) xpop -a %MenuName $menupath(..) $chr(9) + 26 2 Vai in Away0,12 %awaynick
if (%sonoaway == ON) xpop -a %MenuName $menupath(..) $chr(9) + 27 3 Ritorna 0,12 %mainnick
xpop -a %MenuName $menupath(..) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(..) $chr(9) + 28 4 Imposta il Nick in Away 0,12 %awaynick
xpop -a %MenuName $menupath(..) $chr(9) + 29 5 Imposta motivo AWAY:0,12 %away.reason
xpop -a %MenuName $menupath(.) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(.) $chr(9) +s 0 7 Copia negli appunti
xpop -a %MenuName $menupath(..) $chr(9) + 30 8 Nome del Server
xpop -a %MenuName $menupath(..) $chr(9) + 31 8 Network
xpop -a %MenuName $menupath(..) $chr(9) + 32 8 Ip del Server
xpop -a %MenuName $menupath(.) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(.) $chr(9) + 33 12 Pulisci finestra
xpop -a %MenuName $menupath(.) $chr(9) + 34 13 Pulisci tutte le finestre
xpop -a %MenuName $menupath(.) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(.) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(.) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(.) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(.) $chr(9) +s 0 0 -
xpop -a %MenuName $menupath(.) $chr(9) + 35 32 -------->PoPuP 0,4 NORMALI
hadd -m System MenuToXpopup $1-
xpopup -s %MenuName + $mouse.dx $mouse.dy
}
on *:signal:XPopup-status-menu: {
var %id $1
tokenize 32 $hget(System,MenuToXpopup)
if (%id == 1) { server -m $$?="Inserisci il server a cui vuoi connetterti" }
elseif (%id == 2) { list }
elseif (%id == 3) { join $$?="Scrivi il canale in cui entrare:" }
elseif (%id == 4) { KNOCK $$?="Scrivi il canale a cui bussare:" $$?="Cosa vuoi dire...?" }
elseif (%id == 5) { admin }
elseif (%id == 6) { halt }
elseif (%id == 7) { halt }
elseif (%id == 8) { halt }
elseif (%id == 9) { Links }
elseif (%id == 10) { lusers }
elseif (%id == 11) { motd }
elseif (%id == 12) { map }
elseif (%id == 13) { halt }
elseif (%id == 14) { halt }
elseif (%id == 15) { halt }
elseif (%id == 16) { { return } }
elseif (%id == 17) { halt }
elseif (%id == 18) { halt }
elseif (%id == 19) { halt }
elseif (%id == 20) { halt }
elseif (%id == 21) { stats }
elseif (%id == 22) { halt }
elseif (%id == 23) { time }
elseif (%id == 24) { halt }
elseif (%id == 25) { nickserv set language 4 }
elseif (%id == 26) { vxaway | set %sonoaway ON }
elseif (%id == 27) { ritornaway | set %sonoaway OFF }
elseif (%id == 28) { set %awaynick $?="imposta il nick in Away" | set %passaway $$?*="Imposta la password Password" }
elseif (%id == 29) { set %away.reason $?="Imposta motivo dell' AWAY:" }
elseif (%id == 30) { clipboard $server }
elseif (%id == 31) { clipboard $network }
elseif (%id == 32) { clipboard $serverip }
elseif (%id == 33) { clear $active }
elseif (%id == 34) { clearall }
elseif (%id == 35) { { /load -rs scripts\popups\status.txt | /unload -rs scripts\xmenu\status.vxd } }
}
alias -l menupath {
if ($1- == reset) { hadd -m System Menu 0 }
elseif ($hget(System,Menu) != $null) {
hadd System Menu $iif($len($1) > 1,$gettok($hget(System,Menu),$($+(1-,$calc($len($1) -1)),2),32)) $calc($gettok($hget(System,Menu),$len($1),32) +1) 0
return $gettok($hget(System,Menu),1- $len($1),32)
}
return $false
}
my code uses xpopup which owns the bug
on 1:LOAD: {
set %stile officexp
set %chiarox 250
set %bg 0
set %background 16777215
set %iconbox 14211288
set %checkbox 367615
set %disablecheckbox 255
set %disabledselected 255
set %disabledtext 255
set %selecttext 16777215
set %separator 255
set %menustext 0
set %selectbox 0
set %selectedtext 255
set %bk 255
set %linex +p
set %round 0
/load -rs dlls\dcx_tools.mrc
/echo -ast xPoPuPs uploaded successfully!... go to the Menu Menubar ---> click on xPoPuPs 8,15☺ 4√ᶍÐ 0,1☠ 7,1 http://vxd.altervista.org/VxD.htm 4,1✟ 0,1₦15,1Ҿ4,1₢8⃝4,1№5,1щ0,1ΐ4,1₵0,1ᴑ15,1ᴎ4,1³ 0,1 ✞ 0,1 ☠ 4$8¢14®4i5þ4†
}
alias -l shell alias shell returnex shell32.dll
alias xpopup_menu {
var %menu xpopup_menu
if ($xpopup(%menu).ismenu) { xpopup -d %menu }
if ( $xpopup(%menu).ismenu == $false ) {
if (%stile == custom) {
mpopup mirc 1
mpopup mircbar 1
xpopup -c %menu %stile
xpopup -t mirc %stile
xpopup -t mircbar %stile
xpopup -x %menu %linex
xpopup -R %menu +r %round
xpopup -R mircbar +a %chiarox
xpopup -R mirc +a %chiarox
xpopup -i mirc 0 $shell
xpopup -i mircbar 0 $shell
xpopupstyle mirc
xpopupstyle mircbar
xpopupstyle2 mirc
xpopupstyle2 mircbar
xpopupstyle3 mirc
xpopupstyle3 mircbar
xpopup -sm %menu + $mouse.dx $mouse.dy
mtest
mtest2
}
if (%stile != custom) {
mpopup mirc 1
mpopup mircbar 1
xpopup -c %menu %stile
xpopup -t mirc %stile
xpopup -t mircbar %stile
xpopup -x %menu %linex
xpopup -R %menu +r %round
xpopup -R mircbar +a %chiarox
xpopup -R mirc +a %chiarox
if ($isalias(shell)) xpopup -i mirc 0 $shell
if ($isalias(shell)) xpopup -i mircbar 0 $shell
xpopupstyle mirc
xpopupstyle mircbar
xpopupstyle2 mirc
xpopupstyle2 mircbar
xpopupstyle3 mirc
xpopupstyle3 mircbar
xpopup -sm %menu + $mouse.dx $mouse.dy
}
}
}
alias xpopupstyle {
var %popups = $1
if (%popups ) {
xpopup -l %popups 1 %background
xpopup -l %popups 2 %iconbox
xpopup -l %popups 3 %checkbox
xpopup -l %popups 4 %disablecheckbox
xpopup -l %popups 5 %disabledselected
xpopup -l %popups 6 %disabledtext
xpopup -l %popups 7 %selecttext
xpopup -l %popups 8 %selectbox
xpopup -l %popups 9 %separator
xpopup -l %popups 10 %menustext
xpopup -l %popups 11 %selectedtext
xpopup -R %popups +r %round
xpopup -x %popups %linex
}
else return
}
alias xpopupstyle2 {
var %popups = $1
if (%popups ) {
xpopup -i %popups + 0 $mircdirthemes\ico\1.ico
xpopup -i %popups + 0 $mircdirthemes\ico\2.ico
xpopup -i %popups + 0 $mircdirthemes\ico\3.ico
xpopup -i %popups + 0 $mircdirthemes\ico\4.ico
xpopup -i %popups + 0 $mircdirthemes\ico\5.ico
xpopup -i %popups + 0 $mircdirthemes\ico\6.ico
xpopup -i %popups + 0 $mircdirthemes\ico\7.ico
xpopup -i %popups + 0 $mircdirthemes\ico\8.ico
xpopup -i %popups + 0 $mircdirthemes\ico\9.ico
xpopup -i %popups + 0 $mircdirthemes\ico\10.ico
xpopup -i %popups + 0 $mircdirthemes\ico\11.ico
xpopup -i %popups + 0 $mircdirthemes\ico\12.ico
xpopup -i %popups + 0 $mircdirthemes\ico\13.ico
xpopup -i %popups + 0 $mircdirthemes\ico\14.ico
xpopup -i %popups + 0 $mircdirthemes\ico\15.ico
xpopup -i %popups + 0 $mircdirthemes\ico\16.ico
xpopup -i %popups + 0 $mircdirthemes\ico\17.ico
xpopup -i %popups + 0 $mircdirthemes\ico\18.ico
xpopup -i %popups + 0 $mircdirthemes\ico\19.ico
xpopup -i %popups + 0 $mircdirthemes\ico\20.ico
xpopup -i %popups + 0 $mircdirthemes\ico\21.ico
xpopup -i %popups + 0 $mircdirthemes\ico\22.ico
xpopup -i %popups + 0 $mircdirthemes\ico\23.ico
xpopup -i %popups + 0 $mircdirthemes\ico\24.ico
xpopup -i %popups + 0 $mircdirthemes\ico\25.ico
xpopup -i %popups + 0 $mircdirthemes\ico\26.ico
xpopup -i %popups + 0 $mircdirthemes\ico\27.ico
xpopup -i %popups + 0 $mircdirthemes\ico\28.ico
xpopup -i %popups + 0 $mircdirthemes\ico\29.ico
xpopup -i %popups + 0 $mircdirthemes\ico\30.ico
xpopup -i %popups + 0 $mircdirthemes\ico\31.ico
xpopup -i %popups + 0 $mircdirthemes\ico\32.ico
xpopup -i %popups + 0 $mircdirthemes\ico\33.ico
xpopup -i %popups + 0 $mircdirthemes\ico\34.ico
xpopup -i %popups + 0 $mircdirthemes\ico\35.ico
xpopup -i %popups + 0 $mircdirthemes\ico\36.ico
}
else return
}
alias mtest {
if (%stile == custom) {
if ($isalias(shell)) xpopup -i mirc 0 $shell
mpopup mirc 1
xpopup -t mirc custom
xpopup -b mirc $shortfn(%cust)
xpopupstyle mirc
xpopupstyle2 mirc
xpopupstyle3 mircbar
}
}
alias mtest2 {
if (%stile == custom) {
if ($isalias(shell)) xpopup -i mircbar 0 $shell
mpopup mircbar 1
xpopup -t mircbar custom
xpopup -b mircbar $shortfn(%cust)
xpopupstyle mircbar
xpopupstyle2 mircbar
xpopupstyle3 mircbar
}
}
on *:load:{
if (%stile == custom) {
/mtest
/mtest2
}
if (%stile != custom) {
xpopup -d xpopup_menu
if ($isalias(shell)) xpopup -i mirc 0 $shell
if ($isalias(shell)) xpopup -i mircbar 0 $shell
xpopup -t mirc %stile
xpopup -t mircbar %stile
xpopupstyle mirc
xpopupstyle mircbar
xpopupstyle2 mirc
xpopupstyle2 mircbar
xpopupstyle3 mirc
xpopupstyle3 mircbar
}
}
on *:start:{
if (%stile == custom) {
/mtest
/mtest2
}
if (%stile != custom) {
xpopup_menu
if ($isalias(shell)) xpopup -i mirc 0 $shell
if ($isalias(shell)) xpopup -i mircbar 0 $shell
xpopup -t mirc %stile
xpopup -t mircbar %stile
xpopupstyle mirc
xpopupstyle mircbar
xpopupstyle2 mirc
xpopupstyle2 mircbar
xpopupstyle3 mirc
xpopupstyle3 mircbar
}
}
;=======================================================================================================================================================================;
; xMenu - alias to apply icon on popup menu command | VxÐ ~ http://vxd.altervista.org/VxD.htm | ✟NeCRoNoMiCoN✞ ☠ $¢®iþ† | caronte.ade@gmail.com ;
;=======================================================================================================================================================================;
alias xpopupstyle3 {
var %popups = $1
if (%popups ) {
; example ; use this string -> xpopup -i %popups + 0 $mircdirthemes\ico\38.ico ; -----> icon location returns the suffix of command popup marked with --> 38 $chr(11) ;
;==============================================================> Enter here the list of icons (.ico) START LIST ICON POSITION N° 38 <=================================================================;
xpopup -i %popups + 0 $mircdirthemes\ico\37.ico
;===============================================================-> END LIST ICON POSITION <-======================================================================================================;
}
else return
}
menu menubar,status,channel,query {
1 $chr(11) x0,4PoPuPs
.2 $chr(11) $+ Menù Style
..3 $chr(11) $+ Office2003: { set %stile office2003 | .timer 2 0 xpopup_menu }
..4 $chr(11) $+ Office2003rev: { set %stile office2003rev | .timer 2 0 xpopup_menu }
..5 $chr(11) $+ Office xP: { set %stile officexp | .timer 2 0 xpopup_menu }
..6 $chr(11) $+ ICY: { set %stile icy | .timer 2 0 xpopup_menu }
..7 $chr(11) $+ ICYrev: { set %stile icyrev | .timer 2 0 xpopup_menu }
..8 $chr(11) $+ Grade: { set %stile grade | .timer 2 0 xpopup_menu }
..9 $chr(11) $+ Graderev: { set %stile graderev | .timer 2 0 xpopup_menu }
..10 $chr(11) $+ Normal: { set %stile normal | .timer 2 0 xpopup_menu }
..11 $chr(11) $+ Vertical: { set %stile vertical | .timer 2 0 xpopup_menu }
..12 $chr(11) $+ Verticalrev: { set %stile verticalrev | .timer 2 0 xpopup_menu }
..-
..13 $chr(11) $+ Custom image background: { set %stile custom | set %cust $sfile(*.bmp,Choose an image format .bmp,Ok) | xpopup -b xpopup_menu %cust | .timer 2 0 xpopup_menu }
..-
..14 $chr(11) $+ Frame border style - Effect Icons
...15 $chr(11) $+ Icon 3D: { set %linex +p | .timer 2 0 xpopup_menu }
...16 $chr(11) $+ Icon Shadow: { set %linex +i | .timer 2 0 xpopup_menu }
...-
...17 $chr(11) $+ Enable Round Border: { set %round 1 | .timer 2 0 xpopup_menu }
...18 $chr(11) $+ Linear Frame Border: { set %round 0 | .timer 2 0 xpopup_menu }
.-
.19 $chr(11) $+ Background Color: { set %background $dll(dlls\color.dll,Color,.) | .timer 2 0 xpopup_menu }
.-
.20 $chr(11) $+ Icon Box: { set %iconbox $dll(dlls\color.dll,Color,.) | .timer 2 0 xpopup_menu }
.-
.21 $chr(11) $+ Check Box: { set %checkbox $dll(dlls\color.dll,Color,.) | .timer 2 0 xpopup_menu }
.-
.22 $chr(11) $+ Disable check Box: { set %disablecheckbox $dll(dlls\color.dll,Color,.) | .timer 2 0 xpopup_menu }
.-
.23 $chr(11) $+ Disabled Selected: { set %disabledselected $dll(dlls\color.dll,Color,.) | .timer 2 0 xpopup_menu }
.-
.24 $chr(11) $+ Disabled Text: { set %disabledtext $dll(dlls\color.dll,Color,.) | .timer 2 0 xpopup_menu }
.-
.25 $chr(11) $+ Highlighted Text: { set %selecttext $dll(dlls\color.dll,Color,.) | .timer 2 0 xpopup_menu }
.-
.26 $chr(11) $+ Selected Box: { set %selectbox $dll(dlls\color.dll,Color,.) | .timer 2 0 xpopup_menu }
.-
.27 $chr(11) $+ ----Separator----:{ set %separator $dll(dlls\color.dll,Color,.) | .timer 2 0 xpopup_menu }
.-
.28 $chr(11) $+ Menu Text: { set %menustext $dll(dlls\color.dll,Color,.) | .timer 2 0 xpopup_menu }
.-
.29 $chr(11) $+ Selected Text: { set %selectedtext $dll(dlls\color.dll,Color,.) | .timer 2 0 xpopup_menu }
.-
.30 $chr(11) $+ Transparency
..31 $chr(11) $+ 0% : { set %chiarox 250 | .timer 2 0 xpopup_menu }
..-
..32 $chr(11) $+ 25% : { set %chiarox 230 | .timer 2 0 xpopup_menu }
..-
..33 $chr(11) $+ 50% : { set %chiarox 200 | .timer 2 0 xpopup_menu }
..-
..34 $chr(11) $+ 75% : { set %chiarox 150 | .timer 2 0 xpopup_menu }
..-
..35 $chr(11) $+ 100% : { set %chiarox 100 | .timer 2 0 xpopup_menu }
.-
.37 $chr(11) 0,3 APPLY ICON After EDIT a ICON: { .timer 1 0 /dll -u dcx.dll | .timer 2 0 load_dcx | .timer 3 0 xpopup_menu | if (%treex == ON ) /dcxtreebar }
-
♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡
-
36 $chr(11) 0,4 Nick List: { #nicklust on | colorilista }
-
♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡
-
Last edited by DEATHJ0KER; 09/06/12 12:15 AM.
A Creative & Interactive mIRC Scripting
|
|
|
|
Joined: Oct 2003
Posts: 3,918
Hoopy frood
|
Hoopy frood
Joined: Oct 2003
Posts: 3,918 |
Honestly, it sounds like you're expending too much effort in working around a bug that should be fixed in the dll. All I see is you adding more and more dlls / complexity on top of your code in order to work around the original broken code. Email the author and have them fix the bug-- problem solved.
- argv[0] on EFnet #mIRC - "Life is a pointer to an integer without a cast"
|
|
|
|
Joined: Apr 2012
Posts: 48
Ameglian cow
|
OP
Ameglian cow
Joined: Apr 2012
Posts: 48 |
I already asked you very much to @flobse and are often in its channel, my code does not fit into their lifestyle... What I don't understand is why something happens to closing mirc to the menubar, I try to explain better ... argv0 ---> has been resolved with your solution creating a popup menu identifier that invokes the alias in all Windows channel,status,menubar... Click to get the loading of my alias xpopup_menu. in the first method code "menupath" by flobse which essentially invokes a dialog window in my case it acts directly on the popups, where there is the fault Okay your solution, as it is more suitable to my code... alias /vxdscript .timer 1 0 /dll -u dcx.dll | .timer 2 0 xpopup_menu identifier in the mirc editor section popups (in my popups script are handled by a third party file) then I can afford a menu that is called $vxdscript lol menu Channel,Query,Status, menubar {
$vxdscript
} ;===========================================================================================================================;
; xMenu | VxÐ ~ http://vxd.altervista.org/VxD.htm | ✟NeCRoNoMiCoN✞ ☠ $¢®iþ† | caronte.ade@gmail.com ;
;===========================================================================================================================;
on 1:LOAD: {
set %stile officexp
set %chiaro 223
set %bg 0
set %background 0
set %iconbox 0
set %checkbox 367615
set %disablecheckbox 255
set %disabledselected 255
set %disabledtext 255
set %selecttext 16777215
set %separator 255
set %menustext 16777215
set %selectbox 0
set %selectedtext 255
set %bk 255
}
alias xpopup_menu {
var %menu xpopup_menu
if ($xpopup(%menu).ismenu) { xpopup -d %menu }
if ( $xpopup(%menu).ismenu == $false ) {
if (%stile == custom) {
mpopup mirc 1
mpopup mircbar 1
xpopup -c %menu %stile
xpopup -t mirc %stile
xpopup -t mircbar %stile
xpopup -x %menu +dpi
xpopup -R %menu +r 1
xpopup -R mircbar +a %chiaro
xpopup -R mirc +a %chiaro
xpopup -i mirc 0 $shell
xpopup -i mircbar 0 $shell
xpopupstyle mirc
xpopupstyle mircbar
xpopup -sm %menu + $mouse.dx $mouse.dy
mtest
mtest2
}
if (%stile != custom) {
mpopup mirc 1
mpopup mircbar 1
xpopup -c %menu %stile
xpopup -t mirc %stile
xpopup -t mircbar %stile
xpopup -x %menu +dpi
xpopup -R %menu +r 1
xpopup -R mircbar +a %chiaro
xpopup -R mirc +a %chiaro
if ($isalias(shell)) xpopup -i mirc 0 $shell
if ($isalias(shell)) xpopup -i mircbar 0 $shell
xpopupstyle mirc
xpopupstyle mircbar
xpopup -sm %menu + $mouse.dx $mouse.dy
}
}
}
alias xpopupstyle {
var %popups = $1
if (%popups ) {
xpopup -l %popups 1 %background
xpopup -l %popups 2 %iconbox
xpopup -l %popups 3 %checkbox
xpopup -l %popups 4 %disablecheckbox
xpopup -l %popups 5 %disabledselected
xpopup -l %popups 6 %disabledtext
xpopup -l %popups 7 %selecttext
xpopup -l %popups 8 %selectbox
xpopup -l %popups 9 %separator
xpopup -l %popups 10 %menustext
xpopup -l %popups 11 %selectedtext
}
else return
}
alias mtest {
if (%stile == custom) {
if ($isalias(shell)) xpopup -i mirc 0 $shell
mpopup mirc 1
xpopup -t mirc custom
xpopup -b mirc $shortfn(%cust)
xpopupstyle mirc
}
}
alias mtest2 {
if (%stile == custom) {
if ($isalias(shell)) xpopup -i mircbar 0 $shell
mpopup mircbar 1
xpopup -t mircbar custom
xpopup -b mircbar $shortfn(%cust)
xpopupstyle mircbar
}
}
on *:load:{
if (%stile == custom) {
/mtest
/mtest2
}
if (%stile != custom) {
xpopup -d xpopup_menu
if ($isalias(shell)) xpopup -i mirc 0 $shell
if ($isalias(shell)) xpopup -i mircbar 0 $shell
xpopup -t mirc %stile
xpopup -t mircbar %stile
xpopupstyle mirc
xpopupstyle mircbar
}
}
on *:start:{
if (%stile == custom) {
/mtest
/mtest2
}
if (%stile != custom) {
xpopup_menu
if ($isalias(shell)) xpopup -i mirc 0 $shell
if ($isalias(shell)) xpopup -i mircbar 0 $shell
xpopup -t mirc %stile
xpopup -t mircbar %stile
xpopupstyle mirc
xpopupstyle mircbar
}
}
menu menubar {
1 $chr(11) $+ 0,4APPLICAZIONI:applicazioni
-
2 $chr(11) $+ 0,4AZIONI ✞ :azioni
-
3 $chr(11) $+ 0,4BOTSERVER:bot
-
4 $chr(11) $+ 0,4CHANSERVER:canale
-
5 $chr(11) $+ 0,4HOSTSERVER:host
-
6 $chr(11) $+ 0,4MEMOSERVER:memo
-
7 $chr(11) $+ 0,4NICKSERVER:nickservx
}
Last edited by DEATHJ0KER; 12/06/12 07:54 PM.
A Creative & Interactive mIRC Scripting
|
|
|
|
Joined: Apr 2012
Posts: 48
Ameglian cow
|
OP
Ameglian cow
Joined: Apr 2012
Posts: 48 |
argv0 I just your solution, but why xpopup\r contained in dcx dll functions properly, it needs a review as this bug was never fixed. Utilities thanks again, I followed your advice and I reported it all http://dcx.scriptsdb.org/bug/index.php?do=details&task_id=826
A Creative & Interactive mIRC Scripting
|
|
|
|
Joined: Apr 2012
Posts: 48
Ameglian cow
|
OP
Ameglian cow
Joined: Apr 2012
Posts: 48 |
Exit mIRC ~ DCX.DLL " WORK " At last, this bug has been fixed http://dcx.scriptsdb.org/bug/index.php?do=details&task_id=826 I just have to wait for the new version of dcx.dll Thanks again Ook
Last edited by DEATHJ0KER; 28/01/13 01:54 AM.
A Creative & Interactive mIRC Scripting
|
|
|
|
|