PDA

View Full Version : سوال: save کردن آدرس فایل انتخاب شده در لیست باکس



l4tr0d3ctism
سه شنبه 06 مرداد 1388, 03:18 صبح
یک دکمه گذاشتم می خوام هنگامی که روی دکمه کلیک می کنم و با باز شدن common Dialog Control و انتخاب فایل مورد نظر آدرس اون فایل توی list Box ذخیره بشه منتها با اسمی که خودم روش میذارم و بعدا هر وقت دابل کلیک کردم روی اون اسم( در لیست باکس ) فایل اجرا بشه ؟؟؟؟؟؟؟

mmssoft
سه شنبه 06 مرداد 1388, 09:19 صبح
این برای انتخاب فایل و نمایش آدرس در لیست باکس :

Dim i As Integer
Dim myFiles() As String
Dim myPath As String

With CD1
.MaxFileSize = 32000 'this will max out the buffer for the filenames array for large selections. *NEW*
.CancelError = False 'if cancel is pressed, the code jumps to cError because of the On Error statement above
.Filter = "All Files (*.*)|*.*" '*NOTE!!* The / should be a vertical pipe symbol here! It displays incorrectly here.
.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer Or cdlOFNHideReadOnly
'this is where we tell it to use multiselect
.ShowOpen

myFiles = Split(.FileName, vbNullChar) 'the Filename returned is delimeted by a null character because we selected the cdlOFNLongNames flag

Select Case UBound(myFiles)
Case 0 'if only one was selected we are done
List1.AddItem myFiles(0)
Case Is > 0 'if more than one, we need to loop through it and append the root directory
For i = 1 To UBound(myFiles)
myPath = myFiles(0) & IIf(Right(myFiles(0), 1) <> "\", "\", "") & myFiles(i)
List1.AddItem myPath
Next i
End Select

End With
Exit Sub


این هم برای اینکه و قتی بر روی لیست دابل کلیک می کنیم آدرس انتخاب شده در تکست قرار گیرد :
کد زیر را در بخش DblClick لیست کپی کنید :

Text1.Text = List1.Text

M_P_1374
سه شنبه 06 مرداد 1388, 11:14 صبح
Dim Count2, Address(0 To 10000)

Private Sub Command1_Click()
On Error Resume Next
CommonDialog1.ShowOpen
List1.AddItem InputBox("Your personal name for this item")
Count2 = Count2 + 1
Address(Count2) = CommonDialog1.FileName
End Sub

Private Sub List1_Click()
Text1.Text = Address(List1.ListIndex + 1)
End Sub

l4tr0d3ctism
چهارشنبه 07 مرداد 1388, 21:48 عصر
با تشگر از دوستان

همون طور که گفتم می خوام با دابل کلیک روی لیست، فایل مورد نظر هم اجرا بشه دوباره ؟؟؟

...................

text1.text = list1.text قرار که دادم و بعد در دکمه این فرمان را برای اجرای دوباره فایل مورد نظر رو نوشتم shell (text1.text) ولی پیغام خطا میده ؟؟؟؟؟؟؟؟

روشی برای اجرای آدرس فایل مورد نظر در درون لیست باکس دارید ؟؟؟؟؟

Felony
چهارشنبه 07 مرداد 1388, 22:01 عصر
توسط دستور تابع shell

l4tr0d3ctism
چهارشنبه 07 مرداد 1388, 22:12 عصر
توسط دستور تابع shell


یه لطفی کنید تا آخر بخونید

گفتم که با shell ( list1.text) 'ino zadam ولی پیغام خطا آورد دوست عزیز

butterfly8528
چهارشنبه 07 مرداد 1388, 22:31 عصر
سلام دوست عزیز .
با دستور shell فقط بعضی فرمت ها قابل اجرا هستند . مثل EXE , BAT و . . .
باید فرمت فایلهای رو که آدرسشون رو بدست میاری بفهمی .
بد با این کد زیر میتونی هر فرمتی رو اجرا کنی :


Private Declare Function ShellExecuteA Lib "shell32.dll" (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_HIDE = 0
Private Const SW_NORMAL = 1
Private Const SW_SHOWDEFAULT = 10
Private Const SW_MINIMIZE = 3
Private Const SW_MAXIMIZE = 6
Private Const SW_SHOW = 5

private sub form_load()
ShellExecuteA hwnd, "open", "Document.doc", "", "E:\", SW_NORMAL

' ShellExecuteA hwnd, "open", "MyFile.mp3", "", App.Path & "\", SW_NORMAL
end sub

اگه سوالی بود در خدمتم .

l4tr0d3ctism
پنج شنبه 08 مرداد 1388, 21:49 عصر
سلام دوست عزیز .
با دستور shell فقط بعضی فرمت ها قابل اجرا هستند . مثل EXE , BAT و . . .
باید فرمت فایلهای رو که آدرسشون رو بدست میاری بفهمی .
بد با این کد زیر میتونی هر فرمتی رو اجرا کنی :


Private Declare Function ShellExecuteA Lib "shell32.dll" (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_HIDE = 0
Private Const SW_NORMAL = 1
Private Const SW_SHOWDEFAULT = 10
Private Const SW_MINIMIZE = 3
Private Const SW_MAXIMIZE = 6
Private Const SW_SHOW = 5

private sub form_load()
ShellExecuteA hwnd, "open", "Document.doc", "", "E:\", SW_NORMAL

' ShellExecuteA hwnd, "open", "MyFile.mp3", "", App.Path & "\", SW_NORMAL
end sub

اگه سوالی بود در خدمتم .


ممنون بابت پاسخ ها


دوست عزیز کدی که دادید جواب داد فقط یه مشکل هست


در صورتی که آدرس و نام فایل انتخاب شده این باشه مثلا :



E:\E-BOOK\COMPUTER\Trojan In VB\trojan_in_vb#.pdf



خوب حالا من باید چی کار کنم تا آدرس پوسشه ی فایل و نام و پسوند فایل خودش در قعه کد زیر که دادید قرار بگیره ؟ مثل زیر


[
ShellExecuteA hwnd, "open", " trojan_in_vb#.pdf ", "", " E:\E-BOOK\COMPUTER\Trojan In VB\", SW_NORMAL


مشکلم اینه که اینکار باید به صورت اتوماتیک انجام بگیره ؟؟؟ حالا اینکارو می تونیم کنیم که بجای قرمز یک متغیر باشه ولی حالا


چیکار کنم تا نام فایل و پسوند فایل از نشانی فایل جدا بشه و هر کدومشون در یک متغیر قرار بگیرن ؟؟؟؟؟؟؟؟؟؟روشی دارید ؟؟؟؟؟؟؟؟؟


با تشکر

l4tr0d3ctism
جمعه 09 مرداد 1388, 02:45 صبح
کسی روشی نداره ؟؟؟؟؟؟؟؟؟؟

جدا کردن نام فایل و پسوند آن از آدرس پوشه ی فایل و سپس ذخیره ی هر کدام در یک متغیر

اینو توی یه تاپیک دیگه بنویسم ؟؟؟؟؟؟؟؟؟؟؟

من آدرس هر فایلیو که می خوام انتخاب کنم رو باید هر کردوم تویه یک متغیر بیفته آدرس پوشه ی فایل جدا و نام و پسوند فایل هم جدا تا بتونم از اون کدی که گفتم استفاده کنم ؟

چه روشی دارید ؟؟؟؟؟؟؟؟؟؟؟

butterfly8528
جمعه 09 مرداد 1388, 04:46 صبح
جدا کردن نام فایل و پسوند آن از آدرس پوشه ی فایل

برای این کار باید از دستور Dir استفاده کنید .



Private Sub Command1_Click()
On Error Resume Next
CommonDialog1.ShowOpen
List1.AddItem CommonDialog1.FileName

End Sub


Private Sub List1_Click()
Text1.Text = Dir(CommonDialog1.FileName)
End Sub