PDA

View Full Version : چه جوری می شه فایل ها رو read only کرد ؟



mehran8
شنبه 25 فروردین 1386, 20:36 عصر
سلام

باید ببخشید باز مزاحمتون شدم . :لبخند:

این سوالم هم در مورد همون آنتی ویروسی بود که گفتم دارم می نویسمش .

چی جوری می شه فایل ها رو read only کرد و یا بر عکس اون ها رو از حال read only در آورد ؟

همین امشب به این جواب احتیاج دارم (Please)

خیلی ممنون اگه کمک کنید

mjdeveloper
شنبه 25 فروردین 1386, 21:45 عصر
دوست عزیز شما میتونی از توابع API ویندوز استفاده کنی
در دلفی اینجوریه

Winexec('Attrib +r fileName',sw_hide);
Winexec('Attrib -r fileName',sw_hide);
--------------------------------------------------
خط اول read only می کنه
خط دو readonly رو بر می داره
مثال:

Winexec('Attrib +r C:\*.*',sw_hide);
بجای SW_Hide هم می تونی صفر یا یک و فکر کنم -1 می تونی بذاری
این Function از توابع API ویندوز است

که دستورات داس رو می تونی باهاش اجرا کنی
حتما تو VB هم می تونی به همین شکل استفاده کنی چون تابع عمومی ویندوز است
---------------------
خلاصه شرمنده چون من دلفی کارم اطلاعات زیادی در باره VB ندارم
امیدوارم تونسته باشم کمکی کنم
-----------------------------------------------------------------------------------------------
مهدی جعفری:چشمک:

mehran8
شنبه 25 فروردین 1386, 22:24 عصر
ای ول دمت گرم فهمیدم چی شد

مرسی از لطفتون

فقط فکر کنم اون Sw_hide دستور مخصوص خوده دلفی هست که مشخص می کنه دستوری که توی داس اجرا می شه به صورت مخفی باشه که معادلش توی ویژوال بیسیک اینه
vbhide

و معادل دستور winexec - shell

در کل دستور واقعی همینه : attrib +r

خیلی ممنون

romina2006
شنبه 25 فروردین 1386, 22:26 عصر
از روشهای زیر هم می تونی استفاده کنی


Private Const FILE_ATTRIBUTE_HIDDEN = &H2
Private Const FILE_ATTRIBUTE_NORMAL = &H80
Private Const FILE_ATTRIBUTE_READONLY = &H1
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
Private Const FILE_ATTRIBUTE_COMPRESSED = &H800
Private Const FILE_ATTRIBUTE_ARCHIVE = &H20
Private Const FILE_ATTRIBUTE_SYSTEM = &H4
Private Const FILE_ATTRIBUTE_TEMPORARY = &H100
Private Declare Function SetFileAttributes Lib "kernel32.dll" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long
Private Sub Command1_Click()
SetFileAttributes "c:\1.txt", FILE_ATTRIBUTE_READONLY
End Sub
Private Sub Command2_Click()
SetFileAttributes "c:\1.txt", FILE_ATTRIBUTE_NORMAL
End Sub



Private Sub Command1_Click()
SetAttr "c:\1.txt", vbReadOnly
End Sub
Private Sub Command2_Click()
SetAttr "c:\1.txt", vbNormal
End Sub



Private Sub Command1_Click()
Dim str As String
str = ("""""""" & "c:\1.txt" & """""""")
Call Shell("attrib +r " & str, vbHide)
End Sub
Private Sub Command2_Click()
Dim str As String
str = ("""""""" & "c:\1.txt" & """""""")
Call Shell("attrib -r " & str, vbHide)
End Sub

mjdeveloper
یک شنبه 26 فروردین 1386, 00:13 صبح
ای ول دمت گرم فهمیدم چی شد

مرسی از لطفتون

فقط فکر کنم اون Sw_hide دستور مخصوص خوده دلفی هست که مشخص می کنه دستوری که توی داس اجرا می شه به صورت مخفی باشه که معادلش توی ویژوال بیسیک اینه
vbhide

و معادل دستور winexec - shell

در کل دستور واقعی همینه : attrib +r

خیلی ممنون

آقا خوشحال شدم مشکلت حل شد
موفق باشی

mehran8
یک شنبه 26 فروردین 1386, 15:18 عصر
مرسی romina2006 (http://barnamenevis.org/forum/member.php?u=32889) جان .

بچه ها من یه فایل روی کامپیوترم اجرا می شه به اسمه winexec.exe
که سیستمی هم هست . به نظر شما این چیه ؟

Payman62
دوشنبه 27 فروردین 1386, 00:01 صبح
مرسی romina2006 (http://barnamenevis.org/forum/member.php?u=32889) جان .

بچه ها من یه فایل روی کامپیوترم اجرا می شه به اسمه winexec.exe
که سیستمی هم هست . به نظر شما این چیه ؟
ویروس.....

mehran8
دوشنبه 27 فروردین 1386, 13:36 عصر
:متعجب: :متعجب: شما مطمئن هستید ؟
آخه این طوری که پیداست جلوش نوشته بود سیستمی .
در ضمن فقط بعضی وقت ها اجرا می شد (الآن ویندوز رو عوض کردم) نه همیشه .
؟؟؟
اگه واقعاً ویروس هست تا اسمش رو توی لیست آنتی ویروسی که دارم می نویسم اضافه کنم هان ؟

Bahram0110
دوشنبه 27 فروردین 1386, 13:49 عصر
:متعجب: :متعجب:
اگه واقعاً ویروس هست تا اسمش رو توی لیست آنتی ویروسی که دارم می نویسم اضافه کنم هان ؟

همین جوری الکی که نیست بر حسب اسم فایل اونو به لیست آنتی ویروس اضافه کنی
راه بهترش اینه که بر حسب signature فایل اون فایلو بررسی کنید که آیا امضاء اون فایل با امضائی که در بانک آنتی ویروس هست برابره یا نه
که اگه بود : اون فایل همون ویروس مورد نظره

mehran8
دوشنبه 27 فروردین 1386, 14:51 عصر
خوب وقتی از اجرای ویندوز نباشه ...
اه پاک بشه هیچ صدمه ای به ویندوز وارد نمی کنه که /

تازه آدرس این ویروس هم در شناساییش تاثیر داره

__siavash__
جمعه 31 فروردین 1386, 00:26 صبح
از توابع داخلی ویژوال بیسیک هم میتونی استفاده کنی که کد کمتری احتاج داره


GetAttr(pathname)
SetAttr pathname, attributes


ولیو های مورد نیاز هم تو عکس های پایین هست