From: remixer on
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
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

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

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

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

 |  Next  |  Last
Pages: 1 2 3
Prev: Lis(t|p) comprehensions
Next: Pocket Lisp Machine