-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
119 lines (106 loc) · 4.61 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
using System;
using System.Windows.Forms;
using System.IO;
using System.Drawing;
using Microsoft.Win32;
namespace BilderGui
{
static class Program
{
static string config = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).Remove(0, 6) + "\\config.dat";
[STAThread]
static void Main(string[] args)
{
string folder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).Remove(0, 6) + "\\Bilder";
string user = Environment.UserName;
string bilder = "C:\\Users\\" + user + "\\AppData\\Local\\Packages\\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\\LocalState\\Assets\\";
bool force = false;
if (args.Length > 0)
{
if (args[0].Equals("startup"))
{
StartUp();
return;
}
else if (args[0].Equals("nostartup"))
{
RemoveStartUp();
return;
}
else if (args[0].Equals("-s")) force = true;
}
folder = Init(folder, force);
Copy(bilder, folder);
}
static void StartUp()
{
RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
key.SetValue("Bilder", Directory.GetCurrentDirectory() + "\\BilderGui.exe");
}
static void RemoveStartUp()
{
RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
key.DeleteValue("Bilder", false);
}
static string Init(string folder, bool force)
{
if (File.Exists(config))
{
StreamReader sr = new StreamReader(File.OpenRead(config));
string read = sr.ReadLine();
if (!read.Trim().Equals("")) folder = read;
sr.Close();
}
if(!File.Exists(config)||force||!Directory.Exists(folder))
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.ShowNewFolderButton = true;
fbd.RootFolder = Environment.SpecialFolder.Desktop;
if (fbd.ShowDialog() == DialogResult.OK)
{
folder = fbd.SelectedPath;
}
else if (!Directory.Exists(folder)) folder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).Remove(0, 6) + "\\Bilder";
StreamWriter sw = new StreamWriter(File.Create(config));
sw.Write(folder);
sw.Close();
}
if (!folder.EndsWith("\\")) folder += "\\";
if (!Directory.Exists(folder)) Directory.CreateDirectory(folder);
if (!Directory.Exists(folder + "Horizontal")) Directory.CreateDirectory(folder + "Horizontal");
if (!Directory.Exists(folder + "Vertikal")) Directory.CreateDirectory(folder + "Vertikal");
return folder;
}
static void Copy(string bilder, string folder)
{
string[] files = Directory.GetFiles(bilder);
foreach (string file in files)
{
FileInfo fi = new FileInfo(file);
if (fi.Length > 100 * 1024)
{
string pathHo = folder + "Horizontal\\";
string pathVer = folder + "Vertikal\\";
if (!File.Exists(pathVer + fi.Name + ".jpg")&& !File.Exists(pathHo + fi.Name + ".jpg"))
{
Image img = Image.FromFile(file);
if (img.Width > img.Height)
{
File.Copy(file, pathHo + fi.Name + ".jpg");
Console.WriteLine("Copied: " + fi.Name + " to " + pathHo + "\nwith " + fi.Length / 1024 + "kb\n");
}
else if(img.Width < img.Height)
{
File.Copy(file, pathVer + fi.Name + ".jpg");
Console.WriteLine("Copied: " + fi.Name + " to " + pathVer + "\nwith " + fi.Length / 1024 + "kb\n");
}
else
{
Console.WriteLine("Not copied: " + fi.Name + " is probably not the type of image you want!\n");
}
}
}
}
}
}
}