برگزیده های پرشین تولز

fso : microsoft scripting runtime

sylvester

Registered User
تاریخ عضویت
26 مارس 2007
نوشته‌ها
526
لایک‌ها
89
محل سکونت
ترکیه
سلام! من يه سوال در مورد fso دارم
روش معمول استفاده اين است كه microsoft scripting runtime را انتخاب كرده و سپس از ليست كامپوننتها آن را tool box اضافه كنيم كه با اين كار علاوه بر file system object چهار عنصر file - drive - folder -و textstream نيز به toolbox ما اضافه ميشوند. ولي من يه كتاب دارم كه بدون استفاده از componnent اومده file system object رو قلبل استفاده كرده. اينجوري
set fso = createobject ("scripting.filesystemobject)x
اولين سوال من اين بود كه به اين روش چي ميگن و چگونه اين كار انجام شده بدون كامپوننت؟
سوال مهم ترم اينكه اگر بخواهم آبجكنه drive رو نيز به همين روش تعريف كنم چجوري بايد انجامش بدم؟
مثلا اينجوري نوشتم نشد
set drv = createobject("scripting.drive")x
ممنون
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
به این روش میگن later binding. آبجکت درایو هم باید زیر شاخه همین fso باشه که ساختید، لازم نیست بسازیدش باز (البته با fso زیاد کار نکردم) منتها اگر آبجکتها لیست نمیشن دلیل به نبودنشون نیست بلکه بخاطر اینکه fso خودش یک object بیشتر نمیشه در این روش.
 

sylvester

Registered User
تاریخ عضویت
26 مارس 2007
نوشته‌ها
526
لایک‌ها
89
محل سکونت
ترکیه
به این روش میگن later binding. آبجکت درایو هم باید زیر شاخه همین fso باشه که ساختید، لازم نیست بسازیدش باز (البته با fso زیاد کار نکردم) منتها اگر آبجکتها لیست نمیشن دلیل به نبودنشون نیست بلکه بخاطر اینکه fso خودش یک object بیشتر نمیشه در این روش.
دوست عزيز شما مطمئن هستيد با ساختن ابجكت fso ميشه در همين روال از ابجكت drive يا file هم استفاده كرد. نميدونم چرا من نميتونم جواب بگيرم
براي نمونه ميخواهم از خاصيت isReady در عنصر drive استفاده كنم و مقدار را در msgbox ببينم. چكار كنم؟
set fso = createobject("scripting.filesystemobject")x
msgbox =xxxxxxxxxxxxxxx??????xxzzzzzzzzzzz:wacko:
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
دوست عزيز شما مطمئن هستيد با ساختن ابجكت fso ميشه در همين روال از ابجكت drive يا file هم استفاده كرد. نميدونم چرا من نميتونم جواب بگيرم
براي نمونه ميخواهم از خاصيت isReady در عنصر drive استفاده كنم و مقدار را در msgbox ببينم. چكار كنم؟
set fso = createobject("scripting.filesystemobject")x
msgbox =xxxxxxxxxxxxxxx??????xxzzzzzzzzzzz:wacko:
کد:
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox fso.GetDrive("A:\").IsReady
 

sylvester

Registered User
تاریخ عضویت
26 مارس 2007
نوشته‌ها
526
لایک‌ها
89
محل سکونت
ترکیه
عمر ما تموم شدو آخر يه زبانه ساده هم ياد نگرفتيم!
آقا من يه مشكل دارم كمك كنيد
من يه كمبو باكس رو فرم دارم كه شامل عناصر درايوهاي موجود سي دي ميباشد. به دين منوال
:i
:j
:k
:l
خوب. حالا ميخوام با زدن يك دكمه كامند چنانچه اولين عنصر(يعني اولين درايو سي دي) در حالت isready بود نام اون عنصر به همراه volumeneme آن به همين كومبو باكس اضافه بشه. اينجوري نوشتم
کد:
Private Sub Command2_Click()
Dim fso As New FileSystemObject
If fso.GetDrive(Combo2.List(0)).IsReady = True Then
Combo2.AddItem (Combo2.List(0)) & fso.GetDrive(Combo2.List(0)).VolumeName
End If
End Sub
با اين كد يك عنصر به نام i:mydisk بعد از آخرين عنصر كمنو اضافه ميشه كه من نمي خوام اينجوري بشه. ميخوام اين i:mydisk به جاي :i جايگزين بشه براي همين گفتم يه ادرس ايندكس به add.item اضافه كنم و بعد يه remove.item(1) بهش اضافه كنم.اينجوري
کد:
Private Sub Command2_Click()
Dim fso As New FileSystemObject
If fso.GetDrive(Combo2.List(0)).IsReady = True Then
Combo2.AddItem (Combo2.List(0))[B][COLOR="Red"], 0[/COLOR][/B] & fso.GetDrive(Combo2.List(0)).VolumeName
Combo2.RemoveItem (1)
End If
End Sub
ولي با خطاي type mismatch مواجه ميشم. چكار كنم!
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
چپکی گذاشتی صفرو %}
کد:
If fso.GetDrive(Combo2.List(0)).IsReady = True Then
Combo2.AddItem (Combo2.List(0)) & fso.GetDrive(Combo2.List(0)).VolumeName, 0
Combo2.RemoveItem 1
End If
 

sylvester

Registered User
تاریخ عضویت
26 مارس 2007
نوشته‌ها
526
لایک‌ها
89
محل سکونت
ترکیه
چپکی گذاشتی صفرو %}
کد:
If fso.GetDrive(Combo2.List(0)).IsReady = True Then
Combo2.AddItem (Combo2.List(0)) & fso.GetDrive(Combo2.List(0)).VolumeName, 0
Combo2.RemoveItem 1
End If
:eek::eek::eek: اجب اشتباهه ضايعه اي كردم.گفتم چرا گير ميده.
 
بالا