17 Commits

Author SHA1 Message Date
W0LF
bdb2ebd295 Delete wCenterWindow.h 2020-05-03 18:50:05 +03:00
W0LF
bd5d845ec1 Delete targetver.h 2020-05-03 18:49:07 +03:00
W0LF
a6c866d1dd Delete framework.h 2020-05-03 18:48:50 +03:00
W0LF
38a570310f Delete Resource.h 2020-05-03 18:48:32 +03:00
W0LF
4a96fef1c7 new version 2020-05-03 18:47:31 +03:00
W0LF
0f47ebae9e new version 2020-05-03 18:45:44 +03:00
f8b925d0f8 Update Readme.md 2020-01-24 15:06:19 +03:00
35f791d7a0 Added 'Hide Icon' option to menu. 2020-01-24 15:03:52 +03:00
W0LF
4586599d2c Update README.md 2020-01-23 17:32:57 +03:00
dfdbd6a94b Merge branch 'master' of https://github.com/dreamforceinc/wCenterWindow 2020-01-23 17:21:33 +03:00
5ef184bee3 change version number 2020-01-23 17:18:24 +03:00
ce31a7d6e0 Added commandline option '/hide' for hide trayicon at startup. 2020-01-23 17:15:30 +03:00
W0LF
00a949f502 Update README.md 2020-01-22 13:46:50 +03:00
W0LF
703fccaa15 Update README.md 2020-01-22 13:46:25 +03:00
3f8b848b1e Added hotkey for hide tray icon. 2020-01-22 13:40:22 +03:00
73a7b40f9b fix files 2020-01-20 07:40:03 +03:00
81510d5105 fix files 2020-01-20 07:01:00 +03:00
16 changed files with 705 additions and 512 deletions

52
.gitattributes vendored
View File

@@ -10,7 +10,7 @@
# default for csharp files. # default for csharp files.
# Note: This is only used by command line # Note: This is only used by command line
############################################################################### ###############################################################################
#*.cs diff=csharp *.cs diff=csharp
############################################################################### ###############################################################################
# Set the merge driver for project and solution files # Set the merge driver for project and solution files
@@ -22,27 +22,27 @@
# these files as binary and thus will always conflict and require user # these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below # intervention with every merge. To do so, just uncomment the entries below
############################################################################### ###############################################################################
#*.sln merge=binary *.sln merge=binary
#*.csproj merge=binary *.csproj merge=binary
#*.vbproj merge=binary *.vbproj merge=binary
#*.vcxproj merge=binary *.vcxproj merge=binary
#*.vcproj merge=binary *.vcproj merge=binary
#*.dbproj merge=binary *.dbproj merge=binary
#*.fsproj merge=binary *.fsproj merge=binary
#*.lsproj merge=binary *.lsproj merge=binary
#*.wixproj merge=binary *.wixproj merge=binary
#*.modelproj merge=binary *.modelproj merge=binary
#*.sqlproj merge=binary *.sqlproj merge=binary
#*.wwaproj merge=binary *.wwaproj merge=binary
############################################################################### ###############################################################################
# behavior for image files # behavior for image files
# #
# image files are treated as binary by default. # image files are treated as binary by default.
############################################################################### ###############################################################################
#*.jpg binary *.jpg binary
#*.png binary *.png binary
#*.gif binary *.gif binary
############################################################################### ###############################################################################
# diff behavior for common document formats # diff behavior for common document formats
@@ -51,13 +51,13 @@
# is only available from the command line. Turn it on by uncommenting the # is only available from the command line. Turn it on by uncommenting the
# entries below. # entries below.
############################################################################### ###############################################################################
#*.doc diff=astextplain *.doc diff=astextplain
#*.DOC diff=astextplain *.DOC diff=astextplain
#*.docx diff=astextplain *.docx diff=astextplain
#*.DOCX diff=astextplain *.DOCX diff=astextplain
#*.dot diff=astextplain *.dot diff=astextplain
#*.DOT diff=astextplain *.DOT diff=astextplain
#*.pdf diff=astextplain *.pdf diff=astextplain
#*.PDF diff=astextplain *.PDF diff=astextplain
#*.rtf diff=astextplain *.rtf diff=astextplain
#*.RTF diff=astextplain *.RTF diff=astextplain

181
.gitignore vendored
View File

@@ -21,6 +21,7 @@ bld/
[Bb]in/ [Bb]in/
[Oo]bj/ [Oo]bj/
[Ll]og/ [Ll]og/
[Bb]uild/
# Visual Studio 2015 cache/options directory # Visual Studio 2015 cache/options directory
.vs/ .vs/
@@ -171,6 +172,9 @@ csx/
ecf/ ecf/
rcf/ rcf/
# Microsoft Azure ApplicationInsights config file
ApplicationInsights.config
# Windows Store app package directories and files # Windows Store app package directories and files
AppPackages/ AppPackages/
BundleArtifacts/ BundleArtifacts/
@@ -187,6 +191,7 @@ _pkginfo.txt
ClientBin/ ClientBin/
~$* ~$*
*~ *~
.*.swp
*.dbmdl *.dbmdl
*.dbproj.schemaview *.dbproj.schemaview
*.jfm *.jfm
@@ -256,6 +261,178 @@ paket-files/
# CodeRush # CodeRush
.cr/ .cr/
# Python Tools for Visual Studio (PTVS) # Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
/windows/LightGBM.VC.db
lightgbm
# Created by https://www.gitignore.io/api/python
### Python ###
!/python-package/lightgbm/
# Byte-compiled / optimized / DLL files
__pycache__/ __pycache__/
*.pyc *.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
.hypothesis/
**/coverage.html
**/coverage.html.zip
R-package/tests/testthat/Rplots.pdf
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
docs/pythonapi/
# Doxygen documentation
docs/doxyoutput/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# pyenv
.python-version
# celery beat schedule file
celerybeat-schedule
# dotenv
.env
# virtualenv
.venv/
venv/
ENV/
# Spyder project settings
.spyderproject
# Rope project settings
.ropeproject
# R testing artefact
lightgbm.model
# saved or dumped model/data
*.model
*.pkl
*.bin
# macOS
**/.DS_Store
# VSCode
.vscode
# IntelliJ IDEA
.idea/
# Files from local Python install
python-package/LICENSE
python-package/build_cpp/
python-package/compile/
python-package/lightgbm/VERSION.txt
# R build artefacts
R-package/src/CMakeLists.txt
R-package/src/lib_lightgbm.so.dSYM/
R-package/src/src/
lightgbm_r/*
lightgbm*.tar.gz
lightgbm.Rcheck/
# Files from interactive R sessions
.Rproj.user
**/.Rhistory
# Files generated by aspell
**/*.bak
# GraphViz artifacts
*.gv
*.gv.*

View File

@@ -1,2 +1,6 @@
# wCenterWindow # wCenterWindow
This program centers the current active window by a 'LCTRL + LWIN + C' hotkey. This program centers the current active window by a 'LCTRL + LWIN + C' hotkey.
'LCTRL + LWIN + I' hotkey - hide tray icon.
You can also use commandline option '/hide' for hide trayicon at startup.

View File

@@ -1,31 +1,31 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15 # Visual Studio 15
VisualStudioVersion = 15.0.28307.1000 VisualStudioVersion = 15.0.28307.1082
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wCenterWindow", "wCenterWindow\wCenterWindow.vcxproj", "{6A775901-6C34-4E96-B359-C11C76A520BB}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wCenterWindow", "wCenterWindow\wCenterWindow.vcxproj", "{2494B3F2-585E-4A2E-A013-20A15AE25B9E}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64 Debug|x64 = Debug|x64
Debug|x86 = Debug|x86 Debug|x86 = Debug|x86
Release|x64 = Release|x64 Release|x64 = Release|x64
Release|x86 = Release|x86 Release|x86 = Release|x86
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6A775901-6C34-4E96-B359-C11C76A520BB}.Debug|x64.ActiveCfg = Debug|x64 {2494B3F2-585E-4A2E-A013-20A15AE25B9E}.Debug|x64.ActiveCfg = Debug|x64
{6A775901-6C34-4E96-B359-C11C76A520BB}.Debug|x64.Build.0 = Debug|x64 {2494B3F2-585E-4A2E-A013-20A15AE25B9E}.Debug|x64.Build.0 = Debug|x64
{6A775901-6C34-4E96-B359-C11C76A520BB}.Debug|x86.ActiveCfg = Debug|Win32 {2494B3F2-585E-4A2E-A013-20A15AE25B9E}.Debug|x86.ActiveCfg = Debug|Win32
{6A775901-6C34-4E96-B359-C11C76A520BB}.Debug|x86.Build.0 = Debug|Win32 {2494B3F2-585E-4A2E-A013-20A15AE25B9E}.Debug|x86.Build.0 = Debug|Win32
{6A775901-6C34-4E96-B359-C11C76A520BB}.Release|x64.ActiveCfg = Release|x64 {2494B3F2-585E-4A2E-A013-20A15AE25B9E}.Release|x64.ActiveCfg = Release|x64
{6A775901-6C34-4E96-B359-C11C76A520BB}.Release|x64.Build.0 = Release|x64 {2494B3F2-585E-4A2E-A013-20A15AE25B9E}.Release|x64.Build.0 = Release|x64
{6A775901-6C34-4E96-B359-C11C76A520BB}.Release|x86.ActiveCfg = Release|Win32 {2494B3F2-585E-4A2E-A013-20A15AE25B9E}.Release|x86.ActiveCfg = Release|Win32
{6A775901-6C34-4E96-B359-C11C76A520BB}.Release|x86.Build.0 = Release|Win32 {2494B3F2-585E-4A2E-A013-20A15AE25B9E}.Release|x86.Build.0 = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {CAD0B026-63B6-4645-9B26-22CD0E1049B7} SolutionGuid = {34E34C1F-8A53-40DA-BA24-78C20152D64C}
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View File

@@ -1,30 +0,0 @@
//{{NO_DEPENDENCIES}}
// Включаемый файл, созданный в Microsoft Visual C++.
// Используется wCenterWindow.rc
#define IDS_APP_TITLE 103
#define IDR_MAINFRAME 128
#define IDD_WCENTERWINDOW_DIALOG 102
#define IDD_ABOUTBOX 103
#define IDM_ABOUT 104
#define IDM_EXIT 105
#define IDI_WCENTERWINDOW 107
#define IDI_SMALL 108
#define IDC_WCENTERWINDOW 109
#define IDC_MYICON 2
#ifndef IDC_STATIC
#define IDC_STATIC -1
#endif
// Следующие стандартные значения для новых объектов
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 130
#define _APS_NEXT_RESOURCE_VALUE 129
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 110
#endif
#endif

View File

@@ -1,15 +0,0 @@
// header.h: включаемый файл для стандартных системных включаемых файлов
// или включаемые файлы для конкретного проекта
//
#pragma once
#include "targetver.h"
#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows
// Файлы заголовков Windows
#include <windows.h>
// Файлы заголовков среды выполнения C
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>

19
wCenterWindow/resource.h Normal file
View File

@@ -0,0 +1,19 @@
#pragma once
#define IDS_APP_TITLE 100
#define IDS_CLASSNAME 101
#define IDS_ABOUT 102
#define IDI_TRAYICON 103
#define IDR_MENU 104
#define ID_POPUPMENU_ICON 105
#define ID_POPUPMENU_AREA 106
#define ID_POPUPMENU_ABOUT 107
#define ID_POPUPMENU_EXIT 108
#define IDS_ERR_MAIN 109
#define IDS_ERR_WND 110
#define IDS_ERR_ICON 111
#define IDS_ERR_MENU 112
#define IDS_ERR_POPUP 113
#define IDS_ERR_HOOK 114
#define IDS_RUNNING 115
#define IDC_STATIC -1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

View File

@@ -1,6 +0,0 @@
#pragma once
// // При включении SDKDDKVer.h будет задана самая новая из доступных платформ Windows.
// Если вы планируете сборку приложения для предыдущей версии платформы Windows, включите WinSDKVer.h и
// задайте желаемую платформу в макросе _WIN32_WINNT, прежде чем включать SDKDDKVer.h.
#include <SDKDDKVer.h>

View File

@@ -1,180 +1,263 @@
// wCenterWindow.cpp : Определяет точку входа для приложения. // wCenterWindow, v2.1
//
#include <windows.h>
#include "framework.h" #include <strsafe.h>
#include "wCenterWindow.h" #include "resource.h"
#include "S:\MyFunctions\MoveWindowToMonitorCenter.h"
#define MAX_LOADSTRING 100
#define MAX_LOADSTRING 32
// Глобальные переменные: #define WM_WCW 0x8F00
HINSTANCE hInst; // текущий экземпляр
WCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка // Global variables:
WCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна HINSTANCE hInst; // Instance
CHAR szTitle[MAX_LOADSTRING]; // Window's title
// Отправить объявления функций, включенных в этот модуль кода: CHAR szClass[MAX_LOADSTRING]; // Window's class
ATOM MyRegisterClass(HINSTANCE hInstance); CHAR szAbout[MAX_LOADSTRING * 14]; // Description text
BOOL InitInstance(HINSTANCE, int); HHOOK KeyboardHook;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); HICON hIcon;
INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); HMENU hMenu, hPopup;
HWND hWnd, hTaskBar, hDesktop, hProgman;
int APIENTRY wWinMain(_In_ HINSTANCE hInstance, BOOL bPressed = FALSE, bShowIcon = TRUE, bWorkArea = TRUE;
_In_opt_ HINSTANCE hPrevInstance, BOOL bLCTRL = FALSE, bLWIN = FALSE, bKEYI = FALSE, bKEYC = FALSE;
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow) NOTIFYICONDATA nid = { 0 };
{ LPKBDLLHOOKSTRUCT pkhs;
UNREFERENCED_PARAMETER(hPrevInstance); MENUITEMINFO mii;
UNREFERENCED_PARAMETER(lpCmdLine); POINT ptMousePos;
// TODO: Разместите код здесь. // Function's prototypes
ATOM MyRegisterClass(HINSTANCE);
// Инициализация глобальных строк VOID HandlingTrayIcon();
LoadStringW(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); VOID ShowError(UINT);
LoadStringW(hInstance, IDC_WCENTERWINDOW, szWindowClass, MAX_LOADSTRING); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
MyRegisterClass(hInstance); LRESULT CALLBACK KeyboardHookProc(int, WPARAM, LPARAM);
// Выполнить инициализацию приложения: int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
if (!InitInstance (hInstance, nCmdShow)) {
{ UNREFERENCED_PARAMETER(hPrevInstance);
return FALSE; UNREFERENCED_PARAMETER(lpCmdLine);
}
hInst = hInstance;
HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WCENTERWINDOW));
LoadString(hInstance, IDS_APP_TITLE, szTitle, _countof(szTitle));
MSG msg; LoadString(hInstance, IDS_CLASSNAME, szClass, _countof(szClass));
// Цикл основного сообщения: if (FindWindow(szClass, NULL))
while (GetMessage(&msg, nullptr, 0, 0)) {
{ ShowError(IDS_RUNNING);
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) return FALSE;
{ }
TranslateMessage(&msg);
DispatchMessage(&msg); MyRegisterClass(hInstance);
} hWnd = CreateWindowEx(0, szClass, szTitle, 0, 0, 0, 0, 0, NULL, NULL, hInstance, NULL);
} if (!hWnd)
{
return (int) msg.wParam; ShowError(IDS_ERR_WND);
} return FALSE;
}
int nArgs = 0;
// LPWSTR *szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);
// ФУНКЦИЯ: MyRegisterClass() (nArgs >= 2 && 0 == lstrcmpiW(szArglist[1], L"/hide")) ? bShowIcon = FALSE : bShowIcon = TRUE;
// LocalFree(szArglist);
// ЦЕЛЬ: Регистрирует класс окна. HandlingTrayIcon();
//
ATOM MyRegisterClass(HINSTANCE hInstance) hTaskBar = FindWindow("Shell_TrayWnd", NULL);
{ hProgman = FindWindow("Progman", NULL);
WNDCLASSEXW wcex; hDesktop = GetDesktopWindow();
wcex.cbSize = sizeof(WNDCLASSEX); MSG msg;
BOOL bRet;
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc; while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0)
wcex.cbClsExtra = 0; {
wcex.cbWndExtra = 0; if (bRet == -1)
wcex.hInstance = hInstance; {
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WCENTERWINDOW)); ShowError(IDS_ERR_MAIN);
wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); return -1;
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); }
wcex.lpszMenuName = MAKEINTRESOURCEW(IDC_WCENTERWINDOW); else
wcex.lpszClassName = szWindowClass; {
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); TranslateMessage(&msg);
DispatchMessage(&msg);
return RegisterClassExW(&wcex); }
} }
return (int)msg.wParam;
// }
// ФУНКЦИЯ: InitInstance(HINSTANCE, int)
// ATOM MyRegisterClass(HINSTANCE hInstance)
// ЦЕЛЬ: Сохраняет маркер экземпляра и создает главное окно {
// WNDCLASSEX wcex = { 0 };
// КОММЕНТАРИИ: wcex.cbSize = sizeof(WNDCLASSEX);
// wcex.lpfnWndProc = WndProc;
// В этой функции маркер экземпляра сохраняется в глобальной переменной, а также wcex.hInstance = hInstance;
// создается и выводится главное окно программы. wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_TRAYICON));
// wcex.hCursor = LoadCursor(nullptr, IDC_ARROW);
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) wcex.lpszClassName = szClass;
{ wcex.hIconSm = wcex.hIcon;
hInst = hInstance; // Сохранить маркер экземпляра в глобальной переменной hIcon = wcex.hIcon;
return RegisterClassEx(&wcex);
HWND hWnd = CreateWindowW(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, }
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, nullptr, nullptr, hInstance, nullptr);
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
if (!hWnd) {
{ switch (message)
return FALSE; {
} case WM_CREATE:
{
ShowWindow(hWnd, nCmdShow); hMenu = LoadMenu(hInst, MAKEINTRESOURCE(IDR_MENU));
UpdateWindow(hWnd); if (!hMenu)
{
return TRUE; ShowError(IDS_ERR_MENU);
} SendMessage(hWnd, WM_CLOSE, NULL, NULL);
}
//
// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM) hPopup = GetSubMenu(hMenu, 0);
// if (!hPopup)
// ЦЕЛЬ: Обрабатывает сообщения в главном окне. {
// ShowError(IDS_ERR_POPUP);
// WM_COMMAND - обработать меню приложения SendMessage(hWnd, WM_CLOSE, NULL, NULL);
// WM_PAINT - Отрисовка главного окна }
// WM_DESTROY - отправить сообщение о выходе и вернуться
// mii.cbSize = sizeof(MENUITEMINFO);
// mii.fMask = MIIM_STATE;
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) bWorkArea ? mii.fState = MFS_CHECKED : mii.fState = MFS_UNCHECKED;
{ SetMenuItemInfo(hPopup, ID_POPUPMENU_AREA, FALSE, &mii);
switch (message)
{ nid.cbSize = sizeof(NOTIFYICONDATA);
case WM_COMMAND: nid.hWnd = hWnd;
{ nid.uVersion = NOTIFYICON_VERSION;
int wmId = LOWORD(wParam); nid.uCallbackMessage = WM_WCW;
// Разобрать выбор в меню: nid.hIcon = hIcon;
switch (wmId) nid.uID = IDI_TRAYICON;
{ nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
case IDM_ABOUT: nid.dwInfoFlags = NIIF_INFO;
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); StringCchCopy(nid.szTip, _countof(nid.szTip), szTitle);
break;
case IDM_EXIT: KeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardHookProc, hInst, NULL);
DestroyWindow(hWnd); if (!KeyboardHook)
break; {
default: ShowError(IDS_ERR_HOOK);
return DefWindowProc(hWnd, message, wParam, lParam); SendMessage(hWnd, WM_CLOSE, NULL, NULL);
} }
}
break; LoadString(hInst, IDS_ABOUT, szAbout, _countof(szAbout));
case WM_PAINT: }
{ break;
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps); case WM_WCW:
// TODO: Добавьте сюда любой код прорисовки, использующий HDC... {
EndPaint(hWnd, &ps); if (lParam == WM_RBUTTONDOWN && wParam == IDI_TRAYICON)
} {
break; SetForegroundWindow(hWnd);
case WM_DESTROY: POINT pt;
PostQuitMessage(0); GetCursorPos(&pt);
break; int idMenu = TrackPopupMenu(hPopup, TPM_RETURNCMD, pt.x, pt.y, 0, hWnd, NULL);
default: if (idMenu == ID_POPUPMENU_ICON)
return DefWindowProc(hWnd, message, wParam, lParam); {
} bShowIcon = FALSE;
return 0; HandlingTrayIcon();
} }
if (idMenu == ID_POPUPMENU_AREA)
// Обработчик сообщений для окна "О программе". {
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) bWorkArea = !bWorkArea;
{ bWorkArea ? mii.fState = MFS_CHECKED : mii.fState = MFS_UNCHECKED;
UNREFERENCED_PARAMETER(lParam); SetMenuItemInfo(hPopup, ID_POPUPMENU_AREA, FALSE, &mii);
switch (message) }
{ if (idMenu == ID_POPUPMENU_ABOUT && !bPressed)
case WM_INITDIALOG: {
return (INT_PTR)TRUE; bPressed = TRUE;
if (MessageBox(hWnd, szAbout, szTitle, MB_OK | MB_TOPMOST | MB_ICONINFORMATION) == IDOK) bPressed = FALSE;
case WM_COMMAND: }
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) if (idMenu == ID_POPUPMENU_EXIT) SendMessage(hWnd, WM_CLOSE, NULL, NULL);
{ }
EndDialog(hDlg, LOWORD(wParam)); }
return (INT_PTR)TRUE; break;
}
break; case WM_DESTROY:
} {
return (INT_PTR)FALSE; if (KeyboardHook) UnhookWindowsHookEx(KeyboardHook);
} if (hMenu) DestroyMenu(hMenu);
Shell_NotifyIcon(NIM_DELETE, &nid);
PostQuitMessage(0);
}
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
LRESULT CALLBACK KeyboardHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
pkhs = (KBDLLHOOKSTRUCT*)lParam;
if (wParam == WM_KEYUP)
{
if (pkhs->vkCode == VK_LCONTROL) bLCTRL = FALSE;
if (pkhs->vkCode == VK_LWIN) bLWIN = FALSE;
bPressed = FALSE;
}
if (wParam == WM_KEYDOWN)
{
if (pkhs->vkCode == VK_LCONTROL) bLCTRL = TRUE;
if (pkhs->vkCode == VK_LWIN) bLWIN = TRUE;
if (bLCTRL && bLWIN && pkhs->vkCode == 0x49 && !bPressed) // 'I' key
{
bPressed = TRUE;
bShowIcon = !bShowIcon;
HandlingTrayIcon();
return TRUE;
}
if (bLCTRL && bLWIN && pkhs->vkCode == 0x43 && !bPressed) // 'C' key
{
bPressed = TRUE;
HWND hFgWnd = GetForegroundWindow();
if (hFgWnd)
{
if (hFgWnd != hDesktop && hFgWnd != hTaskBar && hFgWnd != hProgman)
{
if (!IsIconic(hFgWnd) && !IsZoomed(hFgWnd))
{
RECT fgwrc;
GetWindowRect(hFgWnd, &fgwrc);
LONG fgWidth = fgwrc.right - fgwrc.left;
LONG fgHeight = fgwrc.bottom - fgwrc.top;
MoveWindowToMonitorCenter(hFgWnd, fgWidth, fgHeight, bWorkArea, FALSE);
}
}
}
return TRUE;
}
}
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
VOID HandlingTrayIcon()
{
if (bShowIcon)
{
if (!Shell_NotifyIcon(NIM_ADD, &nid))
{
ShowError(IDS_ERR_ICON);
bShowIcon = FALSE;
}
}
else
{
Shell_NotifyIcon(NIM_DELETE, &nid);
}
}
VOID ShowError(UINT uID)
{
CHAR szErrorText[MAX_LOADSTRING]; // Error's text
LoadString(hInst, uID, szErrorText, _countof(szErrorText));
MessageBox(hWnd, szErrorText, szTitle, MB_OK | MB_ICONERROR);
}

View File

@@ -1,3 +0,0 @@
#pragma once
#include "resource.h"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

View File

@@ -1,172 +1,143 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32"> <ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>Win32</Platform> <Platform>Win32</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32"> <ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>Win32</Platform> <Platform>Win32</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64"> <ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>x64</Platform> <Platform>x64</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64"> <ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>x64</Platform> <Platform>x64</Platform>
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion> <VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{6A775901-6C34-4E96-B359-C11C76A520BB}</ProjectGuid> <ProjectGuid>{2494B3F2-585E-4A2E-A013-20A15AE25B9E}</ProjectGuid>
<Keyword>Win32Proj</Keyword> <RootNamespace>wCenterWindow</RootNamespace>
<RootNamespace>wCenterWindow</RootNamespace> <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion> </PropertyGroup>
</PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType>
<ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>true</UseDebugLibraries>
<UseDebugLibraries>true</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset>
<PlatformToolset>v141</PlatformToolset> <CharacterSet>MultiByte</CharacterSet>
<CharacterSet>Unicode</CharacterSet> </PropertyGroup>
</PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType>
<ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries>
<UseDebugLibraries>false</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset>
<PlatformToolset>v141</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization>
<WholeProgramOptimization>true</WholeProgramOptimization> <CharacterSet>MultiByte</CharacterSet>
<CharacterSet>Unicode</CharacterSet> </PropertyGroup>
</PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType>
<ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>true</UseDebugLibraries>
<UseDebugLibraries>true</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset>
<PlatformToolset>v141</PlatformToolset> <CharacterSet>MultiByte</CharacterSet>
<CharacterSet>Unicode</CharacterSet> </PropertyGroup>
</PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType>
<ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries>
<UseDebugLibraries>false</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset>
<PlatformToolset>v141</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization>
<WholeProgramOptimization>true</WholeProgramOptimization> <CharacterSet>MultiByte</CharacterSet>
<CharacterSet>Unicode</CharacterSet> </PropertyGroup>
</PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings">
<ImportGroup Label="ExtensionSettings"> </ImportGroup>
</ImportGroup> <ImportGroup Label="Shared">
<ImportGroup Label="Shared"> </ImportGroup>
</ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup>
</ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup>
</ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup>
</ImportGroup> <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup>
</ImportGroup> <PropertyGroup Label="UserMacros" />
<PropertyGroup Label="UserMacros" /> <PropertyGroup />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental> <ClCompile>
</PropertyGroup> <WarningLevel>Level3</WarningLevel>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <Optimization>Disabled</Optimization>
<LinkIncremental>true</LinkIncremental> <SDLCheck>true</SDLCheck>
</PropertyGroup> <ConformanceMode>true</ConformanceMode>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> </ClCompile>
<LinkIncremental>false</LinkIncremental> <Link>
</PropertyGroup> <SubSystem>Windows</SubSystem>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <RandomizedBaseAddress>false</RandomizedBaseAddress>
<LinkIncremental>false</LinkIncremental> </Link>
</PropertyGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
<PrecompiledHeader> <WarningLevel>Level3</WarningLevel>
</PrecompiledHeader> <Optimization>Disabled</Optimization>
<WarningLevel>Level3</WarningLevel> <SDLCheck>true</SDLCheck>
<Optimization>Disabled</Optimization> <ConformanceMode>true</ConformanceMode>
<SDLCheck>true</SDLCheck> </ClCompile>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <Link>
<ConformanceMode>true</ConformanceMode> <SubSystem>Console</SubSystem>
</ClCompile> </Link>
<Link> </ItemDefinitionGroup>
<SubSystem>Windows</SubSystem> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<GenerateDebugInformation>true</GenerateDebugInformation> <ClCompile>
</Link> <WarningLevel>Level3</WarningLevel>
</ItemDefinitionGroup> <Optimization>MaxSpeed</Optimization>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <FunctionLevelLinking>true</FunctionLevelLinking>
<ClCompile> <IntrinsicFunctions>true</IntrinsicFunctions>
<PrecompiledHeader> <SDLCheck>true</SDLCheck>
</PrecompiledHeader> <ConformanceMode>true</ConformanceMode>
<WarningLevel>Level3</WarningLevel> <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<Optimization>Disabled</Optimization> </ClCompile>
<SDLCheck>true</SDLCheck> <Link>
<PreprocessorDefinitions>_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <SubSystem>Windows</SubSystem>
<ConformanceMode>true</ConformanceMode> <EnableCOMDATFolding>true</EnableCOMDATFolding>
</ClCompile> <OptimizeReferences>true</OptimizeReferences>
<Link> <UACExecutionLevel>HighestAvailable</UACExecutionLevel>
<SubSystem>Windows</SubSystem> <GenerateDebugInformation>false</GenerateDebugInformation>
<GenerateDebugInformation>true</GenerateDebugInformation> </Link>
</Link> </ItemDefinitionGroup>
</ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile>
<ClCompile> <WarningLevel>Level3</WarningLevel>
<PrecompiledHeader> <Optimization>MaxSpeed</Optimization>
</PrecompiledHeader> <FunctionLevelLinking>true</FunctionLevelLinking>
<WarningLevel>Level3</WarningLevel> <IntrinsicFunctions>true</IntrinsicFunctions>
<Optimization>MaxSpeed</Optimization> <SDLCheck>true</SDLCheck>
<FunctionLevelLinking>true</FunctionLevelLinking> <ConformanceMode>true</ConformanceMode>
<IntrinsicFunctions>true</IntrinsicFunctions> </ClCompile>
<SDLCheck>true</SDLCheck> <Link>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <SubSystem>Console</SubSystem>
<ConformanceMode>true</ConformanceMode> <EnableCOMDATFolding>true</EnableCOMDATFolding>
</ClCompile> <OptimizeReferences>true</OptimizeReferences>
<Link> </Link>
<SubSystem>Windows</SubSystem> </ItemDefinitionGroup>
<EnableCOMDATFolding>true</EnableCOMDATFolding> <ItemGroup>
<OptimizeReferences>true</OptimizeReferences> <ClCompile Include="..\..\..\MyFunctions\MoveWindowToMonitorCenter.cpp" />
<GenerateDebugInformation>true</GenerateDebugInformation> <ClCompile Include="wCenterWindow.cpp" />
</Link> </ItemGroup>
</ItemDefinitionGroup> <ItemGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ClInclude Include="..\..\..\MyFunctions\MoveWindowToMonitorCenter.h" />
<ClCompile> <ClInclude Include="resource.h" />
<PrecompiledHeader> </ItemGroup>
</PrecompiledHeader> <ItemGroup>
<WarningLevel>Level3</WarningLevel> <ResourceCompile Include="wCenterWindow.rc" />
<Optimization>MaxSpeed</Optimization> </ItemGroup>
<FunctionLevelLinking>true</FunctionLevelLinking> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<IntrinsicFunctions>true</IntrinsicFunctions> <ImportGroup Label="ExtensionTargets">
<SDLCheck>true</SDLCheck> </ImportGroup>
<PreprocessorDefinitions>NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="framework.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="targetver.h" />
<ClInclude Include="wCenterWindow.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="wCenterWindow.cpp" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="wCenterWindow.rc" />
</ItemGroup>
<ItemGroup>
<Image Include="small.ico" />
<Image Include="wCenterWindow.ico" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project> </Project>

View File

@@ -1,49 +1,38 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup> <ItemGroup>
<Filter Include="Исходные файлы"> <Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter> </Filter>
<Filter Include="Файлы заголовков"> <Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions> <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
</Filter> </Filter>
<Filter Include="Файлы ресурсов"> <Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter> </Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="framework.h"> <ClCompile Include="wCenterWindow.cpp">
<Filter>Файлы заголовков</Filter> <Filter>Source Files</Filter>
</ClInclude> </ClCompile>
<ClInclude Include="targetver.h"> <ClCompile Include="..\..\..\MyFunctions\MoveWindowToMonitorCenter.cpp">
<Filter>Файлы заголовков</Filter> <Filter>Source Files</Filter>
</ClInclude> </ClCompile>
<ClInclude Include="Resource.h"> </ItemGroup>
<Filter>Файлы заголовков</Filter> <ItemGroup>
</ClInclude> <ClInclude Include="resource.h">
<ClInclude Include="wCenterWindow.h"> <Filter>Header Files</Filter>
<Filter>Файлы заголовков</Filter> </ClInclude>
</ClInclude> <ClInclude Include="..\..\..\MyFunctions\MoveWindowToMonitorCenter.h">
</ItemGroup> <Filter>Header Files</Filter>
<ItemGroup> </ClInclude>
<ClCompile Include="wCenterWindow.cpp"> </ItemGroup>
<Filter>Исходные файлы</Filter> <ItemGroup>
</ClCompile> <ResourceCompile Include="wCenterWindow.rc">
</ItemGroup> <Filter>Resource Files</Filter>
<ItemGroup> </ResourceCompile>
<ResourceCompile Include="wCenterWindow.rc"> </ItemGroup>
<Filter>Файлы ресурсов</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Image Include="small.ico">
<Filter>Файлы ресурсов</Filter>
</Image>
<Image Include="wCenterWindow.ico">
<Filter>Файлы ресурсов</Filter>
</Image>
</ItemGroup>
</Project> </Project>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>