PDA

View Full Version : سوال: مخفی کردن فولدر



agent4iranian.ir
جمعه 31 خرداد 1392, 18:48 عصر
سلام دوستان این سورس کد من اما نمی دونم چه جوری ورودی که گرفتم بزارم تو کد


Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
OpenFileDialog1.ShowDialog()
TextBox1.Text = OpenFileDialog1.FileName

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Shell("cmd.exe")

Dim WinShell
WinShell = CreateObject("Wscript.shell")
WinShell.SendKeys("attrib +s +h +r ")
WinShell.sendkeys("{Enter}")


End Sub
End Class




دومین خط از پایین آدرس فابل رو نمی دونم چه جوری بزارم تو کد

Veteran
جمعه 31 خرداد 1392, 19:00 عصر
اون دستوری که توی CMD میزنین جهت مخفی کردن فولدر رو مستقیم با دستور Shell اجرا کنین
shell "attrib "C:\Program Files" +h +s"
ادرس رو هم که از ورودی میگیرین بزارین توی کد بالا

agent4iranian.ir
جمعه 31 خرداد 1392, 19:06 عصر
اون دستوری که توی CMD میزنین جهت مخفی کردن فولدر رو مستقیم با دستور Shell اجرا کنین
shell "attrib "C:\Program Files" +h +s"
ادرس رو هم که از ورودی میگیرین بزارین توی کد بالا
می خوام کد یه جور باشه که کاربر فایل رو خودش انتخاب کنه بعد بازدن دکمه فایل انتخابشده مخفی شه

agent4iranian.ir
جمعه 31 خرداد 1392, 19:29 عصر
با کد shell نمی تونم بنویسم اگه می شه اون چیزی که من می خوام رو کدش رو بزارین

javaweb341
جمعه 31 خرداد 1392, 19:52 عصر
با سلام دوست عزیز
از کدی که قرار دادی معلومه که VB.NET است:چشمک:
کد زیرو امتحان کن
WinShell.SendKeys("attrib C:\Program Files +s +h +r ")
کد کامل
Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
OpenFileDialog1.ShowDialog()
TextBox1.Text = OpenFileDialog1.FileName

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Shell("cmd.exe")

Dim WinShell
WinShell = CreateObject("Wscript.shell")
WinShell.SendKeys("attrib C:\Program Files +s +h +r ")
WinShell.sendkeys("{Enter}")


End Sub
End Class
:چشمک:

m.4.r.m
جمعه 31 خرداد 1392, 19:55 عصر
shell "attrib" & Commondialog1.Filename & "+h +s"

javaweb341
جمعه 31 خرداد 1392, 19:57 عصر
می خوام کد یه جور باشه که کاربر فایل رو خودش انتخاب کنه بعد بازدن دکمه فایل انتخابشده مخفی شه
Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
OpenFileDialog1.ShowDialog()
TextBox1.Text = OpenFileDialog1.FileName

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Shell("cmd.exe")

Dim WinShell
WinShell = CreateObject("Wscript.shell")
WinShell.SendKeys("attrib " & TextBox1.Text &" +s +h +r ")
WinShell.sendkeys("{Enter}")


End Sub
End Class
:چشمک:

javaweb341
جمعه 31 خرداد 1392, 19:58 عصر
با سلام وتشکر:قلب:

shell "attrib" & Commondialog1.Filename & "+h +s"
دوستمون گفته :

با کد shell نمی تونم بنویسم اگه می شه اون چیزی که من می خوام رو کدش رو بزارین
با تشکر

agent4iranian.ir
جمعه 31 خرداد 1392, 20:14 عصر
دستور درسته اما کار نمی کونه موقع اجرا 7 پنجره cmd باز می شه و می نویسه پارامتر ها درست نیست

javaweb341
جمعه 31 خرداد 1392, 20:14 عصر
با سلام دوباره
توی vb6 یک راه دیگه برای مخفی ،سیستمی و فقط خواندنی کردن است و آن هم استفاده از کد زیر
SetAttr "آدرس فایل", vbHidden + vbSystem + vbReadOnly
مثلا :
SetAttr "C:\sadegh", vbHidden + vbSystem + vbReadOnly
و برای اینکه کاربر انتخواب کند
SetAttr Commondialog1.Filename, vbHidden + vbSystem + vbReadOnly
فکر کنم این راه بهتر باشه تا cmd
:چشمک:

javaweb341
جمعه 31 خرداد 1392, 20:18 عصر
با سلام

موقع اجرا 7 پنجره cmd باز می شه
برای اینکه پنجره باز نشه باید از vbHide در جلو ی shell استفاده کنی مانند زیر
Shell("cmd.exe"),vbHide

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

با سلام دوباره
توی vb6 یک راه دیگه برای مخفی ،سیستمی و فقط خواندنی کردن است و آن هم استفاده از کد زیر
SetAttr "آدرس فایل", vbHidden + vbSystem + vbReadOnly
مثلا :
SetAttr "C:\sadegh", vbHidden + vbSystem + vbReadOnly
و برای اینکه کاربر انتخواب کند
SetAttr Commondialog1.Filename, vbHidden + vbSystem + vbReadOnly
فکر کنم این راه بهتر باشه تا cmd
:چشمک:

agent4iranian.ir
جمعه 31 خرداد 1392, 20:29 عصر
با سلام

برای اینکه پنجره باز نشه باید از vbHide در جلو ی shell استفاده کنی مانند زیر
Shell("cmd.exe"),vbHide

از این استفاده کن


ارور داره

'Commondialog1' is not declared. It may be inaccessible due to its protection level.



اگه می شه دوست عزیز این برنامه رو خودت با vb.net بنویس وقتم 3 ساعت به خاطر این برنامه کوچیک تلف شده

javaweb341
جمعه 31 خرداد 1392, 20:39 عصر
ارور داره

'Commondialog1' is not declared. It may be inaccessible due to its protection level.

برای پنهان کردن در VB.NET از کد زیر
Shell("cmd.exe", vbHide)
____________________________________________
در ضمن به جای OpenFileDialog از FolderBrowserDialog استفاده کن
مثل زیر
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
FolderBrowserDialog1.ShowDialog()
TextBox1.Text = FolderBrowserDialog1.SelectedPath
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Shell("cmd.exe", vbHide)

Dim WinShell
WinShell = CreateObject("Wscript.shell")
WinShell.SendKeys("attrib " & TextBox1.Text & " +s +h +r ")
WinShell.sendkeys("{Enter}")

End Sub
تست کن خبری بده:چشمک:

javaweb341
جمعه 31 خرداد 1392, 20:43 عصر
با سلام دوباره:چشمک:
بیا دوست عزیز دگه نیازی به cmd و مشکلاتش نیست از کد زیر استفاده کن
کل کد:
Public Class Form2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
FolderBrowserDialog1.ShowDialog()
TextBox1.Text = FolderBrowserDialog1.SelectedPath
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SetAttr(FolderBrowserDialog1.SelectedPath, vbHidden + vbSystem + vbReadOnly)
End Sub
End Class
تست شد:چشمک:

javaweb341
جمعه 31 خرداد 1392, 20:46 عصر
یه نکته اگر می خواهی که یک فولدر مخفی کنی از FolderBrowserDialogاستفاده کن ولی اگر می خواهی یک فایل از OpenFileDialogاستفاده کن
(VB.NET):چشمک:

agent4iranian.ir
جمعه 31 خرداد 1392, 20:54 عصر
کار نکرد هیچ فولدری هم هیدن نشد

javaweb341
شنبه 01 تیر 1392, 07:14 صبح
کار نکرد هیچ فولدری هم هیدن نشد
از کد زیر استفاده کردی؟من این کد رو بارها تست کردم و به درستی کار کرد یک باره دیگه امتحان کن.از کنترل FolderBrowserDialog استفاده کردی؟

Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
FolderBrowserDialog1.ShowDialog()
TextBox1.Text = FolderBrowserDialog1.SelectedPath
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SetAttr(FolderBrowserDialog1.SelectedPath, vbHidden + vbSystem + vbReadOnly)
End Sub
End Class


برای من درست بود:چشمک:

javaweb341
شنبه 01 تیر 1392, 07:27 صبح
چند نکته در مورد CMD :
نکته 1 :
با سلام دوستان شما در CMD اگر در اسم فولدرتو فصله باشه مثلا "New Folder" این فاصله باعث می شود که عملیات انجام نشود و فولدر را پنهان نکند مثلا اگر از کد زیر استفاده می کنیم
Shell "attrib G:\New folders +h +s"
این کد عمل نمی کند،برای رفع این مشکل یک کارکتر قبل از فاصله قرار می دادیم که یادم نیست چی بود:متفکر:
نکته 2 :
اگر از SendKeys استفاده می کنید در قوانین این دستور "+" به معنی دکمه ی SHIFT است پس برای فرستادن کلمه ی "+s" باید چه کرد؟ باید "+" را درون "{}" قرار دادن که می شود "s{+}" مثلا
WinShell.SendKeys("attrib " & TextBox1.Text & " {+}s {+}h {+}r ")
_____________
حال فقط مشکل با اون فاصله ی بین نام فولدر است.اگر می خواهید از CMD اگر می خواهید از CMD استفاده نمایید ولی به نظر من از SetAttr استفاده کن بهتره.:چشمک:

agent4iranian.ir
شنبه 01 تیر 1392, 09:30 صبح
از کد زیر استفاده کردی؟من این کد رو بارها تست کردم و به درستی کار کرد یک باره دیگه امتحان کن.از کنترل FolderBrowserDialog استفاده کردی؟

Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
FolderBrowserDialog1.ShowDialog()
TextBox1.Text = FolderBrowserDialog1.SelectedPath
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SetAttr(FolderBrowserDialog1.SelectedPath, vbHidden + vbSystem + vbReadOnly)
End Sub
End Class


برای من درست بود:چشمک:



درست کار کرد ممنون

حالا که فایل هیدن شده چه جوری باید فایل رو با این نرم افزار بر گردونیم

javaweb341
شنبه 01 تیر 1392, 10:25 صبح
با سلام
با کد زیر شما می توانید به حالت اول برگردانید
SetAttr(FolderBrowserDialog1.SelectedPath, vbNormal)
کد کامل
Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
FolderBrowserDialog1.ShowDialog()
TextBox1.Text = FolderBrowserDialog1.SelectedPath
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
SetAttr(FolderBrowserDialog1.SelectedPath, vbNormal)
End Sub
End Class

:چشمک:

mehran901
شنبه 01 تیر 1392, 10:52 صبح
البته راه های دیگه ای هم وجود داره که میتونه با بهره گیری از Fso کار حرفه ای تری رو به نمایش بگذاره

Private Sub Form_Load()
Dim FileSys, FolderPath
Set FileSys = CreateObject("Scripting.FileSystemObject")
Set FolderPath = FileSys.GetFolder("D:\test")
FolderPath.Attributes = -1
End Sub

agent4iranian.ir
شنبه 01 تیر 1392, 15:28 عصر
البته راه های دیگه ای هم وجود داره که میتونه با بهره گیری از Fso کار حرفه ای تری رو به نمایش بگذاره

Private Sub Form_Load()
Dim FileSys, FolderPath
Set FileSys = CreateObject("Scripting.FileSystemObject")
Set FolderPath = FileSys.GetFolder("D:\test")
FolderPath.Attributes = -1
End Sub


می شه درباره کدی که نوشتی توضیح بدی و بگی fso چیه

mehran901
شنبه 01 تیر 1392, 19:09 عصر
می شه درباره کدی که نوشتی توضیح بدی و بگی fso چیه
آره میشه ،
خب متغیر های fso برگرفته از FileSystemObject هستن و توسط فایل scrrun.dll موجود در سیستم 32 در دسترس هستن ، دراصل من از ویژگی های قدرتمند Fso واسه هاید کردن اون پوشه استفاده کردم در ابتدا ی شی از کلاسش ساختم و در نهایت فولدر بهش معرفی و توسط مقدار ثابت -1 که ویژگی هاید رو در برمیگیره ، این ویژگی رو بهش نسبت دادم

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