Double Click to open external program

D

Darren Hill

I have an image on my worksheet. This image changes based on the
activecell.
I'd like to be able to double click that image control, and have my
imagebrowser program (IrfanView) open with the image ready to be edited.

At the moment, I've tried the following:

Private Sub ImageBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim myPicture As String, ImageID

myPicture = Range("C" & ActiveCell.Row).Value
' column C includes the file paths of the images
MsgBox (myPicture)
ImageID = Shell("C:\Program Files\IrfanView\i_view32.exe" & myPicture,
1)
'ImageID = Shell(myPicture, 1)

End Sub

I've tested the filepaths are accurate using hyperlinks.

Thanks in advance for any ideas.

Darren
 
R

Robin Hammond

Darren,

I have not idea about passing parameters to irfanview, but what you can do
is run the file at a given path in its default program using the
ShellExecute API call.

ie.

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Sub Test()
mypicture = "C:\Images\Image1.jpg"
lReturn = ShellExecute(0, "", mypicture, "", "", 0)
End Sub

HTH,

Robin Hammond
www.enhanceddatasystems.com
 
D

Darren Hill

That works a charm.
Thanks, Robin :)

Darren

Darren,

I have not idea about passing parameters to irfanview, but what you can
do
is run the file at a given path in its default program using the
ShellExecute API call.

ie.

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Sub Test()
mypicture = "C:\Images\Image1.jpg"
lReturn = ShellExecute(0, "", mypicture, "", "", 0)
End Sub

HTH,

Robin Hammond
www.enhanceddatasystems.com
 

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