class ItemsPickerDialog(wx.Dialog): def __init__(self, parent: wx.Window, available: List[str], chosen: List[str], ipStyle): super().__init__(parent=parent, title="Project membership", style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER) sizer = wx.BoxSizer(wx.VERTICAL) self.ip = ItemsPicker(self, choices=available, label='Available projects', selectedLabel='Member of project:', ipStyle=ipStyle) self.ip.SetSelections(chosen) #self.ip.Bind(EVT_IP_SELECTION_CHANGED, self.OnSelectionChange) self.ip._source.SetMinSize((-1, 150)) sizer.Add(self.ip, 0, wx.ALL, 10) bsizer = self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL) sizer.Add(bsizer, flag=wx.EXPAND | wx.ALL, border=5) self.SetSizerAndFit(sizer) def GetSelections(self): return self.ip.GetSelections() def GetItems(self): return self.ip.GetItems()
def settings(self, event): dialog = wx.Dialog(parent=self, title="Settings", style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER) sizer = wx.BoxSizer(wx.VERTICAL) normal_domains = ( 'a-0001.a-msedge.net', 'a-0002.a-msedge.net', 'a-0003.a-msedge.net', 'a-0004.a-msedge.net', 'a-0005.a-msedge.net', 'a-0006.a-msedge.net', 'a-0007.a-msedge.net', 'a-0008.a-msedge.net', 'a-0009.a-msedge.net', 'a-msedge.net', 'a.ads1.msn.com', 'a.ads2.msads.net', 'a.ads2.msn.com', 'a.rad.msn.com', 'ac3.msn.com', 'ad.doubleclick.net', 'adnexus.net', 'adnxs.com', 'ads.msn.com', 'ads1.msads.net', 'ads1.msn.com', 'aidps.atdmt.com', 'aka-cdn-ns.adtech.de', 'az361816.vo.msecnd.net', 'az512334.vo.msecnd.net', 'b.ads1.msn.com', 'b.ads2.msads.net', 'b.rad.msn.com', 'bs.serving-sys.com', 'c.atdmt.com', 'c.msn.com', 'cdn.atdmt.com', 'cds26.ams9.msecn.net', 'choice.microsoft.com', 'choice.microsoft.com.nsatc.net', 'compatexchange.cloudapp.net', 'corp.sts.microsoft.com', 'corpext.msitadfs.glbdns2.microsoft.com', 'cs1.wpc.v0cdn.net', 'db3aqu.atdmt.com', 'df.telemetry.microsoft.com', 'diagnostics.support.microsoft.com', 'ec.atdmt.com', 'feedback.microsoft-hohm.com', 'feedback.search.microsoft.com', 'feedback.windows.com', 'flex.msn.com', 'g.msn.com', 'h1.msn.com', 'i1.services.social.microsoft.com', 'i1.services.social.microsoft.com.nsatc.net', 'lb1.www.ms.akadns.net', 'live.rads.msn.com', 'm.adnxs.com', 'msedge.net', 'msftncsi.com', 'msnbot-65-55-108-23.search.msn.com', 'msntest.serving-sys.com', 'oca.telemetry.microsoft.com', 'oca.telemetry.microsoft.com.nsatc.net', 'pre.footprintpredict.com', 'preview.msn.com', 'rad.live.com', 'rad.msn.com', 'redir.metaservices.microsoft.com', 'reports.wes.df.telemetry.microsoft.com', 'schemas.microsoft.akadns.net', 'secure.adnxs.com', 'secure.flashtalking.com', 'services.wes.df.telemetry.microsoft.com', 'settings-sandbox.data.microsoft.com', 'settings-win.data.microsoft.com', 'sls.update.microsoft.com.akadns.net', 'sqm.df.telemetry.microsoft.com', 'sqm.telemetry.microsoft.com', 'sqm.telemetry.microsoft.com.nsatc.net', 'ssw.live.com', 'static.2mdn.net', 'statsfe1.ws.microsoft.com', 'statsfe2.ws.microsoft.com', 'telecommand.telemetry.microsoft.com', 'telecommand.telemetry.microsoft.com.nsatc.net', 'telemetry.appex.bing.net', 'telemetry.microsoft.com', 'telemetry.urs.microsoft.com', 'v10.vortex-win.data.microsoft.com', 'vortex-bn2.metron.live.com.nsatc.net', 'vortex-cy2.metron.live.com.nsatc.net', 'vortex-sandbox.data.microsoft.com', 'vortex-win.data.metron.live.com.nsatc.net', 'vortex-win.data.microsoft.com', 'vortex.data.glbdns2.microsoft.com', 'vortex.data.microsoft.com', 'watson.live.com', 'web.vortex.data.microsoft.com', 'www.msftncsi.com') extra_domains = ('fe2.update.microsoft.com.akadns.net', 's0.2mdn.net', 'statsfe2.update.microsoft.com.akadns.net', 'survey.watson.microsoft.com', 'view.atdmt.com', 'watson.microsoft.com', 'watson.ppe.telemetry.microsoft.com', 'watson.telemetry.microsoft.com', 'watson.telemetry.microsoft.com.nsatc.net', 'wes.df.telemetry.microsoft.com', 'ui.skype.com', 'pricelist.skype.com', 'apps.skype.com', 'm.hotmail.com', 's.gateway.messenger.live.com') ip_addresses = ('2.22.61.43', '2.22.61.66', '65.39.117.230', '65.55.108.23', '23.218.212.69', '134.170.30.202', '137.116.81.24', '157.56.106.189', '204.79.197.200', '65.52.108.33', '64.4.54.254') normal_domain_picker = ItemsPicker( dialog, choices=[], selectedLabel="Domains to be blocked", ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES | IP_REMOVE_FROM_CHOICES) if self.picked_normal: normal_domain_picker.SetSelections(self.picked_normal) normal_domain_picker.SetItems([ domain for domain in normal_domains if domain not in self.picked_normal ]) else: normal_domain_picker.SetSelections(normal_domains) extra_domain_picker = ItemsPicker( dialog, choices=[], selectedLabel="Extra domains to be blocked", ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES | IP_REMOVE_FROM_CHOICES) if self.picked_extra: extra_domain_picker.SetSelections(self.picked_extra) extra_domain_picker.SetItems([ domain for domain in extra_domains if domain not in self.picked_extra ]) else: extra_domain_picker.SetSelections(extra_domains) ip_picker = ItemsPicker(dialog, choices=[], selectedLabel="IP addresses to be blocked", ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES | IP_REMOVE_FROM_CHOICES) if self.picked_ips: ip_picker.SetSelections(self.picked_ips) ip_picker.SetItems( [ip for ip in ip_addresses if ip not in self.picked_ips]) else: ip_picker.SetSelections(ip_addresses) sizer.Add(normal_domain_picker, 0, wx.EXPAND) sizer.Add(extra_domain_picker, 0, wx.EXPAND) sizer.Add(ip_picker, 0, wx.EXPAND) if event is not None: dialog.SetSizerAndFit(sizer) dialog.Center() dialog.ShowModal() dialog.Destroy() self.picked_normal = normal_domain_picker.GetSelections() self.picked_extra = extra_domain_picker.GetSelections() self.picked_ips = ip_picker.GetSelections()
class MainFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, parent=None, title='Disable Windows 10 Tracking', size=[375, 345], style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER ^ wx.MAXIMIZE_BOX) panel = wx.Panel(self) # Frame panel # Test for elevation if ctypes.windll.shell32.IsUserAnAdmin() != 0: warn = wx.MessageDialog( parent=self, message= "Program requires elevation, please run it as an administrator", caption="ERROR", style=wx.OK | wx.ICON_WARNING) warn.ShowModal() sys.exit() # Get icon shell32file = os.path.join(os.environ['SYSTEMROOT'], 'System32\\shell32.dll') self.SetIcon(wx.Icon(shell32file + ";315", wx.BITMAP_TYPE_ICO)) # Info bar w/ about menu menu = wx.Menu() aboutitem = menu.Append(wx.ID_ABOUT, "About", "About the application") optionsitem = menu.Append(wx.ID_ANY, "Options", "Settings for the application") menubar = wx.MenuBar() menubar.Append(menu, "&Menu") self.SetMenuBar(menubar) self.Bind(wx.EVT_MENU, self.aboutbox, aboutitem) self.Bind(wx.EVT_MENU, self.settingsbox, optionsitem) # Service checkbox self.servicebox = wx.CheckBox(panel, label="&Services", pos=(10, 10)) self.servicebox.SetToolTip( wx.ToolTip( "Disables or Deletes tracking services. Choose option in Service Method" )) self.Bind(wx.EVT_CHECKBOX, self.serviceradioboxcheck, self.servicebox) # DiagTrack checkbox self.diagtrackbox = wx.CheckBox(panel, label="Clear &DiagTrack log", pos=(10, 25)) self.diagtrackbox.SetToolTip( wx.ToolTip( "Clears Diagnostic Tracking log and prevents modification to it. " "This cannot be undone without doing it manually.")) # Telemetry checkbox self.telemetrybox = wx.CheckBox(panel, label="&Telemetry", pos=(10, 40)) self.telemetrybox.SetToolTip( wx.ToolTip( "Sets \'AllowTelemetry\' to 0. On non-Enterprise OS editions, requires HOSTS file modification" )) self.Bind(wx.EVT_CHECKBOX, self.telemetryhostcheck, self.telemetrybox) # HOSTS file checkbox self.hostbox = wx.CheckBox(panel, label="&Block tracking domains", pos=(10, 55)) self.hostbox.SetToolTip( wx.ToolTip( "Add known tracking domains to HOSTS file. Required to disable Telemetry" )) # Extra HOSTS checkbox self.extrahostbox = wx.CheckBox( panel, label="Block &even more tracking domains", pos=(10, 70)) self.extrahostbox.SetToolTip( wx.ToolTip( "For the paranoid. Adds extra domains to the HOSTS file. \ May disable Skype, Dr. Watson, Hotmail and/or Error Reporting" )) self.Bind(wx.EVT_CHECKBOX, self.extrahosthostcheck, self.extrahostbox) # IP block checkbox self.ipbox = wx.CheckBox(panel, label="Block tracking &IP addresses", pos=(10, 85)) self.ipbox.SetToolTip( wx.ToolTip( "Blocks known tracking IP addresses with Windows Firewall.")) # Windows Privacy Regs (Policy Manager) self.wdwsbox = wx.CheckBox( panel, label="Windows Defender/WifiSense data collection", pos=(10, 100)) self.wdwsbox.SetToolTip( wx.ToolTip( "Modifies registry to prevent Defender/WifiSense data collection" )) # OneDrive uninstall checkbox self.onedrivedbox = wx.CheckBox(panel, label="Uninstall &OneDrive", pos=(10, 115)) self.onedrivedbox.SetToolTip( wx.ToolTip( "Uninstalls OneDrive from your computer and removes it from Explorer." )) # App static box self.appbox = wx.StaticBox(panel, label="Built-in Apps", pos=(10, 130), size=(351, 160)) self.builderbox = wx.CheckBox(self.appbox, label="&3D Builder", pos=(10, 15)) self.calmailbox = wx.CheckBox(self.appbox, label="C&alender && Mail", pos=(10, 30)) self.camerabox = wx.CheckBox(self.appbox, label="&Camera", pos=(10, 45)) self.officebox = wx.CheckBox(self.appbox, label="Get &Office App", pos=(10, 60)) self.skypebox = wx.CheckBox(self.appbox, label="Get S&kype App", pos=(10, 75)) self.startbox = wx.CheckBox(self.appbox, label="Get S&tarted App", pos=(10, 90)) self.groovebox = wx.CheckBox(self.appbox, label="&Groove Music", pos=(10, 105)) self.mapbox = wx.CheckBox(self.appbox, label="&Maps", pos=(120, 15)) self.mscbox = wx.CheckBox(self.appbox, label="Microso&ft Solitaire Collection", pos=(120, 105)) self.moneybox = wx.CheckBox(self.appbox, label="Mone&y", pos=(120, 30)) self.movietvbox = wx.CheckBox(self.appbox, label="Movies && T&V", pos=(120, 45)) self.newsbox = wx.CheckBox(self.appbox, label="&News", pos=(120, 60)) self.onenotebox = wx.CheckBox(self.appbox, label="OneNote Ap&p", pos=(120, 75)) self.peoplebox = wx.CheckBox(self.appbox, label="P&eople", pos=(120, 90)) self.phonebox = wx.CheckBox(self.appbox, label="Phone Compan&ion", pos=(225, 15)) self.photosbox = wx.CheckBox(self.appbox, label="P&hotos", pos=(225, 30)) self.sportsbox = wx.CheckBox(self.appbox, label="&Sports", pos=(225, 45)) self.voicebox = wx.CheckBox(self.appbox, label="Voice &Recorder", pos=(225, 60)) self.weatherbox = wx.CheckBox(self.appbox, label="&Weather", pos=(225, 75)) self.xbonebox = wx.CheckBox(self.appbox, label="&Xbox", pos=(225, 90)) self.selectapps = wx.CheckBox(self.appbox, label="Select all apps", pos=(246, 0), style=wx.ALIGN_RIGHT) self.Bind(wx.EVT_CHECKBOX, self.selectallapps, self.selectapps) self.removeappbut = wx.Button(self.appbox, wx.ID_ANY, label="Uninstall selected apps", pos=(10, 125)) self.removeappbut.SetToolTip( wx.ToolTip( "Uninstalls all of the selected apps. Can take a lot of time.") ) self.Bind(wx.EVT_BUTTON, self.uninstapps, self.removeappbut) self.reinstappbut = wx.Button(self.appbox, wx.ID_ANY, label="Reinstall original apps", pos=(205, 125)) self.reinstappbut.SetToolTip( wx.ToolTip( "Reinstalls ALL of the default apps. Takes a lot of time.")) self.Bind(wx.EVT_BUTTON, self.reinstapps, self.reinstappbut) # Service radio box self.serviceradbox = wx.RadioBox(panel, label="Service Method", pos=(135, 5), choices=("Disable", "Delete")) self.serviceradbox.Disable() self.serviceradbox.SetItemToolTip( 0, "Simply disables the services. This can be undone.") self.serviceradbox.SetItemToolTip( 1, "Deletes the services completely. This can't be undone.") # Go button self.gobutton = wx.Button(panel, wx.ID_ANY, label="Go!", pos=(275, 25)) self.Bind(wx.EVT_BUTTON, self.go, self.gobutton) self.goradbox = wx.RadioBox(panel, label="Mode", pos=(284, 50), choices=("Privacy", "Revert"), style=wx.RA_SPECIFY_ROWS) self.goradbox.SetItemToolTip( 0, "Using the selected settings, applies privacy.") self.goradbox.SetItemToolTip( 1, "Reverts everything selected to it's original form") # Center and show the window self.Centre() self.Show() def serviceradioboxcheck(self, event): # Enables serviceradbox if the service box is ticked self.serviceradbox.Enable(self.servicebox.IsChecked()) def telemetryhostcheck(self, event): # Automatically checks the domain block when the telemetry box is checked. self.hostbox.SetValue(self.telemetrybox.IsChecked()) def extrahosthostcheck(self, event): # Warn users about the potential side effects of the extra hosts mod. hostwarn = wx.MessageDialog( parent=self, message= "This option could potentially prevent you from using one or more of the " "following services:\n\nSkype, Hotmail, Dr. Watson, Error Reporting.\n\n Continue?", caption="Attention!", style=wx.YES_NO | wx.ICON_EXCLAMATION) if self.extrahostbox.GetValue() == 1: if hostwarn.ShowModal() == wx.ID_NO: self.extrahostbox.SetValue(0) hostwarn.Destroy() def selectallapps(self, event): # Iters through all children of the app static box and checks them except for the last 3. # (buttons and the select all checkbox) for checkbox in list(self.appbox.GetChildren())[:-3]: checkbox.SetValue(self.selectapps.IsChecked()) def aboutbox(self, event): # About dialog licensetext = "Copyright 2015 10se1ucgo\r\n\r\nLicensed under the Apache License, Version 2.0 " \ "(the \"License\");\r\nyou may not use this file except in compliance with the License." \ "\r\nYou may obtain a copy of the License at\r\n\r\n " \ " http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nUnless required by applicable law or " \ "agreed to in writing, software\r\ndistributed under the License is distributed on an " \ "\"AS IS\" BASIS,\r\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied." \ "\r\nSee the License for the specific language governing permissions and\r\nlimitations under " \ "the License." aboutpg = wx.AboutDialogInfo() aboutpg.Name = "Disable Windows 10 Tracking" aboutpg.Version = vernumber aboutpg.Copyright = "(c) 2015 10se1ucgo" aboutpg.Description = "A tool to disable nasty tracking in Windows 10" aboutpg.WebSite = ("https://github.com/10se1ucgo/DisableWinTracking", "GitHub Project Page") aboutpg.License = wx.lib.wordwrap.wordwrap(licensetext, 500, wx.ClientDC(self)) aboutpg.Developers = ["10se1ucgo and Ruined1 on GitHub"] wx.AboutBox(aboutpg) def settingsbox(self, event): # Settings dialog settingsdialog = wx.Dialog(wx.GetApp().TopWindow, wx.ID_ANY, "Settings") boxsizer = wx.BoxSizer(wx.VERTICAL) normallist = ( 'a-0001.a-msedge.net', 'a-0002.a-msedge.net', 'a-0003.a-msedge.net', 'a-0004.a-msedge.net', 'a-0005.a-msedge.net', 'a-0006.a-msedge.net', 'a-0007.a-msedge.net', 'a-0008.a-msedge.net', 'a-0009.a-msedge.net', 'a-msedge.net', 'a.ads1.msn.com', 'a.ads2.msads.net', 'a.ads2.msn.com', 'a.rad.msn.com', 'ac3.msn.com', 'ad.doubleclick.net', 'adnexus.net', 'adnxs.com', 'ads.msn.com', 'ads1.msads.net', 'ads1.msn.com', 'aidps.atdmt.com', 'aka-cdn-ns.adtech.de', 'az361816.vo.msecnd.net', 'az512334.vo.msecnd.net', 'b.ads1.msn.com', 'b.ads2.msads.net', 'b.rad.msn.com', 'bs.serving-sys.com', 'c.atdmt.com', 'c.msn.com', 'cdn.atdmt.com', 'cds26.ams9.msecn.net', 'choice.microsoft.com', 'choice.microsoft.com.nsatc.net', 'compatexchange.cloudapp.net', 'corp.sts.microsoft.com', 'corpext.msitadfs.glbdns2.microsoft.com', 'cs1.wpc.v0cdn.net', 'db3aqu.atdmt.com', 'df.telemetry.microsoft.com', 'diagnostics.support.microsoft.com', 'ec.atdmt.com', 'feedback.microsoft-hohm.com', 'feedback.search.microsoft.com', 'feedback.windows.com', 'flex.msn.com', 'g.msn.com', 'h1.msn.com', 'i1.services.social.microsoft.com', 'i1.services.social.microsoft.com.nsatc.net', 'lb1.www.ms.akadns.net', 'live.rads.msn.com', 'm.adnxs.com', 'msedge.net', 'msftncsi.com', 'msnbot-65-55-108-23.search.msn.com', 'msntest.serving-sys.com', 'oca.telemetry.microsoft.com', 'oca.telemetry.microsoft.com.nsatc.net', 'pre.footprintpredict.com', 'preview.msn.com', 'rad.live.com', 'rad.msn.com', 'redir.metaservices.microsoft.com', 'schemas.microsoft.akadns.net ', 'secure.adnxs.com', 'secure.flashtalking.com', 'settings-sandbox.data.microsoft.com', 'settings-win.data.microsoft.com', 'sls.update.microsoft.com.akadns.net', 'sqm.df.telemetry.microsoft.com', 'sqm.telemetry.microsoft.com', 'sqm.telemetry.microsoft.com.nsatc.net', 'static.2mdn.net', 'statsfe1.ws.microsoft.com', 'statsfe2.ws.microsoft.com', 'telecommand.telemetry.microsoft.com', 'telecommand.telemetry.microsoft.com.nsatc.net', 'telemetry.appex.bing.net', 'telemetry.microsoft.com', 'telemetry.urs.microsoft.com', 'vortex-bn2.metron.live.com.nsatc.net', 'vortex-cy2.metron.live.com.nsatc.net', 'vortex-sandbox.data.microsoft.com', 'vortex-win.data.microsoft.com', 'vortex.data.microsoft.com', 'watson.live.com', 'www.msftncsi.com', 'ssw.live.com', 'reports.wes.df.telemetry.microsoft.com', 'services.wes.df.telemetry.microsoft.com', 'web.vortex.data.microsoft.com', 'vortex-win.data.metron.live.com.nsatc.net', 'v10.vortex-win.data.microsoft.com', 'vortex-cy2.metron.live.com.nsatc.net', 'vortex.data.glbdns2.microsoft.com', 'vortex-win.data.microsoft.com', 'vortex.data.microsoft.com') extralist = ('fe2.update.microsoft.com.akadns.net', 's0.2mdn.net', 'statsfe2.update.microsoft.com.akadns.net', 'survey.watson.microsoft.com', 'view.atdmt.com', 'watson.microsoft.com', 'watson.ppe.telemetry.microsoft.com', 'watson.telemetry.microsoft.com', 'watson.telemetry.microsoft.com.nsatc.net', 'wes.df.telemetry.microsoft.com', 'ui.skype.com', 'pricelist.skype.com', 'apps.skype.com', 'm.hotmail.com', 's.gateway.messenger.live.com') self.normalpicker = ItemsPicker(settingsdialog, id=wx.ID_ANY, choices=[], selectedLabel="Domains to be blocked", ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES | IP_REMOVE_FROM_CHOICES) self.normalpicker.SetSelections(normallist) self.extrapicker = ItemsPicker( settingsdialog, id=wx.ID_ANY, choices=[], selectedLabel="Extra domains to be blocked", ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES | IP_REMOVE_FROM_CHOICES) self.extrapicker.SetSelections(extralist) iplist = ('2.22.61.43', '2.22.61.66', '65.39.117.230', '65.55.108.23', '23.218.212.69', '134.170.30.202', '137.116.81.24', '157.56.106.189', '204.79.197.200', '65.52.108.33', '64.4.54.254') self.ippicker = ItemsPicker(settingsdialog, id=wx.ID_ANY, choices=[], selectedLabel="IP addresses to be blocked", ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES | IP_REMOVE_FROM_CHOICES) self.ippicker.SetToolTip(wx.ToolTip("Hello")) self.ippicker.SetSelections(iplist) boxsizer.Add(self.normalpicker, 0, wx.ALL | wx.TOP, 10) boxsizer.Add(self.extrapicker, 0, wx.ALL | wx.CENTER | wx.EXPAND, 10) boxsizer.Add(self.ippicker, 0, wx.ALL | wx.BOTTOM | wx.EXPAND, 10) settingsdialog.SetSizerAndFit(boxsizer) if event is not None: settingsdialog.Center() settingsdialog.ShowModal() def go(self, event): self.settingsbox( None) # Call the settings box to get the settings values if self.goradbox.GetSelection() == 1: # if mode is revert mode = "Revert" startval = 3 telemetryval = 1 undo = True val = 1 filesyncval = 0 installerfunc = "install" else: mode = "Privacy" startval = 4 telemetryval = 0 undo = False val = 0 filesyncval = 1 installerfunc = "uninstall" self.cluttercontrol() if self.diagtrackbox.IsChecked(): logging.info("DiagTrack box ticked") cleardiagtracklog() if self.servicebox.IsChecked(): if self.serviceradbox.Selection == 0: logging.info("Service disable option ticked") disableservice(service='dmwappushsvc') disableservice(service='Diagnostics Tracking Service') elif self.serviceradbox.Selection == 1: logging.info("Service delete option ticked") deleteservice(service='dmwappushsvc') deleteservice(service='Diagnostics Tracking Service') logging.info("DisableWinTracking Version: {0}".format(vernumber)) logging.info("Mode: {0}".format(mode)) if self.servicebox.IsChecked(): modifyserviceregs(startval=startval) if self.telemetrybox.IsChecked(): logging.info("Telemetry box ticked") modifytelemetryregs(telemetryval=telemetryval) if self.hostbox.IsChecked(): self.settingsbox(None) logging.info("Host box ticked") modifyhostfile(undo=undo, domainlist=self.normalpicker.GetSelections(), name="Domain block") if self.extrahostbox.IsChecked(): logging.info("Extra host box ticked") modifyhostfile(undo=undo, domainlist=self.extrapicker.GetSelections(), name="Extra domain block") if self.ipbox.IsChecked(): logging.info("IP block box ticked") blockips(iplist=self.ippicker.GetSelections(), undo=undo) if self.wdwsbox.IsChecked(): logging.info("Policy Manager box ticked") stopdefendwifi(val=val) if self.onedrivedbox.IsChecked(): logging.info("OneDrive box ticked") modifyonedrive(installerfunc=installerfunc, filesyncval=filesyncval) self.console.Show() # Show console output window after the code is run self.console.Center() # Center console window print "Done. It's recommended that you reboot as soon as possible for the full effect." print "If you feel something didn't work properly, please press the 'Report an issue' \ button and follow the directions" def uninstapps(self, event): uninstalllist = [] logging.info("DisableWinTracking Version: {0}".format(vernumber)) if self.builderbox.IsChecked(): uninstalllist.append('3dbuilder') if self.calmailbox.IsChecked(): uninstalllist.append('windowscommunicationsapps') if self.camerabox.IsChecked(): uninstalllist.append('windowscamera') if self.officebox.IsChecked(): uninstalllist.append('officehub') if self.skypebox.IsChecked(): uninstalllist.append('skypeapp') if self.startbox.IsChecked(): uninstalllist.append('getstarted') if self.groovebox.IsChecked(): uninstalllist.append('zunemusic') if self.mapbox.IsChecked(): uninstalllist.append('windowsmaps') if self.mscbox.IsChecked(): uninstalllist.append('solitairecollection') if self.moneybox.IsChecked(): uninstalllist.append('bingfinance') if self.movietvbox.IsChecked(): uninstalllist.append('zunevideo') if self.newsbox.IsChecked(): uninstalllist.append('bingnews') if self.onenotebox.IsChecked(): uninstalllist.append('onenote') if self.peoplebox.IsChecked(): uninstalllist.append('people') if self.phonebox.IsChecked(): uninstalllist.append('windowsphone') if self.photosbox.IsChecked(): uninstalllist.append('photos') if self.sportsbox.IsChecked(): uninstalllist.append('bingsports') if self.voicebox.IsChecked(): uninstalllist.append('soundrecorder') if self.weatherbox.IsChecked(): uninstalllist.append('bingweather') if self.xbonebox.IsChecked(): uninstalllist.append('xboxapp') if uninstalllist: # Check if at least one app is selected apppackage(reinstall=False, applist=uninstalllist) self.console.Show( ) # Show console output window after the code is run self.console.Center() # Center console window def reinstapps(self, event): apppackage(reinstall=True, applist=['thisshouldntevenbepassed']) def cluttercontrol(self): logging.info("Performing clutter control") if self.hostbox.IsChecked(): modifyhostfile(undo=True, domainlist=self.normalpicker.GetSelections(), name="Clutter control") if self.extrahostbox.IsChecked(): modifyhostfile(undo=True, domainlist=self.extrapicker.GetSelections(), name="Extra domain clutter control") if self.ipbox.IsChecked(): blockips(undo=True) self.console.consolebox.Clear()
class BlockSorted(wx.Dialog): def __init__(self, parent, _names): wx.Dialog.__init__(self, parent, size=(400, 300), title='Ordenar Bloques') self.parent = parent self.names = _names self.init_ui() # ------ Definiciones iniciales ----- self.Centre(wx.BOTH) self.CenterOnScreen() self.ShowModal() def init_ui(self): sizer = wx.BoxSizer(wx.VERTICAL) # titulo title_sizer = wx.BoxSizer(wx.VERTICAL) title = wx.StaticText(self, label='Ordenando Bloques') title_line = wx.StaticLine(self) title_sizer.Add(title, 0, wx.CENTER | wx.TOP, 10) title_sizer.Add(title_line, 0, wx.EXPAND | wx.RIGHT | wx.LEFT, 5) self.i_picker = ItemsPicker(self, -1, self.names, 'Orden actual', 'Nuevo Orden') # buttons confirmar, cancelar sizer_button = wx.BoxSizer(wx.HORIZONTAL) sizer_cancel = wx.BoxSizer() self.cancel = wx.Button(self, -1, 'Cancelar') self.cancel.SetDefault() sizer_cancel.Add(self.cancel) sizer_apply = wx.BoxSizer() self.apply = wx.Button(self, -1, 'Aplicar') sizer_apply.Add(self.apply, 0, wx.ALIGN_RIGHT) self.apply.Disable() sizer_button.Add(sizer_cancel, 0, wx.ALL, 5) sizer_button.Add(sizer_apply, 0, wx.ALL, 5) sizer.Add(title_sizer, 0, wx.EXPAND | wx.BOTTOM, 10) sizer.Add(self.i_picker, 1, wx.EXPAND | wx.ALL, 5) sizer.Add(sizer_button, 0, wx.EXPAND | wx.LEFT, 100) self.i_picker.Bind(EVT_IP_SELECTION_CHANGED, self.check_up) self.Bind(wx.EVT_BUTTON, self.on_button_apply, self.apply) self.Bind(wx.EVT_BUTTON, self.on_button_cancel, self.cancel) self.Bind(wx.EVT_CHAR, self.on_key_escape) self.SetSizer(sizer) def check_up(self, event): if len(self.names) != len(self.i_picker.GetSelections()): self.apply.Disable() self.cancel.SetDefault() return None _names = [str(i) for i in self.i_picker.GetSelections()] if self.names == _names: self.apply.Disable() self.cancel.SetDefault() return None self.apply.Enable() self.apply.SetDefault() def on_button_cancel(self, event): self.Close() def on_button_apply(self, event): order = [str(i) for i in self.i_picker.GetSelections()] new_order = [] for name in self.names: new_order.append(order.index(name)) self.parent.sort_blocks(new_order) self.Close() def on_key_escape(self, event): if event.GetKeyCode() == wx.WXK_ESCAPE: self.Close()
def settings(self, event, silent=False): if not silent: dialog = wx.Dialog(parent=self, title="Settings", style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER) sizer = wx.BoxSizer(wx.VERTICAL) normal_domain_picker = ItemsPicker( dialog, choices=[], selectedLabel="Domains to be blocked", ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES | IP_REMOVE_FROM_CHOICES) if self.picked_normal: normal_domain_picker.SetSelections(self.picked_normal) normal_domain_picker.SetItems([ domain for domain in normal_domains if domain not in self.picked_normal ]) else: normal_domain_picker.SetSelections(normal_domains) extra_domain_picker = ItemsPicker( dialog, choices=[], selectedLabel="Extra domains to be blocked", ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES | IP_REMOVE_FROM_CHOICES) if self.picked_extra: extra_domain_picker.SetSelections(self.picked_extra) extra_domain_picker.SetItems([ domain for domain in extra_domains if domain not in self.picked_extra ]) else: extra_domain_picker.SetSelections(extra_domains) ip_picker = ItemsPicker(dialog, choices=[], selectedLabel="IP addresses to be blocked", ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES | IP_REMOVE_FROM_CHOICES) if self.picked_ips: ip_picker.SetSelections(self.picked_ips) ip_picker.SetItems( [ip for ip in ip_addresses if ip not in self.picked_ips]) else: ip_picker.SetSelections(ip_addresses) whitelist_picker = ItemsPicker( dialog, choices=[], selectedLabel="Domains to be whitelisted", ipStyle=IP_SORT_SELECTED | IP_SORT_CHOICES | IP_REMOVE_FROM_CHOICES) if self.unpicked_ads: whitelist_picker.SetSelections(self.unpicked_ads) whitelist_picker.SetItems([ domain for domain in adblock_whitelist if domain not in self.unpicked_ads ]) else: whitelist_picker.SetSelections(adblock_whitelist) if not silent: sizer.Add(normal_domain_picker, 0, wx.EXPAND) sizer.Add(whitelist_picker, 0, wx.EXPAND) sizer.Add(extra_domain_picker, 0, wx.EXPAND) sizer.Add(ip_picker, 0, wx.EXPAND) if event is not None: dialog.SetSizerAndFit(sizer) dialog.Center() dialog.ShowModal() dialog.Destroy() self.unpicked_ads = whitelist_picker.GetSelections() self.picked_normal = normal_domain_picker.GetSelections() self.picked_extra = extra_domain_picker.GetSelections() self.picked_ips = ip_picker.GetSelections()