├── .gitignore
├── 3x
├── Move Mouse.sln
└── Move Mouse
│ ├── Classes
│ ├── CelebrityMouse.cs
│ └── ScriptingLanguage.cs
│ ├── Events
│ ├── BlackoutStatusChangedEventArgs.cs
│ ├── HookKeyStatusChangedEventArgs.cs
│ ├── NewVersionAvailableEventArgs.cs
│ ├── PowerLineStatusChangedEventArgs.cs
│ └── ScheduleArrivedEventArgs.cs
│ ├── Forms
│ ├── AddBlackoutForm.Designer.cs
│ ├── AddBlackoutForm.cs
│ ├── AddBlackoutForm.resx
│ ├── AddScheduleForm.Designer.cs
│ ├── AddScheduleForm.cs
│ ├── AddScheduleForm.resx
│ ├── MouseForm.Designer.cs
│ ├── MouseForm.cs
│ ├── MouseForm.resx
│ ├── PowerShellExecutionPolicyForm.Designer.cs
│ ├── PowerShellExecutionPolicyForm.cs
│ ├── PowerShellExecutionPolicyForm.resx
│ ├── SystemTrayIcon.Designer.cs
│ └── SystemTrayIcon.cs
│ ├── Move Mouse.csproj
│ ├── Move Mouse.csproj.DotSettings
│ ├── Move Mouse.csproj.user
│ ├── Program.cs
│ ├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ └── Resources.resx
│ ├── Resources
│ ├── ..svnbridge
│ │ ├── Contact_Image.png
│ │ ├── EasterEgg.png
│ │ ├── Help_Image.png
│ │ ├── Mouse-Pause.ico
│ │ ├── Mouse-Play.ico
│ │ ├── Mouse-Stop.ico
│ │ ├── MouseHole_Image.gif
│ │ ├── Mouse_Icon.ico
│ │ ├── Mouse_Image.png
│ │ ├── PayPal_Image.png
│ │ ├── ScriptEditor_Icon.ico
│ │ ├── Twitter_logo_blue.png
│ │ └── codeplex.png
│ ├── Contact_Image.png
│ ├── EasterEgg.png
│ ├── Help_Image.png
│ ├── Mice
│ │ ├── ..svnbridge
│ │ │ ├── Bernard01.jpg
│ │ │ ├── Bianca01.jpg
│ │ │ ├── Brain01.jpg
│ │ │ ├── Danger01.png
│ │ │ ├── Despereaux01.jpg
│ │ │ ├── FievelMousekewitz01.png
│ │ │ ├── FingerMouse01.jpg
│ │ │ ├── GadgetHackwrench01.png
│ │ │ ├── Itchy01.png
│ │ │ ├── JaqGus01.jpg
│ │ │ ├── Jerry01.png
│ │ │ ├── Mickey01.jpg
│ │ │ ├── Mighty01.jpg
│ │ │ ├── Minnie01.jpg
│ │ │ ├── MontereyJack01.jpg
│ │ │ ├── Pikachu01.jpg
│ │ │ ├── Pinky01.jpg
│ │ │ ├── PixieDixie01.jpg
│ │ │ ├── Roquefort01.gif
│ │ │ ├── Speedy01.jpg
│ │ │ ├── StuartLittle01.jpg
│ │ │ └── Timothy01.JPG
│ │ ├── Bernard01.jpg
│ │ ├── Bianca01.jpg
│ │ ├── Brain01.jpg
│ │ ├── Danger01.png
│ │ ├── Despereaux01.jpg
│ │ ├── FievelMousekewitz01.png
│ │ ├── FingerMouse01.jpg
│ │ ├── GadgetHackwrench01.png
│ │ ├── Itchy01.png
│ │ ├── JaqGus01.jpg
│ │ ├── Jerry01.png
│ │ ├── Mice.xml
│ │ ├── Mickey01.jpg
│ │ ├── Mighty01.jpg
│ │ ├── Minnie01.jpg
│ │ ├── MontereyJack01.jpg
│ │ ├── Pikachu01.jpg
│ │ ├── Pinky01.jpg
│ │ ├── PixieDixie01.jpg
│ │ ├── Roquefort01.gif
│ │ ├── Speedy01.jpg
│ │ ├── StuartLittle01.jpg
│ │ └── Timothy01.JPG
│ ├── Mouse-Pause.ico
│ ├── Mouse-Play.ico
│ ├── Mouse-Stop.ico
│ ├── MouseHole_Image.gif
│ ├── Mouse_Icon.ico
│ ├── Mouse_Image.png
│ ├── PayPal_Image.png
│ ├── ScriptEditor_Icon.ico
│ ├── Twitter_logo_blue.png
│ └── codeplex.png
│ ├── StaticCode.cs
│ └── app.config
├── 4x
├── Libraries
│ └── Windows.winmd
├── Move Mouse.sln
└── Move Mouse
│ ├── Actions
│ ├── ActionBase.cs
│ ├── ActivateApplicationAction.cs
│ ├── ClickMouseAction.cs
│ ├── CommandAction.cs
│ ├── MoveMouseCursorAction.cs
│ ├── PositionMouseCursorAction.cs
│ ├── ScriptAction.cs
│ ├── ScrollMouseAction.cs
│ └── SleepAction.cs
│ ├── App.config
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Classes
│ ├── Arc.cs
│ ├── Blackout.cs
│ ├── Settings.cs
│ ├── Theme.cs
│ └── Update.cs
│ ├── Converters
│ ├── ApplicationSearchModeToBoolConverter.cs
│ ├── BoolToIndexConverter.cs
│ ├── CursorDirectionToStealthModeBoolConverter.cs
│ ├── DoubleDividedByTwoConverter.cs
│ ├── MouseStateIsSleepingConverter.cs
│ ├── ObjectToTypeStringConverter.cs
│ ├── ProgressToAngleConverter.cs
│ ├── StartupTaskStateToBoolConverter.cs
│ └── StringToFileExistsConverter.cs
│ ├── FodyWeavers.xml
│ ├── FodyWeavers.xsd
│ ├── Jobs
│ ├── CheckForUpdateJob.cs
│ ├── RefreshSchedulesJob.cs
│ ├── ResetUpdateStatusJob.cs
│ ├── ScheduleArrivedJob.cs
│ └── UpdateThemeJob.cs
│ ├── Move Mouse.csproj
│ ├── Move Mouse.csproj.user
│ ├── Properties
│ ├── Annotations.cs
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
│ ├── Resources
│ ├── ActionsAdd_Dark_64x64.png
│ ├── ActionsAdd_Light_64x64.png
│ ├── ActionsRemove_Dark_64x64.png
│ ├── ActionsRemove_Light_64x64.png
│ ├── Actions_Dark_64x64.png
│ ├── Actions_Light_64x64.png
│ ├── ActivateWindowAction_Dark_128x128.png
│ ├── ActivateWindowAction_Light_128x128.png
│ ├── Appearance_Dark_64x64.png
│ ├── Appearance_Light_64x64.png
│ ├── Behaviour_Dark_64x64.png
│ ├── Behaviour_Light_64x64.png
│ ├── ClickMouseAction_Dark_128x128.png
│ ├── ClickMouseAction_Light_128x128.png
│ ├── Close_Dark_64x64.png
│ ├── Close_Light_64x64.png
│ ├── CommandAction_Dark_128x128.png
│ ├── CommandAction_Light_128x128.png
│ ├── Console_Dark_64x64.png
│ ├── Console_Light_64x64.png
│ ├── Copyright_Dark_64x64.png
│ ├── Copyright_Light_64x64.png
│ ├── DownArrow_Dark_64x64.png
│ ├── DownArrow_Light_64x64.png
│ ├── FileOpen_Dark_64x64.png
│ ├── FileOpen_Light_64x64.png
│ ├── GitHub_Dark_64x64.png
│ ├── GitHub_Light_64x64.png
│ ├── Help_Dark_64x64.png
│ ├── Help_Light_64x64.png
│ ├── Home_Dark_64x64.png
│ ├── Home_Light_64x64.png
│ ├── Information_Dark_64x64.png
│ ├── Information_Light_64x64.png
│ ├── Mail_Dark_64x64.png
│ ├── Mail_Light_64x64.png
│ ├── Moon_Dark_128x128.png
│ ├── Moon_Light_128x128.png
│ ├── Mouse-Pause.ico
│ ├── Mouse-Play.ico
│ ├── Mouse-Sleep.ico
│ ├── Mouse-Stop.ico
│ ├── Mouse-SystemTray-Active.ico
│ ├── Mouse-SystemTray-Battery.ico
│ ├── Mouse-SystemTray-Execute.ico
│ ├── Mouse-SystemTray-Pause.ico
│ ├── Mouse-SystemTray-Sleep.ico
│ ├── Mouse.ico
│ ├── MouseClosedEyes_128x128.png
│ ├── MoveMouseCursorAction_Dark_128x128.png
│ ├── MoveMouseCursorAction_Light_128x128.png
│ ├── PayPal_Dark_64x64.png
│ ├── PayPal_Light_64x64.png
│ ├── PositionMouseCursorAction_Dark_128x128.png
│ ├── PositionMouseCursorAction_Light_128x128.png
│ ├── Refresh_Dark_64x64.png
│ ├── Refresh_Light_64x64.png
│ ├── Schedules_Dark_64x64.png
│ ├── Schedules_Light_64x64.png
│ ├── ScriptAction_Dark_128x128.png
│ ├── ScriptAction_Light_128x128.png
│ ├── ScrollMouseWheelAction_Dark_128x128.png
│ ├── ScrollMouseWheelAction_Light_128x128.png
│ ├── Settings_Dark_64x64.png
│ ├── Settings_Light_64x64.png
│ ├── SleepAction_Dark_128x128.png
│ ├── SleepAction_Light_128x128.png
│ ├── Twitter_Dark_64x64.png
│ ├── Twitter_Light_64x64.png
│ ├── UpArrow_Dark_64x64.png
│ ├── UpArrow_Light_64x64.png
│ ├── Volume_Dark_64x64.png
│ ├── Volume_Light_64x64.png
│ ├── Warning_128x128.png
│ └── Windows_Title.png
│ ├── Schedules
│ ├── AdvancedSchedule.cs
│ ├── ScheduleBase.cs
│ └── SimpleSchedule.cs
│ ├── StaticCode.cs
│ ├── Styles
│ ├── Colours.xaml
│ └── Controls.xaml
│ ├── Themes
│ ├── ChristmasTheme.png
│ ├── Themes.xml
│ └── Themes_Test.xml
│ ├── Utilities
│ └── RelayCommand.cs
│ ├── ViewModels
│ ├── MouseWindowViewModel.cs
│ └── SettingsWindowViewModel.cs
│ ├── Views
│ ├── MouseWindow.xaml
│ ├── MouseWindow.xaml.cs
│ ├── SettingsWindow.xaml
│ └── SettingsWindow.xaml.cs
│ ├── Wrappers
│ ├── MouseCursorWrapper.cs
│ └── NativeMethods.cs
│ ├── app.manifest
│ └── packages.config
├── Images
├── blackout.png
├── example_activatepreviouswindow_appearance.png
├── example_activatepreviouswindow_behaviour.png
├── example_activatepreviouswindow_capture.png
├── example_activatepreviouswindow_restore.png
├── example_wheninactive_activate.png
├── example_wheninactive_addaction.png
├── example_wheninactive_appearance.png
├── example_wheninactive_behaviour.png
├── example_wheninactive_click.png
├── example_wheninactive_position.png
├── example_workinghours_grid.png
├── example_workinghours_settings.png
├── mm_blue.png
├── mm_green.png
├── mm_hover.png
├── mm_orange.png
├── mm_purple.png
├── mm_red.png
├── mm_yellow.png
├── schedule_advanced.png
├── schedule_simple.png
├── settings_actioncontrols.png
├── settings_actionpanel.png
├── settings_actionproperties.png
├── settings_addaction.png
├── settings_appearance.png
├── settings_behaviour.png
├── settings_blackouts.png
├── settings_schedules.png
├── systemtray_notification.png
└── watch_idle_time.png
├── LICENSE
├── Mice
├── Bernard01.jpg
├── Bianca01.jpg
├── Brain01.jpg
├── Danger01.png
├── Despereaux01.jpg
├── FievelMousekewitz01.png
├── FingerMouse01.jpg
├── GadgetHackwrench01.png
├── Itchy01.png
├── JaqGus01.jpg
├── Jerry01.png
├── Mice.xml
├── Mickey01.jpg
├── Mighty01.jpg
├── Minnie01.jpg
├── MontereyJack01.jpg
├── Pikachu01.jpg
├── Pinky01.jpg
├── PixieDixie01.jpg
├── Roquefort01.gif
├── Speedy01.jpg
├── StuartLittle01.jpg
└── Timothy01.JPG
├── README.md
├── Themes
├── ChristmasTheme.png
├── HalloweenTheme.png
├── StDavidsDayTheme.png
├── Themes.xml
├── Themes_Test.xml
└── UsIndependenceTheme.png
├── Update_3x.xml
├── Update_4x.xml
└── Utils
├── Activate Window.ps1
├── Capture Active Window.ps1
└── Watch Idle TIme.ps1
/.gitignore:
--------------------------------------------------------------------------------
1 | 3x/.vs/
2 | 3x/packages/
3 | 3x/Move Mouse/bin/
4 | 3x/Move Mouse/obj/
5 | 4x/.vs/
6 | 4x/packages/
7 | 4x/Move Mouse/bin/
8 | 4x/Move Mouse/obj/
9 | 4x/UWP Package/
10 | .vs/
--------------------------------------------------------------------------------
/3x/Move Mouse.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25420.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Move Mouse", "Move Mouse\Move Mouse.csproj", "{5F138C5F-255A-4B0F-BFFD-7F49993571E7}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Release|Any CPU = Release|Any CPU
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {5F138C5F-255A-4B0F-BFFD-7F49993571E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15 | {5F138C5F-255A-4B0F-BFFD-7F49993571E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
16 | {5F138C5F-255A-4B0F-BFFD-7F49993571E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
17 | {5F138C5F-255A-4B0F-BFFD-7F49993571E7}.Release|Any CPU.Build.0 = Release|Any CPU
18 | EndGlobalSection
19 | GlobalSection(SolutionProperties) = preSolution
20 | HideSolutionNode = FALSE
21 | EndGlobalSection
22 | GlobalSection(TeamFoundationVersionControl) = preSolution
23 | SccNumberOfProjects = 2
24 | SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
25 | SccTeamFoundationServer = https://tfs.codeplex.com/tfs/tfs08
26 | SccLocalPath0 = .
27 | SccProjectUniqueName1 = Move\u0020Mouse\\Move\u0020Mouse.csproj
28 | SccProjectName1 = Move\u0020Mouse
29 | SccLocalPath1 = Move\u0020Mouse
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Classes/CelebrityMouse.cs:
--------------------------------------------------------------------------------
1 | namespace Ellanet.Classes
2 | {
3 | public class CelebrityMouse
4 | {
5 | public string Name { get; set; }
6 | public string ImageName { get; set; }
7 | public string ToolTip { get; set; }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Classes/ScriptingLanguage.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace Ellanet.Classes
3 | {
4 | class ScriptingLanguage
5 | {
6 | public string Name { get; set; }
7 | public string FileExtension { get; set; }
8 | public string ScriptEngine { get; set; }
9 | public string ScriptPrefixArguments { get; set; }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Events/BlackoutStatusChangedEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Ellanet.Events
4 | {
5 | public class BlackoutStatusChangedEventArgs : EventArgs
6 | {
7 | public BlackoutStatus Status { get; internal set; }
8 | public TimeSpan StartTime { get; internal set; }
9 | public TimeSpan EndTime { get; internal set; }
10 |
11 | public enum BlackoutStatus
12 | {
13 | Active,
14 | Inactive
15 | }
16 |
17 | public BlackoutStatusChangedEventArgs(BlackoutStatus status, TimeSpan startTime, TimeSpan endTime)
18 | {
19 | Status = status;
20 | StartTime = startTime;
21 | EndTime = endTime;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Events/HookKeyStatusChangedEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Ellanet.Events
4 | {
5 | public class HookKeyStatusChangedEventArgs : EventArgs
6 | {
7 | public bool Enabled { get; internal set; }
8 | public System.Windows.Forms.Keys Key { get; internal set; }
9 |
10 | public HookKeyStatusChangedEventArgs(bool enabled, System.Windows.Forms.Keys key)
11 | {
12 | Enabled = enabled;
13 | Key = key;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Events/NewVersionAvailableEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Ellanet.Events
4 | {
5 | public class NewVersionAvailableEventArgs : EventArgs
6 | {
7 | public Version Version { get; internal set; }
8 | public DateTime Released { get; internal set; }
9 | public DateTime Advertised { get; internal set; }
10 | public string[] Features { get; internal set; }
11 | public string[] Fixes { get; internal set; }
12 | public string DownloadUrl { get; internal set; }
13 |
14 | public NewVersionAvailableEventArgs(Version version, DateTime released, DateTime advertised, string[] features, string[] fixes, string downloadUrl)
15 | {
16 | Version = version;
17 | Released = released;
18 | Advertised = advertised;
19 | Features = features;
20 | Fixes = fixes;
21 | DownloadUrl = downloadUrl;
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/3x/Move Mouse/Events/PowerLineStatusChangedEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Ellanet.Events
4 | {
5 | public class PowerLineStatusChangedEventArgs: EventArgs
6 | {
7 | public PowerLineStatus Status { get; internal set; }
8 |
9 | public enum PowerLineStatus
10 | {
11 | Online,
12 | Offline,
13 | Unknown
14 | }
15 |
16 | public PowerLineStatusChangedEventArgs(PowerLineStatus status)
17 | {
18 | Status = status;
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Events/ScheduleArrivedEventArgs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Ellanet.Events
4 | {
5 | public class ScheduleArrivedEventArgs : EventArgs
6 | {
7 | public ScheduleAction Action { get; internal set; }
8 | public TimeSpan Time { get; internal set; }
9 |
10 | public enum ScheduleAction
11 | {
12 | Start,
13 | Pause
14 | }
15 |
16 | public ScheduleArrivedEventArgs(ScheduleAction action, TimeSpan time)
17 | {
18 | Action = action;
19 | Time = time;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Forms/AddBlackoutForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace Ellanet.Forms
5 | {
6 | public partial class AddBlackoutForm : Form
7 | {
8 | public TimeSpan Start { get; internal set; }
9 | public TimeSpan End { get; internal set; }
10 |
11 | public AddBlackoutForm() : this(new TimeSpan(17, 0, 0), new TimeSpan(9, 0, 0))
12 | {
13 | }
14 |
15 | public AddBlackoutForm(TimeSpan start, TimeSpan end)
16 | {
17 | InitializeComponent();
18 | startHourNumericUpDown.Value = start.Hours;
19 | startMinuteNumericUpDown.Value = start.Minutes;
20 | startSecondNumericUpDown.Value = start.Seconds;
21 | endHourNumericUpDown.Value = end.Hours;
22 | endMinuteNumericUpDown.Value = end.Minutes;
23 | endSecondNumericUpDown.Value = end.Seconds;
24 | okButton.Click += okButton_Click;
25 | }
26 |
27 | private void okButton_Click(object sender, EventArgs e)
28 | {
29 | Start = new TimeSpan(Convert.ToInt32(startHourNumericUpDown.Value), Convert.ToInt32(startMinuteNumericUpDown.Value), Convert.ToInt32(startSecondNumericUpDown.Value));
30 | End = new TimeSpan(Convert.ToInt32(endHourNumericUpDown.Value), Convert.ToInt32(endMinuteNumericUpDown.Value), Convert.ToInt32(endSecondNumericUpDown.Value));
31 | DialogResult = DialogResult.OK;
32 | Close();
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Forms/AddBlackoutForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Forms/AddScheduleForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Forms;
3 |
4 | namespace Ellanet.Forms
5 | {
6 | public partial class AddScheduleForm : Form
7 | {
8 | public TimeSpan Time { get; internal set; }
9 | public string Action { get; internal set; }
10 |
11 | public AddScheduleForm() : this(DateTime.Now.TimeOfDay, "Start")
12 | {
13 | }
14 |
15 | public AddScheduleForm(TimeSpan time, string action)
16 | {
17 | InitializeComponent();
18 | hourNumericUpDown.Value = time.Hours;
19 | minuteNumericUpDown.Value = time.Minutes;
20 | secondNumericUpDown.Value = time.Seconds;
21 |
22 | if (!String.IsNullOrEmpty(action) && (actionComboBox.Items.Contains(action)))
23 | {
24 | actionComboBox.SelectedItem = action;
25 | }
26 | else
27 | {
28 | actionComboBox.SelectedIndex = 0;
29 | }
30 |
31 | okButton.Click += okButton_Click;
32 | }
33 |
34 | private void okButton_Click(object sender, EventArgs e)
35 | {
36 | Time = new TimeSpan(Convert.ToInt32(hourNumericUpDown.Value), Convert.ToInt32(minuteNumericUpDown.Value), Convert.ToInt32(secondNumericUpDown.Value));
37 | Action = actionComboBox.SelectedItem.ToString();
38 | DialogResult = DialogResult.OK;
39 | Close();
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Forms/AddScheduleForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Forms/MouseForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Forms/PowerShellExecutionPolicyForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Windows.Forms;
4 |
5 | namespace Ellanet.Forms
6 | {
7 | public partial class PowerShellExecutionPolicyForm : Form
8 | {
9 | public PowerShellExecutionPolicyForm()
10 | {
11 | InitializeComponent();
12 | okButton.Click += okButton_Click;
13 | policyComboBox.SelectedIndex = 0;
14 | }
15 |
16 | void okButton_Click(object sender, EventArgs e)
17 | {
18 | var powershell = new Process
19 | {
20 | StartInfo =
21 | {
22 | FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe"),
23 | Arguments = String.Format("-Command \"Set-ExecutionPolicy {0}\"", policyComboBox.SelectedItem),
24 | Verb = "runas",
25 | WindowStyle = ProcessWindowStyle.Normal
26 | }
27 | };
28 | powershell.Start();
29 | Close();
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Forms/PowerShellExecutionPolicyForm.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Forms/SystemTrayIcon.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace Ellanet.Forms
2 | {
3 | partial class SystemTrayIcon
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | this.components = new System.ComponentModel.Container();
32 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
33 | this.Text = "SystemTrayIcon";
34 | }
35 |
36 | #endregion
37 | }
38 | }
--------------------------------------------------------------------------------
/3x/Move Mouse/Move Mouse.csproj.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | No
--------------------------------------------------------------------------------
/3x/Move Mouse/Move Mouse.csproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | /EnableToolWindowStyle
5 |
6 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Threading;
5 | using System.Windows.Forms;
6 | using Ellanet.Forms;
7 | using Microsoft.VisualBasic;
8 |
9 | namespace Ellanet
10 | {
11 | internal class Program
12 | {
13 | [STAThread]
14 | private static void Main(string[] args)
15 | {
16 | if (!Debugger.IsAttached)
17 | {
18 | AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
19 | Application.ThreadException += Application_ThreadException;
20 | }
21 |
22 | try
23 | {
24 | bool createdNew;
25 |
26 | using (new Mutex(true, "d45b30b9-9e65-4d33-a2bc-d6ba6a7500bd", out createdNew))
27 | {
28 | if (createdNew)
29 | {
30 | if ((args != null) && (args.Length > 0))
31 | {
32 | foreach (string arg in args)
33 | {
34 | if (arg.StartsWith("/WorkingDirectory:", StringComparison.CurrentCultureIgnoreCase))
35 | {
36 | string alternateWd = arg.Substring(18);
37 |
38 | if (!String.IsNullOrEmpty(alternateWd) && Directory.Exists(alternateWd))
39 | {
40 | StaticCode.WorkingDirectory = alternateWd;
41 | }
42 | }
43 | else if (arg.StartsWith("/EnableToolWindowStyle", StringComparison.CurrentCultureIgnoreCase))
44 | {
45 | StaticCode.EnableToolWindowStyle = true;
46 | }
47 | }
48 | }
49 |
50 | Application.EnableVisualStyles();
51 | Application.DoEvents();
52 | Application.Run(new SystemTrayIcon());
53 | }
54 | else
55 | {
56 | foreach (var process in Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName))
57 | {
58 | if ((process.Id != Process.GetCurrentProcess().Id) && !String.IsNullOrEmpty(process.MainWindowTitle))
59 | {
60 | Interaction.AppActivate(process.MainWindowTitle);
61 | break;
62 | }
63 | }
64 | }
65 | }
66 | }
67 | catch (Exception ex)
68 | {
69 | CloseMoveMouseWithException(ex.Message);
70 | }
71 | }
72 |
73 | private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
74 | {
75 | CloseMoveMouseWithException(e.Exception.Message);
76 | }
77 |
78 | private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
79 | {
80 | CloseMoveMouseWithException(e.ExceptionObject.ToString());
81 | }
82 |
83 | private static void CloseMoveMouseWithException(string exception)
84 | {
85 | MessageBox.Show(exception, "Move Mouse - Generic Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
86 | Application.Exit();
87 | }
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("Move Mouse")]
9 | [assembly: AssemblyDescription("Automatic mouse activity generator. Developed by Steve Williams.")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Ellanet Ltd")]
12 | [assembly: AssemblyProduct("Move Mouse")]
13 | [assembly: AssemblyCopyright("Copyright © Steve Williams 2010")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("8115df1f-60a4-4575-b6ba-5c3c17484d16")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | [assembly: AssemblyVersion("3.6.0.*")]
33 | [assembly: AssemblyFileVersion("3.6.0.0")]
34 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/..svnbridge/Contact_Image.png:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/..svnbridge/EasterEgg.png:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/..svnbridge/Help_Image.png:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/..svnbridge/Mouse-Pause.ico:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/..svnbridge/Mouse-Play.ico:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/..svnbridge/Mouse-Stop.ico:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/..svnbridge/MouseHole_Image.gif:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/..svnbridge/Mouse_Icon.ico:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/..svnbridge/Mouse_Image.png:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/..svnbridge/PayPal_Image.png:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/..svnbridge/ScriptEditor_Icon.ico:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/..svnbridge/Twitter_logo_blue.png:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/..svnbridge/codeplex.png:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Contact_Image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Contact_Image.png
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/EasterEgg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/EasterEgg.png
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Help_Image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Help_Image.png
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Bernard01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Bianca01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Brain01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Danger01.png:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Despereaux01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/FievelMousekewitz01.png:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/FingerMouse01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/GadgetHackwrench01.png:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Itchy01.png:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/JaqGus01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Jerry01.png:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Mickey01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Mighty01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Minnie01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/MontereyJack01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Pikachu01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Pinky01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/PixieDixie01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Roquefort01.gif:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Speedy01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/StuartLittle01.jpg:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/..svnbridge/Timothy01.JPG:
--------------------------------------------------------------------------------
1 | svn:mime-typeapplication/octet-stream
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Bernard01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Bernard01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Bianca01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Bianca01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Brain01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Brain01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Danger01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Danger01.png
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Despereaux01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Despereaux01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/FievelMousekewitz01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/FievelMousekewitz01.png
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/FingerMouse01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/FingerMouse01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/GadgetHackwrench01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/GadgetHackwrench01.png
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Itchy01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Itchy01.png
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/JaqGus01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/JaqGus01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Jerry01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Jerry01.png
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Mice.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Bernard
4 | Bernard01.jpg
5 |
6 |
7 |
8 | Bianca
9 | Bianca01.jpg
10 |
11 |
12 |
13 | Brain
14 | Brain01.jpg
15 |
16 |
17 |
18 | Danger Mouse
19 | Danger01.png
20 |
21 |
22 |
23 | Despereaux
24 | Despereaux01.jpg
25 |
26 |
27 |
28 | Fievel Mousekewitz
29 | FievelMousekewitz01.png
30 |
31 |
32 |
33 | Finger Mouse
34 | FingerMouse01.jpg
35 |
36 |
37 |
38 | Gadget Hackwrench
39 | GadgetHackwrench01.png
40 |
41 |
42 |
43 | Itchy
44 | Itchy01.png
45 |
46 |
47 |
48 | Jaq & Gus
49 | JaqGus01.jpg
50 |
51 |
52 |
53 | Jerry
54 | Jerry01.png
55 |
56 |
57 |
58 | Mickey
59 | Mickey01.jpg
60 |
61 |
62 |
63 | Mighty Mouse
64 | Mighty01.jpg
65 |
66 |
67 |
68 | Minnie
69 | Minnie01.jpg
70 |
71 |
72 |
73 | Monterey Jack
74 | MontereyJack01.jpg
75 |
76 |
77 |
78 | Pikachu
79 | Pikachu01.jpg
80 |
81 |
82 |
83 | Pinky
84 | Pinky01.jpg
85 |
86 |
87 |
88 | Pixie & Dixie
89 | PixieDixie01.jpg
90 |
91 |
92 |
93 | Roquefort
94 | Roquefort01.gif
95 |
96 |
97 |
98 | Speedy Gonzales
99 | Speedy01.jpg
100 |
101 |
102 |
103 | Stuart Little
104 | StuartLittle01.jpg
105 |
106 |
107 |
108 | Timothy
109 | Timothy01.JPG
110 |
111 |
112 |
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Mickey01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Mickey01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Mighty01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Mighty01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Minnie01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Minnie01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/MontereyJack01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/MontereyJack01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Pikachu01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Pikachu01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Pinky01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Pinky01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/PixieDixie01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/PixieDixie01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Roquefort01.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Roquefort01.gif
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Speedy01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Speedy01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/StuartLittle01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/StuartLittle01.jpg
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mice/Timothy01.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mice/Timothy01.JPG
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mouse-Pause.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mouse-Pause.ico
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mouse-Play.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mouse-Play.ico
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mouse-Stop.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mouse-Stop.ico
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/MouseHole_Image.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/MouseHole_Image.gif
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mouse_Icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mouse_Icon.ico
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Mouse_Image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Mouse_Image.png
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/PayPal_Image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/PayPal_Image.png
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/ScriptEditor_Icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/ScriptEditor_Icon.ico
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/Twitter_logo_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/Twitter_logo_blue.png
--------------------------------------------------------------------------------
/3x/Move Mouse/Resources/codeplex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/3x/Move Mouse/Resources/codeplex.png
--------------------------------------------------------------------------------
/3x/Move Mouse/StaticCode.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace Ellanet
4 | {
5 | class StaticCode
6 | {
7 | public static string WorkingDirectory = Environment.ExpandEnvironmentVariables(@"%AppData%\Ellanet\Move Mouse");
8 | public static bool EnableToolWindowStyle = false;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/3x/Move Mouse/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/4x/Libraries/Windows.winmd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Libraries/Windows.winmd
--------------------------------------------------------------------------------
/4x/Move Mouse.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.25420.1
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Move Mouse", "Move Mouse\Move Mouse.csproj", "{D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|Any CPU = Debug|Any CPU
11 | Debug|ARM = Debug|ARM
12 | Debug|x64 = Debug|x64
13 | Debug|x86 = Debug|x86
14 | Release|Any CPU = Release|Any CPU
15 | Release|ARM = Release|ARM
16 | Release|x64 = Release|x64
17 | Release|x86 = Release|x86
18 | EndGlobalSection
19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
20 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
21 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Debug|Any CPU.Build.0 = Debug|Any CPU
22 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Debug|ARM.ActiveCfg = Debug|Any CPU
23 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Debug|ARM.Build.0 = Debug|Any CPU
24 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Debug|x64.ActiveCfg = Debug|Any CPU
25 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Debug|x64.Build.0 = Debug|Any CPU
26 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Debug|x86.ActiveCfg = Debug|Any CPU
27 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Debug|x86.Build.0 = Debug|Any CPU
28 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Release|Any CPU.ActiveCfg = Release|Any CPU
29 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Release|Any CPU.Build.0 = Release|Any CPU
30 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Release|ARM.ActiveCfg = Release|Any CPU
31 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Release|ARM.Build.0 = Release|Any CPU
32 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Release|x64.ActiveCfg = Release|Any CPU
33 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Release|x64.Build.0 = Release|Any CPU
34 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Release|x86.ActiveCfg = Release|Any CPU
35 | {D1730F60-55C4-4D12-A759-FBC0AC1D5B0F}.Release|x86.Build.0 = Release|Any CPU
36 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Debug|Any CPU.ActiveCfg = Debug|x86
37 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Debug|ARM.ActiveCfg = Debug|ARM
38 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Debug|ARM.Build.0 = Debug|ARM
39 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Debug|ARM.Deploy.0 = Debug|ARM
40 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Debug|x64.ActiveCfg = Debug|x64
41 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Debug|x64.Build.0 = Debug|x64
42 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Debug|x64.Deploy.0 = Debug|x64
43 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Debug|x86.ActiveCfg = Debug|x86
44 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Debug|x86.Build.0 = Debug|x86
45 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Debug|x86.Deploy.0 = Debug|x86
46 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Release|Any CPU.ActiveCfg = Release|x86
47 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Release|ARM.ActiveCfg = Release|ARM
48 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Release|ARM.Build.0 = Release|ARM
49 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Release|ARM.Deploy.0 = Release|ARM
50 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Release|x64.ActiveCfg = Release|x64
51 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Release|x64.Build.0 = Release|x64
52 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Release|x64.Deploy.0 = Release|x64
53 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Release|x86.ActiveCfg = Release|x86
54 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Release|x86.Build.0 = Release|x86
55 | {11A78D8F-5EEE-4FC6-80BA-16F063EB518F}.Release|x86.Deploy.0 = Release|x86
56 | EndGlobalSection
57 | GlobalSection(SolutionProperties) = preSolution
58 | HideSolutionNode = FALSE
59 | EndGlobalSection
60 | EndGlobal
61 |
--------------------------------------------------------------------------------
/4x/Move Mouse/Actions/ActionBase.cs:
--------------------------------------------------------------------------------
1 | using ellabi.Annotations;
2 | using ellabi.Utilities;
3 | using System;
4 | using System.Collections.Generic;
5 | using System.ComponentModel;
6 | using System.Linq;
7 | using System.Runtime.CompilerServices;
8 | using System.Xml.Serialization;
9 |
10 | namespace ellabi.Actions
11 | {
12 | public abstract class ActionBase : INotifyPropertyChanged
13 | {
14 | public event PropertyChangedEventHandler PropertyChanged;
15 |
16 | private string _name;
17 | private bool _isEnabled;
18 | private bool _repeat;
19 | private EventTrigger _trigger;
20 | private IntervalRepeatMode _repeatMode;
21 | private int _intervalThrottle;
22 | private int _intervalExecutionCount;
23 | private bool _interruptsIdleTime;
24 |
25 | public enum EventTrigger
26 | {
27 | Start,
28 | Interval,
29 | Stop
30 | }
31 |
32 | public enum IntervalRepeatMode
33 | {
34 | Forever,
35 | Throttle
36 | }
37 |
38 | public abstract bool IsValid { get; }
39 |
40 | public Guid Id { get; set; }
41 |
42 | public string Name
43 | {
44 | get => _name;
45 | set
46 | {
47 | _name = String.IsNullOrWhiteSpace(value) ? null : value;
48 | OnPropertyChanged();
49 | }
50 | }
51 |
52 | public bool IsEnabled
53 | {
54 | get => _isEnabled;
55 | set
56 | {
57 | _isEnabled = value;
58 | OnPropertyChanged();
59 | }
60 | }
61 |
62 | public bool Repeat
63 | {
64 | get => _repeat;
65 | set
66 | {
67 | _repeat = value;
68 | OnPropertyChanged();
69 | }
70 | }
71 |
72 | [XmlIgnore]
73 | public RelayCommand ExecuteCommand { get; set; }
74 |
75 | public EventTrigger Trigger
76 | {
77 | get => _trigger;
78 | set
79 | {
80 | _trigger = value;
81 | OnPropertyChanged();
82 | }
83 | }
84 |
85 | public IEnumerable EventTriggerValues => Enum.GetValues(typeof(EventTrigger)).Cast();
86 |
87 | public IntervalRepeatMode RepeatMode
88 | {
89 | get => _repeatMode;
90 | set
91 | {
92 | _repeatMode = value;
93 | OnPropertyChanged();
94 | }
95 | }
96 |
97 | public IEnumerable IntervalRepeatModeValues => Enum.GetValues(typeof(IntervalRepeatMode)).Cast();
98 |
99 | public int IntervalThrottle
100 | {
101 | get => _intervalThrottle;
102 | set
103 | {
104 | _intervalThrottle = value;
105 | OnPropertyChanged();
106 | }
107 | }
108 |
109 | [XmlIgnore]
110 | public int IntervalExecutionCount
111 | {
112 | get => _intervalExecutionCount;
113 | set
114 | {
115 | _intervalExecutionCount = value;
116 | OnPropertyChanged();
117 | }
118 | }
119 |
120 | [XmlIgnore]
121 | public bool InterruptsIdleTime
122 | {
123 | get => _interruptsIdleTime;
124 | set
125 | {
126 | _interruptsIdleTime = value;
127 | OnPropertyChanged();
128 | }
129 | }
130 |
131 | protected ActionBase()
132 | {
133 | Id = Guid.NewGuid();
134 | _isEnabled = true;
135 | _repeat = true;
136 | _trigger = EventTrigger.Interval;
137 | _repeatMode = IntervalRepeatMode.Forever;
138 | _intervalThrottle = 1;
139 | ExecuteCommand = new RelayCommand(param => Execute(), param => CanExecute());
140 | }
141 |
142 | public abstract bool CanExecute();
143 |
144 | public abstract void Execute();
145 |
146 | public abstract override string ToString();
147 |
148 | [NotifyPropertyChangedInvocator]
149 | protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
150 | {
151 | try
152 | {
153 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
154 | }
155 | catch (Exception ex)
156 | {
157 | StaticCode.Logger?.Here().Error(ex.Message);
158 | }
159 | }
160 | }
161 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Actions/ClickMouseAction.cs:
--------------------------------------------------------------------------------
1 | using ellabi.Wrappers;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Threading;
6 |
7 | namespace ellabi.Actions
8 | {
9 | public class ClickMouseAction : ActionBase
10 | {
11 | private MouseButton _button;
12 | private bool _hold;
13 | private double _holdInterval;
14 |
15 | public enum MouseButton
16 | {
17 | Left,
18 | Middle,
19 | Right
20 | }
21 |
22 | public IEnumerable MouseButtonValues => Enum.GetValues(typeof(MouseButton)).Cast();
23 |
24 | public override bool IsValid => true;
25 |
26 | public MouseButton Button
27 | {
28 | get => _button;
29 | set
30 | {
31 | _button = value;
32 | OnPropertyChanged();
33 | }
34 | }
35 |
36 | public bool Hold
37 | {
38 | get => _hold;
39 | set
40 | {
41 | _hold = value;
42 | OnPropertyChanged();
43 | }
44 | }
45 |
46 | public double HoldInterval
47 | {
48 | get => _holdInterval;
49 | set
50 | {
51 | _holdInterval = value;
52 | OnPropertyChanged();
53 | }
54 | }
55 |
56 | public ClickMouseAction()
57 | {
58 | _button = MouseButton.Left;
59 | InterruptsIdleTime = true;
60 | }
61 |
62 | public override bool CanExecute()
63 | {
64 | return IsValid;
65 | }
66 |
67 | public override void Execute()
68 | {
69 | try
70 | {
71 | StaticCode.Logger?.Here().Information(ToString());
72 |
73 | switch (_button)
74 | {
75 | case MouseButton.Left:
76 | NativeMethods.mouse_event((int)NativeMethods.MouseEventFlags.LEFTDOWN, 0, 0, 0, 0);
77 | break;
78 | case MouseButton.Middle:
79 | NativeMethods.mouse_event((int)NativeMethods.MouseEventFlags.MIDDLEDOWN, 0, 0, 0, 0);
80 | break;
81 | case MouseButton.Right:
82 | NativeMethods.mouse_event((int)NativeMethods.MouseEventFlags.RIGHTDOWN, 0, 0, 0, 0);
83 | break;
84 | //case MouseButton.WheelUp:
85 | // NativeMethods.mouse_event((int)NativeMethods.MouseEventFlags.WHEEL, 0, 0, Distance, 0);
86 | // break;
87 | }
88 |
89 | if (Hold)
90 | {
91 | Thread.Sleep(Convert.ToInt32(1000 * HoldInterval));
92 | }
93 |
94 | switch (_button)
95 | {
96 | case MouseButton.Left:
97 | NativeMethods.mouse_event((int)NativeMethods.MouseEventFlags.LEFTUP, 0, 0, 0, 0);
98 | break;
99 | case MouseButton.Middle:
100 | NativeMethods.mouse_event((int)NativeMethods.MouseEventFlags.MIDDLEUP, 0, 0, 0, 0);
101 | break;
102 | case MouseButton.Right:
103 | NativeMethods.mouse_event((int)NativeMethods.MouseEventFlags.RIGHTUP, 0, 0, 0, 0);
104 | break;
105 | }
106 | }
107 | catch (Exception ex)
108 | {
109 | StaticCode.Logger?.Here().Error(ex.Message);
110 | }
111 | }
112 |
113 | public override string ToString()
114 | {
115 | return $"{this.GetType().Name} | Name = {Name} | Button = {Button} | Hold = {Hold} | HoldInterval = {HoldInterval} | Trigger = {Trigger} | Repeat = {Repeat} | RepeatMode = {RepeatMode} | IntervalThrottle = {IntervalThrottle} | IntervalExecutionCount = {IntervalExecutionCount} | InterruptsIdleTime = {InterruptsIdleTime}";
116 | }
117 | }
118 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Actions/CommandAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 |
5 | namespace ellabi.Actions
6 | {
7 | public class CommandAction : ActionBase
8 | {
9 | private string _filePath;
10 | private string _arguments;
11 | private bool _waitForExit;
12 | private bool _hidden;
13 |
14 | public override bool IsValid => !String.IsNullOrWhiteSpace(FilePath) && File.Exists(FilePath);
15 |
16 | public string FilePath
17 | {
18 | get => _filePath;
19 | set
20 | {
21 | _filePath = value;
22 | OnPropertyChanged();
23 | }
24 | }
25 |
26 | public string Arguments
27 | {
28 | get => _arguments;
29 | set
30 | {
31 | _arguments = value;
32 | OnPropertyChanged();
33 | }
34 | }
35 |
36 | public bool WaitForExit
37 | {
38 | get => _waitForExit;
39 | set
40 | {
41 | _waitForExit = value;
42 | OnPropertyChanged();
43 | }
44 | }
45 |
46 | public bool Hidden
47 | {
48 | get => _hidden;
49 | set
50 | {
51 | _hidden = value;
52 | OnPropertyChanged();
53 | }
54 | }
55 |
56 | public override bool CanExecute()
57 | {
58 | return IsValid;
59 | }
60 |
61 | public override void Execute()
62 | {
63 | try
64 | {
65 | StaticCode.Logger?.Here().Information(ToString());
66 |
67 | if (File.Exists(FilePath))
68 | {
69 | var process = new Process
70 | {
71 | StartInfo =
72 | {
73 | FileName = FilePath.Trim(),
74 | Arguments = Arguments,
75 | WindowStyle = Hidden ? ProcessWindowStyle.Hidden : ProcessWindowStyle.Normal
76 | }
77 | };
78 |
79 | process.Start();
80 | if (WaitForExit) process.WaitForExit();
81 | }
82 | }
83 | catch (Exception ex)
84 | {
85 | StaticCode.Logger?.Here().Error(ex.Message);
86 | }
87 | }
88 |
89 | public override string ToString()
90 | {
91 | return $"{this.GetType().Name} | Name = {Name} | FilePath = {FilePath} | Arguments = {Arguments} | WaitForExit = {WaitForExit} | Hidden = {Hidden} | Trigger = {Trigger} | Repeat = {Repeat} | RepeatMode = {RepeatMode} | IntervalThrottle = {IntervalThrottle} | IntervalExecutionCount = {IntervalExecutionCount} | InterruptsIdleTime = {InterruptsIdleTime}";
92 | }
93 | }
94 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Actions/PositionMouseCursorAction.cs:
--------------------------------------------------------------------------------
1 | using ellabi.Utilities;
2 | using ellabi.Wrappers;
3 | using System;
4 | using System.Timers;
5 | using System.Xml.Serialization;
6 |
7 | namespace ellabi.Actions
8 | {
9 | public class PositionMouseCursorAction : ActionBase
10 | {
11 | private int _x;
12 | private int _y;
13 | private TimeSpan _cursorTrackingTimeRemaining;
14 | private readonly TimeSpan _cursorTrackingTime = TimeSpan.FromSeconds(3);
15 | private Timer _cursorTrackingTimer;
16 | private bool _cursorTrackingEnabled;
17 |
18 | public override bool IsValid => true;
19 |
20 | public int X
21 | {
22 | get => _x;
23 | set
24 | {
25 | _x = value;
26 | OnPropertyChanged();
27 | }
28 | }
29 |
30 | public int Y
31 | {
32 | get => _y;
33 | set
34 | {
35 | _y = value;
36 | OnPropertyChanged();
37 | }
38 | }
39 |
40 | [XmlIgnore]
41 | public RelayCommand StartCursorTrackingCommand { get; set; }
42 |
43 | [XmlIgnore]
44 | public TimeSpan CursorTrackingTimeRemaining
45 | {
46 | get => _cursorTrackingTimeRemaining;
47 | set
48 | {
49 | _cursorTrackingTimeRemaining = value;
50 | OnPropertyChanged();
51 | }
52 | }
53 |
54 | [XmlIgnore]
55 | public bool CursorTrackingEnabled
56 | {
57 | get => _cursorTrackingEnabled;
58 | set
59 | {
60 | _cursorTrackingEnabled = value;
61 | OnPropertyChanged();
62 | }
63 | }
64 |
65 | public PositionMouseCursorAction()
66 | {
67 | StartCursorTrackingCommand = new RelayCommand(param => StartCursorTracking());
68 | }
69 |
70 | public override bool CanExecute()
71 | {
72 | return IsValid;
73 | }
74 |
75 | public override void Execute()
76 | {
77 | try
78 | {
79 | StaticCode.Logger?.Here().Information(ToString());
80 | NativeMethods.SetCursorPos(X, Y);
81 | }
82 | catch (Exception ex)
83 | {
84 | StaticCode.Logger?.Here().Error(ex.Message);
85 | }
86 | }
87 |
88 | public void StartCursorTracking()
89 | {
90 | try
91 | {
92 | CursorTrackingEnabled = true;
93 | _cursorTrackingTimer = new Timer { Interval = 100 };
94 | _cursorTrackingTimer.Elapsed += _cursorTrackingTimer_Elapsed;
95 | _cursorTrackingTimer.Start();
96 | }
97 | catch (Exception ex)
98 | {
99 | StaticCode.Logger?.Here().Error(ex.Message);
100 | }
101 | }
102 |
103 | private void _cursorTrackingTimer_Elapsed(object sender, ElapsedEventArgs e)
104 | {
105 | try
106 | {
107 | CursorTrackingTimeRemaining = _cursorTrackingTime.Subtract(StaticCode.GetLastInputTime());
108 |
109 | if (CursorTrackingTimeRemaining.TotalMilliseconds <= 0)
110 | {
111 | _cursorTrackingTimer.Stop();
112 | CursorTrackingEnabled = false;
113 | }
114 | else
115 | {
116 | var w32Mouse = new NativeMethods.Win32Point();
117 | NativeMethods.GetCursorPos(ref w32Mouse);
118 | X = w32Mouse.X;
119 | Y = w32Mouse.Y;
120 | }
121 | }
122 | catch (Exception ex)
123 | {
124 | StaticCode.Logger?.Here().Error(ex.Message);
125 | }
126 | }
127 |
128 | public override string ToString()
129 | {
130 | return $"{this.GetType().Name} | Name = {Name} | X = {X} | Y = {Y} | Trigger = {Trigger} | Repeat = {Repeat} | RepeatMode = {RepeatMode} | IntervalThrottle = {IntervalThrottle} | IntervalExecutionCount = {IntervalExecutionCount} | InterruptsIdleTime = {InterruptsIdleTime}";
131 | }
132 | }
133 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Actions/ScriptAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 |
5 | namespace ellabi.Actions
6 | {
7 | public class ScriptAction : ActionBase
8 | {
9 | private const string PowerShellPath = @"%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe";
10 |
11 | private string _scriptPath;
12 | private bool _waitForExit;
13 | private bool _hidden;
14 |
15 | public override bool IsValid => !String.IsNullOrWhiteSpace(ScriptPath) && File.Exists(ScriptPath) && ScriptPath.EndsWith(".ps1", StringComparison.CurrentCultureIgnoreCase);
16 |
17 | public string ScriptPath
18 | {
19 | get => _scriptPath;
20 | set
21 | {
22 | _scriptPath = value;
23 | OnPropertyChanged();
24 | }
25 | }
26 |
27 | public bool WaitForExit
28 | {
29 | get => _waitForExit;
30 | set
31 | {
32 | _waitForExit = value;
33 | OnPropertyChanged();
34 | }
35 | }
36 |
37 | public bool Hidden
38 | {
39 | get => _hidden;
40 | set
41 | {
42 | _hidden = value;
43 | OnPropertyChanged();
44 | }
45 | }
46 |
47 | public override bool CanExecute()
48 | {
49 | return IsValid;
50 | }
51 |
52 | public override void Execute()
53 | {
54 | try
55 | {
56 | StaticCode.Logger?.Here().Information(ToString());
57 | string powerShellPath = Environment.ExpandEnvironmentVariables(PowerShellPath);
58 |
59 | if (File.Exists(powerShellPath) && File.Exists(ScriptPath))
60 | {
61 | var powershell = new Process
62 | {
63 | StartInfo =
64 | {
65 | FileName = powerShellPath,
66 | Arguments = String.Format("-ExecutionPolicy Bypass -File \"{0}\"", ScriptPath.Trim()),
67 | WindowStyle = Hidden ? ProcessWindowStyle.Hidden : ProcessWindowStyle.Normal
68 | }
69 | };
70 |
71 | powershell.Start();
72 | if (WaitForExit) powershell.WaitForExit();
73 | }
74 | }
75 | catch (Exception ex)
76 | {
77 | StaticCode.Logger?.Here().Error(ex.Message);
78 | }
79 | }
80 |
81 | public override string ToString()
82 | {
83 | return $"{this.GetType().Name} | Name = {Name} | ScriptPath = {ScriptPath} | WaitForExit = {WaitForExit} | Hidden = {Hidden} | Trigger = {Trigger} | Repeat = {Repeat} | RepeatMode = {RepeatMode} | IntervalThrottle = {IntervalThrottle} | IntervalExecutionCount = {IntervalExecutionCount} | InterruptsIdleTime = {InterruptsIdleTime}";
84 | }
85 | }
86 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Actions/ScrollMouseAction.cs:
--------------------------------------------------------------------------------
1 | using ellabi.Wrappers;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Diagnostics;
5 | using System.Linq;
6 |
7 | namespace ellabi.Actions
8 | {
9 | public class ScrollMouseAction : ActionBase
10 | {
11 | private uint _distance;
12 | private uint _upperDistance;
13 | private bool _random;
14 | private WheelDirection _direction;
15 |
16 | public enum WheelDirection
17 | {
18 | Up,
19 | Down,
20 | Left,
21 | Right,
22 | Random
23 | }
24 |
25 | public IEnumerable WheelDirectionValues => Enum.GetValues(typeof(WheelDirection)).Cast();
26 |
27 | public override bool IsValid => Distance > 0;
28 |
29 | public uint Distance
30 | {
31 | get => _distance;
32 | set
33 | {
34 | if (value > UpperDistance)
35 | {
36 | UpperDistance = value;
37 | }
38 |
39 | _distance = value;
40 | OnPropertyChanged();
41 | }
42 | }
43 |
44 | public uint UpperDistance
45 | {
46 | get => _upperDistance;
47 | set
48 | {
49 | if (value < Distance)
50 | {
51 | Distance = value;
52 | }
53 |
54 | _upperDistance = value < 1 ? 1 : value;
55 | OnPropertyChanged();
56 | }
57 | }
58 |
59 | public bool Random
60 | {
61 | get => _random;
62 | set
63 | {
64 | _random = value;
65 | OnPropertyChanged();
66 | }
67 | }
68 |
69 | public WheelDirection Direction
70 | {
71 | get => _direction;
72 | set
73 | {
74 | _direction = value;
75 | OnPropertyChanged();
76 | }
77 | }
78 |
79 | public ScrollMouseAction()
80 | {
81 | _distance = 100;
82 | _upperDistance = 200;
83 | _direction = WheelDirection.Down;
84 | InterruptsIdleTime = true;
85 | }
86 |
87 | public override bool CanExecute()
88 | {
89 | return IsValid;
90 | }
91 |
92 | public override void Execute()
93 | {
94 | try
95 | {
96 | StaticCode.Logger?.Here().Information(ToString());
97 | var direction = (Direction == WheelDirection.Random) ? WheelDirectionValues.OrderBy(wd => Guid.NewGuid()).FirstOrDefault() : Direction;
98 | uint distance = Random ? (uint)(new Random().Next(Convert.ToInt32(Distance), Convert.ToInt32(UpperDistance))) : Distance;
99 |
100 | switch (direction)
101 | {
102 | case WheelDirection.Up:
103 | {
104 | NativeMethods.mouse_event((int)NativeMethods.MouseEventFlags.WHEEL, 0, 0, distance, 0);
105 | break;
106 | }
107 | case WheelDirection.Down:
108 | {
109 | NativeMethods.mouse_event((int)NativeMethods.MouseEventFlags.WHEEL, 0, 0, (uint)(distance * -1), 0);
110 | break;
111 | }
112 | case WheelDirection.Left:
113 | {
114 | NativeMethods.mouse_event((int)NativeMethods.MouseEventFlags.HWHEEL, 0, 0, distance, 0);
115 | break;
116 | }
117 | case WheelDirection.Right:
118 | {
119 | NativeMethods.mouse_event((int)NativeMethods.MouseEventFlags.HWHEEL, 0, 0, (uint)(distance * -1), 0);
120 | break;
121 | }
122 | }
123 | }
124 | catch (Exception ex)
125 | {
126 | StaticCode.Logger?.Here().Error(ex.Message);
127 | }
128 | }
129 |
130 | public override string ToString()
131 | {
132 | return $"{this.GetType().Name} | Name = {Name} | Distance = {Distance} | Direction = {Direction} | Trigger = {Trigger} | Repeat = {Repeat} | RepeatMode = {RepeatMode} | IntervalThrottle = {IntervalThrottle} | IntervalExecutionCount = {IntervalExecutionCount} | InterruptsIdleTime = {InterruptsIdleTime}";
133 | }
134 | }
135 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Actions/SleepAction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Threading;
3 |
4 | namespace ellabi.Actions
5 | {
6 | public class SleepAction : ActionBase
7 | {
8 | private double _seconds;
9 | private double _upperSeconds;
10 | private bool _random;
11 |
12 | public override bool IsValid => Seconds > 0.0;
13 |
14 | public double Seconds
15 | {
16 | get => _seconds;
17 | set
18 | {
19 | if (value > UpperSeconds)
20 | {
21 | UpperSeconds = value;
22 | }
23 |
24 | _seconds = value < .1 ? .1 : value;
25 | OnPropertyChanged();
26 | }
27 | }
28 |
29 | public double UpperSeconds
30 | {
31 | get => _upperSeconds;
32 | set
33 | {
34 | if (value < Seconds)
35 | {
36 | Seconds = value;
37 | }
38 |
39 | _upperSeconds = value < .1 ? .1 : value;
40 | OnPropertyChanged();
41 | }
42 | }
43 |
44 | public bool Random
45 | {
46 | get => _random;
47 | set
48 | {
49 | _random = value;
50 | OnPropertyChanged();
51 | }
52 | }
53 |
54 | public SleepAction()
55 | {
56 | _seconds = 1;
57 | _upperSeconds = 2;
58 | }
59 |
60 | public override bool CanExecute()
61 | {
62 | return IsValid;
63 | }
64 |
65 | public override void Execute()
66 | {
67 | try
68 | {
69 | var sleep = TimeSpan.FromSeconds(Random ? new Random().Next(Convert.ToInt32(Seconds), Convert.ToInt32(UpperSeconds)) : Seconds);
70 | StaticCode.Logger?.Here().Information(ToString());
71 | StaticCode.Logger?.Here().Information(sleep.ToString());
72 | Thread.Sleep(sleep);
73 | }
74 | catch (Exception ex)
75 | {
76 | StaticCode.Logger?.Here().Error(ex.Message);
77 | }
78 | }
79 |
80 | public override string ToString()
81 | {
82 | return $"{this.GetType().Name} | Name = {Name} | Random = {Random} | Seconds = {Seconds} | UpperSeconds = {UpperSeconds} | Trigger = {Trigger} | Repeat = {Repeat} | RepeatMode = {RepeatMode} | IntervalThrottle = {IntervalThrottle} | IntervalExecutionCount = {IntervalExecutionCount} | InterruptsIdleTime = {InterruptsIdleTime}";
83 | }
84 | }
85 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/4x/Move Mouse/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/4x/Move Mouse/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Net;
6 | using System.Threading;
7 | using System.Windows;
8 |
9 | namespace ellabi
10 | {
11 | public partial class App
12 | {
13 | private void App_OnStartup(object sender, StartupEventArgs e)
14 | {
15 | try
16 | {
17 | using (new Mutex(true, "f45b30b9-9e65-4d33-a2bc-d6ba6a7500bd", out var createdNew))
18 | {
19 | if (createdNew)
20 | {
21 | StaticCode.CreateLog();
22 |
23 | if ((StaticCode.DownloadSource == StaticCode.MoveMouseSource.GitHub) && (e.Args != null) && e.Args.Any(a => a.StartsWith("/WorkingDirectory:", StringComparison.CurrentCultureIgnoreCase)))
24 | {
25 | var workingDirectoryArg = e.Args.First(a => a.StartsWith("/WorkingDirectory:", StringComparison.CurrentCultureIgnoreCase));
26 | var alternateWorkingDirectory = workingDirectoryArg.Substring(workingDirectoryArg.IndexOf(':') + 1);
27 |
28 | if (Directory.Exists(alternateWorkingDirectory))
29 | {
30 | StaticCode.WorkingDirectory = workingDirectoryArg.Substring(workingDirectoryArg.IndexOf(':') + 1);
31 | }
32 | }
33 |
34 | Directory.CreateDirectory(StaticCode.WorkingDirectory);
35 | ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls12;
36 | StartupUri = new Uri("Views/MouseWindow.xaml", UriKind.Relative);
37 | }
38 | }
39 | }
40 | catch (Exception ex)
41 | {
42 | StaticCode.Logger?.Here().Error(ex.Message);
43 | }
44 | }
45 |
46 | private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
47 | {
48 | StaticCode.Logger?.Here().Error(e.Exception.Message);
49 | }
50 | }
51 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Classes/Arc.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Windows;
4 | using System.Windows.Media;
5 | using System.Windows.Shapes;
6 |
7 | namespace ellabi.Classes
8 | {
9 | public class Arc : Shape
10 | {
11 | public double StartAngle
12 | {
13 | get { return (double)GetValue(StartAngleProperty); }
14 | set { SetValue(StartAngleProperty, value); }
15 | }
16 |
17 | // Using a DependencyProperty as the backing store for StartAngle. This enables animation, styling, binding, etc...
18 | public static readonly DependencyProperty StartAngleProperty = DependencyProperty.Register("StartAngle", typeof(double), typeof(Arc), new UIPropertyMetadata(0.0, UpdateArc));
19 |
20 | public double EndAngle
21 | {
22 | get { return (double)GetValue(EndAngleProperty); }
23 | set { SetValue(EndAngleProperty, value); }
24 | }
25 |
26 | // Using a DependencyProperty as the backing store for EndAngle. This enables animation, styling, binding, etc...
27 | public static readonly DependencyProperty EndAngleProperty = DependencyProperty.Register("EndAngle", typeof(double), typeof(Arc), new UIPropertyMetadata(90.0, UpdateArc));
28 |
29 | // This controls whether or not the progress bar goes clockwise or counterclockwise
30 | public SweepDirection Direction
31 | {
32 | get { return (SweepDirection)GetValue(DirectionProperty); }
33 | set { SetValue(DirectionProperty, value); }
34 | }
35 |
36 | public static readonly DependencyProperty DirectionProperty = DependencyProperty.Register("Direction", typeof(SweepDirection), typeof(Arc), new UIPropertyMetadata(SweepDirection.Clockwise));
37 |
38 | // Rotate the start/endpoint of the arc a certain number of degree in the direction
39 | // ie. if you wanted it to be at 12:00 that would be 270 Clockwise or 90 counterclockwise
40 | public double OriginRotationDegrees
41 | {
42 | get { return (double)GetValue(OriginRotationDegreesProperty); }
43 | set { SetValue(OriginRotationDegreesProperty, value); }
44 | }
45 |
46 | public static readonly DependencyProperty OriginRotationDegreesProperty = DependencyProperty.Register("OriginRotationDegrees", typeof(double), typeof(Arc), new UIPropertyMetadata(270.0, UpdateArc));
47 |
48 | protected static void UpdateArc(DependencyObject d, DependencyPropertyChangedEventArgs e)
49 | {
50 | try
51 | {
52 | Arc arc = d as Arc;
53 | arc?.InvalidateVisual();
54 | }
55 | catch (Exception ex)
56 | {
57 | StaticCode.Logger?.Here().Error(ex.Message);
58 | }
59 | }
60 |
61 | protected override Geometry DefiningGeometry => GetArcGeometry();
62 |
63 | protected override void OnRender(DrawingContext drawingContext)
64 | {
65 | try
66 | {
67 | drawingContext.DrawGeometry(null, new Pen(Stroke, StrokeThickness), GetArcGeometry());
68 | }
69 | catch (Exception ex)
70 | {
71 | StaticCode.Logger?.Here().Error(ex.Message);
72 | }
73 | }
74 |
75 | private Geometry GetArcGeometry()
76 | {
77 | StreamGeometry geom = new StreamGeometry();
78 |
79 | try
80 | {
81 | Point startPoint = PointAtAngle(Math.Min(StartAngle, EndAngle), Direction);
82 | Point endPoint = PointAtAngle(Math.Max(StartAngle, EndAngle), Direction);
83 | Size arcSize = new Size(Math.Max(0, (RenderSize.Width - StrokeThickness) / 2), Math.Max(0, (RenderSize.Height - StrokeThickness) / 2));
84 | bool isLargeArc = Math.Abs(EndAngle - StartAngle) > 180;
85 |
86 | using (StreamGeometryContext context = geom.Open())
87 | {
88 | context.BeginFigure(startPoint, false, false);
89 | context.ArcTo(endPoint, arcSize, 0, isLargeArc, Direction, true, false);
90 | }
91 |
92 | geom.Transform = new TranslateTransform(StrokeThickness / 2, StrokeThickness / 2);
93 | }
94 | catch (Exception ex)
95 | {
96 | StaticCode.Logger?.Here().Error(ex.Message);
97 | }
98 |
99 | return geom;
100 | }
101 |
102 | private Point PointAtAngle(double angle, SweepDirection sweep)
103 | {
104 | try
105 | {
106 | double translatedAngle = angle + OriginRotationDegrees;
107 | double radAngle = translatedAngle * (Math.PI / 180);
108 | double xr = (RenderSize.Width - StrokeThickness) / 2;
109 | double yr = (RenderSize.Height - StrokeThickness) / 2;
110 | double x = xr + xr * Math.Cos(radAngle);
111 | double y = yr * Math.Sin(radAngle);
112 |
113 | if (sweep == SweepDirection.Counterclockwise)
114 | {
115 | y = yr - y;
116 | }
117 | else
118 | {
119 | y = yr + y;
120 | }
121 |
122 | return new Point(x, y);
123 | }
124 | catch (Exception ex)
125 | {
126 | StaticCode.Logger?.Here().Error(ex.Message);
127 | }
128 |
129 | return new Point();
130 | }
131 | }
132 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Classes/Theme.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Xml.Serialization;
3 |
4 | namespace ellabi.Classes
5 | {
6 | //public class Theme
7 | //{
8 | // public string Name { get; set; }
9 |
10 | // public DateTime StartTime { get; set; }
11 |
12 | // public DateTime EndTime { get; set; }
13 |
14 | // //todo What if not accessible?
15 | // public string ImagePath { get; set; }
16 |
17 | // [XmlArray(ElementName = "Regions")]
18 | // [XmlArrayItem("Region")]
19 | // public string[] Regions { get; set; }
20 | //}
21 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Classes/Update.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ellabi.Classes
4 | {
5 | public class Update
6 | {
7 | public Version LatestVersion { get; set; }
8 |
9 | public string DownloadUrl { get; set; }
10 | }
11 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Converters/ApplicationSearchModeToBoolConverter.cs:
--------------------------------------------------------------------------------
1 | using ellabi.Actions;
2 | using System;
3 | using System.Diagnostics;
4 | using System.Globalization;
5 | using System.Windows.Data;
6 |
7 | namespace ellabi.Converters
8 | {
9 | public class ApplicationSearchModeToBoolConverter : IValueConverter
10 | {
11 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
12 | {
13 | try
14 | {
15 | if ((value != null) && value.GetType() == typeof(ActivateApplicationAction.SearchMode))
16 | {
17 | var mode = (ActivateApplicationAction.SearchMode) value;
18 | return mode.Equals(ActivateApplicationAction.SearchMode.Window);
19 | }
20 | }
21 | catch (Exception ex)
22 | {
23 | StaticCode.Logger?.Here().Error(ex.Message);
24 | }
25 |
26 | return false;
27 | }
28 |
29 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
30 | {
31 | try
32 | {
33 | if (Boolean.TryParse(value?.ToString(), out var b))
34 | {
35 | return b ? ActivateApplicationAction.SearchMode.Window : ActivateApplicationAction.SearchMode.Process;
36 | }
37 | }
38 | catch (Exception ex)
39 | {
40 | StaticCode.Logger?.Here().Error(ex.Message);
41 | }
42 |
43 | return ActivateApplicationAction.SearchMode.Process;
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Converters/BoolToIndexConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Globalization;
4 | using System.Windows.Data;
5 |
6 | namespace ellabi.Converters
7 | {
8 | public class BoolToIndexConverter : IValueConverter
9 | {
10 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
11 | {
12 | try
13 | {
14 | return (value != null) && (bool) value ? 0 : 1;
15 | }
16 | catch (Exception ex)
17 | {
18 | StaticCode.Logger?.Here().Error(ex.Message);
19 | }
20 |
21 | return 1;
22 | }
23 |
24 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
25 | {
26 | try
27 | {
28 | return value != null && (int) value == 0;
29 | }
30 | catch (Exception ex)
31 | {
32 | StaticCode.Logger?.Here().Error(ex.Message);
33 | }
34 |
35 | return false;
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Converters/CursorDirectionToStealthModeBoolConverter.cs:
--------------------------------------------------------------------------------
1 | using ellabi.Actions;
2 | using System;
3 | using System.Diagnostics;
4 | using System.Globalization;
5 | using System.Windows.Data;
6 |
7 | namespace ellabi.Converters
8 | {
9 | public class CursorDirectionToStealthModeBoolConverter : IValueConverter
10 | {
11 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
12 | {
13 | try
14 | {
15 | if ((value != null) && value.GetType() == typeof(MoveMouseCursorAction.CursorDirection))
16 | {
17 | var direction = (MoveMouseCursorAction.CursorDirection)value;
18 | return direction.Equals(MoveMouseCursorAction.CursorDirection.None);
19 | }
20 | }
21 | catch (Exception ex)
22 | {
23 | StaticCode.Logger?.Here().Error(ex.Message);
24 | }
25 |
26 | return false;
27 | }
28 |
29 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
30 | {
31 | try
32 | {
33 | if (Boolean.TryParse(value?.ToString(), out var b))
34 | {
35 | return b ? MoveMouseCursorAction.CursorDirection.None : MoveMouseCursorAction.CursorDirection.Square;
36 | }
37 | }
38 | catch (Exception ex)
39 | {
40 | StaticCode.Logger?.Here().Error(ex.Message);
41 | }
42 |
43 | return MoveMouseCursorAction.CursorDirection.Square;
44 | }
45 | }
46 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Converters/DoubleDividedByTwoConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Windows.Data;
4 |
5 | namespace ellabi.Converters
6 | {
7 | public class DoubleDividedByTwoConverter : IValueConverter
8 | {
9 | public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
10 | {
11 | try
12 | {
13 | if ((value != null) && Double.TryParse(value.ToString(), out var d))
14 | {
15 | return d / 2;
16 | }
17 | }
18 | catch (Exception ex)
19 | {
20 | StaticCode.Logger?.Here().Error(ex.Message);
21 | }
22 |
23 | return 0.0;
24 | }
25 |
26 | public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
27 | {
28 | throw new NotImplementedException();
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Converters/MouseStateIsSleepingConverter.cs:
--------------------------------------------------------------------------------
1 | using ellabi.ViewModels;
2 | using System;
3 | using System.Globalization;
4 | using System.Windows.Data;
5 |
6 | namespace ellabi.Converters
7 | {
8 | public class MouseStateIsSleepingConverter : IValueConverter
9 | {
10 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
11 | {
12 | try
13 | {
14 | return (value != null) && Enum.TryParse(value.ToString(), true, out MouseWindowViewModel.MouseState state) && state.Equals(MouseWindowViewModel.MouseState.Sleeping);
15 | }
16 | catch (Exception ex)
17 | {
18 | StaticCode.Logger?.Here().Error(ex.Message);
19 | }
20 |
21 | return false;
22 | }
23 |
24 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
25 | {
26 | throw new NotImplementedException();
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Converters/ObjectToTypeStringConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Globalization;
4 | using System.Windows.Data;
5 |
6 | namespace ellabi.Converters
7 | {
8 | public class ObjectToTypeStringConverter : IValueConverter
9 | {
10 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
11 | {
12 | try
13 | {
14 | return value?.GetType().ToString();
15 | }
16 | catch (Exception ex)
17 | {
18 | StaticCode.Logger?.Here().Error(ex.Message);
19 | }
20 |
21 | return null;
22 | }
23 |
24 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
25 | {
26 | throw new NotImplementedException();
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Converters/ProgressToAngleConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Globalization;
4 | using System.Windows.Controls;
5 | using System.Windows.Data;
6 |
7 | namespace ellabi.Converters
8 | {
9 | public class ProgressToAngleConverter : IMultiValueConverter
10 | {
11 | public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
12 | {
13 | try
14 | {
15 | double progress = (double) values[0];
16 | if (values[1] is ProgressBar bar) return 359.999 * (progress / (bar.Maximum - bar.Minimum));
17 | }
18 | catch (Exception ex)
19 | {
20 | StaticCode.Logger?.Here().Error(ex.Message);
21 | }
22 |
23 | return null;
24 | }
25 |
26 | public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
27 | {
28 | throw new NotImplementedException();
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Converters/StartupTaskStateToBoolConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Data;
4 | using Windows.ApplicationModel;
5 |
6 | namespace ellabi.Converters
7 | {
8 | public class StartupTaskStateToBoolConverter : IValueConverter
9 | {
10 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
11 | {
12 | try
13 | {
14 | if ((value != null) && value.GetType() == typeof(StartupTaskState))
15 | {
16 | var state = (StartupTaskState) value;
17 | return state.Equals(StartupTaskState.Enabled);
18 | }
19 | }
20 | catch (Exception ex)
21 | {
22 | StaticCode.Logger?.Here().Error(ex.Message);
23 | }
24 |
25 | return false;
26 | }
27 |
28 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
29 | {
30 | try
31 | {
32 | if (Boolean.TryParse(value?.ToString(), out var b))
33 | {
34 | return b ? StartupTaskState.Enabled : StartupTaskState.Disabled;
35 | }
36 | }
37 | catch (Exception ex)
38 | {
39 | StaticCode.Logger?.Here().Error(ex.Message);
40 | }
41 |
42 | return StartupTaskState.Disabled;
43 | }
44 | }
45 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Converters/StringToFileExistsConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Diagnostics;
3 | using System.Globalization;
4 | using System.IO;
5 | using System.Windows.Data;
6 |
7 | namespace ellabi.Converters
8 | {
9 | public class StringToFileExistsConverter : IValueConverter
10 | {
11 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
12 | {
13 | try
14 | {
15 | return !String.IsNullOrWhiteSpace(value?.ToString()) && File.Exists(value.ToString());
16 | }
17 | catch (Exception ex)
18 | {
19 | StaticCode.Logger?.Here().Error(ex.Message);
20 | }
21 |
22 | return false;
23 | }
24 |
25 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
26 | {
27 | throw new NotImplementedException();
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/FodyWeavers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/4x/Move Mouse/Jobs/CheckForUpdateJob.cs:
--------------------------------------------------------------------------------
1 | using ellabi.Classes;
2 | using Quartz;
3 | using System;
4 | using System.IO;
5 | using System.Reflection;
6 | using System.Threading.Tasks;
7 | using System.Xml;
8 | using System.Xml.Serialization;
9 |
10 | namespace ellabi.Jobs
11 | {
12 | public class CheckForUpdateJob : IJob
13 | {
14 | public async Task Execute(IJobExecutionContext context)
15 | {
16 | try
17 | {
18 | var update = GetUpdate();
19 |
20 | if ((update != null) && (update.LatestVersion > Assembly.GetExecutingAssembly().GetName().Version))
21 | {
22 | StaticCode.UpdateUrl = update.DownloadUrl;
23 | StaticCode.OnUpdateAvailablityChanged(true);
24 | }
25 | }
26 | catch (Exception ex)
27 | {
28 | StaticCode.Logger?.Here().Error(ex.Message);
29 | }
30 |
31 | await Task.CompletedTask;
32 | }
33 |
34 | private Update GetUpdate()
35 | {
36 | try
37 | {
38 | var xmlDoc = new XmlDocument();
39 | xmlDoc.Load(StaticCode.UpdateXmlUrl);
40 | var versionNode = xmlDoc.SelectSingleNode("Update/LatestVersion");
41 | var urlNode = xmlDoc.SelectSingleNode("Update/DownloadUrl");
42 |
43 | if ((versionNode != null) && (urlNode != null) && !String.IsNullOrWhiteSpace(versionNode.InnerText) && !String.IsNullOrWhiteSpace(urlNode.InnerText) && Version.TryParse(versionNode.InnerText, out var version))
44 | {
45 | return new Update
46 | {
47 | DownloadUrl = urlNode.InnerText,
48 | LatestVersion = version
49 | };
50 | }
51 | }
52 | catch (Exception ex)
53 | {
54 | StaticCode.Logger?.Here().Error(ex.Message);
55 | }
56 |
57 | return null;
58 | }
59 | }
60 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Jobs/RefreshSchedulesJob.cs:
--------------------------------------------------------------------------------
1 | using Quartz;
2 | using System.Threading.Tasks;
3 |
4 | namespace ellabi.Jobs
5 | {
6 | public class RefreshSchedulesJob : IJob
7 | {
8 | public async Task Execute(IJobExecutionContext context)
9 | {
10 | StaticCode.OnRefreshSchedules();
11 | await Task.CompletedTask;
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Jobs/ResetUpdateStatusJob.cs:
--------------------------------------------------------------------------------
1 | using Quartz;
2 | using System.Threading.Tasks;
3 |
4 | namespace ellabi.Jobs
5 | {
6 | public class ResetUpdateStatusJob : IJob
7 | {
8 | public async Task Execute(IJobExecutionContext context)
9 | {
10 | StaticCode.OnUpdateAvailablityChanged(false);
11 | await Task.CompletedTask;
12 | }
13 | }
14 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Jobs/ScheduleArrivedJob.cs:
--------------------------------------------------------------------------------
1 | using ellabi.Schedules;
2 | using Quartz;
3 | using System;
4 | using System.Threading.Tasks;
5 |
6 | namespace ellabi.Jobs
7 | {
8 | public class ScheduleArrivedJob : IJob
9 | {
10 | public async Task Execute(IJobExecutionContext context)
11 | {
12 | try
13 | {
14 | var dataMap = context.JobDetail.JobDataMap;
15 | var action = (ScheduleBase.ScheduleAction)Enum.Parse(typeof(ScheduleBase.ScheduleAction), dataMap["action"].ToString());
16 | StaticCode.OnScheduleArrived(action);
17 | }
18 | catch (Exception ex)
19 | {
20 | StaticCode.Logger?.Here().Error(ex.Message);
21 | }
22 |
23 | await Task.CompletedTask;
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Jobs/UpdateThemeJob.cs:
--------------------------------------------------------------------------------
1 | using ellabi.Classes;
2 | using Quartz;
3 | using System;
4 | using System.Diagnostics;
5 | using System.Globalization;
6 | using System.IO;
7 | using System.Linq;
8 | using System.Xml;
9 | using System.Xml.Serialization;
10 |
11 | namespace ellabi.Jobs
12 | {
13 | //public class UpdateThemeJob : IJob
14 | //{
15 | // public void Execute(IJobExecutionContext context)
16 | // {
17 | // try
18 | // {
19 | // //StaticCode.OnThemeUpdated(GetThemes()?.FirstOrDefault(theme => theme.StartTime <= DateTime.Now && theme.EndTime >= DateTime.Now && (theme.Regions == null || theme.Regions.Any(region => RegionInfo.CurrentRegion.EnglishName.Equals(region)))));
20 | // }
21 | // catch (Exception ex)
22 | // {
23 | // StaticCode.Logger?.Here().Error(ex.Message);
24 | // }
25 | // }
26 |
27 | // //private Theme[] GetThemes()
28 | // //{
29 | // // XmlReader xr = null;
30 |
31 | // // try
32 | // // {
33 | // // var xmlDoc = new XmlDocument();
34 | // // xmlDoc.Load(StaticCode.ThemesXmlUrl);
35 | // // var xs = new XmlSerializer(typeof(Theme[]));
36 | // // xr = XmlReader.Create(new StringReader(xmlDoc.OuterXml));
37 | // // return (Theme[])xs.Deserialize(xr);
38 | // // }
39 | // // catch (Exception ex)
40 | // // {
41 | // // StaticCode.Logger?.Here().Error(ex.Message);
42 | // // }
43 | // // finally
44 | // // {
45 | // // xr?.Close();
46 | // // }
47 |
48 | // // return null;
49 | // //}
50 | //}
51 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Move Mouse.csproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | publish\
9 |
10 |
11 |
12 |
13 |
14 | en-US
15 | false
16 |
17 |
--------------------------------------------------------------------------------
/4x/Move Mouse/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Resources;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 | using System.Windows;
6 |
7 | // General Information about an assembly is controlled through the following
8 | // set of attributes. Change these attribute values to modify the information
9 | // associated with an assembly.
10 | [assembly: AssemblyTitle("Move Mouse")]
11 | [assembly: AssemblyDescription("http://www.movemouse.co.uk/")]
12 | [assembly: AssemblyConfiguration("")]
13 | [assembly: AssemblyCompany("")]
14 | [assembly: AssemblyProduct("Move Mouse")]
15 | [assembly: AssemblyCopyright("Copyright © Steve Williams 2017")]
16 | [assembly: AssemblyTrademark("")]
17 | [assembly: AssemblyCulture("")]
18 |
19 | // Setting ComVisible to false makes the types in this assembly not visible
20 | // to COM components. If you need to access a type in this assembly from
21 | // COM, set the ComVisible attribute to true on that type.
22 | [assembly: ComVisible(false)]
23 |
24 | //In order to begin building localizable applications, set
25 | //CultureYouAreCodingWith in your .csproj file
26 | //inside a . For example, if you are using US english
27 | //in your source files, set the to en-US. Then uncomment
28 | //the NeutralResourceLanguage attribute below. Update the "en-US" in
29 | //the line below to match the UICulture setting in the project file.
30 |
31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
32 |
33 |
34 | [assembly: ThemeInfo(
35 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
36 | //(used if a resource is not found in the page,
37 | // or application resource dictionaries)
38 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
39 | //(used if a resource is not found in the page,
40 | // app, or any theme specific resource dictionaries)
41 | )]
42 |
43 |
44 | // Version information for an assembly consists of the following four values:
45 | //
46 | // Major Version
47 | // Minor Version
48 | // Build Number
49 | // Revision
50 | //
51 | // You can specify all the values or you can default the Build and Revision Numbers
52 | // by using the '*' as shown below:
53 | // [assembly: AssemblyVersion("1.0.*")]
54 | [assembly: AssemblyVersion("4.18.2.0")]
55 | [assembly: AssemblyFileVersion("4.18.2.0")]
56 |
--------------------------------------------------------------------------------
/4x/Move Mouse/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace ellabi.Properties {
12 |
13 |
14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17 |
18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19 |
20 | public static Settings Default {
21 | get {
22 | return defaultInstance;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/4x/Move Mouse/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/ActionsAdd_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/ActionsAdd_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/ActionsAdd_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/ActionsAdd_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/ActionsRemove_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/ActionsRemove_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/ActionsRemove_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/ActionsRemove_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Actions_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Actions_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Actions_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Actions_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/ActivateWindowAction_Dark_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/ActivateWindowAction_Dark_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/ActivateWindowAction_Light_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/ActivateWindowAction_Light_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Appearance_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Appearance_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Appearance_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Appearance_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Behaviour_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Behaviour_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Behaviour_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Behaviour_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/ClickMouseAction_Dark_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/ClickMouseAction_Dark_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/ClickMouseAction_Light_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/ClickMouseAction_Light_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Close_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Close_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Close_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Close_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/CommandAction_Dark_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/CommandAction_Dark_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/CommandAction_Light_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/CommandAction_Light_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Console_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Console_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Console_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Console_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Copyright_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Copyright_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Copyright_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Copyright_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/DownArrow_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/DownArrow_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/DownArrow_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/DownArrow_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/FileOpen_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/FileOpen_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/FileOpen_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/FileOpen_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/GitHub_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/GitHub_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/GitHub_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/GitHub_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Help_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Help_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Help_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Help_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Home_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Home_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Home_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Home_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Information_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Information_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Information_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Information_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Mail_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Mail_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Mail_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Mail_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Moon_Dark_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Moon_Dark_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Moon_Light_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Moon_Light_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Mouse-Pause.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Mouse-Pause.ico
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Mouse-Play.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Mouse-Play.ico
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Mouse-Sleep.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Mouse-Sleep.ico
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Mouse-Stop.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Mouse-Stop.ico
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Mouse-SystemTray-Active.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Mouse-SystemTray-Active.ico
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Mouse-SystemTray-Battery.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Mouse-SystemTray-Battery.ico
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Mouse-SystemTray-Execute.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Mouse-SystemTray-Execute.ico
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Mouse-SystemTray-Pause.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Mouse-SystemTray-Pause.ico
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Mouse-SystemTray-Sleep.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Mouse-SystemTray-Sleep.ico
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Mouse.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Mouse.ico
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/MouseClosedEyes_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/MouseClosedEyes_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/MoveMouseCursorAction_Dark_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/MoveMouseCursorAction_Dark_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/MoveMouseCursorAction_Light_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/MoveMouseCursorAction_Light_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/PayPal_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/PayPal_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/PayPal_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/PayPal_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/PositionMouseCursorAction_Dark_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/PositionMouseCursorAction_Dark_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/PositionMouseCursorAction_Light_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/PositionMouseCursorAction_Light_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Refresh_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Refresh_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Refresh_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Refresh_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Schedules_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Schedules_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Schedules_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Schedules_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/ScriptAction_Dark_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/ScriptAction_Dark_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/ScriptAction_Light_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/ScriptAction_Light_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/ScrollMouseWheelAction_Dark_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/ScrollMouseWheelAction_Dark_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/ScrollMouseWheelAction_Light_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/ScrollMouseWheelAction_Light_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Settings_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Settings_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Settings_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Settings_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/SleepAction_Dark_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/SleepAction_Dark_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/SleepAction_Light_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/SleepAction_Light_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Twitter_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Twitter_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Twitter_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Twitter_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/UpArrow_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/UpArrow_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/UpArrow_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/UpArrow_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Volume_Dark_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Volume_Dark_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Volume_Light_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Volume_Light_64x64.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Warning_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Warning_128x128.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Resources/Windows_Title.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Resources/Windows_Title.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Schedules/AdvancedSchedule.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace ellabi.Schedules
4 | {
5 | public class AdvancedSchedule : ScheduleBase
6 | {
7 | private string _schedule;
8 |
9 | public override bool IsValid => !String.IsNullOrWhiteSpace(CronExpression) && Quartz.CronExpression.IsValidExpression(CronExpression);
10 |
11 | public override string CronExpression => Schedule;
12 |
13 | public string Schedule
14 | {
15 | get => _schedule;
16 | set
17 | {
18 | _schedule = value;
19 | OnPropertyChanged();
20 | OnPropertyChanged(nameof(IsValid));
21 | }
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Schedules/ScheduleBase.cs:
--------------------------------------------------------------------------------
1 | using ellabi.Annotations;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.ComponentModel;
5 | using System.Linq;
6 | using System.Runtime.CompilerServices;
7 | using System.Xml.Serialization;
8 |
9 | namespace ellabi.Schedules
10 | {
11 | public abstract class ScheduleBase : INotifyPropertyChanged
12 | {
13 | public event PropertyChangedEventHandler PropertyChanged;
14 |
15 | private ScheduleAction _action;
16 |
17 | public enum ScheduleAction
18 | {
19 | Start,
20 | Stop
21 | }
22 |
23 | public abstract bool IsValid { get; }
24 |
25 | [XmlIgnore]
26 | public abstract string CronExpression { get; }
27 |
28 | public Guid Id { get; set; }
29 |
30 | public IEnumerable ScheduleActionValues => Enum.GetValues(typeof(ScheduleAction)).Cast();
31 |
32 | public ScheduleAction Action
33 | {
34 | get => _action;
35 | set
36 | {
37 | _action = value;
38 | OnPropertyChanged();
39 | }
40 | }
41 |
42 | protected ScheduleBase()
43 | {
44 | Id = Guid.NewGuid();
45 | }
46 |
47 | [NotifyPropertyChangedInvocator]
48 | protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
49 | {
50 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
51 | }
52 | }
53 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Schedules/SimpleSchedule.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Text;
3 | using System.Xml.Serialization;
4 |
5 | namespace ellabi.Schedules
6 | {
7 | public class SimpleSchedule : ScheduleBase
8 | {
9 | private bool _monday;
10 | private bool _tuesday;
11 | private bool _wednesday;
12 | private bool _thursday;
13 | private bool _friday;
14 | private bool _saturday;
15 | private bool _sunday;
16 | private TimeSpan _time;
17 | private int _delay;
18 | public override bool IsValid => (Monday || Tuesday || Wednesday || Thursday || Friday || Saturday || Sunday) && (Time < TimeSpan.FromHours(24));
19 |
20 | public override string CronExpression
21 | {
22 | get
23 | {
24 | var time = Delay == 0 ? Time : Time.Add(TimeSpan.FromSeconds(new Random().Next(0, Delay)));
25 | if (time.TotalDays >= 1) time = new TimeSpan(23, 59, 59);
26 | return String.Format("{0} {1} {2} ? * {3}", time.Seconds, time.Minutes, time.Hours, BuildDayOfWeekPart());
27 | }
28 | }
29 |
30 | public bool Monday
31 | {
32 | get => _monday;
33 | set
34 | {
35 | _monday = value;
36 |
37 | if (!IsValid)
38 | {
39 | _monday = true;
40 | }
41 |
42 | OnPropertyChanged();
43 | OnPropertyChanged(nameof(IsValid));
44 | }
45 | }
46 |
47 | public bool Tuesday
48 | {
49 | get => _tuesday;
50 | set
51 | {
52 | _tuesday = value;
53 |
54 | if (!IsValid)
55 | {
56 | _tuesday = true;
57 | }
58 |
59 | OnPropertyChanged();
60 | OnPropertyChanged(nameof(IsValid));
61 | }
62 | }
63 |
64 | public bool Wednesday
65 | {
66 | get => _wednesday;
67 | set
68 | {
69 | _wednesday = value;
70 |
71 | if (!IsValid)
72 | {
73 | _wednesday = true;
74 | }
75 |
76 | OnPropertyChanged();
77 | OnPropertyChanged(nameof(IsValid));
78 | }
79 | }
80 |
81 | public bool Thursday
82 | {
83 | get => _thursday;
84 | set
85 | {
86 | _thursday = value;
87 |
88 | if (!IsValid)
89 | {
90 | _thursday = true;
91 | }
92 |
93 | OnPropertyChanged();
94 | OnPropertyChanged(nameof(IsValid));
95 | }
96 | }
97 |
98 | public bool Friday
99 | {
100 | get => _friday;
101 | set
102 | {
103 | _friday = value;
104 |
105 | if (!IsValid)
106 | {
107 | _friday = true;
108 | }
109 |
110 | OnPropertyChanged();
111 | OnPropertyChanged(nameof(IsValid));
112 | }
113 | }
114 |
115 | public bool Saturday
116 | {
117 | get => _saturday;
118 | set
119 | {
120 | _saturday = value;
121 |
122 | if (!IsValid)
123 | {
124 | _saturday = true;
125 | }
126 |
127 | OnPropertyChanged();
128 | OnPropertyChanged(nameof(IsValid));
129 | }
130 | }
131 |
132 | public bool Sunday
133 | {
134 | get => _sunday;
135 | set
136 | {
137 | _sunday = value;
138 |
139 | if (!IsValid)
140 | {
141 | _sunday = true;
142 | }
143 |
144 | OnPropertyChanged();
145 | OnPropertyChanged(nameof(IsValid));
146 | }
147 | }
148 |
149 | [XmlIgnore]
150 | public TimeSpan Time
151 | {
152 | get => _time;
153 | set
154 | {
155 | _time = value;
156 | OnPropertyChanged();
157 | OnPropertyChanged(nameof(IsValid));
158 | }
159 | }
160 |
161 | [XmlElement(DataType = "duration", ElementName = "Time")]
162 | public string TimeString
163 | {
164 | get => _time.ToString();
165 | set => _time = String.IsNullOrEmpty(value) ? TimeSpan.Zero : TimeSpan.Parse(value);
166 | }
167 |
168 | public int Delay
169 | {
170 | get => _delay;
171 | set
172 | {
173 | _delay = value;
174 | OnPropertyChanged();
175 | }
176 | }
177 |
178 | public SimpleSchedule()
179 | {
180 | Time = DateTime.Now.TimeOfDay.Add(TimeSpan.FromSeconds(-1));
181 | Monday = true;
182 | Tuesday = true;
183 | Wednesday = true;
184 | Thursday = true;
185 | Friday = true;
186 | Saturday = true;
187 | Sunday = true;
188 | }
189 |
190 | private string BuildDayOfWeekPart()
191 | {
192 | if (Monday && Tuesday && Wednesday && Thursday && Friday && Saturday && Sunday)
193 | {
194 | return "*";
195 | }
196 |
197 | var sb = new StringBuilder();
198 | if (Monday) sb.Append("MON,");
199 | if (Tuesday) sb.Append("TUE,");
200 | if (Wednesday) sb.Append("WED,");
201 | if (Thursday) sb.Append("THU,");
202 | if (Friday) sb.Append("FRI,");
203 | if (Saturday) sb.Append("SAT,");
204 | if (Sunday) sb.Append("SUN");
205 | return sb.ToString().Trim(',');
206 | }
207 | }
208 | }
--------------------------------------------------------------------------------
/4x/Move Mouse/Styles/Colours.xaml:
--------------------------------------------------------------------------------
1 |
3 | #9BB9E3
4 | #437CAF
5 | #23262D
6 | #101216
7 | White
8 |
11 | #888888
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/4x/Move Mouse/Themes/ChristmasTheme.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sw3103/movemouse/5e1f819e7b57dc84c39d3de3c8c7340f6e64078b/4x/Move Mouse/Themes/ChristmasTheme.png
--------------------------------------------------------------------------------
/4x/Move Mouse/Themes/Themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | US Independence Day
4 | 2017-07-04T00:00:00.000000+00:00
5 | 2017-07-04T23:59:59.000000+00:00
6 | https://sites.google.com/a/windandkite.co.uk/movemouse/themes/UsIndependenceTheme.png
7 |
8 | United States
9 |
10 |
11 |
12 | Christmas
13 | 2017-12-20T00:00:00.000000+00:00
14 | 2017-12-26T23:59:59.000000+00:00
15 | https://sites.google.com/a/windandkite.co.uk/movemouse/themes/ChristmasTheme.png
16 |
17 | United Kingdom
18 | United States
19 |
20 |
21 |
--------------------------------------------------------------------------------
/4x/Move Mouse/Themes/Themes_Test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | US Independence Day
4 | 2017-07-04T00:00:00.000000+00:00
5 | 2017-07-04T23:59:59.000000+00:00
6 | https://sites.google.com/a/windandkite.co.uk/movemouse/themes/UsIndependenceTheme.png
7 |
8 | United States
9 |
10 |
11 |
12 | Christmas
13 | 2017-12-20T00:00:00.000000+00:00
14 | 2017-12-26T23:59:59.000000+00:00
15 | https://sites.google.com/a/windandkite.co.uk/movemouse/themes/ChristmasTheme.png
16 |
17 | United Kingdom
18 | United States
19 |
20 |
21 |
--------------------------------------------------------------------------------
/4x/Move Mouse/Utilities/RelayCommand.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Input;
3 |
4 | namespace ellabi.Utilities
5 | {
6 | ///
7 | /// Code for RelayCommand taken from the following article:
8 | /// http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
9 | ///
10 | public class RelayCommand : ICommand
11 | {
12 | #region Fields
13 |
14 | readonly Action