├── tools ├── AzCopy.exe ├── xunit │ ├── xunit.dll │ ├── xunit.gui.exe │ ├── xunit.console.exe │ ├── xunit.gui.x86.exe │ ├── xunit.gui.clr4.exe │ ├── xunit.installer.exe │ ├── xunit.console.clr4.exe │ ├── xunit.console.x86.exe │ ├── xunit.extensions.dll │ ├── xunit.gui.clr4.x86.exe │ ├── xunit.runner.tdnet.dll │ ├── xunit.runner.msbuild.dll │ ├── xunit.runner.utility.dll │ ├── xunit.console.clr4.x86.exe │ ├── xunit.dll.tdnet │ ├── xunit.console.exe.config │ ├── xunit.console.x86.exe.config │ ├── xunit.console.clr4.exe.config │ ├── xunit.console.clr4.x86.exe.config │ ├── EULA.txt │ ├── NUnitXml.xslt │ └── HTML.xslt ├── Microsoft.WindowsAzure.Storage.dll └── Microsoft.WindowsAzure.Storage.DataMovement.dll ├── src ├── Carnac │ ├── icon.ico │ ├── IShell.cs │ ├── carnac.png │ ├── carnac_2.png │ ├── App.xaml.cs │ ├── icon.embedded.ico │ ├── Resources │ │ ├── Entypo.ttf │ │ └── Entypo-license.txt │ ├── FodyWeavers.xml │ ├── Properties │ │ ├── Settings.settings │ │ ├── Settings.Designer.cs │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── Utilities │ │ ├── ITimerFactory.cs │ │ ├── TimerFactory.cs │ │ ├── TimerState.cs │ │ └── ProcessUtilities.cs │ ├── CarnacWindowManager.cs │ ├── App.xaml │ ├── ViewModels │ │ └── KeyShowViewModel.cs │ ├── KeyMonitor │ │ ├── HotKeyWinApi.cs │ │ └── HotKey.cs │ ├── Carnac.ncrunchproject │ ├── Views │ │ ├── PlacementMarginConverter.cs │ │ ├── ShellView.xaml.cs │ │ └── KeyShowView.xaml.cs │ ├── packages.config │ ├── Carnac.v2.ncrunchproject │ ├── AppBootstrapper.cs │ └── Fody.targets ├── .nuget │ ├── NuGet.exe │ ├── NuGet.Config │ └── NuGet.targets ├── Carnac.Logic │ ├── FodyWeavers.xml │ ├── KeyMonitor │ │ ├── KeyDirection.cs │ │ ├── InterceptKeyEventArgs.cs │ │ └── InterceptKeys.cs │ ├── Keymaps │ │ ├── konami.yml │ │ ├── ncrunch.yml │ │ └── resharper.yml │ ├── IMessageProvider.cs │ ├── Enums │ │ └── NotificationPlacement.cs │ ├── IKeyProvider.cs │ ├── Native │ │ ├── POINTL.cs │ │ ├── DetailedScreen.cs │ │ ├── DISPLAY_DEVICE.cs │ │ ├── DisplayDeviceStateFlags.cs │ │ └── DEVMODE.cs │ ├── IShortcutProvider.cs │ ├── IScreenManager.cs │ ├── IPasswordModeService.cs │ ├── ShortcutCollection.cs │ ├── NotifyPropertyChanged.cs │ ├── packages.config │ ├── NotifyProperty.cs │ ├── Carnac.Logic.ncrunchproject │ ├── Internal │ │ └── FixedQueue.cs │ ├── Models │ │ ├── KeyPress.cs │ │ ├── PopupSettings.cs │ │ └── Message.cs │ ├── KeyShortcut.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Carnac.Logic.v2.ncrunchproject │ ├── Win32Methods.cs │ ├── KeyPressDefinition.cs │ ├── ScreenManager.cs │ ├── PasswordModeService.cs │ ├── Fody.targets │ ├── ShortcutProvider.cs │ ├── MessageProvider.cs │ ├── KeyProvider.cs │ └── Carnac.Logic.csproj ├── Carnac.Tests │ ├── System.Reactive.dll │ ├── SpecificationFor.cs │ ├── Carnac.Tests.ncrunchproject │ ├── Carnac.Tests.v2.ncrunchproject │ ├── packages.config │ ├── KeyPlayer.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── MessageFacts.cs │ ├── KeyProviderTests.cs │ ├── KeyStreams.cs │ ├── MessageProviderFacts.cs │ ├── ViewModels │ │ └── ShellViewModelFacts.cs │ └── Carnac.Tests.csproj ├── KeyStreamCapture │ ├── Properties │ │ ├── Settings.settings │ │ ├── Settings.Designer.cs │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ ├── packages.config │ ├── App.xaml │ ├── App.xaml.cs │ ├── KeyStreamCapture.ncrunchproject │ ├── KeyStreamCapture.v2.ncrunchproject │ ├── MainWindow.xaml │ ├── app.config │ └── MainWindow.xaml.cs ├── Carnac.ncrunchsolution └── Carnac.sln ├── .gitignore ├── README.md └── LICENSE.md /tools/AzCopy.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/AzCopy.exe -------------------------------------------------------------------------------- /src/Carnac/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/src/Carnac/icon.ico -------------------------------------------------------------------------------- /src/.nuget/NuGet.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/src/.nuget/NuGet.exe -------------------------------------------------------------------------------- /src/Carnac/IShell.cs: -------------------------------------------------------------------------------- 1 | namespace Carnac { 2 | public interface IShell { 3 | } 4 | } 5 | -------------------------------------------------------------------------------- /src/Carnac/carnac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/src/Carnac/carnac.png -------------------------------------------------------------------------------- /tools/xunit/xunit.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.dll -------------------------------------------------------------------------------- /src/Carnac/carnac_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/src/Carnac/carnac_2.png -------------------------------------------------------------------------------- /tools/xunit/xunit.gui.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.gui.exe -------------------------------------------------------------------------------- /src/Carnac/App.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace Carnac 2 | { 3 | public partial class App 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/Carnac/icon.embedded.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/src/Carnac/icon.embedded.ico -------------------------------------------------------------------------------- /tools/xunit/xunit.console.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.console.exe -------------------------------------------------------------------------------- /tools/xunit/xunit.gui.x86.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.gui.x86.exe -------------------------------------------------------------------------------- /src/Carnac/Resources/Entypo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/src/Carnac/Resources/Entypo.ttf -------------------------------------------------------------------------------- /tools/xunit/xunit.gui.clr4.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.gui.clr4.exe -------------------------------------------------------------------------------- /tools/xunit/xunit.installer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.installer.exe -------------------------------------------------------------------------------- /tools/xunit/xunit.console.clr4.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.console.clr4.exe -------------------------------------------------------------------------------- /tools/xunit/xunit.console.x86.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.console.x86.exe -------------------------------------------------------------------------------- /tools/xunit/xunit.extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.extensions.dll -------------------------------------------------------------------------------- /tools/xunit/xunit.gui.clr4.x86.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.gui.clr4.x86.exe -------------------------------------------------------------------------------- /tools/xunit/xunit.runner.tdnet.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.runner.tdnet.dll -------------------------------------------------------------------------------- /src/Carnac.Logic/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /src/Carnac.Tests/System.Reactive.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/src/Carnac.Tests/System.Reactive.dll -------------------------------------------------------------------------------- /tools/xunit/xunit.runner.msbuild.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.runner.msbuild.dll -------------------------------------------------------------------------------- /tools/xunit/xunit.runner.utility.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.runner.utility.dll -------------------------------------------------------------------------------- /tools/xunit/xunit.console.clr4.x86.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/xunit/xunit.console.clr4.x86.exe -------------------------------------------------------------------------------- /src/Carnac/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /tools/Microsoft.WindowsAzure.Storage.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/Microsoft.WindowsAzure.Storage.dll -------------------------------------------------------------------------------- /tools/Microsoft.WindowsAzure.Storage.DataMovement.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shanselman/carnac/master/tools/Microsoft.WindowsAzure.Storage.DataMovement.dll -------------------------------------------------------------------------------- /src/Carnac.Logic/KeyMonitor/KeyDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Carnac.Logic.KeyMonitor 2 | { 3 | public enum KeyDirection 4 | { 5 | Down, 6 | Up, 7 | Unknown 8 | } 9 | } -------------------------------------------------------------------------------- /src/Carnac.Logic/Keymaps/konami.yml: -------------------------------------------------------------------------------- 1 | group: Konami 2 | process: 3 | 4 | shortcuts: 5 | - name: Konami!!! 6 | keys: 7 | - Up,Up,Down,Down,Left,Right,Left,Right,B,A -------------------------------------------------------------------------------- /src/.nuget/NuGet.Config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Carnac.Logic/IMessageProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Carnac.Logic.Models; 3 | 4 | namespace Carnac.Logic 5 | { 6 | public interface IMessageProvider : IObservable 7 | { 8 | } 9 | } -------------------------------------------------------------------------------- /src/Carnac/Resources/Entypo-license.txt: -------------------------------------------------------------------------------- 1 | Entypo (http://www.entypo.com/) is created by Daniel Bruce and released under the Creative Commons, Share Alike/Attribution license. 2 | 3 | http://creativecommons.org/licenses/by-sa/3.0/ -------------------------------------------------------------------------------- /tools/xunit/xunit.dll.tdnet: -------------------------------------------------------------------------------- 1 | 2 | xUnit.net {0}.{1}.{2} build {3} 3 | xunit.runner.tdnet.dll 4 | Xunit.Runner.TdNet.TdNetRunner 5 | -------------------------------------------------------------------------------- /src/Carnac/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/KeyStreamCapture/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/Carnac.Logic/Enums/NotificationPlacement.cs: -------------------------------------------------------------------------------- 1 | namespace Carnac.Logic.Enums 2 | { 3 | public enum NotificationPlacement 4 | { 5 | TopLeft = 1, 6 | BottomLeft = 2, 7 | TopRight = 3, 8 | BottomRight = 4 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/Carnac.Logic/IKeyProvider.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.Composition; 3 | using Carnac.Logic.Models; 4 | 5 | namespace Carnac.Logic 6 | { 7 | public interface IKeyProvider : IObservable 8 | { 9 | 10 | } 11 | } -------------------------------------------------------------------------------- /src/Carnac.Logic/Native/POINTL.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.InteropServices; 2 | 3 | namespace Carnac.Logic.Native 4 | { 5 | [StructLayout(LayoutKind.Sequential)] 6 | public struct POINTL 7 | { 8 | public int x; 9 | public int y; 10 | } 11 | } -------------------------------------------------------------------------------- /src/Carnac.Logic/IShortcutProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Carnac.Logic.Models; 3 | 4 | namespace Carnac.Logic 5 | { 6 | public interface IShortcutProvider 7 | { 8 | IEnumerable GetShortcutsMatching(IEnumerable keys); 9 | } 10 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | [Oo]bj/ 2 | [Bb]in/ 3 | *.user 4 | /TestResults 5 | *.vspscc 6 | *.vssscc 7 | deploy 8 | deploy/* 9 | *.suo 10 | *.cache 11 | packages/ 12 | msbuild.log 13 | artifacts/log 14 | artifacts/ 15 | post-build* 16 | _ReSharper.* 17 | deploy-to-ec2* 18 | *.ncrunchsolution 19 | *.orig 20 | Thumbs.db -------------------------------------------------------------------------------- /src/Carnac/Utilities/ITimerFactory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel.Composition; 3 | 4 | namespace Carnac.Utilities 5 | { 6 | [InheritedExport] 7 | public interface ITimerFactory 8 | { 9 | IDisposable Start(int period, Action callback); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/KeyStreamCapture/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/Carnac.Logic/IScreenManager.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.ComponentModel.Composition; 3 | using Carnac.Logic.Native; 4 | 5 | namespace Carnac.Logic 6 | { 7 | [InheritedExport] 8 | public interface IScreenManager 9 | { 10 | IEnumerable GetScreens(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Carnac/CarnacWindowManager.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | using Caliburn.Micro; 3 | 4 | namespace Carnac 5 | { 6 | public class CarnacWindowManager : WindowManager 7 | { 8 | public Window CreateWindow(object rootModel) 9 | { 10 | return CreateWindow(rootModel, false, null, null); 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/KeyStreamCapture/App.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Carnac.Logic/IPasswordModeService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Carnac.Logic.KeyMonitor; 3 | 4 | namespace Carnac.Logic 5 | { 6 | public interface IPasswordModeService 7 | { 8 | bool CheckPasswordMode(InterceptKeyEventArgs key); 9 | IEnumerable PasswordKeyCombination { get; } 10 | } 11 | } -------------------------------------------------------------------------------- /src/KeyStreamCapture/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Data; 5 | using System.Linq; 6 | using System.Windows; 7 | 8 | namespace KeyStreamCapture 9 | { 10 | /// 11 | /// Interaction logic for App.xaml 12 | /// 13 | public partial class App : Application 14 | { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Carnac.Tests/SpecificationFor.cs: -------------------------------------------------------------------------------- 1 | namespace Carnac.Tests 2 | { 3 | public abstract class SpecificationFor 4 | { 5 | public T Subject; 6 | 7 | public abstract T Given(); 8 | public abstract void When(); 9 | 10 | protected SpecificationFor() 11 | { 12 | Subject = Given(); 13 | When(); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/Carnac/Utilities/TimerFactory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Carnac.Utilities 4 | { 5 | public class TimerFactory : ITimerFactory 6 | { 7 | public IDisposable Start(int period, Action callback) 8 | { 9 | var timerState = new TimerState(period, callback); 10 | timerState.Start(); 11 | return timerState; 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /src/Carnac.Logic/ShortcutCollection.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Collections.ObjectModel; 3 | using System.Linq; 4 | using Carnac.Logic.Models; 5 | 6 | namespace Carnac.Logic 7 | { 8 | public class ShortcutCollection : Collection 9 | { 10 | public string Group { get; set; } 11 | public string Process { get; set; } 12 | 13 | public IEnumerable GetShortcutsMatching(IEnumerable keys) 14 | { 15 | var matches = this.Where(s => s.StartsWith(keys)); 16 | return matches; 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /tools/xunit/xunit.console.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 14 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /tools/xunit/xunit.console.x86.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 14 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/Carnac.Logic/NotifyPropertyChanged.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace Carnac.Logic 4 | { 5 | public class NotifyPropertyChanged : INotifyPropertyChanged 6 | { 7 | public event PropertyChangedEventHandler PropertyChanged; 8 | 9 | protected void OnPropertyChanged(PropertyChangedEventArgs e) 10 | { 11 | var handler = PropertyChanged; 12 | if (handler != null) handler(this, e); 13 | } 14 | 15 | protected void OnPropertyChanged(string propertyName) 16 | { 17 | OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /tools/xunit/xunit.console.clr4.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 14 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /tools/xunit/xunit.console.clr4.x86.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 14 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/Carnac/App.xaml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/Carnac/ViewModels/KeyShowViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | using Caliburn.Micro; 3 | using Carnac.Logic.Models; 4 | using Message = Carnac.Logic.Models.Message; 5 | 6 | namespace Carnac.ViewModels 7 | { 8 | public class KeyShowViewModel: Screen 9 | { 10 | public KeyShowViewModel(ObservableCollection keys, PopupSettings popupSettings) 11 | { 12 | Keys = keys; 13 | Settings = popupSettings; 14 | } 15 | 16 | public ObservableCollection Keys { get; private set; } 17 | 18 | public PopupSettings Settings { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Carnac/KeyMonitor/HotKeyWinApi.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | using System.Windows.Forms; 4 | using System.Windows.Input; 5 | 6 | namespace Carnac.KeyMonitor 7 | { 8 | /// 9 | /// First off all we need to import WinAPI methods 10 | /// 11 | public class HotKeyWinApi 12 | { 13 | public const int WmHotKey = 0x0312; 14 | 15 | [DllImport("user32.dll", SetLastError = true)] 16 | public static extern bool RegisterHotKey(IntPtr hWnd, int id, ModifierKeys fsModifiers, Keys vk); 17 | 18 | [DllImport("user32.dll", SetLastError = true)] 19 | public static extern bool UnregisterHotKey(IntPtr hWnd, int id); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/Carnac.Tests/Carnac.Tests.ncrunchproject: -------------------------------------------------------------------------------- 1 | 2 | false 3 | false 4 | false 5 | false 6 | true 7 | true 8 | true 9 | true 10 | 60000 11 | 12 | 13 | AutoDetect 14 | -------------------------------------------------------------------------------- /src/Carnac.Tests/Carnac.Tests.v2.ncrunchproject: -------------------------------------------------------------------------------- 1 | 2 | false 3 | false 4 | false 5 | false 6 | true 7 | true 8 | true 9 | true 10 | 60000 11 | 12 | 13 | AutoDetect 14 | -------------------------------------------------------------------------------- /src/KeyStreamCapture/KeyStreamCapture.ncrunchproject: -------------------------------------------------------------------------------- 1 | 2 | false 3 | false 4 | false 5 | false 6 | true 7 | true 8 | true 9 | true 10 | 60000 11 | 12 | 13 | AutoDetect 14 | -------------------------------------------------------------------------------- /src/KeyStreamCapture/KeyStreamCapture.v2.ncrunchproject: -------------------------------------------------------------------------------- 1 | 2 | false 3 | false 4 | false 5 | false 6 | true 7 | true 8 | true 9 | true 10 | 60000 11 | 12 | 13 | AutoDetect 14 | -------------------------------------------------------------------------------- /src/Carnac.Logic/Native/DetailedScreen.cs: -------------------------------------------------------------------------------- 1 | namespace Carnac.Logic.Native 2 | { 3 | public class DetailedScreen 4 | { 5 | public int Index { get; set; } 6 | public string FriendlyName { get; set; } 7 | public double Width { get; set; } 8 | public double Height { get; set; } 9 | 10 | public double RelativeHeight { get; set; } 11 | public double RelativeWidth { get; set; } 12 | 13 | public double Top { get; set; } 14 | public double Left { get; set; } 15 | 16 | public bool NotificationPlacementTopLeft { get; set; } 17 | public bool NotificationPlacementBottomLeft { get; set; } 18 | public bool NotificationPlacementTopRight { get; set; } 19 | public bool NotificationPlacementBottomRight { get; set; } 20 | } 21 | } -------------------------------------------------------------------------------- /src/Carnac.Logic/Native/DISPLAY_DEVICE.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.InteropServices; 2 | 3 | namespace Carnac.Logic.Native 4 | { 5 | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] 6 | public struct DISPLAY_DEVICE 7 | { 8 | [MarshalAs(UnmanagedType.U4)] 9 | public int cb; 10 | [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] 11 | public string DeviceName; 12 | [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] 13 | public string DeviceString; 14 | [MarshalAs(UnmanagedType.U4)] 15 | public DisplayDeviceStateFlags StateFlags; 16 | [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] 17 | public string DeviceID; 18 | [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)] 19 | public string DeviceKey; 20 | } 21 | } -------------------------------------------------------------------------------- /src/Carnac.ncrunchsolution: -------------------------------------------------------------------------------- 1 | 2 | 1 3 | True 4 | false 5 | UseDynamicAnalysis 6 | UseStaticAnalysis 7 | UseStaticAnalysis 8 | UseStaticAnalysis 9 | Run all tests automatically:BFRydWU=;Run all tests manually:BUZhbHNl;Run impacted tests automatically, others manually (experimental!):CklzSW1wYWN0ZWQ=;Run pinned tests automatically, others manually:CElzUGlubmVk 10 | -------------------------------------------------------------------------------- /src/Carnac.Tests/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/Carnac/Carnac.ncrunchproject: -------------------------------------------------------------------------------- 1 | 2 | false 3 | false 4 | false 5 | false 6 | true 7 | true 8 | true 9 | true 10 | 60000 11 | 12 | 13 | AutoDetect 14 | ..\Tools\NotifyPropertyWeaverMsBuildTask.dll 15 | -------------------------------------------------------------------------------- /src/Carnac.Logic/KeyMonitor/InterceptKeyEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace Carnac.Logic.KeyMonitor 5 | { 6 | public class InterceptKeyEventArgs : EventArgs 7 | { 8 | public InterceptKeyEventArgs(Keys key, KeyDirection keyDirection, bool altPressed, bool controlPressed, bool shiftPressed) 9 | { 10 | AltPressed = altPressed; 11 | ControlPressed = controlPressed; 12 | Key = key; 13 | KeyDirection = keyDirection; 14 | ShiftPressed = shiftPressed; 15 | } 16 | 17 | public bool Handled { get; set; } 18 | public bool AltPressed { get; private set; } 19 | public bool ControlPressed { get; private set; } 20 | public bool ShiftPressed { get; private set; } 21 | public Keys Key { get; private set; } 22 | public KeyDirection KeyDirection { get; private set; } 23 | } 24 | } -------------------------------------------------------------------------------- /src/Carnac.Logic/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/KeyStreamCapture/MainWindow.xaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |