From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yuva Subject: How to get notifications about system lock/unlock on Windows machine? Date: Thu, 20 Aug 2009 15:34:19 +0530 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=00504502cc25fdf9d504718fdf35 Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Me4VR-00067g-Mj for emacs-orgmode@gnu.org; Thu, 20 Aug 2009 06:04:29 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Me4VJ-0005vh-Gf for emacs-orgmode@gnu.org; Thu, 20 Aug 2009 06:04:26 -0400 Received: from [199.232.76.173] (port=52096 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Me4VJ-0005ut-2C for emacs-orgmode@gnu.org; Thu, 20 Aug 2009 06:04:21 -0400 Received: from mail-px0-f193.google.com ([209.85.216.193]:48216) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Me4VH-00068A-R5 for emacs-orgmode@gnu.org; Thu, 20 Aug 2009 06:04:20 -0400 Received: by pxi31 with SMTP id 31so356206pxi.24 for ; Thu, 20 Aug 2009 03:04:19 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Org Mode --00504502cc25fdf9d504718fdf35 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable hi, =A0i've implemented a simple idea, but thought it could be done in a better way. Need your feedback. =A0At work, i am running emacs+org-mode on windoze-xp computer, and i am ha= ppy with my setup. Whenever i am away from my computer, or i am off for the day= , i generally lock my workstation and just leave (I dont shut my system down)= . The org-mode clock runs even when i am not doing anything. I want it to switch it to default task when i am away. So, i developed a simple application which makes use of 'emacsclientw' and sends messages to emacs-server to notify the status of my workstation. =A0Briefly, my setup is like this : in my "orged.el" -------------------------8<---------------------8<-------------------------= - ;;------------------------------------------------------------------------- ;; for listening to windows-session events. ;;------------------------------------------------------------------------- ;; sets default task. ;; @todo make it more intutive (require 'org-clock) (set-marker org-clock-default-task =A0 =A0 =A0 =A0 =A0 =A034 (find-file "~/orged/personal/personal.org")) ;; Custom org-win-lock and org-win-unlock functions. (defun org-win-lock() =A0"runs org-preferences when workstation gets locked Switches to default task." =A0(interactive) =A0(find-file (buffer-file-name (marker-buffer org-clock-default-task))) =A0(goto-char org-clock-default-task) =A0(org-clock-in)) (defun org-win-unlock() =A0"runs org-preferences when workstation gets un-locked Switches to interrupted task." =A0(interactive) =A0(find-file (buffer-file-name (marker-buffer org-clock-interrupted-task))= ) =A0(goto-char org-clock-default-task) =A0(org-clock-in)) ;; start the server and notification application. (server-start) (start-process =A0"eval-a-exe" "buf-eval-a-exe" "~/sandbox/windows-lock-notif/a.exe") -------------------------8<---------------------8<-------------------------= - =A0i also wrote a small application which polls on session events and send messages to this emacs-server (see attachment). My question is : Can it be done better? --=20 YUVA --00504502cc25fdf9d504718fdf35 Content-Type: application/octet-stream; name="main.c" Content-Disposition: attachment; filename="main.c" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fylbpeqe1 Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi8vIHNlbmRpbmcgYXN5bmMgbWVzc2FnZXMgdG8gZW1hY3Mtc2Vy dmVyLgovLyBmb3IgbWUsICJzZXJ2ZXIiIHNvdW5kcyBsaWtlIHNvbWUga2luZCBvZiBnZWVrIHRl cm0sIGJ1dCBpbmZhY3QgYWxsCi8vIGkgaGF2ZSB0byBkbyBpcyBhZGQgKHNlcnZlci1zdGFydCkg dG8gbXkgb3JnZWQuZWwgZmlsZS4KLy8KLy8gYnVpbGQgaXQgbGlrZSA6IGdjYyBtYWluLmMgLWx3 dHNhcGkzMgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBtc2NvbmZp Zy5oIHN0dWZmCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCi8vIGNvbnRhaW5zIHN0ZGFmeC5oIGFuZCBv dGhlciBkZWZpbml0aW9ucy4KI2RlZmluZSBXSU5WRVIgICAweDA1MDEKI2RlZmluZSBXSU4zMl9M RUFOX0FORF9NRUFOCgovLyBpbmNsdWRlcy4KI2luY2x1ZGUgPHdpbmRvd3MuaD4KI2luY2x1ZGUg PHd0c2FwaTMyLmg+CgoKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIG1haW4gcHJvZ3JhbS4KLy8tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCgoKLy8gc3luY2hyb25pemluZyBldmVudC4Kc3RhdGljIEhBTkRMRSAgaEV2 ZW50OwoKc3RhdGljIExSRVNVTFQgT25XdHNTZXNzaW9uQ2hhbmdlKEhXTkQgaFduZCwgV1BBUkFN IHdFdmVudFR5cGUpCnsKICAgVENIQVIgc3pDbWRsaW5lT25Mb2NrW10gPSAKICAgICAgVEVYVCgi QzpcXGN5Z3dpblxcdXNyXFxsb2NhbFxcbnQtZW1hY3NcXGJpblxcZW1hY3NjbGllbnR3IC1lIFwi KG9yZy13aW4tbG9jaylcIiIpOwogICBUQ0hBUiBzekNtZGxpbmVPblVubG9ja1tdID0gCiAgICAg IFRFWFQoIkM6XFxjeWd3aW5cXHVzclxcbG9jYWxcXG50LWVtYWNzXFxiaW5cXGVtYWNzY2xpZW50 dyAtZSBcIihvcmctd2luLXVubG9jaylcIiIpOwoKICAgUFJPQ0VTU19JTkZPUk1BVElPTiBwaVBy b2NJbmZvOyAKICAgU1RBUlRVUElORk8gc2lTdGFydEluZm87CiAKICAgWmVyb01lbW9yeSggJnBp UHJvY0luZm8sIHNpemVvZihQUk9DRVNTX0lORk9STUFUSU9OKSApOwogICBaZXJvTWVtb3J5KCAm c2lTdGFydEluZm8sIHNpemVvZihTVEFSVFVQSU5GTykgKTsKICAgc2lTdGFydEluZm8uY2IgPSBz aXplb2YoU1RBUlRVUElORk8pOyAKICAgc2lTdGFydEluZm8uaFN0ZEVycm9yID0gTlVMTDsKICAg c2lTdGFydEluZm8uaFN0ZE91dHB1dCA9IE5VTEw7CiAgIHNpU3RhcnRJbmZvLmhTdGRJbnB1dCA9 IE5VTEw7CiAgIHNpU3RhcnRJbmZvLmR3RmxhZ3MgfD0gU1RBUlRGX1VTRVNUREhBTkRMRVM7Cgog ICBUQ0hBUiogY21kTGluZSA9IE5VTEw7CiAKICAgc3dpdGNoICh3RXZlbnRUeXBlKQogICB7CiAg IGNhc2UgV1RTX1NFU1NJT05fTE9DSyA6CiAgICAgIGNtZExpbmUgPSBzekNtZGxpbmVPbkxvY2s7 CiAgICAgIGJyZWFrOwoKICAgY2FzZSBXVFNfU0VTU0lPTl9VTkxPQ0sgOgogICAgICBjbWRMaW5l ID0gc3pDbWRsaW5lT25VbmxvY2s7CiAgICAgIGJyZWFrOwoKICAgY2FzZSBXVFNfU0VTU0lPTl9M T0dPRkYgOgogICAgICBTZXRFdmVudChoRXZlbnQpOwogICAgICBEZXN0cm95V2luZG93KGhXbmQp OwogICAgICBicmVhazsKICAgfQoKICAgQ3JlYXRlUHJvY2VzcyhOVUxMLCBjbWRMaW5lLCBOVUxM LCBOVUxMLCBUUlVFLCAwLCBOVUxMLCBOVUxMLAogICAgICAgICAgICAgICAgICZzaVN0YXJ0SW5m bywgJnBpUHJvY0luZm8pOwoKICAgcmV0dXJuIDA7Cn0KCgpzdGF0aWMgTFJFU1VMVCBDQUxMQkFD SyAKV25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFN IGxQYXJhbSkKewogICBMUkVTVUxUIHJlc3VsdCA9IDA7CiAgIHN3aXRjaCAobWVzc2FnZSkKICAg ewogICBjYXNlIFdNX1dUU1NFU1NJT05fQ0hBTkdFIDoKICAgICAgcmVzdWx0ID0gT25XdHNTZXNz aW9uQ2hhbmdlKGhXbmQsIHdQYXJhbSk7CiAgICAgIGJyZWFrOwoKICAgY2FzZSBXTV9ERVNUUk9Z IDoKICAgICAgUG9zdFF1aXRNZXNzYWdlICgxKTsKICAgICAgYnJlYWs7CiAgIH0KCiAgIHJlc3Vs dCA9IERlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwogICByZXR1 cm4gcmVzdWx0Owp9CgoKc3RhdGljIERXT1JEIFdJTkFQSSBmbldhaXRGb3JXdHNOb3RpZnMoTFBW T0lEIGxwUGFyYW0pCnsKICAgV05EQ0xBU1Mgd2M7CiAgIEhXTkQgaFduZDsKICAgTVNHIG1zZzsK ICAgSEFORExFIGhJbnN0YW5jZSA9IEdldE1vZHVsZUhhbmRsZShOVUxMKTsKCiAgIHdjLnN0eWxl ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENsYXNzIHN0eWxlCiAg IHdjLmxwZm5XbmRQcm9jID0gKFdORFBST0MpIFduZFByb2M7ICAgICAgICAgICAgIC8vIFdpbmRv dyBwcm9jZWR1cmUKICAgd2MuY2JDbHNFeHRyYSA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8gQ2xhc3MgZXh0cmEgYnl0ZXMKICAgd2MuY2JXbmRFeHRyYSA9IDA7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gV2luZG93IGV4dHJhIGJ5dGVzCiAgIHdjLmhJbnN0YW5j ZSA9IChISU5TVEFOQ0UpaEluc3RhbmNlOyAgICAgICAgICAgIC8vIEluc3RhbmNlIGhhbmRsZQog ICB3Yy5oSWNvbiA9IExvYWRJY29uIChOVUxMLCBJRElfV0lOTE9HTyk7ICAgICAgICAvLyBJY29u IGhhbmRsZQogICB3Yy5oQ3Vyc29yID0gTG9hZEN1cnNvciAoTlVMTCwgSURDX0FSUk9XKTsgICAg ICAvLyBDdXJzb3IgaGFuZGxlCiAgIHdjLmhickJhY2tncm91bmQgPSAoSEJSVVNIKSAoQ09MT1Jf V0lORE9XICsgMSk7IC8vIEJhY2tncm91bmQgY29sb3IKICAgd2MubHBzek1lbnVOYW1lID0gTlVM TDsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTWVudSBuYW1lCiAgIHdjLmxwc3pDbGFzc05h bWUgPSAiTXlXbmRDbGFzcyI7ICAgICAgICAgICAgICAgIC8vIFdORENMQVNTIG5hbWUKCiAgIFJl Z2lzdGVyQ2xhc3MoJndjKTsKICAgaFduZCA9IAogICAgICBDcmVhdGVXaW5kb3cgKAogICAgICAg ICAiTXlXbmRDbGFzcyIsICAgICAgICAgICAgLy8gV05EQ0xBU1MgbmFtZQogICAgICAgICAiUmVn aXN0ZXJBcHBsaWNhdGlvbiIsICAgLy8gV2luZG93IHRpdGxlCiAgICAgICAgIFdTX09WRVJMQVBQ RURXSU5ET1csICAgICAvLyBXaW5kb3cgc3R5bGUKICAgICAgICAgQ1dfVVNFREVGQVVMVCwgICAg ICAgICAgIC8vIEhvcml6b250YWwgcG9zaXRpb24KICAgICAgICAgQ1dfVVNFREVGQVVMVCwgICAg ICAgICAgIC8vIFZlcnRpY2FsIHBvc2l0aW9uICAgICAgICAKICAgICAgICAgQ1dfVVNFREVGQVVM VCwgICAgICAgICAgIC8vIEluaXRpYWwgd2lkdGgKICAgICAgICAgQ1dfVVNFREVGQVVMVCwgICAg ICAgICAgIC8vIEluaXRpYWwgaGVpZ2h0CiAgICAgICAgIEhXTkRfTUVTU0FHRSwgICAgICAgICAg ICAvLyBIV05EX0RFU0tUT1AsIEhhbmRsZSBvZiBwYXJlbnQgd2luZG93CiAgICAgICAgIE5VTEws ICAgICAgICAgICAgICAgICAgICAvLyBNZW51IGhhbmRsZQogICAgICAgICBOVUxMLCAgICAgICAg ICAgICAgICAgICAgLy8gQXBwbGljYXRpb24ncyBpbnN0YW5jZSBoYW5kbGUKICAgICAgICAgTlVM TCAgICAgICAgICAgICAgICAgICAgIC8vIFdpbmRvdy1jcmVhdGlvbiBkYXRhCiAgICAgICAgICk7 CgogICAvLyByZWdpc3RlciBmb3Igd3RzIG5vdGlmaWNhdGlvbnMuCiAgIGlmICggISBXVFNSZWdp c3RlclNlc3Npb25Ob3RpZmljYXRpb24oaFduZCwgTk9USUZZX0ZPUl9BTExfU0VTU0lPTlMpICkK ICAgewogICAgICBwcmludGYoIldUU1JlZ2lzdGVyU2Vzc2lvbk5vdGlmaWNhdGlvbiBmYWlsZWQi KTsKICAgICAgcmV0dXJuIC0xOwogICB9CgogICB3aGlsZSAoIEdldE1lc3NhZ2UoJm1zZywgTlVM TCwgMCwgMCkgKQogICB7CiAgICAgIFRyYW5zbGF0ZU1lc3NhZ2UoICZtc2cgKTsKICAgICAgRGlz cGF0Y2hNZXNzYWdlKCAmbXNnICk7CiAgIH0KCiAgIFdUU1VuUmVnaXN0ZXJTZXNzaW9uTm90aWZp Y2F0aW9uKGhXbmQpOwogICByZXR1cm4gbXNnLndQYXJhbTsKfQoKCmludCBtYWluKCkKewogICBI QU5ETEUgaFRocmVhZDsKICAgRFdPUkQgZHdJZDsKCiAgIC8vIGNyZWF0ZSBhIHRocmVhZCwgd2Fp dCBmb3Igbm90aWZpY2F0b25zLgogICBoVGhyZWFkID0gQ3JlYXRlVGhyZWFkKCBOVUxMLCAwLCBm bldhaXRGb3JXdHNOb3RpZnMsIE5VTEwsIDAsICZkd0lkKTsKICAgaWYgKE5VTEwgPT0gaFRocmVh ZCkgeyByZXR1cm4gLTE7IH0KCiAgIGhFdmVudCA9IENyZWF0ZUV2ZW50KE5VTEwsIEZBTFNFLCBG QUxTRSwgTlVMTCk7CiAgIGlmIChJTlZBTElEX0hBTkRMRV9WQUxVRSA9PSBoRXZlbnQpIHsgcmV0 dXJuIC0xOyB9CiAgIFdhaXRGb3JTaW5nbGVPYmplY3QoaEV2ZW50LCBJTkZJTklURSk7CiAgIENs b3NlSGFuZGxlKGhFdmVudCk7CgogICBwcmludGYoImV4aXRpbmciKTsKCiAgIHJldHVybiAwOwp9 Cg== --00504502cc25fdf9d504718fdf35 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode --00504502cc25fdf9d504718fdf35--