Fa save as یک عکس از داخل سی دی

mehranrm7

New Member
می خوام توی کار یک قسمت بزارم که کلیک که می کنن بتونن عکس رو (wallpaper) هر جایی که دوست دارن save کنن یعنی یه جور قسمت دانلود، همچنین اگه بشه این کار رو با پسوندهای دیگر هم کرد
توی خود نرم افزار سرچ کردم یک script به نام save داره که فقط ظاهری یعنی منوی Save رو باز می کنه ولی دیگه کاری نمی کنه
 

evil_gates

اين نيز بگذرد ...
دوست عزيز

دستور SaveFile به تنهايي كاري انجام نميده.

شما بايد بعد از اينكه با استفاده از اين دستور و فيلتري كه براي نوع فايل تعيين ميكنيد با استفاده از CBK_OpenDir و CBK_OpenFile مسيري كه كاربر براي ذخيره فايل انتخاب كرده رو تو يك متغير رشته اي برگردونيد.

بعد ميتونيد به كمك پلاگين هايي كه براي كپي فايل استفاده ميشن مثل MicrobeFileAndFolder فايلتون رو تو مسير بدست اومده كپي كنيد.

اين كد رو ببينيد و توسعش بديد:
کد:
SaveFile("JPEG(*.jpg)|*.JPEG|All Files|*.*||","*.jpg")
path$=CBK_OpenDir+CBK_OpenFile
Message("","path$")
 

hr1510

Active Member
البته با اجازه از evil_gates عزيز :
من يه پيشنهاد ديگه هم دارم كه به جاي پلاگين از SysCommand استفاده كني البته در صورتي كه حجم عكس هايي كه از داخل cd دانلود مي كنه اونقدر نباشه كه پرو‍ژه رو خراب كنه و همش هنگ كنه .
پلاگين هم مزيت هاي خودش رو داره و از دستور SysCommand خيلي جلوتره اما اگر زياد جدي نيست از اين دستور استفاده كن . يه مثال گذاشتم برو ببين ::wink:
 

پیوست ها

  • copy file.zip
    280.8 کیلوبایت · بازدیدها: 39

mehranrm7

New Member
آلودگی plug-in

دوست عزيز

دستور SaveFile به تنهايي كاري انجام نميده.

شما بايد بعد از اينكه با استفاده از اين دستور و فيلتري كه براي نوع فايل تعيين ميكنيد با استفاده از CBK_OpenDir و CBK_OpenFile مسيري كه كاربر براي ذخيره فايل انتخاب كرده رو تو يك متغير رشته اي برگردونيد.

بعد ميتونيد به كمك پلاگين هايي كه براي كپي فايل استفاده ميشن مثل MicrobeFileAndFolder فايلتون رو تو مسير بدست اومده كپي كنيد.

اين كد رو ببينيد و توسعش بديد:
کد:
SaveFile("JPEG(*.jpg)|*.JPEG|All Files|*.*||","*.jpg")
path$=CBK_OpenDir+CBK_OpenFile
Message("","path$")

با تشکر
بالاخره ما هم خطر آلوده شدن به پلاگین رو به جان خریدیم و نشستیم ور رفتن، -قابل ذکر که هیچی نمی دونستم در مورد پلاگین، حتی چه طوری باید تو پروژه گذاشت، خوشبختانه اینجا و تو راهنمای خود برنامه دیگه همه چی هست- ولی با علم ما تا اینجا که نوشتم بیشتر قد نداده

کد:
SaveFile("JPEG(*.jpg)|*.JPEG|All Files|*.*||","test2.jpg")
path$=CBK_OpenDir+CBK_OpenFile
Message("","path$")
set$='c:\test.jpg|test2.jpg|True'
PluginSet("MFilesAndFolders","set$")
PluginRun("MFilesAndFolders","Copy_File")
PluginGet("MFilesAndFolders","get$")
If (get$='1') Then
  Message("File copied","")
Else
  Message("Coping failed","")
End
از همون MicrobFileAndFolder استفاده کردم فقط الان این اسم رو نمی تونه بگیره یعنی این path$ رو نمی شه بهش خوروند، به خاطر همین اسم اولیه و اسم نهایی که نشون میده رو یکی کردم.
ولی مسیر رو درست میره یعنی تو همون شاخه ای که انتخاب می کنی کپی می کنه.
اگه راهنمایی می دونین که این path$ رو باید چه طوری نوشت به جای test2.jpg دوم، ممنون میشم.
$path خالی و "$path" رو امتحان کردم
 

mehranrm7

New Member
امبدد = Embeded

البته با اجازه از evil_gates عزيز :
من يه پيشنهاد ديگه هم دارم كه به جاي پلاگين از SysCommand استفاده كني البته در صورتي كه حجم عكس هايي كه از داخل cd دانلود مي كنه اونقدر نباشه كه پرو‍ژه رو خراب كنه و همش هنگ كنه .
پلاگين هم مزيت هاي خودش رو داره و از دستور SysCommand خيلي جلوتره اما اگر زياد جدي نيست از اين دستور استفاده كن . يه مثال گذاشتم برو ببين ::wink:

ممنون روش بسیار ساده و سریعی هست ولی متاسفانه همونطور که گفتین مثل اینکه فایل داخل برنامه یک جورایی مخفی و انگار همراه برنامه میاد و نمیشه یک عکس دیگه رو انتخاب کرد بیرون از فایل (تعداد عکس های من هم زیاد و در مورد embed کردن هم این بیلدر هی اخطار می کنه خلاصه ما فعلا رسیدیم به همون plugin و تقریبا هم جواب داده توضیحشم هم همین بالا نوشتم.
سپاسگزار از زحمتتون
 

hr1510

Active Member
براي مشخص كردن نوع و فرمت فايل ذخيره شونده و آدرس دهي .
کد:
SaveFile("JPEG(*.jpg)|*.jpg|All Files|*.*||","*.jpg")
دريافت مسير و نامي كه كاربر براي ذخيره فايل انتخاب مي نمايد .
کد:
path$=CBK_OpenDir+CBK_OpenFile
محل وجود (منبع) فايل اصلي كه مي خواهيم از روي آن دانلود شود .
کد:
source$='<Embedded>\01.jpg'

كه هم مي توان آن را امبد نمود و هم ميتوان از داخل cd و يا هر مكان ديگري فراخواني نمود .
بدين صورت :
کد:
source$='<Embedded>\01.jpg'
يا :
کد:
source$='<SrcDir>\picture\01.jpg']
يا:
کد:
source$='C:\picture\01.jpg'
يا : ...


دستور كپي فايل از روي منبع (source$) به مقصد (path$) :
کد:
SysCommand("CopyFile","source$,path$")

پيغامي مبني بر كپي فايل :
کد:
Message("","path$")

فكر كردم كه اين پست مكمل پست قبليم باشه و با اين پست ابهاماتي رو از قبيل :
نمیشه یک عکس دیگه رو انتخاب کرد بیرون از فایل
از بين ببرم
 
آخرین ویرایش:

mehranrm7

New Member
تازه کار

براي مشخص كردن نوع و فرمت فايل ذخيره شونده و آدرس دهي .
کد:
SaveFile("JPEG(*.jpg)|*.jpg|All Files|*.*||","*.jpg")
دريافت مسير و نامي كه كاربر براي ذخيره فايل انتخاب مي نمايد .
کد:
path$=CBK_OpenDir+CBK_OpenFile
محل وجود (منبع) فايل اصلي كه مي خواهيم از روي آن دانلود شود .
کد:
source$='<Embedded>\01.jpg'
كه هم مي توان آن را امبد نمود و هم ميتوان از داخل cd و يا هر مكان ديگري فراخواني نمود .
بدين صورت :
کد:
source$='<Embedded>\01.jpg'
يا :
کد:
source$='<SrcDir>\picture\01.jpg']
يا:
کد:
source$='C:\picture\01.jpg'
يا : ...


دستور كپي فايل از روي منبع (source$) به مقصد (path$) :
کد:
SysCommand("CopyFile","source$,path$")
پيغامي مبني بر كپي فايل :
کد:
Message("","path$")
فكر كردم كه اين پست مكمل پست قبليم باشه و با اين پست ابهاماتي رو از قبيل :

از بين ببرم

عالی و معرکه واقعا دستت درد نکنه، از تازه کاری ما بود که نمی دونستیم میشه embed رو هم به این سادگی مسیر داد این روش حرف نداره فقط یک سوال برام موند مشکل این کار چیه که باید رفت سراغ plugin؟؟
اون مشکلی که گفتی اول فایلهات سنگین نباشن خوب اگه سنگین باشه چه مشکلی ایجاد می کنه؟؟ (پلاگین این مشکل رو حل می کنه؟؟)فایل های من عکس پس زمینه است و حداکثر 300K ولی الان علاقه مند شدم که فیلم ها رو هم از همین دستور استفاده کنم مثلا فرض کن نهایت 5MB رو هم اگه جواب بده عالی میشه.
 

hr1510

Active Member
اينكه گفتم حجم ها بالا نباشه به اين خاطر بود كه برنامه ي نهايي تا بياد فايل با "حجم بالا" رو در مسير انتخاب شده ذخيره كنه كمي طول مي كشه و تا پايان كپي فايل چون حجم بالاست هيچ نشونه و لودينگي براي نمايش روند كار پيدا نيست.
كه چند درصد رفته و يا چند درصد باقي مونده و يا چندقيقه و ...

خب من اصلا با پلاگينن براي كپي كار نكردم(كارم بهش نيوفتاده) ولي اميدوارم كساني كه به فكر ساخت پلاگين براي كپي فايل و ... بودند به اين فكر هم بوده باشند كه نمايشي براي روند كار تعبيه كرده باشند.

براي اين گفتم از پلاگين استفاده كني چون احتمال دادم سازندگان پلاگين ها شايد روي جزييات هم كار كرده باشند و حتي قابليت هايي رو هم براي كپي در نظر گرفته باشند .
مثلا :
جلوگيري از كپي همزمان براي استفاده بهينه از cpu و ram (كه تو سرعت برنامه هم تاثير ميزاره)
يا جلوگيري از كپي فايل هاي تكراري
و يا كپي فايل هاي حجيم به صورت تكه تكه و بخش بخش ويا ذخيره آنها به اين صورت.
و خيلي از راه كارهايي كه اساتي من اين ها رو بهتر بلدند.

پس بازم ياد آور مي شوم كه من با پلاگين براي كپي فايل كار نكردم اما از اساتيد خواهش ميكنم كه در مورد مزيت هاي استفاده از پلاگين در اين زمينه نسبت به SysCommand توضيحاتي رو براي بنده و هم براي mehranrm7 عزيز لطف بفرماييند .

اما سرعت برنامت :
به سيستمي كه ازش استفاده ميكني بستگي داره
به Process Priority كه براي برنامت انتخاب ميكني بستگي داره
و زياد هم نگران حجم فايل ها نباش 5 مگ چيزي نست :wink:
 

evil_gates

اين نيز بگذرد ...
با تشکر
بالاخره ما هم خطر آلوده شدن به پلاگین رو به جان خریدیم و نشستیم ور رفتن، -قابل ذکر که هیچی نمی دونستم در مورد پلاگین، حتی چه طوری باید تو پروژه گذاشت، خوشبختانه اینجا و تو راهنمای خود برنامه دیگه همه چی هست- ولی با علم ما تا اینجا که نوشتم بیشتر قد نداده

کد:
SaveFile("JPEG(*.jpg)|*.JPEG|All Files|*.*||","test2.jpg")
path$=CBK_OpenDir+CBK_OpenFile
Message("","path$")
set$='c:\test.jpg|test2.jpg|True'
PluginSet("MFilesAndFolders","set$")
PluginRun("MFilesAndFolders","Copy_File")
PluginGet("MFilesAndFolders","get$")
If (get$='1') Then
  Message("File copied","")
Else
  Message("Coping failed","")
End
از همون MicrobFileAndFolder استفاده کردم فقط الان این اسم رو نمی تونه بگیره یعنی این path$ رو نمی شه بهش خوروند، به خاطر همین اسم اولیه و اسم نهایی که نشون میده رو یکی کردم.
ولی مسیر رو درست میره یعنی تو همون شاخه ای که انتخاب می کنی کپی می کنه.
اگه راهنمایی می دونین که این path$ رو باید چه طوری نوشت به جای test2.jpg دوم، ممنون میشم.
$path خالی و "$path" رو امتحان کردم

دوست عزیز

اول اینکه توصیه اکید میکنم کار با پلاگین ها رو شروع کنید چون mmb واقعا بدون اونا قدرتی نداره.

ثانیا در مورد سوالتون عرض میکنم که برای کار با این پلاگین و دستور کپی کردن باید مسیر مبدا و مسیر مقصد رو تو یک متغیر رشته ای بریزید و به پلاگین ارسال کنید.

با روشی که قبلا گفتم مسیر مقصد رو بدست آوردیم که همون $path هست. مسیر مبدا رو هم که خودتون تعیین میکنید.
بنابراین با فرض اینکه مسیر مبدا شما فایل کنار برنامه باشه و مسیر مقصد شما درایو C کد رشته ای که باید به پلاگین ارسال بشه به این صورت خواهد شد:
کد:
set$='<SrcDir>\file1.jpg'+'|'+path$+'|'+'True'

موفق باشید
 

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

بالا