ShellExecute

D

Dave Unger

Hello,

Running XP pro & Excel 2007

I was running this bit of code this morning to launch a shortcut on
the desktop, and everything was working fine. While experimenting
with variations things went into "lala land", and now I can't get it
to work again (with the original code). Reinstalling Excel didn't
help. It looks like it's going to launch the shortcut (mometary
hourglass), but the window never opens. Interestingly, it will still
launch a .bat file without any problem. My experience with API calls
is limited, any help would be most appreciated.

regards,

DaveU

Sub LaunchLNK()
Dim DeskTop As String
DeskTop =
CreateObject("WScript.Shell").SpecialFolders.Item("Desktop")
ShellExecute 0, "Open", DeskTop & "\myfile.lnk", "", "C:\", 1
End Sub
 
G

Gary''s Student

Hi Dave:

Shell is usually not useful to start a file without specfying the app. But
rather than using the ShellExecute API, you can still use Shell as in this
example:

Sub Macrosh()
x = Shell("cmd.exe /c C:\start.lnk", 1)
End SuB

This will start an app/file associated with the shortcut on C: folder.

That is because cmd.exe is smart enough to:
1. look at the shortcut
2. find the target file
3. pick the correct app
4. open the file
 
D

Dave Unger

Hi Gary's Student,

Thanks for your reply. This isn't working for me either, but maybe I
can see what's happening now (although I don't know why). The cmd
window flashes opens and immediately closes without running the file.
I think this was happening with my original routine, just too fast to
see. I tried this with Excel 97 as well (same machine), with the same
results. I'm starting to wonder if it might be a registry problem.
Anu other suggestions?

regards,

DaveU
 
R

Rick Rothstein \(MVP - VB\)

Try it this way...

Sub Macrosh()
x = Shell("cmd.exe /k C:\start.lnk", 1)
End Sub

I changed the /c to /k... doing that should keep the Command window open so
you can read any error messages that might have been generated. Knowing what
the error is (assuming there is one) should give you a hint at what you will
need to change.

Rick


Hi Gary's Student,

Thanks for your reply. This isn't working for me either, but maybe I
can see what's happening now (although I don't know why). The cmd
window flashes opens and immediately closes without running the file.
I think this was happening with my original routine, just too fast to
see. I tried this with Excel 97 as well (same machine), with the same
results. I'm starting to wonder if it might be a registry problem.
Anu other suggestions?

regards,

DaveU
 
D

Dave Unger

Hi Rick,

Thanks- actually I just this minute discoverd that for myself. I
hardly ever use cmd.exe (obvious), took me a little while before the
light dawned. After invoking the k switch, it became apparent that
there was an error in the path name.

I really appreciate your help.

regards,
Dave
 
G

Gary''s Student

Very nice debugging technique.
--
Gary''s Student - gsnu200786


Rick Rothstein (MVP - VB) said:
Try it this way...

Sub Macrosh()
x = Shell("cmd.exe /k C:\start.lnk", 1)
End Sub

I changed the /c to /k... doing that should keep the Command window open so
you can read any error messages that might have been generated. Knowing what
the error is (assuming there is one) should give you a hint at what you will
need to change.

Rick


Hi Gary's Student,

Thanks for your reply. This isn't working for me either, but maybe I
can see what's happening now (although I don't know why). The cmd
window flashes opens and immediately closes without running the file.
I think this was happening with my original routine, just too fast to
see. I tried this with Excel 97 as well (same machine), with the same
results. I'm starting to wonder if it might be a registry problem.
Anu other suggestions?

regards,

DaveU
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top