PDA

View Full Version : اجرای یک برنامه از طریق فایل مربوط به آن



vahidiran
چهارشنبه 03 مرداد 1386, 16:51 عصر
با سلام ،
من می خوام یک برنامه بنویسم که به محض فشار دادن یک کلید یک برنامه اجرا شه با فایل مربوطه اش لازم به ذکر است از دستور shell می شه استفاده نمود ولی این دستور برای اجرای یک فایل exe هستش ، من مثلا می خوام از داخل برنامه مسیر یک فایل عکس رو که دارم جوری این عکس رو open کنم که نرم افزار پیش فرض برای نمایش عکس اجرا شده و اون عکس رو با نرم افزار مربوطه اش نمایش بده

__siavash__
چهارشنبه 03 مرداد 1386, 17:35 عصر
با سلام ،
من می خوام یک برنامه بنویسم که به محض فشار دادن یک کلید یک برنامه اجرا شه با فایل مربوطه اش لازم به ذکر است از دستور shell می شه استفاده نمود ولی این دستور برای اجرای یک فایل exe هستش ، من مثلا می خوام از داخل برنامه مسیر یک فایل عکس رو که دارم جوری این عکس رو open کنم که نرم افزار پیش فرض برای نمایش عکس اجرا شده و اون عکس رو با نرم افزار مربوطه اش نمایش بده

منظورت اینه


Private 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
Private Const SW_MAXIMIZE = 3

Private Sub Command1_Click()
ShellExecute Me.hwnd, "Open", "1.jpg", 0&, "G:\Photo\My photo", SW_MAXIMIZE
End Sub

این جا عکسی با اسم 1.jpg از دایرکتوری G:\Photo\My photo باز میشه !

vahidiran
چهارشنبه 03 مرداد 1386, 22:41 عصر
این کد کاملا کار من راه انداخت با تشکر فراوان ، :تشویق::تشویق::تشویق:
آیا می شه نام برنامه هم را داد و با اون باز شه مثلا همین عکسه رو بگیم با Paint باز کنه
یعنی همون open with
ولی باز هم ممنونم از کد شما :تشویق::چشمک:

__siavash__
پنج شنبه 04 مرداد 1386, 01:41 صبح
بله میشه
با این دو کد همون عکس با Paint باز میشه !


Private 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
Private Const SW_MAXIMIZE = 3

Private Sub Command1_Click()
ShellExecute Me.hwnd, "Open", "mspaint.exe", Chr(34) & "G:\Photo\My photo\1.jpg" & Chr(34), "D:\WINDOWS\system32", SW_MAXIMIZE
End Sub

با این کد هم میتونی این کارو بکنی البته مشکل این کد اینه که در دایرکتوری که به تابع میدی نباید Space وجود داشته باشه !


Shell "mspaint.exe G:\Photo\MyPhoto\1.jpg", vbNormalFocus

safasoft
پنج شنبه 05 مهر 1386, 09:29 صبح
با سلام
من همین کد را در VB.net می خواهم البته نوشتم ولی ماکرو Whnd را نمی شناسد.:متفکر:
ممنون میشم