赞
踩
下面的写法一般都能正常启动.py文件
在.bat文件中写这个:
- chcp 65001
- @cd /d F:\hello&&w.py
- @pause>nul
~新建记事本把后缀改成.bat 右击编辑
(这个跟.py文件一样双击就直接运行所以要右击编辑)
输入上面内容(注意把地址和程序名改成自己的)保存,然后双击这个.bat文件
想去掉黑框,后台运行,要新建一个.vbs文件,里面内容如下:
- set ws=WScript.CreateObject("WScript.Shell")
- ws.Run "F:\hello\w.bat /start",0
~新建记事本后缀改成.vbs
想要开机后台启动,就把上面这个.vbs文件拖到
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
这个文件夹下.
~这个开机启动项一般是在固定的位置上的
想关闭后台(Python)程序cmd下输入:
taskkill /f /t /im python.exe
,
想要查看后台程序cmd输入:
tasklist
,
想要查找后台进程又只想用python:
- def search_tasklist(file='python'):
- import subprocess
- res = subprocess.run('tasklist',shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
- l=str(res.stdout).split(r"\r\n")
- ll=[i for i in l if file in i]
- return(str(res.stdout).count(file),ll)
- def main():
- print(search_tasklist('python'))
- if __name__=='__main__':
- main()
,
一些黑框防闪退策略
有些依赖黑框的.py程序(偏偏会闪退)
1. 末尾加输入语句:
input('press<enter>')#防闪退
,
2.末尾用python的休眠语句:
time.sleep(100)
~前面别忘加 import time
3.上面提到的用.bat文件启动末尾加@pause>nul
- chcp 65001
- @echo.
- @echo.
- @python.exe love.py
- ::与(.py文件的)放在同一目录下
- @pause>nul
,
4.终极大杀器cmd窗口打开:
- cd /d F:\hello
- @python.exe love.py
,
最后是封面图
- # -*- coding: utf-8 -*-
- import win32gui, win32con
- '''
- 主要还是窗口句柄的操作
- 下面画心的是玩的
- hwnd_title句柄字典
- win32gui.SetWindowPos(hwnd, win32con.HWND_NOTOPMOST, 0,0,800,600, win32con.SWP_SHOWWINDOW)# 取消置顶
- win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, 0,0,800,600, win32con.SWP_SHOWWINDOW)#置顶
- '''
-
- hwnd_title = dict()
- def get_all_hwnd(hwnd,mouse):
- if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd):
- hwnd_title.update({hwnd:win32gui.GetWindowText(hwnd)})
-
- win32gui.EnumWindows(get_all_hwnd, 0)
-
- def print_h_t():
- '''打印所有句柄'''
- for h,t in hwnd_title.items():
- if t != "":
- print(h, t)
-
- def find_h_t(I_N='cmd.exe',notI_N='PAUSE'):
- '''搜索所有句柄找出含有某个字符串且不含另一个字符串的句柄'''
- for h,t in hwnd_title.items():
- if t!="":
- if I_N in t:
- if notI_N in t:
- pass
- else:
- #print(h, t)#测试用(这么简单肯定会错的啦)
- return(h)
-
- hh=find_h_t()
- win32gui.SetForegroundWindow(hh)#窗口设为当前活动窗口
-
- def love(z=0.071,x=0,y=0):
- '''
- z越小画的心越大
- 建议在0.05到0.1之间
- (大了会超出屏幕小了会变形自己试吧!)
- '''
- hh=find_h_t()#获得python窗口的句柄
- win32gui.SetWindowPos(hh, win32con.HWND_TOPMOST, x,y,18*int(3/z),37*int(1.3/z), win32con.SWP_SHOWWINDOW)
- #上面这句是置顶窗口
- print('\n'.join([''.join([('love'[(x-y) % len('love')] \
- if ((x*0.5*z)**2+(y*z)**2-1)**3-(x*0.5*z)**2*(y*z)**3 <= 0 else ' ') \
- for x in range(-1*(int(3/z)), int(3/z))]) for y in range(int(1.3/z), -1*int(1.3/z), -1)]))
- love()
win32gui, win32con这两个模块是在pywin32里的.最好是在cmd下pip装:
pip install pywin32 -i https://pypi.tuna.tsinghua.edu.cn/simple
当时就是这么装上去的.之前也死活装不上去,这个模块看脸的.
如果实在装不上就:
(前面的想要查找后台进程又只想用python:里面好像也能查到句柄用.bat文件也能调节窗口大小改变颜色啥的,在这里就不再聊了,自己查吧)
- def love(z=0.071):
- '''
- z越小画的心越大
- '''
- print('\n'.join([''.join([('love'[(x-y) % len('love')] \
- if ((x*0.5*z)**2+(y*z)**2-1)**3-(x*0.5*z)**2*(y*z)**3 <= 0 else ' ') \
- for x in range(-1*(int(3/z)), int(3/z))]) for y in range(int(1.3/z), -1*int(1.3/z), -1)]))
- love()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。