السلام عليكم
اخوتي في الله الافاضل
ارجو منكم شرح كيفية التعامل مع اي خدمة service في ويندوز مع العلم بانه لدينا معلومات عن اسم الخدمة و البورت الذي تستقبل عليه الاوامر
ارجو من لديه معلومات في هذا المجال مساعدتي
السلام عليكم
اخوتي في الله الافاضل
ارجو منكم شرح كيفية التعامل مع اي خدمة service في ويندوز مع العلم بانه لدينا معلومات عن اسم الخدمة و البورت الذي تستقبل عليه الاوامر
ارجو من لديه معلومات في هذا المجال مساعدتي
*** Sun Certified Java Programmer ***
الحقيقة يا جماعة
عدم الاجابة عن هذا السؤال بعد هذه المدة مرده الى احد سببين
1- إما ان يكون السؤال خارق و خارج امكانيات المشرفين و طبعا هذا مستبعد
2- ان يكون تافه و بسيط لدرجة عدم الرد عليه لتفاته و ان كان كذلك فاتمنى مساعدتي في هذا الموضوع ولو كان بسيط لاني ربما اكون ابسط
اكرر السؤال ياجماعة الخير
اريد التخاطب مع احدى خدمات ويندوز مع العلم بانه لدي اسم الخدمة و البورت و طبعا الخدمة بتكون عامله سيرفر سوكيت و انا لازم اعمل معاها سوكيت على هالبورت
فالسؤال هل هذه الطريقة الصحيحة ام ان هناك طرق اقوى
*** Sun Certified Java Programmer ***
والله ماعرف وش تقصد بخدمه في ويندوز لكن استخدم الامر التالي لتنفيذ اوامر معينه ،
Runtime.getRuntime().exec("your command")اما اذا كنت تبي برنامج الجافا يشتغل 24 ساعه اجعل الثريد daemon
على فكره مبروك SCJP
على فكره ابحث عن RPC & RMI ان كنت تريد استدعاء خدمه موجوده في السيرفر
الاخ و الزميل العزيز عيسى او من يود اجابتي
الخدمة هي الـ Service التي تعمل في ويندوز
مثل الخدمة التي تتحكم بالهاردوير اسمها wmi و تعمل على بورت 135
تبقى عملية الاتصال بها وارسال التعليمات و استقبال الناتج
شكرا و الله يبارك بعمرك
تم تعديل هذه المشاركة بواسطة HossamSoft2005 في 24 مارس 2007 في 19:44
*** Sun Certified Java Programmer ***
الأخ الفاضل ...
منفذ (Port) رقم 135 غالباً يستخدم فى خدمات DCOM أو (Distributed Component Object Module) وهى تعتمد فى تصميمها على COM أو (Component Object Module) - كان أسمها OLE قديماً - ويتم التعامل معها من خلال Interface وعندما يتم أستخدامها وأستدعائها من أجهزة أخرى تسمى DCOM (مع بعض التعديلات الطفيفة فى التسجيل "واحياناً فى التصميم").
فيمكن أن يكون برنامج الـ (COM) - وهو غالباً ملف DLL (وممكن EXE) - على جهاز ويتم أستدعاء Interface من جهاز أخر، وهذه العملية (Marshaling proxy/stub) معقدة بعض الشيئ وتعتمد فى إجراء الإتصال على RPC أو Remote Procedure Call، وفى هذه الحالى تتم العملية وتنفيذ الكود على الجهاز الذى يحتوى الـ COM ولكن النتيجه يتم إرسالها للجهاز الذى قام بإستدعاء الـ Interface، بالطبع من خلال الشبكة، ويتم الاتصال بين الاجهزة من خلال منفذ 135، وبالتالى لإستخدام الأداة سواء local أو remote فمن الاسهل ان تستخدم Interface الخاصة بها (والمصممة لذلك الغرض وهو التعامل مع العالم الخارجى بالنسبه لها) وتحديد إذا ما كانت تعمل على الجهاز الحالى (الأفتراضى) أم جهاز أخر يتم تحديده، فمثلاً بأستخدام Windows Management Instrumentation أو WMI قم بإنشاء ملف نصى بالامتداد vbs أ (Visual Basic Script) وليكن (test.vbs) واكتب فيه التالى:
Set objWMI = GetObject("winmgmts:")
Set wmiQuery = objWMI.ExecQuery("Select * From Win32_LogicalDisk")
On Error Resume Next
For Each obj In wmiQuery
MsgBox "Serial Number: &H" + obj.VolumeSerialNumber, 64, obj.Name + " " + obj.Description
Next
On Error Goto 0فسيقوم بعرض الأرقام المسلسلة لمشغلات الاقراص عندك، أم إذا اردت الاستعلام عن مشغلات أقراص فى جهاز أخر أستخدم:
GetObject("winmgmts://localhost/root/cimv2")بدلاً من
GetObject("winmgmts:")مع أستبدال localhost بأسم اوIP الجهاز المراد الاتصال به وتعمل عليه هذه الخدمة ومسموح عن بعد ومسموح لك باستخدامها، ويمكن أستخدام الـ COM أو الـ DCOM من اى لغة تدعم ذلك Jave, VC, VB, ... بأستخدام الدوال (Functions) والطرق المناسبة لكل لغة.
راجع: تشغيل البرنامج كـ System Service
شكراً
تم تعديل هذه المشاركة بواسطة Eng. Usama El-Mokadem في 10 فبراير 2008 في 19:26
Nothing is impossible, the word impossible itself says that: I M - Possible
اقتباسالحقيقة يا جماعةعدم الاجابة عن هذا السؤال بعد هذه المدة مرده الى احد سببين
1- إما ان يكون السؤال خارق و خارج امكانيات المشرفين و طبعا هذا مستبعد
2- ان يكون تافه و بسيط لدرجة عدم الرد عليه لتفاته و ان كان كذلك فاتمنى مساعدتي في هذا الموضوع ولو كان بسيط لاني ربما اكون ابسط
أخي الفاضل الـ" Certified" برجاء عدم استخدام هذا السلوب في الحوار , بغض النظر ان كان هناك من يعرف الاجابة أم لا , كل ما عليك هو كتابة Up لرفع الموضوع لا أكثر والحمد لله الأخوه ردوا عليك جزاهم الله خيرا ,,,
الشكر الجزيل للزميل العزيز Eng. Usama El-Mokadem على الشرح
بالنسبة للزميل hazzoom
ربما اكون قد أخطات في التعبير لكن المثل يقول اللي بيعرف بيعرف و اللي ما بيعرف بيقول كف عدس
يا شباب هذا المنتدى الكريم انا لانو تعودت دائما عندما اكون في مأزق أن اتجه مباشرة الى منتديات الفريق العربي للبرمجة لان فيه اناس تساعد لوجه الله و اجد السرعة في الرد
لكن هذه المشكلة تحديدا كنت و مازلت محرج في الوقت ولم يتبقى لدي الوقت الكافي لإنجاز هذا المشروع ربما لذلك كان نتيجة التوتر
لكن التوتر واضح على احدى تعابيرك ايضاً
أخي الفاضل الـ" Certified"
على كل الله يسامحك
بالنهاية بتمنى من خبراء الجافا المعتمدين لو سمحتوا
اذا كان في طريقة اخرى لما تم شرحه من الغالي Eng. Usama El-Mokadem
لانه يعتمد على interfaces لويندوز و نحن في الجافا كما عادتنا نحاول الابتعاد عن الاعتماد عليه فإن كان هناك طريقة اخرى مثل الطريقة التي توقعتها انا مثل عمل socket و التنصت على البورت 135 لكن يبقى البروتوكول للتخاطب مع هذه الخدمة
تم تعديل هذه المشاركة بواسطة HossamSoft2005 في 27 مارس 2007 في 19:57
*** Sun Certified Java Programmer ***
الجواب لمن يبحث عن نفس الموضوع ولم يجد المساعدة
حمد لله وجدت الجواب بعد طول بحث و عناء
الحل باستخدام عنصر اسمو jawin يحاكي تقنية com في مايكروسوفت
ويوجد برنامج مع العنصر اسمو jawinBrowser يقوم بتحويل ملف الـddl الخاص بالـwmi الى كلاسات جافا
ثم تقوم بالاستدعاء و التنفيذ بشكل طبيعي
بالتوفيق
*** Sun Certified Java Programmer ***
هذا الموضوع مغلق.