AutoHotkey: Duplicate starter menu entry: Difference between revisions

From TotalcmdWiki
Jump to navigation Jump to search
m (added link back to Autohotkey)
(V1.1: now also duplicates entries in directory hotlist)
Line 1: Line 1:
<pre>
<pre>
; ////////////////////////////////////////////////////////////////////////////
; ////////////////////////////////////////////////////////////////////////////
; // (W) StatusQuo 2008 for TC 7.02a
; // TC_StartMenu_DuplicateEntry.ahk V1.1
; // (W) StatusQuo 2008 for TC 7.02a (tested up to 7.03)
; //
; //
; // Duplicates an entry in TC starter menu
; // Duplicates an entry in TC Start Menu or Directory Hotlist
; ////////////////////////////////////////////////////////////////////////////
; // window title strings:
; //    Change Start Menu / Startermenü ändern ahk_class TUSERMENUCHANGE
; //    Total Commander ahk_class TSTDTREEDLG
; ////////////////////////////////////////////////////////////////////////////
; ////////////////////////////////////////////////////////////////////////////


WinWait, ahk_class TUSERMENUCHANGE,  
; *** set window class names
IfWinNotActive, ahk_class TUSERMENUCHANGE,, WinActivate, ahk_class TUSERMENUCHANGE,  
sClassMainWin := "TUSERMENUCHANGE"
WinWaitActive, ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
sClassDialog  := "TSTDTREEDLG"
 
; *** wait for & activate window
WinWait       , ahk_class %sClassMainWin%,  
IfWinNotActive, ahk_class %sClassMainWin%,, WinActivate, ahk_class %sClassMainWin%,  
WinWaitActive , ahk_class %sClassMainWin%, ; main "Change Start Menu"


; *** store source values
; *** store source values
ControlGetText, sText3, TEdit3,     ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
ControlGetText, sText3, TEdit3, ahk_class %sClassMainWin%, ; main window
ControlGetText, sText2, TEdit2,     ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
ControlGetText, sText2, TEdit2, ahk_class %sClassMainWin%, ; main window
ControlGetText, sText1, TEdit1,     ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
ControlGetText, sText1, TEdit1, ahk_class %sClassMainWin%, ; main window
ControlGet,    iCBox2, Checked,, TCheckBox2, ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
if (sText3 = "")
ControlGet,    iCBox1, Checked,, TCheckBox1, ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
{
sDialogType := "dir"
} else {
sDialogType := "start"
ControlGet,    iCBox2, Checked,, TCheckBox2, ahk_class %sClassMainWin%, ; main window
ControlGet,    iCBox1, Checked,, TCheckBox1, ahk_class %sClassMainWin%, ; main window
}


; *** get entry title
; *** get entry title
ControlClick,  TButton5, ahk_class TUSERMENUCHANGE, ; Button "Change Title"
if (sDialogType = "dir")
WinWaitActive, ahk_class TSTDTREEDLG, ; Dialog "Change Title"
{
ControlGetText, sMenuTitle, TEdit1, ahk_class TSTDTREEDLG
ControlClick,  TButton4, ahk_class %sClassMainWin%, ; Button "Change Title"; DirMenu
ControlClick,  TButton1, ahk_class TSTDTREEDLG, ; Button Cancel, close "Change Title" dialog
} else {
WinWaitActive, ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
ControlClick,  TButton5, ahk_class %sClassMainWin%, ; Button "Change Title"; StartMenu
}
WinWaitActive,                     ahk_class %sClassDialog%, ; dialog "Change Title"
ControlGetText, sMenuTitle, TEdit1, ahk_class %sClassDialog% ; Title
ControlClick,  TButton1,           ahk_class %sClassDialog%, ; Button Cancel, close "Change Title" dialog
WinWaitActive,                     ahk_class %sClassMainWin%, ; main window


; *** add new entry
; *** add new entry
ControlClick,  TButton8, ahk_class TUSERMENUCHANGE, ; Button "Add Menu Entry"
if (sDialogType = "dir")
WinWaitActive, ahk_class TSTDTREEDLG,
{
ControlSetText, TEdit1, %sMenuTitle% [copy], ahk_class TSTDTREEDLG
ControlClick,  TButton7, ahk_class %sClassMainWin%, ; Button "Add Menu Entry"
ControlClick,  TButton2, ahk_class TSTDTREEDLG, ; Button OK, close "Title" dialog
} else {
WinWaitActive, ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
ControlClick,  TButton8, ahk_class %sClassMainWin%, ; Button "Add Menu Entry"
}
WinWaitActive,                               ahk_class %sClassDialog%, ; dialog  "Change Title"
ControlSetText, TEdit1, %sMenuTitle% [copy], ahk_class %sClassDialog% ; Title
ControlClick,  TButton2,                   ahk_class %sClassDialog%, ; Button OK, close "Title" dialog
WinWaitActive,                               ahk_class %sClassMainWin%, ; main window


; *** fill stored values from source entry
; *** fill stored values from source entry
ControlSetText, TEdit3, %sText3%, ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
if (sDialogType = "start")
ControlSetText, TEdit2, %sText2%, ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
{
ControlSetText, TEdit1, %sText1%, ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
ControlSetText, TEdit3, %sText3%, ahk_class %sClassMainWin%, ; main window
if iCBox2
}
Control, Check,,  TCheckBox2, ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
ControlSetText, TEdit2, %sText2%, ahk_class %sClassMainWin%, ; main window
else
ControlSetText, TEdit1, %sText1%, ahk_class %sClassMainWin%, ; main window
Control, UnCheck,, TCheckBox2, ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
 
if iCBox1
if (sDialogType = "start")
Control, Check,,  TCheckBox1, ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
{
else
if iCBox2
Control, UnCheck,, TCheckBox1, ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
Control, Check,,  TCheckBox2, ahk_class %sClassMainWin%, ; main window
else
Control, UnCheck,, TCheckBox2, ahk_class %sClassMainWin%, ; main window
if iCBox1
Control, Check,,  TCheckBox1, ahk_class %sClassMainWin%, ; main window
else
Control, UnCheck,, TCheckBox1, ahk_class %sClassMainWin%, ; main window


; *** set cursor to command value
; *** set cursor to command value
ControlFocus, TEdit3, ahk_class TUSERMENUCHANGE, ; main "Change Start Menu"
ControlFocus, TEdit3, ahk_class %sClassMainWin%, ; main window
ControlSend,  TEdit3, {HOME},  
ControlSend,  TEdit3, {HOME},  
}
</pre>
</pre>


Back to [[AutoHotkey]]
Back to [[AutoHotkey]]

Revision as of 20:58, 30 May 2008

	; ////////////////////////////////////////////////////////////////////////////
	; // TC_StartMenu_DuplicateEntry.ahk V1.1
	; // (W) StatusQuo 2008 for TC 7.02a (tested up to 7.03)
	; //
	; // Duplicates an entry in TC Start Menu or Directory Hotlist
	; ////////////////////////////////////////////////////////////////////////////

	; *** set window class names
sClassMainWin := "TUSERMENUCHANGE"
sClassDialog  := "TSTDTREEDLG"

	; *** wait for & activate window
WinWait       , ahk_class %sClassMainWin%, 
IfWinNotActive, ahk_class %sClassMainWin%,, WinActivate, ahk_class %sClassMainWin%, 
WinWaitActive , ahk_class %sClassMainWin%,	; main "Change Start Menu"

	; *** store source values
ControlGetText, sText3, TEdit3, ahk_class %sClassMainWin%,	; main window
ControlGetText, sText2, TEdit2, ahk_class %sClassMainWin%,	; main window
ControlGetText, sText1, TEdit1, ahk_class %sClassMainWin%,	; main window
if (sText3 = "")
{
	sDialogType := "dir"
} else {
	sDialogType := "start"
	ControlGet,     iCBox2, Checked,, TCheckBox2, ahk_class %sClassMainWin%,	; main window
	ControlGet,     iCBox1, Checked,, TCheckBox1, ahk_class %sClassMainWin%,	; main window
}

	; *** get entry title
if (sDialogType = "dir")
{
	ControlClick,   TButton4, ahk_class %sClassMainWin%,	; Button "Change Title"; DirMenu
} else {
	ControlClick,   TButton5, ahk_class %sClassMainWin%,	; Button "Change Title"; StartMenu
}
WinWaitActive,                      ahk_class %sClassDialog%,	; dialog  "Change Title"
ControlGetText, sMenuTitle, TEdit1, ahk_class %sClassDialog%	; Title
ControlClick,   TButton1,           ahk_class %sClassDialog%,	; Button Cancel, close "Change Title" dialog
WinWaitActive,                      ahk_class %sClassMainWin%,	; main window

	; *** add new entry
if (sDialogType = "dir")
{
	ControlClick,   TButton7, ahk_class %sClassMainWin%,	; Button "Add Menu Entry"
} else {
	ControlClick,   TButton8, ahk_class %sClassMainWin%,	; Button "Add Menu Entry"
}
WinWaitActive,                               ahk_class %sClassDialog%,	; dialog  "Change Title"
ControlSetText, TEdit1, %sMenuTitle% [copy], ahk_class %sClassDialog%	; Title
ControlClick,   TButton2,                    ahk_class %sClassDialog%,	; Button OK, close "Title" dialog
WinWaitActive,                               ahk_class %sClassMainWin%,	; main window

	; *** fill stored values from source entry
if (sDialogType = "start")
{
	ControlSetText, TEdit3, %sText3%, ahk_class %sClassMainWin%,	; main window
}
ControlSetText, TEdit2, %sText2%, ahk_class %sClassMainWin%,	; main window
ControlSetText, TEdit1, %sText1%, ahk_class %sClassMainWin%,	; main window

if (sDialogType = "start")
{
	if iCBox2
		Control, Check,,   TCheckBox2, ahk_class %sClassMainWin%,	; main window
	else
		Control, UnCheck,, TCheckBox2, ahk_class %sClassMainWin%,	; main window
	if iCBox1
		Control, Check,,   TCheckBox1, ahk_class %sClassMainWin%,	; main window
	else
		Control, UnCheck,, TCheckBox1, ahk_class %sClassMainWin%,	; main window

	; *** set cursor to command value
ControlFocus, TEdit3, ahk_class %sClassMainWin%,	; main window
ControlSend,  TEdit3, {HOME}, 
}

Back to AutoHotkey