|
|
|
@ -4,23 +4,27 @@ import subprocess
|
|
|
|
|
import time
|
|
|
|
|
import uuid
|
|
|
|
|
import pyautogui
|
|
|
|
|
|
|
|
|
|
from Util import ConfigUtil
|
|
|
|
|
from Util.Win32Util import *
|
|
|
|
|
import pyperclip
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# pip install pyautogui
|
|
|
|
|
# pip install pywin32
|
|
|
|
|
# pip install pyperclip
|
|
|
|
|
|
|
|
|
|
# PyAutoGUI fail-safe triggered from mouse moving to a corner of the screen
|
|
|
|
|
|
|
|
|
|
# pip install screeninfo
|
|
|
|
|
from screeninfo import get_monitors
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def open_jian_ying():
|
|
|
|
|
# 关闭剪映
|
|
|
|
|
subprocess.Popen(['taskkill', '/F', '/IM', 'JianyingPro.exe'], stdout=subprocess.PIPE, stderr=subprocess.PIPE,
|
|
|
|
|
text=True)
|
|
|
|
|
# 清时剪映的草稿区
|
|
|
|
|
# 清理剪映的草稿区
|
|
|
|
|
remove_dir_contents(JianYingCaoGao)
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
# 打开剪眏
|
|
|
|
|
subprocess.Popen([jianYingExePath])
|
|
|
|
|
# 检查是不是已经正确打开了
|
|
|
|
@ -34,17 +38,22 @@ def open_jian_ying():
|
|
|
|
|
if found:
|
|
|
|
|
break
|
|
|
|
|
else:
|
|
|
|
|
printf('waiting...')
|
|
|
|
|
|
|
|
|
|
printf('Loading...')
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
|
|
|
|
|
# 激活剪映为当前操作窗口
|
|
|
|
|
time.sleep(3)
|
|
|
|
|
time.sleep(2)
|
|
|
|
|
hwnd = x[0]
|
|
|
|
|
# 显示为当前窗口
|
|
|
|
|
win32gui.SetForegroundWindow(hwnd)
|
|
|
|
|
# 破解剪映
|
|
|
|
|
crack_jian_ying()
|
|
|
|
|
# 移动窗口到指定的显示器左上角上去
|
|
|
|
|
win32gui.SetWindowPos(hwnd, win32con.HWND_TOP, wm.x, wm.y, 0, 0, win32con.SWP_NOSIZE)
|
|
|
|
|
# 最大化
|
|
|
|
|
win32gui.ShowWindow(hwnd, win32con.SW_SHOWMAXIMIZED)
|
|
|
|
|
|
|
|
|
|
exit(0)
|
|
|
|
|
# 破解剪映
|
|
|
|
|
crack_jian_ying()
|
|
|
|
|
return hwnd
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -68,7 +77,9 @@ def crack_jian_ying():
|
|
|
|
|
is_running = True
|
|
|
|
|
|
|
|
|
|
if is_running:
|
|
|
|
|
# wm.x
|
|
|
|
|
win32gui.SetForegroundWindow(hwnd)
|
|
|
|
|
|
|
|
|
|
pyautogui.press('enter')
|
|
|
|
|
time.sleep(1)
|
|
|
|
|
pyautogui.press('enter')
|
|
|
|
@ -349,14 +360,31 @@ def run_switch(hwnd, source_img, cartoon_img):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
# 配置文件
|
|
|
|
|
config = ConfigUtil.getConfig()
|
|
|
|
|
# 剪映运行的显示器编号
|
|
|
|
|
working_id = int(config['monitor']['working_id'])
|
|
|
|
|
# 显示器个数检查
|
|
|
|
|
monitors = get_monitors()
|
|
|
|
|
if len(monitors) < working_id:
|
|
|
|
|
printf('显示器数量小于配置的显示器编号')
|
|
|
|
|
exit(0)
|
|
|
|
|
|
|
|
|
|
# 坐标测试的屏幕分辨率:1680*1050
|
|
|
|
|
wm = monitors[working_id - 1]
|
|
|
|
|
# print(wm.width, wm.height, wm.x, wm.y)
|
|
|
|
|
|
|
|
|
|
# 显示器的分辨率和开始的位置
|
|
|
|
|
# for i, monitor in enumerate(monitors):
|
|
|
|
|
# print("显示器", i + 1, "分辨率:", monitor.width, "x", monitor.height)
|
|
|
|
|
# print("显示器", i + 1, "位置:", monitor.x, ",", monitor.y)
|
|
|
|
|
|
|
|
|
|
# 获取当前脚本文件的绝对路径
|
|
|
|
|
script_path = os.path.abspath(__file__)
|
|
|
|
|
# 获取脚本文件所在的磁盘分区
|
|
|
|
|
# 这将返回脚本文件所在的完整路径,包括磁盘分区
|
|
|
|
|
disk_partition = os.path.splitdrive(script_path)[0]
|
|
|
|
|
|
|
|
|
|
print("当前脚本所在的磁盘分区是:", disk_partition)
|
|
|
|
|
|
|
|
|
|
# 清时剪映的草稿区
|
|
|
|
|
JianYingCaoGao = r'C:\Users\Administrator\AppData\Local\JianyingPro\User Data\Projects\com.lveditor.draft'
|
|
|
|
|
# 打开剪眏
|
|
|
|
@ -376,19 +404,19 @@ if __name__ == '__main__':
|
|
|
|
|
|
|
|
|
|
# 操作类型,1:生成MV,2:生成图片切换
|
|
|
|
|
type_id = 1
|
|
|
|
|
|
|
|
|
|
# 生成MV
|
|
|
|
|
if type_id == 1:
|
|
|
|
|
# 用户上传了多少张图片
|
|
|
|
|
imgCount = count_files(imgPath) - 1 # 因为有一个是MP3
|
|
|
|
|
# 拷贝MP3文件到imgPath目录
|
|
|
|
|
shutil.copy(mp3, imgPath)
|
|
|
|
|
videoName = run_once(hwnd, imgPath, imgCount) + '.mp4'
|
|
|
|
|
print(os.path.join(JiangYingOutPath, videoName))
|
|
|
|
|
|
|
|
|
|
# 生成图片切换
|
|
|
|
|
if type_id == 2:
|
|
|
|
|
sourceImg = disk_partition + r'\KeCheng\BaiHu\TestImage\Wife\wife.jpg'
|
|
|
|
|
CartoonImg = disk_partition + r'\KeCheng\BaiHu\TestImage\Wife\3.png'
|
|
|
|
|
videoName = run_switch(hwnd, sourceImg, CartoonImg) + '.mp4'
|
|
|
|
|
print(os.path.join(JiangYingOutPath, videoName))
|
|
|
|
|
#
|
|
|
|
|
# # 生成MV
|
|
|
|
|
# if type_id == 1:
|
|
|
|
|
# # 用户上传了多少张图片
|
|
|
|
|
# imgCount = count_files(imgPath) - 1 # 因为有一个是MP3
|
|
|
|
|
# # 拷贝MP3文件到imgPath目录
|
|
|
|
|
# shutil.copy(mp3, imgPath)
|
|
|
|
|
# videoName = run_once(hwnd, imgPath, imgCount) + '.mp4'
|
|
|
|
|
# print(os.path.join(JiangYingOutPath, videoName))
|
|
|
|
|
#
|
|
|
|
|
# # 生成图片切换
|
|
|
|
|
# if type_id == 2:
|
|
|
|
|
# sourceImg = disk_partition + r'\KeCheng\BaiHu\TestImage\Wife\wife.jpg'
|
|
|
|
|
# CartoonImg = disk_partition + r'\KeCheng\BaiHu\TestImage\Wife\3.png'
|
|
|
|
|
# videoName = run_switch(hwnd, sourceImg, CartoonImg) + '.mp4'
|
|
|
|
|
# print(os.path.join(JiangYingOutPath, videoName))
|
|
|
|
|