امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
اصلاح کدهای (تعیین مشخصات سخت افزاری)جهت اجرا درویندوز7
نویسنده پیام
kamkam1 آفلاین
تازه وارد

ارسال‌ها: 3
موضوع‌ها: 1
تاریخ عضویت: آذر ۱۳۸۹

تشکرها : 2
( 0 تشکر در 0 ارسال )
ارسال: #1
اصلاح کدهای (تعیین مشخصات سخت افزاری)جهت اجرا درویندوز7
سلام
دوستان این کدهای(تعیین مشخصات سخت افزاری)را ازهمین سایت دانلودکردم در ویندوز XP کار میکنه ولی در ویندوز7 متاسفانه کارنمیکنه هر کاری هم کردم نتیجه نداد بی زحمت اگر امکان اصلاح وجود داره منتظرلطف شما هستم.
کدهای زیر مربوط به ماژل است :
کد:
'
' The contents of this file are subject to the Mozilla Public License Version
' 1.1 (the "License"); you may not use this file except in compliance with
' the License. You may obtain a copy of the License at
' http://www.mozilla.org/MPL/
'
' Software distributed under the License is distributed on an "AS IS" basis,
' WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
' for the specific language governing rights and limitations under the
' License.
'
' The Original Code is Get HDD info for Visual basic
'
' The Initial Developer of the Original Code is
' F0ruD - FzerorubigD@CyberRabbits.net.
' Portions created by the Initial Developer are Copyright (C) 2004
' the Initial Developer. All Rights Reserved.
'
' Contributor (s):
'
' ***** END LICENSE BLOCK ***** *)
'
Option Explicit
Option Base 0


Type IDERegs
bFeaturesReg As Byte '// Used for specifying SMART "commands".
bSectorCountReg As Byte '// IDE sector count register
bSectorNumberReg As Byte '// IDE sector number register
bCylLowReg As Byte '// IDE low order cylinder value
bCylHighReg As Byte '// IDE high order cylinder value
bDriveHeadReg As Byte '// IDE drive/head register
bCommandReg As Byte '// Actual IDE command.
bReserved As Byte '// reserved for future use. Must be zero.
End Type

Type SendCmdInParams
'Buffer size in bytes
cBufferSize As Long
'// Structure with drive register values.
irDriveRegs As IDERegs
'// Physical drive number to send command to (0,1,2,3).
bDriveNumbera As Byte
bReserved(2) As Byte
dwReserved(3) As Long
bBuffer As Byte '// Input buffer.
End Type
Type IdSector
wGenConfig As Integer
wNumCyls As Integer

wReserved As Integer
wNumHeads As Integer
wBytesPerTrack As Integer
wBytesPerSector As Integer
wSectorsPerTrack As Integer
wVendorUnique(2) As Integer
sSerialNumber(19) As Byte
wBufferType As Integer
wBufferSize As Integer
wECCSize As Integer
sFirmwareRev(7) As Byte
sModelNumber(39) As Byte
wMoreVendorUnique As Integer
wDoubleWordIO As Integer
wCapabilities As Integer
wReserved1 As Integer
wPIOTiming As Integer
wDMATiming As Integer
wBS As Integer
wNumCurrentCyls As Integer
wNumCurrentHeads As Integer
wNumCurrentSectorsPerTrack As Integer
ulCurrentSectorCapacity As Long
wMultSectorStuff As Integer
ulTotalAddressableSectors As Long
wSingleWordDMA As Integer
wMultiWordDMA As Integer
bReserved(127) As Byte
End Type
'PIdSector = ^TIdSector;
Type DriverStatus
'// Error code from driver, or 0 if no error.
bDriverError As Byte
'// Contents of IDE Error register.
'// Only valid when bDriverError is SMART_IDE_ERROR.
bIDEStatus As Byte
bReserved(1) As Byte
dwReserved(1) As Long
End Type
Type SendCmdOutParams
'// Size of bBuffer in bytes
cBufferSize As Long
'// Driver status structure.
DriverStatus As DriverStatus
'// Buffer of arbitrary length in which to store the data read from the drive.
bBuffer As Byte
End Type

Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128 ' Maintenance string for PSS usage
End Type
Public Type HDDResult
Model As String
Revision As String
Serial As String
End Type
Private Const IDENTIFY_BUFFER_SIZE = 512
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const FILE_SHARE_READ = &H1
Private Const FILE_SHARE_WRITE = &H2
Private Const OPEN_EXISTING = 3
Private Const CREATE_NEW = 1
'Public consts
Public Const VER_PLATFORM_WIN32_WINDOWS = 1
Public Const LOGON32_LOGON_INTERACTIVE = 2
Public Const LOGON32_PROVIDER_DEFAULT = 0

Private Declare Function DeviceIoControl Lib "kernel32" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As SendCmdInParams, ByVal nInBufferSize As Long, ByRef lpOutBuffer As Byte, ByVal nOutBufferSize As Long, lpBytesReturned As Long, ByVal lpOverlapped As Long) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Long
Private Declare Function GetLastError Lib "kernel32" () As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As IdSector, ByRef Source As Byte, ByVal Length As Long)
'Public functions
Public Declare Function LogonUser Lib "advapi32" Alias "LogonUserA" (ByVal lpszUsername As String, ByVal lpszDomain As String, ByVal lpszPassword As String, ByVal dwLogonType As Long, ByVal dwLogonProvider As Long, phToken As Long) As Long
Public Declare Function ImpersonateLoggedOnUser Lib "advapi32" (ByVal hToken As Long) As Long
Public Declare Function RevertToSelf Lib "advapi32.dll" () As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Public Function WindowsVersion() As Long
Dim myOS As OSVERSIONINFO
myOS.dwOSVersionInfoSize = Len(myOS) 'should be 148
GetVersionEx myOS
'Fill user type with pertinent info
WindowsVersion = myOS.dwPlatformId
End Function
Function ChangeByteOrder(B() As Byte, L As Integer) As String
Dim I As Integer
ChangeByteOrder = ""
For I = 0 To L Step 2
ChangeByteOrder = ChangeByteOrder + Chr(B(I + 1)) + Chr(B(I))
Next I
End Function

Function GetHDDSerial() As HDDResult
Dim t As Long
Dim hDevice As Long, cbBytesReturned As Long, SCIP As SendCmdInParams, aIdOutCmd((20 + IDENTIFY_BUFFER_SIZE - 1) - 1) As Byte 'LenB(SendCmdOutParams)=20

Dim IdOutCmd As IdSector 'absolute aIdOutCmd;
t = (20 + IDENTIFY_BUFFER_SIZE - 1) - 1
If WindowsVersion <> VER_PLATFORM_WIN32_WINDOWS Then
hDevice = CreateFile("\\.\PhysicalDrive0", GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0)
Else
hDevice = CreateFile("\\.\SMARTVSD", 0, 0, 0, CREATE_NEW, 0, 0)
End If

If hDevice = -1 Then Exit Function
cbBytesReturned = 0
' Set up data structures for IDENTIFY command.
With SCIP
.cBufferSize = IDENTIFY_BUFFER_SIZE
With .irDriveRegs
.bSectorCountReg = 1
.bSectorNumberReg = 1
.bDriveHeadReg = &HA0
.bCommandReg = &HEC
End With
End With

'Call device IO control.
If DeviceIoControl(hDevice, &H7C088, SCIP, Len(SCIP), aIdOutCmd(0), t - 1, cbBytesReturned, 0) = 0 Then Exit Function

'Copy buffer to destinition
CopyMemory IdOutCmd, aIdOutCmd(16), LenB(IdOutCmd)
GetHDDSerial.Model = Trim(ChangeByteOrder(IdOutCmd.sModelNumber, 39))
GetHDDSerial.Revision = Trim(ChangeByteOrder(IdOutCmd.sFirmwareRev, 7))
GetHDDSerial.Serial = Trim(ChangeByteOrder(IdOutCmd.sSerialNumber, 19))

CloseHandle hDevice

End Function

و این کد ها هم مربوط به فرم :

کد:
Private Sub Command1_Click()
Dim tmp As HDDResult
tmp = GetHDDSerial
Text1.Text = tmp.Serial
Text2.Text = tmp.Model
Text3.Text = tmp.Revision
End Sub

باتشکر دوستان منتظرم
۲۹-آذر-۱۳۸۹, ۱۶:۵۸:۵۸
ارسال‌ها
پاسخ
CRazYFULL غایب
مدیر بازنشسته
*****

ارسال‌ها: 792
موضوع‌ها: 27
تاریخ عضویت: تير ۱۳۸۵

تشکرها : 1546
( 2836 تشکر در 593 ارسال )
ارسال: #2
RE: اصلاح کدهای (تعیین مشخصات سخت افزاری)جهت اجرا درویندوز7
باید به برنامه اجازه دسترسی بدید (Run as admin)
۲۹-آذر-۱۳۸۹, ۲۲:۳۲:۲۹
ارسال‌ها
پاسخ
تشکر شده توسط : kamkam1
kamkam1 آفلاین
تازه وارد

ارسال‌ها: 3
موضوع‌ها: 1
تاریخ عضویت: آذر ۱۳۸۹

تشکرها : 2
( 0 تشکر در 0 ارسال )
ارسال: #3
RE: اصلاح کدهای (تعیین مشخصات سخت افزاری)جهت اجرا درویندوز7
سلام

باتشکر از پاسخ شما
دوست عزیز از account administrator درویندوز7 استفاده می کنم که جواب نمی ده.
۳۰-آذر-۱۳۸۹, ۰۱:۲۸:۳۰
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #4
RE: اصلاح کدهای (تعیین مشخصات سخت افزاری)جهت اجرا درویندوز7
براي اجراي فايل EXE‌ برنامه، روي اون كليك كرده و گزينه Run as admin رو انتخاب كنيد تا برنامه به درستي اجرا بشه.

۳۰-آذر-۱۳۸۹, ۰۸:۳۸:۲۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : kamkam1
kamkam1 آفلاین
تازه وارد

ارسال‌ها: 3
موضوع‌ها: 1
تاریخ عضویت: آذر ۱۳۸۹

تشکرها : 2
( 0 تشکر در 0 ارسال )
ارسال: #5
RE: اصلاح کدهای (تعیین مشخصات سخت افزاری)جهت اجرا درویندوز7
با تشکر از پاسخگویی شما :
مشکلم حل شد حیفم آمد که با یک دکمه تشکرقناعت کنم
۳۰-آذر-۱۳۸۹, ۲۱:۱۴:۱۵
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  بستن برنامه اکسل در حال اجرا aleas 1 1,064 ۲۳-شهریور-۱۳۹۸, ۱۷:۲۴:۱۱
آخرین ارسال: Di Di
  جلو گیری از اجرا فیلم aleas 3 4,380 ۲۰-بهمن-۱۳۹۶, ۱۹:۰۶:۱۴
آخرین ارسال: aleas
  اجرا نشدن keybd_event vbKeyMenu در ویندوز 8.1 javad917 3 2,627 ۱۳-آذر-۱۳۹۶, ۲۱:۲۰:۲۸
آخرین ارسال: javad917
  ارسال پارامتر به برنامه ی در حال اجرا. Blossom 42 27,149 ۰۹-اسفند-۱۳۹۳, ۲۲:۴۴:۱۶
آخرین ارسال: 9988
  [سوال] مقایسه سرعت متدهای آماده vba با کدهای دستنویس eppagh 1 2,176 ۱۰-دى-۱۳۹۳, ۱۳:۱۶:۱۶
آخرین ارسال: babyy
  [سوال] اجرا نشدن دستورات هندل کردن خطا در محیط IDE وی بی flush 6 6,016 ۰۵-اسفند-۱۳۹۱, ۲۱:۴۹:۳۵
آخرین ارسال: Payman62
  چگونه يه تايمر را روي فرم قرار دهيم و مدت اجرا آن را به يك ساعت تغيير دهيم! rap0661 10 11,357 ۱۱-خرداد-۱۳۹۱, ۱۹:۵۶:۵۸
آخرین ارسال: Ghoghnus
  بدست آوردن مشخصات سیستم های شبکه با WMI sahand87 0 3,072 ۲۵-اسفند-۱۳۹۰, ۱۱:۴۷:۵۵
آخرین ارسال: sahand87
  كمك براي اجرا شدن برنامه فقط براي يك بار Mr.pRoGraMmer 15 15,373 ۰۴-شهریور-۱۳۹۰, ۰۳:۴۴:۴۸
آخرین ارسال: joker
  [سوال] اجرا و بررسی دستورات SQL در ADODB one hacker alone 2 3,205 ۱۶-مرداد-۱۳۹۰, ۱۰:۳۶:۱۵
آخرین ارسال: one hacker

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS