السلام عليكم
جميعنا يتذكر الكرتون علاء الدين والمصباح السحري. ذلك الجني متوفر في الدوت نت وكيفية إدماجه إلى تطبيقك هي غاية هذا الموضوع.
الكود يعتمد على مكتبتين ديناميكيتين وهما: AgentServerObjects.dll و AgentObjects.dllويمكنان من التصرف في الجني بمعنى إظهاره, إخفاءه, جعله يقوم ببعض الحركات. الأمر ليس مرتبط فقط بهذا الجني بل هنا تجسيدات وأشكال أخرى. يكفي أن تقوم بتحميل الملفacs المخصص للتجسيد وتغير إسم الملف المقابل له في الكود
إثر تحميل أحد تلك الملفات وتنصيبه ستجد الملف الخاص للتجسيد في المجلد c:\WINNT\msagent\chars بالنسبة لمستعملي ويندوز2000 أوc:\WINDOWS\msagent\chars المجلد بالنسبة لمستعملي XP
هذه الدالة الرئيسية لإظهار الجني:
private void ShowAgent()
{
AgentServer Srv = new AgentServer();
if (Srv == null)
{MessageBox.Show("ERROR: Agent Server couldn't be started!"); }
IAgentEx SrvEx;
SrvEx = (IAgentEx)Srv;
int dwCharID = 0, dwReqID = 0;
try
{
String strAgentCharacterFile = null;
strAgentCharacterFile = AppDomain.CurrentDomain.BaseDirectory + "\\genie.acs"; //merlin.acs";
SrvEx.Load(strAgentCharacterFile, out dwCharID, out dwReqID);
}
catch (Exception)
{
MessageBox.Show("Failed to load Agent character! Exception details:");
}
SrvEx.GetCharacterEx(dwCharID, out CharacterEx);
CharacterEx.Show(0, out dwReqID);
CharacterEx.SetPosition(Screen.PrimaryScreen.WorkingArea.Width-100, Screen.PrimaryScreen.WorkingArea.Height-100);
CharacterEx.Speak("Assalamou Alaykom Arabteam2000 members :)", null, out dwReqID);
}هذا الجزء لإستدعاء قسم المستخدم للجني ثم التأكد من وجوده أم لا
AgentServer Srv = new AgentServer();
وبهذه التعليمة يتم تحديد المسار وهو نفس مجلد ملف التشغيل للبرنامج. لذلك يجب إضافة الملفgenie.acs في المجلد المحدد أو غيره الى مكن وجود ال acs
strAgentCharacterFile = AppDomain.CurrentDomain.BaseDirectory + "\\genie.acs";
تحميل متعلقات الجني
SrvEx.Load(strAgentCharacterFile, out dwCharID, out dwReqID);
إظهار الجني
CharacterEx.Show(0, out dwReqID);
تحديد مكان ظهور الجني وهو الركن الأيمن الأسفل للشاشة, وبكيفية متكيفة مع حجم الشاشة
CharacterEx.SetPosition(Screen.PrimaryScreen.WorkingArea.Width-100, Screen.PrimaryScreen.WorkingArea.Height-100);
هنا تكتب النص الذي سيظهر مع الجني, أو بالحرى يقوله الجني. ولكي يتكلم يجب تحميل SAPI SDKو إضافتها للمشروع
CharacterEx.Speak("Assalamou Alaykom Arabteam2000 members :)", null, out dwReqID);هذه الواجهة الرئيسية للبرنامج وبها تختار الخروج أو غلق النافذة والبقاء برفقة الجني :)
عند التشغيل لن تظهر النافذة الرئيسية ولا الجني إنما ستظاف أيقونة إلى عمود المهام لحاسوبك وذلك بإستعمال الكود التالي:
[STAThread]
static void Main()
{
Process aProcess = Process.GetCurrentProcess();
string aProcName = aProcess.ProcessName;
if (Process.GetProcessesByName(aProcName).Length > 1)
{
MessageBox.Show("Genie '" + aProcName + "' is already active !!!", "Application already running", MessageBoxButtons.OK, MessageBoxIcon.Stop);
Application.Exit();
return;
}
Form1 f1 = new Form1();
System.Windows.Forms.Application.Run();
}عوض الكود التلقائي الذي يولده الفيزوال ستوديو.
أترككم الآن مع الكود متمنيا لكم قضاء وقت ممتع مع الجني :)