Skip to content

Commit

Permalink
Fixes and new release
Browse files Browse the repository at this point in the history
1. Update NTAssassin
2. State of "Search child" check box in "Find Window" will remain the last state
3. Fix window capture feature, masks effect working in Win7 now
4. Adjust result of Windows API "GetWindowRect" when obtain window rectangle
5. Fix incorrect DPI scaling of banner and icons
  • Loading branch information
RatinCN committed Jun 14, 2021
1 parent 098259f commit 69405d3
Show file tree
Hide file tree
Showing 72 changed files with 2,583 additions and 2,412 deletions.
48 changes: 24 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
# AlleyWind
AlleyWind is an advanced Win32-based and open-sourced utility that helps you to manage system's windows. AlleyWind could:
+ Displays a graphical tree of relationships among windows, and search what you want
+ Shows the properties of selected window(s), and some of them could be modified:
+ Text, Style, Extended Style and Class Style
+ Visibility, Availability, and Topmost property
+ Hot Key, Visual Style, Display Affinity and Layered properties
+ Obtains private properties (e.g., address of window or dialog callback procedure) by using code injection technology
+ Supports multiple languages, multiple monitors and High-DPI

## Homepage
\>\>\> Click our homepage [KNSoft.org](https://knsoft.org) for more information! <<<

## Topic
[看雪论坛](https://bbs.pediy.com/)[[原创]AlleyWind - 专业窗口管理工具](https://bbs.pediy.com/thread-266706.htm)

## Latest Version
AlleyWind V1.0.0.0 Alpha

<font color=red>*This is Alpha version for early testing only, which is not stable! SHOULD NOT BE USED IN IMPORTANT ENVIRONMENT!</font>

## Snapshots
![avatar](Asset/Screenshots/1.png)
![avatar](Asset/Screenshots/2.png)
# AlleyWind
AlleyWind is an advanced Win32-based and open-sourced utility that helps you to manage system's windows. AlleyWind could:
+ Displays a graphical tree of relationships among windows, and search what you want
+ Shows the properties of selected window(s), and some of them could be modified:
+ Text, Font, Position, Size, Style, Extended Style and Class Style
+ Visibility, Availability, and Topmost property
+ Hot Key, Visual Style, Display Affinity and Layered properties
+ Obtains private properties (e.g., address of window or dialog callback procedure) by using code injection technology
+ Supports multiple languages, multiple monitors and High-DPI

## Homepage
\>\>\> Click our homepage [KNSoft.org](https://knsoft.org) for more information! <<<

## Topic
[看雪论坛](https://bbs.pediy.com/)[[原创]AlleyWind - 专业窗口管理工具](https://bbs.pediy.com/thread-266706.htm)

## Latest Version
AlleyWind V1.0.2.0 Beta [2021-06-14]

<font color=red>*This is Beta version for testing only, which is not stable! SHOULD NOT BE USED IN IMPORTANT ENVIRONMENT!</font>

## Snapshots
![avatar](Asset/Screenshots/1.png)
![avatar](Asset/Screenshots/2.png)
![avatar](Asset/Screenshots/3.png)
Binary file modified Release/AlleyWind_x64.exe
Binary file not shown.
Binary file modified Release/AlleyWind_x86.exe
Binary file not shown.
15 changes: 8 additions & 7 deletions Source/.gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
.vs
/Win32
/x64
/AlleyWind/Win32
/AlleyWind/x64
*.vcxproj.user
*.aps
.vs
/Win32
/x64
/AlleyWind/Win32
/AlleyWind/x64
*.vcxproj.user
*.aps
/AlleyWind/Resource/*.fla
Binary file removed Source/AlleyWind/3rdParty/NTAssassin/NAC/NAC.exe
Binary file not shown.
3 changes: 0 additions & 3 deletions Source/AlleyWind/3rdParty/NTAssassin/include/NTACon.h

This file was deleted.

7 changes: 0 additions & 7 deletions Source/AlleyWind/3rdParty/NTAssassin/include/NTADbg.h

This file was deleted.

24 changes: 0 additions & 24 deletions Source/AlleyWind/3rdParty/NTAssassin/include/NTTypes.h

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v5.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v5.0": {
"NAC/1.0.0": {
"runtime": {
"NAC.dll": {}
}
}
}
},
"libraries": {
"NAC/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v5.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v5.0": {
"NAC/1.0.0": {
"runtime": {
"NAC.dll": {}
}
}
}
},
"libraries": {
"NAC/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"runtimeOptions": {
"tfm": "net5.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "5.0.0"
}
}
{
"runtimeOptions": {
"tfm": "net5.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "5.0.0"
}
}
}
3 changes: 3 additions & 0 deletions Source/AlleyWind/3rdParty/include/NTAssassin/NTACon.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#pragma once

#include "NTAssassin\NTAssassin.h"
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#include "NTAssassin.h"
#include "NTAssassin\NTAssassin.h"
#include "NTACtl_ColorPicker.h"

typedef struct _CTL_MENU CTL_MENU, * PCTL_MENU;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

#include "NTAssassin.h"
#include "NTAssassin\NTAssassin.h"

// No color specified in color picker yet
#define CTL_COLORPICKER_NOCOLOR 0xFF000000
Expand Down
Original file line number Diff line number Diff line change
@@ -1,46 +1,47 @@
// High-DPI support

#pragma once

#include "NTAssassin.h"

/**
* @brief Gets DPI of window
* @param[in] Window Handle to the window
* @param[in] DPIX Pointer to an UINT variable to receive DPI-X
* @param[in] DPIY Pointer to an UINT variable to receive DPI-Y
*/
NTA_API VOID NTAPI DPI_FromWindow(HWND Window, PUINT DPIX, PUINT DPIY);

/**
* @brief Scales a value according to given DPI
* @param[in, out] Value Pointer to the RECT structure to be scaled
* @param[in] OldDPI Old DPI value
* @param[in] NewDPI New DPI value
*/
NTA_API VOID NTAPI DPI_Scale(PINT Value, UINT OldDPI, UINT NewDPI);

/**
* @brief Scales a value according to given DPI
* @param[in, out] Rect Pointer to the RECT structure to be scaled
* @param[in] OldDPIX Old DPI-X value
* @param[in] NewDPIX New DPI-X value
* @param[in] OldDPIY Old DPI-Y value
* @param[in] NewDPIY New DPI-Y value
*/
VOID NTAPI DPI_ScaleRect(PRECT Rect, UINT OldDPIX, UINT NewDPIX, UINT OldDPIY, UINT NewDPIY);

/**
* @see "IsProcessDPIAware"
* @return Returns TRUE if the process is DPI aware, or FALSE if not or failed.
*/
NTA_API BOOL NTAPI DPI_IsAware();

/**
* @brief Subclasses a dialog box to support High-DPI
* @param[in] Dialog Handle to the dialog box
* @param[in, opt] Font Handle to the font apply to the dialog box
* @return Returns TRUE if subclass successfully, or FALSE if failed
* @see "SetDialogDpiChangeBehavior"
*/
// High-DPI support

#pragma once

#include "NTAssassin\NTAssassin.h"

/**
* @brief Gets DPI of window
* @param[in] Window Handle to the window
* @param[in] DPIX Pointer to an UINT variable to receive DPI-X
* @param[in] DPIY Pointer to an UINT variable to receive DPI-Y
* @return Returns TRUE if DPI values returned by dialogue subclassed by DPI_SetAutoAdjustSubclass, or FALSE if returned by system
*/
NTA_API BOOL NTAPI DPI_FromWindow(HWND Window, PUINT DPIX, PUINT DPIY);

/**
* @brief Scales a value according to given DPI
* @param[in, out] Value Pointer to the RECT structure to be scaled
* @param[in] OldDPI Old DPI value
* @param[in] NewDPI New DPI value
*/
NTA_API VOID NTAPI DPI_Scale(PINT Value, UINT OldDPI, UINT NewDPI);

/**
* @brief Scales a value according to given DPI
* @param[in, out] Rect Pointer to the RECT structure to be scaled
* @param[in] OldDPIX Old DPI-X value
* @param[in] NewDPIX New DPI-X value
* @param[in] OldDPIY Old DPI-Y value
* @param[in] NewDPIY New DPI-Y value
*/
VOID NTAPI DPI_ScaleRect(PRECT Rect, UINT OldDPIX, UINT NewDPIX, UINT OldDPIY, UINT NewDPIY);

/**
* @see "IsProcessDPIAware"
* @return Returns TRUE if the process is DPI aware, or FALSE if not or failed.
*/
NTA_API BOOL NTAPI DPI_IsAware();

/**
* @brief Subclasses a dialog box to support High-DPI
* @param[in] Dialog Handle to the dialog box
* @param[in, opt] Font Handle to the font apply to the dialog box
* @return Returns TRUE if subclass successfully, or FALSE if failed
* @see "SetDialogDpiChangeBehavior"
*/
NTA_API BOOL NTAPI DPI_SetAutoAdjustSubclass(HWND Dialog, HFONT Font);
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
#pragma once

#include "NTAssassin.h"

NTA_API PVOID WINAPIV Data_StructCombineEx(UINT GroupCount, UINT StructSize, ...);

/**
* @brief Combines groups of structures into a new allocated buffer
* @param[in] uGroupCount Number of groups
* @param[in] t Type of structure
* @param[in] ... lpst1, uCount1, lpst2, uCount2, ...
* @return Returns new allocated buffer, should be freed by calling "Mem_HeapFree"
*/
#pragma once

#include "NTAssassin\NTAssassin.h"

NTA_API PVOID WINAPIV Data_StructCombineEx(UINT GroupCount, UINT StructSize, ...);

/**
* @brief Combines groups of structures into a new allocated buffer
* @param[in] uGroupCount Number of groups
* @param[in] t Type of structure
* @param[in] ... lpst1, uCount1, lpst2, uCount2, ...
* @return Returns new allocated buffer, should be freed by calling "Mem_HeapFree"
*/
#define Data_StructCombine(GroupCount, t, ...) (t*)Data_StructCombineEx(GroupCount, sizeof(t), __VA_ARGS__)
7 changes: 7 additions & 0 deletions Source/AlleyWind/3rdParty/include/NTAssassin/NTADbg.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#pragma once

#include "NTAssassin\NTAssassin.h"

#if _DEBUG

#endif
Loading

0 comments on commit 69405d3

Please sign in to comment.