Skip to main content

Toast notifications for Windows 11

Project description

windowstoast - Python Module for sending Toast Notifications on Windows 10

License

Installation

To install windowstoast from PyPi run:

pip install windowstoast

Usage

Create a Toast Notification

from windowstoast import Toast

t = Toast(AppID, NotificationID, ActivationType='protocol', Duration='short', Launch='file:', Scenario='default', Popup=True)
t.show()

#AppID = The application ID from the installed applications in windows. You can get that manually or use my another module 'windowsapps' for that.
#NotificationID = ID you can assign to the notification to identify it later.
#ActivationType = Type of activation for notification. 'system' or 'protocol'.
#Duration = Can be 'short' or 'long'.
#Launch = You can specify your file path to open on notification click, or add your own protocol action.
#Popup = Notification will not pop up if set to false.

Add Text to the Toast Notification

t.add_text(text, maxlines=None, attribution=None)

#text = Your text title(If there is only single text) or message(If there is already other text element present).
#maxlines = No. of lines to be occupied by the text.
#attribution = For attribute text at bottom of toast notification

image

Add Image to the Toast Notification

t.add_image(source, placement=None, hint-crop='circle')

#source = Source to the image file
#placement = If specified as 'logo' or 'appLogoOverride' them image will appear as a logo on the left of notification.
#hint-crop = Will make the image circular if specified as 'circle' or squared if specified 'square'.

image image

Add Custom audio to the Toast Notification

t.add_audio(source="", silent=False)

#source = Source for the audio file.
#silent = Will make the notification appear silently if set True.

Add Progress Bar to the Toast Notification

t.add_progress(status, title, value, value_label)

#status = Text below the progress bar indicatiing its current state. Ex- 'Downloading...', 'Receiving...', etc.
#title = Title about the progress bar.
#value = A value between 0 and 1 for the progress.
#value_label = A text below the progress bar showing the current progress to the user. Ex- '26/100 Completed!', '54%', etc.

image

Add Context Menu to the Toast Notification

t.add_content_menu(content, arguments, activationType='protocol')

#content = Name for the context menu.
#argument = Specific argument for the menu.
#activationType = 'protocol' for a protocol activation in windows.

image

Add Button to the Toast Notification

t.add_button(content='Dismiss', argument='Dismiss', activationType='system')

#content = Name for the button.
#argument = Argument specified for the button.
#activationType = Can be specified as 'system' for just dissmisal of notification on button click or set as 'protocol' to launch your custom protocol.

#You can add maximum of 5 buttons.

image

Launch Custom Action on Button Click

# First create your own protocol in the windows registry by:
import windowstoast

create_protocol(protocol_uri, comman_target) # Run as Admin required for this!

#protocol_uri = Your own unique protocol uri name. Ex- 'My-Custom-Uri'
#command_target = Path to your own target application with arguments. Ex- r'"Absoulute\Path\To\My\Application.exe" "%1"'

# If you want to remove your protocol:

remove_protocol('Protocol_name') # Run as Admin required for this!

#Create your own Application.exe which takes the argument. Ex- 
from sys import argv

a = argv[1:]
print(a)

# Here a is the value of argument that you will specify with the button in Notification.

#Now after making sure you have created your protocol and Application.exe, add button in the notification

t.add_button('My Button','My-Custom-Uri:My_Argument', 'protocol')

# Here you can specify your own protocol uri to execute an action or some other uri like - 'E:\Others\my_file.xyz' to open a file or 'https://www.google.com' to open website.

Update Your Notification

notificationID = '12345'

t = Toast('My Application ID', notificationID)
t.add_text('Title')
t.add_progress('Status...', 'Progress Title', '0', '0% Completed!')
t.show()

# To update the notification, simply create another notification with same notification id.

for i in range(10):
  t = Toast('My Application ID', notificationID, Popup=False) # Set Popup to False whenever you update, otherwise notification will popup each time.
  t.add_audio(silent=True) # Set silent to True whenever you update, otherwise audio will play each time.
  t.add_text('Title')
  t.add_progress('Status...', 'Progress Title', str(i/10), str(i)+'% Completed!')
  t.show()
  
# It is recommended to update notification only after atleast 1.5 seconds.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

windowstoast-0.0.4.tar.gz (6.6 kB view hashes)

Uploaded Source

Built Distribution

windowstoast-0.0.4-py3-none-any.whl (6.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page