Prev: Lis(t|p) comprehensions
Next: Pocket Lisp Machine
From: remixer on 18 Sep 2006 19:59 A part of this question is about Lisp/Lisp tools, but other parts of it are not. This is a project that has been brewing for some time, and I would love to hack it in Lisp, but want to see the lay of the land before I pick my tools. I want to build an application that continuously record information about everything that is sent to the clipboard. For the sake of concreteness, imagine a Windows PC, and imagine that I run applications like Firefox, Word, Outlook/Thunderbird, Notepad, Allegro CL IDE. Also imagine that whenever I select some text/images/etc in any of the apps and issue a double-right-click, I want my application to grab 1) the text/image/etc, 2) the datetime, and 3) a reference to the document (URL for a website, path for a local file, sender/date/subject for email, etc). The goal is to make my personal assistant that remembers things that I care about. Are there parts of this application that will be very hard or impossible to do in Lisp? The other choice will be to build application-specific tools like a Firefox extension, or use .NET. I would rather use Lisp, but recommendations about stuff that I could reuse and things to know before I get started on this will be great. Thank you.
From: Asbjørn Bjørnstad on 18 Sep 2006 22:27 remixer wrote: > Are there parts of this application that will be very hard or > impossible to do in Lisp? The other choice will be to build > application-specific tools like a Firefox extension, or use .NET. I > would rather use Lisp, but recommendations about stuff that I could > reuse and things to know before I get started on this will be great. Maybe RDNZL is what you need? It's a ibrary for common lisp interaction with .NET http://weitz.de/rdnzl/ -- -asbjxrn
From: remixer on 19 Sep 2006 00:40 Asbjørn Bjørnstad wrote: > remixer wrote: > > > Are there parts of this application that will be very hard or > > impossible to do in Lisp? The other choice will be to build > > application-specific tools like a Firefox extension, or use .NET. I > > would rather use Lisp, but recommendations about stuff that I could > > reuse and things to know before I get started on this will be great. > > Maybe RDNZL is what you need? It's a ibrary for common lisp > interaction with .NET > > http://weitz.de/rdnzl/ Thanks. I looked at RDNZL and was also thinking about using Corman Lisp for its Windows support. I was wondering if anyone had more experience building anything like this which possibly interacts with different applications like Word, Email client, etc. Or if there are any examples along those lines. > -- > -asbjxrn
From: dustmop on 20 Sep 2006 20:12 remixer wrote: > Asbjørn Bjørnstad wrote: > > remixer wrote: > > > > > Are there parts of this application that will be very hard or > > > impossible to do in Lisp? The other choice will be to build > > > application-specific tools like a Firefox extension, or use .NET. I > > > would rather use Lisp, but recommendations about stuff that I could > > > reuse and things to know before I get started on this will be great. > > > > Maybe RDNZL is what you need? It's a ibrary for common lisp > > interaction with .NET > > > > http://weitz.de/rdnzl/ > > Thanks. I looked at RDNZL and was also thinking about using Corman Lisp > for its Windows support. I was wondering if anyone had more experience > building anything like this which possibly interacts with different > applications like Word, Email client, etc. Or if there are any examples > along those lines. > > > -- > > -asbjxrn If your Lisp has a good FFI, you can just load the user32.dll et al and call the Windows API directly. I've done this before with ECL and it wasn't too bad (using macros to cover over the rough edges helped a lot). Here's a reference to getting start with the clipboard functions. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefopenclipboard.asp As for interacting with Word or Email, you'll probably have to stick to COM, which is much harder to do without C++ due to the requirement of precise binary contracts. In general, if you don't have much experience working with Win32 I'd recommend trying it in C++ before Lisp. Not that Lisp is lacking here, but trying to learn FFI and Win32 at the same time would probably make any mortal want to tear their own face off. Asking a Microsoft specific group for help might also help when the going gets tough. Here's a good one, for example: http://groups.google.com/group/comp.os.ms-windows.programmer.win32
From: remixer on 21 Sep 2006 13:35
dustmop(a)gmail.com wrote: > remixer wrote: > > Asbjørn Bjørnstad wrote: > > > remixer wrote: > > > > > > > Are there parts of this application that will be very hard or > > > > impossible to do in Lisp? The other choice will be to build > > > > application-specific tools like a Firefox extension, or use .NET. I > > > > would rather use Lisp, but recommendations about stuff that I could > > > > reuse and things to know before I get started on this will be great. > > > > > > Maybe RDNZL is what you need? It's a ibrary for common lisp > > > interaction with .NET > > > > > > http://weitz.de/rdnzl/ > > > > Thanks. I looked at RDNZL and was also thinking about using Corman Lisp > > for its Windows support. I was wondering if anyone had more experience > > building anything like this which possibly interacts with different > > applications like Word, Email client, etc. Or if there are any examples > > along those lines. > > > > > -- > > > -asbjxrn > > If your Lisp has a good FFI, you can just load the user32.dll et al and > call the Windows API directly. I've done this before with ECL and it > wasn't too bad (using macros to cover over the rough edges helped a > lot). Here's a reference to getting start with the clipboard functions. > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/cerefopenclipboard.asp Thanks a lot. This is exactly what I want in the first version -- just grab all clipboards. Can you elaborate on "load the user32.dll et al and call the Windows API directly"? Are there any example code fragments for doing this available? Also, which Lisps beside ECL can do this? > As for interacting with Word or Email, you'll probably have to stick to > COM, which is much harder to do without C++ due to the requirement of > precise binary contracts. In general, if you don't have much experience > working with Win32 I'd recommend trying it in C++ before Lisp. Not that > Lisp is lacking here, but trying to learn FFI and Win32 at the same > time would probably make any mortal want to tear their own face off. Yeah maybe I will steer clear of this until I get the basic infrastructure in place. > Asking a Microsoft specific group for help might also help when the > going gets tough. Here's a good one, for example: > http://groups.google.com/group/comp.os.ms-windows.programmer.win32 |