Passing arguments to exe

kyosohma at gmail.com kyosohma at gmail.com
Fri Dec 14 19:38:28 EST 2007


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, but no argument appears to get passed into it. 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. 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)

>
> HTH,
> John

Thanks for the suggestions.

Mike



More information about the Python-list mailing list