PDA

View Full Version : مشکل در انتقال اطلاعات بین C#‎ , Flash فقط در سیستم خودم درست کار میکنه



acreza
دوشنبه 03 مهر 1391, 20:43 عصر
با عرض سلام
من یک فایل SWF دارم که توسط کامپوننت مربوطه در دات نت (2010) اون را به فرمم اضافه کرده ام (بصورت فول پیج مثل یک بکگراند در زیر همه کنترل های C#‎).
این فایل دارای حدود 15 منو هستش که 4 تا از اونها نیاز به ارتباط با C#‎ و دیتابیس داره یعنی وقتی روی هر کدام از اون چهار تا که کلیک میشه یک پیام برای C#‎ ارسال میشه تا برنامه C#‎ تشخیص بده که بر روی کدام منو کلیک شده و عملیات موبوط به جستجو در دیتابیس انجام و نتیجه در یک دیتا گرید نمایش داده میشود.

اینکار ( ارسال پیام از فلش به سی شارپ ) توسط دستور زیر در برنامه فلش در فریم مربوطه یا رویداد کلیک دکمه انجام میشه :

FSComman("FlashMessage","X")

وسپس در برنامه C#‎ توسط کدهای زیر خوانده میشود :
ابتدا در لود فرم دستورات زیر را قرار دادم :


this.axShockwaveFlash1.FSCommand +=
new AxShockwaveFlashObjects._IShockwaveFlashEvents_FSC ommandEventHandler(axShockwaveFlash1_FSCommand);

سپس Evant (رخداد) مربوطه توسط دستورات زیر جک میشه :


private void intro_FSCommand(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSC ommandEvent e)
{
// We only want to react if we got our command
if (e.command == "FlashMessage")
{

switch (e.args)
{
case "exit_intro":
....
...
.
{
با استفاده از دستور سویچ اون پیامی که دریافت شده بررسی شده و به ازای هر پیام کاری که باید انجام میشه .

همه چیز درسته و به درستی هم اجرا میشه ولی وقتی برنامه را که Build کرده ام از شاخه Debug کپی میکنم و روی یک سیستم دیگه میبرم مشکل بوجود میاد به اینصورت که کل برنامه که یک فرم هستش با فایل فلشی که بعنوان بک گراند این فرم هست به درستی نمایش داده میشه و همه منو ها درست کار میکنند ولی اون 4 تا منو که باید هنگام کلیک کردن پیام را به برنامه بدهند اینکار را نمیکنند یعنی هرچی کلیک میکنی هیچ اتفاقی نمی افته ( نه خطایی و نه اجرایی از طرف برنامه C#‎ )
من فایل فلش را ( نه فایل exe که build شده دات نت هستش را ) با یک فلش پلیر باز میکنم تا خطایی که رخ میده را ببینم چیه ؟!
وقتی روی هر کدام از اون دکمه کلیک میکنم خطایی شبیه زیر در یک پنجره نمایش داده میشد :
Security sandbox violation: %1 cannot make fscommand calls to %2 (allowScriptAccess is %3).


مشخصات برنامه های سیستم من :
ویندوز سون 7 که 32 بیتی هستش
استفاده از دات نت فریم ورک پیشفرض هنگام نوشتن برنامه C#‎ که 4client هستش

روی سیستم های زیر هم برنامه را بعد از Build شدن انتقال دادم و تست کردم ولی همه مشابه هم هیچ اتفاقی نمایفته :
ویندوز XP 32bit
ویندوز سون 32 بیتی
ویندوز سون 64 بیتی


اول توی نت کلی به زبان انگلیسی سرچ کردم معمولا همه همین مشکل را داشتند و معمولا نوشته بودند که این انتقال پیام فقط در ویندوز 7 کار میده نه XP !!!

ولی من رویه یه سیستم که ویندوز XP32 بیتی بود همهن نسخه از ویژوال استادیو دات نت را نصب کردم . و متوجه شدم که وقتی این برنامه را نصب میکنم برنامه درست کار میکنه و انتقال پیام به درستی انجام مبشه حتی در XP

هرچی فایل Dll فلش و شاکویو فلش و OCX اون هم بود در شاخه system32/Macromed/Flash هم از روی سیستم منبع کپی میکنم ولی فایده نداره که نداره

به نظر شما باید چیکار کنم بدجور گیر کردم 2 روزه درگیرم و واقعا برام مهمه که حل بشه یک پروژه کاری هستش
لطفا کمکم کنید

با تشکر