ایجاد اشکال در کار با با پلاگین fyeo

loo30fer

کاربر متخصص مولتی مدیا بیلدر
سلام ,
من برای پروژم میخوام عین همین پیوستی که گذاشتم کار کنم ولی وقتی به جای این پیوست که از عکس های کم حجم استفاده شده من میخوام از عکس های 400 تا 700 کیلو بایتی استفاده کنم که وقتی اونها رو Encrypt میکنم و جای اونها قرار میدم و اجرا میکنم هیچ مشکلی نیست فقط مشکل اینجاست که وقتی کاربر از لیست روی اسم کلیک کنه و آروم و با تاخیر با کیبورد روی اسمها بره تا اسمهارو نشون بده هیچ مشکلی نیست و وقتی یکم تند بخواد از picture 1 بره رو picture 7 سریع برنامه پیغام Send Error میده و برنامه بسته میشه حالا من چیکار باید بکنم تا این مشکل حل بشه , اصلا میشه کاری کرد وقتی روی pictue 1 میره تا عکس رو Decyrypt نکرده و ReplaceImage نشده و اون رو حذف نکرده نره روی Picture 2 ممنون میشم کمکم کنید

مشاهده پیوست fyeo demo.rar
 

evil_gates

اين نيز بگذرد ...
... میشه کاری کرد وقتی روی pictue 1 میره تا عکس رو Decyrypt نکرده و ReplaceImage نشده و اون رو حذف نکرده نره روی Picture 2

دوست عزيز

در حال حاضر دسترسي به mmb ندارم مثال شما رو ببينم. اما براي حل مشكلتون پيشنهاد ميكنم در پايان دستورات Decrypt تون يك متغير بزاريد و متغير رو مقدار دهي كنيد.

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

چون mmb دستورات رو خط به خط و از بالا به پايين اجرا ميكنه دراينصورتي تا عكس شماره 1 Decrypt نشه و replace و بعدشم حذف نشه به خطي كه متغير وجود داره نميرسه و متغير مقدار دهي نميشه.

پس تا اينجا اگه بريم سراغ picture2 چون شرط شما نقض شده هست دستورات داخل شرط كه همون picture2 شما هست نميره.

اما وقتي به ترتيب دستورات اجرا بشه تا به متغير برسه شرط شما هم صحيح خواهد شد و picture2 نمايش داده ميشه.

موفق باشيد.
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
میتونید یک متغیر تعریف کنید و هنگام شروع عملیات دیکریپت بهش مثلاً مقدار یک رو بدید و پس از اتمام عملیات مقدارش رو به صفر تغییر بدید
و کل عملیات رو داخل یک شرط قراربدید که تنها در صورتی که مقدار اون متغیر برابر صفر باشه، عملیات اجرا بشه، اینطوری میتونید مطمئن باشید که تا یک عملیات به اتمام نرسیده، بعدی اجرانمیشه.

البته شئ ListBox در MMB این قابلیت رو نداره که بشه غیرفعالش کرد، میتونید مثلاً مخفیش کنید یا هرچیز دیگه ای ...!

[ویرایش]
ممنون از evil_gates عزیز بابت راهنماییشون، من پستشون رو ندیده بودم :wink:
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
من خودم الان این کد ویرایش کردم همونطور که گفتین میخواستم ببینید درسته یا نه
کد:
ListBoxGetSelectedItems("ListBox","Items$,ItemsNum$,#,NumItems")
For i=NumItems To 1
  ArrayItem$ = GetArrayItem(Items$,#,i)
Next i
in$='<Embedded>\\'+ ArrayItem$ +'.jpg.Encrypt'
out$='<Embedded>\\'+ArrayItem$+'.jpg'
key$='Nevercom'
param$=in$+'|'+out$+'|'+key$
PluginSet("PlugIn","param$")
PluginRun("PlugIn","DeCrypt")
PluginGet("PlugIn","status")
If (status=0) Then
  ReplaceImage("HotSpot","out$")
  PluginSet("PlugIn","out$")
  PluginRun("PlugIn","FastWipe")
End


کد:
ListBoxGetSelectedItems("ListBox","Items$,ItemsNum$,#,NumItems")
For i=NumItems To 1
  ArrayItem$ = GetArrayItem(Items$,#,i)
Next i
If (List=1) Then
  List=0
  in$='<Embedded>\\'+ ArrayItem$ +'.jpg.Encrypt'
  out$='<Embedded>\\'+ArrayItem$+'.jpg'
  key$='123456'
  param$=in$+'|'+out$+'|'+key$
  PluginSet("PlugIn","param$")
  PluginRun("PlugIn","DeCrypt")
  ReplaceImage("HotSpot","out$")
  PluginSet("PlugIn","out$")
  PluginRun("PlugIn","FastWipe")
  PluginGet("PlugIn","status")
  If (status=0) Then
    List=1
  End
End
 
آخرین ویرایش:

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
بله، کدی که نوشتید درسته
فقط باید به چند نکته توجه کنید:
شما الان شرطتون این هست : List = 1، پس باید حواستون باشه که مثلاً با اجرای پروژه مقدار 1 رو به متغیر List بدید تا برای اولین باری که روی یک آیتم در لیست باکس کلیک میشه، عملیات اجرا بشه.
استفاده از متغیر status برای چک کردن موفقیت آمیز بودن عملیات بنظر بنده مطلوب تر از چک کردن وجود فایل هست، یا به هرحال یکی از این دو
ضمن اینکه میتونید List = 1 رو خارج از عبارت شرطی هم قرار بدید، تا اگر برای یک عکس مشکلی پیش اومد، عملیات برای بقیه ی عکسها اجرا بشه.
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
ببخشید یه سوال دیگه داشتم میخواستم ببینم میشه این عکس که Replace میشه و میاد تو پروژه رو با استفاده از Wallpaper Plugin عکس از پروژه گذاشت برای تصویر پشت رمینه یا باز باید با این پلاگین Fyeo دکریپت بشه و برای پشت زمینه قرار داده بشه و باز حذف بشه
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
این فایلها (عکسها) پس از دیکریپت شدن نمایش داده میشن و بعد پاک میشن، حالا شما میتونید بلافاصله پس از دستور ReplaceImage مثلاً اون رو به پلاگین Wallpaper بفرستید و بعد پاکش کنید،
دقیقاً به این خاطرپاکشون میکنیم که این فایلها همون فایلهای خام ما هستند که برای اینکه کسی بهشون دسترسی نداشته باشه انکریپتشون کردیم.
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
میخواستم بدونم آیا این پلاگین fyeo یا Wallpaper Plugin محدودیت داره چون برای پروژم که از 3500 تا عکس داره و مثلا اگه 1000 تا عکس رو Decyrypt کرد و پشت زمینه قرار داده شد دیگه روی عکس های دیگه کار نکنه یعنی Decyrypt نکنه و پشت زمینه قرار نده
ببخشید اگه جدا جدا مطرح میکنم به خاطر قوانین انجمنه
 
آخرین ویرایش:

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
بخشید، متوجه سوالتون نمیشم!
مثلا اگه 1000 تا عکس رو decyrypt کرد و پشت زمینه قرار داده شد دیگه روی عکس های دیگه کار نکنه یعنی decyrypt نکنه و پشت زمینه قرار نده
ممنون میشم واضح تر سوالتون رو بیان کنید
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
منظورم اینکه وقتی پروژم اجرا میشه و برای کارم باید از پلاگین Fyeo استفاده کنم که فایلهام Decyrypt کنه چون تعداد عکسهام زیاده حدود 3500 تا , میگم اگه مثلا هزار باز دستور زیر به پلاگین ارسال بشه اشکال نداره که یعنی محدودیت نداره که که مثلا 500 بار دستور زیر به پلاگین ارسال بشه و دفعه 501 دیگه پلاگین عمل Decyrypt رو انجام نده
کد:
param$=in$+'|'+out$+'|'+key$
PluginSet("PlugIn","param$")
PluginRun("PlugIn","DeCrypt")
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
خب بنده هیچوقت این رو تست نکردم که براساس تجربه عرض کنم، اما بر اساس تئوری، خیر؛ نباید همچین مشکلی بوجود بیاد.
وگمان هم نمیکنم به همچین مشکلی بر بخورید !
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
سلام خدمت اساتید انجمن و دوستان
کد دیروز رو کاملتر کردم دیروز به ذهنم رسید که شاید فایل که حذف میشه قابل بازیابی باشه و اومدم درایوم Recovery کردم و بعضی عکس ها برگشت برای همین این کار به فکرم اومد که یه جوری فایل خراب کنم و جاش فایل بسازم و اون حذف کنم و اومدم از تابع StrToFile استفاده کردم و وقتی امتحان کردم با برنامه های مختلف تست کردم نتونستن فایلهای من Recovery کنن
حالا میخواستم ببینم کارم کجاش اشکال داره و راه حل بهتری هست یا نه تا غیر قابل بازبابی بشن

کد:
ListBoxGetSelectedItems("ListBox","Items$,ItemsNum$,#,NumItems")
For i=NumItems To 1
  ArrayItem$ = GetArrayItem(Items$,#,i)
Next i
If (Load=1) Then
  Load=0
  in$='<Embedded>\\'+ ArrayItem$ +'.jpg.Encrypt'
  out$='<Embedded>\\'+ArrayItem$+'.jpg'
  key$='123456'
  param$=in$+'|'+out$+'|'+key$
  PluginSet("PlugIn","param$")
  PluginRun("PlugIn","DeCrypt")
  PluginGet("PlugIn","status1")
  If (status1=0) Then
    FileExist("out$","i")
    If (i=1) Then
      ReplaceImage("HotSpot","out$")
      ReturnVal1=StrToLine(out$,Tor$,1,TRUE)
      PluginSet("PlugIn","out$")
      PluginRun("PlugIn","FastWipe")
      PluginGet("PlugIn","status2")
      If (status2=0) Then
        ReturnVal2=StrToFile(out$,CharLine$,TRUE,FALSE)
        FileExist("out$","i")
        If (i=1) Then
          PluginSet("PlugIn","out$")
          PluginRun("PlugIn","FastWipe")
          PluginGet("PlugIn","status3")
          If (status3=0) Then
            Load=1
          End
        End
      End
    End
  End
End
کدهای Page Start

کد:
Tor$='010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101'
CharLine$=''
Load=1
 
آخرین ویرایش:
من اینو از یه برنامه نویس حرفه ای شنیدم که هیچ راهی نیست که فایل مورد نظر غیر بازیابی بشه ولی راه راهی هست که خیلی بازیابیش سخت بشه حالا نمیدونم درست گفته یا نه
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
به نظر من احتمالش هست که بشه من امتحان کردم برنامه Recovery عکسهارو برگردوند ولی نمیتونست عکس ها رو نشون بده و اگه یه عکس رو داخل Notepad بندازین نوشته ها همانند کدهای Database هست ولی من که عکس رو برگردوندم و ذخیره کردم عکسها به هیچ وجه کار نمیکردن و وقتی داخل Notepad انداختم اون نوشته ها هزار درجه فرق کرده بود شده بود به زبان چینی حالا به نظر شما یه ترفند جالب نیست
 
من فقط میدونم اگه یک فایل رو پاک کنید و یعد در همون مسیر یک فایل الکی با همون اسم و فرمت بسازید احتمال ریکاوری رو 70 درصر کاهش میده
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
من اینکار کردم ولی باز بازیابی شد و عکسهارو با کیفیت اول و عین خودش نشون داد و اگه تو اون کد نگاه کنید اینکار کردم و دوباره حذفش کنه
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
خب برای بهتر شدنش میتونید یک سری کاراکتر رو بصورت random تو فایل ذخیره کنید
ولی این پلاگین خودش تابعی بنام Wipe داره که اینکار رو خیلی بهتر انجام میده ولی کمی کندتر از تابع FastWipe هست
اون رو هم امتحان کنید، فکر کنم نتیجش بهتر باشه.
 

BEHESHT

Well-Known Member
ببخشید عذر می خوام از همه فک می کنید به این ساده گی می شه این کار رو کرد :shock:

تکنیک unrecoverable از چندین مرحله تشکیل شده

که تنها چیزی که بین تینیک unrecoverable و کار شما یکی هست هیچی نیست :green:

شوخی کردم حذف فایل هست :wink:

تو لینکوس خیلی راحت یه دستور shell واسه این وجود داره اما ویندوز به قول یه بنده خدایی از اونجایی که اوپن سورس نیست نامردی توش زیاده:-?

اما این فکر رو اصلا نکنید با این کار می تونید جلوی ریکاوری کردن رو بگیرد شاید کمی موثر باشه اونم درصورتی که درایو طرف فقط جای خالیش در حد 20 مگابایت باشه چون اشاگر ویندوز جایی رو شروع می کنه یه فایل رو ضبط کرد رو هارد فایل بعدی هم ضبط کرد اشارگر آخر فایل دوم می مونه و در صورت حذف فایل اول به و اضافه کردن فایل بعدی فایل سوم آخر فایل دوم اضافه میشه مگر این که به آخر هارد رسیده باشه و جریان های بعدیش اشارگرش تقریبا مثل دیتا بیس ها هست که یه رکورد حذف میشه و...

امیدوارم خوب توضیح داده باشم اگه خدا بخواد آینده همچین امکانی تهیه کنیم واسه برنامه نویس ها
 

جدیدترین ارسال ها

بالا