PDA

View Full Version : سوال در مورد shell



M44tRix
پنج شنبه 24 تیر 1389, 10:50 صبح
سلام دوستان میخوام بدونم چطوری میشه مثلا وقتی روی comand کلیک میکنم دستور dir در cmd اجرا شه ؟ با دستور شل فقط میتونم cmd رو بیارم بالا نمیتونم dir رو کجاش بزنم

LORD AELX
پنج شنبه 24 تیر 1389, 10:52 صبح
سلام دوستان میخوام بدونم چطوری میشه مثلا وقتی روی comand کلیک میکنم دستور dir در cmd اجرا شه ؟ با دستور شل فقط میتونم cmd رو بیارم بالا نمیتونم dir رو کجاش بزنم

اگر میخوای dir بگیری و اونو تو خود برنامه ات نمایش بدهی، باید از متدهای خود VB استفاده کنی... :چشمک:

M44tRix
پنج شنبه 24 تیر 1389, 11:01 صبح
اگر میخوای dir بگیری و اونو تو خود برنامه ات نمایش بدهی، باید از رویداد های خود VB استفاده کنی... :چشمک:

آره همین رو میخوام مثلا دستور dir رو تو یه label نمایش بده میشه بیشتر توضیح بدی مرسی

LORD AELX
پنج شنبه 24 تیر 1389, 11:39 صبح
آره همین رو میخوام مثلا دستور dir رو تو یه label نمایش بده میشه بیشتر توضیح بدی مرسی

خوب البته تو یک label که نمیشه، چون قراره کل فایل ها و فولدر های یک آدرس مشخص رو لیست کنی... :چشمک:

یک Command و یک ListBox به فرمت اضافه کن و کد زیر را در رویداد Command بنویس:


Private Sub Command1_Click()
Dim fso As New FileSystemObject
Dim fld As Folder
Dim fld2 As Folder
Dim fil As File
Set fld = fso.GetFolder("C:\")
For Each fld2 In fld.SubFolders
List1.AddItem fld2.Name
Next
For Each fil In fld.Files
List1.AddItem fil.Name
Next
Set fil = Nothing
Set fld = Nothing
Set fso = Nothing
End Sub


موفق باشید :قلب:

M44tRix
پنج شنبه 24 تیر 1389, 13:58 عصر
خوب البته تو یک label که نمیشه، چون قراره کل فایل ها و فولدر های یک آدرس مشخص رو لیست کنی... :چشمک:

یک Command و یک ListBox به فرمت اضافه کن و کد زیر را در رویداد Command بنویس:


Private Sub Command1_Click()
Dim fso As New FileSystemObject
Dim fld As Folder
Dim fld2 As Folder
Dim fil As File
Set fld = fso.GetFolder("C:\")
For Each fld2 In fld.SubFolders
List1.AddItem fld2.Name
Next
For Each fil In fld.Files
List1.AddItem fil.Name
Next
Set fil = Nothing
Set fld = Nothing
Set fso = Nothing
End Sub


موفق باشید :قلب:


به این گیر میده :



Dim fso As New FileSystemObject

LORD AELX
پنج شنبه 24 تیر 1389, 14:05 عصر
به این گیر میده :


Dim fso As New FileSystemObject


یادم رفت بگم، شما باید رفرنس Microsoft Scripting Runtime رو به پروژه اصافه کنید. برای این کار از منویProjects گزینه ...References رو انتخاب کرده و گزینه این مورد را چک بزنید. :چشمک:

موفق باشید :قلب:

M44tRix
پنج شنبه 24 تیر 1389, 14:15 عصر
یادم رفت بگم، شما باید رفرنس Microsoft Scripting Runtime رو به پروژه اصافه کنید. برای این کار از منویProjects گزینه ...References رو انتخاب کرده و گزینه این مورد را چک بزنید. :چشمک:

موفق باشید :قلب:

عالی بود جواب داد فقط یه توضیح هم رو دستورات بدی منو شرمنده میکنی که بفمم مثلا برای یه comand دیگه رو اجرا کنم باید به چیش دست بزنم بازم ممنون

LORD AELX
پنج شنبه 24 تیر 1389, 14:27 عصر
عالی بود جواب داد فقط یه توضیح هم رو دستورات بدی منو شرمنده میکنی که بفمم مثلا برای یه comand دیگه رو اجرا کنم باید به چیش دست بزنم بازم ممنون


Dim fso As New FileSystemObject

با این دستور یک شیء از کلاس FileSystemObject می سازیم تا بتونیم به سیستم فایل دسترسی داشته باشیم.



Dim fld As Folder
Dim fld2 As Folder
Dim fil As File


اینا هم که مشخصه، 2 تا متغیر از نوع Folder و یکی هم از نوع File میسازیم.


Set fld = fso.GetFolder("C:\")

در اینجا، با متد GetFolder شیء fso که ساختیم، به یک Path دسترسی می گیریم و آن را به متغیر fld اختصاص می دهیم.



For Each fld2 In fld.SubFolders
List1.AddItem fld2.Name
Next
For Each fil In fld.Files
List1.AddItem fil.Name
Next


در این دو تا حلقه، لیست فایل ها و فولدر های موجود را گرفته و سپس نام آن ها را به ListBox اضافه می کنیم. همانطور که میبینید، در هر کدام از حلقه ها آمدیم، دونه دونه هر فایل یا فولدری که در fld باشد پیدا کرده و آن را در fld2 و fil قرار می دهیم، سپس خصوصیت Name آن را گرفته و آن رشته را به ListBox اضافه کرده ایم (با متد AddItem شیء List1 که در واقع اسم همون ListBox ماست).



Set fil = Nothing
Set fld = Nothing
Set fso = Nothing


سرآخر هم اومدیم اشیای ساخته شده را نابود کرده ایم تا حافظه اشغال شده، آزاد شود. :چشمک:

موفق باشید :قلب: