سلام به همه دوستان بعد هم متشکرم از اقایی Ghoghnus واسه کمکهایی که به بچه ها میکنن.
از اونجایی که انجمن ایرانویچ پر فعالیت ترین انجمن در زمینه برنامه نویسی میشه گفت در ایران هست مجبور میشم هر سوالی برام پیش میاد رو مطرح کنم و از بقیه کمک بگیرم.
دو تا سوال:
فکر کنید به برنامه قابل حمل درون فلش دارید و برای ورود رمز میخواد سوالی که پیش میاد اینه که اگه همون برنامه رو داخل یه فلش دیگه کپی کنیم ایا پسورد ذخیره شده درون متغیر در تغییر میکنه لطفا درمورد حافظه ها مربوطه توضیح بدید مخصوصن فلشها؟
سوال دوم عملکرد قفلهای سخت افزاری چجوریه چطور شماره سریالشو گیر میاره
لطفا درمورد این موضوع هم توضیح بدید؟
(۲۶-شهریور-۱۳۹۲, ۲۳:۱۷:۲۴)policweb نوشته است: [ -> ]سلام به همه دوستان بعد هم متشکرم از اقایی Ghoghnus واسه کمکهایی که به بچه ها میکنن.
از اونجایی که انجمن ایرانویچ پر فعالیت ترین انجمن در زمینه برنامه نویسی میشه گفت در ایران هست مجبور میشم هر سوالی برام پیش میاد رو مطرح کنم و از بقیه کمک بگیرم.
دو تا سوال:
فکر کنید به برنامه قابل حمل درون فلش دارید و برای ورود رمز میخواد سوالی که پیش میاد اینه که اگه همون برنامه رو داخل یه فلش دیگه کپی کنیم ایا پسورد ذخیره شده درون متغیر در تغییر میکنه لطفا درمورد حافظه ها مربوطه توضیح بدید مخصوصن فلشها؟
سوال دوم عملکرد قفلهای سخت افزاری چجوریه چطور شماره سریالشو گیر میاره
لطفا درمورد این موضوع هم توضیح بدید؟
سلام
خواهش میکنم!
اگر پسورد توی فایل مجزا ذخیره بشه این خیلی طبعی هست که بعد از کپی شدن(البته کپی کردن به صورت معمولی نه خود برنامه)نیاز هست که فایل حاوی پسورد هم کپی و منتقل به محل جدید بشه!
قفل ها شماره سریال قطعه را بدست میارن و تنظیم میشن که فقط اگر شماره سریال مثل هم بود اجرا بشه!
قبلا درموردش بحث شده در همین فروم!
سوال اولی اگه پسورد داخل فایل مجزا نباشه و درون حافظه یه متغیر باشه با انتقال سرجاشه یا نه
سوال دومی اگه میشه لینکشو بزارید چون موضوعشو نمیدونم و سرچ میزنم 7 صفحه برام میاره
راستی من داخل نت گشتم برای پیدا کردن سریال فلشها فقط برنامه های رو اورد برای نشون دادن و ذخیره شدن شماره سریال درون ریجستری که هیچکدومشون بدرد نخورد
(۲۷-شهریور-۱۳۹۲, ۰۰:۴۲:۳۷)policweb نوشته است: [ -> ]سوال اولی اگه پسورد داخل فایل مجزا نباشه و درون حافظه یه متغیر باشه با انتقال سرجاشه یا نه
سوال دومی اگه میشه لینکشو بزارید چون موضوعشو نمیدونم و سرچ میزنم 7 صفحه برام میاره
راستی من داخل نت گشتم برای پیدا کردن سریال فلشها فقط برنامه های رو اورد برای نشون دادن و ذخیره شدن شماره سریال درون ریجستری که هیچکدومشون بدرد نخورد
سوال اول را متوجه نشدم!
دومی هم
HDD serial number is retrieved by using an API.
کد:
'Example by Alexey (alexeyka2001@rambler.ru)
Private Const DRIVE_UNKNOWN = 0
Private Const DRIVE_ABSENT = 1
Private Const DRIVE_REMOVABLE = 2
Private Const DRIVE_FIXED = 3
Private Const DRIVE_REMOTE = 4
Private Const DRIVE_CDROM = 5
Private Const DRIVE_RAMDISK = 6
' returns errors for UNC Path
Private Const ERROR_BAD_DEVICE = 1200&
Private Const ERROR_CONNECTION_UNAVAIL = 1201&
Private Const ERROR_EXTENDED_ERROR = 1208&
Private Const ERROR_MORE_DATA = 234
Private Const ERROR_NOT_SUPPORTED = 50&
Private Const ERROR_NO_NET_OR_BAD_PATH = 1203&
Private Const ERROR_NO_NETWORK = 1222&
Private Const ERROR_NOT_CONNECTED = 2250&
Private Const NO_ERROR = 0
Private Declare Function WNetGetConnection Lib "mpr.dll" Alias _
"WNetGetConnectionA" (ByVal lpszLocalName As String, _
ByVal lpszRemoteName As String, cbRemoteName As Long) As Long
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias _
"GetLogicalDriveStringsA" (ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" _
(ByVal nDrive As String) As Long
Private Function fGetDrives() As String
'Returns all mapped drives
Dim lngRet As Long
Dim strDrives As String * 255
Dim lngTmp As Long
lngTmp = Len(strDrives)
lngRet = GetLogicalDriveStrings(lngTmp, strDrives)
fGetDrives = Left(strDrives, lngRet)
End Function
Private Function fGetUNCPath(strDriveLetter As String) As String
On Local Error GoTo fGetUNCPath_Err
Dim Msg As String, lngReturn As Long
Dim lpszLocalName As String
Dim lpszRemoteName As String
Dim cbRemoteName As Long
lpszLocalName = strDriveLetter
lpszRemoteName = String$(255, Chr$(32))
cbRemoteName = Len(lpszRemoteName)
lngReturn = WNetGetConnection(lpszLocalName, lpszRemoteName, _
cbRemoteName)
Select Case lngReturn
Case ERROR_BAD_DEVICE
Msg = "Error: Bad Device"
Case ERROR_CONNECTION_UNAVAIL
Msg = "Error: Connection Un-Available"
Case ERROR_EXTENDED_ERROR
Msg = "Error: Extended Error"
Case ERROR_MORE_DATA
Msg = "Error: More Data"
Case ERROR_NOT_SUPPORTED
Msg = "Error: Feature not Supported"
Case ERROR_NO_NET_OR_BAD_PATH
Msg = "Error: No Network Available or Bad Path"
Case ERROR_NO_NETWORK
Msg = "Error: No Network Available"
Case ERROR_NOT_CONNECTED
Msg = "Error: Not Connected"
Case NO_ERROR
' all is successful...
End Select
If Len(Msg) Then
MsgBox Msg, vbInformation
Else
fGetUNCPath = Left$(lpszRemoteName, cbRemoteName)
End If
fGetUNCPath_End:
Exit Function
fGetUNCPath_Err:
MsgBox Err.Description, vbInformation
Resume fGetUNCPath_End
End Function
Private Function fDriveType(strDriveName As String) As String
Dim lngRet As Long
Dim strDrive As String
lngRet = GetDriveType(strDriveName)
Select Case lngRet
Case DRIVE_UNKNOWN 'The drive type cannot be determined.
strDrive = "Unknown Drive Type"
Case DRIVE_ABSENT 'The root directory does not exist.
strDrive = "Drive does not exist"
Case DRIVE_REMOVABLE 'The drive can be removed from the drive.
strDrive = "Removable Media"
Case DRIVE_FIXED 'The disk cannot be removed from the drive.
strDrive = "Fixed Drive"
Case DRIVE_REMOTE 'The drive is a remote (network) drive.
strDrive = "Network Drive"
Case DRIVE_CDROM 'The drive is a CD-ROM drive.
strDrive = "CD Rom"
Case DRIVE_RAMDISK 'The drive is a RAM disk.
strDrive = "Ram Disk"
End Select
fDriveType = strDrive
End Function
Sub sListAllDrives()
Dim strAllDrives As String
Dim strTmp As String
strAllDrives = fGetDrives
If strAllDrives <> "" Then
Do
strTmp = Mid$(strAllDrives, 1, InStr(strAllDrives, vbNullChar) - 1)
strAllDrives = Mid$(strAllDrives, InStr(strAllDrives, vbNullChar) + 1)
Select Case fDriveType(strTmp)
Case "Removable Media":
Debug.Print "Removable drive : " & strTmp
Case "CD Rom":
Debug.Print " CD Rom drive : " & strTmp
Case "Fixed Drive":
Debug.Print " Local drive : " & strTmp
Case "Network Drive":
Debug.Print " Network drive : " & strTmp
Debug.Print " UNC Path : " & _
fGetUNCPath(Left$(strTmp, Len(strTmp) - 1))
End Select
Loop While strAllDrives <> ""
End If
End Sub
Private Sub Form_Load()
Debug.Print "All available drives: "
sListAllDrives
End Sub
اینم هست
http://www.codeproject.com/Articles/6360...n-with-WMI
یه مثال میزنم:فرض کنید یه نرم افزاری رو کامپیوتر نصب میکنیم و در اولین اجرا ازمون میخواد یه فرمی رو پر کنیم که شامل نام کاری-پسورد و...میشه ولی در اجرای دومی فقط پسورد رو برای ورود میگیره حال بخوای همچین برنامه بصورت پرتابل نوشته بشه به نظرتون چه شکلی میشه حالا فکر کنید همین پرتابل رو بخواید کپی کنید داخل یه فلش دیگه و اجراش کنید و اون ازمون چی میخواد ایا میخواد فرم پر کنیم یا فقط پسورد رو میخواد؟
شاید مسخره بنظر برسه ولی این یه ایده که به سرم زده نمیدونم شدنیه یا نه
(۲۷-شهریور-۱۳۹۲, ۰۱:۱۵:۴۵)policweb نوشته است: [ -> ]یه مثال میزنم:فرض کنید یه نرم افزاری رو کامپیوتر نصب میکنیم و در اولین اجرا ازمون میخواد یه فرمی رو پر کنیم که شامل نام کاری-پسورد و...میشه ولی در اجرای دومی فقط پسورد رو برای ورود میگیره حال بخوای همچین برنامه بصورت پرتابل نوشته بشه به نظرتون چه شکلی میشه حالا فکر کنید همین پرتابل رو بخواید کپی کنید داخل یه فلش دیگه و اجراش کنید و اون ازمون چی میخواد ایا میخواد فرم پر کنیم یا فقط پسورد رو میخواد؟
شاید مسخره بنظر برسه ولی این یه ایده که به سرم زده نمیدونم شدنیه یا نه
این طور برنامه ها میان اطلاعا را یا در یک فایل کنار خودشون یا در پوشه ویندوز یا در ریجستری ذخیره میکنند!دفعات بعد برسی میشه که ایا قبلا ثبت شده یا نه!
خودت ویژال بیسیک شش یه نمونه ساده داره اگر اشتباه نکنم زمان ایجاد فایل جدید باید about ؤا انتخاب کنید!
بخدا شرمنده هی سوال میپرسم من جاهای دیگم سرچ میکنم اما یا ناقصه یا اینگلیسی بازم معذرت
جواب سوال یکم رو گرفتم
کد:
'Example by Alexey (alexeyka2001@rambler.ru)
Private Const DRIVE_UNKNOWN = 0
Private Const DRIVE_ABSENT = 1
Private Const DRIVE_REMOVABLE = 2
Private Const DRIVE_FIXED = 3
Private Const DRIVE_REMOTE = 4
Private Const DRIVE_CDROM = 5
Private Const DRIVE_RAMDISK = 6
' returns errors for UNC Path
Private Const ERROR_BAD_DEVICE = 1200&
Private Const ERROR_CONNECTION_UNAVAIL = 1201&
Private Const ERROR_EXTENDED_ERROR = 1208&
Private Const ERROR_MORE_DATA = 234
Private Const ERROR_NOT_SUPPORTED = 50&
Private Const ERROR_NO_NET_OR_BAD_PATH = 1203&
Private Const ERROR_NO_NETWORK = 1222&
Private Const ERROR_NOT_CONNECTED = 2250&
Private Const NO_ERROR = 0
Private Declare Function WNetGetConnection Lib "mpr.dll" Alias _
"WNetGetConnectionA" (ByVal lpszLocalName As String, _
ByVal lpszRemoteName As String, cbRemoteName As Long) As Long
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias _
"GetLogicalDriveStringsA" (ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" _
(ByVal nDrive As String) As Long
Private Function fGetDrives() As String
'Returns all mapped drives
Dim lngRet As Long
Dim strDrives As String * 255
Dim lngTmp As Long
lngTmp = Len(strDrives)
lngRet = GetLogicalDriveStrings(lngTmp, strDrives)
fGetDrives = Left(strDrives, lngRet)
End Function
Private Function fGetUNCPath(strDriveLetter As String) As String
On Local Error GoTo fGetUNCPath_Err
Dim Msg As String, lngReturn As Long
Dim lpszLocalName As String
Dim lpszRemoteName As String
Dim cbRemoteName As Long
lpszLocalName = strDriveLetter
lpszRemoteName = String$(255, Chr$(32))
cbRemoteName = Len(lpszRemoteName)
lngReturn = WNetGetConnection(lpszLocalName, lpszRemoteName, _
cbRemoteName)
Select Case lngReturn
Case ERROR_BAD_DEVICE
Msg = "Error: Bad Device"
Case ERROR_CONNECTION_UNAVAIL
Msg = "Error: Connection Un-Available"
Case ERROR_EXTENDED_ERROR
Msg = "Error: Extended Error"
Case ERROR_MORE_DATA
Msg = "Error: More Data"
Case ERROR_NOT_SUPPORTED
Msg = "Error: Feature not Supported"
Case ERROR_NO_NET_OR_BAD_PATH
Msg = "Error: No Network Available or Bad Path"
Case ERROR_NO_NETWORK
Msg = "Error: No Network Available"
Case ERROR_NOT_CONNECTED
Msg = "Error: Not Connected"
Case NO_ERROR
' all is successful...
End Select
If Len(Msg) Then
MsgBox Msg, vbInformation
Else
fGetUNCPath = Left$(lpszRemoteName, cbRemoteName)
End If
fGetUNCPath_End:
Exit Function
fGetUNCPath_Err:
MsgBox Err.Description, vbInformation
Resume fGetUNCPath_End
End Function
Private Function fDriveType(strDriveName As String) As String
Dim lngRet As Long
Dim strDrive As String
lngRet = GetDriveType(strDriveName)
Select Case lngRet
Case DRIVE_UNKNOWN 'The drive type cannot be determined.
strDrive = "Unknown Drive Type"
Case DRIVE_ABSENT 'The root directory does not exist.
strDrive = "Drive does not exist"
Case DRIVE_REMOVABLE 'The drive can be removed from the drive.
strDrive = "Removable Media"
Case DRIVE_FIXED 'The disk cannot be removed from the drive.
strDrive = "Fixed Drive"
Case DRIVE_REMOTE 'The drive is a remote (network) drive.
strDrive = "Network Drive"
Case DRIVE_CDROM 'The drive is a CD-ROM drive.
strDrive = "CD Rom"
Case DRIVE_RAMDISK 'The drive is a RAM disk.
strDrive = "Ram Disk"
End Select
fDriveType = strDrive
End Function
Sub sListAllDrives()
Dim strAllDrives As String
Dim strTmp As String
strAllDrives = fGetDrives
If strAllDrives <> "" Then
Do
strTmp = Mid$(strAllDrives, 1, InStr(strAllDrives, vbNullChar) - 1)
strAllDrives = Mid$(strAllDrives, InStr(strAllDrives, vbNullChar) + 1)
Select Case fDriveType(strTmp)
Case "Removable Media":
Debug.Print "Removable drive : " & strTmp
Case "CD Rom":
Debug.Print " CD Rom drive : " & strTmp
Case "Fixed Drive":
Debug.Print " Local drive : " & strTmp
Case "Network Drive":
Debug.Print " Network drive : " & strTmp
Debug.Print " UNC Path : " & _
fGetUNCPath(Left$(strTmp, Len(strTmp) - 1))
End Select
Loop While strAllDrives <> ""
End If
End Sub
Private Sub Form_Load()
Debug.Print "All available drives: "
sListAllDrives
End Sub
ایا این مربوط قفل سخت افزاری بود یا سریال سخت افزار؟و اینکه وقتی اجرا میکنم چیزی نشونم نمیده
شماره سریال سخت افزار را بهت برمیگردونه و.............
میدونم خستتون کردم منم جاتون بودم حوصلم سر میرفت با این سوالا هر وقت دوست داشتین جواب بدین.کارکاردن با این کد
و یا فایل کامپایل شدش
(۲۷-شهریور-۱۳۹۲, ۰۱:۴۳:۱۰)policweb نوشته است: [ -> ]میدونم خستتون کردم منم جاتون بودم حوصلم سر میرفت با این سوالا هر وقت دوست داشتین جواب بدین.کارکاردن با این کد
و یا فایل کامپایل شدش
با این تابع شماره سریال واستون برمیگرده!
فقط کافیه تابع را فراخانی کنید!
کد:
Sub ListProcessorProperties()
Dim objWMIService, colItems
Set objWMIService = GetObject("winmgmts:\\" & Environ("computername") & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor", , 48)
For Each objItem In colItems
MsgBox "ProcessorId: " & objItem.ProcessorId
Next
End Sub
البته فقط به شماره سریال هارد تنها اکتفا نکنید!
سلام نمیدونم چرا هیچی نشون نمیده از تابع های که میزارید.
کد:
Sub ListProcessorProperties()
Dim objWMIService, colItems
Set objWMIService = GetObject("winmgmts:\\" & Environ("computername") & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor", , 48)
For Each objItem In colItems
MsgBox "ProcessorId: " & objItem.ProcessorId
Next
End Sub
Private Sub Form_Load()
Text1.Text = ListProcessorProperties()
End Sub
واسه دیدن سریال fdrive چی؟
قصد من ساخت قفل سخت افزاریه باورتون نمیشه بگم همه جا سرزدم