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

عمل هاندل على الصفح المفتوحة

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

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

أولا :-

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

ثانيا :-

ممكن أسأل سؤال

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

بمعنى

أنا عندي برنامج ومش عايز أثبته على الجهاز

أنا عايز أعمل برنامج على الفيجوال بيزك 6 لما أي حد يجي يدوس SETUP يطلع رسالة خطأ و بعدين يقفل التثبيت

والله أنا دورت كتير

وفقدت الأمل

وبهذا المنتدى

وبخرة أعضاؤه الكرام رجع الأمل فيا تاني

ياريت الإفاده

وشكرا

وفق الله الخير لنا و لوطننا الغالي مصر

المصري 2

5ientbalewdwdo9cgdqo.png
#2

يا جماعة ردوا عليا أرجوكم

5ientbalewdwdo9cgdqo.png
#3

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

يمكن منع تشغيل بعض البرامج عن طريق الريجيستري لكن أظن أنه يجب أن يكون المسار محدد مسبقا

هناك برنامج للأخ رغيد موجود بالمنتدى يعتمد على هذه الطريقة ربما يفيدك

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

بالتوفيق ان شاء الله

#4

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

شكرا أخي DreamNet على المرور و الرد الطيب

والله إنت أحييت الأمل فيا تاني

والله هذا البرنامج أكثر من رائع

ولكن عندي سؤال

ممكن نعمل محرك بحث

يعني نكتب إسم البرنامج و نعمل بحث في الكمبيوتر و بعدين لو وجد البرنامج يقوم بغلقه

أو أكتب أسماء البرامج المراد غلقها في البرنامج و هو يغلقها

أرجو الرد و مساعدتي في عمل ذلك

وشكرا

وفق الله الخير لنا و لوطننا الغالي مصر

المصري 2

تم تعديل هذه المشاركة بواسطة المصري 2 في 18 أغسطس 2007 في 18:33

5ientbalewdwdo9cgdqo.png
#5

بعض البرامج لها قيم معينة في مسارات معينة ثابتة في الريجستري

بعضها يملك ملفات معينة في اماكن معينة من القرص ايضا

يمكن الاعتماد على FindWindow في البحث عن عنوان نافذة او الـ class name الخاص بها

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

السلام عليكم

Do as I say, not as I do

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

#6

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

شكرا أخي Junkie على المرور الغالي و الرد الجميل

والله أنا حبيك من أول كلمة كتبتها

بس ممكن تقولى إية حكاية Find window و class name

وإزاي أكشف عن وجود أي برنامج

معلش هتعبك معايا

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

وهتنقذني أيضا من حجات كتير

وبالنسبة لكلمة مش صعب على الإطلاق

ممكن يكون مش صعب على أمثالك من الفنانين و المبرمجين المحترفين

ولكن ممكن يكون صعب على أمثالي

وربنا يجعل كل كلمة أنت كتبتها أو سوف هتكتبها إنت و الأعضاء الكرام

وزنها ثقيل جدا جدا في ميزان حسناتكم

وشكرا

وفق الله الخير لنا و لوطننا الغالي مصر

المصري 2

5ientbalewdwdo9cgdqo.png
#7

السلام عليكم

شوف يا طويل العمر, FindWindow هي عبارة عن دالة API من مكتبة user32.lib

The FindWindow function retrieves a handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows. This function does not perform a case-sensitive search.

To search child windows, beginning with a specified child window, use the FindWindowEx function.


Syntax

HWND FindWindow(		  LPCTSTR lpClassName,
	LPCTSTR lpWindowName
);
Parameters

lpClassName
[in] Pointer to a null-terminated string that specifies the class name or a class atom created by a previous call to the RegisterClass or RegisterClassEx function. The atom must be in the low-order word of lpClassName; the high-order word must be zero. 
If lpClassName points to a string, it specifies the window class name. The class name can be any name registered with RegisterClass or RegisterClassEx, or any of the predefined control-class names. 

If lpClassName is NULL, it finds any window whose title matches the lpWindowName parameter. 

lpWindowName
[in] Pointer to a null-terminated string that specifies the window name (the window's title). If this parameter is NULL, all window names match. 
Return Value

If the function succeeds, the return value is a handle to the window that has the specified class name and window name.

If the function fails, the return value is NULL. To get extended error information, call GetLastError

في البداية تصرح عنها في التطبيق (بالفيجوال) بالشكل:

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

ثم تقوم بطلبها من اي مكان في تطبيقك بصورة شبيهة بالتالي (على سبيل المثال, لا الحصر):

dim hWin as long
hWin = FindWindow("window class", "window caption")

الحصول على caption موضوع سهل - هو عنوان البرنامج الذي يظهر في شريط العنوان.. لكن المشكلة تكون في التطبيقات التي تقوم بوضع مثلا مسار الملف المفتوح (كبرامج Office) في شريط العنوان الى جانب اسم التطبيق (Microsoft Word) مثلا.. في هذه الحالة العنوان متغير لا يمكن الاعتماد عليه.. هناك برامج عناوينها ثابتة لا تتغير.. مثلا برنامج JetAudio يملك caption = COWON Media Center .. هناك تطبيقات لا تملك caption لكن تملك class name

هناك مشكلة لو كان هناك تطبيقين ب caption واحد.. سيتم ايجاد النافذة ذات الـ PID الأقل (Process ID) ولا يتم ايجاد النافذة الأخرى..

لذلك هناك حل, افضل لكنه اطول واعقد.. نوعا ما

باستخدام دالة أخرى هي: CreateToolhelp32Snapshot مع Process32First + Process32Next نستطيع الحصول على معلومات عن كل التطبيقات التي تعمل حالياً ونقوم بفلترة ما نريد منها والحصول على مقبض التطبيق بواسطة OpenProcess لاغلاقه TerminateProcess (دالة أخرى)

هناك مثال (انظر المواضيع التالية): انقر هنا

تم تعديل هذه المشاركة بواسطة Junkie في 19 أغسطس 2007 في 16:08 — السبب: إضافة بسيطة

Do as I say, not as I do

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

#8

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

تصدق بالله يا أخي Junkie

إنت راجل عسل و زي السكر

أنا مش فاهم حاجة خاص :( :( :( :(

لو ممكن التوضيح أكثر

أو عمل مثال

أكون شاكر لك جدا

والله أنا مقدر المجهود إلي هتعمله

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

وشكرا

وفق الله الخير لنا و لوطننا الغالي مصر

المصري 2

5ientbalewdwdo9cgdqo.png
#9

ممكن أنا :P

لكل نافذة مقبض , فى عده دوال بتمكنا من أن أحنا نجيب مقابض النوافذ أهمهم ( أو أكثرهم استعمالا) هى FindWindow

دى دالة بنمرر لها حاجة من أتنين أو الأتنين :

1 - أسم النافذة ( و دى أكتر حاجة بنستعملها ) * .

2- الـ Classname و دى مش مستحبة نظرا لأن فرصة تكرار الـ Classname عن أسم النافذة.

لكن لو مررنا الأتنين يبقى أحسن.

القيمة اللى بترجع من الدالة دى هى حاجة من أتنين , يا صفر ( بالبلدى ) يا رقم آخر كبير شوية ( بالبلدى برده ) , لو صفر يبقى الدالة لم تجد نافذة بالمواصفات اللى أحنا ممرناها , غير كده هو المقبض.

* أسم النافذة نقصد بها عنوانها اللى موجود بالـ Title Bar أو بلغة الـ VB هو الـ Caption بتاع الـ Form

#10

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

قولي الأول إية الحلاوة دي يا مان

ومش كنت بترد ليه من الأول

المهم

أنا عملت مثال صغير

بس ممكن تعدل علية

أصله بيشتغل مرة واحدة

يعني بيقفل الصفحة مرة واحدة

ولو فتحنا الصفحة تاني مش بيقفلها إلا لما أقفل البرنامج و أفتحه من الأول

وطلب تاني معلش

خلية يغلق أكثرر من صفحة

يعني مثلا أنا أضيف أسماء 4 صفحات

ولو مفتوحين

يقفلهم على طول

و ياريت الإفادة

وشكرا

وفق الله الخير لنا و لوطننا الغالي مصر

المصري 2

_______2.rar

5ientbalewdwdo9cgdqo.png
#11

بدل ما أنت عامله فى الـ Form_load حطه فى Timer

#12

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

والله إنت واد فنان يا مان

إنت كنت فين من زمان يا راجل

كدة إتحلت مشكلة الإلاق التام

ولكن في مشكلة تانية

إزاي أحط برامج تانية معاه

يعني إزاي أحط مثلا 6 عنوانين للبرامج

أرجو الإفادة

وشكرا

وفق الله الخير لنا و لوطننا الغالي مصر

المصري 2

5ientbalewdwdo9cgdqo.png
#13

خلاص طالما محمد في الموضوع أنا رايح اتسكع في حارة تانية :D

السلام عليكم

Do as I say, not as I do

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

#14

كرر الكود كله 6 مرات !

تعديل :

Junkie كتب:
أنا رايح اتسكع في حارة تانية

هو احنا نستغنى عنك يا X قصدى :) Junkie !

تم تعديل هذه المشاركة بواسطة msayed2004 في 20 أغسطس 2007 في 02:17

#15

البركة فيك يا عم.. انت مش بتذاكر ليه :D (خلينا ننتقل الى الاستراحة مش أحسن :D)

على كل انا رايح انام دلوقتي.. احذف المشاركة الهايفة دي واللي قبلها لما تشوف او احذفها انا بكرة أصل زر النقر على الرسائل الخاصة بعيد :D

Do as I say, not as I do

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

#16

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

والله مش عارف اقولوا إية يا إخواني

على المجهود بتاعكم دا

بس لو في إساءة أدب مني

ممكن حد يقولي إزاي أخلي اي برنامج مش يتمسح من على الكمبيوتر

بعد تنصيبه

وكما أشيله من قائمة إنهاء المهام

أرجو الإفادة

وشكرا

وفق الله الخير لنا و لوطننا الغالي مصر

5ientbalewdwdo9cgdqo.png
#17
Junkie كتب:
البركة فيك يا عم.. انت مش بتذاكر ليه :D (خلينا ننتقل الى الاستراحة مش أحسن :D )

أنا أساسا كنت نايم و صحيت على بكاء بنت أختى , و الكمبروتر كان شغال (بعمل seeding للـ MSDN بتاعة VS6) فقلت أما أشوف الشباب.

المصري 2 كتب:
ممكن حد يقولي إزاي أخلي اي برنامج مش يتمسح من على الكمبيوتر

بعد تنصيبه

مش ممكن (بصفة عامة) لأنه زى أى ملف ممكن يتمسح الا لو كان شغال ( ممكن برضة يمسح و هو شغال بس بلا وجع دماغ ).

المصري 2 كتب:
وكما أشيله من قائمة إنهاء المهام

مش هقدر أساعدك فيها لأن نشر الأفكار و الأكواد دى ضار بسبب أستخدامها فى أمور تضر بالغير "لا ضرر و لا ضرار ;) "

أنت بتعمل Virus و لا ايه ؟!

تم تعديل هذه المشاركة بواسطة msayed2004 في 20 أغسطس 2007 في 03:31

#18

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

لا والله و لا virus ولا بتاع

كل إلي أنا بعمله

برنامج للشبكات

بس مش عايز حد يمسحه بعد ما يصتبه

وممكن سؤال

هل في طريقة أمنع بيها البرنامج من الإغلاق عندما أدوس على Alt + F4

وكمان كل لما أعمل كدو تشغيل البرنامج مع بدء الويندوز

وأجاي أعمل ريستارت

مش يشتغل البرنامج

يروح فاتح صفحة system 32

مش عارف لية

وشكرا على الإفادات من كل الأعضاء إلي شاركوا في هذا الموضوع

وشكرا

وفق الله الخير لنا و لوطننا الغالي مصر

المصري 2

تم تعديل هذه المشاركة بواسطة المصري 2 في 20 أغسطس 2007 في 17:55

5ientbalewdwdo9cgdqo.png
#19

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

أنا بحثت عن عدم إغلاق البرنامج عن طريق Alt+F4

ولقيت حل حلو جدا

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = vbFormControlMenu Then
Cancel = True
MsgBox " البرنامج لن يغلق بهذه الطريقة"
End If
End Sub</P>

وكود دا شغال حلو جدا

بس في مشكلة

مش شغال لما أستخدم Osen XP Suit 2003

لية بس هو على طول الحلو ما بيكملش

ياريت الإفادة

وشكرا

وفق الله الخير لنا و لوطننا الغالي مصر

المصري 2

5ientbalewdwdo9cgdqo.png
#20

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

تم حل مشكلة عدم الإلاق

ياريت حد يفدني

في المشكلة التانية

بتاعت تشغيل البرنامج لوحده أول ما يحمل الويندوز

يا ريت الإفادة من أهل الإفادة و الخبرة

وشكرا

وفق الله الخير لنا و لوطننا الغالي مصر

المصري 2

5ientbalewdwdo9cgdqo.png
#21

هتلاقى 20 مليون مليار بليون موضوع عن كده :P أبحث هتلاقى ;)

#22

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

ومين ألك إلي أنا مش ببحث

أنا والله ببحث

بس يا ريت تبحث معايا

وتساعدني شزية في المشكلة دي

أنا كل ما أحل مشكلة

تطلعلي مشكلة تانية

يا ريت تساعدني

وأكون شاكر ليك جدا

وشكرا

وفق الله الخير لنا و لوطننا الغالي مصر

المصري 2

5ientbalewdwdo9cgdqo.png
#23

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

معلشوا أنا عارف إلي أنا تعبتكم معايا كتير قوي

أصل أنا لسه يعني بقول يا هادي في الفيجوال

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

وكل المشاكل بتاعت البرنامج إلي أنا بعمله إتحلت

بس في سؤال صغير

هل يمكن إزالة البرنامج بعد ما يتصتب على الجهاز من Add or Remove Programs

ولو في طريقة

ياريت تقولوها

علشان نقفل ملفاتنا

ونقفل الموضوع دا باءة و لا إية رأيكم

وشكرا

وفق الله الخير لنا و لوطننا الغالي مصر

المصري 2

5ientbalewdwdo9cgdqo.png
#24

من الـ Registry , مسار :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

موضوع أدوات Osen أنا لا أستعمل أدوات بصفة عامة.

#25

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

شكرا

إخواني الأعضاء على صبركم وسعة صدركم لية

وإعطاء المساعدة لمن يطلبها دون إنتظار مقابل

فالمقابل هو ثقل ميزان حسناتكم

إن شاء الله

وجزاكم الله كل خير

وشكرا

وفق الله الخير لنا و لوطننا الغالي مصر

المصري 2

5ientbalewdwdo9cgdqo.png

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

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