Description
WinNotify is a simple Win32 command line utility written in C# that allows other applications to easily pop-up those balloon notification messages on windows.
*nix people can look at this as a Win32 version of notify-send from the Galago project's libnotify
Personally i use it in emacs's rcirc irc client to notify me of new messages directed at me.
Usage
Just call WinNotify.exe <title> <text> you can optionally define the time you wish the notification message to be on-screen by using the -t <milliseconds> option - although you should know that for the rules about the timeout range supported and when it is actually used is micrsoft'y and platform specific (also known as too stupid to make sense - TSTMS).
Releases
0.1.2
Use an Windows.Forms.Timer to make sure that the notification is removed when it times out.
Also make the application exit when the notification is clicked.
Added --version option to see the about page.
0.1.1
This release is the first one released to the public.
Future Plans
The only thing i can come up with at the moment is to find some way to detect which program called WinNotify - and then use that program's icon as the notification icon.
Download
If you already have the .net 3.5 framework installed the only thing you need is this .exe file - i just dump it somewhere in my $PATH (or %PATH% as microsoft likes to call it).
Latest commits
Could not connect to branch
Not a branch: "http://192.168.99.101/bzr/winnotify/". File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1537, in HandlerDispatch
default=default_handler, arg=req, silent=hlist.silent)
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1229, in _process_target
result = _execute_target(config, req, object, arg)
File "/usr/lib/python2.5/site-packages/mod_python/importer.py", line 1128, in _execute_target
result = object(arg)
File "/var/lib/python-support/python2.5/django/core/handlers/modpython.py", line 228, in handler
return ModPythonHandler()(req)
File "/var/lib/python-support/python2.5/django/core/handlers/modpython.py", line 201, in __call__
response = self.get_response(request)
File "/var/lib/python-support/python2.5/django/core/handlers/base.py", line 86, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/rto/web/halfdans_net/views.py", line 51, in page
return render_to_response ( 'view.html', {'page': page}, create_context(request) )
File "/var/lib/python-support/python2.5/django/shortcuts/__init__.py", line 18, in render_to_response
return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "/var/lib/python-support/python2.5/django/template/loader.py", line 107, in render_to_string
return t.render(context_instance)
File "/var/lib/python-support/python2.5/django/test/utils.py", line 15, in instrumented_test_render
return self.nodelist.render(context)
File "/var/lib/python-support/python2.5/django/template/__init__.py", line 768, in render
bits.append(self.render_node(node, context))
File "/var/lib/python-support/python2.5/django/template/__init__.py", line 781, in render_node
return node.render(context)
File "/var/lib/python-support/python2.5/django/template/loader_tags.py", line 97, in render
return compiled_parent.render(context)
File "/var/lib/python-support/python2.5/django/test/utils.py", line 15, in instrumented_test_render
return self.nodelist.render(context)
File "/var/lib/python-support/python2.5/django/template/__init__.py", line 768, in render
bits.append(self.render_node(node, context))
File "/var/lib/python-support/python2.5/django/template/__init__.py", line 781, in render_node
return node.render(context)
File "/var/lib/python-support/python2.5/django/template/loader_tags.py", line 24, in render
result = self.nodelist.render(context)
File "/var/lib/python-support/python2.5/django/template/__init__.py", line 768, in render
bits.append(self.render_node(node, context))
File "/var/lib/python-support/python2.5/django/template/__init__.py", line 781, in render_node
return node.render(context)
File "/var/lib/python-support/python2.5/django/template/__init__.py", line 802, in render
output = force_unicode(self.filter_expression.resolve(context))
File "/var/lib/python-support/python2.5/django/template/__init__.py", line 535, in resolve
obj = self.var.resolve(context)
File "/var/lib/python-support/python2.5/django/template/__init__.py", line 676, in resolve
value = self._resolve_lookup(context)
File "/var/lib/python-support/python2.5/django/template/__init__.py", line 711, in _resolve_lookup
current = current()
File "/home/rto/web/halfdans_net/models.py", line 226, in getFormatted
self.save()
File "/home/rto/web/halfdans_net/models.py", line 234, in save
self.format()
File "/home/rto/web/halfdans_net/models.py", line 230, in format
self.formatted = format_markdown(self.content, self)
File "/home/rto/web/halfdans_net/models.py", line 28, in format_markdown
return md.convert(input)
File "/var/lib/python-support/python2.5/markdown.py", line 1735, in convert
doc = self._transform()
File "/var/lib/python-support/python2.5/markdown.py", line 1312, in _transform
self._processSection(self.top_element, buffer)
File "/var/lib/python-support/python2.5/markdown.py", line 1394, in _processSection
inList, looseList)
File "/var/lib/python-support/python2.5/markdown.py", line 1413, in _processParagraph
list = self._handleInline("\n".join(paragraph))
File "/var/lib/python-support/python2.5/markdown.py", line 1627, in _handleInline
patternIndex)
File "/var/lib/python-support/python2.5/markdown.py", line 1670, in _applyPattern
node = pattern.handleMatch(m, self.doc)
File "/home/rto/web/halfdans_net/markdown/mdx_bazaar.py", line 133, in handleMatch
e_stack = traceback.format_stack()
The source code is avilable here using the bzr system.
Comments (0)
Post comment
If you wish, you can use markdown syntax in the comment field.