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

البرنامج لا يعمل بدون المستخدم المسؤول

بدأه K!NG في 27 يناير 2010 · 8 رد · 2,108 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي برنامج صممته ولكن توجد بهي مشكلة

البرنامج هو وسيلة لتعطيل الاجهزة الكمبيوتر وعمليات اخرى عن بعد بستخدام كمبيوتر اخر

يحتوي البرنامج على ( مرسل server و مستقبل client )

المرسل شغال طبيعي و المستقبل في مشكلة

المستقبل شغال على المستخدم المسؤول بحيث يتحكم في تعطيل الاجهزة و لكن لا يعمل على المستخدم المحدود لانه ليس لديه صلاحية التحكم في الاجهزة

واريد تشغيل البرناج على المستخدم المحدود

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

اعرف ان السؤال صعب و لكن لم اجد طريقة تساعدني في حل المشكلة فلجأت للمنتدى

واتمنى من الاعضاء ان يساعدوني في مشكلتي

وشكرا :)

#2

اخواني الاعزاء ممكن تكون المشكلة في الرجستي

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

#3

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

بالتوفيق :)

#4

شكرا استاذ محمد رضى على الرد

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

post-220456-12646781258163_thumb.jpg

فكره جميلة ولكن لا اعلم كيف اطبق الطريقة

على ما اعتقد انهو عن طريق الرجستي او مكان اخر

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

#5

هو ليس التطبيق الذي سيعمل على حساب SYSTEM, أنت ستقوم بتقسيم المشروع إلى قسمين الأول هو التطبيق الذي سيظهر للمستخدم في أي حساب ويندوز و يظهر له واجهة المستخدم و لكن العمل و الوضائف التي سيطلب المستخدم تنفيذها سيقوم التطبيق بتوصيلها إلى windows service الذي يستطيع القيام بها لأنه يعمل على حساب SYSTEM.

بالنسبة لكيفية تطوير ويندوز سيرفيس فيمكنك البحث و هناك العديد من الدروس في الموضوع :

http://www.codeguru.com/vb/gen/vb_system/services/article.php/c4825/

http://www.vbdotnetheaven.com/UploadFile/mahesh/Winservvb11172005233242PM/Winservvb.aspx

http://www.devarticles.com/c/a/VB.Net/Creating-A-Windows-Service-in-VB.NET/

بالتوفيق :)

1
#6

استاذ محمد رضى الموضوع ليس له علاقة windows service

انا املك برنامج يتحكم في تعطيل اجهزة الكمبيوتر كما في الصورة

post-220456-12646972093125_thumb.jpg

post-220456-12646954045333_thumb.jpg

وكما نعرف فان المستخدم المسؤول الذي يتحكم في تعطيل الاجهزة

انا اريد تعطيل اجهزة الكمبيوتر عن طريق المستخدم المحدود

#7

اخواني الاعزاء لي اكثر من ثلاثة ايام وانا ابحث عن حل للمشكلة ولم اجد اي شيء جدير بذكر :sad:

فقلت اكرر ندائي الاخير عسى ان تفرج علي بالحل

صحيح اني فهمت الاستاذ محمد رضى غلط كنت اعتقد انهو كان يتكلم عن وندوز سيرفر وليس وندوز سيرفيس :happy:

خواني اذا في طريقة او حل للمشكلة فلى تبخلو علي بالاجابة :blush:

#8

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

        ' التعرف على نوعية حساب المستخدم الحالي الذي تعمل عليه التطبيق
        Dim admin As Boolean = New Security.Principal.WindowsPrincipal(Security.Principal.WindowsIdentity.GetCurrent()).IsInRole(Security.Principal.WindowsBuiltInRole.Administrator)
        ' إذا لم يكن المدير
        If Not admin Then
            ' طلب القيام بعملية الرفع إلى حساب المدير
            Dim r As MsgBoxResult = MsgBox("أنت تعمل بحساب ويندوز محدود, للقيام بالعملية المطلوبة, يجب القيام بعملية رفع إلى حساب المدير." & vbCrLf & "هل تريد المتابعة؟", MsgBoxStyle.Question Or MsgBoxStyle.YesNo)
            ' إذا اختار نعم
            If r = MsgBoxResult.Yes Then
                ' تحديد بيانات التنفيذ في حساب المدير
                Dim si As New ProcessStartInfo()
                si.FileName = Application.ExecutablePath
                si.WorkingDirectory = Environment.CurrentDirectory
                ' لطلب الرفع من نظام التشغيل
                si.Verb = "runas"
                si.UseShellExecute = True
                Application.Exit()
                Process.Start(si)
            End If
        End If

بالتوفيق :)

1
#9

اخي اشكرك على الرد لكن لا اعلم ماذا اقول لك انك تحاول مساعدتي وانا اشكرك :happy:

لكن انا اريد استعماله في xp هل من طريق مشابهة للكود

انا فعلا عاجز عن تقديم شكري لك اخي محمد رضى على ما قدمتهو لي

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

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

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

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

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