<filename>VTGUI.py
# -*- coding: utf-8 -*-

###########################################################################
## Python code generated with wxFormBuilder (version Aug  8 2018)
## http://www.wxformbuilder.org/
##
## PLEASE DO *NOT* EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc
import wx.grid
import wx.adv


###########################################################################
## Class VT_AVScanner
###########################################################################

class VT_AVScanner(wx.Frame):

    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"VirusTotal Smart Scanner", pos=wx.DefaultPosition,
                          size=wx.Size(800, 370), style=wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX | wx.TAB_TRAVERSAL)

        self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
        self.SetFont(
            wx.Font(wx.NORMAL_FONT.GetPointSize(), wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL,
                    False, wx.EmptyString))
        self.SetBackgroundColour(wx.Colour(255, 255, 255))

        bSizer7 = wx.BoxSizer(wx.VERTICAL)

        bSizer7.SetMinSize(wx.Size(800, 330))
        self.path_dir = wx.DirPickerCtrl(self, wx.ID_ANY, wx.EmptyString, u"Select a folder", wx.DefaultPosition,
                                         wx.Size(770, -1), wx.DIRP_DEFAULT_STYLE)
        self.path_dir.SetForegroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOTEXT))

        bSizer7.Add(self.path_dir, 0, wx.ALL, 5)

        bSizer71 = wx.BoxSizer(wx.VERTICAL)

        bSizer71.SetMinSize(wx.Size(800, -1))
        wSizer11 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)

        wSizer11.SetMinSize(wx.Size(800, 30))
        self.scan_but = wx.Button(self, wx.ID_ANY, u"Scan", wx.DefaultPosition, wx.DefaultSize, 0)
        wSizer11.Add(self.scan_but, 0, wx.ALL, 5)

        self.stop_but = wx.Button(self, wx.ID_ANY, u"Stop", wx.DefaultPosition, wx.DefaultSize, 0)
        self.stop_but.Enable(False)

        wSizer11.Add(self.stop_but, 0, wx.ALL, 5)

        self.scan_gauge = wx.Gauge(self, wx.ID_ANY, 100, wx.DefaultPosition, wx.Size(585, -1), wx.GA_HORIZONTAL)
        self.scan_gauge.SetValue(0)
        wSizer11.Add(self.scan_gauge, 1, wx.ALL | wx.EXPAND, 5)

        bSizer71.Add(wSizer11, 1, wx.EXPAND, 5)

        bSizer7.Add(bSizer71, 1, wx.EXPAND, 5)

        self.data_grid = wx.grid.Grid(self, wx.ID_ANY, wx.DefaultPosition, wx.Size(800, 200), 0)

        # Grid
        self.data_grid.CreateGrid(0, 4)
        self.data_grid.EnableEditing(False)
        self.data_grid.EnableGridLines(False)
        self.data_grid.EnableDragGridSize(True)
        self.data_grid.SetMargins(0, 0)

        # Columns
        self.data_grid.SetColSize(0, 150)
        self.data_grid.SetColSize(1, 150)
        self.data_grid.SetColSize(2, 200)
        self.data_grid.SetColSize(3, 270)
        self.data_grid.EnableDragColMove(False)
        self.data_grid.EnableDragColSize(False)
        self.data_grid.SetColLabelSize(30)
        self.data_grid.SetColLabelValue(0, u"Threat")
        self.data_grid.SetColLabelValue(1, u"File")
        self.data_grid.SetColLabelValue(2, u"Path")
        self.data_grid.SetColLabelValue(3, u"sha256")
        self.data_grid.SetColLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)

        # Rows
        self.data_grid.EnableDragRowSize(False)
        self.data_grid.SetRowLabelSize(0)
        self.data_grid.SetRowLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)

        # Label Appearance
        self.data_grid.SetLabelBackgroundColour(wx.Colour(255, 255, 255))

        # Cell Defaults
        self.data_grid.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP)
        self.m_menu1 = wx.Menu()
        self.m_menuItem1 = wx.MenuItem(self.m_menu1, wx.ID_ANY, u"MyMenuItem", wx.EmptyString, wx.ITEM_NORMAL)
        self.m_menu1.Append(self.m_menuItem1)

        self.data_grid.Bind(wx.EVT_RIGHT_DOWN, self.data_gridOnContextMenu)

        bSizer7.Add(self.data_grid, 0, wx.ALL, 5)

        wSizer4 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)

        wSizer4.SetMinSize(wx.Size(-1, 30))
        self.remove_but = wx.Button(self, wx.ID_ANY, u"Remove File(s)", wx.DefaultPosition, wx.DefaultSize, 0)
        wSizer4.Add(self.remove_but, 0, wx.ALL, 5)

        self.open_log_folder_but = wx.Button(self, wx.ID_ANY, u"Open Log Folder", wx.DefaultPosition, wx.DefaultSize, 0)
        wSizer4.Add(self.open_log_folder_but, 0, wx.ALL, 5)

        self.open_set_but = wx.Button(self, wx.ID_ANY, u"Settings", wx.DefaultPosition, wx.DefaultSize, 0)
        wSizer4.Add(self.open_set_but, 0, wx.ALL, 5)

        self.about_but = wx.Button(self, wx.ID_ANY, u"About", wx.DefaultPosition, wx.DefaultSize, 0)
        wSizer4.Add(self.about_but, 0, wx.ALL, 5)

        bSizer7.Add(wSizer4, 1, wx.EXPAND, 5)

        self.SetSizer(bSizer7)
        self.Layout()
        self.status_bar = self.CreateStatusBar(1, wx.STB_SIZEGRIP, wx.ID_ANY)

        self.Centre(wx.BOTH)

        # Connect Events
        self.Bind(wx.EVT_CLOSE, self.close_main)
        self.scan_but.Bind(wx.EVT_BUTTON, self.scan_but_click)
        self.stop_but.Bind(wx.EVT_BUTTON, self.stop_but_click)
        self.remove_but.Bind(wx.EVT_BUTTON, self.remove_but_click)
        self.open_log_folder_but.Bind(wx.EVT_BUTTON, self.open_log_folder_but_click)
        self.open_set_but.Bind(wx.EVT_BUTTON, self.open_set_but_click)
        self.about_but.Bind(wx.EVT_BUTTON, self.about_click)

    def __del__(self):
        pass

    # Virtual event handlers, overide them in your derived class
    def close_main(self, event):
        event.Skip()

    def scan_but_click(self, event):
        event.Skip()

    def stop_but_click(self, event):
        event.Skip()

    def remove_but_click(self, event):
        event.Skip()

    def open_log_folder_but_click(self, event):
        event.Skip()

    def open_set_but_click(self, event):
        event.Skip()

    def about_click(self, event):
        event.Skip()

    def data_gridOnContextMenu(self, event):
        self.data_grid.PopupMenu(self.m_menu1, event.GetPosition())


###########################################################################
## Class Settings_window
###########################################################################

class Settings_window(wx.Frame):

    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"Settings", pos=wx.DefaultPosition, size=wx.Size(500, 300),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
        self.SetBackgroundColour(wx.Colour(255, 255, 255))

        bSizer5 = wx.BoxSizer(wx.VERTICAL)

        wSizer2 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)

        self.engine_threshold_text = wx.StaticText(self, wx.ID_ANY, u"Engines Threshold", wx.DefaultPosition,
                                                   wx.DefaultSize, 0)
        self.engine_threshold_text.Wrap(-1)

        wSizer2.Add(self.engine_threshold_text, 0, wx.ALL, 5)

        self.engine_threshold_slider = wx.Slider(self, wx.ID_ANY, 80, 0, 100, wx.DefaultPosition, wx.Size(500, -1),
                                                 wx.SL_HORIZONTAL)
        wSizer2.Add(self.engine_threshold_slider, 0, wx.ALL, 5)

        wSizer3 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)

        wSizer3.SetMinSize(wx.Size(500, -1))
        self.sens_low_text = wx.StaticText(self, wx.ID_ANY, u"   Low", wx.DefaultPosition, wx.Size(250, -1), 0)
        self.sens_low_text.Wrap(-1)

        wSizer3.Add(self.sens_low_text, 0, wx.ALL, 5)

        self.sens_high_text = wx.StaticText(self, wx.ID_ANY, u"                                          High",
                                            wx.Point(-1, -1), wx.Size(200, -1), 0)
        self.sens_high_text.Wrap(-1)

        wSizer3.Add(self.sens_high_text, 0, wx.ALL, 5)

        wSizer2.Add(wSizer3, 1, wx.EXPAND, 5)

        bSizer5.Add(wSizer2, 0, 0, 5)

        wSizer31 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)

        self.scan_pe_check = wx.CheckBox(self, wx.ID_ANY, u"Scan only PE files", wx.DefaultPosition, wx.Size(150, -1),
                                         0)
        self.scan_pe_check.SetValue(True)
        wSizer31.Add(self.scan_pe_check, 0, wx.ALL, 5)

        self.grayware_check = wx.CheckBox(self, wx.ID_ANY, u"Grayware Detection", wx.DefaultPosition, wx.Size(150, -1),
                                          0)
        self.grayware_check.SetValue(True)
        wSizer31.Add(self.grayware_check, 0, wx.ALL, 5)

        self.upload_check = wx.CheckBox(self, wx.ID_ANY, u"Auto Upload Files", wx.DefaultPosition, wx.Size(150, -1), 0)
        wSizer31.Add(self.upload_check, 0, wx.ALL, 5)

        self.log_check = wx.CheckBox(self, wx.ID_ANY, u"Save Log", wx.DefaultPosition, wx.Size(150, -1), 0)
        self.log_check.SetValue(True)
        wSizer31.Add(self.log_check, 0, wx.ALL, 5)

        self.crawler_check = wx.CheckBox(self, wx.ID_ANY, u"Use Crawler              ", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        wSizer31.Add(self.crawler_check, 0, wx.ALL, 5)

        self.menu_check = wx.CheckBox(self, wx.ID_ANY, u"Folder Context Menu", wx.DefaultPosition, wx.Size(150, -1), 0)
        wSizer31.Add(self.menu_check, 0, wx.ALL, 5)

        self.white_check = wx.CheckBox(self, wx.ID_ANY, u"WhiteList Cache  ", wx.DefaultPosition, wx.Size(150, -1), 0)
        self.white_check.SetValue(True)
        wSizer31.Add(self.white_check, 0, wx.ALL, 5)

        self.black_check = wx.CheckBox(self, wx.ID_ANY, u"BlackList Cache", wx.DefaultPosition, wx.Size(150, -1), 0)
        wSizer31.Add(self.black_check, 0, wx.ALL, 5)

        self.menu_file_check = wx.CheckBox(self, wx.ID_ANY, u"File Context Menu", wx.DefaultPosition, wx.Size(150, -1),
                                           0)
        wSizer31.Add(self.menu_file_check, 0, wx.ALL, 5)

        bSizer5.Add(wSizer31, 1, wx.EXPAND, 5)

        wSizer19 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)

        self.vtapi_text = wx.StaticText(self, wx.ID_ANY, u"VTAPI:", wx.DefaultPosition, wx.Size(150, -1), 0)
        self.vtapi_text.Wrap(-1)

        wSizer19.Add(self.vtapi_text, 0, wx.ALL, 5)

        self.vtapi_input = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(300, -1), 0)
        wSizer19.Add(self.vtapi_input, 0, wx.ALL, 5)

        bSizer5.Add(wSizer19, 1, wx.EXPAND, 5)

        self.ok_but = wx.Button(self, wx.ID_ANY, u"Save", wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer5.Add(self.ok_but, 0, wx.ALL, 5)

        self.SetSizer(bSizer5)
        self.Layout()

        self.Centre(wx.BOTH)

        # Connect Events
        self.Bind(wx.EVT_CLOSE, self.close_set)
        self.engine_threshold_slider.Bind(wx.EVT_SCROLL, self.show_threshold_slider)
        self.engine_threshold_slider.Bind(wx.EVT_SCROLL_CHANGED, self.update_value)
        self.crawler_check.Bind(wx.EVT_CHECKBOX, self.crawler_message)
        self.menu_check.Bind(wx.EVT_CHECKBOX, self.add_menu)
        self.menu_file_check.Bind(wx.EVT_CHECKBOX, self.add_file_menu)
        self.ok_but.Bind(wx.EVT_BUTTON, self.save_settings_but_click)

    def __del__(self):
        pass

    # Virtual event handlers, overide them in your derived class
    def close_set(self, event):
        event.Skip()

    def show_threshold_slider(self, event):
        event.Skip()

    def update_value(self, event):
        event.Skip()

    def crawler_message(self, event):
        event.Skip()

    def add_menu(self, event):
        event.Skip()

    def add_file_menu(self, event):
        event.Skip()

    def save_settings_but_click(self, event):
        event.Skip()


###########################################################################
## Class about_frame
###########################################################################

class about_frame(wx.Frame):

    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"About", pos=wx.DefaultPosition, size=wx.Size(300, 180),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
        self.SetBackgroundColour(wx.Colour(255, 255, 255))

        bSizer4 = wx.BoxSizer(wx.VERTICAL)

        self.text_static = wx.StaticText(self, wx.ID_ANY, u"\nBy 191196846", wx.DefaultPosition, wx.DefaultSize, 0)
        self.text_static.Wrap(-1)

        bSizer4.Add(self.text_static, 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 5)

        self.link_kafan = wx.adv.HyperlinkCtrl(self, wx.ID_ANY, u"See the post on Kafan",
                                               u"https://bbs.kafan.cn/thread-2133049-1-1.html", wx.DefaultPosition,
                                               wx.DefaultSize, wx.adv.HL_DEFAULT_STYLE)
        bSizer4.Add(self.link_kafan, 0, wx.ALL, 5)

        self.text_static_2 = wx.StaticText(self, wx.ID_ANY, u"To use this tool, you must agree", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.text_static_2.Wrap(-1)

        bSizer4.Add(self.text_static_2, 0, wx.ALL, 5)

        self.link_vt = wx.adv.HyperlinkCtrl(self, wx.ID_ANY, u"VirusTotal Terms of Service",
                                            u"https://support.virustotal.com/hc/en-us/articles/115002145529-Terms-of-Service",
                                            wx.DefaultPosition, wx.DefaultSize, wx.adv.HL_DEFAULT_STYLE)
        bSizer4.Add(self.link_vt, 0, wx.ALL, 5)

        self.SetSizer(bSizer4)
        self.Layout()

        self.Centre(wx.BOTH)

        # Connect Events
        self.Bind(wx.EVT_CLOSE, self.close_set)

    def __del__(self):
        pass

    # Virtual event handlers, overide them in your derived class
    def close_set(self, event):
        event.Skip()

































































































<filename>VTGUI.py
# -*- coding: utf-8 -*-

###########################################################################
## Python code generated with wxFormBuilder (version Aug  8 2018)
## http://www.wxformbuilder.org/
##
## PLEASE DO *NOT* EDIT THIS FILE!
###########################################################################

import wx
import wx.xrc
import wx.grid
import wx.adv


###########################################################################
## Class VT_AVScanner
###########################################################################

class VT_AVScanner(wx.Frame):

    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"VirusTotal Smart Scanner", pos=wx.DefaultPosition,
                          size=wx.Size(800, 370), style=wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX | wx.TAB_TRAVERSAL)

        self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
        self.SetFont(
            wx.Font(wx.NORMAL_FONT.GetPointSize(), wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL,
                    False, wx.EmptyString))
        self.SetBackgroundColour(wx.Colour(255, 255, 255))

        bSizer7 = wx.BoxSizer(wx.VERTICAL)

        bSizer7.SetMinSize(wx.Size(800, 330))
        self.path_dir = wx.DirPickerCtrl(self, wx.ID_ANY, wx.EmptyString, u"Select a folder", wx.DefaultPosition,
                                         wx.Size(770, -1), wx.DIRP_DEFAULT_STYLE)
        self.path_dir.SetForegroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOTEXT))

        bSizer7.Add(self.path_dir, 0, wx.ALL, 5)

        bSizer71 = wx.BoxSizer(wx.VERTICAL)

        bSizer71.SetMinSize(wx.Size(800, -1))
        wSizer11 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)

        wSizer11.SetMinSize(wx.Size(800, 30))
        self.scan_but = wx.Button(self, wx.ID_ANY, u"Scan", wx.DefaultPosition, wx.DefaultSize, 0)
        wSizer11.Add(self.scan_but, 0, wx.ALL, 5)

        self.stop_but = wx.Button(self, wx.ID_ANY, u"Stop", wx.DefaultPosition, wx.DefaultSize, 0)
        self.stop_but.Enable(False)

        wSizer11.Add(self.stop_but, 0, wx.ALL, 5)

        self.scan_gauge = wx.Gauge(self, wx.ID_ANY, 100, wx.DefaultPosition, wx.Size(585, -1), wx.GA_HORIZONTAL)
        self.scan_gauge.SetValue(0)
        wSizer11.Add(self.scan_gauge, 1, wx.ALL | wx.EXPAND, 5)

        bSizer71.Add(wSizer11, 1, wx.EXPAND, 5)

        bSizer7.Add(bSizer71, 1, wx.EXPAND, 5)

        self.data_grid = wx.grid.Grid(self, wx.ID_ANY, wx.DefaultPosition, wx.Size(800, 200), 0)

        # Grid
        self.data_grid.CreateGrid(0, 4)
        self.data_grid.EnableEditing(False)
        self.data_grid.EnableGridLines(False)
        self.data_grid.EnableDragGridSize(True)
        self.data_grid.SetMargins(0, 0)

        # Columns
        self.data_grid.SetColSize(0, 150)
        self.data_grid.SetColSize(1, 150)
        self.data_grid.SetColSize(2, 200)
        self.data_grid.SetColSize(3, 270)
        self.data_grid.EnableDragColMove(False)
        self.data_grid.EnableDragColSize(False)
        self.data_grid.SetColLabelSize(30)
        self.data_grid.SetColLabelValue(0, u"Threat")
        self.data_grid.SetColLabelValue(1, u"File")
        self.data_grid.SetColLabelValue(2, u"Path")
        self.data_grid.SetColLabelValue(3, u"sha256")
        self.data_grid.SetColLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)

        # Rows
        self.data_grid.EnableDragRowSize(False)
        self.data_grid.SetRowLabelSize(0)
        self.data_grid.SetRowLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)

        # Label Appearance
        self.data_grid.SetLabelBackgroundColour(wx.Colour(255, 255, 255))

        # Cell Defaults
        self.data_grid.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP)
        self.m_menu1 = wx.Menu()
        self.m_menuItem1 = wx.MenuItem(self.m_menu1, wx.ID_ANY, u"MyMenuItem", wx.EmptyString, wx.ITEM_NORMAL)
        self.m_menu1.Append(self.m_menuItem1)

        self.data_grid.Bind(wx.EVT_RIGHT_DOWN, self.data_gridOnContextMenu)

        bSizer7.Add(self.data_grid, 0, wx.ALL, 5)

        wSizer4 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)

        wSizer4.SetMinSize(wx.Size(-1, 30))
        self.remove_but = wx.Button(self, wx.ID_ANY, u"Remove File(s)", wx.DefaultPosition, wx.DefaultSize, 0)
        wSizer4.Add(self.remove_but, 0, wx.ALL, 5)

        self.open_log_folder_but = wx.Button(self, wx.ID_ANY, u"Open Log Folder", wx.DefaultPosition, wx.DefaultSize, 0)
        wSizer4.Add(self.open_log_folder_but, 0, wx.ALL, 5)

        self.open_set_but = wx.Button(self, wx.ID_ANY, u"Settings", wx.DefaultPosition, wx.DefaultSize, 0)
        wSizer4.Add(self.open_set_but, 0, wx.ALL, 5)

        self.about_but = wx.Button(self, wx.ID_ANY, u"About", wx.DefaultPosition, wx.DefaultSize, 0)
        wSizer4.Add(self.about_but, 0, wx.ALL, 5)

        bSizer7.Add(wSizer4, 1, wx.EXPAND, 5)

        self.SetSizer(bSizer7)
        self.Layout()
        self.status_bar = self.CreateStatusBar(1, wx.STB_SIZEGRIP, wx.ID_ANY)

        self.Centre(wx.BOTH)

        # Connect Events
        self.Bind(wx.EVT_CLOSE, self.close_main)
        self.scan_but.Bind(wx.EVT_BUTTON, self.scan_but_click)
        self.stop_but.Bind(wx.EVT_BUTTON, self.stop_but_click)
        self.remove_but.Bind(wx.EVT_BUTTON, self.remove_but_click)
        self.open_log_folder_but.Bind(wx.EVT_BUTTON, self.open_log_folder_but_click)
        self.open_set_but.Bind(wx.EVT_BUTTON, self.open_set_but_click)
        self.about_but.Bind(wx.EVT_BUTTON, self.about_click)

    def __del__(self):
        pass

    # Virtual event handlers, overide them in your derived class
    def close_main(self, event):
        event.Skip()

    def scan_but_click(self, event):
        event.Skip()

    def stop_but_click(self, event):
        event.Skip()

    def remove_but_click(self, event):
        event.Skip()

    def open_log_folder_but_click(self, event):
        event.Skip()

    def open_set_but_click(self, event):
        event.Skip()

    def about_click(self, event):
        event.Skip()

    def data_gridOnContextMenu(self, event):
        self.data_grid.PopupMenu(self.m_menu1, event.GetPosition())


###########################################################################
## Class Settings_window
###########################################################################

class Settings_window(wx.Frame):

    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"Settings", pos=wx.DefaultPosition, size=wx.Size(500, 300),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
        self.SetBackgroundColour(wx.Colour(255, 255, 255))

        bSizer5 = wx.BoxSizer(wx.VERTICAL)

        wSizer2 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)

        self.engine_threshold_text = wx.StaticText(self, wx.ID_ANY, u"Engines Threshold", wx.DefaultPosition,
                                                   wx.DefaultSize, 0)
        self.engine_threshold_text.Wrap(-1)

        wSizer2.Add(self.engine_threshold_text, 0, wx.ALL, 5)

        self.engine_threshold_slider = wx.Slider(self, wx.ID_ANY, 80, 0, 100, wx.DefaultPosition, wx.Size(500, -1),
                                                 wx.SL_HORIZONTAL)
        wSizer2.Add(self.engine_threshold_slider, 0, wx.ALL, 5)

        wSizer3 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)

        wSizer3.SetMinSize(wx.Size(500, -1))
        self.sens_low_text = wx.StaticText(self, wx.ID_ANY, u"   Low", wx.DefaultPosition, wx.Size(250, -1), 0)
        self.sens_low_text.Wrap(-1)

        wSizer3.Add(self.sens_low_text, 0, wx.ALL, 5)

        self.sens_high_text = wx.StaticText(self, wx.ID_ANY, u"                                          High",
                                            wx.Point(-1, -1), wx.Size(200, -1), 0)
        self.sens_high_text.Wrap(-1)

        wSizer3.Add(self.sens_high_text, 0, wx.ALL, 5)

        wSizer2.Add(wSizer3, 1, wx.EXPAND, 5)

        bSizer5.Add(wSizer2, 0, 0, 5)

        wSizer31 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)

        self.scan_pe_check = wx.CheckBox(self, wx.ID_ANY, u"Scan only PE files", wx.DefaultPosition, wx.Size(150, -1),
                                         0)
        self.scan_pe_check.SetValue(True)
        wSizer31.Add(self.scan_pe_check, 0, wx.ALL, 5)

        self.grayware_check = wx.CheckBox(self, wx.ID_ANY, u"Grayware Detection", wx.DefaultPosition, wx.Size(150, -1),
                                          0)
        self.grayware_check.SetValue(True)
        wSizer31.Add(self.grayware_check, 0, wx.ALL, 5)

        self.upload_check = wx.CheckBox(self, wx.ID_ANY, u"Auto Upload Files", wx.DefaultPosition, wx.Size(150, -1), 0)
        wSizer31.Add(self.upload_check, 0, wx.ALL, 5)

        self.log_check = wx.CheckBox(self, wx.ID_ANY, u"Save Log", wx.DefaultPosition, wx.Size(150, -1), 0)
        self.log_check.SetValue(True)
        wSizer31.Add(self.log_check, 0, wx.ALL, 5)

        self.crawler_check = wx.CheckBox(self, wx.ID_ANY, u"Use Crawler              ", wx.DefaultPosition,
                                         wx.DefaultSize, 0)
        wSizer31.Add(self.crawler_check, 0, wx.ALL, 5)

        self.menu_check = wx.CheckBox(self, wx.ID_ANY, u"Folder Context Menu", wx.DefaultPosition, wx.Size(150, -1), 0)
        wSizer31.Add(self.menu_check, 0, wx.ALL, 5)

        self.white_check = wx.CheckBox(self, wx.ID_ANY, u"WhiteList Cache  ", wx.DefaultPosition, wx.Size(150, -1), 0)
        self.white_check.SetValue(True)
        wSizer31.Add(self.white_check, 0, wx.ALL, 5)

        self.black_check = wx.CheckBox(self, wx.ID_ANY, u"BlackList Cache", wx.DefaultPosition, wx.Size(150, -1), 0)
        wSizer31.Add(self.black_check, 0, wx.ALL, 5)

        self.menu_file_check = wx.CheckBox(self, wx.ID_ANY, u"File Context Menu", wx.DefaultPosition, wx.Size(150, -1),
                                           0)
        wSizer31.Add(self.menu_file_check, 0, wx.ALL, 5)

        bSizer5.Add(wSizer31, 1, wx.EXPAND, 5)

        wSizer19 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS)

        self.vtapi_text = wx.StaticText(self, wx.ID_ANY, u"VTAPI:", wx.DefaultPosition, wx.Size(150, -1), 0)
        self.vtapi_text.Wrap(-1)

        wSizer19.Add(self.vtapi_text, 0, wx.ALL, 5)

        self.vtapi_input = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(300, -1), 0)
        wSizer19.Add(self.vtapi_input, 0, wx.ALL, 5)

        bSizer5.Add(wSizer19, 1, wx.EXPAND, 5)

        self.ok_but = wx.Button(self, wx.ID_ANY, u"Save", wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer5.Add(self.ok_but, 0, wx.ALL, 5)

        self.SetSizer(bSizer5)
        self.Layout()

        self.Centre(wx.BOTH)

        # Connect Events
        self.Bind(wx.EVT_CLOSE, self.close_set)
        self.engine_threshold_slider.Bind(wx.EVT_SCROLL, self.show_threshold_slider)
        self.engine_threshold_slider.Bind(wx.EVT_SCROLL_CHANGED, self.update_value)
        self.crawler_check.Bind(wx.EVT_CHECKBOX, self.crawler_message)
        self.menu_check.Bind(wx.EVT_CHECKBOX, self.add_menu)
        self.menu_file_check.Bind(wx.EVT_CHECKBOX, self.add_file_menu)
        self.ok_but.Bind(wx.EVT_BUTTON, self.save_settings_but_click)

    def __del__(self):
        pass

    # Virtual event handlers, overide them in your derived class
    def close_set(self, event):
        event.Skip()

    def show_threshold_slider(self, event):
        event.Skip()

    def update_value(self, event):
        event.Skip()

    def crawler_message(self, event):
        event.Skip()

    def add_menu(self, event):
        event.Skip()

    def add_file_menu(self, event):
        event.Skip()

    def save_settings_but_click(self, event):
        event.Skip()


###########################################################################
## Class about_frame
###########################################################################

class about_frame(wx.Frame):

    def __init__(self, parent):
        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"About", pos=wx.DefaultPosition, size=wx.Size(300, 180),
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
        self.SetBackgroundColour(wx.Colour(255, 255, 255))

        bSizer4 = wx.BoxSizer(wx.VERTICAL)

        self.text_static = wx.StaticText(self, wx.ID_ANY, u"\nBy 191196846", wx.DefaultPosition, wx.DefaultSize, 0)
        self.text_static.Wrap(-1)

        bSizer4.Add(self.text_static, 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 5)

        self.link_kafan = wx.adv.HyperlinkCtrl(self, wx.ID_ANY, u"See the post on Kafan",
                                               u"https://bbs.kafan.cn/thread-2133049-1-1.html", wx.DefaultPosition,
                                               wx.DefaultSize, wx.adv.HL_DEFAULT_STYLE)
        bSizer4.Add(self.link_kafan, 0, wx.ALL, 5)

        self.text_static_2 = wx.StaticText(self, wx.ID_ANY, u"To use this tool, you must agree", wx.DefaultPosition,
                                           wx.DefaultSize, 0)
        self.text_static_2.Wrap(-1)

        bSizer4.Add(self.text_static_2, 0, wx.ALL, 5)

        self.link_vt = wx.adv.HyperlinkCtrl(self, wx.ID_ANY, u"VirusTotal Terms of Service",
                                            u"https://support.virustotal.com/hc/en-us/articles/115002145529-Terms-of-Service",
                                            wx.DefaultPosition, wx.DefaultSize, wx.adv.HL_DEFAULT_STYLE)
        bSizer4.Add(self.link_vt, 0, wx.ALL, 5)

        self.SetSizer(bSizer4)
        self.Layout()

        self.Centre(wx.BOTH)

        # Connect Events
        self.Bind(wx.EVT_CLOSE, self.close_set)

    def __del__(self):
        pass

    # Virtual event handlers, overide them in your derived class
    def close_set(self, event):
        event.Skip()

































































































# -*- coding: utf-8 -*- ########################################################################### ## Python code generated with wxFormBuilder (version Aug  8 2018) ## http://www.wxformbuilder.org/ ## ## PLEASE DO *NOT* EDIT THIS FILE! ########################################################################### ########################################################################### ## Class VT_AVScanner ########################################################################### # Grid # Columns # Rows # Label Appearance # Cell Defaults # Connect Events # Virtual event handlers, overide them in your derived class ########################################################################### ## Class Settings_window ########################################################################### # Connect Events # Virtual event handlers, overide them in your derived class ########################################################################### ## Class about_frame ########################################################################### # Connect Events # Virtual event handlers, overide them in your derived class