python中.py文件的双击运行,开机启动,去黑框,查句柄

下面的写法一般都能正常启动.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()

 

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞎老猛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值