44using System . Collections . Generic ;
55using System . IO ;
66using System . Linq ;
7+ using System . Reflection ;
78using System . Text ;
89using System . Threading . Tasks ;
910using System . Windows ;
1415using System . Windows . Media ;
1516using System . Windows . Media . Imaging ;
1617using System . Windows . Navigation ;
17- using System . Windows . Shapes ;
18+ using XJK ;
1819using XJK . SysX ;
1920
2021namespace ShellCommand
@@ -43,7 +44,7 @@ public MainWindow()
4344 App . Current . Shutdown ( ) ;
4445 }
4546
46- if ( XJK . ENV . IsAdministrator ( ) ) Title += " (Admin)" ;
47+ if ( ENV . IsAdministrator ( ) ) Title += " (Admin)" ;
4748 if ( Environment . GetCommandLineArgs ( ) . Length == 2 )
4849 {
4950 switch ( Environment . GetCommandLineArgs ( ) [ 1 ] )
@@ -62,66 +63,98 @@ public MainWindow()
6263
6364 private void Install ( object sender , RoutedEventArgs e )
6465 {
65- if ( XJK . ENV . IsAdministrator ( ) )
66+ if ( ENV . IsAdministrator ( ) )
6667 {
6768 AdminInstall ( ) ;
6869 }
6970 else
7071 {
71- Cmd . RunAsAdmin ( XJK . ENV . EntryLocation , ARG_INSTALL ) ;
72+ Cmd . RunAsAdmin ( ENV . EntryLocation , ARG_INSTALL ) ;
7273 }
7374
74- var globalfile = System . IO . Path . Combine ( XJK . ENV . BaseDirectory , Env . GlobalSettingFileName ) ;
75+ var globalfile = Path . Combine ( ENV . BaseDirectory , Env . GlobalSettingFileName ) ;
7576 if ( ! File . Exists ( globalfile ) )
7677 {
77- var templatefile = System . IO . Path . Combine ( XJK . ENV . BaseDirectory , Env . GlobalTemplateSettingFileName ) ;
78- if ( File . Exists ( templatefile ) )
79- {
80- var templateObj = Util . Yaml . LoadYaml < GlobalConfig > ( templatefile ) ;
81- Util . Yaml . SaveYaml ( globalfile , templateObj ) ;
82- }
78+ ResetGlobalSettingFile ( false ) ;
8379 }
8480 }
8581
8682 private void Uninstall ( object sender , RoutedEventArgs e )
8783 {
88- if ( XJK . ENV . IsAdministrator ( ) )
84+ if ( ENV . IsAdministrator ( ) )
8985 {
9086 AdminUninstall ( ) ;
9187 }
9288 else
9389 {
94- Cmd . RunAsAdmin ( XJK . ENV . EntryLocation , ARG_UNINSTALL ) ;
90+ Cmd . RunAsAdmin ( ENV . EntryLocation , ARG_UNINSTALL ) ;
9591 }
9692 }
9793
9894 private void AdminInstall ( )
9995 {
100- Util . Reg . SetExePath ( XJK . ENV . EntryLocation ) ;
96+ Util . Reg . SetExePath ( ENV . EntryLocation ) ;
10197 Util . Reg . SetLogPath ( ) ;
102- Cmd . RunAsInvoker ( Env . GetSrmPath ( ) , "install ShellCommand.exe -codebase" ) ;
98+ var srm = Path . Combine ( ENV . BaseDirectory , Env . SrmExeName ) ;
99+ Cmd . RunAsInvoker ( srm , "install ShellCommand.exe -codebase" ) ;
103100 }
104101
105102 private void AdminUninstall ( )
106103 {
107- Cmd . RunAsInvoker ( Env . GetSrmPath ( ) , "uninstall ShellCommand.exe" ) ;
104+ var srm = Path . Combine ( ENV . BaseDirectory , Env . SrmExeName ) ;
105+ Cmd . RunAsInvoker ( srm , "uninstall ShellCommand.exe" ) ;
108106 Util . Reg . DeleteSubKey ( ) ;
109107 }
110108
111- private void OpenAppSettingFolder ( object sender , RoutedEventArgs e )
109+ private void OpenAppFolder ( object sender , RoutedEventArgs e )
112110 {
113- Cmd . RunAsInvoker ( "explorer" , Env . GetAppFolder ( ) ) ;
111+ Cmd . RunAsInvoker ( "explorer" , ENV . BaseDirectory ) ;
114112 }
115113
116114 private void EditGlobalSettingFile ( object sender , RoutedEventArgs e )
117115 {
118- var configpath = System . IO . Path . Combine ( XJK . ENV . BaseDirectory , Env . GlobalSettingFileName ) ;
116+ var configpath = Path . Combine ( ENV . BaseDirectory , Env . GlobalSettingFileName ) ;
119117 Cmd . RunAsInvoker ( configpath , "" ) ;
120118 }
121119
122- private void TestGlobalMenu ( object sender , RoutedEventArgs e )
120+ private void ResetGlobalSettingFile ( object sender , RoutedEventArgs e )
121+ {
122+ ResetGlobalSettingFile ( true ) ;
123+ }
124+
125+ private void ResetGlobalSettingFile ( bool showMessage )
126+ {
127+ var templatefile = Path . Combine ( ENV . BaseDirectory , Env . GlobalTemplateSettingFileName ) ;
128+ var targetfile = Path . Combine ( ENV . BaseDirectory , Env . GlobalSettingFileName ) ;
129+ if ( ! File . Exists ( templatefile ) )
130+ {
131+ if ( showMessage )
132+ {
133+ MessageBox . Show ( "Template global setting file NOT exist!" , Env . AppName ) ;
134+ }
135+ return ;
136+ }
137+ if ( File . Exists ( targetfile ) )
138+ {
139+ if ( showMessage )
140+ {
141+ var result = MessageBox . Show ( "Global setting file will be overwrite, sure?" , Env . AppName , MessageBoxButton . OKCancel ) ;
142+ if ( result == MessageBoxResult . Cancel )
143+ {
144+ return ;
145+ }
146+ }
147+ }
148+ File . Copy ( templatefile , targetfile , true ) ;
149+ }
150+
151+ private void TestGlobalTemplateMenu ( object sender , RoutedEventArgs e )
123152 {
124- DirectoryBackgroundContextMenu . CreateMenu ( Env . GetAppFolder ( ) , "" ) . Show ( XJK . SysX . Device . Mouse . GetPosition ( ) ) ;
153+ var position = XJK . SysX . Device . Mouse . GetPosition ( ) ;
154+ var globalPath = Path . Combine ( ENV . BaseDirectory , Env . GlobalTemplateSettingFileName ) ;
155+ var menu = MenuCreator . Create ( ENV . BaseDirectory , "" , globalPath ) ;
156+ menu . Show ( position ) ;
125157 }
158+
126159 }
127160}
0 commit comments