©؛°¨¨°؛© ورشــــة Golden InterStar ©؛°¨¨°؛© البـرمــــجـة بلـغــــة Visual Basic
ط·آ·ط¢آ¢ط·آ·ط¢آ®ط·آ·ط¢آ±
ط·آ·ط¢آ§ط·آ¸أ¢â‚¬â€چط·آ·ط¢آµط·آ¸ط¸آ¾ط·آ·ط¢آ­ط·آ·ط¢آ©
Ourassi

  • ط·آ·ط¢آ§ط·آ¸أ¢â‚¬â€چط·آ¸أ¢â‚¬آ¦ط·آ·ط¢آ´ط·آ·ط¢آ§ط·آ·ط¢آ±ط·آ¸ط¦â€™ط·آ·ط¢آ§ط·آ·ط¹آ¾: 5769
    ط·آ¸أ¢â‚¬آ ط·آ¸أ¢â‚¬ع‘ط·آ·ط¢آ§ط·آ·ط¢آ· ط·آ·ط¢آ§ط·آ¸أ¢â‚¬â€چط·آ·ط¹آ¾ط·آ¸أ¢â‚¬آ¦ط·آ¸ط¸آ¹ط·آ·ط¢آ²: 1412
مشرف سابق
Ourassi

مشرف سابق
ط·آ·ط¢آ§ط·آ¸أ¢â‚¬â€چط·آ¸أ¢â‚¬آ¦ط·آ·ط¢آ´ط·آ·ط¢آ§ط·آ·ط¢آ±ط·آ¸ط¦â€™ط·آ·ط¢آ§ط·آ·ط¹آ¾: 5769
ط·آ¸أ¢â‚¬آ ط·آ¸أ¢â‚¬ع‘ط·آ·ط¢آ§ط·آ·ط¢آ· ط·آ·ط¢آ§ط·آ¸أ¢â‚¬â€چط·آ·ط¹آ¾ط·آ¸أ¢â‚¬آ¦ط·آ¸ط¸آ¹ط·آ·ط¢آ²: 1412
ط·آ¸أ¢â‚¬آ¦ط·آ·ط¢آ¹ط·آ·ط¢آ¯ط·آ¸أ¢â‚¬â€چ ط·آ·ط¢آ§ط·آ¸أ¢â‚¬â€چط·آ¸أ¢â‚¬آ¦ط·آ·ط¢آ´ط·آ·ط¢آ§ط·آ·ط¢آ±ط·آ¸ط¦â€™ط·آ·ط¢آ§ط·آ·ط¹آ¾ ط·آ¸ط¸آ¹ط·آ¸ط«â€ ط·آ¸أ¢â‚¬آ¦ط·آ¸ط¸آ¹ط·آ·ط¢آ§: 0.8
ط·آ·ط¢آ§ط·آ¸أ¢â‚¬â€چط·آ·ط¢آ£ط·آ¸ط¸آ¹ط·آ·ط¢آ§ط·آ¸أ¢â‚¬آ¦ ط·آ¸أ¢â‚¬آ¦ط·آ¸أ¢â‚¬آ ط·آ·ط¢آ° ط·آ·ط¢آ§ط·آ¸أ¢â‚¬â€چط·آ·ط¢آ¥ط·آ¸أ¢â‚¬آ ط·آ·ط¢آ¶ط·آ¸أ¢â‚¬آ¦ط·آ·ط¢آ§ط·آ¸أ¢â‚¬آ¦: 7380
  • 23:50 - 2006/06/29

  الشروحات الخاصة بأنترستار حصريا ...

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

 "كيف تتعرف على أجهزة انترستار من خلال System Info"

 في هذه المشاركة سوف نستقي من باتش interStar Premimium معلومات النظام ثم نصنع برنامجا بلغة VB ليبين لنا معلومات النظام

وهو غير صالح لأجهزة InterStar Plus 

 

أولا / معرفة مكان معلومات النظام في الباتش

أولا يجب معرفة مكان معلومات النسخة الرئيسية في الباتش ويمكن ذلك بواسطة البحث عن تاريخ انشاء الباتش (مثلما تبدو في الصورة نبحث عن 20050906 ولا نضع أي علامة خاصة مستعملة في التواريخ مثل '/' أو '-' ..وهي ومعلومات النظام موجودة في بداية و في نهاية الباتش لكننا سنتعامل مع التي في بداية الباتش لأنها مكانها ثابت. الصورة

VerInfoJpg

يوجد اختلاف بسيط بين الأجهزة D و الأجهزة S بخصوص مكان معلومات النظام في الباتش


تفسير البلوك المحتوي على معلومات النظام : الصورة توضح معلومات النظام

 

 لنقارن معلومات النظام مع الصورة في الأسفل كما تبدو في الشاشة

الأستثناء الوحيد هو في Data Version مضاف إليها 6 / لها قاعدة خاصة (وليس +6 دائما بل هناك حساب خاص)


  •    بـــــــدء البــــرمـــــجة 

لن أتعرض لشرح بيئة Visual Basic فهذا الموضوع يفترض معرفة مسبقة بلغة البرمجة للمبتدئينVisual Basic  (وأنا منهم) ولذلك قم بإنشاء مشروع جديد يحتوي على كائناتForm  label و Text و Button و CommonDialog  مثلما يظهر في الصورة

مثلما يبدو في الصورة ولا داعي للتفصيل في هذه النقطة كثيرا

VBInterface

هذا المشروع ليس كاملا 100 %  بسبب أنه مجرد مثال فقط  لمعرفة كيفية استغلال معلومات النظام داخل الباتش وإعادة تنظيمها في البرنامج ولا يمكن اعتباره برنامجا حقيقيا ..  وهو ليس لودر للتحميل  و لا خوف من استعماله لأن لا يقوم بأية معالجة للباتش بل هو مجرد كاشف للمعلومات لا أكثر

المعلومات التي يقدمها البرنامج تساعدك في معرفة السوفتوير الذي تريد تحميله إلى الجهاز ليمكنك مطابقة ذلك مع الجهاز الذي لديك أو معرفة هوية السوفتوير وهي كما تظهر في الصورة

 

وبذلك يمكنك بواسطته معرفة

1-أي نوع من الأجهزة D أو S  / في CPU Type

2- لأي جهاز مخصص  الباتش الذي لديك -- في DSR

3- أي انترفاس مستخدم Gui

الشيئ الوحيد الذي لا يقدمه هو رقم البوت


  • نـــص البـــرنامج

أولا نقوم بعملية Declaration

Option Explicit
Dim str As String
Dim str_tmp As String
Dim FileName As String
Dim VerInfo As Byte
Dim i As Integer



برمجة التصفية التلقائية للملفات Bin في علبة الحوار "فتح" و تحديد مسار الملف بعد اختياره من طرف المستخدم

Private Sub Command1_Click
"CommonDialog1.Filter = "Bin Files|*.bin        
     CommonDialog1.ShowOpen        
    Text1.Text = CommonDialog1.FileName        
  FileName = Text1.Text        

""=Str


إذا كان حجم الملف أقل من 1.5 ميغا  نبدأ في قراءة المعلومات ونعيد تنشيط المتغيرات من جديد

ولكن Full Flash يقارب 2 ميغا وبهذا فالبرنامج لا يقرأ ملفات Full Flash ؟؟ هذا صحيح ..ولكن ما دام البرنامج مجرد مثال لا يهم ذلك

هنا سنبدأ في قراءة البلوك المتضمن معلومات النسخة الرئيسية

VerInfoJpg


تحميل معلومات النظام إلى متغير

""=str
""=str_tmp
For i = 0 To 12
    Get #1, 65652 + i, Verinfo
    str_tmp = Hex(Verinfo)
    If Len(str_tmp) = 1 Then str_tmp = "0" + str_tmp
    str = str + str_tmp
Next


""= str 
""= str_tmp 
For i = 0 To 12
    Get #1, 65652 + i , VerInfo       
  (str_tmp = Hex(VerInfo

لتفادي حذف الصفر بعد قراءة المعطيات فإنن نقوم بإضافته بعد حذفه (إذا لم تضع هذه التعليمية فإن البرنامج سيحذف الصفر وستظهر تاريخ 20050906 مثل التالي 20596)

    If Len(str_tmp) = 1 Then str_tmp = "0" + str_tmp


بعد قراءة المعلومات من الباتش تأتي مرحلة تحديد الحالة لقراءة معرف الانترفاس ومعرف الميكروكونترولر ومعرف المودال ومعرف البيريتال

نبدا في قراءة المعلومات من الباتش وحدة وحدة و في الأول نقرأ معلومات الأنترفاس GUI

ونستخدم تحديد الحالة Select Case ..فإذا كان Gui=4 فهو انترفاس انترستار وإذا كان Gui =7 فهو انترفاس ستارسات وهكذا مثلما شرحناه في موضوع كيف تتعرف على اجهزة انترستار من خلال System Info

نستخدم دالة Mid لتحديد موقع المعرف (واحد فقط ابتداء من الرقم التاسع)

(strDSRGUI = Mid(str, 9, 1
       Select Case strDSRGUI       
           Case Is = 4                      
            "Label2(2).Caption = "InterStar                                     
        Case Is = 6                      
           " Label2(2).Caption = "SuperLazer                                     
        Case Is = 7                      
           " Label2(2).Caption = "StarSat                                     
        Case Is = 8                      

           " Label2(2).Caption = "New InterStar                              
                     Case Else                    
        ""   = Label2(2).Caption                              
End Select
     

بالطبع يمكننا تفاديا للتكرار استخدام دالة With /end with

with label2

  • ----
  • ----

end with

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

بنفس الطريقة  نحدد موقع معرف البروسيسور ويقرأ معطى واحد ابتداء من سادس في البلوك ... ثم نقوم بتحديد الحالات (احتمالات)


(strCPU = Mid(str, 6, 1
    Select Case strCPU
        Case Is = 3
"Label2(0).Caption = "NEC UPD61120   :Type D                        

        Case Is = 5
            "Label2(0).Caption = "NEC UPD61115   :Type S                       
        Case Is = 4
            "Label2(0).Caption = "Nec UPD61130                       
        Case Else
            ""=Label2(0).Caption                      

    End Select

بنفس الطريقة نحدد موقع معرف Model الجهاز ثم نحدد حسب الحالة

(strDSRType = Mid(str, 7, 1
    Select Case strDSRType
        Case Is = 1
       "Label2(1).Caption = "Satellite FTA receiver              
        Case Is = 2
"Label2(1).Caption = "Satellite receiver with CI slot              
        Case Is = 3
"Label2(1).Caption = "Satellite FTA receiver with Smart card slot             
        Case Is = 4
"Label2(1).Caption = "Satellite receiver with CI and Smart card slot             
         Case Is = 5
"Label2(1).Caption = "Terrestrial FTA receiver             
        Case Is = 6
"Label2(1).Caption = "Terrestrial receiver with CI            
        Case Is = 7
"Label2(1).Caption = "Compact setellite FTA receiver            
        Case Is = 8
"Label2(1).Caption = "Terrestrial and satellite FTA receiver           
        Case Is = 9
"Label2(1).Caption = "Terrestrial and satellite receiver with CI slot           
        Case Else
""= Label2(1).Caption           
End Select

بنفس الطريقة نحدد موقع معرف البيريتال Scart الجهاز ثم نحدد حسب الحالة


(strDSrcart = Mid(str, 8, 1
    Select Case strDSrcart
   Case Is = 1
"Label2(3).Caption = "Neant               
        Case Is = 2
 "Label2(3).Caption = "Un               

        Case Is = 3
"Label2(3).Caption = "Deux               
        Case Else
""= Label2(3).Caption        

   End Select

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

(strDSrVend = Mid(str, 3, 2
    Select Case strDSrVend
"Case Is = "08
"Label2(4).Caption = "Baff              
"Case Is = "11 
"Label2(4).Caption = "Focus              
"Case Is = "0E
"Label2(4).Caption = "Golf              
"Case Is = "03
"Label2(4).Caption = "InterStar             
"Case Is = "12
"Label2(4).Caption = "MediaStar             
"Case Is = "0F
"Label2(4).Caption = "Orient             
"Case Is = "0A
"Label2(4).Caption = "SuperLazer            
"Case Is = "10
"Label2(4).Caption = "StarSat            
"Case Is = "02
"Label2(4).Caption = "SuperStar            
        Case Else
          ""=  Label2(4).Caption            
End Select

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

نقرأ الفيرسيون -مثلا 1.71- ا وهي موجودة في الباتش على شكل 171 ولذلك نقرأ المعطى 10 في البلوك ثم نضيف "." نقطة ثم نقرأ ماتبقى

(Label2(6).Caption = Mid(str, 10, 1) & "." & Mid(str, 11, 2

بنفس الطريقة نقرأ تاريخ وساعة انشاء الباتش و نستخدم نفس الطريقة السابقة (إضافة "/" في التاريخ و ":" في الوقت)


    Label2(7).Caption = Mid(str, 13, 4) & "/" & Mid(str, 17, 2) & "/" & Mid(str, 19, 2) & "    " & Mid(str, 21, 2) & ":" & Mid(str, 23, 2) & ":" & Mid(str, 25, 2)

قـــــراءة Version Data

    Label2(8).Caption = Mid(str, 1, 2) + 6

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

نعيد تنظيم المعطيات لتظهر على شكل مطابق لماتظهر عليه في الشاشة G4C3M2S3 -مثلا-

    Label3.Caption = "Version principale: " & Label2(6) & "  " & "G" & strDSRGUI & "C" & strCPU & "M" & strDSRType & "S" & strDSrcart

ثم نغلق الملف

Close #1


  • مقارنة بالصور بين معلومات النسخة الرئيسية في البرنامج وعلى الجهاز

 ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

ماهو الهدف من هذا الموضوع ؟؟؟

 بهذه الأسطر القليلة صنعنا بلغة البرمجة Visaul Baisc برنامجا صغيرا يمكنك به معرفة النسخة المستخدمة والداتا ويكشف لك لأي جهاز هو مخصص و أي خلفية مستخدمة في هذا الباتش

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

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

 

 
 حمله من هنا GI Sys Info

توضيح لفهم معطيات البرنامج

 

 ©؛°¨¨°؛© ورشــــة Golden InterStar ©؛°¨¨°؛© البـرمــــجـة بلـغــــة Visual Basic
ط·آ·ط¢آ¨ط·آ·ط¢آ¯ط·آ·ط¢آ§ط·آ¸ط¸آ¹ط·آ·ط¢آ©
ط·آ·ط¢آ§ط·آ¸أ¢â‚¬â€چط·آ·ط¢آµط·آ¸ط¸آ¾ط·آ·ط¢آ­ط·آ·ط¢آ©