اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

أداة تركيب الحماية من النسخ للبرامج المصنوعة بأكسس ( برقم الهارد الحقي


الردود الموصى بها

لراغبي الإبداع والتميز

 

أداة تركيب الحماية من النسخ للبرامج المصنوعة بأكسس ( برقم الهارد الحقيقي / رقم المعالج /رقم اللوحة الأم ) الإصدار الثاني.

برنامج القلعة لحماية برامج أكسس من النسخ الأول من نوعه في منتديات الأكسس

مبدئياً : هذه النوع من الأدوات ندر إنتاجها داخل منتدياتنا العربية والتي كان السبق في إنتاجها لأول مره داخل منتدى الأكسس لأخونا مهند عبادي وعلى أثره نحاول إنتاج أدوات لخدمة المبرمجين بصورة فعالة في القضايا الهامة والتي يكثر فيها الأسئلة مثل الحماية وقد سبق وأنتجت أداة لحل مشاكل التقارير ...
ولكن أنا أومن بأن لها ضرراً من ناحية أخرى على المبرمجين بجعلهم يتوقفون عن التفكير في حل المشاكل طالما أن حلولها جاهزة وميسرة وبالتالي يضيع عليهم ثبوتية العلم بمشقة طلبه ... لن أطيل عليكم
أخواني .....
كثرت الأسئلة و المواضيع الخاصة بحماية قواعد البيانات من النسخ وكثرت الرسائل على بريدي لمن يطلبون حماية برامجهم لذلك كان لا بد من صنع أداة تقوم بهذه المهمة بصورة آلية وحسب اختيارات ورغبات المبرمج و وفاءاً بوعدي سأضع الأداة بصورة غير محمية قابلة للنسخ ( وهي مجانية للاستخدام الشخصي وغير التجاري أما من يستخدمها بشكل تجاري أو يستفيد منها مادياً فيجب عليه سداد ثمنها وبذلك نكون حافظنا على جميع الحقوق وحتى لا يضيع مجهودي هباءاً ) .
قبل استخدام الأداة
1- قم بعمل نسخه احتياطية لبرنامجك
2- قم بإزالة جميع أنواع التامين من برنامجك
3- التركيب يجب أن يكون قبل تقسيم قاعدة البيانات في حالة البرامج المقسمة إلى واجهة وجداول .
3- وقف عمل مضاد الفيروسات الخاص بك قبل البدء ( ولا تخاف )
البرنامج لا يحتاج لأي مراجع إضافية وسيقوم بتركيب المراجع للقاعدة الهدف في حال احتياجها لها
البرنامج يركب الحماية من النسخ المدمجة مع مدة التشغيل كما يقوم بإنشاء كراك للبرنامج مع القاعدة الهدف كما ينشئ ملف نصي يوثق فيه كل ما تم عمله في برنامجك .
كما يصلح لبناء نسخ تجريبية
ما بعد حماية البرنامج
بعد حماية البرنامج وإعطائه للعميل وعند فتحه لأحد النماذج التي تم تركيب الحماية عليها ستظهر له شاشة ممانعه تمنعه من استخدام البرنامج قبل تسجيل نسخه شرعية ... يقوم العميل بالاتصال بك ويعطيك الرقم الظاهر أمامه على الشاشة ، فتقوم أنت بفتح الكراك الذي أنشأه برنامج القلعة في نفس مجلد البرنامج وتقوم بإدخال الرقم في الخانه المخصصة له ثم تختار مدة التشغيل التي ترغب بها أي المدة التي سيعمل خلالها البرنامج لدى العميل ثم يتوقف عن العمل طالباً فك الحماية مره أخرى ( طبعاً تستطيع فتح المده تماماً إذا كان العميل اشترى البرنامج وليس تحت التجربة ) وحسب المدة سينتج لك الكراك رقم تعطيه للعميل وبذلك تكون فتحت له النسخة مدة الاستخدام التي تراها مناسبة .
إلى أخواني المشرفين ( الرجاء تثبيت الموضع لمدة طويلة )



19.gif

تم وضع برنامج القلعة (( الإصدار الثاني ))
على نفس الرابط الأول
ومن مميزاته
انقسم البرنامج إلى ثلاث شعب
1- حماية برنامج
2- إزالة الحماية من برنامج
3- تصفير مدة الاستخدام لبرنامج
,,, تم وضع خيار جديد لتصدير أداة إخفاء إظهار الجداول المرتبطة والمضمنة والتي لا يمكن إظهارها بالخيارات العادية
""" تم اعتماد تسجيل المرجع DAO3.6 مع المراجع الأخرى ( لأنني كنت أظن سابقاً أن كل مبرمج يستخدمه بشكل أساسي )
يستطيع الإصدار الثاني معرفة هل تم حماية هذا البرنامج من قبل بهذه الأداة وبأي نوع من الحماية منعاً للأخطاء
"""""
تم تبني فكرة عداد التاريخ من تاريخ تركيب البرنامج وليس من تاريخ الاستخدام
ولذلك كان لا بد من وضع القسم الثالث وهو تصفير مدة الاستخدام وذلك حتى إذا قام المبرمج بتجربة البرنامج لديه قبل إعطائه للعميل سيتم تسجيل المدة التى قام بالتجربه فيها لذلك يجب علها تصفيرها قبل إعطائه للعميل .. إما إذا لم يقم بتجربة البرنامج فلا داعي ..

19.gif




 

حجم البرنامج 856 كيلو بايت

 

 

14ef11pu2.gif

 

تم تعديل الموضوع من قبل أخوكم في الله /بو يوسف الراشد وذلك نظراً لنزول الإصدار الثاني من البرنامج
وذلك بناءً على طلب أخونا المبدع / رضا عقيل كما تم وضع تعليقه على الإصدار الثاني

                                               19.gif

تم رفع البرنامج + الشرح + مثال 
حماية برامج الأكسس.rar

تم تعديل بواسطه أبا عمر
  • Like 2
رابط هذا التعليق
شارك

مرحباً بك استاذنا المبدع رضا عقيل :fff:

اتقدم لك بجزيل الشكر والتقدير على هذا المجهود الكبير وعلى هذه الهدية القيمة

بارك الله فيك ونفع بعلمك وجزاك الله خيراً على كل ما تقدمه في سبيل ابتغاء الاجر و نشر العلم

تم تثبيت الموضوع

تقبل فائق الاحترام والتقدير،،،

تلميذكم / Yousef

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله

كل الشكر والتقدير لأستاذنا رضا عقيل على هذا الابداع والتميز

تم تحميل المرفق وجاري تجربته

والشكر موصول لأخي يوسف على تثبيته لهذا الموضوع المتميز

  • Like 1
رابط هذا التعليق
شارك

السلام عليكم ورحمة الله

جزاك الله كل خير أخي رضا على هذا البرنامج المتقن

مزايا البرنامج :

1- امكانية اختيار نوع الجهاز المراد ربط الحماية به .

2- تقرير عن الخطوات التي تمت خلال تثبيت الحماية .

3- انشاء ملف (كراك) يحتفظ به المبرمج ينفع عند طلب الترخيص .

رابط هذا التعليق
شارك

سعدت لرؤية مشاركتك أخي العزيز رضا

و بالتأكيد ستكون مفيدة للجميع

و سأحرص بإذن الله على تصدر الموضوع لنشرة أوفيسنا بعد عدة أيام ، ليصل الى جميع الاعضاء

و جزاك الله خيرا

و لا تغيب عنا كثيرا :smile2:

رابط هذا التعليق
شارك

أخي بو يوسف

مع خالص التحية لهذا الاهتمام الواضح

الرجاء إضافة النص التالي للمشاركة الأولى لأنني لم أستطيع تحريرها

الملف الخاص بالإصدار الثاني اسمه (( RedaOkailPro2)) على نفس الرابط القديم فقط استبدل اسم الملف القديم بالجديد

وغير الصور لأن هناك الكثير جديد

والصراحة ألف شك لك لأنني لم أجد الوقت الكافي لشرح البرنامج بالصور

مع خالص التحية

ططططططططططططططططططططططططططططططططططط

تم وضع برنامج القلعة (( الإصدار الثاني ))

على نفس الرابط الأول

ومن مميزاته

انقسم البرنامج إلى ثلاث شعب

1- حماية برنامج

2- إزالة الحماية من برنامج

3- تصفير مدة الاستخدام لبرنامج

,,, تم وضع خيار جديد لتصدير أداة إخفاء إظهار الجداول المرتبطة والمضمنة والتي لا يمكن إظهارها بالخيارات العادية

""" تم اعتماد تسجيل المرجع DAO3.6 مع المراجع الأخرى ( لأنني كنت أظن سابقاً أن كل مبرمج يستخدمه بشكل أساسي )

يستطيع الإصدار الثاني معرفة هل تم حماية هذا البرنامج من قبل بهذه الأداة وبأي نوع من الحماية منعاً للأخطاء

"""""

تم تبني فكرة عداد التاريخ من تاريخ تركيب البرنامج وليس من تاريخ الاستخدام

ولذلك كان لا بد من وضع القسم الثالث وهو تصفير مدة الاستخدام وذلك حتى إذا قام المبرمج بتجربة البرنامج لديه قبل إعطائه للعميل سيتم تسجيل المدة التى قام بالتجربه فيها لذلك يجب علها تصفيرها قبل إعطائه للعميل .. إما إذا لم يقم بتجربة البرنامج فلا داعي ..

<><><><><><><><><><><><><><><><><><><><><><><><><><><><><

أخواني البرنامج بالكامل أصبح تحفة فنيه

""""""""""""""""""""""""""""""""""""

رابط هذا التعليق
شارك

الأخ الكريم/رضا عقيل

شكرا جزيلا على مجهودك فى استنتاج داة الحماية ثم وضعها فى شكل برنامج ثم تطويره . بارك الله لك فى جهدك و فكرك

و لقد تابعت موضوع الحماية برقم الهارد فى منتدى الفريق العربى من خلال مجموعة مداخلات لعدة زملاء افاضل ايضا منهم مشاركتك و الحق ان وضع الموضوع فى شكل برنامج سوف يريحنا كثيرا

و لكننا لا زلنا نطمع فى قيام سيادتكم فى تحديد جزء من الموضوع و ليكن الحماية برقم الهارد فقط ( دون تطرق لباقى امكانيات البرنامج ) ثم عرض الكود المصدرى له حيث ان العروض السابقة بالمنتديات الأخرى شابها بعض الأخطاء مثل ظهور رقم سالب عند عرض الرقم المنطقى للهارد و لم تفلح محاولات منع ذلك عن طريق توصيف الحقل بشكل مزدوج كما نصح بذلك البعض

شكرا لك و بارك الله لك فى وقتك و جهدك

رابط هذا التعليق
شارك

بسم الله الرحمن الرحيم

اخي رضا بارك الله فيك

ولك جزيل الشكر

ولكن اخي الكريم هل من الممكن شرح معادلات معرفة رقم اللوحة الام - الهارد ديسك - رقم المعالج

لان هذه المعادلات سالنا عليها مرارا وتكرارا دون رد نهائي وشافي

فمن باب المعرفة ونشر العلم نرجو منك ارفاق تلك المعادلات

طبعا انا لا اطلب وضع الملف مفتوح لانك تعرضه للاستفادة المادية وهذا من حقك بالكامل ومجرد نشرك له للاستفادة من قبل الاعضاء بصورة محمية يعتبر تفضلا منك وشهامة

ولذلك ما اطلبة فقط هو الكود لاعطائي رقم اللوحة الام - الهارد ديسك - رقم المعالج

وشكرا لك اخي الكريم

رابط هذا التعليق
شارك

الاخ الكريم رضا نشكرك على مجهودك العظيم فقد مشكلة وهى بعد تركيب الحماية وفى شاشة تسجيل نسخة شرعية يظهر فى الخانه الاولى

Not present

ولى ملحوظه وهى عند انتهاء مدة البرنامج 15 يوم مثلاً سوف يقوم برنامج القلعة للحماية بمطالبتك برقم النسخة من جديد ... واذا احتفظ المستخدم برقم النسخة في كراسته ... سيكتب نفس الرقم ويقوم برنامج القلعة بإعطائه نفس المدة السابقة وهكذا........شكراً.

رابط هذا التعليق
شارك

الأخ الكريم/رضا عقيل

شكرا جزيلا على مجهودك فى استنتاج داة الحماية ثم وضعها فى شكل برنامج ثم تطويره . بارك الله لك فى جهدك و فكرك

و لقد تابعت موضوع الحماية برقم الهارد فى منتدى الفريق العربى من خلال مجموعة مداخلات لعدة زملاء افاضل ايضا منهم مشاركتك و الحق ان وضع الموضوع فى شكل برنامج سوف يريحنا كثيرا

بارك الله لك و فيك ... وزادك من علمه ... وزودك بالتقوى ... قال صلى الله عليه وسلم " ألا إن خير الزاد التقوى "

رابط هذا التعليق
شارك

أخواني

آسف للتأخر عليكم

بالنسبة لل:واد الخاصة باستنتاج أرقام ( الهارد ) ( المعالج ) ( اللوحة الأم )

1- الكود الخاص بالهارد

Option Compare Database
Option Explicit



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
Private Const INVALID_HANDLE_VALUE = -1
Private Const VER_PLATFORM_WIN32_NT = 2
Private Const IDENTIFY_BUFFER_SIZE = 512
Private Const OUTPUT_DATA_SIZE = IDENTIFY_BUFFER_SIZE + 16


Private Type GETVERSIONOUTPARAMS
   bVersion       As Byte
   bRevision      As Byte
   bReserved      As Byte
   bIDEDeviceMap  As Byte
   fCapabilities  As Long
   dwReserved(3)  As Long
End Type


Private Type IDEREGS
   bFeaturesReg     As Byte
   bSectorCountReg  As Byte
   bSectorNumberReg As Byte
   bCylLowReg       As Byte
   bCylHighReg      As Byte
   bDriveHeadReg    As Byte
   bCommandReg      As Byte
   bReserved        As Byte
End Type


Private Type SENDCMDINPARAMS
   cBufferSize     As Long
   irDriveRegs     As IDEREGS
   bDriveNumber    As Byte
   bReserved(2)    As Byte
   dwReserved(3)   As Long
   bBuffer()      As Byte
End Type


Private Const IDE_ID_FUNCTION = &HEC
Private Const IDE_EXECUTE_SMART_FUNCTION = &HB0
                                               
                                               


Private Const SMART_CYL_LOW = &H4F
Private Const SMART_CYL_HI = &HC2


Private Type DRIVERSTATUS
   bDriverError  As Byte
   bIDEStatus    As Byte
                                  
   bReserved(1)  As Byte
   dwReserved(1) As Long
 End Type

Private 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


Private Type SENDCMDOUTPARAMS
  cBufferSize   As Long
  DRIVERSTATUS  As DRIVERSTATUS
  bBuffer()    As Byte
End Type


Private Const SMART_ENABLE_SMART_OPERATIONS = &HD8


Public Enum STATUS_FLAGS
   PRE_FAILURE_WARRANTY = &H1
   ON_LINE_COLLECTION = &H2
   PERFORMANCE_ATTRIBUTE = &H4
   ERROR_RATE_ATTRIBUTE = &H8
   EVENT_COUNT_ATTRIBUTE = &H10
   SELF_PRESERVING_ATTRIBUTE = &H20
End Enum


Private Const DFP_GET_VERSION = &H74080
Private Const DFP_SEND_DRIVE_COMMAND = &H7C084
Private Const DFP_RECEIVE_DRIVE_DATA = &H7C088

Private Type ATTR_DATA
   AttrID As Byte
   AttrName As String
   AttrValue As Byte
   ThresholdValue As Byte
   WorstValue As Byte
   StatusFlags As STATUS_FLAGS
End Type

Private Type DRIVE_INFO
   bDriveType As Byte
   SerialNumber As String
   Model As String
   FirmWare As String
   Cilinders As Long
   Heads As Long
   SecPerTrack As Long
   BytesPerSector As Long
   BytesperTrack As Long
   NumAttributes As Byte
   Attributes() As ATTR_DATA
End Type

Private Enum IDE_DRIVE_NUMBER
   PRIMARY_MASTER
   PRIMARY_SLAVE
   SECONDARY_MASTER
   SECONDARY_SLAVE
   TERTIARY_MASTER
   TERTIARY_SLAVE
   QUARTIARY_MASTER
   QUARTIARY_SLAVE
End Enum

Private Declare Function CreateFile Lib "kernel32" _
   Alias "CreateFileA" _
  (ByVal lpFileName As String, _
   ByVal dwDesiredAccess As Long, _
   ByVal dwShareMode As Long, _
   lpSecurityAttributes As Any, _
   ByVal dwCreationDisposition As Long, _
   ByVal dwFlagsAndAttributes As Long, _
   ByVal hTemplateFile As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" _
  (ByVal hObject As Long) As Long
  
Private Declare Function DeviceIoControl Lib "kernel32" _
  (ByVal hDevice As Long, _
   ByVal dwIoControlCode As Long, _
   lpInBuffer As Any, _
   ByVal nInBufferSize As Long, _
   lpOutBuffer As Any, _
   ByVal nOutBufferSize As Long, _
   lpBytesReturned As Long, _
   lpOverlapped As Any) As Long
  
Private Declare Sub CopyMemory Lib "kernel32" _
   Alias "RtlMoveMemory" _
  (hpvDest As Any, _
   hpvSource As Any, _
   ByVal cbCopy As Long)
  
Private Type OSVERSIONINFO
   OSVSize As Long
   dwVerMajor As Long
   dwVerMinor As Long
   dwBuildNumber As Long
   PlatformID As Long
   szCSDVersion As String * 128
End Type

Private Declare Function GetVersionEx Lib "kernel32" _
   Alias "GetVersionExA" _
  (LpVersionInformation As OSVERSIONINFO) As Long




Private Function GetDriveInfo(drvNumber As IDE_DRIVE_NUMBER) As DRIVE_INFO
    
   Dim hDrive As Long
   Dim di As DRIVE_INFO
   
   hDrive = SmartOpen(drvNumber)
   
   If hDrive <> INVALID_HANDLE_VALUE Then
   
      If SmartGetVersion(hDrive) = True Then
      
         With di
            .bDriveType = 0
            .NumAttributes = 0
            ReDim .Attributes(0)
            .bDriveType = 1
         End With
         
         If SmartCheckEnabled(hDrive, drvNumber) Then
            
            If IdentifyDrive(hDrive, IDE_ID_FUNCTION, drvNumber, di) = True Then
         
               GetDriveInfo = di
               
            End If
         End If
      End If
   End If
   
   CloseHandle hDrive
   
End Function


Private Function IdentifyDrive(ByVal hDrive As Long, _
                               ByVal IDCmd As Byte, _
                               ByVal drvNumber As IDE_DRIVE_NUMBER, _
                               di As DRIVE_INFO) As Boolean
    

   Dim SCIP As SENDCMDINPARAMS
   Dim IDSEC As IDSECTOR
   Dim bArrOut(OUTPUT_DATA_SIZE - 1) As Byte
   Dim cbBytesReturned As Long
   
   With SCIP
      .cBufferSize = IDENTIFY_BUFFER_SIZE
      .bDriveNumber = CByte(drvNumber)
        
      With .irDriveRegs
         .bFeaturesReg = 0
         .bSectorCountReg = 1
         .bSectorNumberReg = 1
         .bCylLowReg = 0
         .bCylHighReg = 0
         .bDriveHeadReg = &HA0
         If Not IsWinNT4Plus Then
            .bDriveHeadReg = .bDriveHeadReg Or ((drvNumber And 1) * 16)
         End If
        
         .bCommandReg = CByte(IDCmd)
      End With
   End With
   
   If DeviceIoControl(hDrive, _
                      DFP_RECEIVE_DRIVE_DATA, _
                      SCIP, _
                      Len(SCIP) - 4, _
                      bArrOut(0), _
                      OUTPUT_DATA_SIZE, _
                      cbBytesReturned, _
                      ByVal 0&) Then
                      
      CopyMemory IDSEC, bArrOut(16), Len(IDSEC)

      di.Model = StrConv(SwapBytes(IDSEC.sModelNumber), vbUnicode)
      di.SerialNumber = StrConv(SwapBytes(IDSEC.sSerialNumber), vbUnicode)
      
      IdentifyDrive = True
      
    End If
    
End Function


Private Function IsWinNT4Plus() As Boolean

  
   Dim osv As OSVERSIONINFO

   osv.OSVSize = Len(osv)

   If GetVersionEx(osv) = 1 Then
   
      IsWinNT4Plus = (osv.PlatformID = VER_PLATFORM_WIN32_NT) And _
                     (osv.dwVerMajor >= 4)

   End If

End Function


Private Function SmartCheckEnabled(ByVal hDrive As Long, _
                                   drvNumber As IDE_DRIVE_NUMBER) As Boolean
   
  
   Dim SCIP As SENDCMDINPARAMS
   Dim SCOP As SENDCMDOUTPARAMS
   Dim cbBytesReturned As Long
   
   With SCIP
   
      .cBufferSize = 0
      
      With .irDriveRegs
           .bFeaturesReg = SMART_ENABLE_SMART_OPERATIONS
           .bSectorCountReg = 1
           .bSectorNumberReg = 1
           .bCylLowReg = SMART_CYL_LOW
           .bCylHighReg = SMART_CYL_HI

           .bDriveHeadReg = &HA0
            If Not IsWinNT4Plus Then
               .bDriveHeadReg = .bDriveHeadReg Or ((drvNumber And 1) * 16)
            End If
           .bCommandReg = IDE_EXECUTE_SMART_FUNCTION
           
       End With
       
       .bDriveNumber = drvNumber
       
   End With
   
   SmartCheckEnabled = DeviceIoControl(hDrive, _
                                      DFP_SEND_DRIVE_COMMAND, _
                                      SCIP, _
                                      Len(SCIP) - 4, _
                                      SCOP, _
                                      Len(SCOP) - 4, _
                                      cbBytesReturned, _
                                      ByVal 0&)
End Function


Private Function SmartGetVersion(ByVal hDrive As Long) As Boolean
   
   Dim cbBytesReturned As Long
   Dim GVOP As GETVERSIONOUTPARAMS
   
   SmartGetVersion = DeviceIoControl(hDrive, _
                                     DFP_GET_VERSION, _
                                     ByVal 0&, 0, _
                                     GVOP, _
                                     Len(GVOP), _
                                     cbBytesReturned, _
                                     ByVal 0&)
   
End Function


Private Function SmartOpen(drvNumber As IDE_DRIVE_NUMBER) As Long

  

   If IsWinNT4Plus() Then
      
      SmartOpen = CreateFile("\\.\PhysicalDrive" & CStr(drvNumber), _
                             GENERIC_READ Or GENERIC_WRITE, _
                             FILE_SHARE_READ Or FILE_SHARE_WRITE, _
                             ByVal 0&, _
                             OPEN_EXISTING, _
                             0&, _
                             0&)

   Else
      
      SmartOpen = CreateFile("\\.\SMARTVSD", _
                              0&, 0&, _
                              ByVal 0&, _
                              CREATE_NEW, _
                              0&, _
                              0&)
   End If
   
End Function


Private Function SwapBytes(b() As Byte) As Byte()
   
  
   
   Dim bTemp As Byte
   Dim cnt As Long

   For cnt = LBound(b) To UBound(b) Step 2
      bTemp = b(cnt)
      b(cnt) = b(cnt + 1)
      b(cnt + 1) = bTemp
   Next cnt
      
   SwapBytes = b()
      
End Function


Private Sub cmdClose_Click()
DoCmd.Close
End Sub


Private Sub Form_Load()
  
  Dim di As DRIVE_INFO
  Dim drvNumber As Long

  di = GetDriveInfo(drvNumber)
  With di
  Select Case .bDriveType
           
           Case 0
           Me.text05.Value = "[Not present]"
           Case 1
           Me.text05.Value = Trim$(.SerialNumber)
           Case 2
           text05.Value = "[ATAPI drive - info not available]"
           Case Else
           text05.Value = "[drive type not known]"
           End Select
   End With


End Sub
كود رقم المعالج يحتاج إلى المرجع Microsoft WMI Scripting
Option Compare Database
Option Explicit


 Private asCpuPaths()      As String
 Private m_objCPUSet       As SWbemObjectSet
 Private m_objWMINameSpace As SWbemServices





Private Sub cmdClose_Click()
DoCmd.DoCmd.Close

End Sub


Private Sub Form_Load()

Dim objCPUSet As SWbemObjectSet
Dim objWMINameSpace As SWbemServices
Dim oCpu As SWbemObject
Dim is2 As String
Set objWMINameSpace = GetObject("winmgmts:")
Set objCPUSet = objWMINameSpace.InstancesOf("Win32_Processor")
For Each oCpu In objCPUSet
    is2 = oCpu.ProcessorID
    Exit For
Next

           Me.text05.Value = Trim$(is2)



End Sub
كود اللوحة الأم
Option Compare Database
Option Explicit


Public Lst1 As New Collection, Lst2 As New Collection
Public Acpath As String


Public Function MBSerialNumber() As String

Dim objs As Object
Dim obj As Object
Dim WMI As Object
Dim sAns As String

Set WMI = GetObject("WinMgmts:")
Set objs = WMI.InstancesOf("Win32_BaseBoard")
For Each obj In objs
sAns = sAns & obj.SerialNumber
If sAns < objs.Count Then sAns = sAns '& ","
Next
MBSerialNumber = sAns


End Function



Private Sub Form_Load()

       Me.text05 = Trim$(MBSerialNumber)

End Sub



Private Sub cmdClose_Click()
DoCmd.DoCmd.Close

End Sub

كما يوجد ملف مرفق به ثلاث نماذج مطبق عليها هذه الأكواد بدون إضافات

أرجوا أن أكون وفيت بالمطلوب

مع خالص تحياتي

رضا عقيل

export.rar

تم تعديل بواسطه رضا عقيل
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information