Skip to content

Commit 4ab041e

Browse files
committed
Added parameter "--minimized" to start FritzBoxCallMonitor minimized
Console buffer width is now handled dynamically
1 parent ca0b756 commit 4ab041e

File tree

5 files changed

+53
-4
lines changed

5 files changed

+53
-4
lines changed

FritzBoxCallMonitor/Arguments.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ private Arguments()
1515
public string OnConnected { get; private set; }
1616
public string OnConnectionEnd { get; private set; }
1717

18+
public bool Minimize { get; private set; }
19+
1820
public static Arguments ParseCommandline()
1921
{
2022
Arguments parsed = new Arguments();
@@ -45,6 +47,17 @@ public static Arguments ParseCommandline()
4547
break;
4648
}
4749
}
50+
else if (item.StartsWith("--"))
51+
{
52+
string param = item.Substring(2, item.Length - 2).ToLower();
53+
54+
switch (param)
55+
{
56+
case "minimize":
57+
parsed.Minimize = true;
58+
break;
59+
}
60+
}
4861
}
4962

5063
return parsed;
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using System;
2+
using System.Diagnostics;
3+
using System.Runtime.InteropServices;
4+
5+
namespace FritzBoxCallMonitor
6+
{
7+
public class ConsoleWindowUnmanaged
8+
{
9+
private ConsoleWindowUnmanaged()
10+
{ }
11+
12+
const int SW_MINIMIZE = 6;
13+
private const int SW_SHOW = 5;
14+
15+
[DllImport("user32.dll")]
16+
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
17+
18+
public static void Minimize()
19+
{
20+
IntPtr consoleHandle = Process.GetCurrentProcess().MainWindowHandle;
21+
ShowWindow(consoleHandle, SW_MINIMIZE);
22+
}
23+
24+
public static void Show()
25+
{
26+
IntPtr consoleHandle = Process.GetCurrentProcess().MainWindowHandle;
27+
ShowWindow(consoleHandle, SW_SHOW);
28+
}
29+
}
30+
}

FritzBoxCallMonitor/FritzBoxCallMonitor.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
</ItemGroup>
4444
<ItemGroup>
4545
<Compile Include="Arguments.cs" />
46+
<Compile Include="ConsoleWindowUnmanaged.cs" />
4647
<Compile Include="EventDrivenTcpClient.cs" />
4748
<Compile Include="Program.cs" />
4849
<Compile Include="Properties\AssemblyInfo.cs" />

FritzBoxCallMonitor/Program.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@ internal class Program
1515
private static void Main()
1616
{
1717
Arguments = Arguments.ParseCommandline();
18-
18+
19+
if (Arguments.Minimize)
20+
ConsoleWindowUnmanaged.Minimize();
21+
1922
Console.Title = String.Format("FritzBoxCallMonitor on {0}", Arguments.FritzBox);
20-
Console.SetBufferSize(500, 500);
2123

2224
IPAddress fritzBoxIp = null;
2325
IPAddress.TryParse(Arguments.FritzBox, out fritzBoxIp);
@@ -101,6 +103,9 @@ private static void tcpClient_DataReceived(EventDrivenTcpClient sender, object d
101103

102104
private static void Log(string message)
103105
{
106+
if (Console.BufferWidth < message.Length)
107+
Console.BufferWidth = message.Length;
108+
104109
Console.WriteLine(String.Format("{0:yyyy-MM-dd HH:mm:ss}\t{1}", DateTime.Now, message));
105110
}
106111
}

FritzBoxCallMonitor/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,5 @@
3232
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
3333
// übernehmen, indem Sie "*" eingeben:
3434
// [assembly: AssemblyVersion("1.0.*")]
35-
[assembly: AssemblyVersion("1.0.0.0")]
36-
[assembly: AssemblyFileVersion("1.0.0.0")]
35+
[assembly: AssemblyVersion("1.1.0.0")]
36+
[assembly: AssemblyFileVersion("1.1.0.0")]

0 commit comments

Comments
 (0)