-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathREADME.html
More file actions
255 lines (230 loc) · 10.8 KB
/
README.html
File metadata and controls
255 lines (230 loc) · 10.8 KB
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Lock Screen</title>
<style>
/* From extension vscode.github */
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
.vscode-dark img[src$=\#gh-light-mode-only],
.vscode-light img[src$=\#gh-dark-mode-only],
.vscode-high-contrast:not(.vscode-high-contrast-light) img[src$=\#gh-light-mode-only],
.vscode-high-contrast-light img[src$=\#gh-dark-mode-only] {
display: none;
}
</style>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Microsoft/vscode/extensions/markdown-language-features/media/markdown.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Microsoft/vscode/extensions/markdown-language-features/media/highlight.css">
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, 'Ubuntu', 'Droid Sans', sans-serif;
font-size: 14px;
line-height: 1.6;
}
</style>
<style>
.task-list-item {
list-style-type: none;
}
.task-list-item-checkbox {
margin-left: -20px;
vertical-align: middle;
pointer-events: none;
}
</style>
<style>
:root {
--color-note: #0969da;
--color-tip: #1a7f37;
--color-warning: #9a6700;
--color-severe: #bc4c00;
--color-caution: #d1242f;
--color-important: #8250df;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--color-note: #2f81f7;
--color-tip: #3fb950;
--color-warning: #d29922;
--color-severe: #db6d28;
--color-caution: #f85149;
--color-important: #a371f7;
}
}
</style>
<style>
.markdown-alert {
padding: 0.5rem 1rem;
margin-bottom: 16px;
color: inherit;
border-left: .25em solid #888;
}
.markdown-alert>:first-child {
margin-top: 0
}
.markdown-alert>:last-child {
margin-bottom: 0
}
.markdown-alert .markdown-alert-title {
display: flex;
font-weight: 500;
align-items: center;
line-height: 1
}
.markdown-alert .markdown-alert-title .octicon {
margin-right: 0.5rem;
display: inline-block;
overflow: visible !important;
vertical-align: text-bottom;
fill: currentColor;
}
.markdown-alert.markdown-alert-note {
border-left-color: var(--color-note);
}
.markdown-alert.markdown-alert-note .markdown-alert-title {
color: var(--color-note);
}
.markdown-alert.markdown-alert-important {
border-left-color: var(--color-important);
}
.markdown-alert.markdown-alert-important .markdown-alert-title {
color: var(--color-important);
}
.markdown-alert.markdown-alert-warning {
border-left-color: var(--color-warning);
}
.markdown-alert.markdown-alert-warning .markdown-alert-title {
color: var(--color-warning);
}
.markdown-alert.markdown-alert-tip {
border-left-color: var(--color-tip);
}
.markdown-alert.markdown-alert-tip .markdown-alert-title {
color: var(--color-tip);
}
.markdown-alert.markdown-alert-caution {
border-left-color: var(--color-caution);
}
.markdown-alert.markdown-alert-caution .markdown-alert-title {
color: var(--color-caution);
}
</style>
</head>
<body class="vscode-body vscode-light">
<h1 id="lock-screen">Lock Screen</h1>
<p>Windows lock screen wallpaper for multimonitor setup</p>
<p>Приложение для добавления обоев на дополнительные мониторы на экране блокировки</p>
<h2 id="english">English</h2>
<h3 id="how-to-use">How to use</h3>
<ul>
<li>Download version for your platform from Releases page (x86 will not work on x64 OS)</li>
<li>Install application from installer or use portable version in 7z archive</li>
<li>Check the service <code>Logon Service</code> is installed and running at <code>Settings</code> tab (install in portable version)</li>
<li>Configure wallpaper for additional monitor - application will save settings immediately; do not use files from network storages and with limited access; use files from SSD for better performance</li>
<li>Use <code>Preview</code> button to see result</li>
<li>Close application and lock the PC: you will see shortly selected wallpapers on all additional monitors</li>
</ul>
<h3 id="features">Features</h3>
<ul>
<li>All monitors list</li>
<li>Monitor find (double click to it's name)</li>
<li>One wallpaper for all additional monitor</li>
<li>Individual wallpaper for each monitor</li>
<li>Wallpaper preview</li>
<li>Wallpaper only on additional monitors</li>
<li>Supported images formats: <code>bmp</code>, <code>gif</code>, <code>jpg</code>, <code>jpeg</code>, <code>png</code>, <code>tiff</code></li>
<li>Small and tiny background system service to detect OS lock events</li>
<li>One image layout option available: <code>ImageLayout.Zoom</code> - <em>The image is enlarged within the control's client rectangle</em> <a href="https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.imagelayout?view=windowsdesktop-9.0">source</a> (other options in plans)</li>
</ul>
<h3 id="how-it-works">How it works?</h3>
<ul>
<li><code>Logon Service</code> detects Windows Logoff and Lock events</li>
<li>It starts <code>Wallpaper.exe</code> application</li>
<li><code>Wallpaper.exe</code> reads wallpapers configuration</li>
<li>Finds and loads wallpapers to memory</li>
<li>Creates windows for each wallpaper</li>
<li>Draw images in windows</li>
</ul>
<p>Wallpaper windows is hidden from <code>Alt+Tab</code> hotkey and do not interact with clicks or keyboard and hotkeys like <code>Alt+F4</code> or <code>Alt+Space</code></p>
<h3 id="supported-os">Supported OS</h3>
<ul>
<li>Windows 7</li>
<li>WIndows 10</li>
<li>Windows 11</li>
</ul>
<h3 id="used-libraries">Used libraries</h3>
<ul>
<li><a href="https://dotnet.microsoft.com">.NET</a></li>
<li><a href="https://github.com/MartinTopfstedt/FontAwesome6">FontAwesome 6</a></li>
<li><a href="https://www.newtonsoft.com/json">Json.NET</a></li>
<li><a href="https://github.com/PrismLibrary/Prism">Prism</a></li>
<li><a href="https://github.com/falahati/WindowsDisplayAPI">WindowsDisplayAPI</a></li>
</ul>
<h3 id="development">Development</h3>
<ul>
<li>Windows 10</li>
<li>Visual Studio 2022</li>
<li>NSIS</li>
<li>DotNet 9 SDK</li>
</ul>
<hr>
<h2 id="русский">Русский</h2>
<h3 id="как-использовать">Как использовать</h3>
<ul>
<li>Скачайте версию для вашей платформы на странице релизов (x86 не будет работать на x64 ОС)</li>
<li>Установите приложение с помощью установщика или просто распакуйте портативную версию из 7z архива</li>
<li>Убедитесь, что сервис 'Logon Service' установился и запущен на вкладке <code>Настройки</code> приложения (установите в случае портативной версии)</li>
<li>Выберите обои для дополнительных мониторов - приложение сразу сохранит все настройки; не используйте файлы c сетевых хранилищ, а так же с ограниченными правами; используйте файлы с SSD для большей производительности</li>
<li>Для проверки обоев используйте кнопку <code>Просмотр</code></li>
<li>Закройте приложение и заблокируйте ПК: практически сразу после блокировки на дополнительных экранах появятся обои</li>
</ul>
<h3 id="функции">Функции</h3>
<ul>
<li>Список всех мониторов</li>
<li>Поиск монитора (двойной клик на имени)</li>
<li>Одна картинка для всех мониторов</li>
<li>Своя картинка для каждого монитора</li>
<li>Прдварительный просмотр обоев</li>
<li>Обои доступны только для дополнительных мониторов</li>
<li>Поддреживаемые форматы изображений: <code>bmp</code>, <code>gif</code>, <code>jpg</code>, <code>jpeg</code>, <code>png</code>, <code>tiff</code></li>
<li>Маленький и легкий фоновый системный сервис для обнаружения блокировки экрана и экрана входа в систему</li>
<li>Доступна одна опция размещения изображения в окне: <code>ImageLayout.Zoom</code> - <em>Изображение увеличивается в пределах клиентского прямоугольника элемента управления</em> <a href="https://learn.microsoft.com/ru-ru/dotnet/api/system.windows.forms.imagelayout?view=windowsdesktop-9.0">source</a> (остальные опции в планах)</li>
</ul>
<h3 id="как-это-работает">Как это работает?</h3>
<ul>
<li>Сервис <code>Logon Service</code> отслеживает активацю экрана блокировки</li>
<li>Запускает приложение <code>Wallpaper.exe</code></li>
<li>Приложение <code>Wallpaper.exe</code> читает ранее сохранёные настройки</li>
<li>Ищет и загружает в память изображения</li>
<li>Создаёт окно для каждого изображения</li>
<li>Рисует изображения в окнах</li>
</ul>
<p>Окна с обоями спрятаны от хоткея <code>Alt-Tab</code> и игнорируют клики и все остальные хоткеи типа <code>Alt+F4</code> или <code>Alt+Space</code></p>
<h3 id="поддерживаемые-ос">Поддерживаемые ОС</h3>
<ul>
<li>Windows 7</li>
<li>WIndows 10</li>
<li>Windows 11</li>
</ul>
<h3 id="используемые-библиотеки">Используемые библиотеки</h3>
<ul>
<li><a href="https://dotnet.microsoft.com">.NET</a></li>
<li><a href="https://github.com/MartinTopfstedt/FontAwesome6">FontAwesome 6</a></li>
<li><a href="https://www.newtonsoft.com/json">Json.NET</a></li>
<li><a href="https://github.com/PrismLibrary/Prism">Prism</a></li>
<li><a href="https://github.com/falahati/WindowsDisplayAPI">WindowsDisplayAPI</a></li>
</ul>
<h3 id="разработка">Разработка</h3>
<ul>
<li>Windows 10</li>
<li>Visual Studio 2022</li>
<li>NSIS</li>
<li>DotNet 9 SDK</li>
</ul>
</body>
</html>