Passing arguments to exe

John Machin sjmachin at lexicon.net
Fri Dec 14 21:06:02 EST 2007


On Dec 15, 11:38 am, kyoso... at gmail.com wrote:
> On Dec 14, 4:51 pm, John Machin <sjmac... at lexicon.net> wrote:
>
> > On Dec 15, 9:01 am, kyoso... at gmail.com wrote:
>
> > > I have created what amounts to a simple GUI email sending program
> > > using Python + wxPython. I have modified the mailto registration in
> > > the Windows Registry so that it launches the script when someone
> > > clicks on someone's email link in a web page.
>
> > > While this works great if I create a convoluted path command as the
> > > registry entry and pass in the email argument to the script,
>
> > It would help if you would give an actual code example of what you
> > mean by "convoluted path command" and "pass in the email argument to
> > the script".
>
> Ok, I modify HKEY_CLASSES_ROOT\mailto\shell\open\command to do this:
>
> cmd /C "SET PYTHONHOME=\\servername\NETLOGON\Python24&&\\servername
> \netlogon\python24\python.exe \\path\to\my\script\wxsendmail.py %1"
>
>
>
> > > it
> > > doesn't work at all if I turn my python file into an exe using py2exe.
>
> > "it doesn't work" is user-speak.
>
> I've written posts where I've been quite technical and gotten very
> little to no response...admittedly, this was pretty vague though...
>
> > What does it do? Does it execute the
> > executable at all? If not, check your "convoluted path". If so, what
> > arguments are received?
>
> The executable runs,

how do you know it runs?

> but no argument appears to get passed into it.

appears??

> Of
> course, I don't really know that for sure as the executable doesn't
> redirect stdout/stderr. I tried doing something like this in the above
> reg entry:
>
> cmd /C "c:\program files\myProg.exe %1"
> "c:\program files\myProg.exe %1"
> "c:\program files\myProg.exe"
>
> None of those worked.
>
>
>
> > > How does one get a python file to accept arguments when said script
> > > has been turned into an executable?
>
> > If the script is expecting its arguments in sys.argv, I would expect
> > that to work with an executable also. My guess is that you are falling
> > foul of some argument-quoting problem. I also guess that you have not
> > tried something like the following at the start of your script:
>
> >     print >> your_log_file, "sys.argv:", repr(sys.argv)
>
> > and run it both as a script and an executable.
>
> I do have my script set up to find its arguments in sys.argv. And no,
> I don't have that print screen.

"""print >> your_log_file,""" implies "print screen"?

> As mentioned above, I don't have a
> console window open when the exe runs, so I won't see any output from
> it. I'll have to modify it to do that when I'm back at my work PC.
>
>
>
> > Have you tried running the executable stand-alone e.g. Start | Run,
> > type in
> >     your_exe_file b... at aol.com
> > or whatever the argument(s) are?
>
> No, but that's a good idea. Why didn't I think of that!? (don't answer
> that)

OK, I won't :-)
>
>
> Thanks for the suggestions.

You're welcome.



More information about the Python-list mailing list