<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مهدی موسیوند</title>
        <link>https://virgool.io/feed/@MahdiMoosivand</link>
        <description>:)</description>
        <language>fa</language>
        <pubDate>2026-04-15 01:37:40</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/195990/avatar/NB3CjY.jpeg?height=120&amp;width=120</url>
            <title>مهدی موسیوند</title>
            <link>https://virgool.io/@MahdiMoosivand</link>
        </image>

                    <item>
                <title>مهم ترین مسئله اجتماعی ایران</title>
                <link>https://virgool.io/@MahdiMoosivand/%D9%85%D9%87%D9%85-%D8%AA%D8%B1%DB%8C%D9%86-%D9%85%D8%B3%D8%A6%D9%84%D9%87-%D8%A7%D8%AC%D8%AA%D9%85%D8%A7%D8%B9%DB%8C-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-we6ld3gzfxfc</link>
                <description>بسم الله الرحمن الرحیمبعضی ها فکر می کنند مسئله وحدت فقط یک تاکتیک برای بازی دادن دیگران است؛ اما این طور نیست. وحدت فراتر از یک ابزار است. گرچه وحدت تاکتیکی موفق است؛ اما قبل از آن، یک اصل برای تشکیل و حفظ کشور است. هرچند، در حال حاضر، در کشور ما اختلافات شدیدی وجود ندارد؛ ولی به آن معنا نیست که دشمن دست از وسوسه کشیده باشد. دشمن همواره تلاش می کند تا وحدت را از بین ببرد؛ نمونه های مختلف آن را می توان در تحریم های پی در پی اقتصادی و تبلیغات مسموم رسانه ای مشاهده کرد.مهم ترین مسئله اجتماعی ایرانالقای ناکارآمدی از جمله تلاش های دشمنان برای از بین بردن وحدت در کشور ما است. القای ناکارآمدی در سیستم آموزشی، القای ناکارآمدی در روابط تجاری با کشور های پیشرفته و القای ناکارآمدی در ساختار جمهوری اسلامی، نمونه هایی از تلاش دشمنان برای ایجاد ناامیدی در سطح مردم و حتی دولت است. کشوری که به آینده اش امیدوار نباشد، هرگز تلاشی برای بهتر کردن اوضاع نمی کند؛ دست از وحدت می کشد و در نهایت از بین می رود.حال که از اهمیت این موضوع آگاه شدیم، باید بدانیم که دشمنان از چه راهی برای القای ناکارآمدی و ایجاد ناامیدی در میان مردم استفاده می کنند؟ بدیهی است که رسانه ها نقش مهمی را در این کار ایفا می کنند. اما در این بین، شبکه های ماهواره ای و رسانه های اجتماعی نظیر اینستاگرام و تلگرام سهم بیشتری را دارند. دشمنان با استفاده از این رسانه ها و با به کار بردن شگرد های گوناگون روان شناسی پیام های مورد نظرشان را به مخاطبان خود انتقال می دهند. پیام هایی که حاوی القائات ناامیدوارانه و ایدئولوژی ها و نگرش های منفی نسبت به وضعیت کشور ما است.دانستیم که مهم ترین مسئله اجتماعی ایران در حال حاضر، مقابله با این القائات ناامیدوارانه و مسموم است. اما در برابر این مشکل چه کار باید کرد؟ آیا قطع کردن ارتباط مردم با رسانه های اجتماعی و محدود کردن ایشان در دسترسی به شبکه های ماهواره ای کاری درست است؟ به نظر، این ایده با طرز تفکری افراطی همراه است و همچنین تبعات بسیاری را دارا می باشد. کسی که این ایده را می دهد، باید پاسخ گو باشد که از این به بعد، مردم چگونه می توانند نیاز های خود به این برنامه ها و شبکه ها را رفع کنند؟آگاه سازی مردم از این آسیب ها و آموزش سواد رسانه ای به ایشان، یکی دیگر از راهکار هایی است که برای مقابله با این مشکل مطرح می شود. اما با این حال، در زمینی که توسط خود دشمن طراحی شده باشد، نمی توان بازی کرد؛ چراکه چه ببریم و چه ببازیم به نفع او است. به نظر من، بهترین راه برای مقابله با این مشکل، ایجاد رسانه هایی بومی است که دارای مزیتی رقابتی و ویژه نسبت به نمونه های خارجی خود باشند. ما نیاز به زمینی داریم که تماما برای خودمان باشد تا بتوانیم از تهاجم های فرهنگی دشمن در امان بمانیم. تشویق مردم به استفاده از این رسانه ها و خروج سیاستمداران و هنرمندان از رسانه هایی مانند توییتر و اینستاگرام از مهم ترین کار هایی است که پس از آن باید صورت گیرد.به نظر شما مهم ترین مسئله اجتماعی کشور چیه؟ با من موافقید؟بهترین راه برای مقابله با تهاجم فرهنگی در حال حاضر چیه؟تکلیف مدرسه ام رو خوب نوشتم؟ :)</description>
                <category>مهدی موسیوند</category>
                <author>مهدی موسیوند</author>
                <pubDate>Fri, 08 Oct 2021 18:06:15 +0330</pubDate>
            </item>
                    <item>
                <title>دیدگاه های متفاوت افراد نسبت به پول بر اساس MBTI</title>
                <link>https://virgool.io/Novira/%D8%AF%DB%8C%D8%AF%DA%AF%D8%A7%D9%87-%D9%87%D8%A7%DB%8C-%D9%85%D8%AA%D9%81%D8%A7%D9%88%D8%AA-%D8%A7%D9%81%D8%B1%D8%A7%D8%AF-%D9%86%D8%B3%D8%A8%D8%AA-%D8%A8%D9%87-%D9%BE%D9%88%D9%84-%D8%A8%D8%B1-%D8%A7%D8%B3%D8%A7%D8%B3-mbti-wyhzsygod49c</link>
                <description>بسم الله الرحمن الرحیمدیدگاه های متفاوت افراد نسبت به پولگفتم شاید براتون جالب باشه دیدگاه های متفاوت هم دیگر رو در مورد پول بدونیم. یه سرچی تو گوگل کردم و این صفحه رو پیدا کردم که خودش ترجمه ای از مجله Keirsey بود. در این جا هم خلاصه ای از مطالبی که خوندم رو براتون گذاشتم. اگر هم تیپ MBTI خودتون رو نمی دونید می تونید از این جا پیدا کنید.گروه اول (ESTP - ISTP - ESFP - ISFP)آن ها از مسیر پول درآوردن لذت می برند و به محض این که این مسیر منجر به درآمد شود پول خود را خرج می کنند تا هیجانات خود را از طریق خرج کردن آن آزاد کنند. تنها چیزی که برای آن ها اهمیت دارد هیجان ناشی از این کار است. از این رو می توان گفت هسته اصلی اغلب فعالیت های آن ها «خوش گذشتن» است.گروه دوم (ESTJ - ISTJ - ESFJ - ISFJ)اعتقاد آن ها بر این است که درآمد بالا ناشی از سخت کوشی مداوم در یک بازه زمانی طولانی است. آن ها معتقدند برای دریافت درآمد مناسب باید سخت تلاش کرد و مراحل پیشرفت را قدم به قدم طی نمود. از نظر آن ها میزان درآمد افراد معیاری برای مقایسه جایگاه اجتماعی شان است.گروه سوم (ENFJ - INFJ - ENFP - INFP)از نظر آن ها در دنیای ایده آل نیازی به وجود مفهومی به نام پول نیست. با این حال وقتی با دنیای واقعی روبرو می شوند و در می یابند که سایر انسان ها در ضعف و نیاز به سر می برند نمی توانند بی تفاوت باقی بمانند. در نهایت به ناچار می پذیرند که پول امر پلیدی است که باید برای ادامه زندگی و کمک کردن به دیگران از آن استفاده نمود.گروه چهارم (ENTJ - INTJ - ENTP - INTP)آن ها در زندگی شان خواهان کسب برتری و شایستگی هستند و پول را تنها دستاورد جانبی تلاش خود برای تحقق اقتدار و برتری شان می دانند. آن ها کوچک ترین اهمیتی برای خود پول و اندازه و کمیت آن قائل نیستند. پول هدف اصلی آن ها نیست و آن ها به دنبال پول نمی روند بلکه بیش از آن به دنبال محقق نمودن ایده های خود در دنیای واقعی هستند.خود من جزو گروه سوم هستم و تیپ شخصیتی ام هم INFJ هست. به نظرم واقعا ایجاد مفهوم پول شوخی خوبی با ما نبوده! به پول به عنوان یه فعالیت اضافه و اجباری در کنار کارای اصلی ام نگاه می کنم؛ این همون دیدگاهی هست که به درس خوندن توی مدرسه دارم! نظر شما چیه؟ ?موفق باشید و شاد! ?</description>
                <category>مهدی موسیوند</category>
                <author>مهدی موسیوند</author>
                <pubDate>Sun, 18 Apr 2021 13:53:07 +0430</pubDate>
            </item>
                    <item>
                <title>آمار بازدید پست‌های من در سال ۹۹</title>
                <link>https://virgool.io/@MahdiMoosivand/%D8%A2%D9%85%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF-%D9%BE%D8%B3%D8%AA-%D9%87%D8%A7%DB%8C-%D9%85%D9%86-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84-%DB%B9%DB%B9-wmflklqirkdp</link>
                <description>در طول تاریخ از اعداد استفاده کردیم تا اغلب داد و ستد کنیم و آن‌چیزی که شمردنی است را بشماریم. برای هر عدد واحد درست کردیم تا عددهای زندگی قاطی نشوند و از اعداد، شفاف‌تر استفاده کنیم؛ مثلا وقتی می‌گوییم ده هزار تومان به پول اشاره داریم و وقتی می‌گوییم ده هزار بلیط به بلیط!روز به روز که در زندگی جلو‌تر رفتیم عددها فرقی نکردند ولی این واحدها بودند که زیاد شدند. واحد کریپتو، واحد اصله درخت، واحد فاصله و …«واحد» یک توافق عمومی است برای شمردن؛ تا همانطور که گفتم شمردن‌ها قاطی نشود. مشاهده افراد دارای ثروت (اجتماعی یا مالی) به من ثابت کرده اینکه چه چیزی را بشماریم از اینکه چطور بشماریم مهم‌تر است. هرکس با واحد خاصی مسائل زندگی را می‌شمارد. اینطور به نظرم آمده که مشخص کردن واحد یعنی مشخص کردن اینکه من در زندگی برای چه چیزهایی ارزش قائلم و می‌خواهم چه چیزهایی را در زندگی بشمارم. https://cdn.virgool.io/annual-report/1399/owgd5gpuxp6r-Rjtsb.mp4 اعدادی که بدون واحد ثبت کردمبه ویدیویی که ویرگول برایم ساخته که نگاه می‌کنم میبینم که در سال ۹۹، من در مجموع ۱۲,۶۸۴ کلمه در ویرگول نوشتم و منتشر کردم و مخاطبین، پست‌های من را ۱۶۴ مرتبه پسندیدند و  ۶۹ بار هم نظر خود را روی پست‌های من به اشتراک گذاشتند. در سال ۹۹، ۶۶ نفر در ویرگول من را دنبال کردند تا پست‌های بعدیم را بخوانند. این اعداد نشان میدهند من کاری کرده‌ام. هرکدام به واحدی وصل هستند. از خودم می‌پرسم من کدام واحد را شمارش کرده‌ام؟ کدامیک از واحدهای بالا از همه برای من مهم‌تر است؟ ادامه ویدیو را می‌بینم.آمار از اثر بیرونی می‌گویندطبق آمار پست‌های من ۳,۳۶۷ بار خوانده شدند و ۱۷۵,۰۱۹ ثانیه صرف مطالعه آنها شده است، که با توجه به جمعیتی که در ایران به اینترنت دسترسی دارند، ویرگول به من می‌گوید که توانستم  ۰/۰۰۲۳۹۹۴۹۳ ثانیه، سرانه مطالعه دیجیتال کشور را بالا ببرم.از طرف دیگر ویرگول به من می‌گوید که اگر قرار بود پست‌هایم را چاپ و به دست تک تک خوانندگان برسانم باید ۷,۶۰۸ کاغذ مصرف می‌کردم.آن عددهای کوچک ابتدای ویدیو حالا تبدیل شده‌اند به عددهای بزرگ به اینکه من جلوی مصرف این تعداد کاغذ را گرفتم یا به اینکه من  ۰/۰۰۲۳۹۹۴۹۳ ثانیه، سرانه مطالعه دیجیتال کشور را جابه جا کرده‌ام. واحد این عددها برای من ملموس‌تر است.واحد نوشتن چیست؟همه عددهای بالا و همینطور اثر بیرونی که روی خوانندگان و همینطور در مقیاس بزرگتر طبیعت و جامعه اطرافم گذاشتم اعدادی هستند که من دوستشان دارم و به آنها افتخار می‌کنم. اگر چنین ویدیویی دست شما نیز رسید به شما بابت تک تک اعداد تبریک می‌گویم.اثر هر نوشته تا حدودی معلوم است، اگر بنویسید جلوی قطع درخت را می‌گیرید، به سرانه مطالعه کشور اضافه می‌کنید و خوانندگانی جذب می‌کنید که شما را از طریق نوشته‌هایتان می‌شناسند و …به نظرم می‌رسد که نوشته‌های من و شما واحد ندارند ولی اثر بیرونی دارند.</description>
                <category>مهدی موسیوند</category>
                <author>مهدی موسیوند</author>
                <pubDate>Mon, 22 Mar 2021 18:29:08 +0430</pubDate>
            </item>
                    <item>
                <title>غمگین بود و بی صدا گریه می کرد!...</title>
                <link>https://virgool.io/@MahdiMoosivand/%D8%BA%D9%85%DA%AF%DB%8C%D9%86-%D8%A8%D9%88%D8%AF-%D9%88-%D8%A8%DB%8C-%D8%B5%D8%AF%D8%A7-%DA%AF%D8%B1%DB%8C%D9%87-%D9%85%DB%8C-%DA%A9%D8%B1%D8%AF-v08mkhacbklc</link>
                <description>بسم الله الرحمن الرحیمهندزفری رو از گوشش کشید بیرون و پرت کرد! سرش بدجور درد می کرد و نمی تونست به چیزی فکر کنه. تو حال خودش نبود؛ شاید هم بهتر باشه بگم، اصلا حالی نداشت که توش باشه! خسته بود؛ دلش شکسته بود؛ غمگین بود و بی صدا گریه می کرد؛ طوری که هیچ کس متوجه نشه! هیچ کس!...دوست داشت برای چند لحظه هم که شده، وجود نداشته باشه! دوست داشت، خودش رو بکشه و راحت شه! اما نمی تونست؛ نمی شد! هر دفعه یه چیزی مانعش می شد! یه لحظه، حالش بدتر شد؛ با خودش فکر کرد، انقدر ضعیفه که حتی نمی تونه خودش رو بکشه!...چشم تو چشم خودش، جلوی آیینه ایستاد. چشماش پر از اشک بود. نمی دونست، باید کی رو مقصر بدونه؟! خودش؟ بقیه؟ شایدم هر دو! ترجیح می داد، فکر نکنه؛ به اندازه کافی فکر کرده بود. دوست داشت، یه کاری بکنه؛ اما نمی دونست، کدوم کار درسته؟ کدوم بهتره؟ کدوم رو باید انجام بده؟ نمی تونست، تصمیم بگیره!...همچنان، چشم دوخته بود به آیینه. تو همین حال و هوا بود که یک دفعه یاد یه چیزی افتاد! یه لحظه یه حس  خوبی بهش دست داد. لبخند زد و صورتش رو با آب شست!...ممنون می شم، اگر نظری دارید، کامنت کنید. ❤و این که، به نظرتون، یاد چه چیزی افتاد؟ چه چیزی باعث شد که توی چنین وضعیتی، بتونه لبخند بزنه؟ اگر شما جای اون بودید، چه چیزی می تونست، باعث لبخند زدن شما بشه؟</description>
                <category>مهدی موسیوند</category>
                <author>مهدی موسیوند</author>
                <pubDate>Sat, 30 Jan 2021 10:29:21 +0330</pubDate>
            </item>
                    <item>
                <title>امتحان جواد</title>
                <link>https://virgool.io/@MahdiMoosivand/%D8%A7%D9%85%D8%AA%D8%AD%D8%A7%D9%86-%D8%AC%D9%88%D8%A7%D8%AF-toellcf0v6k5</link>
                <description>بسم الله الرحمن الرحیمدر حالی که پست های اینستاگرام رو یکی یکی لایک می کرد، به آهستگی ورقی از کتاب درسی اش برداشت. ساعت، دو نصف شب بود و با چشمانی که به سختی بازشون نگه داشته بود، به صفحه نورانی موبایلش خیره شده بود و در گوشه ذهن خسته اش به امتحان فردا فکر می کرد.هر لحظه، تمرکز او در گوشه گوشه های مختلف ذهنش گرفتار و مشغول می شد... خیلی آروم و بدون صدا پلک هایش را روی هم گذاشت و همین طور که تصاویر سریع و مبهمی از جلوی چشمانش عبور می کرد، با صدای دل نواز بارون پاییزی به خواب رفت.باد به شدت شروع به وزیدن کرده بود و برگ های زرد درختان را به سمت پنجره اتاق او پرت می کرد. جواد در اتاقش، خواب و غرق در سکوت ذهنش بود. شاید خواب، تنها چیزی بود که به افکار آشفته او آرامش می داد و از آن طرف، تنها چیزی بود که علاقه ای به آن نداشت!صفحه موبایل او هنوز روشن بود و در کنار انگشتانش در تاریکی اتاق به سمت بالا نور می تابید. جواد فردا امتحان مهمی داشت؛ با این حال اصلا آماده امتحان نشده بود. شاید به خاطر این بود که به درس هایی که باید می خوند، علاقه ای نداشت و ترجیح می داد، وقت خودش رو به کار های دیگه ای صرف کنه...ساعت نزدیک شیش صبح بود و موبایل جواد شروع به زنگ زدن کرده بود تا جواد رو بیدار کنه. اما جواد...ممنون می شم، اگر نظری دارید، کامنت کنید. ❤موفق و سربلند باشید. یا علی.</description>
                <category>مهدی موسیوند</category>
                <author>مهدی موسیوند</author>
                <pubDate>Sun, 06 Dec 2020 16:26:39 +0330</pubDate>
            </item>
                    <item>
                <title>وحدت شیعه و سنی</title>
                <link>https://virgool.io/@MahdiMoosivand/%D9%85%D8%B3%D8%A6%D9%84%D9%87-%D9%88%D8%AD%D8%AF%D8%AA-%D8%B4%DB%8C%D8%B9%D9%87-%D9%88-%D8%B3%D9%86%DB%8C-ahpnnz6ogrnf</link>
                <description>01234567891011121314151617181920درباره کتاب «امت اسلامی»یکی از اموری که همه ائمه اطهار علیهم السلام به آن سفارش کرده اند و خود در سیره شان به صورت عملی به اصحاب و یارانشان نشان داده اند، وحدت و همدلی با مسلمین است. اما با این همه سفارش و تاکید شبهات و متشابهات درباره این امر بسیار زیاد است و هر کسی از ظن خود وحدت را تفسیر و تعبیر می کند و همین موجب تفرقه و دوری شده است.سیره و کلام اهل بیت علیهم السلام درباره وحدت و همدلی با مسلمین آنقدر صراحت دارد که با مراجعه به آن جای هیچ توجیه و تفسیری باقی نمی ماند. استاد حسن رحیم پور ازغدی در کتاب «امت اسلام» تلاش کرده است شبهات و متشابهات درباره وحدت را با استفاده از سیره و کلام اهل بیت علیهم السلام پاسخ بدهد.این کتاب که در پنج گفتار تنظیم شده است حاصل سخنرانی‌های ایشان در حسینیه مرحوم آیت الله سید جواد خامنه ای در مشهد مقدس است که هدف اصلی آن بازخوانی اندیشه راهبردی رهبر معظم انقلاب درباره وحدت اسلامی است و توسط انتشارات انقلاب اسلامی به چاپ رسیده است. در جای جای کتاب مبنای فقهی و روایی این اندیشه راهبردی به چشم می خورد و راه را بر شبهاتی که وحدت را امری جدید تلقی می کنند و تفسیرهای غلط و سطحی از آن ارائه می کنند، با استدلال به آیات و روایات می بندد.در گفتار اول وحدت به عنوان یکی از جلوه های رحمت بودن رسول خدا (ص) تبیین می شود. در گفتار دوم مذهب تشیع به عنوان مذهب وحدت معرفی شده و در گفتار سوم محبت اهل سنت به اهل بیت علیهم السلام بازنمایی می شود. گفتار چهارم و پنجم نیز ضرورت وحدت امت اسلام در دوران کنونی را روشن می سازد.کتاب «امت اسلام» برای کسی که می خواهد با منظومه فکری رهبر معظم انقلاب درباره وحدت اسلامی آشنا شود و در عین حال مبانی قرآنی و روایی این موضوع را هم بازخوانی کند، آن هم با روایت استادی همچون حسن رحیم پور ازغدی، مفید و کارآمد است. http://book-khamenei.ir/index.aspx?&amp;fkeyid=&amp;siteid=1&amp;pageid=208&amp;description=706635 موفق و سربلند باشید. یا علی.</description>
                <category>مهدی موسیوند</category>
                <author>مهدی موسیوند</author>
                <pubDate>Thu, 26 Nov 2020 08:58:11 +0330</pubDate>
            </item>
                    <item>
                <title>صعود به آسمان</title>
                <link>https://virgool.io/eastcloudmedia/%D8%B5%D8%B9%D9%88%D8%AF-%D8%A8%D9%87-%D8%A2%D8%B3%D9%85%D8%A7%D9%86-cnowdcemvlmb</link>
                <description>بسم الله الرحمن الرحیممسئله: اگر ناگهان من با سرعت ثابت نیم متر بر ثانیه به سمت آسمان پرواز کنم، چه پیش می آید؟ چگونه می میرم؟ اول به خاطر سرما می میرم یا خفه می شوم؟ یا اصلا به دلیل دیگری می میرم؟سلام! ? خب؛ همون طور که معلومه می خواهیم پاسخ این مسئله رو با هم پیدا کنیم! ?قبل از شروع بهتره که با ایده اولیه این نوشته آشنا بشید! ?خب؛ شروع می کنیم!نیم متر بر ثانیه سرعت زیادی نیست. در واقع از سرعت آسانسور ها هم کم تر است. با این سرعت تقریبا 6 ثانیه طول می کشد تا از دسترس دوستانتان خارج شوید. البته به قد آن ها نیز بستگی دارد.بعد از 30 ثانیه به ارتفاع 15 متری می رسید که این بیشترین فاصله ای است که یک انسان می تواند چیزی پرتاب کند. این آخرین شانس شماست که کسی برایتان لباس یا خوراکی پرتاب کند.بعد از گذشت یکی دو دقیقه به ارتفاع بالای برج آزادی می رسید.بعد از حدود یک ربع به ارتفاع نوک برج میلاد می رسید. هوا در این ارتفاع 3 درصد رقیق تر از سطح زمین است. خوش بختانه بدن انسان این مقدار تغییر فشار و غلظت هوا رو به خوبی تحمل می کند.اگر همین طوری به صعود ادامه بدید بعد از حدود 3 ساعت به گنبد گیتی خواهید رسید. افزایش سرعت باد در این ارتفاع بسیار محسوس است و دمای محیط شما از نقطه انجماد گذشته است.ای دیو سپید پای در بند! / ای گنبد گیتی! ای دماوند!از سیم به سر یکی کله خود / ز آهن به میان یکی کمر بندپس از گذشت 5 ساعت در صورتی که لباس گرم همراه خود نداشته باشید و به فرض این که تا الآن از سرمای هوا جان سالم به در برده باشید به احتمال زیاد دچار سرمازدگی شده و جان خود را از دست می دهید. اما اگر به اندازه کافی لباس گرم پوشیده باشید آن قدر زنده می مانید که به ناحیه مرگ برسید.در ناحیه مرگ در ارتفاع نزدیک به 8000 متری (نزدیک به ارتفاع قله اورست) غلظت اکسیژن موجود در هوا بسیار پایین است و برای تنفس و زنده ماندن انسان ها کافی نیست. در نزدیکی این ناحیه شرایط جدیدی را تجربه می کنید: سرگیجه، حالت تهوع، احساس گیجی، کرخت شدن بدن و اختلالات بینایی.در این ناحیه به علت کمبود اکسیژن، خون به جای دریافت اکسیژن، آن را از دست داده و به هوا می دهد.تبریک می گویم؛ شما موفق شدید! بالاخره مردید! ?احتمال آن که بتوانید در شروع ساعت هشتم از پروازتون هنوز زنده مونده باشید بسیار کم است.و در دو میلیون سال بعد بدن یخ زده شما که با سرعت نیم متر بر ثانیه حرکت می کند از منظومه شمسی خارج شده و وارد فضای بین ستاره ای می شود.کلاید تامبا ستاره شناسی است که برای اولین بار سیارک پلوتون را در رصدخانه اش مشاهده کرد. وی در سال 1997 درگذشت. قسمتی از بدن وی در سفینه نیوهورایزنز قرار داده شد. ماموریت این فضاپیما عبور از سیارک پلوتون و خروج از منظومه شمسی بود.من نیز با شما موافقم که این سفر نیم متر بر ثانیه ای سرد، ناخوشایند و به شدت مرگ بار است. اما 4 میلیارد سال بعد خورشید رو به مرگ خواهد بود و تبدیل به یک غول سرخ می شود و زمین را نابود می کند. در آن زمان شما و کلاید تنها انسان هایی هستید که از زمین و منظومه شمسی فرار کرده اید.این هم خود امتیاز دیگری است که تنها شما دارید! ?انصافا فکرشو می کردید که با یه فرمول ساده سرعت بشه همچین چیزی رو نوشت؟! ?سرعت مساوی است با جابجایی تقسیم بر زمان؛ مثلا 5 متر بر (1) ثانیه.موفق باشید.</description>
                <category>مهدی موسیوند</category>
                <author>مهدی موسیوند</author>
                <pubDate>Thu, 26 Nov 2020 00:03:59 +0330</pubDate>
            </item>
                    <item>
                <title>فرزند خصال خویشتن باش</title>
                <link>https://virgool.io/@MahdiMoosivand/%D9%81%D8%B1%D8%B2%D9%86%D8%AF-%D8%AE%D8%B5%D8%A7%D9%84-%D8%AE%D9%88%DB%8C%D8%B4%D8%AA%D9%86-%D8%A8%D8%A7%D8%B4-iqkfthj2bqdl</link>
                <description>بسم الله الرحمن الرحیمیکی از رموز موفقیت، داشتن روحیه خودباوری است. در واقع، نقطه شروع موفقیت هر انسانی خودشناسی و خودباوری است که محصول این دو، توانایی استقلال و اتکا به خود، است. اتکا به خود به معنای آن است که شخصیت فرد از درون خود او سرچشمه بگیرد. به عبارت دیگر می توان گفت خوداتکایی به آن معنا است که شخص، وابسته به دیگران نباشد و خود به تنهایی بتواند به مصاف مشکلات و موانع زندگی برود. البته کمک گرفتن از دیگران و کمک کردن به ایشان در هنگام سختی و بلا کاری روا و بی اشکال است. مسئله این جا است که این امر نباید به صورتی باشد که در نبود دیگران زندگی فرد به کلی مختل شود.تجربه نشان داده است که نیرو انسان بسیار بیشتر از آن چیزی است که فکر می کند؛ تنها نباید خود را دست کم بگیرد. ما بیش تر از آن چیزی که تصور می کنیم توان مندیم. پس چرا هنگامی که خود ما توانایی کسب تشخص از توانایی های خودمان را دارا هستیم همچنان از خصایص دیگران بهره بریم؟! در این رابطه، نظامی به فرزند چهارده ساله خود چنین نصیحت می کند:غافل منشین نه وقت بازیست / وقت هنر است و سرفرازیستدانش طلب و بزرگی آموز / تا به نگرند روزت از روزجایی که بزرگ بایدت بود / فرزندی من نداردت سودچون شیر به خود سپه شکن باش / فرزند خصال خویشتن باش</description>
                <category>مهدی موسیوند</category>
                <author>مهدی موسیوند</author>
                <pubDate>Fri, 20 Nov 2020 22:13:51 +0330</pubDate>
            </item>
                    <item>
                <title>کتابخانه PyAutoGUI: قسمت دوم</title>
                <link>https://virgool.io/coderlife/%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-pyautogui-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-tvtpylc7k6iu</link>
                <description>بسم الله الرحمن الرحیمسلام؛ بالاخره قسمت دوم هم آماده شد!! ? اگر هنوز قسمت اول رو ندیدید:کتابخانه PyAutoGUI چیست؟کتابخانه PyAutoGUI یکی از کتابخانه های زبان پایتون می باشد که به ما اجازه می دهد تا فرآیند استفاده از موس و کیبورد خود را به صورت خودکار کنترل کنیم. در حال حاضر این کتابخانه در سه سیستم عامل لینوکس، مک و ویندوز قابل استفاده بوده و به هر دو نسخه 2 و 3 پایتون قابل اجراست. https://virgool.io/@MahdiMoosivand/%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-pyautogui-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-brr4zgebnwns کتابخانه PyAutoGUIتایپ کردنبرای تایپ کردن، کتابخانه PyAutoGUI یه تابع ساده داره:&gt;&gt;&gt; pyautogui.write(&amp;quotHello world!&amp;quot)
&gt;&gt;&gt; pyautogui.write(&amp;quotHello world!&amp;quot, interval=0.25)این تابع، به غیر از متنی که می نویسه یه پارامتر دیگه هم میگیره که مربوط به فاصله زمانی میان تایپ هر کاراکتر است. مثلا اگر کلمه &quot;Hello&quot; رو با زمان 0.25 به این تابع بدیم، فرآیند تایپ 1 ثانیه (4 * 0.25) طول می کشه. در واقع با این کار یه مکث و تاخیر بین تایپ کردن هر کاراکتر ایجاد میشه. نگه داشتن و فشردن کلید های کیبورداگر می خواهید پس از این که متنی توسط تابع write نوشته شد، کلید اینتر رو هم بزنید یا مثلا می خواهید یه برنامه بنویسید که کلید شیفت رو نگه داره و اون رو روی کامپیوتر دوستتون اجرا کنید تا وقتی داره تایپ می کنه، همه حروف بزرگ نوشته بشه! ?? باید از این توابع استفاده کنید:برای فشردن یک کلید:&gt;&gt;&gt; pyautogui.press(&amp;quotenter&amp;quot)
&gt;&gt;&gt; pyautogui.press(&amp;quotf1&amp;quot)
&gt;&gt;&gt; pyautogui.press(&amp;quotleft&amp;quot)اگر قصد دارید چند کلید رو فشار بدید، از یک لیست استفاده کنید:&gt;&gt;&gt; pyautogui.press([&amp;quotleft&amp;quot, &amp;quotleft&amp;quot, &amp;quotleft&amp;quot, &amp;quotenter&amp;quot])اگر بخواهید، به تعداد دلخواهی یک کلید رو فشار بدید:&gt;&gt;&gt; pyautogui.press(&amp;quotleft&amp;quot, presses=3)اگر بخواهید یه تاخیر و مکث بین هر مرتبه داشته باشید:&gt;&gt;&gt; pyautogui.press(&amp;quotleft&amp;quot, presses=3, interval=0.25)برای نگه داشتن یک کلید:&gt;&gt;&gt; pyautogui.keyDown(&amp;quotshift&amp;quot)برای آزاد کردن کلیدی که قبلا نگه داشته شده:&gt;&gt;&gt; pyautogui.keyUp(&amp;quotshift&amp;quot)استفاده از کلید های میانبرخب، فکر نکنم اینم نیاز به توضیح خاصی داشته باشه:&gt;&gt;&gt; pyautogui.hotkey(&amp;quotctrl&amp;quot, &amp;quotc&amp;quot)
&gt;&gt;&gt; pyautogui.hotkey(&amp;quotctrl&amp;quot, &amp;quotv&amp;quot)در واقع کد بالا این معنی رو داره:&gt;&gt;&gt; pyautogui.keyDown(&amp;quotctrl&amp;quot)
&gt;&gt;&gt; pyautogui.keyDown(&amp;quotc&#039;)
&gt;&gt;&gt; pyautogui.keyUp(&amp;quotctrl&amp;quot)
&gt;&gt;&gt; pyautogui.keyUp(&amp;quotc&amp;quot)
&gt;&gt;&gt; pyautogui.keyDown(&amp;quotctrl&amp;quot)
&gt;&gt;&gt; pyautogui.keyDown(&amp;quotv&#039;)
&gt;&gt;&gt; pyautogui.keyUp(&amp;quotctrl&amp;quot)
&gt;&gt;&gt; pyautogui.keyUp(&amp;quotv&amp;quot)همچنان می تونید از پارامتر interval استفاده کنید؛ ولی من نفهمیدم چه کاربردی داره؟!&gt;&gt;&gt; pyautogui.hotkey(&amp;quotshift&amp;quot, &amp;quotdel&amp;quot,  interval=0.5)فکر کنم، تو  مثال بالا دلش نمیاد پاکش کنه!! ??برای این که کارتون راحت بشه، اینجا یه لیستی از کلید های کیبورد رو براتون گذاشتم:[&#039;\t&#039;, &#039;\n&#039;, &#039;\r&#039;, &#039; &#039;, &#039;!&#039;, &#039;&amp;quot&#039;, &#039;#&#039;, &#039;$&#039;, &#039;%&#039;, &#039;&amp;&#039;, &amp;quot&#039;&amp;quot, &#039;(&#039;, &#039;)&#039;, &#039;*&#039;, &#039;+&#039;, &#039;,&#039;, &#039;-&#039;, &#039;.&#039;, &#039;/&#039;, &#039;0&#039;, &#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;, &#039;:&#039;, &#039;;&#039;, &#039;&lt;&#039;, &#039;=&#039;, &#039;&gt;&#039;, &#039;?&#039;, &#039;@&#039;, &#039;[&#039;, &#039;\\&#039;, &#039;]&#039;, &#039;^&#039;, &#039;_&#039;, &#039;`&#039;, &#039;a&#039;, &#039;b&#039;, &#039;c&#039;, &#039;d&#039;, &#039;e&#039;,&#039;f&#039;, &#039;g&#039;, &#039;h&#039;, &#039;i&#039;, &#039;j&#039;, &#039;k&#039;, &#039;l&#039;, &#039;m&#039;, &#039;n&#039;, &#039;o&#039;, &#039;p&#039;, &#039;q&#039;, &#039;r&#039;, &#039;s&#039;, &#039;t&#039;, &#039;u&#039;, &#039;v&#039;, &#039;w&#039;, &#039;x&#039;, &#039;y&#039;, &#039;z&#039;, &#039;{&#039;, &#039;|&#039;, &#039;}&#039;, &#039;~&#039;, &#039;accept&#039;, &#039;add&#039;, &#039;alt&#039;, &#039;altleft&#039;, &#039;altright&#039;, &#039;apps&#039;, &#039;backspace&#039;, &#039;browserback&#039;, &#039;browserfavorites&#039;, &#039;browserforward&#039;, &#039;browserhome&#039;, &#039;browserrefresh&#039;, &#039;browsersearch&#039;, &#039;browserstop&#039;, &#039;capslock&#039;, &#039;clear&#039;, &#039;convert&#039;, &#039;ctrl&#039;, &#039;ctrlleft&#039;, &#039;ctrlright&#039;, &#039;decimal&#039;, &#039;del&#039;, &#039;delete&#039;, &#039;divide&#039;, &#039;down&#039;, &#039;end&#039;, &#039;enter&#039;, &#039;esc&#039;, &#039;escape&#039;, &#039;execute&#039;, &#039;f1&#039;, &#039;f10&#039;, &#039;f11&#039;, &#039;f12&#039;, &#039;f13&#039;, &#039;f14&#039;, &#039;f15&#039;, &#039;f16&#039;, &#039;f17&#039;, &#039;f18&#039;, &#039;f19&#039;, &#039;f2&#039;, &#039;f20&#039;, &#039;f21&#039;, &#039;f22&#039;, &#039;f23&#039;, &#039;f24&#039;, &#039;f3&#039;, &#039;f4&#039;, &#039;f5&#039;, &#039;f6&#039;, &#039;f7&#039;, &#039;f8&#039;, &#039;f9&#039;, &#039;final&#039;, &#039;fn&#039;, &#039;hanguel&#039;, &#039;hangul&#039;, &#039;hanja&#039;, &#039;help&#039;, &#039;home&#039;, &#039;insert&#039;, &#039;junja&#039;, &#039;kana&#039;, &#039;kanji&#039;, &#039;launchapp1&#039;, &#039;launchapp2&#039;, &#039;launchmail&#039;, &#039;launchmediaselect&#039;, &#039;left&#039;, &#039;modechange&#039;, &#039;multiply&#039;, &#039;nexttrack&#039;, &#039;nonconvert&#039;, &#039;num0&#039;, &#039;num1&#039;, &#039;num2&#039;, &#039;num3&#039;, &#039;num4&#039;, &#039;num5&#039;, &#039;num6&#039;, &#039;num7&#039;, &#039;num8&#039;, &#039;num9&#039;, &#039;numlock&#039;, &#039;pagedown&#039;, &#039;pageup&#039;, &#039;pause&#039;, &#039;pgdn&#039;, &#039;pgup&#039;, &#039;playpause&#039;, &#039;prevtrack&#039;, &#039;print&#039;, &#039;printscreen&#039;, &#039;prntscrn&#039;, &#039;prtsc&#039;, &#039;prtscr&#039;, &#039;return&#039;, &#039;right&#039;, &#039;scrolllock&#039;, &#039;select&#039;, &#039;separator&#039;, &#039;shift&#039;, &#039;shiftleft&#039;, &#039;shiftright&#039;, &#039;sleep&#039;, &#039;space&#039;, &#039;stop&#039;, &#039;subtract&#039;, &#039;tab&#039;, &#039;up&#039;, &#039;volumedown&#039;, &#039;volumemute&#039;, &#039;volumeup&#039;, &#039;win&#039;, &#039;winleft&#039;, &#039;winright&#039;, &#039;yen&#039;, &#039;command&#039;, &#039;option&#039;, &#039;optionleft&#039;, &#039;optionright&#039;]کادر های پیغامکتابخانه PyAutoGUI امکانات خیلی خوبی داره، یکی از این امکانات نمایش جعبه های پیغام هست؛ مثلا اگر بخواهید یک هشدار روی صفحه نشون داده بشه، می تونید از این تابع استفاده کنید:&gt;&gt;&gt; pyautogui.alert&#40;text=&amp;quotاتصال به اینترنت امکان پذیر نیست.&amp;quot, title=&amp;quotخطای 149&amp;quot, button=&amp;quotتلاش دوباره&amp;quot&#41;اگر بخواهیم چند تا گزینه داشته باشیم، از تابع confirm استفاده می کنیم:&gt;&gt;&gt; pyautogui.confirm&#40;text=&amp;quotChera Mask nazadi?!&amp;quot, title=&amp;quotKhataye Behdashti&amp;quot, buttons=[&amp;quotNadaram!&amp;quot, &amp;quotOK, Mi zanam.&amp;quot]&#41;اشتباه نشه، اصلا منظور من در گزینه اول عقل نبود. اصلا!! ?+ اگر بخوام یه متن از کاربر بگیرم، چی کار کنم؟ - از این تابع استفاده کن:&gt;&gt;&gt; pyautogui.prompt&#40;text=&amp;quot&amp;quot, title=&amp;quot&amp;quot , default=&amp;quot&amp;quot&#41;+ اگر بخوام گذرواژه بگیرم، چی؟ - بفرما:&gt;&gt;&gt; pyautogui.password(text=&amp;quot&amp;quot, title=&amp;quot&amp;quot, default=&amp;quot&amp;quot, mask=&amp;quot*&amp;quot)لازم به ذکره که توابع این بخش ورودی کاربر رو بر می گرودنن و می تونید توی یه متغیر ذخیره اش کنید.پیشنهاد می کنم یه ذره با این توابع ور برید. مثلا در قسمت دریافت گذرواژه بجای ستاره، @ بزاره!قابل توجه جاوا اسکریپت کار ها، این بخش براتون آشنا نبود؟ ?گرفتن تصویر از صفحهگرفتن تصویر از صفحه  کتابخانه PyAutoGUI می تواند از صفحه عکس بگیرد؛ این خیلی عالیه!!چنانچه در این بخش مشکلی داشتید، به اینجا سر بزنید.برای گرفتن تصویر از صفحه از تابع screenshot استفاده می کنیم؛ برای ذخیره کردن هم می تونیم یه اسم براش بزاریم:&gt;&gt;&gt; im1 = pyautogui.screenshot()
&gt;&gt;&gt; im2 = pyautogui.screenshot(&amp;quotmy_screenshot.png&amp;quot)فرآیند گرفتن تصویر در یک نمایشگر ۱۹۲۰*۱۰۸۰ تقریبا ۱۰۰ میلی ثانیه طول می کشد که قابل قبول است.+ اگر تنها نیاز به گرفتن تصویر از یه بخش صفحه رو داشته باشم، چی؟ - اینو ببین:&gt;&gt;&gt; im = pyautogui.screenshot(region=(0, 0, 300, 400))توضیحش میشه این که ما یه Tuple چهارتایی از اعداد صحیح به تابع میدیم که دو پارامتر آخر، طول و عرض یک مستطیل هستند که از مختصات تعیین شده در دو پارامتر اول کشیده می شوند.فکر نکنم متوجه شده باشید، پیشنهاد می کنم، حتما خودتون تستش کنید. ?پیدا کردن یک تصویر در صفحه نمایشگر (هوش مصنوعی!)چنانچه در این بخش مشکلی داشتید، به اینجا سر بزنید.فرض کنید، چنین پنجره ای در صفحه شما باز شده است:پنجره ماشین حسابدر صورتی که مختصات دقیق کلید های ماشین حساب رو نداشته باشید نمی تونید با توابع moveTo و click روی کلید ها کلیک کنید. همچنین ممکن است هر بار که برنامه ماشین حساب رو باز می کنید، مختصات کلید ها تغییر پیدا کند. در این شرایط اگر یک تصویر از کلید های آن داشته باشید، این مشکل به سادگی حل می شود!calc7key.png&gt;&gt;&gt; pyautogui.locateOnScreen(&amp;quotcalc7key.png&amp;quot)
Box(left=1416, top=562, width=50, height=41)مقدار برگردانده شده دقیقا مانند مقداری هست که در بخش «گرفتن تصویر از یه بخش صفحه» به تابع می دهیم. همچنین با تابع center می تونیم مختصات وسط دکمه رو به راحتی پیدا کنیم:&gt;&gt;&gt; pyautogui.center(pyautogui.locateOnScreen(&amp;quotcalc7key.png&amp;quot))
Point(x=1441, y=582)برای کد بالا یه راه حل ساده تر هم هست:&gt;&gt;&gt; pyautogui.locateCenterOnScreen(&amp;quotcalc7key.png&amp;quot)
Point(x=1441, y=582)این فرآیند بر روی صفحه نمایشگری با ابعاد ۱۹۲۰*۱۰۸۰ در حدود ۱ یا ۲ ثانیه طول می کشد. این زمان ممکن است برای بازی های ویدیویی بسیار کند باشد؛ اما برای اغلب مقاصد و کاربرد ها کارساز است.همچنین اگر بخواهیم دقت پیدا کردن تصویر رو کم و زیاد کنیم:&gt;&gt;&gt; pyautogui.locateOnScreen(&amp;quotcalc7key.png&amp;quotو confidence=0.9)
Box(left=1416, top=562, width=50, height=41)توجه داشته باشید که برای تعیین دقت یافتن تصویر باید کتابخانه OpenCV رو روی سیستمتون نصب کنید.در صورتی که بخواهیم منطقه مورد جست و جو رو (در یک بخش خاصی از صفحه) تعیین کنیم:&gt;&gt;&gt; pyautogui.locateOnScreen(&amp;quotsomeButton.png&amp;quot, region=(0,0, 300, 400))
Box(left=16, top=70, width=50, height=41)با این روش هم می تونید یه ذره دقت کار رو بیارید پایین تا حدود 30% سرعت رو کم کنیم:&gt;&gt;&gt; pyautogui.locateOnScreen(&amp;quotcalc7key.png&amp;quot, grayscale=True)
Box(left=16, top=70, width=50, height=41)لازم به ذکره که در حالت بالا، از یک روش متفاوت برای پیداکردن مختصات استفاده میشه و اگر صفحتون در حال اجرای برنامه خیلی رنگارنگه، این روش مناسب شما نیست!کتابخانه PyAutoGUI در این مورد امکانات دیگری هم داره که به زبان انگلیسی براتون گذاشتم:locateOnScreen(image, grayscale=False) - Returns (left, top, width, height) coordinate of first found instance of the image on the screen. Raises ImageNotFoundException if not found on the screen.locateCenterOnScreen(image, grayscale=False) - Returns (x, y) coordinates of the center of the first found instance of the image on the screen. Raises ImageNotFoundException if not found on the screen.locateAllOnScreen(image, grayscale=False) - Returns a generator that yields (left, top, width, height) tuples for where the image is found on the screen.locate(needleImage, haystackImage, grayscale=False) - Returns (left, top, width, height) coordinate of first found instance of needleImage in haystackImage. Raises ImageNotFoundException if not found on the screen.locateAll(needleImage, haystackImage, grayscale=False) - Returns a generator that yields (left, top, width, height) tuples for where needleImage is found in haystackImage.کار با رنگ هاکار با رنگ هایکی دیگر از امکانات خوب این کتابخانه اینه که می تونه رنگ یک نقطه از صفحه نمایش رو به ما بده:&gt;&gt;&gt; pyautogui.pixel(100, 200)
RGB(red=130, green=135, blue=144)یه امکان دیگه ای هم که هست اینه که می تونید ببینید اون نقطه از صفحه رنگ مورد نظر شما رو داره یا نه:&gt;&gt;&gt; pyautogui.pixelMatchesColor(100, 200, (130, 135, 144))
True
&gt;&gt;&gt; pyautogui.pixelMatchesColor(100, 200, (140, 125, 134))
False
&gt;&gt;&gt; pyautogui.pixelMatchesColor(100, 200, (140, 125, 134), tolerance=10)
Trueدر مورد tolerance کافیه که بدونید هر چی بیشتر بشه، دقت کار میاد پایین (البته یه سقفی هم داره.)؛ توضیحاتش مفصله. دوستانی که تا حالا طراحی گرافیک کرده باشند، شاید متوجه بشوند.لازمه که بگم در این توابع، جهت رنگ دهی از سیستم RGB استفاده شده.خب، قسمت دوم هم تمام شد!!! در قسمت بعد قراره چند تا از برنامه هایی که قبلا با این کتابخانه نوشتم و چند تا از ایده هایی که دارم رو مطرح کنم. این قسمت، قسمت آخر از توضیحات مستندات کتابخانه PyAutoGUI بود. دوست دارم نظرات، انتقادات و پیشنهاداتتون رو بدونم؛ اگر سوالی داشتید یا به مشکلی برخوردید حتما به من بگید تا اگر تونستم، کمکتون کنم. ? موفق باشید.Ways to communicate with me:* E-mail: MahdiMoosivand@outlook.com* Gap: @MahdiMoosivandTranslated by Mahdi Moosivand.Click here to view the original documentation.اللهم صل علی محمد و آل محمد و عجل فرجهم. :)آپدیت (15 آگوست 2020): به دلایلی فعلا قادر به انتشار آموزش پروژه محور (قسمت سوم) نخواهم بود. ?</description>
                <category>مهدی موسیوند</category>
                <author>مهدی موسیوند</author>
                <pubDate>Mon, 27 Jul 2020 17:53:43 +0430</pubDate>
            </item>
                    <item>
                <title>کتابخانه PyAutoGUI: قسمت اول</title>
                <link>https://virgool.io/@MahdiMoosivand/%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-pyautogui-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-brr4zgebnwns</link>
                <description>بسم الله الرحمن الرحیمدرود؛ مهدی موسیوند هستم و این اولین نوشته من در ویرگول هست! ?کتابخانه PyAutoGUIکتابخانه PyAutoGUI چیست؟کتابخانه PyAutoGUI یکی از کتابخانه های زبان پایتون می باشد که به ما اجازه می دهد تا فرآیند استفاده از موس و کیبورد خود را به صورت خودکار کنترل کنیم. در حال حاضر این کتابخانه در سه سیستم عامل لینوکس، مک و ویندوز قابل استفاده بوده و به هر دو نسخه 2 و 3 پایتون قابل اجراست.نصب و راه اندازینکته: چنانچه از سیستم عامل های لینوکس یا مک استفاده می کنید، ابتدا اینجا را مشاهده کنید.برای نصب این کتابخانه کافیه دستور زیر را در خط فرمان سیستم اجرا کرده و تا پایان فرآیند نصب صبر کنیم.pip install pyautoguiتبریک می گویم؛ حالا می توانیم با استفاده از خط زیر آن را فراخوانی کنیم.&gt;&gt;&gt; import pyautoguiمختصات نقاط در صفحه نمایشگرمختصات هر نقطه در صفحه نمایشگر با استفاده از دو پارامتر X و Y مشخص می شود؛ جهت درک بهتر این موضوع ابتدا نگاهی به تصویر زیر می اندازیم.مختصات نقاط در صفحه نمایشگرهمان طور که در تصویر مشاهده کردیم، نمایشگر مانند یک صفحه مختصات در نظر گرفته می شود که دارای دو محور X و Y است. همچنین، مشاهده می کنیم که مرکز صفحه مختصات در نقطه بالا سمت چپ قرار دارد.نکته: مختصات اولین نقطه (در بالا، سمت چپ) از (0 , 0) شروع می شود و نه از (1 , 1). همین موضوع باعث شده تا مختصات آخرین نقطه (در پایین، سمت راست) به جای (1920 , 1080) (ابعاد خود صفحه نمایشگر)، (1919 , 1079) باشد.برای به دست آوردن ابعاد نمایشگر خود، می توانیم از تابع زیر استفاده کنیم؛ این تابع ابعاد نمایشگر ما را به دست می آورد.&gt;&gt;&gt; pyautogui.size()
(1920, 1080)همچنین، با استفاده از تابع زیر، می توانیم مختصات نقطه ای که موس در آن جا قرار دارد را به دست آوریم.&gt;&gt;&gt; pyautogui.position()
(187, 567)در نتیجه اجرای کد بالا، مشاهده می کنیم که هنگام اجرای این کد، موس ما در مختصات X=187 و Y=567 از صفحه نمایشگر قرار دارد.با استفاده از تابع زیر، می توانیم متوجه شویم که نقطه مورد نظر ما - که مختصات آن را به برنامه می دهیم - در محدوده نمایشگر قرار دارد یا نه؛ این تابع یکی از دو مقدار True یا False را بر می گرداند. به عبارتی دیگر، در صورتی که مختصات داده شده به برنامه داخل بازه صفحه نمایشگر باشد، مقدار True و چنانچه مختصات داده شده به برنامه خارج از ابعاد نمایشگر باشد، مقدار False باز گردانده می شود.&gt;&gt;&gt; pyautogui.onScreen(0, 0)
True
&gt;&gt;&gt; pyautogui.onScreen(-90, -10)
Falseدر مورد تابع بالا اگر فرض کنیم که ابعاد نمایشگر ما 1920*1080 پیکسل است؛ با توجه به آخرین نکته ای که گفتم، در این حالت:&gt;&gt;&gt; pyautogui.onScreen(1920, 1080)
False
&gt;&gt;&gt; pyautogui.onScreen(1919, 1079)
Trueحرکت دادن نشانگر موسحرکت دادن نشانگر موسبرای حرکت دادن نشانگر موس، دو حالت داریم:1. در حالت اول، مبدا حرکت موس، نقطه ای هست که در حال حاضر موس ما در آن جا قرار دارد. باید توجه داشته باشیم که در این حالت، مرکز مختصات، نقطه فعلی موس فرض می شود. با استفاده از تابع زیر، می توانیم از این نوع حرکت استفاده کنیم.&gt;&gt;&gt; pyautogui.move(100, 200)
&gt;&gt;&gt; pyautogui.move(7, -8)
&gt;&gt;&gt; pyautogui.move(-600, 500)2. حرکت دادن نشانگر موس با استفاده از صفحه مختصات پیشفرض نمایشگر؛ همان طور که پیشتر توضیح دادم، هر نقطه در صفحه دارای یک مختصات منحصر به فرد می باشد. در حالت دوم، با دادن مختصات مورد نظرمان به برنامه، موس ما به نقطه هدف انتقال داده خواهد شد. برای این نوع حرکت می توانیم از تابع زیر استفاده کنیم.&gt;&gt;&gt; pyautogui.moveTo(100, 200)
&gt;&gt;&gt; pyautogui.moveTo(None, 200)نکته: عبارت None در تابع بالا به معنای مقدار قبلی موس می باشد؛ برای مثال اگر فرض کنیم که موس ما در مختصات (hello_x, hello_y) باشد، پس از اجرای خط دوم از کد بالا، موس به مختصات (hello_x, 200)، انتقال داده خواهد شد.جالب است بدانید، در هر دو حالت بالا می توانیم با دادن یک زمان به برنامه، مدت زمان طول کشیدن هر حرکت را تعیین کنیم! به مثال زیر توجه کنید.&gt;&gt;&gt; pyautogui.move(100, 200, 4)
&gt;&gt;&gt; pyautogui.moveTo(None, 1070, 9)در کد ها بالا، هر حرکت، به ترتیب 4 ثانیه و 9 ثانیه طول می کشد.نکته: در صورتی که به برنامه خود زمانی ندهیم، به طور میانگین هر حرکت 0.1 ثانیه طول می کشد.دراگ اند دراو موسدر اینجا نیز، دو تابع داریم که دقیقا مانند دو تابع قبل کار می کنند:&gt;&gt;&gt; pyautogui.dragTo(100, 200, button=&amp;quotleft&amp;quot)
&gt;&gt;&gt; pyautogui.dragTo(300, 400, 2, button=&amp;quotleft&amp;quot)
&gt;&gt;&gt; pyautogui.drag(30, 0, 2, button=&amp;quotright&amp;quot)
&gt;&gt;&gt; pyautogui.drag(300, 530, button=&amp;quotmiddle&amp;quot)همان طور که مشاهده می کنیم، در خط دوم و سوم از کد های بالا، مدت زمان طول کشیدن هر حرکت را نیز مشخص کرده ایم. در تابع بالا لازم است، دکمه ای از موس را که قصد نگه داشتن آن در طول حرکت را داریم به عنوان آخرین پارامتر به تابع بدهیم.سرعت موس در حرکت هامی توانیم با استفاده از یک سری حالات پیشفرض در کتابخانه PyAutoGUI، سرعت حرکت نشانگر موس را تنظیم کنیم؛ برای مثال تعیین کنیم که نشانگر موس، ابتدا با سرعتی کم و در پایان با سرعتی زیاد حرکت کند!شروعی آهسته با پایانی سریع:&gt;&gt;&gt; pyautogui.moveTo(100, 100, 2, pyautogui.easeInQuad)شروعی سریع با پایانی آهسته:&gt;&gt;&gt; pyautogui.moveTo(100, 100, 2, pyautogui.easeOutQuad)شروع و پایانی سریع با میانه ای آهسته:&gt;&gt;&gt; pyautogui.moveTo(100, 100, 2, pyautogui.easeInOutQuad)دو حالت کاملا متفاوت و عجیب که ترجیح می دهم خودتون تست کنید:&gt;&gt;&gt; pyautogui.moveTo(100, 100, 2, pyautogui.easeInBounce)
&gt;&gt;&gt; pyautogui.moveTo(100, 100, 2, pyautogui.easeInElastic)کلیک کردن موسکلیک کردن موستا الآن یاد گرفتیم که چطور نشانگر موس را حرکت بدهیم یا با آن دراگ اند دراو کنیم. حالا می خواهیم تابعی را معرفی کنیم که امکان کلیک کردن را برای ما فراهم می کند:&gt;&gt;&gt; pyautogui.click()همان طور که احتمالا متوجه شدید، این تابع در موقعیتی که نشانگر موس در آن جا قرار دارد، کلیک می کند. همچنین اگر بخواهیم که در مختصات خاصی از صفحه نمایشگر کلیک کند، می توانیم تابع را به این شکل استفاده کنیم:&gt;&gt;&gt; pyautogui.click(x=100, y=200)به بیان بهتر:# Name of this code: A-80
import pyautogui
pyautogui.moveTo(700, 200)
pyautogui.click()# Name of this code: B-90
import pyautogui
pyautogui.click(700, 200)به بیان بهتر، کد A-80 با کد B-90 در عمل فرقی ندارد!پرسش: حالا اگر بخواهیم از سایر کلید های موس استفاده کنیم، چه کار کنیم؟+ کلیک راست:&gt;&gt;&gt; pyautogui.click(button=&amp;quotright&amp;quot)+ کلیک چپ (پیشفرض):&gt;&gt;&gt; pyautogui.click(button=&amp;quotleft&amp;quot)+ کلیک میانی:&gt;&gt;&gt; pyautogui.click(button=&amp;quotmiddle&amp;quot)پرسش: چجوری می توانم تعداد کلیک ها را مشخص کنم؟ مثلا 5 بار کلیک شود؟ + بله:&gt;&gt;&gt; pyautogui.click(clicks=5)پرسش: آیا می توانم بین هر کلیک فاصله بزارم؟ مثلا 0.25 ثانیه؟ + بله:&gt;&gt;&gt; pyautogui.click(clicks=5, interval=0.25)+ یک مثال دیگر:&gt;&gt;&gt; pyautogui.click(button=&#039;right&#039;, clicks=5, interval=0.25)کتابخانه PyAutoGUI چند تا تابع دیگر هم برای کلیک کردن دارد؛ این توابع برای تسهیل کردن کار ما هستند:دابل کلیک:&gt;&gt;&gt; pyautogui.doubleClick()تریپل کلیک:&gt;&gt;&gt; pyautogui.tripleClick()رایت کلیک:&gt;&gt;&gt; pyautogui.rightClick()اکثر قابلیت ها و آرگومان هایی که در تابع اصلی کلیک کردن موجود است، در سه تابع بالا نیز وجود دارد.توابع mouseDown و mouseUpاین دو تابع شباهت زیادی به توابع دراگ اند دراو دارند. با استفاده از این دو تابع می توانیم تعیین کنیم که یکی از کلید های موس نگه داشته شود یا اگر از قبل نگه داشته شده بود، آزاد شود. برای درک بهتر به این مثال توجه کنید:&gt;&gt;&gt; pyautogui.mouseDown(button=&#039;left&#039;)
&gt;&gt;&gt; pyautogui.mouseUp(button=&amp;quotleft&amp;quot, x=100, y=200)در مثال بالا ابتدا کلید چپ موس نگه داشته شده و بعد از انتقال موس به مختصات X=100 و Y=200، آزاد می شود.اسکرول کردن موساسکرول کردن موسبالاخره به آخرین تابع از توابع کنترل موس رسیدیم، اسکرول! به مثال زیر توجه کنید.&gt;&gt;&gt; pyautogui.scroll(100)
&gt;&gt;&gt; pyautogui.scroll(-400)در صورتی که به تابع عددی مثبت بدهید، اسکرول به سمت بالا و در صورتی که عددی منفی بدهید، اسکرول به سمت پایین حرکت می کند. لازم به ذکر است، عددی که به این تابع می دهیم به واحد پیکسل می باشد.همچنین در سیستم عامل های لینوکس و مک می توانیم برای اسکرول افقی از این تابع استفاده کنیم:&gt;&gt;&gt; pyautogui.hscroll(100)
&gt;&gt;&gt; pyautogui.hscroll(-400)کتابخانه PyAutoGUI تابع دیگری را نیز، برای اسکرول عمودی معرفی کرده که در اجرا فرقی با تابع اصلی ندارد:&gt;&gt;&gt; pyautogui.vscroll(100)
&gt;&gt;&gt; pyautogui.vscroll(-400)قسمت اول به پایان رسید! دوست دارم نظرات، انتقادات و پیشنهاداتتون رو بدونم؛ اگر سوالی داشتید یا به مشکلی برخوردید حتما به من بگید تا اگر تونستم، کمکتون کنم. ? ان شا الله، این مقاله دو یا سه قسمت دیگر هم خواهد داشت، پس نظرات شما برای بهبود این نوشته بسیار بسیار مهم هست! موفق باشید؛ یا حق.Ways to communicate with me:* E-mail: MahdiMoosivand@outlook.com* Gap: @MahdiMoosivandTranslated by Mahdi Moosivand.Click here to view the original documentation.اللهم صل علی محمد و آل محمد و عجل فرجهم. :) https://virgool.io/@MahdiMoosivand/%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-pyautogui-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-tvtpylc7k6iu </description>
                <category>مهدی موسیوند</category>
                <author>مهدی موسیوند</author>
                <pubDate>Tue, 14 Jul 2020 17:23:07 +0430</pubDate>
            </item>
            </channel>
</rss>