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

كيف يتم تحويل هذه القيم إلى Long ؟

مغلق
بدأه xhacker في 16 أغسطس 2007 · 3 رد · 485 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

0x0000001B

0xABCDABCD

0x0000001C

0x0000000D

0x0000001A

0x0000000F

0x0000000C

أعلم جيدا أن السؤال قد يكون بسيط, و لكن هل يمكن الإفادة بطريقة أو ببرنامج بسيط ؟

#2

أعتقد أنه هدفك خاص بموضوع أصدار الفيستا عموما الطريقة لا تعتمد على التحويل , اليك مثال :

Private Const VER_SUITE_DATACENTER As Long = &H80

If OSI.wSuiteMask And VER_SUITE_ENTERPRISE Then
	'It is Win Vista Enterprise
End If

OSI.wSuiteMask من دالة GetVersionEx مع OSVERSIONINFOEX

تم تعديل هذه المشاركة بواسطة msayed2004 في 16 أغسطس 2007 في 18:24

#3

وفي الحالة العامة Long قيمة مؤشرة بمعنى مجال الأعداد يكون فيها بين

[-num,+num]

لكن غالبا انت تريد القيمة الكاملة للمجال اي تكون غير مؤشرة لذلك عليك بحذف الاشارة ومضاعفة القيمة لتصبح في الجزء الموجب

Private Sub Command1_Click()
Dim lng As Double
lng = &HABCDABCD
Text1.Text = lng
Dim i As Integer
i = Len(Text1.Text) - 1
lng = Mid(Text1.Text, 2, i)
lng = lng * 2
Text1.Text = lng
End Sub

مثال بسيط جدا للتوضيح

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

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#4

نعم..

كان الهدف موضوع الفيستا

و قد عرفت طريقة ال &H تقريبا بعد كتابة الموضوع بدقيقة و لكن الدالة التى أشار إليه الأخ Junkie مفيدة جدا

سوف أعمل موضوع جديد الان بخصوص كزد الفيستا, لأننى جلست لساعات طويلة إلى أن تمكنت من إنهائه, كما أننى عملت دعم لجميع إصداراته ال 31 بالإضافة إلى إصدارات الويندوز بدئا من ال 95

هذا الموضوع مغلق.

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