کتابخونه ی pyautogui در پایتون :: V i R u s Ʒ²

V i R u s Ʒ²

هک و امنیت

V i R u s Ʒ²

هک و امنیت

Virus 32

💢 دوستانم بی دفاع و دشمنانم بی جواب نخواهند ماند 💢

-->
آخرین نظرات
  • ۲۲ مرداد ۰۲، ۰۰:۳۴ - Sami
    مرسی
  • ۱۴ مرداد ۰۲، ۱۴:۴۶ - farhad
    salam

به درخواست یکی از دوستان توی این پست قراره کاربردهای کتابخونه ی pyautogui توی پایتون رو بررسی کنیم و ببینیم که چه مانور هایی با استفاده از این کتابخونه و کتابخونه های دیگه داد

فقط یاد آوری کنم کتابخونه ی pyautogui رو نصب کنین

کد اسکرین شات از صفحه :

import pyautogui
pyautogui.screenshot("C:\Users\ViRus32\Desktop\File-Name.png")

شاید تو بعضی از برنامه های گرافیکی دیده باشین که برنامه موقع خارج شدن MessageBox تو سی شارپ یا  MsgBox تو ویژوال بیسیک رو میده که اگه Ok بدی ، از برنامه خارج میشه و اگه Cancel بدیم از برنامه خارج نمیشه

با استفاده از این کتابخونه و کد پایین میتونیم یه متغیر تعریف کنیم که اگه کاربر Ok زد ، متغیرمون مقدارش میشه OK و اگه Cancel بزنه میشه Cancel و در آخر هم میتونیم شرط بزاریم که اگه متغیر OK بود فلان کن و اگه Cancel بود فلان کار دیگه

import pyautogui
v32 = pyautogui.confirm("Confirm Close")
print v32

البته من فقط چون ببینین نتیجه چی میشه بخاطر همین آخرش نوشتم print v32 و شما باید اون خط رو پاک کنین و کد مورد نظرتونو که میتونه شرط و ... باشه بزارین


شاید بخواین یه چیزی تو مایه های InputBox یا همون جعبه ورودی نمایش بدین و بعد از اینکه یه مقداری رو از کاربر گرفتین ، اونو توی متغیر بزارین و شرططونو براش بزارین و ...

import pyautogui
v32 = pyautogui.prompt("Enter your name")
print v32

کد بالا یه جعبه دریافت متن واسمون میاره و بعد از اینکه مقدارو زدیم اونو print میکنه


با استفاده از کد پایین یه چیز تو مایه های کد قبلی میتونیم یه مقدار رو بگیریم و بریزیم توی متغیر ، اما شاید بخواین از کاربر پسووردی چیزی بگیرین که وقتی کاربر وارد میکنه ، متن توی اون کادر ستاره ای باشه و ...

import pyautogui
v32 = pyautogui.password("Enter your password")
print v32

شاید بخواین یه کادر پیغامی به کاربر نشون بدین و بگین که اینترنت شما قطعه یا اینکه یه مشکلی تو برنامه پیش اومده و ...

import pyautogui
v32 = pyautogui.alert("Error in application")
print v32

البته تو کد بالا مقدار رو میریزیم توی متغیر v32 که میتونیم براش شرط بزاریم و شرط نزاریم و اصلا کد رو نریزیم توی متغیر و ...


میتونیم یدونه متنی رو با استفاده از اون تایپ کنیم ، فقط برای اینکار قبلش باید کتابخونه ی keyboard رو هم نصب کنیم

import keyboard, pyautogui,time
time.sleep(3)
pyautogui.typewrite("ViRus32Bat")

اینجا سه تا کتابخونه ی time برای به انتظار بردن برنامه و .... وارد برنامه کردیم

شاید سوال بشه کتابخونه ی time برای چیه ؟ پیشنهاد میکنم کتابخونه ی time رو بردارین و خط دوم رو هم از کدها پاک کنین ، چون اگه نباشه متن ما که ViRus32Bat هستش ناقص تایپ میشه اما ما باید یه زمان در نظر بگیریم که برنامه درست کار بده


در آخر میخوایم یه حرکت تیک نیکی و پیک نیکی با استفاده از کد قبلی بزنیم :) یعنی میخوایم با استفاده از متد press_and_release که توی کتابخونه ی keyboard هست ، دو تا کلید ترکیبی Windows+R رو فشار بدیم و بعدش تایپ کنیم notepad و Enter رو بزنیم و متنمونو داخلش بتایپیم :)

کد پایینو یه نیگا بندازین

import keyboard, pyautogui,time

keyboard.press_and_release("windows+r")
time.sleep(1)
pyautogui.typewrite("notepad")
time.sleep(1)
keyboard.press_and_release("return")
time.sleep(1)
pyautogui.typewrite("ViRus32Bat")

خط اول که مشخصه ، تو خط دوم با استفاده از متد press_and_release توی کتابخونه ی keyboard کلید های ترکیبی Windows و R رو گرفتیم که باعث میشه Run باز بشه و تو خط سوم گفتیم یک ثانیه بعد با استفاده از typewrite توی pyautogui مینویسیم notepad و دوباره یک ثانیه بعدش کلید return با همون Enter رو میزنیم و دوباره :) یک ثانیه بعدش میگیم با استفاده از typewrite بنویس ViRus32Bat

ViRus32

موفق باشید

نظر (۱۶)

سلام
دمت گرم
ولی مگه میشه درباره کتاب خانه pyautogui اینقدر ناقص بنویسی و درباره کتاب خانه punput اصلا چیزی ننویسی؟ D:
Virus32 MR_C0D3R ‌ :
سلام
یادم رفته بود بگم این پست بازم آپدیت میشه :(
سلام با ماژول keyboard چجوری می شه این کار رو انجام داد :

جوری باشه که هر کلیدی رو که می زنی print کنه
Virus32 MR_C0D3R ‌ :
سلام
اینکه هر کلیدی رو میزنیم برنامه تشخیص بده و یه پیغام رو چاپ کنه
نمیدونستم چطوره
سرچ که زدم متوجه شدم این کتابخونه تابعی برای اینکار نداره که همه ی کلیدهارو بشناسه
در نتیجه میتونیم شرط بزاریم که اگر یه کلیدی فشرده شد
یه پیغامی چاپ بشه
و میتونیم از or هم استفاده کنیم و داخل یه شرط چندین کارکتر رو معرفی کنیم
import keyboard
while True:
    try:
        if keyboard.is_pressed('v'):
            print('You Pressed V Key!')
            break
        else:
            pass
    except:
        break

تو مسیج باکس چجوری چند تا کلید دلخواهی بزاریم....اوکی و کنسل نباشه

Virus32 MR_C0D3R ‌ :
اینکار ممکن نیست و باید از Tkinter استفاده کنیم
چون این کتابخونه یکسری توابع به ما میده که از قبل تعریف شده هستن

چی هست این Tkinter

Virus32 MR_C0D3R ‌ :
یه کتابخونه برای برنامه نویسی گرافیکی با پایتون
کدهای پایتون دو :
import tkinter

root = tkinter.Tk()
root.title("ViRus32")
button = tkinter.Button(root,text='ViRus32',width=25)
button.pack()
root.mainloop()
اگر هم پایتون سه داری :
import Tkinter

root = Tkinter.Tk()
root.title("ViRus32")
button = Tkinter.Button(root,text='ViRus32',width=25)
button.pack()
root.mainloop()
البته من پایتون 3 ندارم
اما مطمئنم این کدها جواب بده
چون میدونم تو پایتون 3 به جای tkinter از Tkinter استفاده شده :)

یادش بخیر چند ماه پیش تو بت فایل ها با پست هایی که نوشتی استاد شدیمD: اما تو یکی از پست هات گفته بودی که تازه اول راهه و هنوز هیچی نیستیم:

اهمیت ندادم

الان که تو سی شارپ و پایتونیم حرفت رو کامل درک میکنم

در هر صورت غلامتیم

Virus32 Virus 32 :
عزیزی ♥
آدم هر روز یه چیز جدید یاد میگیره و هر روز به یه واقعیت بیشتر پی میبره.
هر چقدر تو یه بحثی استاد شیم بازم هنوز کلی چیزا هست که باید یاد بگیریم و اون واقعیت هم اینه که هرچقدر بیشتر بدونی بیشتر میفهمی که هیچی نمیدونی D:

آقای MR CODER اون کدی که نوشتی برای tkinter برای پایتون 2 درسته برای پایتون3 نیست

چرا وقتی فرقشو نمیدونی میگی فرقی نداره؟

from tkinter import *
root = Tk()
root.title("ViRus32")
button = Button(root,text='ViRus32',width=25)
button.pack()
root.mainloop()
Virus32 Virus 32 :
داداش فکر نکنم کدها فرق زیادی داشته باشن
با یه جستجوی کوچیک میشه به این تفاوت ساده پی برد
v32 = pyautogui.password("Enter your password")

title نمیشه براش گذاشت؟

Virus32 Virus 32 :
چرا

اصلا موندم چجوری با خود زبان یک کتابخونه به این بزرگی میسازن

مگه میشه یه چیزی قابلیت اصلیشو ندارع اما با استفاده از خودش بهش قابلیت بدن

Virus32 Virus 32 :
کتابخونه ها در اصل یجور برنامه سطح سه هستن (نه گرافیکی نه کنسولی)
فرض کن تو یه برنامه گسترده ما برای جلوگیری از تکرار بیجا برای یه متدی کلاسی ایجاد میکنیم و تو کل برنامه ازش استفاده میکنیم
کتابخونه ها هم تقریبا به همین شکل هستن
زبان های برنامه نویسی قابلیتی که مد نظرت هست رو ندارن ، سیستم ها هستن که این قابلیت هارو دارن ، زبان های برنامه نویسی از این قابلیت ها استفاده میکنن فقط

سلام اون تایپ خودکار رو به سی پلاس پلاس میگی ممنون میشم

Virus32 MR_C0D3R ‌ :
جای سوالتو ببین

سلام اومدم این رو کامل تر کنم

 

برای کلیک موس : pyautogui.click()

برای راست کلیک : pyautogui.click(button = 'right')

Virus32 MR_C0D3R ‌ :
تنکس :(

سلام

نمیدونستم سوالمو کجا بپرسم اگه جای اشتباهیه ببخشید

 

توی پایتون چطوری میشه یه ورودی زمان دار بگیریم

مثلا

برای وارد کردن متن کاربر فقط ۴ ثانیه وقت داشته باشه

وقتی ۴ ثانیه تموم شد چه کاربر متن وارد کرده بود چه نه ورودی دریافت بشه و بره برای پردازش

Virus32 Attrib32 32 32 :
from threading import Timer

timeout = 5
t = Timer(timeout, print, ['Sorry, times up'])
t.start()
prompt = "please enter virus32...\n" % timeout
answer = input(prompt)
t.cancel()

سوالت سخت بود خخخخخخ

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

Virus32 Attrib32 32 32 :
import os
print(os.environ['UserProfile']+'\Desktop')

حاجی اون کدی که دادی ارور داد که:(

 

Traceback (most recent call last):
  File "C:\Users\BLACK0\Desktop\test.py", line 5, in <module>
    prompt = "please enter virus32...\n" % timeout
TypeError: not all arguments converted during string formatting
>>> Sorry, times up

Virus32 Attrib32 32 32 :
کدی که بهت دادم رو بفرست برام

دمت گرم اون یکی کار کرد:)

اره گلم همینو دادی:|

http://uupload.ir/files/312y_untitled.png

Virus32 Attrib32 32 32 :
آره داداش اشتباه شده بود
from threading import Timer
timeout = 5
t = Timer(timeout, print, ['Sorry, times up'])
t.start()
prompt = "please enter virus32...\n"
answer = input(prompt)
t.cancel()
  • Virus32
  • مهدی توازهی
  • pyautogui.typewrite("test")
    اینو قبلا نوشته بودم یعنی دیشب کار میکرد و چن سری هم تستش کردم امروز بازش کردم ارور داد
    ارورش هم اینه
    AttributeError: partially initialized module 'pyautogui' has no attribute 'typewrite' (most likely due to a circular import)

    Virus32 ولم کنید (: :
    سلام
    داداش تایپ رایت نداره که رایت خالیه اینجوری
    pyautogui.write("v32")
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی