چگونه میتوان ردیفهای یک لیست باکس را با توجه به اطلاعاتی که در ItemData هست که نام صفحه مورد نظر است به آن صفحه لینک کرد.
که وقتی کاربر بر روی آن کلیک کرد برود به صفحه مورد نظر.
با تشکر خواهشا جواب دهید
چگونه میتوان ردیفهای یک لیست باکس را با توجه به اطلاعاتی که در ItemData هست که نام صفحه مورد نظر است به آن صفحه لینک کرد.
که وقتی کاربر بر روی آن کلیک کرد برود به صفحه مورد نظر.
با تشکر خواهشا جواب دهید
تو رو خدا چواب بدهید
جواب جواب جواب جواب جواب جواب جواب جواب جواب جواب جواب جواب جواب جواب
سلام.
وقت بخیر
بنده یه سوال از حضور دوستان داشتم.
با توجه به اینکه آموزگار هستم به تازگی با نرم افزار autoplay جهت ساخت درس افزار های آموزشی آشنا شدم.
یه پروژه ای ساختم که توش کاربر نام خودش رو تو اینپوت وارد میکنه و این نام تو به لیبل نمایش داده میشه.
میخواستم بدونم راهی هست که این لیبل که ورودیش رو از اینپوت میگیره رو تو بفیه ی صفحات هم نشون بدم.
آخه کپی کردم نشد.
ممنون میشم اگه راهنمایی بفرمایید بنده رو.
سلام.
وقت بخیر
بنده یه سوال از حضور دوستان داشتم.
با توجه به اینکه آموزگار هستم به تازگی با نرم افزار autoplay جهت ساخت درس افزار های آموزشی آشنا شدم.
یه پروژه ای ساختم که توش کاربر نام خودش رو تو اینپوت وارد میکنه و این نام تو به لیبل نمایش داده میشه.
میخواستم بدونم راهی هست که این لیبل که ورودیش رو از اینپوت میگیره رو تو بفیه ی صفحات هم نشون بدم.
آخه کپی کردم نشد.
ممنون میشم اگه راهنمایی بفرمایید بنده رو.
سلام روزتون بخیر
سیمام :n40:
من توی8 autoplay studio یه لیست کشویی (combo box) گذاشتم که وقتی زیر مجموعه اون باز میشه میخوام هرکدومشون با انتخاب اون آیتم توی page مخصوص به خودشون باز شه حالا چه کدی بزارم که این کار واسه من انجام شه
خیلی ضروریه اگه لطف کنید جوابمو بدید ممنون میشم.
سلام به همه دوستان و اساتید عزیز
من خیلی وقته با این مشکل دست و پنجه نرم میکنم امیدوارم که این انجمن فعال باشه و جواب من رو بده
من می خام برنامه اتورانی که با اتوپلی مدیا استادیو ساختم هنگامی که کاربر اون رو اجرا میکنه ریزولیشن کامپیوترش تبدیل به ریزولیشنی بشه که
من برای اتورن تعریف کردم مثلا اگر ریزولیشن کاربر 800در 600 هست و ریزولیشن تعریف شده من برای اتورران 1024 در 768 هست ریزولیشن کاربر که 800 در 600 تبدیل به 1024 در 768 اتوران بشه و با بسته شدن نرم افزار اتواران ریزولیشن کاربر تبدیل بشه به ریزولیشن خودش
ممنون از پاسخ و راهنماییتون
ممکنه مانیتور کاربر از رزولوشن بالاتر پشتیبانی نکنه.
سلام من یه سوال داشتم من خیلی سطح متوسطی دارم
می خوام یه کاری بکنم که یک تصویر در صفحه باشه ولی می خوام این تصویر بزرگ باشه وقتی بزرگ هست قسمتی از تصویر رو نمیشه دید برای همین میشه کاری کرد که ابزاری درست کنم که تصویر رو بالا و پایین کنه؟
سلام. می تونید از پلاگین اسلایدر استفاده کنید. باید میزان حرکت اسلایدر رو بگیرید و دستور جابجایی تصویر رو بدین. این جوری در دریچه دید بخشی از تصویر نمایش داده میشه.
ببخشید خیلی ممنون از راهنمایی تون فقط اگه میشه بنویسید که چجوری دستور رو بنویسم
اون رو برام توضیح بدید
می خوام هر ذره ای که می ره جلو بالا یا پایین بره
سلام میخواستم یه پلاگینی را در این aytoplay media studio 8 ادد کنم چطوری میتونم
سلام. بسته به نوع پلاگین باید در یکی از پوشه های Plugins\Actions یا Plugins\Objects کپی شود.
با سلام
یک کد میخواستم که لیبل هام به صورت ثانیه ایی و قابل تغییر در صفحه نرم افزار بیان
Label.SetText
میدونم میخوام بصورت متغییر و با ثانیه ایی بیان تغیراتی باشه
یعنی زمان روی لیبل باشه که بصورت زماندار در صفحه لود بشه
سوالتون یک خط هم نیست اما بسیار گنگه و چیزی که شما می خواید دقیقا مشخص نیست. اینکه لیبل باید در طول زمان تغییر کنه حالتهای مختلفی داره. مصلا ممکنه شما بخواید یه لودینگ داشته باشید یا درصد پیشروی کپی فایل رو نمایش بدین و یا گذشت زمان رو با استفاده از ساعت یا تامیر نمایش بدید و هزاران چیز دیگه. دقیقا می خواید چیکار کنید؟
نقل قول:
من یه سری لیبل دارم که روشون به این اسم ها هست تاریخچه و امام زاده و ... میخوام وقتی نرم افزار اجرا میشه لود اول که تموم میشه با فلش بعد در صفحه اصلی این لیبل ها به صورت تنظیماتی متغییر که ثانیه هاش رو بشه دستکاری کرد وارد بشن نرم افزار ها را دیدی چطورین ارووم اروم وارد صفحه میشن به صورت خیلی سریع و اهسته
میخوام وارد بشن و تنظیم داشته باشه که از سمت چپ وارد بشن یا راست اینم متغییر باشه که بشه رایت به لفت و لفت به رایتشو تغییر داد
یه دستور که تایمر داشته باشه که روی خود لیبل بزاری که بعد از ده ثانیه وارد صفحه بشه اینطوری منظورمه
یه دستور که فقط روی لیبل قرار داده بشه که وارد صفحه اصلی نرم افزار بشه و امکانات تغییر از سمت های مختلف رو داشته باشه یا تنظیم سرعتی که با اون وارد میشه
حضور دارین جواب بدین
کسی نیست جواب بده
عرض سلام و خسته نباشید
یه سوال داشتم
و اونم این بود که من یه tree درست کردم و چند تا گزینه براش درست کردم
می خوام کاربر روی هر یک از گزینه های tree کلیک کنه یه فیلم توی مدیا پلیر پلاگین پخش کنه کدش چیه؟
با سلام
من توی یک صفحه می خوام 3 تا سوال چهار گزینه ای بذارم و گزینه ها از نوع دکمه رادیویی باشد. بنابراین 12 تا دکمه رادیویی میذارم توی صفحه. اما وقتی سوال اول را پاسخ می دم یعنی یکی از رادیو باتن ها را انتخاب می کنم، وقتی گزینه سوالات بعدی را انتخاب می کنم، رادیوباتن های قبلی از حالت انتخاب خارج می شن.
چطور می تونم این دکمه های رادیویی را چهارتا چهارتا به هم مرتبط کنم؟
ممنون
سلام علیکم
من یه سوال داشتم و اون هم اینه که من یه دکمة خروج درست کردم و می خوام وقتی روی اون بزنم یه دیالوگ مسیج بیاد و اگه اوکی زدم خارج شه و اگه کنسل زدم به نرم افزار برگرده چی کار کنم؟؟؟؟؟؟؟؟؟؟
سلام
در یک پروژه یک عکس دارم می خوام وقتی کاربر روی اون عکس کلیک می کنه عکس Size بگیره توی همون صفحه و زمانی که دوباره کلیک می کنه روی عکس یا هر جای صفحه عکس دوباره Size اولیه بر گرده.
من تا اینجا پیش رفتم که عکس Insert کردم در قسمت Actions گزینه On Click انتخاب کردم و این مورد اضافه کردم
با کلیک عکس اندازه دلخواه منو پیدا می کنه اما هر کاری می کنم که دوباره به حالت اول بر گرده نمی شه.کد:Image.SetSize("Image1", 100, 100);
لطف کنید در این مورد راهنمایی بفرمایید.
سلام.نقل قول:
کد زیر رو توی تب On select مربوط به ComboBox مورد نظرتون تون قرار بدید:
توضیحات:کد:if e_Selection == 1 then
--command
elseif e_Selection == 2 then
--command
elseif e_Selection == 3 then
--command
end
- در اینجا فرض شده است تعداد ایتم های ComboBox های شما 3 مورد هست. برای اضافه کردن موارد بیشتر میتوانید کدها را ادامه دهید.
- دستور مربوط به هر آیتم را به جای عبارت command-- قرار دهید.
- برای مثال اگر میخواهید با انتخاب آیتم شماره 1 به صفحه 2 بروید، کافی است در قسمت اول به جای command-- کد زیر را قرار دهید:
کد:Page.Jump("Page2");
سلام. کد زیر رو توی دکمه تون قرار بدید:نقل قول:
کد:proceed = Dialog.Message("Exit", "Do you want to exit?", MB_OKCANCEL, MB_ICONINFORMATION, MB_DEFBUTTON1);
if proceed == IDOK then
Application.Exit(0);
end
سلام
من دوتا صفحه تو برنامه دارم میخوام به صفحه اول تایم بدم. یعنی وقتی صفحه لود شد بعده 5 ثانیه وارد صفحه دوم بشه. چکار کنم؟
و سوال دوم اینکه ایا میشه فایل های فلش رو تو این نرم افزار حالت ترانسپرنت بهشون داد؟؟ پس زمینه فلش حذف بشه
ممنون
عزیزان سلام و احترام
بنده مشکلی دارم چند روزه گرفتار کرده منو
نیاز مبرم دارم
کسی هست تا مشکلمو بگم
عزیزان سلام و احترام
بنده مشکلی دارم چند روزه گرفتار کرده منو
نیاز مبرم دارم
کسی هست تا مشکلمو بگم
سلام
من یک سوال دارم که جوابش رو هم سریع لازم دارم چون زمان انجام پروژه م داره تموم میشه
چطور میشه یک tree Object رو بصورت راست به چپ برای فارسی تنظیم کرد؟
یک پاسخ پیدا کردم که با اجراش جواب نگرفتم، پاسخ بصورت زیر بود:
برای راست چین کردن کدزیر رو در Global Function کپی کن و بعد در On show صفحه کد ()Right2Left را بنویس..
function GetWindowLong(hWnd, nIndex)
return tonumber(DLL.CallFunction("user32.dll", "GetWindowLongA", hWnd..", "..nIndex, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL)) end
function SetWindowLong(hWnd, nIndex, dwNewLong)
return tonumber(DLL.CallFunction("user32.dll", "SetWindowLongA", hWnd..", "..nIndex..", "..dwNewLong, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL))
end
function Right2Left()
local Object_hwnd
local ExStyle
local Type
local WS_EX_LAYOUTRTL = 4194304
-- For Window
Object_hwnd = Application.GetWndHandle()
ExStyle = GetWindowLong(Object_hwnd ,-20) SetWindowLong(Object_hwnd, -20, ExStyle +
WS_EX_LAYOUTRTL) objects = Page.EnumerateObjects( );
if objects ~= nil then
Application.SetRedraw(false)
for index, object in pairs(objects) do
Type = Page.GetObjectType(object)
-- For ComboBox
if Type == OBJECT_COMBOBOX then
Object_hwnd = ComboBox.GetProperties(object).WindowHandle ExStyle = GetWindowLong(Object_hwnd ,-20)
SetWindowLong(Object_hwnd, -20, ExStyle + WS_EX_LAYOUTRTL)
ComboBox.SetProperties(object, {ReadOrder = READ_RIGHT_TO_LEFT})
-- For Input
elseif Type == OBJECT_INPUT then
Input.SetProperties(object, {ReadOrder = READ_RIGHT_TO_LEFT, Alignment = ALIGN_RIGHT})
-- For ListBox
elseif Type == OBJECT_LISTBOX then
Object_hwnd = ListBox.GetProperties(object).WindowHandle
ExStyle = GetWindowLong(Object_hwnd ,-20)
SetWindowLong(Object_hwnd, -20, ExStyle + WS_EX_LAYOUTRTL) ListBox.SetProperties(object, {ReadOrder
= READ_RIGHT_TO_LEFT})
-- For RadioButton
elseif Type == OBJECT_RADIOBUTTON then
RadioButton.SetProperties(object, {TextAlignment = ALIGN_RIGHT, ReadOrder =READ_RIGHT_TO_LEFT, ButtonAlignment = BTN_ALIGN_RIGHT})
-- For Tree
elseif Type == OBJECT_TREE then
Object_hwnd = Tree.GetProperties(object).WindowHandle ExStyle = GetWindowLong(Object_hwnd ,-20)
SetWindowLong(Object_hwnd, -20, ExStyle + WS_EX_LAYOUTRTL) Tree.SetProperties(object, {ReadOrder =
READ_RIGHT_TO_LEFT}) end
end
Application.SetRedraw(true)
end
end
ممنون میشم پاسخ م رو سریع دریافت کنم :)
نسخه 8.5 استفاده میکنم
فیلم آموزش سری جدید اتوپلی (تا حالا) :
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
توضیح قسمت ها :
قسمت 25 => رفع و توضیح اشکالات و ارورهایی که در 28 قسمت قبل پیش اومده بود (به مدت 2:22 دقیقه و حجم 155 مگابایت)
قسمت 26 => نکات کاربردی و ریز و مهم درباره ی تابع و توضیح درباره ی قابلیت ها و ضعف های لوا و AMS (به مدت 4:6 دقیقه و حجم 267 مگابایت)
قسمت 27 => بلاک ها و متغییر محلی و آرایه های key دار و تغییر عملکرد یک تابع از قبل تعریف شده و توابع Iterator (به مدت 4:57 دقیقه و حجم 295 مگابایت)
قسمت 28 => آرایه ی چند بعدی و ماژول ها و رفع 3 اشکال بجا مونده از سری آموزش قدیمی (به مدت تقریبی 3 ساعت و حجم 166 مگابایت)
قسمت 29 => شی گرایی در لوا (به مدت 2:23 دقیقه و حجم 123 مگابایت)
قسمت 30 => فراآرایه و ارث بری در لوا (به مدت 1:43 دقیقه و حجم 209 مگابایت)
قسمت 31 => شباهت ها و تفاوت های زبان لوا و اتوپلی با زبان #C و ویژال استودیو و آموزش سطحی ویژال استودیو و #C (به مدت 2:38 دقیقه و حجم 135 مگابایت)
قسمت 32 => توضیح تکمیلی شی گرایی در لوا ؛ کوروتین ها در لوا (توقف و ادامه ی اجرای کدها) با مثالی از اجرای پی در پی چند نرم افزار تا زمانی که پنجره ی نرم افزار لود شده ی قبلی بسته نشد توسط کوروتین ها (به مدت 4:17 دقیقه حجم 261 مگابایت)
قسمت 33 => مباحث تکمیلی شی گرایی ؛ کار با توابع فایل File I\O در لوا و برش فایل ها و ادغام آنها ؛ استفاده از garbagcollector برای آزادسازی رم از متغییرها و آرایه ها (به مدت 4:5 دقیقه و حجم 317 مگابایت)
قسمت 34 => اولین قسمت آموزش دیتابیس (توضیح پایگاه داده SQLite و جدول هاو فیلدها و رکوردها ، ساختار و چگونگی ذخیره کردن در اون . طراحی یه دیتابیس بصورت ویژال (دقت کنید این قسمت بصورت کدنویسی با دیتابیس کار نشده) ؛ و کاربرد return در توابع و رویدادهای اتوپلی) (به مدت 3:46 دقیقه و حجم 194 مگابایت)
قسمت 35 => قسمت دوم آموزش دیتابیس ، توضیح ساختار و نحوه ی ارتباط برقرار کردن با دیتابیس sqlite ، ساخت جدول و فیلد از اتوپلی با کد نویسی و کار با دستور Insert و نحوه ی ساخت query در ویژال استودیو (برای تولید و راهنمایی کدهای 4 دستور اصلی sql یعنی insert و update و delete و insert) (به مدت 4:15 دقیقه و حجم 266 مگابایت)
قسمت 36 => قسمت سوم آموزش دیتابیس ،ادامه ی کار با دستور Insert ؛ ِDelete و Updateو select(به مدت 2:17 دقیقه و حجم 135 مگابایت)
قسمت 37 => قسمت چهارم آموزش دیتابیس ، ادامه دستورات Select (به مدت 1:48 دقیقه و با حجم 108 مگابایت)
قسمت 38 => قسمت پنجم آموزش دیتابیس ، ساخت پروژه ی ثبت نمرات دانش آموزان (قسمت اول آموزش پروژه) (به مدت 2:11 دقیقه و با حجم 138 مگابایت)
قسمت 39 => قسمت ششم آموزش دیتابیس ، ساخت پروژه ی ثبت نمرات دانش آموزان (قسمت دوم آموزش پروژه) (به مدت 2:23 دقیقه و با حجم 164 مگابایت)
قسمت 40 => قسمت هفتم آموزش دیتابیس ، ساخت پروژه ی ثبت نمرات دانش آموزان (قسمت سوم آموزش پروژه) (به مدت 2:16 دقیقه و با حجم 163 مگابایت)
قسمت 41 => قسمت هشتم آموزش دیتابیس ، ساخت پروژه ی ثبت نمرات دانش آموزان (قسمت چهارم آموزش پروژه) (به مدت 2:26 دقیقه و با حجم 162 مگابایت)
قسمت 42 => قسمت نهم آموزش دیتابیس ، ساخت پروژه ی ثبت نمرات دانش آموزان (قسمت پنجم آموزش پروژه) (به مدت 2:13 دقیقه و با حجم 164 مگابایت)
قسمت 43 => قسمت دهم آموزش دیتابیس ، ساخت پروژه ی ثبت نمرات دانش آموزان (قسمت ششم آموزش پروژه) و آخرین قسمت از آموزش ها و طرح دیتابیس (به مدت 1:11 دقیقه و با حجم 62 مگابایت)
*** تذکر :
1) این سری جدید از فیلم های آموزشی ، با rar5 فشرده سازی شدند یعنی برای اکسترکت کردن ، باید نسخه ی rar 5 به بالا از این نرم افزار رو داشته باشین
2) اگه موقع دانلود مشکل داشت ، حتما مرورگرتون رو عوض کنین و دانلود کنین (پیشنهاد من دانلود با مرورگر اپرا هست) .
3) همه ی فایل ها قابلیت recovery record دارن
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 44 => قسمت اول آموزش پترن ها در لوا ؛ مرور اجمالی بر آرایه ها و متغییرهای value type و reference type (به مدت 3 ساعت و حجم 191 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 45 => قسمت دوم آموزش پترن ها در لوا (به مدت 3:5 دقیقه و حجم 170 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 46 => قسمت سوم آموزش پترن ها در لوا (به مدت 2:52 دقیقه و حجم 215 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 47 => توضیح و مثال تابع مهم string.gsub و require ؛ توضیح و مثال توابع string ها (تابع string.dump و loadstring) (به مدت 3:51 دقیقه و حجم 264 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 48 => توضیح همه ی توابع باقی مانده از لوا (تا جایی که میدونستم) و پایان آموزش های قسمت توابع لوا (به مدت 1:43 دقیقه و حجم 152 مگابایت)
یوهو پیدا کردم بعد از یه قرن
خدایا شکرت
الان در پوست خودم گنجایش ندارم
باز هم معنای إِن تَنصُرُوا اللَّهَ يَنصُركُم که امام خامنه ای گفت برام مجسم شد
استاد علی خیلی از راهنمایی تون ممنونم . واقعا لطف بزرگی کردین . دیگه هم لازم نیست وقتم رو روی زبان های دیگه برای ساخت dll برای زبان لوا صرف کنم
تجربه ی خودمو بگم تا فراموش نکردم
آموزش ساخت dll در #C برای زبان های غیر دات نت (Unmanaged Export) :
1) اول نوع پروژه رو Class Library انتخاب کنین (پروژه ی Class Library Portable انگار بخاطر اینکه نمیتونه Unmanaged Exports رو نصب کنه (البته برای من) پیشنهاد نمیشه)
2) بعد از منوی Project ، گزینه ی آخر رو انتخاب کنین (گزینه ی آخر ، نام پروژه و در ادامه اش کلمه ی properties داره) و در سربرگ دوم که Build هست برین و گزینه ی platform target (در وسط این سربرگ) و گزینه ی target (در بالای این سربرگ) رو روی X86 بزارین (چون اتوپلی ، نرم افزار 32 بیتی هست) و کلا به هیچ وجه نباید موقع Unmanaged Export ، روی حالتی غیر از x86 یا x86 که حالا بسته به نوع نرم افزار مقصدتون که چند بیتی رو ساپورت میکنه باشه (یعنی به هیچ وجه نباید روی any cpu تنظیم شده باشن که بصورت پیش فرض هستن و باید تغییر داد همونطور که گفته شد). البته من برای اطمینان ، علاوه بر اینها ، گزینه ای کنار گزینه ی start (که برای اجرا و کمپایل نرم افزار این دکمه ی استارت رو میزنیم) وجود داره که بصورت combo box هست که من از گزینه ی آخر اون combo box ، گزینه ی configuration رو میزنم و از اونجا هم گزینه ی any cpu رو به x86 تغییر میدم
3) بعد تابع تونو بنویسین ( دقت کنین تابع باید از نوع public static باشه تا بدون ایجاد شی و از هر جا بتونه فراخونی بشه) . دقت کنین احتمالا بیشتر از یک تابع و همچین توابع overloade هم نمیشه برای یه کلاس نوشت در حالت Unmanaged Export (توی یه منبع انگلیسی نوشته بود که بصورت بازگشتی هم نمیشه این نوع تابع ای که مینویسیم رو داخل سی شارپ فراخونی کرد و نوشت ولی اینا رو تست نکردم)
4) در منوی Tools ، گزینه ی NuGet Package Manager و بعد زیر منوی Package Manager Console رو انتخاب کنین و کد زیر رو در پنجره ی باز شده (پنجره ی Package Manager Console بنویسین) . البته قبل از نوشتن کد زیر ، مطمئن بشین که ویژال استودیو به اینترنت دسترسی داره :
حالا فایل های مورد نیاز برای Unmanaged Exports رو دانلود میکنه (آخرش باید پیام Successfully بده)کد:Install-Package UnmanagedExports
5) بعد از دانلود موفقیت آمیز ، فضای نام زیر رو به پروژه تون اضافه کنین :
بعد در بالای تابعی که نوشتین ، یه کلوشه باز کنین و در اونجا باید با تابع DllExport ، نام export و همچنین نوع export تون رو بنویسین . نام export تون باید هم نام تابع تون باشه و بصورت یه رشته ، در اولین آرگومان تابع DllExport (که در کلوشه ی بالای نام تابع مینویسین) ، بنویسین . در آرگومان دوم تابع DllExport ، نوع export که اغلب پیشنهاد میشه stdcall رو انتخاب کنین ، بنویسین . به این ترتیب که پروپرتی ای بنام CallingConvention (دقت کنین که در این پروپرتی ، حروف C ، بصورت حروف بزرگ هستند و باید این طوری بنویسین . یک حالت دیگه ی callingConvention بصورت کمل کیس هست که بعدش براتون علامت دو نقل قول میاره که این حالت منظور نیست) رو بنویسین و بعدش علامت مساوی بزارین (=) (البته خود اینتل لایسنس ویژال استودیو براتون میاره) و بعدش در فضای نام System.Runtime.InteropServices (این فضای نام رو بنویسین) و نقطه بزارین و enum ای بنام CallingConvention رو بنویسین (تا اینجا رو بازم خود اینتل لایسنس ویژال استودیو براتون میاره) و بعدش نقطه و بعدش متغییر که همون نوع خروجی مورد نظرتون هست را انتخاب کنین که اغلب نوع stdcall رو انتخاب میکنن برای unmanagedکد:using RGiesecke.DllExport;
یعنی به این صورت بنویسین :
کد:[DllExport("MyFunc", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
یه نمونه تابع کوچیک که دو تا عدد رو میگیره و جمع شونو برمیگردونه در سی شارپ که بصورت Unmanaged Export خروجی گرفته شد (البته اول ، نکاتی که گفته شد یعنی از نکته ی 1 تا 4 باید انجام بشه) :
کد:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RGiesecke.DllExport;
namespace ClassLibrary2
{
public class Class1
{
[DllExport("MyFunc", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
public static int MyFunc(int a, int b)
{
return a + b;
}
}
}
در مثال بالا ، به فضای نام RGiesecke.DllExport که اضافه شد و تابع DllExport که در بالای تابعی که نوشتیم (در بالای تابع MyFunc که نوشتیم) که در علامت کلوشه [] هست و آرگومان اول این تابع که نام Export مون که رشته ای هم نام تابع مون هست و همینطور آرگومان دوم این تابع رو دقت کنین)
حالا در اتوپلی برای فراخونی این تابع ، این کد رو بدین (البته در آرگومان اول تابع زیر در اتوپلی ، مسیر فایل dll تون که هر جا میزارید رو بدین) :
راستی اینم بگم که Unmanaged Export هیچ ربطی به نسخه ی دات نت نداره و نسخه ی دات نت میتونه 4.5 و حتی بالاتر هم باشهکد:result = DLL.CallFunction("AutoPlay\\Scripts\\ClassLibrary2.dll", "MyFunc", "5,10", DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL);
Dialog.Message("Notice", result, MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
بعد دقت کنین چون پروژه رو بصورت x86 تولید کردین ، وقتی dll تون رو build کردین ، دیگه dll تون توی پوشه ی Debug ذخیره نمیشه . بلکه کنار پوشه ی Debug ، پوشه ای بنام x86 ساخته میشه که باز داخل خود همین پوشه ی x86 ، پوشه ی Debug ساخته میشه که dll تون داخل این پوشه قرار میگیره
6) تذکر : اتوپلی با تابع Dll.CallbackFunction اش فقط مقدار عدد و رشته رو میتونه به تابع داخل فایل dll بفرسته و دریافت کنه. یعنی بجز این نوع ، چیز دیگه ای رو نمیتونه بفرسته یا بگیره یعنی حتی نمیتونه مقادیر داخل یه آرایه (حتی مقدار و عضو یه آرایه که از نوع عدد یا رشته هست) را بفرسته یا از تابع در داخل dll بگیره.
البته عضوی از آرایه که از نوع عدد یا رشته باشه (نه کل آرایه)، رو میتونه فراخونی کنه از تابع مون در dll ای که توی سی شارپ برمیگردونیم ولی نمیتونیم یه آرایه ای از جنس عدد یا رشته (حتی آرایه ای از یک نوع) در لوا و اتوپلی بنویسیم که وارد آرگومان تابع مون در dll کنیم (در این حالت ارور میده)
قضیه ی بولین هم تقریبا مثل قضیه ی آرایه هست و موقع برگردوندن در تابع dll مون فقط میشه استفاده کرد
پس در کل فقط و فقط عدد و رشته رو میشه به آرگومان تابع (داخل dll) مون ارسال کنیم . چیزهای دیگه مثل عضوی از آرایه و یا کل آرایه رو ارسال کنیم ، برنامه کرش میشه (حتی پیشنهاد میشه مقدار بولین هم ارسال نشه) و فقط و فقط عدد و رشته (یا عضو خاصی از آرایه مون که از نوع عدد و رشته هست (نه اینکه کل آرایه)) و بولین رو میشه در تابع (داخل dll) برگردوند . هر چیز دیگه ای بجز این در تابع مون (در dll) برگردونده شه مثل کل آرایه برگردونده شه ، برنامه اتوپلی (اتوران) ، کرش میکنه
کلا پیشنهاد میشه تا میتونیم فقط از عدد و رشته برای ورودی و خروجی تابع مون استفاده کنیم
مقدار بازگشتی تابع مون (در dll) اگه void بود ، در چهارمین آرگومان تابع DLL.CallFunction مون باید مقدار DLL_RETURN_TYPE_LONG رو انتخاب کنیم وگرنه نوع چیزی رو که برمیگردونه رو باید در چهارمین آرگومان این تابع انتخاب کنیم
باز هم یه تشکر گسترده از استاد علی کنم . خیلی ممنون استاد علی
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 49 => قسمت اول ساخت dll در سی شارپ بصورت Unmanaged Export (برای زبان های غیر دات نت) و فراخونی dll ساخته شده در اتوپلی با توابع Dll.CallFunction و Library.Load ؛ توضیح تکمیلی تابع require (به مدت 2:37 دقیقه و حجم 124 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 50 => قسمت دوم ساخت dll در سی شارپ بصورت Unmanaged Export (برای زبان های غیر دات نت) و فراخونی dll ساخته شده در اتوپلی با توابع Dll.CallFunction و Library.Load (به مدت 2:38 دقیقه و حجم 137 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 51 => کار با API ها (به مدت 1:26 دقیقه و حجم 94 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 52 => توابع قسمت Application در اتوپلی (به مدت 1:53 دقیقه و حجم 107 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 53 => نکته ای درباره تابع pcall ؛ ادامه ی توابع اتوپلی (تا توابع File ها) (به مدت 2:59 دقیقه و حجم 171 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 54 => ادامه ی توابع اتوپلی (تا توابع Page ها) (به مدت 1:29 دقیقه و حجم 86 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 55 => ادامه ی توابع اتوپلی (تا توابع status ها) (به مدت 1:47 دقیقه و حجم 109 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 56 => ادامه ی توابع اتوپلی (تا آخر بجز توابع قسمت windows ها) (به مدت 1:51 دقیقه و حجم 115 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 57 => توضیح کامل تابع System.IsKeyDown ؛ توابع قسمت windows ها (آخرین قسمت از توابع اتوپلی) (به مدت 1:33 دقیقه و حجم 95 مگابایت) [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 58 => نکته درباره تابع Library.Load (حل مشکل برگردوندن رشته) ؛ ساخت dll برای اکسترکت فایل های Rar در سی شارپ بصورت Unmanaged Export (برای استفاده در اتوپلی) (به مدت 2:52 دقیقه و حجم 152 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 59 => نکته ای درباره قسمت قبل (رفع مشکل اکسترکت نکردن فایل های Rar چند قسمتی و چند پارتی) ؛ استفاده از ماژول luacom و کمپوننت AutoIT (قسمت اول ؛ توضیحات اولیه و کپی و رجیستر کردن کمپوننت) (به مدت 2:5 دقیقه و حجم 115 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 60 => کمپوننت AutoIT قسمت دوم (به مدت 3 ساعت و حجم 172 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 61 => کمپوننت AutoIT قسمت سوم (به مدت 3 ساعت و حجم 197 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 62 => کمپوننت AutoIT قسمت چهارم (به مدت 1:58 دقیقه و حجم 108 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 63 => کمپوننت AutoIT قسمت پنجم (قسمت آخر کمپوننت اتوات) (به مدت 2:32 دقیقه و حجم 168 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 64 => عملگرهای باینری ؛ نکته ای درباره تابع System.IsKeyDown (به مدت 2:32 دقیقه و حجم 112 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 65 => پلاگین WinAPI (قسمت اول) (به مدت 2:58 دقیقه و حجم 199 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 66 => پلاگین WinAPI (قسمت دوم) ؛ نکاتی مهم درباره ی توابع API ویندوز (به مدت 1:21 دقیقه و حجم 98 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 67 => پلاگین WinAPI (قسمت سوم) ؛ نکته ای درباره ی عملگرهای باینری (signed و unsigned) (به مدت 2:24 دقیقه و حجم 136 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 68 => پلاگین WinAPI (قسمت چهارم و قسمت آخر پلاگین WinAPI) (به مدت 2:17 دقیقه و حجم 148 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 69 => ابزار nircmd (به مدت 3:7 دقیقه و حجم 187 مگابایت)
سلام.
داخل یه لیست باکس جستجو انجام دادم و فایلهایی که می خواستم برام پیدا کرده مثلا نام تصاویر داخل یک پوشه . چطور می تونم نام اونها رو که جستجو کرده از لیست باکس خارج و داخل اکسل یا نوت پد ذخیره کنم
همچنین تعداد موارد یافت شده در لیست باکس رو برام نشون بده
ممنون
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 70 => پلاگین های DragAndDrop و Download و Command Line و Tray (به مدت 2:23 دقیقه و حجم 156 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 71 => پلاگین Screen Overlay (به مدت 39 دقیقه و حجم 39 مگابایت)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
قسمت 72 => پلاگین Ribbon (قسمت اول) (به مدت 3:2 دقیقه و حجم 167 مگابایت)