WinNotify

Description

WinNotify example screenshot

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()
checkout browse

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.