Implement PC/SC-based NFC card reader monitoring application with WPF UI. Features include: - System tray integration with single-click to open main window - Dynamic reader detection and management with enable/disable per reader - NDEF payload extraction supporting Type 2 and Type 4 tags - Auto-detection of block sizes (4-byte vs 16-byte) for different reader types - Configurable actions: copy to clipboard, launch URLs, keyboard input simulation - URI record type detection - only launches browser for actual URI records - Real-time activity logging with color-coded levels (Debug, Info, Warning, Error) - File-based debug logging for troubleshooting - Settings persistence between sessions - Dangerous Things branding with custom icons and clickable logo 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
43 lines
944 B
C#
43 lines
944 B
C#
using System.ComponentModel;
|
|
using System.Diagnostics;
|
|
using System.Windows;
|
|
using System.Windows.Input;
|
|
using NfcActions.ViewModels;
|
|
|
|
namespace NfcActions;
|
|
|
|
/// <summary>
|
|
/// Interaction logic for MainWindow.xaml
|
|
/// </summary>
|
|
public partial class MainWindow : Window
|
|
{
|
|
public MainWindow(MainViewModel viewModel)
|
|
{
|
|
InitializeComponent();
|
|
DataContext = viewModel;
|
|
}
|
|
|
|
private void Window_Closing(object? sender, CancelEventArgs e)
|
|
{
|
|
// Minimize to tray instead of closing
|
|
e.Cancel = true;
|
|
Hide();
|
|
}
|
|
|
|
private void Logo_Click(object sender, MouseButtonEventArgs e)
|
|
{
|
|
try
|
|
{
|
|
Process.Start(new ProcessStartInfo
|
|
{
|
|
FileName = "https://dangerousthings.com",
|
|
UseShellExecute = true
|
|
});
|
|
}
|
|
catch
|
|
{
|
|
// Silently fail if browser can't be opened
|
|
}
|
|
}
|
|
}
|