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

حوار عن (NT Service )

مغلق
بدأه عمرو عماد في 31 مايو 2005 · 13 رد · 982 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

أهلا ومرحبا بكم أخواني الأعزاء عشاق فيجوال بيسك 6 وأنا سعيد جدا بوجودي بينكم اليوم بأول رسالة فعلية لي في هذا المنتدي الرائع والجميل أحببت أن أشارككم في موضوع خدمات ويندوز أن تي .

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

----- سأقسم الموضوع من وجهة نظري وهي كالتالي :-

أولا :- التعريف بخدمات النظام ما لها وما عليها ويجب أن نتعرف في هذه الفقرة عن أهمية إستخدام الخدمة وما الفرق بينها بين البرامج التي توضع في بدء التشغيل والتي تظهر خفية مثلا , والتعرف علي أنواع الخدمات التي تعمل تحت ويندوز .

ثانيا :- كيفية جلب معلومات عن الخدمات المثبتة علي جهازك طبعا بكود فيجوال بيسك 6 ومعرفة ما يدل عليه كل معلومة من معلومات الخدمة .

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

وبإذن الله سأبدأ بوضع ما يقدرني الله عليه في هذا الضوع والباقي علي الله ثم عليكم أخوتي فأنا كل أمل أن تعم الفائدة علينا بالإستفادة من هذه الأنوع من الخدمات التي تقدمها النظام .

وسأكتب ردا حالا بردي الأول علي هذا الموضوع أرجو الإهتمام أخوتي

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

#2

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

أهلا ومرحبا بكم من جديد في موضوع خدمات ويندوز

أولا أود أن ألمح مرة أخري أنني قليل الخبرة أو ممكن نقول منعدم بمعرفة خدمات النظام ولكن سأبذل ما لدي لأقول ما عندي من معلومات حتي نبدأ بموضع دروسا عن هذا الشئ الغامض وممكن نقول الموضوع إحترافي زيادة عن اللزوم .

لكن نتيجة لأهمية هذا الموضوع نجد أن أكبر البرامج تنشئ خدمة لها في النظام أو خدمات لكي تمكنها من عمل شئ يقوم المبرمج ببرمجته ومثال علي ذلك

برنامج نورتن أنتي فيرس نعم أنه يبدأ في بداية التشغيل لكن له خدمة تقوم بتأسيس هذا البرنامج علي النظام وربما يوجد له الكثير من الخدمات التي تنشأ أثناء تنصيب هذا البرنامج الأكثر من رائع (تسلم أيد الي عمله :D ) ولو نظرنا سنجد أن الخدمات تحمل مع تحميل الويندوز يعني قبل أي برنامج وهذه شئ مفيد جدا فيمكنك مثلا عمل برنامج يعمل مع خدمة تقوم هذه الخدمة بتحميل برنامج مع بداية التشغيل دون أن تعلم البرنامج أن ينشئ إختصارا له في بداية التشغيل ..

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

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

أولا لكي تأتي بمعلومات عن الخدمات المثبتة علي نظامك يتطلب أن تعرف متغير من نوع كلاس غير موجود في قائمة ريفرنس وهذا الكلاس يسمي ب (Win32_Service) ونظرا لأن الموضوع إحترافي قليلا فهو معقد قليلا حتي في طريقة تعريف المتغير التي صعب عليها فهما والتي أستخدمتها كما هي

Dim ServiceSet As Object
Set ServiceSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_Service")

فقد بدأنا بتعريف متغير (ServiceSet) من نوع (Object) وقمنا بموضع نوع جديد من الكلاس (Win32_Service) علي حد علمي لنستطيع الحصول علي المعلومات التي عن كل خدمة في النظام

يجب أن ألمح إلي أن هذا الكلاس له بعض الخصائص والوظائف

أولا الخصائص

class Win32_Service : Win32_BaseService
{
  boolean AcceptPause;
  boolean AcceptStop;
  string Caption;
  uint32 CheckPoint;
  string CreationClassName;
  string Description;
  boolean DesktopInteract;
  string DisplayName;
  string ErrorControl;
  uint32 ExitCode;
  datetime InstallDate;
  string Name;
  string PathName;
  uint32 ProcessId;
  uint32 ServiceSpecificExitCode;
  string ServiceType;
  boolean Started;
  string StartMode;
  string StartName;
  string State;
  string Status;
  string SystemCreationClassName;
  string SystemName;
  uint32 TagId;
  uint32 WaitHint;
};

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

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

Dim Buffer(24) As String
For Each Service In ServiceSet
    Buffer(1) = Service.DisplayName
    Buffer(2) = Service.Name
    Buffer(3) = Service.PathName 
    Buffer(4) = "Service.Status"
    Buffer(5) = Service.AcceptPause 
    Buffer(6) = Service.AcceptStop
    Buffer(7) = Service.InstallDate
    Buffer(8) = Service.CheckPoint
    Buffer(9) = Service.CreationClassName
    Buffer(10) = Service.DesktopInteract
    Buffer(11) = Service.ErrorControl
    Buffer(12) = Service.ExitCode
    Buffer(13) = Service.ProcessId
    Buffer(14) = Service.ServiceSpecificExitCode
    Buffer(15) = Service.ServiceType
    Buffer(16) = Service.Started
    Buffer(17) = Service.StartMode
    Buffer(18) = Service.StartName
    Buffer(19) = Service.State
    Buffer(20) = Service.SystemCreationClassName
    Buffer(21) = Service.SystemName
    Buffer(22) = Service.TagId
    Buffer(23) = Service.WaitHint
    Buffer(24) = Service.Description
Next

ويمكنك إستخدام أي شئ بدلا من المصفوفة لإستعراض هذه المعلومات

أرجوا أن أكون قد فتحت هذا الموضوع وسأكمل في ردي التالي إن شاء الله

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

#3

عفوا نسيت الرفق وهو برنامج عما سبق في ردي

All Service.zip

#4

منور ياعمرو :lol: :lol:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#5

موضوع جميل

فقط كان عليك في خضم الشرح ان تذكر ولو شئ عن الWMI لانك استعملها بكل بساطة

#6

السلام عليكم

الأخ عمرو يبدو انه من مناصري حزب الفيجو و بشدة كمان :)

فقد كان في ورطة و مشكال مع التسجيل .. و لكن الحمد لله مرت ,,

ادعولو ان ربنا يثبتو مع الفيجو و لا يمش بعيد ابداً ...........آآآآآآمين يارب :)

gaza3-3.jpg
#7

امين امين امين امين امين امين امين امين امين امين امين امين امين امين امين امين امين امين امين

:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:

تم تعديل هذه المشاركة بواسطة GHOST2010 في 31 مايو 2005 في 20:18

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#8

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

يبدوا أن توابع مشاكل التسجيل لدي مازالت قائمة :blink: حيث أن المنتدي لم يعلمني بكل هذه الردود علي بريدي ولكن الحمد لله وأنا بتصفح الموضوع فوجئت بعددة ردود وذهلت المهم الحمد لله .

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

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

أخي العزيز الجميل Xpert2005 الذي وضعتني في ورطة حقا لقد تنبأت بدون كتابة أسمة تقنية Wmi بأسمها وكان عليك أن تعلم ما لم أذكره أو ما لا أحب أن أذكره فقد ذكرت في ردي الأول والثاني أن هذا الموضوع إحترافي قليلا (عسي أن لا أكون قد أخطأت في التعبير ) لذا الموضوع مبهم وهذه التقنية مبهمة لما فيها من Tools ولكن لا أعلمها ولكن أحببت أن أفتح هذا الموضوع هنا بينكم حتي تساعدوني وتساعدوا أنفسكم ( أسف لتعبير لكن هذه هي الحقيقة )

أخي العزيز Xpert2005 أنا لم أستخدم هذه التقنية قد في برامجي لكني كنت أتصفح علي الأنترت وقرأت بعض الكلمات عن هذه جزء من هذه التقنية وهي الخدمات والتي لم أفهم منها شئ إلا القليل ولكن أحمد الله تعالي أن علي الأقل أعلم ما أريد أن أبحث إعنه وأنت تعلم أن هذه التقنية عظيمة جدا (جامدة جدا :D ) فأحببت أن أتوغل فيها بل أعرف علي الأقل ما أريد أن أستخدمه وكان السابق جزء من نتيجة بحثي ومازال هناك نتائج لبحثي

ولكن المشكلة الأن أن هذه التقنية التي تحدث عنها وهي إختصار لجملة ( Windows Management Instrumentation ) أي والله أعلم أليه إدارة ويندوز هل رأيتم المعني ؟؟

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

وهو كلاس ( Win32_Service) الخاص بخدمات الجهاز من عرض معلومات عنها وكذلك الإنشاء والتعديل والحذف وأكيد أنت تعلم ذلك وإلا لما قلت (فقط كان عليك في خضم الشرح ان تذكر ولو شئ عن الWMI لانك استعملها بكل بساطة) المهم أخي العزيز عدني بأن تساعدني أن أفيد وأستفيد ..

الحمد لله خلصت همسة عتاب :lol: :lol: :D

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

وأكرر الموضوع الذي إخترته هو (NT Service) بوجه خاص وليس علينا أن نعم ب (WMI)

وفي النهاية أن لست إحترافيا لدرجة أنني أعلم كل شئ (أريد أن أتعلم كما تتعلمون) (ويموت المعلم ويتعلم ) ولكن هذه هي البداية

وإذا لم يعجبكم هذا الموضوع فأقدم إعتذاري علي ما سببته لكم من صداع ويكون هذا الموضوع لاغي لا رجعة له مرة أخري

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

#9

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

أهلا بك أخي الكريم وشكرا على المقالة الجميلة

لابأس فقد قدمت موضوع عن الwmi في السابق لكن لم أجد تفاعلا كبيرا فالموضوع كما قلت ليس للكل

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

قبل مدة كانت حدود التعامل مع موارد النظام بالvb محدودة جدا لكن مع ظهور windows 2000 وتقنية الWMI أصبح الحلم حقيقة ويكفي أن نقول أن استخراج مثلا nt Service كما في مثالك أخي يتعدى الجهاز المحلي الى امكانية معرفته لكل الأجهزة في الشبكة (طبعا المحلية)

المهم كل ما أردت ارفاقه هو بعض البرامج في هذا المجال خاصة البرنامج الذي أراه مفيدا جدا وهو WMICodeGenerator الذي سيفيد الأعضاء في هذا الجانب المحترف والمبتدئ على حد سواء

بالتوفيق دائما

WMIGenerator.zip

Services.zip

Process.zip

#10

لا بأس أخي الكريم عمرو

فلا أظن أن اضافتي ستكون بمستوى اضافات DreamNet فهو في كل مرة يبهرنا بما يقدم

الحمد لله انه يوجد أعضاء بمثل هذا المستوى لاخذ الخبرة منهم دائما

شكرا لكم على الموضوع الشيق

#11

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

أخي الكريم DreamNet :-

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

أخي Xpert2005 :-

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

نعم هنا في المنتدي أعضاء بمستوي رفيع وعال وإلا لم يكن هذا المنتدي بمثل هذه الروعة التي جذبت إنتباهي في الأونة الأخيرة لكنك أنت أيضا عضو عزيزا عليك ولابد أن لديك الكثير والكثير فلا تبخل علينا بما أعطاك الله من علم

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

المهم لن أطيل عليكم بكلامي الكثير (يبدوا أنني أتكلم كثير هذه الأيام ولكنها ليست عادتي :D :D )

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

ما هي الفائدة من إستخدام الخدمات ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

#12

منتظر الرد علي سؤال الاخير

#13

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

الموضوع ليس بسيط لكن فقط توضيح هنا الخدمات هي عبارة عن برامج بدون interface تعمل في الخلفية يعني هنا الاختيار حسب نوع البرنامج الذي نحتاجه ب أو بدون interface اما كون الخدمة يمكن ايقافها فأظنها مسألة أمن لا غير

والله أعلم

#14

شكرا أخي DreamNet علي إهتمامك والرد

المشكلة يا أخي العزي ز أنه يمكنني تشغيل برنامج في بداية التشغيل أيضا في الخلفية يعني مثل ما قلت

ولكن وجدت أن هناك بعض البرامج التي لها خدمة لا يمكن عمل End Task لها من Task Manager وهذا هو ما أبحث عنه

أريد المستخدم لا يمكنه يستطيع إغلاق البرنامج من التاسك ما نجر يعني أعملها Critical Process كما ذكر الأخ Xpert2005 في موضوع له عن Critical Process

أنا لا أقصد أن أقوم بإخفاء البرنامج من قائمة Applications ولكن أنا أقصد قائمة Processes مما تتطلب علي أن أنشئ له خدمة متعلقة بالنظام وهذا أمر محسوم وعملية يمكنني بإذن الله عملها لكن وجدت بعد ذلك انه يمكنني إغلاقه من التاسك مانجر فما الشئ الذي أستند عليه في شكلتي

أعذرني أخري فهذه المشكلة بحثت عنها طويلا

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

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