วันเสาร์ที่ 13 ตุลาคม พ.ศ. 2561

โปรแกรม ปิดโปรแกรมอื่น และดูโปรแกรมที่ทำงาน

โปรแกรมนี้ใช้ภาษา python 2.7 (ไม่เคยเขียนเพราะปกติไม่ชอบภาษา script แต่ต้องใช้งานบางอย่าง)
import subprocess
import re
import os
white_list = []
temp_processes = []
def get_processes_to_datafile():
    file = open("data.txt","w")
    tasks = subprocess.check_output(['tasklist']).split("\r\n")
    p = []
    for task in tasks:
        m = re.match("(.+?) +(\d+) (.+?) +(\d+) +(\d+.* K).*",task)
        if m is not None:
            print m.group(1)
            file.write(m.group(1)+"\n")
            p.append({"image":m.group(1),
                        "pid":m.group(2),
                        "session_name":m.group(3),
                        "session_num":m.group(4),
                        "mem_usage":m.group(5)
                        })
    file.close()
    return p
def set_temp_processes():
    tasks = subprocess.check_output(['tasklist']).split("\r\n")
    #print tasks
    string_name_o=""
    p = []
    p2 = []
    for task in tasks:
        m = re.match("(.+?) +(\d+) (.+?) +(\d+) +(\d+.* K).*",task)
        if m is not None:          
            p.append(m.group(1))
    p.sort()  
    for dataline in p:
        #print dataline
        if dataline != string_name_o:
            #print dataline
            string_name_o=dataline
            p2.append(dataline)
    for dataline in p2:
        int_loop=0
        for dataline2 in white_list:
            if dataline == dataline2:
                #print ">>"+dataline
                int_loop=1
                break
        if int_loop==0:
            temp_processes.append(dataline)
            print dataline
 
def get_white_list():
    with open("whitelist.txt") as fp:
       line = fp.readline()
       while line:
           str_line = line.strip()
           white_list.append(str_line)
           #print("W_Line ="+str_line)      
           line = fp.readline()

def kill_name():
    with open("blacklist.txt") as fp:
       line = fp.readline()
       #cnt = 1
       while line:
           str_line = line.strip()
           print("Line ="+str_line)
           os.system("taskkill /f /im  "+str_line)
           line = fp.readline()
        #   cnt += 1


 
get_white_list()  
set_temp_processes()
 
#get_processes_to_datafile()
#kill_name()
get_white_list คืออ่านมูลโปรแกรมที่ไม่ต้องการปิด
set_temp_processes คืออ่านโปรแกรมขณะที่เปิดเครื่องอยู่แล้วเก็บข้อมูล
get_processes_to_datafile คือเก็บข้อมูลโปรแกรมที่ทำงานแล้วเก็บลงไฟล์
kill_name คือปิดโปรแกรมตามไฟล์ที่กำหนดไว้

โปรแกรมนี้ยังไม่สำเร็จแต่พอเป็นแนวทางได้แล้วลองไปศึกษาเพิ่มเอานะ
update เพิ่มเติม
import subprocess
import re
import os
import time

white_list = []
temp_processes = []

def set_temp_processes():
    tasks = subprocess.check_output(['tasklist']).split("\r\n")
    #print tasks
    string_name_o=""
    p = []
    p2 = []
    for task in tasks:
        m = re.match("(.+?) +(\d+) (.+?) +(\d+) +(\d+.* K).*",task)
        if m is not None:          
            p.append(m.group(1))
    p.sort()  
    for dataline in p:
        #print dataline
        if dataline != string_name_o:
            #print dataline
            string_name_o=dataline
            p2.append(dataline)
    for dataline in p2:
        int_loop=0
        for dataline2 in white_list:
            if dataline == dataline2:
                #print ">>"+dataline
                int_loop=1
                break
        if int_loop==0:
            temp_processes.append(dataline)
            print dataline
    file = open("data.txt","w")
    for dataline in temp_processes:
        file.write(dataline+"\n")
    file.close()
   
def get_white_list():
    with open("whitelist.txt") as fp:
       line = fp.readline()
       while line:
           str_line = line.strip()
           white_list.append(str_line)
           #print("W_Line ="+str_line)        
           line = fp.readline()

def kill_name():
    with open("blacklist.txt") as fp:
       line = fp.readline()
       #cnt = 1
       while line:
           str_line = line.strip()
           print("Line ="+str_line)
           os.system("taskkill /f /im  "+str_line)
           line = fp.readline()
        #   cnt += 1


time_now = 0  
get_white_list()
while time_now<1:
    set_temp_processes()
    time.sleep(60)
    time_now=time_now+1
while 1:
    set_temp_processes()
    kill_name()
    time.sleep(60)
     


ไม่มีความคิดเห็น:

แสดงความคิดเห็น

โปรแกรม ปิดโปรแกรมอื่น และดูโปรแกรมที่ทำงาน

โปรแกรมนี้ใช้ภาษา python 2.7 (ไม่เคยเขียนเพราะปกติไม่ชอบภาษา script แต่ต้องใช้งานบางอย่าง) import subprocess import re import os white_l...