الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لى رجاء عند اخوتى فى موضوع امر بالفوكس برو سؤال ضرورى

بدأه samacenteryou في 21 فبراير 2010 · 4 رد · 1,092 مشاهدة · في قواعد بيانات Visual FoxPro
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندى سؤال مهم جدا فى الفوكس برو لم لديه الكرم والمعرفة

هل يمكن لدالة بالفوكس لو امر او اى شىء يمكنه قراءة رقم الهارديسك ويحفظها لنا فى حقل ذاكره او ماشابه

هذا السؤال محيرنى منذ زمن ودخلت واردت المشاركة مع اخوتى حيث انى احب هذه اللغة جدا

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

اقصد يا اخوتى رقم الهارد او الفورمات اى دى ID Format

والذى يتغير بالهرد مع كل عملية فورمات

او يختلف من هارد لاخر وشكرا

ارجوا الاهتمام من اخوتى

#2

الاخ العزيز

بناء على طلبك فلقد بحثت عن شئ يفيدك فى مسعاك ووجدت التالى

لعله يصلح والله الموفق

LOCAL lcPath, lcVolumeName

#DEFINE ERROR_FAILED 0

lcPath = "C:"

* Create buffers to store the VolumeInfo

lcVolumeName = SPACE(256)

lnVolumeSerial = 0

lcFileSystem = SPACE(256)

IF GetVolumeInfo(lcPath, @lcVolumeName, @lnVolumeSerial, @lcFileSystem) # ERROR_FAILED

* The value of lnVolumeSerial is the decimal notation of the hexadecimal value displayed by the DIR command.

* Ex. 813432941 = 307C006D

* Note that in the serial number cannot be returned in win9x if the lcPath is a network drive (either mapped or called by UNC eg \\myserver\mydrive)

MESSAGEBOX("Volume Name: " + ALLTRIM(STRTRAN(lcVolumeName, CHR(0), "")) + CHR(13) + ;

"Volume Serial: " + TRANSF(lnVolumeSerial) + " (decimal)" + CHR(13) + ;

"Volume Serial: " + TRANSF(lnVolumeSerial, "@0") + " (hex)" + CHR(13) + ;

"File System: " + ALLTRIM(STRTRAN(lcFileSystem, CHR(0), "")), 64, "Volume Info For Drive &lcPath")

ELSE

MESSAGEBOX("An Error Occured.", 46, "Volume Info For Drive &lcPath")

ENDIF

FUNCTION GetVolumeInfo

LPARAMETER tcPath, tcVolumeName, tnVolumeSerial, tcFileSystem

LOCAL lcPath, lnError

lcPath = ADDBS(IIF(EMPTY(tcPath), "C:", tcPath))

DECLARE INTEGER GetVolumeInformation IN Win32API ;

STRING @lpRootPathName, ;

STRING @lpVolumeNameBuffer, ;

INTEGER nVolumeNameSize, ;

INTEGER @lpVolumeSerialNumber, ;

INTEGER @lpMaximumComponentLength, ;

INTEGER @lpFileSystemFlags, ;

STRING @lpFileSystemNameBuffer, ;

INTEGER nFileSystemNameSize

lnError = GetVolumeInformation(@lcPath, @tcVolumeName, LEN(tcVolumeName), @tnVolumeSerial, 256, 0, @tcFileSystem, LEN(tcFileSystem))

RETURN lnError

ENDFUNC

hd.zip

#3
alaaqasem كتب:

الاخ العزيز

بناء على طلبك فلقد بحثت عن شئ يفيدك فى مسعاك ووجدت التالى

لعله يصلح والله الموفق

LOCAL lcPath, lcVolumeName

#DEFINE ERROR_FAILED 0

lcPath = "C:"

* Create buffers to store the VolumeInfo

lcVolumeName = SPACE(256)

lnVolumeSerial = 0

lcFileSystem = SPACE(256)

IF GetVolumeInfo(lcPath, @lcVolumeName, @lnVolumeSerial, @lcFileSystem) # ERROR_FAILED

* The value of lnVolumeSerial is the decimal notation of the hexadecimal value displayed by the DIR command.

* Ex. 813432941 = 307C006D

* Note that in the serial number cannot be returned in win9x if the lcPath is a network drive (either mapped or called by UNC eg \\myserver\mydrive)

MESSAGEBOX("Volume Name: " + ALLTRIM(STRTRAN(lcVolumeName, CHR(0), "")) + CHR(13) + ;

"Volume Serial: " + TRANSF(lnVolumeSerial) + " (decimal)" + CHR(13) + ;

"Volume Serial: " + TRANSF(lnVolumeSerial, "@0") + " (hex)" + CHR(13) + ;

"File System: " + ALLTRIM(STRTRAN(lcFileSystem, CHR(0), "")), 64, "Volume Info For Drive &lcPath")

ELSE

MESSAGEBOX("An Error Occured.", 46, "Volume Info For Drive &lcPath")

ENDIF

FUNCTION GetVolumeInfo

LPARAMETER tcPath, tcVolumeName, tnVolumeSerial, tcFileSystem

LOCAL lcPath, lnError

lcPath = ADDBS(IIF(EMPTY(tcPath), "C:", tcPath))

DECLARE INTEGER GetVolumeInformation IN Win32API ;

STRING @lpRootPathName, ;

STRING @lpVolumeNameBuffer, ;

INTEGER nVolumeNameSize, ;

INTEGER @lpVolumeSerialNumber, ;

INTEGER @lpMaximumComponentLength, ;

INTEGER @lpFileSystemFlags, ;

STRING @lpFileSystemNameBuffer, ;

INTEGER nFileSystemNameSize

lnError = GetVolumeInformation(@lcPath, @tcVolumeName, LEN(tcVolumeName), @tnVolumeSerial, 256, 0, @tcFileSystem, LEN(tcFileSystem))

RETURN lnError

ENDFUNC

كما يوجد برنامج لمعرفة المزيد عن بيانات الهارد وذلك بعدة لغات للبرمجة ضمنها الفوكس برو

وارجوا ان يصلح

getserial.zip

تم تعديل هذه المشاركة بواسطة alaaqasem في 22 فبراير 2010 في 12:37

#4

جزاك الله كل خير ونعم المشاركة من الاخوة الاحباء

شكرا لك

#5

هذه الدالة تصلح للحماية من النسخ الغير قانونى للنظامم علاء قاسم

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…