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

كيف اتعامل مع برنامج اخر برمجيا؟؟

مغلق
بدأه زائر في 25 يوليو 2001 · 9 رد · 849 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

الى جميع الاخوة الاعزاء

س}الي هو كيف اتعامل مع برنامج ثاني اما نتائج او ادخل عن طريق برنامج اعمله بالدلفي...

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

اتمنى ان الفكره فهمت وشكرا

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

#2

السلام عليكم

اخي صدقني لم افهم شيئ اطلاقا مابهاedit كيف ؟؟؟؟؟؟؟؟؟؟؟

ارجو التوضيح

#3

قم بأخذ الHandle لنافذة ال Edit ومن ثم أرسل رسائل WM_CHAR إلى تلك النافذة ولا يهم إذا كانت النافذة أو ال Edit في برنامج آخر أو لا ... :)

Coding on the Cloud and for the Cloud!

My Blog

#4

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

كيف تعمل ذلك بالدلفي ...

والى الخ هاني في الحقيقة شرحك لم افهمه جيدا

وشكر لكم جدا...

#5

1-فهمت انك تريد حماية البرنامج رقم واحد بكلمة سر

اي انتصنع حماية لبرنامجك

2-او تريد كتابة كلمة المرور اليا في edit لبرنامج خارجي اي رقم واحد

وضح اكثر من فضلك وساجيبك إن شاء الله

انتضرك

#6

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

الذي اريده هو رقم اثنين .

وشكرا جزيلا على حرصكم في فهم السؤال جيدا واتمنى منكم العذر على عدم اضاغتي الجيده للسؤال ...

تحياتي

#7

السلام عليكم

اخي delphiprograme اشكرك على صبرك عليا

اخي لقد فكرت فيها سابقا لكني لم اجد الحل

اما الان فإن شاء الله ساجده لاني ساكسب من ورائه حسنة

حسب ما اعلم

1- لابد من معرفة classe او اسم النافدة المفتوحة (البرنامج1)

2-التعليمة sendmessage

...........

وفقنا الله

لاتياس وحاول معاي ولنبقى على اتصال

نشكر كل من ساهم في هد ا الموقع وكل الاعضاء

والى الامام دائما

#8

أخواني أنا كما ذكرت وكما ذكر الأخ Pati فإن العملية تتم بمعرف Handle النافذة التي تريد مثلا الكتابة فيها من بعد وذلك يتم مثلا بمعرفة موقعها في احداثيات الشاشة أو بمعرفة Handle النافذة الأساسية واسم كلاس الأداة فمثلا أداة النص العادية اسم الكلاس تبعها EDIT .. وبعد ذلك تستخدم PostMessage أو SendMessage مع اسم أو رقم الرسالة ومعلومات أخرى عن الرسالة ..

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

....

Coding on the Cloud and for the Cloud!

My Blog

#9

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

ولو تكرمت لنا بمثال حتى بلغة ِc لكن اشرح امام كل سطر لعلي افهم شيئ وإن شاء الله اترجمه

اشكرك

ودائما الى الامام ياشباب

اخوك pati

#10

sendmsg.gif

هذا هو السورس كود :

http://arabteam.nicmatic.com/atassi/sendmsg.zip

البرنامج يبحث عن ال Notepad وإذا وجدها يمكنك أن ترسل الكتابة في مربع النص إلى ال Notepad وذلك يالضغط على الزر ..

البرنامج جدا واضح وسهل ولا يحتاج إلى كم API ..

فكرة البرنامج في الأصطر التالية :

BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
{
	TCHAR str[100];

	GetWindowText(hWnd, str, 100);

	if (NULL != _tcsstr(str, _T("Notepad")))
	{
		CSendMsgDlg &dlg = *(CSendMsgDlg *)lParam;

		dlg.m_hWndNotebad = (DWORD)hWnd;

		return FALSE;
	}

	return TRUE;
}

void CSendMsgDlg::OnFindNotepad() 
{
	m_hWndNotebad = 0;

	EnumWindows(EnumWindowsProc, (LPARAM)this);

	if( m_hWndNotebad == 0)
	{
		MessageBox(_T("Cannot fine the Notepad program, make sure that's currently running."));
	}

	UpdateData(FALSE);
}

void CSendMsgDlg::OnSend() 
{
	if (m_hWndNotebad != 0)
	{
		HWND hChildEdit = 
			FindWindowEx(HWND(m_hWndNotebad), NULL, _T("EDIT"), NULL);

		if (hChildEdit == NULL)
		{
			MessageBox(_T("No edit windows in the destination window."));
			return;
		}

		UpdateData(TRUE);

		// Send each character to the destination window.
		for (int i = 0; i < m_strText.GetLength(); i++)
		{
			// Can be SendMessage too.. (must use :: to call the API)
			::PostMessage(hChildEdit, WM_CHAR, (WPARAM)m_strText, NULL);
		}
	}
	else
	{
		MessageBox(_T("Invalid Window Handle"));
	}
}

Coding on the Cloud and for the Cloud!

My Blog

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

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

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

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

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

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