PDA

View Full Version : get windows directory



abulfazl
دوشنبه 12 اسفند 1387, 19:01 عصر
با سلام خدمت شما دوستان عزيز .تابع get windows directory براي برگردوندن ريشه ويندوز است اگه اشتباه نكنم .اگه درست فكر مي كنم لطفا بگوييد كه اين تابع چطوري كار مي كند
با تشكر

abulfazl
دوشنبه 12 اسفند 1387, 21:11 عصر
با سلام خدمت شما دوستان عزيز .تابع get windows directory براي برگردوندن ريشه ويندوز است اگه اشتباه نكنم .اگه درست فكر مي كنم لطفا بگوييد كه اين تابع چطوري كار مي كند
با تشكر


دوستان عزيز لطفا جواب اين سوال من رو بدهيد متشكرم

xxxxx_xxxxx
دوشنبه 12 اسفند 1387, 23:58 عصر
سلام
بله درست هست، اين تابع براي به دست آوردن آدرس فولدر ويندوز است.
نحوه تعريف تابع:


Private Declare Function GetWindowsDirectoryA Lib "kernel32" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

توضيح آرگومان ها:
آرگومان اول اين تابع همانطور كه از نامش پيداس بافري هست كه قراره آدرس درش ذخيره بشه. در اينجور مواقع كه نياز به تعريف بافر داريم. اينطوري براي خودمون مي تونيم يك بافر با طول دلخواه تعريف كنيم:


Dim S As String
S = String(200, Chr(0))

بافري با نام S و طول 200 و محتواي آن خالي كاراكتري با كد 0 است را تعريف كرديم.
آرگومان دوم طول و يا اندازه بافر هست.
و خروجي تابع ("C:\Windows") در داخل S قرار مي گيرد.
مثال:


Private Declare Function GetWindowsDirectoryA Lib "kernel32" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Private Sub Form_Load()
Dim S As String
S = String(200, Chr(0))
GetWindowsDirectoryA S, Len(S)
MsgBox S
End Sub


راستي براي بدست آوردن نام فولدر ويندوز مي تونيم از اين دستور هم استفاده كنيم:


MsgBox Environ("windir")

خروجي اين دستور هم دقيقاً مشابه كد قبلي ست.

موفق باشيد/

abulfazl
سه شنبه 13 اسفند 1387, 11:44 صبح
سلام
بله درست هست، اين تابع براي به دست آوردن آدرس فولدر ويندوز است.
نحوه تعريف تابع:


Private Declare Function GetWindowsDirectoryA Lib "kernel32" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

توضيح آرگومان ها:
آرگومان اول اين تابع همانطور كه از نامش پيداس بافري هست كه قراره آدرس درش ذخيره بشه. در اينجور مواقع كه نياز به تعريف بافر داريم. اينطوري براي خودمون مي تونيم يك بافر با طول دلخواه تعريف كنيم:


Dim S As String
S = String(200, Chr(0))

بافري با نام S و طول 200 و محتواي آن خالي كاراكتري با كد 0 است را تعريف كرديم.
آرگومان دوم طول و يا اندازه بافر هست.
و خروجي تابع ("C:\Windows") در داخل S قرار مي گيرد.
مثال:


Private Declare Function GetWindowsDirectoryA Lib "kernel32" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Private Sub Form_Load()
Dim S As String
S = String(200, Chr(0))
GetWindowsDirectoryA S, Len(S)
MsgBox S
End Sub


راستي براي بدست آوردن نام فولدر ويندوز مي تونيم از اين دستور هم استفاده كنيم:


MsgBox Environ("windir")

خروجي اين دستور هم دقيقاً مشابه كد قبلي ست.

موفق باشيد/
از لطف شما ممنونم ولي ميشه بگي كه در اين دستور

pasfile = FreeFile
Open "1.text" For Random As #pasfile
Close #pasfile
SetAttr "1.text", 0
SetAttr "1.text", vbHidden + vbSystem
Open "1.text" For Random As #pasfile

براي اينكه تكست 1 درون شاخه ويندوز و سيستم 32 برود بايد چكار كرد
با تشكر

xxxxx_xxxxx
سه شنبه 13 اسفند 1387, 14:40 عصر
دست از اين شيطنت ها برداريد
فايل هاي سيستمي رو اول بايد normal كنيد بعد به جايي انتقال بديد. يعني شما قبل از اين كه فايل text رو مخفي و سيستمي كنيد به آدرس موردنظر ببريد بعد اونجا مخفي و سيستمي كنيدش. اصلاً چرا فايل رو همونجا نمي سازيد؟


Private Sub Command1_Click()
sys = Environ("windir") & "\system32\"
pasfile = FreeFile
Open sys & "1.text" For Random As #pasfile
Close #pasfile
SetAttr sys & "1.text", 0
SetAttr sys & "1.text", vbHidden + vbSystem
Open sys & "1.text" For Random As #pasfile
End Sub