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

طريقة لنقل قيمة من webform الى winform

مغلق
بدأه akrumooz في 31 مايو 2006 · 1 رد · 604 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

*-)

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

احتجت لنقل قيمة من webform الى winform في احد المشاريع و بحثت كثيرا على النت

حتى وصلت الى ما اريد و الحمد لله

و مؤخرا اثير الموضوع في هذا المنتدى

/index.php?showtopic=96865

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

و الحقيقة انه يمكن عمل ذلك بطريقة اخرى

يمكن مثلا استخدام هذه الطريقة

عمل Application variable

وهو لمن لا يعرف مثل ال session لكن على مستوى موقع الويب كله بمعنى ان قيمته واحدة لكل مستخدمي الموقع مثل القيم ال ststic

هذا المتغير عبارة عن hash table به عمودين الاول ياخذ رقم الاي بي الخاص بالزبون مع اسم المتغير الذي اريد ارساله الى الوينفورم و الثاني ياخذ قيمة المتغير

و في الوينفورم يتم استدعاء ويب سيرفس تقوم باستدعاء قيمة المتغير من ال Application variable من خلال ال key و هو رقم الاي بي الخاص بالزبون مع اسم المتغير كما قلنا

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

و الان اليكم الطريقة الافضل

و هي باستخدام الجافا سكريبت

" و العجيب أن الناس دائما يفكرون في اصلاح العالم من حولهم و لا يفكرون في اصلاح انفسهم "

Windows Live Messenger

#2

يمكنك كتابة دالة مثل هذه الدالة

function runApp()
		{
			var shell = new ActiveXObject("WScript.shell");
			shell.Run("c:\\ArabTeam2000\\Akram.exe "+document.getElementById('txtParam1').value+"  "+ document.getElementById('txtParam2').value,1,true)
		}

حيث ان txtParam1 و txtParam2 اسامي ل كنترولز تحمل القيم المراد ارسالها الى الوين فورم الذي هو موجود في

c:\\ArabTeam2000\\Akram.exe

و يكون التطبيق مجهزا لاستقبال parameters بتعديل ال main() لتصبح

static void Main(string [] args)

ثم فتح الفورم المقصودة وهي مثلا myWinForm و ارسال القيم الى المتغيرات الخاصة بها

Application.Run(new myWinForm(args));

حيث يوجد constructor للفورم ياخذ array of strings ثم يقوم بحفظ قيم المتغيرات param1, param2

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

لكن لو كان تطبيق الويندوز مفتوح اصلا و مطلوب تمرير قيمة متغير الى احدى الفرم فليست هذه الطريقة بكل تاكيد :rolleyes:

==================================================

يمكن استخدام shell.Exec بدلا من shell.Run

shell.Exec("c:\\ArabTeam2000\\Akram.exe "+document.getElementById('txtParam1').value+"  "+ document.getElementById('txtParam2').value)

ملحوظة

هذا المتغير

var shell = new ActiveXObject("WScript.shell");

غير متاح لكل اصدارات الويندوز

اعتقد انه لما بعد ويندوز 98

بالتوفيق :)

" و العجيب أن الناس دائما يفكرون في اصلاح العالم من حولهم و لا يفكرون في اصلاح انفسهم "

Windows Live Messenger

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

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