PDA

View Full Version : سوال: اجرای فایل ها



iltsaetsi
یک شنبه 18 مهر 1389, 12:21 عصر
سلام دوستان .
باید چکار کنم که وقتی برنامه ی اجرا کننده ی یک نوع فایل رو ( مثلا txt ) برنامه ی خودم تنظیم کردم وقتی روی اون نوع فایل کلیک کردم برنامه ی من که اجرا شد فایل رو اجرا کنه نه اینکه فقط برنامه اجرا بشه .
مثلا فرض کنید من یک ویراستار متنی نوشتم که وقتی از منوی open برنامه یه فایل متنی (txt) رو انتخاب میکنی اجرا میکنه . تا اینجاش خوبه ولی وقتی روی یه فایل راست کلیک میکنی و از منوی open with برنامه من رو انتخاب میکنی برنامه اجرا میشه ولی فایل رو باز نمیکنه .

saeedvir
یک شنبه 18 مهر 1389, 14:00 عصر
اينم سورسش (فقط بايد بعضي از قسمت هاش را تغيير بدي)



Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Declare Sub SHChangeNotify Lib "shell32.dll" (ByVal wEventId As Long, ByVal uFlags As Long, dwItem1 As Any, dwItem2 As Any)
Private Sub Form_Load()
Image1.Stretch = True
Image1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
'
RegisterFile ".BMP"
RegisterFile ".JPG"
RegisterFile ".GIF"
RegisterFile ".WMF"
RegisterFile ".EMF"
'
On Error Resume Next
If Len(Command()) > 0 Then
Image1.Picture = LoadPicture(FixPath(Command()))
End If
End Sub
Private Sub RegisterFile(strPasvand As String)
Dim sKeyName As String ' Holds Key Name in registry.
Dim sKeyValue As String ' Holds Key Value in registry.
Dim ret& ' Holds error status if any from API calls.
Dim lphKey& ' Holds key handle from RegCreateKey.
Dim path As String

path = App.path
If Right(path, 1) <> "\" Then
path = path & "\"
End If

' This creates a Root entry called "PicturePreview".
sKeyName = "PicturePreview" ' Project Name
sKeyValue = "Picture"
ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)

' This creates a Root entry called .BMP;.JPG;.GIF;.WMF associated with "PicturePreview".
sKeyName = strPasvand
sKeyValue = "PicturePreview" ' Project Name
ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "", REG_SZ, sKeyValue, 0&)

' This sets the command line for "PicturePreview".
sKeyName = "PicturePreview" ' Project Name
sKeyValue = path & App.EXEName & ".exe %1"
ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "shell\open\command", REG_SZ, sKeyValue, MAX_PATH)

' This sets the icon for the file extension
sKeyName = "PicturePreview" ' Project Name
sKeyValue = path & "MyIcon.ico"
ret& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, lphKey&)
ret& = RegSetValue&(lphKey&, "DefaultIcon", REG_SZ, sKeyValue, MAX_PATH)

' This notifies the shell that the icon has changed
SHChangeNotify SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0
End Sub
Public Function FixPath(strPath As String) As String
Dim strTemp As String
strTemp = strPath
strChar = """"
If Len(strTemp) > 0 Then
If Mid(strTemp, 1, 1) = strChar Then strTemp = Right(strTemp, Len(strTemp) - 1)
If Mid(strTemp, Len(strTemp), 1) = strChar Then strTemp = Left(strTemp, Len(strTemp) - 1)
End If
FixPath = strTemp
End Function

AmirAmiri
یک شنبه 18 مهر 1389, 14:46 عصر
سلام دوستان .
باید چکار کنم که وقتی برنامه ی اجرا کننده ی یک نوع فایل رو ( مثلا txt ) برنامه ی خودم تنظیم کردم وقتی روی اون نوع فایل کلیک کردم برنامه ی من که اجرا شد فایل رو اجرا کنه نه اینکه فقط برنامه اجرا بشه .
مثلا فرض کنید من یک ویراستار متنی نوشتم که وقتی از منوی open برنامه یه فایل متنی (txt) رو انتخاب میکنی اجرا میکنه . تا اینجاش خوبه ولی وقتی روی یه فایل راست کلیک میکنی و از منوی open with برنامه من رو انتخاب میکنی برنامه اجرا میشه ولی فایل رو باز نمیکنه .


سلام دوست عزیز.
چیزی که شما میخواید در واقع اختصاص یک یا چند پسوند فایل به برنامه شما هست که جناب saeedvir در پست قبلی زحمت کشیدن و کد رو قرار دادن اما ذکر منبع رو فراموش کردن :لبخند:

http://v-basic.mihanblog.com/post/14

این لینک رو گذاشتم تا توضیحات کامل رو از منبع بخونی چون یک سری کارهایی هست که باید انجام بدی. (مثلا برای آیکون و غیره)
منبع : http://v-basic.mihanblog.com
موفق و پیروز باشی.

night_secret
یک شنبه 18 مهر 1389, 14:51 عصر
این برنامه حتما کمکت میکنه
http://www.persiangig.com/pages/download/?dl=http://night-secret.persiangig.com/project%20notepad.zip

alirezash
سه شنبه 20 مهر 1389, 01:40 صبح
آقا دستتون درد نکنه . اگه یکم این بچه های vb.net از شماها یاد بگیرن خیلی خوب میشه