# -*- coding:utf-8 -*-
import os,sys
from configparser import ConfigParser
import psutil
import wx
import wx.adv
import requests
cf = ConfigParser()
tip = '就绪:'
class Frame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='极速快搜V1.1 【作者:谢海亮】', size=(630, 160), name='frame', style=541072384)
self.启动窗口 = wx.Panel(self)
self.Centre()
self.启动窗口.Bind(wx.EVT_WINDOW_DESTROY, self.启动窗口_将被关闭) #wx.CloseEvent wx.EVT_CLOSE
self.编辑框_关键字 = wx.TextCtrl(self.启动窗口, size=(523, 30), pos=(13, 98), value='', name='text', style=wx.TE_PROCESS_ENTER)
编辑框_关键字_字体 = wx.Font(10, 74, 90, 700, False, 'Tahoma', 33)
self.编辑框_关键字.SetFont(编辑框_关键字_字体)
self.编辑框_关键字.Bind(wx.EVT_TEXT_ENTER, self.编辑框_关键字_按下Enter键)
self.按钮_搜索 = wx.Button(self.启动窗口, size=(78, 32), pos=(539, 97), label='搜索', name='button')
self.按钮_搜索.Bind(wx.EVT_BUTTON, self.按钮_搜索_按钮被单击)
self.标签1 = wx.StaticText(self.启动窗口, size=(300, 14), pos=(16, 77), label='文件名称含有关键字【不同关键字之间使用空格】', name='staticText',
style=0)
self.单选框_所有类型文件 = wx.RadioButton(self.启动窗口, size=(96, 24), pos=(11, 0), name='radioButton', label='所有类型文件')
self.单选框_所有类型文件.SetValue(True)
self.单选框_所有类型文件.Bind(wx.EVT_RADIOBUTTON, self.单选框_所有类型文件_状态被改变)
self.多选框_Word文档 = wx.CheckBox(self.启动窗口, size=(68, 24), pos=(12, 19), name='check', label='Word文档', style=16384)
self.多选框_Word文档.Bind(wx.EVT_CHECKBOX, self.多选框_Word文档_狀态被改变)
self.多选框_电子表格 = wx.CheckBox(self.启动窗口, size=(73, 24), pos=(85, 19), name='check', label='电子表格', style=16384)
self.多选框_电子表格.Bind(wx.EVT_CHECKBOX, self.多选框_电子表格_狀态被改变)
self.多选框_幻灯片 = wx.CheckBox(self.启动窗口, size=(61, 24), pos=(162, 19), name='check', label='幻灯片', style=16384)
self.多选框_幻灯片.Bind(wx.EVT_CHECKBOX, self.多选框_幻灯片_狀态被改变)
self.多选框_视频文件 = wx.CheckBox(self.启动窗口, size=(69, 24), pos=(229, 19), name='check', label='视频文件', style=16384)
self.多选框_视频文件.Bind(wx.EVT_CHECKBOX, self.多选框_视频文件_狀态被改变)
self.多选框_音频文件 = wx.CheckBox(self.启动窗口, size=(73, 24), pos=(303, 19), name='check', label='音频文件', style=16384)
self.多选框_音频文件.Bind(wx.EVT_CHECKBOX, self.多选框_音频文件_狀态被改变)
self.多选框_图片文件 = wx.CheckBox(self.启动窗口, size=(73, 24), pos=(379, 19), name='check', label='图片文件', style=16384)
self.多选框_图片文件.Bind(wx.EVT_CHECKBOX, self.多选框_图片文件_狀态被改变)
self.多选框_其它格式 = wx.CheckBox(self.启动窗口, size=(73, 24), pos=(455, 19), name='check', label='其它格式', style=16384)
self.多选框_其它格式.Bind(wx.EVT_CHECKBOX, self.多选框_其它格式_狀态被改变)
self.编辑框_其它格式 = wx.TextCtrl(self.启动窗口, size=(89, 26), pos=(528, 19), value='', name='text', style=0)
self.编辑框_其它格式.Disable()
self.编辑框_其它格式.Bind(wx.EVT_TEXT, self.编辑框_其它格式_内容被改变)
self.标签_更多功能 = wx.StaticText(self.启动窗口, size=(69, 14), pos=(549, 2), label='爱心支持>>', name='staticText',
style=2321)
标签_更多功能_字体 = wx.Font(8, 74, 90, 400, True, 'Tahoma', 33)
self.标签_更多功能.SetFont(标签_更多功能_字体)
self.标签_更多功能.SetForegroundColour((255, 0, 0, 255))
self.标签_更多功能.Bind(wx.EVT_LEFT_DOWN, self.标签_更多功能_鼠标左键按下)
self.标签_更多功能.Bind(wx.EVT_LEFT_UP, self.标签_更多功能_鼠标左键松开)
self.标签2 = wx.StaticText(self.启动窗口, size=(602, 3), pos=(10, 135), label='', name='staticText', style=2304)
self.标签2.Disable()
self.标签2.SetOwnBackgroundColour((112, 112, 112, 255))
self.多选框_指定路径 = wx.CheckBox(self.启动窗口, size=(71, 24), pos=(14, 49), name='check', label='指定路径:', style=16384)
self.多选框_指定路径.Bind(wx.EVT_CHECKBOX, self.多选框_指定路径_狀态被改变)
self.编辑框_路径 = wx.TextCtrl(self.启动窗口, size=(446, 29), pos=(90, 46), value='', name='text', style=0)
self.编辑框_路径.Bind(wx.EVT_TEXT, self.编辑框_路径_内容被改变)
self.编辑框_路径.Disable()
self.按钮_浏览 = wx.Button(self.启动窗口, size=(77, 29), pos=(540, 45), label='...', name='button')
self.按钮_浏览.Bind(wx.EVT_BUTTON, self.按钮_浏览_按钮被单击)
self.按钮_浏览.Disable()
self.标签_版权 = wx.StaticText(self.启动窗口, size=(582, 43), pos=(12, 154),
label='软件说明:\n本软件免费,感谢您的使用。如果您觉得这个软件对您有所帮助请对作者给予鼓励和支持,请关注微信公众号 "IT小技能"(搜索:it_114),视同支持作者,您将作为合法授权用户使用该软件。 ',
name='staticText', style=0)
if os.path.exists("banquan.png"):
图片框_软件信息_图片 = wx.Image(r'banquan.png').Scale(600, 120).ConvertToBitmap()
self.图片框_软件信息 = wx.StaticBitmap(self.启动窗口, bitmap=图片框_软件信息_图片, size=(600, 120), pos=(12, 149),
name='staticBitmap', style=0)
else:
banquanurl="https://mmbiz.qpic.cn/mmbiz_png/0lwOrR31Ey7icQF9JhpIfVfqx6wTicNmrBuia8q5rl3alkkt4CDIw2iaZPn9K2SnqycQqIE0J5lbxl6bK8aVJTlicCQ/640?wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1"
downloadFile(banquanurl,"banquan.png")
self.iniParm()
def 编辑框_关键字_按下Enter键(self, event):
print('编辑框_关键字,按下Enter键')
def 按钮_搜索_按钮被单击(self, event):
print('按钮_搜索,按钮被单击')
def 单选框_所有类型文件_状态被改变(self, event):
print('单选框_所有类型文件,状态被改变')
def 多选框_Word文档_狀态被改变(self, event):
print('多选框_Word文档,狀态被改变')
def 多选框_电子表格_狀态被改变(self, event):
print('多选框_电子表格,狀态被改变')
def 多选框_幻灯片_狀态被改变(self, event):
print('多选框_幻灯片,狀态被改变')
def 多选框_视频文件_狀态被改变(self, event):
print('多选框_视频文件,狀态被改变')
def 多选框_音频文件_狀态被改变(self, event):
print('多选框_音频文件,狀态被改变')
def 多选框_图片文件_狀态被改变(self, event):
print('多选框_图片文件,狀态被改变')
def 多选框_其它格式_狀态被改变(self, event):
print('多选框_其它格式,狀态被改变')
def 编辑框_其它格式_内容被改变(self, event):
print('编辑框_其它格式,内容被改变')
def 标签_更多功能_鼠标左键按下(self, event):
print('标签_更多功能,鼠标左键按下')
def 标签_更多功能_鼠标左键松开(self, event):
print('标签_更多功能,鼠标左键松开')
def 多选框_指定路径_狀态被改变(self, event):
print('多选框_指定路径,狀态被改变')
def 编辑框_路径_内容被改变(self, event):
print('编辑框_路径,内容被改变')
def 按钮_浏览_按钮被单击(self, event):
print('按钮_浏览,按钮被单击')
def 启动窗口_将被关闭(self, event):
p = os.system("start "+EverythingFile + " -exit")
def 编辑框_关键字_按下Enter键(self, event):
self.按钮_搜索_按钮被单击(wx.EVT_TEXT_ENTER)
def 按钮_搜索_按钮被单击(self, event):
extStr = self.getExtStr()
iniStr = "start "+EverythingFile + " -admin -filter EVERYTHING -noww -nocase "
if self.多选框_指定路径.Value == True and os.path.isdir(self.编辑框_路径.Value.strip()):
cmdStr = iniStr + ' -filename "' + str(self.编辑框_路径.Value.strip()) + '"'
else:
cmdStr = iniStr
keyStr = str(self.编辑框_关键字.Value).strip()
while str(keyStr).find(" ") > 1:
keyStr = str(keyStr).replace(" ", " ")
keyStr = keyStr.replace(" ", "*")
if extStr == "": extStr = "*.*"
if keyStr != "": extStr = extStr.replace("*.", "*" + keyStr + "*.")
cmdStr = cmdStr + ' -s "' + extStr + '"'
print(cmdStr)
p = os.system(cmdStr)
#p = subprocess.Popen(cmdStr, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
def 单选框_所有类型文件_状态被改变(self, event):
if self.单选框_所有类型文件.Value == True:
self.多选框_Word文档.SetValue(False)
self.多选框_电子表格.SetValue(False)
self.多选框_幻灯片.SetValue(False)
self.多选框_视频文件.SetValue(False)
self.多选框_音频文件.SetValue(False)
self.多选框_图片文件.SetValue(False)
self.多选框_其它格式.SetValue(False)
self.编辑框_其它格式.Disable()
def 多选框_Word文档_狀态被改变(self, event):
self.单选框_所有类型文件.SetValue(False)
def 多选框_电子表格_狀态被改变(self, event):
self.单选框_所有类型文件.SetValue(False)
def 多选框_幻灯片_狀态被改变(self, event):
self.单选框_所有类型文件.SetValue(False)
def 多选框_视频文件_狀态被改变(self, event):
self.单选框_所有类型文件.SetValue(False)
def 多选框_音频文件_狀态被改变(self, event):
self.单选框_所有类型文件.SetValue(False)
def 多选框_图片文件_狀态被改变(self, event):
self.单选框_所有类型文件.SetValue(False)
def 多选框_其它格式_狀态被改变(self, event):
self.单选框_所有类型文件.SetValue(False)
if self.多选框_其它格式.Value == True:
self.编辑框_其它格式.Enable()
self.编辑框_其它格式.SetFocus()
elif self.多选框_其它格式.Value == False:
self.编辑框_其它格式.Disable()
def 编辑框_其它格式_内容被改变(self, event):
print('编辑框_其它格式,内容被改变')
def 标签_更多功能_鼠标左键松开(self, event):
if self.标签_更多功能.LabelText == "爱心支持>>":
self.标签_更多功能.SetLabelText("<<爱心支持")
self.SetSize(630, 300)
elif self.标签_更多功能.LabelText == "<<爱心支持":
self.标签_更多功能.SetLabelText("爱心支持>>")
self.SetSize(630, 160)
print('标签_更多功能,鼠标左键松开')
def 多选框_指定路径_狀态被改变(self, event):
if self.多选框_指定路径.Value == True:
self.按钮_浏览.Enable()
self.按钮_浏览.SetFocus()
elif self.多选框_指定路径.Value == False:
self.按钮_浏览.Disable()
self.编辑框_路径.Disable()
def 编辑框_路径_内容被改变(self, event):
print('编辑框_路径,内容被改变')
def 按钮_浏览_按钮被单击(self, event):
path = wx.DirSelector("选择文件夹路径")
if path == None or len(path) < 3:
self.编辑框_路径.SetValue('')
return
self.编辑框_路径.SetValue(path)
.................
def iniParm(self):
if not os.path.exists(EverythingFile):
wx.MessageBox("程序组件 " + EverythingFile + " 不存在,程序无法运行。", caption='错误提示', style=wx.OK, parent=None)
quit()
if not os.path.exists(configpath):
wx.MessageBox("配置文件 " + configpath + " 不存在,程序无法运行。", caption='错误提示', style=wx.OK, parent=None)
quit()
cf.read(configpath)
#########################################
#获取与服务器的链接
# 监测网络
def ifServerConnected(serverweb):
try:
res = requests.get(serverweb, timeout=10)
if res.status_code == 200:
return True
else:
return False
except Exception as e:
return False
##################################
# 下载文件
def downloadFile(urlfile,savefile):
connected=ifServerConnected(urlfile)
if connected:
content=requests.get(urlfile).content
try:
with open(savefile,'wb') as f: #######################################?
f.write(content)
f.close()
except Exception as e:
print("下载错误:",e)
##################################
def Is64Windows():
return 'PROGRAMFILES(X86)' in os.environ
def ifSelfHaveRuned():
curpid=os.getpid()
selfName=psutil.Process(curpid).name()
CountNum=0
for proc in psutil.process_iter():
try:
appName=proc.name()
except(psutil.NoSuchProcess,psutil.AccessDenied,psutil.ZombieProcess):
pass
if selfName.lower()==appName.lower():
CountNum=CountNum+1
if CountNum>2:
print("Process is Runing")
return True
else:
return False
class myApp(wx.App):
def OnInit(self):
self.frame = Frame()
self.frame.Show(True)
return True
【python】开发制作的急速快搜软件。
于 2023-01-15 18:05:16 首次发布