bootblock / network-trigger Goto Github PK
View Code? Open in Web Editor NEWAllows control of a Windows system by monitoring network Wake on Lan wake-up and ping messages
Home Page: https://biqubic.com/network-trigger
Allows control of a Windows system by monitoring network Wake on Lan wake-up and ping messages
Home Page: https://biqubic.com/network-trigger
MAC IDs don't actually need to point to valid devices; because of this, Ping Control can match against the ID rather than EventCount
to perform an action. This will allow an arbitrary number of events rather than just a count like 1
, 2
, 3
, etc.
Having a WakeEvent
that responds to a MAC ID that then performs a WakeAction
sending the same MAC ID out can result in an infinite loop. There's an option within Settings - Events to prevent responding to WakeAction
wake events, but add support for detecting whether an infinite loop may occur.
Allow all BaseEvent
s to be mass enabled/disabled via the system tray, and possibly via the main window's status bar (bottom-right).
Add a BaseAction
that sends a wake event to a specific or set of Mac IDs. This will allow the waking of devices when another device has been woken.
I don't personally have a use for this but others might.
The Event Monitor only shows events that were detected while it was open; change this so it maintains a list of events behind-the-scenes so prior events can still be shown while Event Monitor was closed.
All the infrastructure for WakeAction
is complete except for the actual Execute()
implementation.
Now that Event
s have their own notification settings, Action Performed can be removed. Take a pass over the other sound settings to determine whether they can be reworked or removed entirely.
Add an optional sound to play when a device has been matched, and another sound to play when a device hasn't been matched (and thus, ignored).
Rather than just performing an equality check, perform a Regular Expression check on Device
Mac IDs; this will allow block/allow lists to function as a rules-based system.
As title.
As Ping and Wake events are broadcast messages, it's worth having the application itself listen for those events as one socket (each) can cover all PingEvent
/ WakeEvent
use cases.
When Starting With Windows - Minimised to System Tray, the Event Monitor still appears if it was open within the previous session.
Ensure all forms are correctly resizable and have a MinimumSize
value set.
Within the Actions tab, the Settings column needs to be populate with the configured settings for each BaseAction
.
Add an Interface
tab to the Settings window and an option to display any detected wake events in a pop-up toast notification.
Add a PingAction
.
The purpose of the Welcome screen is to notify the user that the application requires network access and specifically why: to detect wake broadcast messages and to perform update checking. Allow the user to disable update checking via the Welcome screen (and the Settings window, as usual).
Listening for wake on Lan messages currently requires clicking on the Listen
button; this is a holdover from the initial testing implementation, so update it to the final user experience version.
The current use for this would be to allow the specification of something like AllowUserRun
so the user can test-invoke the BaseAction
via a context menu within the Actions list.
The button next to the MAC ID textbox within the Wake Event editor needs to have its image updated and it needs to also display the list of available Device
s when clicked.
Add a (collapsible) panel to the bottom of the Events Monitor window that displays detailed information on the selected event.
Test - and implement, if required - crash handling capabilities.
Add support for allowing the blocking of wake/ping events from specific IPs.
Complete the BaseEvent.HelpText
property text for all events.
The Event - History tab needs to be finished.
Add a Ping event that opens a port and listens for a ping.
Complete the BaseAction.HelpText
property text for all events.
Network Trigger detects self-sent wake packets; this can result in an infinite loop if WakeEvent
has a WakeAction
.
Because of this, add an option to discard wake events that are the result of sending a wake via WakeAction
.
An application that reacts to wake events on the network probably shouldn't be called Ping Control, should it?
Add a toolbar to the Event Monitor containing buttons to send wake packets to the current network (using non-existent Mac IDs) so the Event Monitor can demonstrate its abilities.
There's an issue with cboEvent_EventSettings_PlayTriggerSound
.
ComboBoxEx
control for it to correctly draw the no item selected labelBit of an issue fixing this one as the .NET 5 forms designer doesn't have the Tab Order feature implemented, but all controls will need their tab order corrected.
Modifying any options within the Settings window should immediately take affect; the Save
button at the bottom of the window should also be removed so there's just a Close
button.
Currently, when a wake event is detected the global EventCount
int is incremented regardless of the destination Mac ID.
Add support for a per-Mac ID increment counter.
Since the huge refactoring (see #20), the panel that displays the No Action Selected information should be rewritten as it's no longer accurate.
Rather than responding to just Mac IDs, instead, create a BaseEvent
that can be inherited from so multiple types of events (wake, ping, etc) can be responded to.
As title.
Add a Category
property to BaseAction
so actions can be grouped rather than just all being lumped together in the Add Action drop-down.
Allow the user to set an accent colour within Settings - Interface for the entire application.
Completely redesign the application so each Action
can contain multiple steps, rather than only allowing one network event to match to one Action
.
While performing this re-architecture, rename the existing Action
to Event
and have an Action
as part of an Actions
collection under the Event
.
Now that object? Data
has been added to the Event Monitor, it should be displayed where appropriate within its information panel.
Add an Event
that'll listen for HTTP requests, specifically with specific query strings and the like.
Rewrite the edition text for the sepEdition
control in the main window.
Also requires the actual product page to be created.
Add options to the BaseEvent
so it can optionally play back some kind of notification (sound, visual later on, etc) to denote that it has been triggered.
Determine, and implement Edition features.
Allow BaseEvent
s and BaseAction
s (and other items, where appropriate) to be duplicated, copied and pasted.
By default, the Shutdown.exe
notifies the user that the system will be shutting down in a minute. Add an option to disable this notice for an immediate shutdown; isn't required for the Windows API version.
WakeEvent
should be able to identify a *
symbol to match all.
Allowing general wildcard matching may be implemented in the future as it doesn't entirely make sense as MAC IDs with similar values tend to be hardware of the same batch and even then they're quite different.
The Devices which should be redesigned so now it contains a list of devices and their corresponding MAC IDs - a sort of address book.
The matched, etc, features are no longer required.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.