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

التحكم باجهزة الادخال برمجيا

مغلق
بدأه راما.M في 6 مارس 2007 · 4 رد · 825 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

قمت بعمل برنامج يراقب سطح المكتب عبر الشبكة

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

و احداث لوحة المفاتيح سنرسل الاحداث للمستخدم و يطبقها

هذا هو كود تنفيذ الحدث للمستقبل على جهازه :

var p:TPoint; hh:HWND; k,u:integer;	 rec:tRect;
begin
GetCursorPos(p);
hh:=WindowFromPoint(p);   

GetWindowRect(hh,rec);
k:=MakeLParam(p.x-rec.left,p.y-rec.top);

u:=GetParent(hh);		
if u=0 then u:=hh;

SetForegroundWindow(u);
//PostMessage(hh,WM_LBUTTONDOWN,MK_LBUTTON,k);
PostMessage(hh,WM_LBUTTONUP,MK_LBUTTON,k);
PostMessage(hh,WM_LBUTTONDBLCLK,13,k);

والمشكلة هي :

1-الأوامر تارة تنفذ و أخرى لا .أي أمر الضغط المزدوج لا ينفذ منفردا و مجلد يفتحه و مجلد لا

2-عملت تطبيق صغير نفذته على جهاز ثم وضعته على جهاز آخر فلم يعمل

أمانة من يعرف لا يتكاسل بالرد

أرجووووكم احتاج للمساعدة

تم تعديل هذه المشاركة بواسطة راما.M في 6 مارس 2007 في 17:41

#2

ما تريدين عمله Mouse simulation

استخدمي التابع mouse_event

مثال :

http://www.swissdelphicenter.ch/torry/showcode.php?id=360

لا أعلم ما الفائدة من هذا الجزء في الكود

GetCursorPos(p);
hh:=WindowFromPoint(p);   

GetWindowRect(hh,rec);
k:=MakeLParam(p.x-rec.left,p.y-rec.top);

u:=GetParent(hh);		
if u=0 then u:=hh;

SetForegroundWindow(u);

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#3

Windows NT/2000/XP: This function has been superseded. Use SendInput instead

عليك الإطلاع على

SendInput Function

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#4

الله...

يا سلام

و الله صارت :rolleyes:

الله يعطيك ألف ألف ألف ألف ألف ألــــــ ألف ـــــــف عافية

كنت عمببحث عنها لأسابيع

شكرا جزيلا أخي cipher

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

كنت أضع هذا الكود للحصول على مقبض ما تحت مؤشر الماوس و اكمال برامترات الحدث و كان يعيطيني الكثير من المشاكل

هذا هو كود الرابط :

// Set the mouse cursor to position x,y:
// Maus an Position x,y setzen:
SetCursorPos(x, y);

// Simulate the left mouse button down
// Linke Maustaste simulieren
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

// Simulate the right mouse button down
// Rechte Maustaste simulieren
mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);

// Simulate a double click
// Einen Doppelklick simulieren
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
GetDoubleClickTime;
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

// Simulate a double click on a panel
// Einen Doppelklick auf einen Panel simulieren
SendMessage(Panel1.Handle, WM_LBUTTONDBLCLK, 10, 10)

//keybd event
Keybd_event('key:DWORD',0,KEYEVENTF_EXTENDEDKEY ,0)
#5

أوكي أخت راما

يمكن مافي داعي لحتى تعذبي حالك بهيك أكواد

في مكونات جاهزة تؤدي هذا العمل بكفائة وسرعة أكبر

كل ما يتوجب عليك هو أخذ الصورة من الزبون ومن ثم النقر عليها ليقوم بتنفيذ الأمر على جهاز الزبون

أسم المكون MsgSimulator واذا أردت أرفعه لك .

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

بالمناسبة :

ما صيغة الصورة التي إلتقطيها من جهاز الزبون هل هي bmp ولا jpg ؟؟؟؟؟؟؟؟؟؟؟؟؟

وشكراً.........

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

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