Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/MicaApps/DiskInfo
DiskInfo based on CrystalDiskInfo
https://github.com/MicaApps/DiskInfo
disk mica uwp windows windows11 winrt winui3 xaml
Last synced: 3 months ago
JSON representation
DiskInfo based on CrystalDiskInfo
- Host: GitHub
- URL: https://github.com/MicaApps/DiskInfo
- Owner: MicaApps
- License: mit
- Created: 2022-11-24T11:50:23.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-03-29T09:20:55.000Z (10 months ago)
- Last Synced: 2024-10-30T09:10:48.354Z (3 months ago)
- Topics: disk, mica, uwp, windows, windows11, winrt, winui3, xaml
- Language: C++
- Homepage:
- Size: 3.78 MB
- Stars: 155
- Watchers: 11
- Forks: 7
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
DiskInfo
A tool for viewing hard drive information with a modern UI design.
## Language
- [中文](README.zh-CN.md)## Concept
![image](https://user-images.githubusercontent.com/6630660/212543495-ffba1279-bf86-4f4e-8568-8b8941edcfed.png)## Background
[CrystalDiskInfo](https://github.com/hiyohiyo/CrystalDiskInfo) is one of the most famous disk health monitoring tools in the world. It is free and open source, and is still actively maintained.This project aims at providing a mordern appearance for DiskInfo. The new design follow the guide of [Fluent Design System](https://www.microsoft.com/design/fluent/),with flexible,adapting layout,and charming visual design.
## Build
### Solution Structure
```
DiskInfo
\libs
DiskInfoLib --- C++/WinRT ports of the above DiskInfo project, to be consumed directly to UI layer (developing).
DiskInfoTest --- a library for testing DiskInfoLib.
MockDiskInfo --- Fake DiskInfoLib reference that provide sample data for UI layer test.
DiskInfo --- C#/WinUI 3 project that provide the UI layer of DiskInfo.
```
### WinRT port
The `DiskInfoLib` is a C++/WinRT project transformed to be able to allowed to call Win32 APIs.
It's basically using Visual Studio's `Windows Runtime Component` project template, but with additional macros defined and additional library paths added.
In order to be consumed by the C# project (.NET6),
- add [cs/winrt](https://github.com/microsoft/cswinrt) NuGet package.
- add a project reference to the WinRT component project, finally add a `PropertyGroup` tag in the `csproj` file.
```xmlDiskInfoLibWinRT
$(OutDir)```
## Known issues
- Debugging for winui3 under admin privilege is not fully working. For developments' convenience, it normally runs without admin previledges. (This will change when it's publish to store)
- More features coming!Technology stack and pre-requsite to build
## Technology Stack
### Documents
- [WinUI 3](https://learn.microsoft.com/en-us/windows/apps/winui/winui3/)
- [Windows Runtime](https://learn.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/intro-to-using-cpp-with-winrt)
- [Windows App SDK](https://learn.microsoft.com/zh-tw/windows/apps/windows-app-sdk/)
### Develop Environment
- Visual Studio 2022
- C++ Desktop Development
- Universal Windows Development
- .NET Desktop Development
- Windows SDK 22621
- C++ ATL for latest v143 build tools (x86 & x64)
- C++ MFC for latest v143 build tools (x86 & x64)
### XAML Control Libraries
- [WinUI 3](https://learn.microsoft.com/en-us/windows/apps/winui/winui3)
- [Windows Community Toolkit](https://github.com/CommunityToolkit/WindowsCommunityToolkit)
- [Syncfusion WinUI Controls](https://www.syncfusion.com/winui-controls)