@@ -44,7 +44,7 @@ static void Main(string[] args)
44
44
return ;
45
45
}
46
46
47
- ProcessCommandLine ( commandLineParser , settings ) ;
47
+ var windows = ProcessCommandLine ( commandLineParser , settings ) ;
48
48
49
49
if ( commandLineParser . HasToggle ( "n" ) || commandLineParser . HasToggle ( "nogui" ) )
50
50
{
@@ -60,10 +60,10 @@ static void Main(string[] args)
60
60
61
61
Application . EnableVisualStyles ( ) ;
62
62
Application . SetCompatibleTextRenderingDefault ( false ) ;
63
- Application . Run ( new MainForm ( settings ) ) ;
63
+ Application . Run ( new MainForm ( settings , windows . ToArray ( ) ) ) ;
64
64
}
65
65
66
- static void ProcessCommandLine ( CommandLineParser сommandLineParser , ApplicationSettings settings )
66
+ static ICollection < Window > ProcessCommandLine ( CommandLineParser сommandLineParser , ApplicationSettings settings )
67
67
{
68
68
// Delay
69
69
if ( сommandLineParser . HasToggle ( "d" ) || сommandLineParser . HasToggle ( "delay" ) )
@@ -128,11 +128,17 @@ static void ProcessCommandLine(CommandLineParser сommandLineParser, Application
128
128
windowHandles . AddRange ( handles ) ;
129
129
}
130
130
131
+ var windows = new Dictionary < IntPtr , Window > ( ) ;
131
132
var languageManager = new LanguageManager ( settings . LanguageName ) ;
132
133
foreach ( var windowHandle in windowHandles . Where ( x => x != IntPtr . Zero && User32 . GetParent ( x ) == IntPtr . Zero ) )
133
134
{
134
135
var window = new Window ( windowHandle , languageManager ) ;
135
136
137
+ if ( ! windows . ContainsKey ( window . Handle ) )
138
+ {
139
+ windows . Add ( window . Handle , window ) ;
140
+ }
141
+
136
142
// Set a Window monitor
137
143
if ( сommandLineParser . HasToggle ( "m" ) || сommandLineParser . HasToggle ( "monitor" ) )
138
144
{
@@ -287,6 +293,47 @@ static void ProcessCommandLine(CommandLineParser сommandLineParser, Application
287
293
window . SendToBottom ( ) ;
288
294
}
289
295
296
+ // Roll Up
297
+ if ( сommandLineParser . HasToggle ( "r" ) || сommandLineParser . HasToggle ( "rollup" ) )
298
+ {
299
+ window . RollUpDown ( ) ;
300
+ }
301
+
302
+ // Borderless
303
+ if ( сommandLineParser . HasToggle ( "b" ) || сommandLineParser . HasToggle ( "borderless" ) )
304
+ {
305
+ window . MakeBorderless ( ) ;
306
+ }
307
+
308
+ // Hide
309
+ if ( сommandLineParser . HasToggle ( "hide" ) )
310
+ {
311
+ var hideString = сommandLineParser . GetToggleValueOrDefault ( "hide" , string . Empty ) . ToLower ( ) ;
312
+
313
+ if ( hideString == "on" )
314
+ {
315
+ User32 . ShowWindow ( window . Handle , ( int ) WindowShowStyle . Hide ) ;
316
+ }
317
+
318
+ if ( hideString == "off" )
319
+ {
320
+ User32 . ShowWindow ( window . Handle , ( int ) WindowShowStyle . Show ) ;
321
+ }
322
+ }
323
+
324
+ // System Menu
325
+ if ( сommandLineParser . HasToggle ( "systemmenu" ) )
326
+ {
327
+ var systemmenuString = сommandLineParser . GetToggleValueOrDefault ( "systemmenu" , string . Empty ) . ToLower ( ) ;
328
+ switch ( systemmenuString )
329
+ {
330
+ case "restore" : window . Restore ( ) ; break ;
331
+ case "minimize" : window . Minimize ( ) ; break ;
332
+ case "maximize" : window . Maximize ( ) ; break ;
333
+ case "close" : window . Close ( ) ; break ;
334
+ }
335
+ }
336
+
290
337
// Open File In Explorer
291
338
if ( сommandLineParser . HasToggle ( "o" ) || сommandLineParser . HasToggle ( "openinexplorer" ) )
292
339
{
@@ -383,6 +430,8 @@ static void ProcessCommandLine(CommandLineParser сommandLineParser, Application
383
430
}
384
431
}
385
432
}
433
+
434
+ return windows . Values ;
386
435
}
387
436
388
437
static void OnCurrentDomainUnhandledException ( object sender , UnhandledExceptionEventArgs e )
@@ -428,14 +477,21 @@ static string BuildHelpString() =>
428
477
normal,
429
478
belownormal,
430
479
idle]
480
+ --systemmenu [restore,
481
+ minimize,
482
+ maximize,
483
+ close]
431
484
--transparency [0 ... 100]
432
485
--alwaysontop [on, off]
433
486
-g --aeroglass [on, off]
487
+ --hide [on, off]
434
488
--hidealttab [on, off]
435
489
--clickthrough [on, off]
436
490
--minimizebutton [on, off]
437
491
--maximizebutton [on, off]
438
492
--sendtobottom Send To Bottom
493
+ -b --borderless Borderless
494
+ -r --rollup Roll Up
439
495
-o --openinexplorer Open File In Explorer
440
496
-c --copytoclipboard Copy Window Text To Clipboard
441
497
--copyscreenshot Copy Screenshot To Clipboard
0 commit comments