├── .gitattributes ├── .github └── ISSUE_TEMPLATE │ ├── FEATURE_REQUEST.yml │ ├── GAME_BUG_REPORT.yml │ ├── GENERAL_BUG_REPORT.yml │ └── OTHER.yml ├── .gitignore ├── BGKey.pfx ├── BorderlessGaming.Logic ├── BorderlessGaming.Logic.csproj ├── Core │ ├── LanguageManager.cs │ └── ProcessWatcher.cs ├── Extensions │ ├── CrossThreadExtensions.cs │ └── ProcessExtensions.cs ├── Models │ ├── AppSettings.cs │ ├── Config.cs │ ├── Favorite.cs │ ├── HiddenProcess.cs │ ├── Language.cs │ ├── PRectangle.cs │ └── ProcessDetails.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ └── Resources.resx ├── Resources │ └── blank.cur ├── Steam │ └── SteamAPI.cs ├── System │ ├── AppEnvironment.cs │ ├── AutoStart.cs │ ├── StartupOptions.cs │ ├── Tools.cs │ └── Utilities │ │ ├── ExceptionHandler.cs │ │ └── TaskUtilities.cs ├── Windows │ ├── Audio │ │ └── VolumeMixer.cs │ ├── Enumerations.cs │ ├── ForegroundManager.cs │ ├── Manipulation.cs │ ├── Native.cs │ ├── Security.cs │ ├── Uac.cs │ └── Windows.cs └── packages.config ├── BorderlessGaming.sln ├── BorderlessGaming ├── App.config ├── BorderlessGaming.csproj ├── BorderlessGaming_new.ico ├── Forms │ ├── AboutForm.Designer.cs │ ├── AboutForm.cs │ ├── AboutForm.de.resx │ ├── AboutForm.en-US.resx │ ├── AboutForm.en.resx │ ├── AboutForm.resx │ ├── AboutForm.zh-CN.resx │ ├── DesktopAreaSelector.Designer.cs │ ├── DesktopAreaSelector.cs │ ├── DesktopAreaSelector.resx │ ├── InputText.cs │ ├── InputText.designer.cs │ ├── InputText.resx │ ├── InputText.zh-CN.resx │ ├── MainWindow.Designer.cs │ ├── MainWindow.cs │ ├── MainWindow.de.resx │ ├── MainWindow.en-US.resx │ ├── MainWindow.resx │ ├── MainWindow.zh-CN.resx │ ├── Rainway.Designer.cs │ ├── Rainway.cs │ └── Rainway.resx ├── Program.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.de.resx │ ├── Resources.resx │ ├── Resources.ru.resx │ ├── Resources.zh-CN.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Resources │ ├── RainwayLogo.bmp │ ├── add.png │ ├── blank.cur │ ├── bordered.png │ ├── borderless.png │ ├── globe-green.png │ ├── master-glyph.png │ ├── remove.png │ └── steam.png └── app.manifest ├── BorderlessGaming_new.ico ├── CONTRIBUTING.md ├── Installers ├── BorderlessGaming_Standalone_Admin.iss ├── BorderlessGaming_Standalone_User.iss └── uninstall.ico ├── LICENSE ├── Languages ├── Languages.zip ├── de-DE.lang ├── en-US.lang ├── es-419.lang ├── fr-FR.lang ├── it-IT.lang ├── ja-JP.lang ├── ko-KR.lang ├── pl-PL.lang ├── ru-RU.lang ├── sl-SI.lang ├── zh-CN.lang └── zh-TW.lang ├── Properties ├── AssemblyInfo.cs ├── Resources.Designer.cs ├── Resources.de.resx ├── Resources.resx ├── Resources.ru.resx └── Resources.zh-CN.resx ├── README.md ├── SteamLibs ├── Facepunch.Steamworks.dll ├── steam_api.dll └── steam_appid.txt ├── Tools └── DigiCertUtil.exe ├── data ├── add.png ├── blank.cur ├── bordered.png ├── borderless.png ├── globe-green.png ├── remove.png └── steam.png └── version.xml /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/FEATURE_REQUEST.yml: -------------------------------------------------------------------------------- 1 | name: Feature Request 2 | description: Suggest an idea for a feature that improves Borderless gaming 3 | title: A short concise title 4 | labels: ["enhancement"] 5 | body: 6 | - type: checkboxes 7 | attributes: 8 | label: Requirements 9 | description: Before you create a suggestion, please consider the following 10 | options: 11 | - label: This issue doesn't already exist 12 | required: true 13 | - label: This is only a single feature request (Otherwise create a separate issue) 14 | required: true 15 | - type: textarea 16 | id: problem 17 | attributes: 18 | label: Is this proposal related to a problem? 19 | description: | 20 | Provide a concise description of what the problem is 21 | validations: 22 | required: true 23 | - type: textarea 24 | id: solution 25 | attributes: 26 | label: Describe the solution you'd like 27 | description: | 28 | Provide a concise description of what solution you're proposing. 29 | Have you thought of alternative solutions? 30 | validations: 31 | required: true 32 | - type: textarea 33 | id: context 34 | attributes: 35 | label: Additional context 36 | description: | 37 | Is there anything else worth mentioning, that is related to this issue? 38 | Maybe there are related issues that can be mistaken for duplicates, describe why they aren't -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/GAME_BUG_REPORT.yml: -------------------------------------------------------------------------------- 1 | name: Game-compatibility Bug Report 2 | description: Report an issue experienced with a particular game 3 | title: "[Game]: Game name - short description of bug" 4 | labels: ["game-specific", "bug"] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Found a bug for a specific game? Please fill out the sections below. 10 | - type: checkboxes 11 | attributes: 12 | label: Requirements 13 | description: Before you report this bug, please consider the following. 14 | options: 15 | - label: This issue doesn't already exists 16 | - label: This bug is only related to a single game 17 | - label: Filled out the title with template 18 | - type: textarea 19 | id: summary 20 | attributes: 21 | label: Summary 22 | description: | 23 | A summary of the bug. 24 | validations: 25 | required: true 26 | - type: textarea 27 | id: reproduce 28 | attributes: 29 | label: Steps to reproduce 30 | description: | 31 | Describe the steps to reproduce the bug. 32 | The better instructions are, the easier it will be to resolve. 33 | value: | 34 | 1. 35 | 2. 36 | 3. 37 | validations: 38 | required: true 39 | - type: textarea 40 | id: technical 41 | attributes: 42 | label: Technical details 43 | description: | 44 | - Game version number: 45 | - Anything else? 46 | - type: input 47 | id: version 48 | attributes: 49 | label: version 50 | description: Which version of Borderless Gaming were you using? Visible in Help->About-menu. 51 | placeholder: ex. 9.5.6.1328 or N/A 52 | validations: 53 | required: true -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/GENERAL_BUG_REPORT.yml: -------------------------------------------------------------------------------- 1 | name: Bug Report 2 | description: Report a general issue encountered Borderless-Gaming 3 | title: Short description of the bug 4 | labels: ["bug"] 5 | body: 6 | - type: markdown 7 | attributes: 8 | value: | 9 | Found a bug? Please fill out the sections below. 10 | Thanks for taking the time to fill out this bug report! 11 | - type: checkboxes 12 | attributes: 13 | label: Requirements 14 | description: Before you report this bug, please consider the following. 15 | options: 16 | - label: This issue doesn't already exist 17 | - label: This bug is Not related to compatability with a specific game 18 | - type: textarea 19 | id: summary 20 | attributes: 21 | label: Summary 22 | description: A summary of the bug. 23 | validations: 24 | required: true 25 | - type: textarea 26 | id: reproduce 27 | attributes: 28 | label: Steps to reproduce 29 | description: | 30 | Describe the steps to reproduce the bug. 31 | The better instructions are, the easier it will be to resolve. 32 | value: | 33 | 1. 34 | 2. 35 | 3. 36 | validations: 37 | required: true 38 | - type: textarea 39 | id: technical 40 | attributes: 41 | label: Technical details 42 | description: | 43 | - Any way you can elaborate? 44 | validations: 45 | required: false 46 | - type: input 47 | id: version 48 | attributes: 49 | label: version 50 | description: Which version of Borderless Gaming were you using? Visible in Help->About-menu. 51 | placeholder: ex. 9.5.6.1328 or N/A 52 | validations: 53 | required: true -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/OTHER.yml: -------------------------------------------------------------------------------- 1 | name: Other 2 | description: Do you have some other type of contribution not compatable with the templates? 3 | body: 4 | - type: textarea 5 | id: explanation 6 | attributes: 7 | label: Summary 8 | description: | 9 | Please write your contribution here 10 | validations: 11 | required: true 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Build Folders (you can keep bin if you'd like, to store dlls and pdbs) 2 | [Bb]in/ 3 | [Oo]bj/ 4 | 5 | # mstest test results 6 | TestResults 7 | 8 | ## Ignore Visual Studio temporary files, build results, and 9 | ## files generated by popular Visual Studio add-ons. 10 | 11 | # User-specific files 12 | *.suo 13 | *.user 14 | *.sln.docstates 15 | 16 | # Build results 17 | [Dd]ebug/ 18 | [Rr]elease/ 19 | x64/ 20 | *_i.c 21 | *_p.c 22 | *.ilk 23 | *.meta 24 | *.obj 25 | *.pch 26 | *.pdb 27 | *.pgc 28 | *.pgd 29 | *.rsp 30 | *.sbr 31 | *.tlb 32 | *.tli 33 | *.tlh 34 | *.tmp 35 | *.log 36 | *.vspscc 37 | *.vssscc 38 | .builds 39 | 40 | # Visual C++ cache files 41 | ipch/ 42 | *.aps 43 | *.ncb 44 | *.opensdf 45 | *.sdf 46 | 47 | # Visual Studio profiler 48 | *.psess 49 | *.vsp 50 | *.vspx 51 | 52 | # Guidance Automation Toolkit 53 | *.gpState 54 | 55 | # ReSharper is a .NET coding add-in 56 | _ReSharper* 57 | 58 | # NCrunch 59 | *.ncrunch* 60 | .*crunch*.local.xml 61 | 62 | # Installshield output folder 63 | [Ee]xpress 64 | 65 | # DocProject is a documentation generator add-in 66 | DocProject/buildhelp/ 67 | DocProject/Help/*.HxT 68 | DocProject/Help/*.HxC 69 | DocProject/Help/*.hhc 70 | DocProject/Help/*.hhk 71 | DocProject/Help/*.hhp 72 | DocProject/Help/Html2 73 | DocProject/Help/html 74 | 75 | # Click-Once directory 76 | publish 77 | 78 | # Publish Web Output 79 | *.Publish.xml 80 | 81 | # NuGet Packages Directory 82 | packages 83 | 84 | # Windows Azure Build Output 85 | csx 86 | *.build.csdef 87 | 88 | # Windows Store app package directory 89 | AppPackages/ 90 | 91 | # Others 92 | [Bb]in 93 | [Oo]bj 94 | sql 95 | TestResults 96 | [Tt]est[Rr]esult* 97 | *.Cache 98 | ClientBin 99 | [Ss]tyle[Cc]op.* 100 | ~$* 101 | *.dbmdl 102 | Generated_Code #added for RIA/Silverlight projects 103 | 104 | # Backup & report files from converting an old project file to a newer 105 | # Visual Studio version. Backup files are not needed, because we have git ;-) 106 | _UpgradeReport_Files/ 107 | Backup*/ 108 | UpgradeLog*.XML 109 | 110 | 111 | .vs/ 112 | Installers/*setup.exe 113 | -------------------------------------------------------------------------------- /BGKey.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/BGKey.pfx -------------------------------------------------------------------------------- /BorderlessGaming.Logic/BorderlessGaming.Logic.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {F5AF80A6-F3F4-4855-A620-22FA5737D019} 8 | Library 9 | Properties 10 | BorderlessGaming.Logic 11 | BorderlessGaming.Logic 12 | v4.5.2 13 | 512 14 | 15 | 16 | true 17 | full 18 | false 19 | bin\Debug\ 20 | DEBUG;TRACE 21 | prompt 22 | 4 23 | x86 24 | true 25 | 26 | 27 | pdbonly 28 | true 29 | bin\Release\ 30 | TRACE 31 | prompt 32 | 4 33 | x86 34 | 35 | 36 | false 37 | 38 | 39 | ..\BGKey.pfx 40 | 41 | 42 | 43 | ..\packages\CommandLineParser.1.9.71\lib\net45\CommandLine.dll 44 | 45 | 46 | ..\packages\DotNetZip.1.13.3\lib\net40\DotNetZip.dll 47 | 48 | 49 | ..\SteamLibs\Facepunch.Steamworks.dll 50 | 51 | 52 | ..\packages\TaskScheduler.2.8.8\lib\net452\Microsoft.Win32.TaskScheduler.dll 53 | 54 | 55 | ..\packages\protobuf-net.2.4.0\lib\net40\protobuf-net.dll 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | True 92 | True 93 | Resources.resx 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | ResXFileCodeGenerator 114 | Resources.Designer.cs 115 | 116 | 117 | 118 | 119 | BGKey.pfx 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | call "$(SolutionDir)Tools\DigiCertUtil.exe" sign /noInput /sha1 "CB509F61A8A3B970790F0E2C695A3782F101FF22" "$(ProjectDir)$(OutDir)$(TargetFileName)" 130 | 131 | -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Extensions/CrossThreadExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Runtime.Serialization.Formatters.Binary; 6 | using System.Text; 7 | using System.Threading.Tasks; 8 | using System.Windows.Forms; 9 | 10 | namespace BorderlessGaming.Logic.Extensions 11 | { 12 | public static class CrossThreadExtensions 13 | { 14 | 15 | public static List CloneList(List oldList) 16 | { 17 | BinaryFormatter formatter = new BinaryFormatter(); 18 | MemoryStream stream = new MemoryStream(); 19 | formatter.Serialize(stream, oldList); 20 | stream.Position = 0; 21 | return (List)formatter.Deserialize(stream); 22 | } 23 | 24 | public static void PerformSafely(this Control target, Action action) 25 | { 26 | if (target.InvokeRequired) 27 | { 28 | target.Invoke(action); 29 | } 30 | else 31 | { 32 | action(); 33 | } 34 | } 35 | 36 | public static void PerformSafely(this Control target, Action action, T1 parameter) 37 | { 38 | if (target.InvokeRequired) 39 | { 40 | target.Invoke(action, parameter); 41 | } 42 | else 43 | { 44 | action(parameter); 45 | } 46 | } 47 | 48 | public static void PerformSafely(this Control target, Action action, T1 p1, T2 p2) 49 | { 50 | if (target.InvokeRequired) 51 | { 52 | target.Invoke(action, p1, p2); 53 | } 54 | else 55 | { 56 | action(p1, p2); 57 | } 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Extensions/ProcessExtensions.cs: -------------------------------------------------------------------------------- 1 | using System.Diagnostics; 2 | 3 | namespace BorderlessGaming.Logic.Extensions 4 | { 5 | internal static class ProcessExtensions 6 | { 7 | private static string FindIndexedProcessName(int pid) 8 | { 9 | var processName = Process.GetProcessById(pid).ProcessName; 10 | var processesByName = Process.GetProcessesByName(processName); 11 | string processIndexdName = null; 12 | 13 | for (var index = 0; index < processesByName.Length; index++) 14 | { 15 | processIndexdName = index == 0 ? processName : processName + "#" + index; 16 | var processId = new PerformanceCounter("Process", "ID Process", processIndexdName); 17 | if ((int) processId.NextValue() == pid) 18 | { 19 | return processIndexdName; 20 | } 21 | } 22 | 23 | return processIndexdName; 24 | } 25 | 26 | private static Process FindPidFromIndexedProcessName(string indexedProcessName) 27 | { 28 | var parentId = new PerformanceCounter("Process", "Creating Process ID", indexedProcessName); 29 | return Process.GetProcessById((int) parentId.NextValue()); 30 | } 31 | 32 | public static Process Parent(this Process process) 33 | { 34 | return FindPidFromIndexedProcessName(FindIndexedProcessName(process.Id)); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Models/AppSettings.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using ProtoBuf; 3 | 4 | namespace BorderlessGaming.Logic.Models 5 | { 6 | [ProtoContract] 7 | public class AppSettings 8 | { 9 | [ProtoMember(1)] 10 | public bool SlowWindowDetection { get; set; } 11 | 12 | [ProtoMember(2)] 13 | public bool ViewAllProcessDetails { get; set; } 14 | 15 | [ProtoMember(3)] 16 | public bool RunOnStartup { get; set; } 17 | 18 | [ProtoMember(4)] 19 | public bool UseGlobalHotkey { get; set; } 20 | 21 | [ProtoMember(5)] 22 | public bool UseMouseLockHotkey { get; set; } 23 | 24 | [ProtoMember(6)] 25 | public bool UseMouseHideHotkey { get; set; } 26 | 27 | [ProtoMember(7)] 28 | public bool StartMinimized { get; set; } 29 | 30 | [ProtoMember(8)] 31 | public bool HideBalloonTips { get; set; } 32 | 33 | [ProtoMember(9)] 34 | public bool CloseToTray { get; set; } 35 | 36 | [ProtoMember(10)] 37 | [DefaultValue(true)] 38 | public bool CheckForUpdates { get; set; } = true; 39 | 40 | [ProtoMember(11)] 41 | public bool DisableSteamIntegration { get; set; } 42 | 43 | [ProtoMember(12)] 44 | [DefaultValue("en-US")] 45 | public string DefaultCulture { get; set; } = "en-US"; 46 | 47 | [ProtoMember(13)] 48 | [DefaultValue(true)] 49 | public bool ShowAdOnStart { get; set; } = true; 50 | 51 | } 52 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Models/Config.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.IO; 5 | using System.Linq; 6 | using System.Windows.Forms; 7 | using BorderlessGaming.Logic.Core; 8 | using BorderlessGaming.Logic.System; 9 | using BorderlessGaming.Logic.Windows; 10 | using CommandLine; 11 | using ProtoBuf; 12 | 13 | 14 | namespace BorderlessGaming.Logic.Models 15 | { 16 | [ProtoContract] 17 | public class Config 18 | { 19 | public static Config Instance { get; set; } 20 | 21 | public StartupOptions StartupOptions { get; set; } = new StartupOptions(); 22 | 23 | [ProtoMember(1)] 24 | public List Favorites { get; set; } = new List(); 25 | 26 | [ProtoMember(2)] 27 | public List HiddenProcesses { get; set; } = new List(); 28 | 29 | [ProtoMember(3)] 30 | public AppSettings AppSettings { get; set; } = new AppSettings(); 31 | 32 | public static void Load() 33 | { 34 | 35 | if (!File.Exists(AppEnvironment.ConfigPath)) 36 | { 37 | Security.SaveConfig(new Config()); 38 | } 39 | Instance = Security.LoadConfigFile(); 40 | Parser.Default.ParseArguments(Environment.GetCommandLineArgs(), Instance.StartupOptions); 41 | } 42 | 43 | public static void Save() 44 | { 45 | Security.SaveConfig(Instance); 46 | } 47 | 48 | public bool CanAddFavorite(string item) 49 | { 50 | return !Favorites.Any(fav => fav.SearchText.Equals(item)); 51 | } 52 | 53 | public void AddFavorite(Favorite favorite, Action callback) 54 | { 55 | if (!Favorites.Any(fav => fav.SearchText.Equals(favorite.SearchText))) 56 | { 57 | Favorites.Add(favorite); 58 | callback(); 59 | Save(); 60 | } 61 | } 62 | 63 | 64 | public void RemoveFavorite(Favorite favorite, Action callback) 65 | { 66 | if (Favorites.Any(fav => fav.SearchText.Equals(favorite.SearchText))) 67 | { 68 | Favorites.Remove(Favorites.FirstOrDefault(fav => fav.SearchText.Equals(favorite.SearchText))); 69 | callback(); 70 | Save(); 71 | } 72 | } 73 | 74 | public void ExcludeProcess(string processName) 75 | { 76 | if (!IsHidden(processName) && !string.IsNullOrWhiteSpace(processName)) 77 | { 78 | HiddenProcesses.Add(new HiddenProcess 79 | { 80 | Name = processName 81 | }); 82 | Save(); 83 | } 84 | } 85 | 86 | public void ResetHiddenProcesses() 87 | { 88 | HiddenProcesses = new List(); 89 | Save(); 90 | } 91 | public bool IsHidden(Process process) 92 | { 93 | return IsHidden(process.ProcessName); 94 | } 95 | 96 | public bool IsHidden(string processName) 97 | { 98 | return HiddenProcess.AlwaysHiddenProcesses.Any(process => process.Equals(processName.ToLower())) || HiddenProcesses.Any(process => process.Name.Equals(processName.ToLower())); 99 | } 100 | 101 | } 102 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Models/Favorite.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Text.RegularExpressions; 3 | using ProtoBuf; 4 | 5 | namespace BorderlessGaming.Logic.Models 6 | { 7 | public enum FavoriteSize 8 | { 9 | FullScreen = 0, 10 | SpecificSize = 1, 11 | NoChange = 2 12 | } 13 | 14 | public enum FavoriteType 15 | { 16 | Process = 0, 17 | Title = 1, 18 | Regex = 2 19 | } 20 | 21 | [ProtoContract] 22 | public class Favorite 23 | { 24 | [ProtoMember(1)] 25 | [DefaultValue(FavoriteType.Process)] 26 | public FavoriteType Type { get; set; } = FavoriteType.Process; 27 | 28 | [ProtoMember(2)] 29 | [DefaultValue(FavoriteSize.FullScreen)] 30 | public FavoriteSize Size { get; set; } = FavoriteSize.FullScreen; 31 | 32 | [ProtoMember(3)] 33 | [DefaultValue("")] 34 | public string SearchText { get; set; } = ""; 35 | 36 | [ProtoMember(4)] 37 | public PRectangle FavScreen { get; set; } 38 | 39 | [ProtoMember(5)] 40 | public int OffsetL { get; set; } 41 | 42 | [ProtoMember(6)] 43 | public int OffsetT { get; set; } 44 | 45 | [ProtoMember(7)] 46 | public int OffsetR { get; set; } 47 | 48 | [ProtoMember(8)] 49 | public int OffsetB { get; set; } 50 | 51 | [ProtoMember(9)] 52 | [DefaultValue(true)] 53 | public bool ShouldMaximize { get; set; } = true; 54 | 55 | [ProtoMember(10)] 56 | public int PositionX { get; set; } 57 | 58 | [ProtoMember(11)] 59 | public int PositionY { get; set; } 60 | 61 | [ProtoMember(12)] 62 | public int PositionW { get; set; } 63 | 64 | [ProtoMember(13)] 65 | public int PositionH { get; set; } 66 | 67 | [ProtoMember(14)] 68 | public bool RemoveMenus { get; set; } 69 | 70 | [ProtoMember(15)] 71 | public bool TopMost { get; set; } 72 | 73 | [ProtoMember(16)] 74 | public bool HideWindowsTaskbar { get; set; } 75 | 76 | [ProtoMember(17)] 77 | public bool HideMouseCursor { get; set; } 78 | 79 | [ProtoMember(18)] 80 | public bool DelayBorderless { get; set; } 81 | 82 | [ProtoMember(19)] 83 | public bool MuteInBackground { get; set; } 84 | 85 | 86 | /// 87 | /// Return a string representation of the favorite 88 | /// 89 | /// 90 | public override string ToString() 91 | { 92 | var max = ShouldMaximize ? "[Max]" : string.Empty; 93 | var mode = Size == FavoriteSize.NoChange ? "[NoSize]" : string.Empty; 94 | var top = TopMost ? "[Top]" : string.Empty; 95 | var menus = RemoveMenus ? "[NoMenu]" : string.Empty; 96 | var taskbar = HideWindowsTaskbar ? "[NoTaskbar]" : string.Empty; 97 | var mouse = HideMouseCursor ? "[NoMouse]" : string.Empty; 98 | var delay = DelayBorderless ? "[Delay]" : string.Empty; 99 | var muted = MuteInBackground ? "[Muted]" : string.Empty; 100 | var offset = string.Empty; 101 | var position = string.Empty; 102 | if (OffsetL != 0 || OffsetR != 0 || OffsetT != 0 || OffsetB != 0) 103 | { 104 | offset = $"[{OffsetL}L,{OffsetR}R,{OffsetT}T,{OffsetB}B]"; 105 | } 106 | if (PositionX != 0 || PositionY != 0 || PositionW != 0 || PositionH != 0) 107 | { 108 | position = $"[{PositionX}x{PositionY}-{PositionX + PositionW}x{PositionY + PositionH}]"; 109 | } 110 | return $"{SearchText} [{Type}] {max}{muted}{mode}{top}{menus}{taskbar}{mouse}{delay}{offset}{position}"; 111 | } 112 | 113 | public bool Matches(ProcessDetails pd) 114 | { 115 | return Type == FavoriteType.Process && pd.BinaryName == SearchText || 116 | Type == FavoriteType.Title && pd.WindowTitle == SearchText || 117 | Type == FavoriteType.Regex && Regex.IsMatch(pd.WindowTitle, SearchText); 118 | } 119 | 120 | public static Favorite FromWindow(ProcessDetails pd) 121 | { 122 | return new Favorite {SearchText = pd.BinaryName}; 123 | } 124 | 125 | public bool IsRunning { get; set; } 126 | 127 | public int RunningId { get; set; } 128 | } 129 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Models/HiddenProcess.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using ProtoBuf; 3 | 4 | namespace BorderlessGaming.Logic.Models 5 | { 6 | [ProtoContract] 7 | public class HiddenProcess 8 | { 9 | /// 10 | /// AlwaysHiddenProcesses is used to keep processes from showing up in the list no matter what 11 | /// 12 | public static readonly List AlwaysHiddenProcesses = new List 13 | { 14 | // Skip self 15 | "borderlessgaming", 16 | // Skip Windows core system processes 17 | "csrss", 18 | "smss", 19 | "lsass", 20 | "wininit", 21 | "svchost", 22 | "services", 23 | "winlogon", 24 | "dwm", 25 | "explorer", 26 | "taskmgr", 27 | "mmc", 28 | "rundll32", 29 | "vcredist_x86", 30 | "vcredist_x64", 31 | "msiexec", 32 | // Skip common video streaming software 33 | "xsplit", 34 | // Skip common web browsers 35 | "iexplore", 36 | "firefox", 37 | "chrome", 38 | "safari", 39 | // Skip launchers/misc. 40 | "iw4 console", 41 | "steam", 42 | "origin", 43 | "uplay" 44 | 45 | // Let them hide the rest manually 46 | }; 47 | 48 | [ProtoMember(1)] 49 | public string Name { get; set; } 50 | } 51 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Models/Language.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Globalization; 5 | using System.IO; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | using BorderlessGaming.Logic.Core; 10 | 11 | namespace BorderlessGaming.Logic.Models 12 | { 13 | public class Language 14 | { 15 | public Dictionary LanguageData { get; set; } 16 | 17 | public string Culture { get; set; } 18 | 19 | public string DisplayName { get; set; } 20 | 21 | public void Set() 22 | { 23 | LanguageManager.CurrentCulture = Culture; 24 | } 25 | 26 | internal string Data(string key) 27 | { 28 | 29 | return LanguageData.ContainsKey(key) ? LanguageData[key] : null; 30 | } 31 | 32 | public void LoadData(string languageFile) 33 | { 34 | LanguageData = new Dictionary(); 35 | foreach (var line in File.ReadAllLines(languageFile, Encoding.UTF8)) 36 | { 37 | if (string.IsNullOrWhiteSpace(line)) 38 | { 39 | continue; 40 | } 41 | var c = line.FirstOrDefault(); 42 | if (c.Equals('#')) 43 | { 44 | continue; 45 | } 46 | var languageData = line.Split(new[] {'|'}, 2); 47 | var key = languageData[0].Trim().ToLower(); 48 | var data = languageData[1].Trim(); 49 | if (!LanguageData.ContainsKey(key)) 50 | { 51 | LanguageData.Add(key, data); 52 | } 53 | } 54 | if (LanguageData.Count > 0) 55 | { 56 | DisplayName = CultureDisplayName(Culture); 57 | } 58 | } 59 | 60 | public override string ToString() 61 | { 62 | return DisplayName; 63 | } 64 | 65 | private string CultureDisplayName(string name) 66 | { 67 | return new CultureInfo(name).NativeName; 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Models/PRectangle.cs: -------------------------------------------------------------------------------- 1 | using System.Drawing; 2 | using ProtoBuf; 3 | 4 | namespace BorderlessGaming.Logic.Models 5 | { 6 | [ProtoContract] 7 | public class PRectangle 8 | { 9 | [ProtoMember(1)] 10 | public int X { get; set; } 11 | 12 | [ProtoMember(2)] 13 | public int Y { get; set; } 14 | 15 | [ProtoMember(3)] 16 | public int Width { get; set; } 17 | 18 | [ProtoMember(4)] 19 | public int Height { get; set; } 20 | 21 | 22 | public static PRectangle ToPRectangle(Rectangle rectangle) 23 | { 24 | return new PRectangle 25 | { 26 | Height = rectangle.Height, 27 | Width = rectangle.Width, 28 | X = rectangle.X, 29 | Y = rectangle.Y 30 | }; 31 | } 32 | 33 | 34 | public override bool Equals(object obj) 35 | { 36 | var rect = (PRectangle) obj; 37 | return rect != null && X == rect.X && Y == rect.Y && Height == rect.Height && Width == rect.Width; 38 | } 39 | 40 | 41 | 42 | public override int GetHashCode() 43 | { 44 | unchecked 45 | { 46 | var hashCode = X; 47 | hashCode = (hashCode * 397) ^ Y; 48 | hashCode = (hashCode * 397) ^ Width; 49 | hashCode = (hashCode * 397) ^ Height; 50 | return hashCode; 51 | } 52 | } 53 | 54 | public static Rectangle ToRectangle(PRectangle pRectangle) 55 | { 56 | return new Rectangle 57 | { 58 | Height = pRectangle.Height, 59 | Width = pRectangle.Width, 60 | X = pRectangle.X, 61 | Y = pRectangle.Y 62 | }; 63 | } 64 | } 65 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Models/ProcessDetails.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Diagnostics; 4 | using System.Drawing; 5 | using System.Threading.Tasks; 6 | using BorderlessGaming.Logic.System.Utilities; 7 | using BorderlessGaming.Logic.Windows; 8 | 9 | namespace BorderlessGaming.Logic.Models 10 | { 11 | public class ProcessDetails 12 | { 13 | //public string WindowClass = ""; // note: this isn't used, currently 14 | private IntPtr _windowHandle = IntPtr.Zero; 15 | 16 | public string DescriptionOverride = ""; 17 | public bool MadeBorderless = false; 18 | public int MadeBorderlessAttempts = 0; 19 | public bool Manageable = false; 20 | public bool NoAccess; 21 | public Rectangle OriginalLocation = new Rectangle(); 22 | public WindowStyleFlags OriginalStyleFlagsExtended = 0; 23 | public WindowStyleFlags OriginalStyleFlagsStandard = 0; 24 | public Process Proc; 25 | public string WindowTitle = ""; 26 | 27 | public ProcessDetails(Process p, IntPtr hWnd) 28 | { 29 | Proc = p; 30 | 31 | WindowHandle = hWnd; 32 | WindowTitle = Native.GetWindowTitle(WindowHandle); 33 | // GetWindowTitle(); 34 | 35 | //this.WindowClass = WindowsAPI.Native.GetWindowClassName(this.WindowHandle); // note: this isn't used, currently 36 | } 37 | 38 | private async void GetWindowTitle() 39 | { 40 | await TaskUtilities.StartTaskAndWait(() => { WindowTitle = Native.GetWindowTitle(WindowHandle); }, 41 | Config.Instance.AppSettings.SlowWindowDetection ? 10 : 2); 42 | } 43 | 44 | // Automatically detects changes to the window handle 45 | public IntPtr WindowHandle 46 | { 47 | get 48 | { 49 | try 50 | { 51 | if (ProcessHasExited) 52 | { 53 | return IntPtr.Zero; 54 | } 55 | 56 | if (!Native.IsWindow(_windowHandle)) 57 | { 58 | _windowHandle = Native.GetMainWindowForProcess(Proc).GetAwaiter().GetResult(); 59 | } 60 | } 61 | catch 62 | { 63 | } 64 | 65 | return _windowHandle; 66 | } 67 | set => _windowHandle = value; 68 | } 69 | 70 | public bool ProcessHasExited 71 | { 72 | get 73 | { 74 | try 75 | { 76 | if (NoAccess) 77 | { 78 | return false; 79 | } 80 | 81 | if (Proc != null) 82 | { 83 | return Proc.HasExited; 84 | } 85 | } 86 | catch (Win32Exception) 87 | { 88 | NoAccess = true; 89 | 90 | return false; // Access is denied 91 | } 92 | catch 93 | { 94 | } 95 | 96 | return true; 97 | } 98 | } 99 | 100 | public string BinaryName 101 | { 102 | get 103 | { 104 | try 105 | { 106 | return NoAccess ? "" : Proc.ProcessName; 107 | } 108 | catch 109 | { 110 | NoAccess = true; 111 | } 112 | 113 | return ""; 114 | } 115 | } 116 | 117 | private string WindowTitleForComparison => WindowTitle.Trim().ToLower().Replace(" ", "").Replace("_", ""); 118 | 119 | private string BinaryNameForComparison => BinaryName.Trim().ToLower().Replace(" ", "").Replace("_", ""); 120 | 121 | // Detect whether or not the window needs border changes 122 | public async Task WindowHasTargetableStyles() 123 | { 124 | var targetable = false; 125 | await TaskUtilities.StartTaskAndWait(() => 126 | { 127 | var styleCurrentWindowStandard = Native.GetWindowLong(WindowHandle, WindowLongIndex.Style); 128 | var styleCurrentWindowExtended = Native.GetWindowLong(WindowHandle, WindowLongIndex.ExtendedStyle); 129 | targetable = styleCurrentWindowStandard.HasTargetStyles() || styleCurrentWindowExtended.HasExtendedStyles(); 130 | }, Config.Instance.AppSettings.SlowWindowDetection ? 10 : 2); 131 | return targetable; 132 | } 133 | 134 | public override string ToString() // so that the ListView control knows how to display this object to the user 135 | { 136 | try 137 | { 138 | if (!string.IsNullOrEmpty(DescriptionOverride)) 139 | { 140 | return DescriptionOverride; 141 | } 142 | 143 | if (Config.Instance.AppSettings.ViewAllProcessDetails) 144 | { 145 | var styleCurrentWindowStandard = Native.GetWindowLong(WindowHandle, WindowLongIndex.Style); 146 | var styleCurrentWindowExtended = Native.GetWindowLong(WindowHandle, WindowLongIndex.ExtendedStyle); 147 | 148 | var extraDetails = 149 | $" [{(uint) styleCurrentWindowStandard:X8}.{(uint) styleCurrentWindowExtended:X8}]"; 150 | return string.IsNullOrWhiteSpace(WindowTitle.Trim()) 151 | ? $"{BinaryName} [#{Proc.Id}]{extraDetails}" 152 | : $"{WindowTitle.Trim()} [{BinaryName}, #{Proc.Id}]{extraDetails}"; 153 | } 154 | 155 | if (string.IsNullOrWhiteSpace(WindowTitle.Trim())) 156 | { 157 | return BinaryName; 158 | } 159 | 160 | var processNameIsDissimilarToWindowTitle = true; 161 | if (WindowTitleForComparison.Length >= 5) 162 | { 163 | if (BinaryNameForComparison.Length >= 5) 164 | { 165 | if (BinaryNameForComparison.Substring(0, 5) == WindowTitleForComparison.Substring(0, 5)) 166 | { 167 | processNameIsDissimilarToWindowTitle = false; 168 | } 169 | } 170 | } 171 | 172 | return processNameIsDissimilarToWindowTitle 173 | ? $"{WindowTitle.Trim()} [{BinaryName}]" 174 | : WindowTitle.Trim(); 175 | } 176 | catch 177 | { 178 | // ignored 179 | } 180 | 181 | return ""; 182 | } 183 | 184 | 185 | public static implicit operator Process(ProcessDetails pd) 186 | { 187 | return pd?.Proc; 188 | } 189 | 190 | public static implicit operator IntPtr(ProcessDetails pd) 191 | { 192 | return pd?.WindowHandle ?? IntPtr.Zero; 193 | } 194 | } 195 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("BorderlessGaming.Logic")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("BorderlessGaming.Logic")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("f5af80a6-f3f4-4855-a620-22fa5737d019")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace BorderlessGaming.Logic.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("BorderlessGaming.Logic.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.Byte[]. 65 | /// 66 | internal static byte[] blank { 67 | get { 68 | object obj = ResourceManager.GetObject("blank", resourceCulture); 69 | return ((byte[])(obj)); 70 | } 71 | } 72 | 73 | /// 74 | /// Looks up a localized string similar to Error. 75 | /// 76 | internal static string ErrorHeader { 77 | get { 78 | return ResourceManager.GetString("ErrorHeader", resourceCulture); 79 | } 80 | } 81 | 82 | /// 83 | /// Looks up a localized string similar to Borderless Gaming encountered an error checking for updates. Restart the program to try again.. 84 | /// 85 | internal static string ErrorUpdates { 86 | get { 87 | return ResourceManager.GetString("ErrorUpdates", resourceCulture); 88 | } 89 | } 90 | 91 | /// 92 | /// Looks up a localized string similar to A new version of Borderless Gaming is available. Would you like to go to the release page?. 93 | /// 94 | internal static string InfoUpdateAvailable { 95 | get { 96 | return ResourceManager.GetString("InfoUpdateAvailable", resourceCulture); 97 | } 98 | } 99 | 100 | /// 101 | /// Looks up a localized string similar to Update available. 102 | /// 103 | internal static string InfoUpdatesHeader { 104 | get { 105 | return ResourceManager.GetString("InfoUpdatesHeader", resourceCulture); 106 | } 107 | } 108 | 109 | /// 110 | /// Looks up a localized string similar to Do you really want to hide the mouse cursor? 111 | /// 112 | ///You may have a difficult time finding the mouse again once it's hidden. 113 | /// 114 | ///If you have enabled the global hotkey to toggle the mouse cursor visibility, you can press [Win + Scroll Lock] to toggle the mouse cursor on. 115 | /// 116 | ///Also, exiting Borderless Gaming will immediately restore your mouse cursor.. 117 | /// 118 | internal static string MainWindow_toggleMouseCursorVisibilityToolStripMenuItem_Click_ { 119 | get { 120 | return ResourceManager.GetString("MainWindow_toggleMouseCursorVisibilityToolStripMenuItem_Click_", resourceCulture); 121 | } 122 | } 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Resources/blank.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/BorderlessGaming.Logic/Resources/blank.cur -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Steam/SteamAPI.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.Runtime.ExceptionServices; 4 | using BorderlessGaming.Logic.Extensions; 5 | using Facepunch.Steamworks; 6 | 7 | namespace BorderlessGaming.Logic.Steam 8 | { 9 | public static class SteamApi 10 | { 11 | public static bool IsLoaded; 12 | 13 | ///The Borderless Gaming AppID 14 | private static readonly uint _appId = 388080; 15 | 16 | private static Client _client; 17 | private static Auth.Ticket _ticket; 18 | 19 | public static bool LaunchedBySteam() 20 | { 21 | var parentName = Process.GetCurrentProcess().Parent()?.ProcessName; 22 | return !string.IsNullOrWhiteSpace(parentName) && parentName.Equals("Steam"); 23 | } 24 | 25 | //I noticed if the API dll is messed up the process just crashes. 26 | [HandleProcessCorruptedStateExceptions] 27 | public static void Init() 28 | { 29 | try 30 | { 31 | _client = new Client(_appId); 32 | if (_client == null) 33 | { 34 | IsLoaded = false; 35 | return; 36 | } 37 | _ticket = _client.Auth.GetAuthSessionTicket(); 38 | IsLoaded = _ticket != null; 39 | } 40 | catch (Exception) 41 | { 42 | Debug.WriteLine("Failed to load Steam."); 43 | } 44 | } 45 | 46 | public static bool UnlockAchievement(string identifier) 47 | { 48 | var achievement = new Achievement(_client, 0); 49 | return !achievement.State && achievement.Trigger(); 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/System/AppEnvironment.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.DirectoryServices.AccountManagement; 4 | using System.DirectoryServices.ActiveDirectory; 5 | using System.IO; 6 | using System.Linq; 7 | using System.Reflection; 8 | using System.Security.Principal; 9 | using System.Windows.Forms; 10 | 11 | namespace BorderlessGaming.Logic.System 12 | { 13 | public class AppEnvironment 14 | { 15 | public static string Path = Assembly.GetEntryAssembly().Location; 16 | public static string LanguagePath = global::System.IO.Path.Combine(DataPath, "Languages"); 17 | public static string ConfigPath = global::System.IO.Path.Combine(DataPath, "config.bin"); 18 | 19 | public static string DataPath 20 | { 21 | get 22 | { 23 | var versionInfo = FileVersionInfo.GetVersionInfo(Path); 24 | var userAppData = GetUserAppDataPath(); 25 | try 26 | { 27 | // No version! 28 | return Environment.GetEnvironmentVariable("AppData").Trim() + "\\" + versionInfo.CompanyName + 29 | "\\" + versionInfo.ProductName; 30 | } 31 | catch 32 | { 33 | } 34 | 35 | try 36 | { 37 | // Version, but chopped out 38 | return userAppData.Substring(0, userAppData.LastIndexOf("\\")); 39 | } 40 | catch 41 | { 42 | try 43 | { 44 | // App launch folder 45 | var directoryInfo = new FileInfo(Path).Directory; 46 | var dir = directoryInfo.ToString(); 47 | return Path.Substring(0, dir.LastIndexOf("\\", StringComparison.Ordinal)); 48 | } 49 | catch 50 | { 51 | try 52 | { 53 | // Current working folder 54 | return Environment.CurrentDirectory; 55 | } 56 | catch 57 | { 58 | try 59 | { 60 | // Desktop 61 | return Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 62 | } 63 | catch 64 | { 65 | // Also current working folder 66 | return "."; 67 | } 68 | } 69 | } 70 | } 71 | } 72 | } 73 | 74 | 75 | private static string GetUserAppDataPath() 76 | { 77 | var path = string.Empty; 78 | 79 | try 80 | { 81 | var assm = Assembly.GetEntryAssembly(); 82 | var at = typeof(AssemblyCompanyAttribute); 83 | var r = assm.GetCustomAttributes(at, false); 84 | var ct = (AssemblyCompanyAttribute) r[0]; 85 | path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 86 | path += @"\" + ct.Company; 87 | path += @"\" + assm.GetName().Version; 88 | } 89 | catch 90 | { 91 | // 92 | } 93 | return path; 94 | } 95 | } 96 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/System/AutoStart.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Windows.Forms; 4 | using Microsoft.Win32.TaskScheduler; 5 | 6 | namespace BorderlessGaming.Logic.System 7 | { 8 | public static class AutoStart 9 | { 10 | private static readonly string _taskName = "BorderlessGaming"; 11 | 12 | /// 13 | /// So we can clean up peoples old startup shortcuts 14 | /// 15 | /// 16 | /// 17 | public static bool DeleteLegacy(string shortcutPath) 18 | { 19 | if (!string.IsNullOrEmpty(shortcutPath) && File.Exists(shortcutPath)) 20 | { 21 | File.Delete(shortcutPath); 22 | return true; 23 | } 24 | 25 | return false; 26 | } 27 | 28 | private static string GetShortcutPath(Environment.SpecialFolder specialFolder) 29 | { 30 | var folderPath = Environment.GetFolderPath(specialFolder); 31 | var shortcutPath = Path.Combine(folderPath, Application.ProductName); 32 | if (!Path.GetExtension(shortcutPath).Equals(".lnk", StringComparison.InvariantCultureIgnoreCase)) 33 | { 34 | shortcutPath = Path.ChangeExtension(shortcutPath, "lnk"); 35 | } 36 | return shortcutPath; 37 | } 38 | 39 | public static void Setup(bool setup, string silentMinimize) 40 | { 41 | DeleteLegacy(GetShortcutPath(Environment.SpecialFolder.Startup)); 42 | if (setup) 43 | { 44 | CreateEntry(silentMinimize); 45 | } 46 | else 47 | { 48 | DeleteStartup(); 49 | } 50 | } 51 | 52 | private static void DeleteStartup() 53 | { 54 | using (var sched = new TaskService()) 55 | { 56 | var t = sched.GetTask(_taskName); 57 | var taskExists = t != null; 58 | if (taskExists) 59 | { 60 | sched.RootFolder.DeleteTask(_taskName, false); 61 | } 62 | } 63 | } 64 | 65 | 66 | private static void CreateEntry(string silentMinimize) 67 | { 68 | try 69 | { 70 | using (var sched = new TaskService()) 71 | { 72 | var t = sched.GetTask(_taskName); 73 | var taskExists = t != null; 74 | if (taskExists) 75 | { 76 | return; 77 | } 78 | var td = TaskService.Instance.NewTask(); 79 | td.Principal.RunLevel = TaskRunLevel.Highest; 80 | td.RegistrationInfo.Author = "Andrew Sampson"; 81 | td.RegistrationInfo.Date = new DateTime(); 82 | td.RegistrationInfo.Description = "Starts Borderless Gaming when booting."; 83 | //wait 10 seconds until after login is complete to boot 84 | var logT = new LogonTrigger {Delay = new TimeSpan(0, 0, 0, 10)}; 85 | td.Triggers.Add(logT); 86 | td.Actions.Add(new ExecAction(AppEnvironment.Path, silentMinimize, null)); 87 | td.Settings.DisallowStartIfOnBatteries = false; 88 | td.Settings.StopIfGoingOnBatteries = false; 89 | TaskService.Instance.RootFolder.RegisterTaskDefinition(_taskName, td); 90 | Console.WriteLine("Task Registered"); 91 | } 92 | } 93 | catch (Exception) 94 | { 95 | // MessageBox.Show(ex.Message); 96 | } 97 | } 98 | } 99 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/System/StartupOptions.cs: -------------------------------------------------------------------------------- 1 | using CommandLine; 2 | using CommandLine.Text; 3 | 4 | namespace BorderlessGaming.Logic.System 5 | { 6 | public class StartupOptions 7 | { 8 | [Option('m', "minimize", DefaultValue = false, HelpText = "Starts the application in a minimized state.")] 9 | public bool Minimize { get; set; } 10 | 11 | [Option('s', "silent", DefaultValue = false, HelpText = "Starts the application silently.")] 12 | public bool Silent { get; set; } 13 | 14 | [Option('p', "steam", DefaultValue = false, HelpText = "Used by the Steam client.")] 15 | public bool IsSteam { get; set; } 16 | 17 | 18 | [ParserState] 19 | public IParserState LastParserState { get; set; } 20 | 21 | [HelpOption] 22 | public string GetUsage() 23 | { 24 | return HelpText.AutoBuild(this, current => HelpText.DefaultParsingErrorsHandler(this, current)); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /BorderlessGaming.Logic/System/Tools.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.Drawing; 4 | using System.IO; 5 | using System.Net.NetworkInformation; 6 | using System.Reflection; 7 | using System.Windows.Forms; 8 | using System.Xml; 9 | using BorderlessGaming.Logic.Core; 10 | using BorderlessGaming.Logic.Models; 11 | using BorderlessGaming.Logic.Properties; 12 | using BorderlessGaming.Logic.Steam; 13 | using BorderlessGaming.Logic.System.Utilities; 14 | using Ionic.Zip; 15 | 16 | 17 | namespace BorderlessGaming.Logic.System 18 | { 19 | public static class Tools 20 | { 21 | private static bool HasInternetConnection 22 | { 23 | // There is no way you can reliably check if there is an internet connection, but we can come close 24 | get 25 | { 26 | var result = false; 27 | 28 | try 29 | { 30 | if (NetworkInterface.GetIsNetworkAvailable()) 31 | { 32 | using (var p = new Ping()) 33 | { 34 | var pingReply = p.Send("8.8.4.4", 15000); 35 | if (pingReply != null) 36 | { 37 | var reply = p.Send("8.8.8.8", 15000); 38 | if (reply != null) 39 | { 40 | var send = p.Send("4.2.2.1", 15000); 41 | if (send != null) 42 | { 43 | result = reply.Status == IPStatus.Success || 44 | pingReply.Status == IPStatus.Success || 45 | send.Status == IPStatus.Success; 46 | } 47 | } 48 | } 49 | } 50 | } 51 | } 52 | catch 53 | { 54 | // ignored 55 | } 56 | return result; 57 | } 58 | } 59 | 60 | public static void Setup() 61 | { 62 | if (!Directory.Exists(AppEnvironment.DataPath)) 63 | { 64 | Directory.CreateDirectory(AppEnvironment.DataPath); 65 | } 66 | if (!Debugger.IsAttached) 67 | { 68 | ExceptionHandler.AddGlobalHandlers(); 69 | } 70 | Config.Load(); 71 | LanguageManager.Load(); 72 | if (!Config.Instance.AppSettings.DisableSteamIntegration) 73 | { 74 | SteamApi.Init(); 75 | } 76 | } 77 | 78 | public static Rectangle GetContainingRectangle(Rectangle a, Rectangle b) 79 | { 80 | var amin = new Point(a.X, a.Y); 81 | var amax = new Point(a.X + a.Width, a.Y + a.Height); 82 | var bmin = new Point(b.X, b.Y); 83 | var bmax = new Point(b.X + b.Width, b.Y + b.Height); 84 | var nmin = new Point(0, 0); 85 | var nmax = new Point(0, 0); 86 | 87 | nmin.X = amin.X < bmin.X ? amin.X : bmin.X; 88 | nmin.Y = amin.Y < bmin.Y ? amin.Y : bmin.Y; 89 | nmax.X = amax.X > bmax.X ? amax.X : bmax.X; 90 | nmax.Y = amax.Y > bmax.Y ? amax.Y : bmax.Y; 91 | 92 | return new Rectangle(nmin, new Size(nmax.X - nmin.X, nmax.Y - nmin.Y)); 93 | } 94 | 95 | 96 | public static void GotoSite(string url) 97 | { 98 | try 99 | { 100 | Process.Start(url); 101 | } 102 | catch 103 | { 104 | // ignored 105 | } 106 | } 107 | 108 | public static void ExtractZipFile(string archiveFilenameIn, string password, string outFolder) 109 | { 110 | using (var zip = ZipFile.Read(archiveFilenameIn)) 111 | { 112 | zip.ExtractAll(outFolder, ExtractExistingFileAction.OverwriteSilently); 113 | } 114 | } 115 | 116 | public static void CheckForUpdates() 117 | { 118 | if (HasInternetConnection) 119 | { 120 | try 121 | { 122 | var releasePageUrl = ""; 123 | Version newVersion = null; 124 | const string versionConfig = "https://raw.github.com/Codeusa/Borderless-Gaming/master/version.xml"; 125 | var reader = new XmlTextReader(versionConfig); 126 | reader.MoveToContent(); 127 | var elementName = ""; 128 | try 129 | { 130 | if (reader.NodeType == XmlNodeType.Element && reader.Name == "borderlessgaming") 131 | { 132 | while (reader.Read()) 133 | { 134 | switch (reader.NodeType) 135 | { 136 | case XmlNodeType.Element: 137 | elementName = reader.Name; 138 | break; 139 | default: 140 | if (reader.NodeType == XmlNodeType.Text && reader.HasValue) 141 | { 142 | switch (elementName) 143 | { 144 | case "version": 145 | newVersion = new Version(reader.Value); 146 | break; 147 | case "url": 148 | releasePageUrl = reader.Value; 149 | break; 150 | } 151 | } 152 | break; 153 | } 154 | } 155 | } 156 | } 157 | catch (Exception) 158 | { 159 | MessageBox.Show(Resources.ErrorUpdates, Resources.ErrorHeader, MessageBoxButtons.OK, 160 | MessageBoxIcon.Error); 161 | } 162 | finally 163 | { 164 | reader.Close(); 165 | } 166 | 167 | var applicationVersion = Assembly.GetEntryAssembly().GetName().Version; 168 | if (applicationVersion.CompareTo(newVersion) < 0) 169 | { 170 | if (MessageBox.Show(Resources.InfoUpdateAvailable, Resources.InfoUpdatesHeader, 171 | MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) 172 | { 173 | GotoSite(releasePageUrl); 174 | } 175 | } 176 | } 177 | catch 178 | { 179 | } 180 | } 181 | } 182 | } 183 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/System/Utilities/ExceptionHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.IO; 4 | using System.Windows.Forms; 5 | using ProtoBuf; 6 | 7 | namespace BorderlessGaming.Logic.System.Utilities 8 | { 9 | [ProtoContract] 10 | internal class ExceptionModel 11 | { 12 | [ProtoMember(1)] 13 | public string Message { get; set; } 14 | [ProtoMember(2)] 15 | public string Type { get; set; } 16 | [ProtoMember(3)] 17 | public string StackTrace { get; set; } 18 | } 19 | public static class ExceptionHandler 20 | { 21 | private static readonly string LogsPath = Path.Combine(AppEnvironment.DataPath, "Logs"); 22 | 23 | public static void AddGlobalHandlers() 24 | { 25 | AppDomain.CurrentDomain.UnhandledException += (sender, args) => 26 | { 27 | try 28 | { 29 | if (!Directory.Exists(LogsPath)) 30 | { 31 | Directory.CreateDirectory(LogsPath); 32 | } 33 | 34 | var filePath = Path.Combine(LogsPath, 35 | $"UnhandledException_{DateTime.Now.ToShortDateString().Replace("/", "-")}.crash"); 36 | 37 | var exception = (Exception) args.ExceptionObject; 38 | using (var file = File.Create(filePath)) 39 | { 40 | Serializer.Serialize(file, new ExceptionModel 41 | { 42 | Message = exception.Message, 43 | StackTrace = exception.StackTrace, 44 | Type = exception.GetType().Name 45 | }); 46 | } 47 | MessageBox.Show($"An Unhandled Exception was Caught and Logged to:\r\n{filePath}", "Exception Caught", MessageBoxButtons.OK, MessageBoxIcon.Error); 48 | } 49 | catch 50 | { 51 | // 52 | Debug.WriteLine("Exception failed to write."); 53 | } 54 | }; 55 | 56 | 57 | Application.ThreadException += (sender, args) => 58 | { 59 | try 60 | { 61 | if (!Directory.Exists(LogsPath)) 62 | { 63 | Directory.CreateDirectory(LogsPath); 64 | } 65 | 66 | var filePath = Path.Combine(LogsPath, 67 | $"ThreadException_{DateTime.Now.ToShortDateString().Replace("/", "-")}.crash"); 68 | 69 | var exception = args.Exception; 70 | using (var file = File.Create(filePath)) 71 | { 72 | Serializer.Serialize(file, new ExceptionModel 73 | { 74 | Message = exception.Message, 75 | StackTrace = exception.StackTrace, 76 | Type = exception.GetType().Name 77 | }); 78 | } 79 | MessageBox.Show( 80 | $"An Unhandled Thread Exception was Caught and Logged to:\r\n{filePath}", 81 | "Thread Exception Caught", MessageBoxButtons.OK, MessageBoxIcon.Error); 82 | } 83 | catch 84 | { 85 | } 86 | }; 87 | } 88 | } 89 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/System/Utilities/TaskUtilities.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading; 6 | using System.Threading.Tasks; 7 | 8 | namespace BorderlessGaming.Logic.System.Utilities 9 | { 10 | public static class TaskUtilities 11 | { 12 | public static async Task StartTaskAndWait(Action target) 13 | { 14 | await StartTaskAndWait(target, 0); 15 | } 16 | 17 | public static async Task WaitAndStartTaskAsync(Action target, int iHowLongToWait) 18 | { 19 | var ts = new CancellationTokenSource(); 20 | var ct = ts.Token; 21 | await Task.Run(async () => 22 | { 23 | await Task.Delay(TimeSpan.FromSeconds(iHowLongToWait), ct); 24 | target(); 25 | }, ct); 26 | } 27 | 28 | public static async Task StartTaskAndWait(Action target, int iHowLongToWait) 29 | { 30 | try 31 | { 32 | await Task.Run(async () => 33 | { 34 | var ts = new CancellationTokenSource(); 35 | var ct = ts.Token; 36 | var task = Task.Factory.StartNew(target, ct); 37 | var dtStartTime = DateTime.Now; 38 | while (true) 39 | { 40 | if (task.IsCompleted || task.IsCanceled || task.IsFaulted) 41 | { 42 | break; 43 | } 44 | 45 | if (iHowLongToWait > 0) 46 | { 47 | if ((DateTime.Now - dtStartTime).TotalSeconds > iHowLongToWait) 48 | { 49 | try 50 | { 51 | ts.Cancel(); 52 | } 53 | catch 54 | { 55 | // ignored 56 | } 57 | 58 | break; 59 | } 60 | } 61 | 62 | await Task.Delay(15, ct); 63 | //MainWindow.DoEvents(); 64 | } 65 | }); 66 | } 67 | catch (Exception) 68 | { 69 | // 70 | } 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Windows/ForegroundManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Diagnostics; 4 | using System.Drawing; 5 | using System.Linq; 6 | using System.Runtime.InteropServices; 7 | using System.Text; 8 | using BorderlessGaming.Logic.Models; 9 | 10 | namespace BorderlessGaming.Logic.Windows 11 | { 12 | public static class ForegroundManager 13 | { 14 | static Native.WinEventDelegate _dele = null; 15 | private static IntPtr _mHhook; 16 | 17 | public static void Subscribe() 18 | { 19 | _dele = WinEventProc; 20 | _mHhook = Native.SetWinEventHook(EventSystemForeground, EventSystemForeground, IntPtr.Zero, _dele, 0, 0, WineventOutofcontext); 21 | } 22 | 23 | private const uint WineventOutofcontext = 0; 24 | private const uint EventSystemForeground = 3; 25 | 26 | 27 | public static void WinEventProc(IntPtr hWinEventHook, uint eventType, IntPtr hwnd, int idObject, int idChild, uint dwEventThread, uint dwmsEventTime) 28 | { 29 | if (Config.Instance.Favorites != null) 30 | { 31 | try 32 | { 33 | var handle = Native.GetForegroundWindow(); 34 | Native.GetWindowThreadProcessId(handle, out uint processId); 35 | var details = new ProcessDetails(Process.GetProcessById((int)processId), handle); 36 | foreach (var fav in Config.Instance.Favorites.Where(favorite => favorite.IsRunning && favorite.MuteInBackground)) 37 | { 38 | 39 | if (fav.Matches(details)) 40 | { 41 | if (Native.IsMuted((int) processId)) 42 | { 43 | Native.UnMuteProcess((int) processId); 44 | } 45 | } 46 | else 47 | { 48 | if (!Native.IsMuted(fav.RunningId)) 49 | { 50 | Native.MuteProcess(fav.RunningId); 51 | } 52 | } 53 | } 54 | 55 | } 56 | catch (Exception) 57 | { 58 | // 59 | } 60 | } 61 | 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Windows/Security.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using System.Security.Cryptography; 3 | using BorderlessGaming.Logic.Models; 4 | using BorderlessGaming.Logic.System; 5 | using ProtoBuf; 6 | 7 | namespace BorderlessGaming.Logic.Windows 8 | { 9 | public static class Security 10 | { 11 | private static readonly byte[] Salt = {0x33, 0x92, 0x91, 0x12, 0x28, 0x19}; 12 | 13 | public static byte[] Encrypt(byte[] plainText) 14 | { 15 | return ProtectedData.Protect(plainText, Salt, DataProtectionScope.CurrentUser); 16 | } 17 | 18 | public static byte[] Decrypt(byte[] cipher) 19 | { 20 | return ProtectedData.Unprotect(cipher, Salt, DataProtectionScope.CurrentUser); 21 | } 22 | 23 | /// 24 | /// Encrypts the config file, I've seen a trend of people mining the Borderless Gaming favorites list for heuristics. 25 | /// 26 | /// 27 | public static void SaveConfig(Config instance) 28 | { 29 | using (var memoryStream = new MemoryStream()) 30 | { 31 | Serializer.Serialize(memoryStream, instance); 32 | File.WriteAllBytes(AppEnvironment.ConfigPath, memoryStream.ToArray()); 33 | } 34 | } 35 | 36 | 37 | public static Config LoadConfigFile() 38 | { 39 | try 40 | { 41 | using (var memoryStream = new MemoryStream(File.ReadAllBytes(AppEnvironment.ConfigPath))) 42 | { 43 | return Serializer.Deserialize(memoryStream); 44 | } 45 | } 46 | catch (global::System.Exception) 47 | { 48 | File.Delete(AppEnvironment.ConfigPath); 49 | SaveConfig(new Config()); 50 | return LoadConfigFile(); 51 | } 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/Windows/Windows.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Drawing; 5 | using BorderlessGaming.Logic.Models; 6 | 7 | namespace BorderlessGaming.Logic.Windows 8 | { 9 | public class Windows 10 | { 11 | /// 12 | /// Query the windows 13 | /// 14 | /// 15 | /// A callback that's called when a new window is found. This way the functionality is the same as 16 | /// before 17 | /// 18 | /// A set of current window ptrs 19 | public void QueryProcessesWithWindows(Action callback, HashSet windowPtrSet) 20 | { 21 | var ptrList = new List(); 22 | 23 | bool Del(IntPtr hwnd, uint lParam) 24 | { 25 | return GetMainWindowForProcess_EnumWindows(ptrList, hwnd, lParam); 26 | } 27 | 28 | Native.EnumWindows(Del, 0); 29 | Native.EnumWindows(Del, 1); 30 | foreach (var ptr in ptrList) 31 | { 32 | if (Native.GetWindowRect(ptr, out Native.Rect rect)) 33 | { 34 | if (((Rectangle) rect).IsEmpty) 35 | { 36 | continue; 37 | } 38 | //check if we already have this window in the list so we can avoid calling 39 | //GetWindowThreadProcessId(its costly) 40 | if (windowPtrSet.Contains(ptr.ToInt64())) 41 | { 42 | continue; 43 | } 44 | uint processId; 45 | Native.GetWindowThreadProcessId(ptr, out processId); 46 | callback(new ProcessDetails(Process.GetProcessById((int) processId), ptr) 47 | { 48 | Manageable = true 49 | }); 50 | } 51 | } 52 | } 53 | 54 | private static bool GetMainWindowForProcess_EnumWindows(List ptrList, IntPtr hWndEnumerated, 55 | uint lParam) 56 | { 57 | var styleCurrentWindowStandard = Native.GetWindowLong(hWndEnumerated, WindowLongIndex.Style); 58 | 59 | switch (lParam) 60 | { 61 | case 0: 62 | if (Native.IsWindowVisible(hWndEnumerated)) 63 | { 64 | if 65 | ( 66 | (styleCurrentWindowStandard & WindowStyleFlags.Caption) > 0 67 | && ( 68 | (styleCurrentWindowStandard & WindowStyleFlags.Border) > 0 69 | || (styleCurrentWindowStandard & WindowStyleFlags.ThickFrame) > 0 70 | ) 71 | ) 72 | { 73 | ptrList.Add(hWndEnumerated); 74 | } 75 | } 76 | break; 77 | case 1: 78 | if (Native.IsWindowVisible(hWndEnumerated)) 79 | { 80 | if ((uint) styleCurrentWindowStandard != 0) 81 | { 82 | ptrList.Add(hWndEnumerated); 83 | } 84 | } 85 | break; 86 | } 87 | return true; 88 | } 89 | } 90 | } -------------------------------------------------------------------------------- /BorderlessGaming.Logic/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /BorderlessGaming.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.26430.6 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BorderlessGaming.Logic", "BorderlessGaming.Logic\BorderlessGaming.Logic.csproj", "{F5AF80A6-F3F4-4855-A620-22FA5737D019}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BorderlessGaming", "BorderlessGaming\BorderlessGaming.csproj", "{E389C332-9BF5-4BB7-A131-7E230EEB2AE3}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|Any CPU = Debug|Any CPU 13 | Debug|x64 = Debug|x64 14 | Debug|x86 = Debug|x86 15 | Release|Any CPU = Release|Any CPU 16 | Release|x64 = Release|x64 17 | Release|x86 = Release|x86 18 | EndGlobalSection 19 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 20 | {F5AF80A6-F3F4-4855-A620-22FA5737D019}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 21 | {F5AF80A6-F3F4-4855-A620-22FA5737D019}.Debug|Any CPU.Build.0 = Debug|Any CPU 22 | {F5AF80A6-F3F4-4855-A620-22FA5737D019}.Debug|x64.ActiveCfg = Debug|Any CPU 23 | {F5AF80A6-F3F4-4855-A620-22FA5737D019}.Debug|x64.Build.0 = Debug|Any CPU 24 | {F5AF80A6-F3F4-4855-A620-22FA5737D019}.Debug|x86.ActiveCfg = Debug|Any CPU 25 | {F5AF80A6-F3F4-4855-A620-22FA5737D019}.Debug|x86.Build.0 = Debug|Any CPU 26 | {F5AF80A6-F3F4-4855-A620-22FA5737D019}.Release|Any CPU.ActiveCfg = Release|Any CPU 27 | {F5AF80A6-F3F4-4855-A620-22FA5737D019}.Release|Any CPU.Build.0 = Release|Any CPU 28 | {F5AF80A6-F3F4-4855-A620-22FA5737D019}.Release|x64.ActiveCfg = Release|Any CPU 29 | {F5AF80A6-F3F4-4855-A620-22FA5737D019}.Release|x64.Build.0 = Release|Any CPU 30 | {F5AF80A6-F3F4-4855-A620-22FA5737D019}.Release|x86.ActiveCfg = Release|Any CPU 31 | {F5AF80A6-F3F4-4855-A620-22FA5737D019}.Release|x86.Build.0 = Release|Any CPU 32 | {E389C332-9BF5-4BB7-A131-7E230EEB2AE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 33 | {E389C332-9BF5-4BB7-A131-7E230EEB2AE3}.Debug|Any CPU.Build.0 = Debug|Any CPU 34 | {E389C332-9BF5-4BB7-A131-7E230EEB2AE3}.Debug|x64.ActiveCfg = Debug|Any CPU 35 | {E389C332-9BF5-4BB7-A131-7E230EEB2AE3}.Debug|x64.Build.0 = Debug|Any CPU 36 | {E389C332-9BF5-4BB7-A131-7E230EEB2AE3}.Debug|x86.ActiveCfg = Debug|Any CPU 37 | {E389C332-9BF5-4BB7-A131-7E230EEB2AE3}.Debug|x86.Build.0 = Debug|Any CPU 38 | {E389C332-9BF5-4BB7-A131-7E230EEB2AE3}.Release|Any CPU.ActiveCfg = Release|Any CPU 39 | {E389C332-9BF5-4BB7-A131-7E230EEB2AE3}.Release|Any CPU.Build.0 = Release|Any CPU 40 | {E389C332-9BF5-4BB7-A131-7E230EEB2AE3}.Release|x64.ActiveCfg = Release|Any CPU 41 | {E389C332-9BF5-4BB7-A131-7E230EEB2AE3}.Release|x64.Build.0 = Release|Any CPU 42 | {E389C332-9BF5-4BB7-A131-7E230EEB2AE3}.Release|x86.ActiveCfg = Release|Any CPU 43 | {E389C332-9BF5-4BB7-A131-7E230EEB2AE3}.Release|x86.Build.0 = Release|Any CPU 44 | EndGlobalSection 45 | GlobalSection(SolutionProperties) = preSolution 46 | HideSolutionNode = FALSE 47 | EndGlobalSection 48 | EndGlobal 49 | -------------------------------------------------------------------------------- /BorderlessGaming/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /BorderlessGaming/BorderlessGaming_new.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/BorderlessGaming/BorderlessGaming_new.ico -------------------------------------------------------------------------------- /BorderlessGaming/Forms/AboutForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Windows.Forms; 4 | using BorderlessGaming.Logic.System; 5 | 6 | namespace BorderlessGaming.Forms 7 | { 8 | public partial class AboutForm : Form 9 | { 10 | public AboutForm() 11 | { 12 | InitializeComponent(); 13 | } 14 | 15 | private void AboutFormLoad(object sender, EventArgs e) 16 | { 17 | // removed .Version.ToString(2) in favor of just .ToString() here so we can see the build number now 18 | versionLabel.Text = "Borderless Gaming " + Assembly.GetExecutingAssembly().GetName().Version; 19 | _copyrightLabel.Text = "Copyright © 2014-" + DateTime.Now.Year + " Andrew Sampson"; 20 | } 21 | 22 | #region Project and Maintainer Links 23 | 24 | private void OpenBlog(object sender, LinkLabelLinkClickedEventArgs e) 25 | { 26 | Tools.GotoSite("http://blog.andrew.im/"); 27 | } 28 | 29 | private void OpenSteamGroup(object sender, LinkLabelLinkClickedEventArgs e) 30 | { 31 | Tools.GotoSite("http://steamcommunity.com/app/388080/"); 32 | } 33 | 34 | private void OpenOwnerGithub(object sender, EventArgs e) 35 | { 36 | Tools.GotoSite("https://github.com/Codeusa/"); 37 | } 38 | 39 | private void OpenOwnerSteam(object sender, EventArgs e) 40 | { 41 | Tools.GotoSite("http://steamcommunity.com/id/Andrewmd5/"); 42 | } 43 | 44 | private void OpenGithubRepo(object sender, LinkLabelLinkClickedEventArgs e) 45 | { 46 | Tools.GotoSite("https://github.com/Codeusa/Borderless-Gaming"); 47 | } 48 | 49 | private void _impulserNameTag_Click(object sender, EventArgs e) 50 | { 51 | Tools.GotoSite("https://www.indiegogo.com/projects/the-mad-scientist-scholarship/x/3590458"); 52 | } 53 | 54 | #endregion 55 | 56 | #region Contributers 57 | 58 | private void OpenDmxtGithub(object sender, EventArgs e) 59 | { 60 | Tools.GotoSite("https://github.com/dmxt/"); 61 | } 62 | 63 | private void OpenImpulserGithub(object sender, EventArgs e) 64 | { 65 | Tools.GotoSite("https://github.com/Impulser/"); 66 | } 67 | 68 | private void OpenStackOfPancakesGithub(object sender, EventArgs e) 69 | { 70 | Tools.GotoSite("https://github.com/Stack-of-Pancakes/"); 71 | } 72 | 73 | private void OpenMadpewGithub(object sender, EventArgs e) 74 | { 75 | Tools.GotoSite("https://github.com/madpew/"); 76 | } 77 | 78 | private void OpenPsouza4Github(object sender, EventArgs e) 79 | { 80 | Tools.GotoSite("https://github.com/psouza4/"); 81 | } 82 | 83 | private void OpenPsouza4Steam(object sender, EventArgs e) 84 | { 85 | Tools.GotoSite("http://steamcommunity.com/id/psouza4/"); 86 | } 87 | 88 | private void OpenSecretOnlineGithub(object sender, EventArgs e) 89 | { 90 | Tools.GotoSite("https://github.com/SecretOnline/"); 91 | } 92 | 93 | #endregion 94 | } 95 | } -------------------------------------------------------------------------------- /BorderlessGaming/Forms/AboutForm.de.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | Steam Gruppe: 123 | 124 | 125 | Über... 126 | 127 | -------------------------------------------------------------------------------- /BorderlessGaming/Forms/DesktopAreaSelector.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace BorderlessGaming.Forms 2 | { 3 | partial class DesktopAreaSelector 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DesktopAreaSelector)); 32 | this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); 33 | this.SuspendLayout(); 34 | // 35 | // DesktopAreaSelector 36 | // 37 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 38 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 39 | this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); 40 | this.ClientSize = new System.Drawing.Size(500, 400); 41 | this.ControlBox = false; 42 | this.Cursor = System.Windows.Forms.Cursors.Arrow; 43 | this.DoubleBuffered = true; 44 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 45 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 46 | this.Name = "DesktopAreaSelector"; 47 | this.Opacity = 0.1D; 48 | this.Text = "DesktopAreaSelector"; 49 | this.TransparencyKey = System.Drawing.Color.White; 50 | this.Load += new System.EventHandler(this.DesktopAreaSelector_Load); 51 | this.Shown += new System.EventHandler(this.DesktopAreaSelector_Shown); 52 | this.ResumeLayout(false); 53 | 54 | } 55 | 56 | #endregion 57 | 58 | private System.Windows.Forms.SaveFileDialog saveFileDialog1; 59 | 60 | } 61 | } 62 | 63 | -------------------------------------------------------------------------------- /BorderlessGaming/Forms/InputText.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | 4 | namespace BorderlessGaming.Forms 5 | { 6 | public partial class InputText : Form 7 | { 8 | public InputText() 9 | { 10 | InitializeComponent(); 11 | } 12 | 13 | public string Title 14 | { 15 | get => Text.Trim(); 16 | set => Text = value.Trim(); 17 | } 18 | 19 | public string Input 20 | { 21 | get => txtInput.Text.Trim(); 22 | set => txtInput.Text = value.Trim(); 23 | } 24 | 25 | public string Instructions 26 | { 27 | get => lblInstructions.Text.Trim(); 28 | set => lblInstructions.Text = value.Trim(); 29 | } 30 | 31 | private void frmInputText_Shown(object sender, EventArgs e) 32 | { 33 | txtInput.Focus(); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /BorderlessGaming/Forms/InputText.designer.cs: -------------------------------------------------------------------------------- 1 | namespace BorderlessGaming.Forms 2 | { 3 | partial class InputText 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InputText)); 32 | this.lblInstructions = new System.Windows.Forms.Label(); 33 | this.txtInput = new System.Windows.Forms.TextBox(); 34 | this.btnOK = new System.Windows.Forms.Button(); 35 | this.btnCancel = new System.Windows.Forms.Button(); 36 | this.SuspendLayout(); 37 | // 38 | // lblInstructions 39 | // 40 | resources.ApplyResources(this.lblInstructions, "lblInstructions"); 41 | this.lblInstructions.Name = "lblInstructions"; 42 | // 43 | // txtInput 44 | // 45 | resources.ApplyResources(this.txtInput, "txtInput"); 46 | this.txtInput.Name = "txtInput"; 47 | // 48 | // btnOK 49 | // 50 | resources.ApplyResources(this.btnOK, "btnOK"); 51 | this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; 52 | this.btnOK.Name = "btnOK"; 53 | this.btnOK.UseVisualStyleBackColor = true; 54 | // 55 | // btnCancel 56 | // 57 | resources.ApplyResources(this.btnCancel, "btnCancel"); 58 | this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; 59 | this.btnCancel.Name = "btnCancel"; 60 | this.btnCancel.UseVisualStyleBackColor = true; 61 | // 62 | // InputText 63 | // 64 | this.AcceptButton = this.btnOK; 65 | resources.ApplyResources(this, "$this"); 66 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 67 | this.CancelButton = this.btnCancel; 68 | this.Controls.Add(this.btnCancel); 69 | this.Controls.Add(this.btnOK); 70 | this.Controls.Add(this.txtInput); 71 | this.Controls.Add(this.lblInstructions); 72 | this.MaximizeBox = false; 73 | this.MinimizeBox = false; 74 | this.Name = "InputText"; 75 | this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show; 76 | this.Shown += new System.EventHandler(this.frmInputText_Shown); 77 | this.ResumeLayout(false); 78 | this.PerformLayout(); 79 | 80 | } 81 | 82 | #endregion 83 | 84 | private System.Windows.Forms.Label lblInstructions; 85 | private System.Windows.Forms.TextBox txtInput; 86 | private System.Windows.Forms.Button btnOK; 87 | private System.Windows.Forms.Button btnCancel; 88 | } 89 | } -------------------------------------------------------------------------------- /BorderlessGaming/Forms/Rainway.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace BorderlessGaming.Forms 2 | { 3 | partial class Rainway 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Rainway)); 32 | this.SuspendLayout(); 33 | // 34 | // Rainway 35 | // 36 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 37 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 38 | this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage"))); 39 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; 40 | this.ClientSize = new System.Drawing.Size(930, 495); 41 | this.DoubleBuffered = true; 42 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; 43 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 44 | this.Name = "Rainway"; 45 | this.ShowInTaskbar = false; 46 | this.StartPosition = System.Windows.Forms.FormStartPosition.WindowsDefaultBounds; 47 | this.Text = "Rainway Game Streaming - Play Anywhere"; 48 | this.TopMost = true; 49 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Rainway_FormClosing); 50 | this.Load += new System.EventHandler(this.Rainway_Load); 51 | this.Click += new System.EventHandler(this.Rainway_Click); 52 | this.MouseEnter += new System.EventHandler(this.Rainway_MouseEnter); 53 | this.ResumeLayout(false); 54 | 55 | } 56 | 57 | #endregion 58 | } 59 | } -------------------------------------------------------------------------------- /BorderlessGaming/Forms/Rainway.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | using BorderlessGaming.Logic.Models; 11 | using BorderlessGaming.Logic.System; 12 | 13 | namespace BorderlessGaming.Forms 14 | { 15 | public partial class Rainway : Form 16 | { 17 | public Rainway() 18 | { 19 | SetStyle(ControlStyles.OptimizedDoubleBuffer, true); 20 | InitializeComponent(); 21 | } 22 | 23 | private void Rainway_Load(object sender, EventArgs e) 24 | { 25 | 26 | } 27 | 28 | private void Rainway_Click(object sender, EventArgs e) 29 | { 30 | Tools.GotoSite("https://rainway.io/?ref=borderlessgaming2"); 31 | this.Close(); 32 | } 33 | 34 | private void checkBox1_CheckedChanged(object sender, EventArgs e) 35 | { 36 | var checkbox = (CheckBox) sender; 37 | Config.Instance.AppSettings.ShowAdOnStart = checkbox.Checked != true; 38 | } 39 | 40 | private void Rainway_MouseEnter(object sender, EventArgs e) 41 | { 42 | Cursor = Cursors.Hand; 43 | } 44 | 45 | private void Rainway_FormClosing(object sender, FormClosingEventArgs e) 46 | { 47 | Config.Instance.AppSettings.ShowAdOnStart = false; 48 | Config.Save(); 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /BorderlessGaming/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using System.Windows.Forms; 6 | using BorderlessGaming.Forms; 7 | using BorderlessGaming.Logic.Models; 8 | using BorderlessGaming.Logic.System; 9 | using BorderlessGaming.Logic.Windows; 10 | 11 | namespace BorderlessGaming 12 | { 13 | static class Program 14 | { 15 | /// 16 | /// The main entry point for the application. 17 | /// 18 | [STAThread] 19 | static void Main() 20 | { 21 | 22 | Application.EnableVisualStyles(); 23 | Application.SetCompatibleTextRenderingDefault(false); 24 | Tools.Setup(); 25 | //use github updating for non-steam 26 | if (!Config.Instance.StartupOptions.IsSteam && Config.Instance.AppSettings.CheckForUpdates) 27 | { 28 | Tools.CheckForUpdates(); 29 | } 30 | ForegroundManager.Subscribe(); 31 | Application.Run(new MainWindow()); 32 | 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /BorderlessGaming/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Resources; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | 9 | [assembly: AssemblyTitle("Borderless Gaming")] 10 | [assembly: AssemblyDescription("Play your favorite games in a borderless window; no more time-consuming Alt-Tabs!")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("Andrew Sampson")] 13 | [assembly: AssemblyProduct("Borderless Gaming")] 14 | [assembly: AssemblyCopyright("Copyright © 2014-2018 Andrew Sampson")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | 26 | [assembly: Guid("a4ec5be3-e7a6-4d82-825a-b697248925dc")] 27 | 28 | // Version information for an assembly consists of the following four values: 29 | // 30 | // Major Version 31 | // Minor Version 32 | // Build Number 33 | // Revision 34 | // 35 | // You can specify all the values or you can default the Build and Revision Numbers 36 | // by using the '*' as shown below: 37 | // [assembly: AssemblyVersion("1.0.*")] 38 | 39 | [assembly: AssemblyVersion("9.5.6.1328")] 40 | [assembly: AssemblyFileVersion("9.5.6.1328")] 41 | [assembly: NeutralResourcesLanguage("en-US")] -------------------------------------------------------------------------------- /BorderlessGaming/Properties/Resources.de.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | Favoriten konnten nicht gespeichert werden. Haben Sie die benötigten Berechtigungen?\r\n\r\nFehler-Details: {0} 122 | 123 | 124 | Fehler 125 | 126 | 127 | Bei der Suche nach Updates trat ein Fehler auf. Starten Sie das Programm erneut um die Suche zu wiederholen. 128 | 129 | 130 | Eine neue Version von Borderless Gaming ist verfügbar. Möchten Sie die Downloadseite jetzt besuchen? 131 | 132 | 133 | Aktualisierung verfügbar 134 | 135 | 136 | {0} wurde minimiert. 137 | 138 | -------------------------------------------------------------------------------- /BorderlessGaming/Properties/Resources.ru.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | Невозможно добавить в избранное. У вас есть привилегии?\r\n\r\nПодробности: {0} 122 | 123 | 124 | Ошибка 125 | 126 | 127 | Возникла ошибка при поиске обновлений. Перезапустите программу и попытайтесь снова. 128 | 129 | 130 | Доступна новая версия Borderless Gaming. Хотите перейти на страницу загрузки? 131 | 132 | 133 | Доступно обновление 134 | 135 | 136 | {0} свернут в трей. 137 | 138 | -------------------------------------------------------------------------------- /BorderlessGaming/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace BorderlessGaming.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /BorderlessGaming/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /BorderlessGaming/Resources/RainwayLogo.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/BorderlessGaming/Resources/RainwayLogo.bmp -------------------------------------------------------------------------------- /BorderlessGaming/Resources/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/BorderlessGaming/Resources/add.png -------------------------------------------------------------------------------- /BorderlessGaming/Resources/blank.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/BorderlessGaming/Resources/blank.cur -------------------------------------------------------------------------------- /BorderlessGaming/Resources/bordered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/BorderlessGaming/Resources/bordered.png -------------------------------------------------------------------------------- /BorderlessGaming/Resources/borderless.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/BorderlessGaming/Resources/borderless.png -------------------------------------------------------------------------------- /BorderlessGaming/Resources/globe-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/BorderlessGaming/Resources/globe-green.png -------------------------------------------------------------------------------- /BorderlessGaming/Resources/master-glyph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/BorderlessGaming/Resources/master-glyph.png -------------------------------------------------------------------------------- /BorderlessGaming/Resources/remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/BorderlessGaming/Resources/remove.png -------------------------------------------------------------------------------- /BorderlessGaming/Resources/steam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/BorderlessGaming/Resources/steam.png -------------------------------------------------------------------------------- /BorderlessGaming/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | true 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /BorderlessGaming_new.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/BorderlessGaming_new.ico -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to contribute 2 | 3 | We like to encourage you to contribute to the repository. 4 | This should be as easy as possible for you but there are a few things to consider when contributing. 5 | The following guidelines for contribution should be followed if you want to submit a pull request. 6 | 7 | ## How to prepare 8 | 9 | * You need a [GitHub account](https://github.com/signup/free) 10 | * Submit an [issue ticket](https://github.com/Codeusa/Borderless-Gaming/issues) for your issue if the is no one yet. 11 | * Describe the issue and include steps to reproduce if it's a bug. 12 | * Ensure to mention the earliest version that you know is affected. 13 | * If you are able and want to fix this, fork the repository on GitHub 14 | 15 | ## Make Changes 16 | 17 | * In your forked repository, create a topic branch for your upcoming patch. (e.g. `better favorites detection` or `failed-to-edit-window-fix`) 18 | * Usually this is based on the master branch. 19 | * Create a branch based on master; `git branch 20 | fix/master/my_contribution master` then checkout the new branch with `git 21 | checkout fix/master/my_contribution`. Please avoid working directly on the `master` branch. 22 | * Make sure you stick to the coding style that is used already. 23 | * Make commits of logical units and describe them properly. 24 | * Syntax: 25 | * Two spaces, no tabs. 26 | * No trailing whitespace. Blank lines should not have any space. 27 | * a = b and not a=b. 28 | * Follow the conventions you see used in the source already. 29 | 30 | ## Submit Changes 31 | 32 | * Push your changes to a topic branch in your fork of the repository. 33 | * Open a pull request to the original repository and choose the right original branch you want to patch. 34 | * If not done in commit messages (which you really should do) please reference and update your issue with the code changes. But _please do not close the issue yourself_. 35 | * Even if you have write access to the repository, do not directly push or merge pull-requests. Let another team member review your pull request and approve. 36 | 37 | # Additional Resources 38 | 39 | * [General GitHub documentation](http://help.github.com/) 40 | * [GitHub pull request documentation](http://help.github.com/send-pull-requests/) -------------------------------------------------------------------------------- /Installers/BorderlessGaming_Standalone_Admin.iss: -------------------------------------------------------------------------------- 1 | [Setup] 2 | #define MainProg "../BorderlessGaming/bin/Release/BorderlessGaming.exe" 3 | #define Major 4 | #define Minor 5 | #define Rev 6 | #define Build 7 | #define Version ParseVersion(MainProg, Major, Minor, Rev, Build) 8 | #define AppVersion Str(Major)+"."+Str(Minor)+(Rev > 0 ? "."+Str(Rev) : "") 9 | AppName=Borderless Gaming 10 | AppPublisher=Andrew Sampson 11 | AppCopyright=Copyright (C) 2014-2018 Andrew Sampson 12 | DefaultDirName={pf}\Borderless Gaming 13 | DefaultGroupName=Borderless Gaming 14 | OutputDir=./ 15 | DisableReadyMemo=yes 16 | DisableReadyPage=yes 17 | SetupIconFile=../BorderlessGaming_new.ico 18 | Compression=lzma/ultra64 19 | SolidCompression=yes 20 | LicenseFile=../LICENSE 21 | Uninstallable=yes 22 | ; Needed to modify %AppData% 23 | PrivilegesRequired=admin 24 | DisableProgramGroupPage=yes 25 | DirExistsWarning=no 26 | 27 | ; Shown as installed version (Programs & Features) as well as product version ('Details' tab when right-clicking setup program and choosing 'Properties') 28 | AppVersion={#AppVersion} 29 | ; Stored in the version info for the setup program itself ('Details' tab when right-clicking setup program and choosing 'Properties') 30 | VersionInfoVersion={#Version} 31 | ; Other version info 32 | OutputBaseFilename=BorderlessGaming{#AppVersion}_admin_setup 33 | 34 | 35 | ; Shown in the setup program during install only 36 | AppVerName=Borderless Gaming v{#AppVersion} 37 | 38 | ; Shown only in Programs & Features 39 | AppContact=Borderless Gaming on Github 40 | AppComments=Play your favorite games in a borderless window; no more time-consuming Alt-Tabs! 41 | AppPublisherURL=https://github.com/Codeusa/Borderless-Gaming 42 | AppSupportURL=https://github.com/Codeusa/Borderless-Gaming/issues 43 | AppUpdatesURL=https://github.com/Codeusa/Borderless-Gaming/releases/latest 44 | UninstallDisplayName=Borderless Gaming 45 | ; 691 KB as initial install 46 | UninstallDisplaySize=929008 47 | UninstallDisplayIcon={app}\BorderlessGaming.exe 48 | 49 | 50 | [Messages] 51 | BeveledLabel=Borderless Gaming {#AppVersion} Setup 52 | 53 | [Languages] 54 | Name: english; MessagesFile: compiler:Default.isl 55 | 56 | [Files] 57 | Source: ../BorderlessGaming/bin/Release/*; DestDir: {app}; Flags: ignoreversion recursesubdirs 58 | 59 | Source: ../LICENSE; DestName: License.txt; DestDir: {app} 60 | Source: ../README.md; DestName: Read Me.txt; DestDir: {app} 61 | Source: ./uninstall.ico; DestDir: {app} 62 | 63 | [Tasks] 64 | ;Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons} 65 | Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; 66 | 67 | [Icons] 68 | Name: {commondesktop}\Borderless Gaming; Filename: {app}\BorderlessGaming.exe; WorkingDir: {app}; Tasks: desktopicon 69 | Name: {group}\Borderless Gaming; Filename: {app}\BorderlessGaming.exe; WorkingDir: {app} 70 | Name: {group}\Uninstall Borderless Gaming; Filename: {uninstallexe}; IconFileName: {app}\uninstall.ico 71 | Name: {group}\License Agreement; Filename: {app}\License.txt 72 | Name: {group}\Read Me; Filename: {app}\Read Me.txt 73 | 74 | [Run] 75 | Description: Start Borderless Gaming; Filename: {app}\BorderlessGaming.exe; Flags: nowait postinstall skipifsilent shellexec 76 | 77 | [UninstallDelete] 78 | Type: files; Name: {app}\License.txt 79 | Type: files; Name: {app}\Read Me.txt 80 | Type: files; Name: {app}\BorderlessGaming.exe 81 | Type: files; Name: {app}\Interop.IWshRuntimeLibrary.dll 82 | Type: files; Name: {app}\Newtonsoft.Json.dll 83 | Type: files; Name: {app}\uninstall.ico 84 | 85 | [Code] 86 | procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); 87 | begin 88 | if CurUninstallStep = usUninstall then begin 89 | if MsgBox('Do you want to delete your Borderless Gaming settings and preferences as well?', mbConfirmation, MB_YESNO) = IDYES 90 | then begin 91 | DelTree(ExpandConstant('{app}'), True, True, True) 92 | end; 93 | end; 94 | end; 95 | -------------------------------------------------------------------------------- /Installers/BorderlessGaming_Standalone_User.iss: -------------------------------------------------------------------------------- 1 | [Setup] 2 | #define MainProg "../bin/Standalone_Admin/Release/BorderlessGaming.exe" 3 | #define Major 4 | #define Minor 5 | #define Rev 6 | #define Build 7 | #define Version ParseVersion(MainProg, Major, Minor, Rev, Build) 8 | #define AppVersion Str(Major)+"."+Str(Minor)+(Rev > 0 ? "."+Str(Rev) : "") 9 | AppName=Borderless Gaming 10 | AppPublisher=Andrew Sampson 11 | AppCopyright=Copyright (C) 2014-2018 Andrew Sampson 12 | DefaultDirName={pf}\Borderless Gaming 13 | DefaultGroupName=Borderless Gaming 14 | OutputDir=./ 15 | DisableReadyMemo=yes 16 | DisableReadyPage=yes 17 | SetupIconFile=../BorderlessGaming_new.ico 18 | Compression=lzma/ultra64 19 | SolidCompression=yes 20 | LicenseFile=../LICENSE 21 | Uninstallable=yes 22 | ; Needed to modify %AppData% 23 | PrivilegesRequired=admin 24 | DisableProgramGroupPage=yes 25 | DirExistsWarning=no 26 | 27 | ; Shown as installed version (Programs & Features) as well as product version ('Details' tab when right-clicking setup program and choosing 'Properties') 28 | AppVersion={#AppVersion} 29 | ; Stored in the version info for the setup program itself ('Details' tab when right-clicking setup program and choosing 'Properties') 30 | VersionInfoVersion={#Version} 31 | ; Other version info 32 | OutputBaseFilename=BorderlessGaming{#AppVersion}_setup 33 | 34 | 35 | ; Shown in the setup program during install only 36 | AppVerName=Borderless Gaming v{#AppVersion} 37 | 38 | ; Shown only in Programs & Features 39 | AppContact=Borderless Gaming on Github 40 | AppComments=Play your favorite games in a borderless window; no more time-consuming Alt-Tabs! 41 | AppPublisherURL=https://github.com/Codeusa/Borderless-Gaming 42 | AppSupportURL=https://github.com/Codeusa/Borderless-Gaming/issues 43 | AppUpdatesURL=https://github.com/Codeusa/Borderless-Gaming/releases/latest 44 | UninstallDisplayName=Borderless Gaming 45 | ; 691 KB as initial install 46 | UninstallDisplaySize=929008 47 | UninstallDisplayIcon={app}\BorderlessGaming.exe 48 | 49 | 50 | [Messages] 51 | BeveledLabel=Borderless Gaming {#AppVersion} Setup 52 | 53 | [Languages] 54 | Name: english; MessagesFile: compiler:Default.isl 55 | 56 | [Files] 57 | Source: ../bin/Standalone_User/Release/BorderlessGaming.exe; DestDir: {app}; Flags: ignoreversion 58 | Source: ../bin/Standalone_User/Release/Interop.IWshRuntimeLibrary.dll; DestDir: {app} 59 | Source: ../bin/Standalone_User/Release/Newtonsoft.Json.dll; DestDir: {app} 60 | 61 | Source: ../LICENSE; DestName: License.txt; DestDir: {app} 62 | Source: ../README.md; DestName: Read Me.txt; DestDir: {app} 63 | Source: ./uninstall.ico; DestDir: {app} 64 | 65 | [Tasks] 66 | ;Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons} 67 | Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; 68 | 69 | [Icons] 70 | Name: {commondesktop}\Borderless Gaming; Filename: {app}\BorderlessGaming.exe; WorkingDir: {app}; Tasks: desktopicon 71 | Name: {group}\Borderless Gaming; Filename: {app}\BorderlessGaming.exe; WorkingDir: {app} 72 | Name: {group}\Uninstall Borderless Gaming; Filename: {uninstallexe}; IconFileName: {app}\uninstall.ico 73 | Name: {group}\License Agreement; Filename: {app}\License.txt 74 | Name: {group}\Read Me; Filename: {app}\Read Me.txt 75 | 76 | [Run] 77 | Description: Start Borderless Gaming; Filename: {app}\BorderlessGaming.exe; Flags: nowait postinstall skipifsilent shellexec 78 | 79 | [UninstallDelete] 80 | Type: files; Name: {app}\License.txt 81 | Type: files; Name: {app}\Read Me.txt 82 | Type: files; Name: {app}\BorderlessGaming.exe 83 | Type: files; Name: {app}\Interop.IWshRuntimeLibrary.dll 84 | Type: files; Name: {app}\Newtonsoft.Json.dll 85 | Type: files; Name: {app}\uninstall.ico 86 | 87 | [Code] 88 | procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); 89 | begin 90 | if CurUninstallStep = usUninstall then begin 91 | if MsgBox('Do you want to delete your Borderless Gaming settings and preferences as well?', mbConfirmation, MB_YESNO) = IDYES 92 | then begin 93 | DelTree(ExpandConstant('{app}'), True, True, True) 94 | end; 95 | end; 96 | end; 97 | -------------------------------------------------------------------------------- /Installers/uninstall.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/Installers/uninstall.ico -------------------------------------------------------------------------------- /Languages/Languages.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/Languages/Languages.zip -------------------------------------------------------------------------------- /Languages/de-DE.lang: -------------------------------------------------------------------------------- 1 | # Popups 2 | setWindowSizeTitle|Fenstertitel anpassen 3 | setWindowSizePixelPrompt|Pixel {0} Position für die obere linke Ecke ({0} Koordinate): 4 | setWindowSizeWidthPrompt|Fenster Breite (in Pixeln): 5 | setWindowSizeHeightPrompt|Fenster Höhe (in Pixeln): 6 | setWindowSizeMouseTitle|Bereich auswählen? 7 | setWindowSizeMousePrompt|Willst du den Bereich mit dem Mauszeiger auswählen? Falls du Nein antwortest, wirst du nach pixelgenauen Angaben gefragt. 8 | adjustWindowBoundsTitle|Fensterrand anpassen 9 | adjustWindowBoundsPrompt|Pixel Anpassung für den {0} Fensterrand (0 Pixel = keine Anpassung): 10 | adjustWindowBoundsLeft|linken 11 | adjustWindowBoundsRight|rechten 12 | adjustWindowBoundsTop|oberen 13 | adjustWindowBoundsBottom|unteren 14 | settingConfirmationTitle|Änderungen bestätigen 15 | settingConfirmationPrompt|Du musst Borderless Gaming neu starten, damit Deine Änderungen wirksam werden. Jetzt neu starten? 16 | setWindowTitleTitle|Fenstertitel anpassen 17 | setWindowTitlePrompt|Neuen Fenstertitel eingeben: 18 | toggleMouseCursorVisibilityTitle|Mauszeiger wirklich verstecken? 19 | toggleMouseCursorVisibilityPrompt|Willst du den Mauszeiger wirklich verstecken? Möglicherweise wirst du Schwierigkeiten haben den Mauszeiger wiederzufinden. Wenn du den globalen Hotkey zum Umschalten der Mauszeiger Sichtbarkeit aktiviert hast, kannst du mit [Win + Scroll Lock] den Mauszeiger sichtbar machen. Außerdem stellt Borderless Gaming den Mauszeiger sofort wieder her, wenn es beendet wird. 20 | # Options Menu 21 | toolStripOptions|Optionen 22 | toolStripRunOnStartup|Mit Computer starten 23 | toolStripLanguages|Sprache auswählen 24 | toolStripCheckForUpdates|Nach Updates suchen 25 | toolStripGlobalHotkey|Globalen Hotkey verwenden 26 | toolStripMouseLock|Mauszeiger Fangen Hotkey verwenden 27 | toolStripMouseHide|Mauszeiger Sichtbarkeit Hotkey verwenden 28 | toolStripMinimizedToTray|Nach Programmstart minimieren 29 | toolStripCloseToTray|In den Benachrichtigungsbereich minimieren 30 | toolStripHideBalloonTips|Benachrichtigung verstecken 31 | toolStripSlowWindowDetection|Langsame Fenstererkennung benutzen 32 | toolStripViewFullProcessDetails|Vollständige Prozessdetails anzeigen 33 | toolStripRestoreProcesses|Versteckte Anwendungen wiederherstellen 34 | # Tools Menu 35 | toolsToolStripMenuItem|Werkzeuge 36 | toolStripPauseAutomaticProcessing|Automatische Aktualisierung anhalten 37 | toolStripOpenDataFolder|Konfigurationsordner öffnen 38 | toolStripToggleMouseCursorVisibility|Mauszeiger Sichtbarkeit umschalten 39 | toolStripToggleWindowsTaskbar|Windows Taskleisten Sichtbarkeit umschalten 40 | toolStripFullApplicationRefresh|Alle Anwendungen aktualisieren 41 | toolStripDisableSteamIntegration|Steam Integration ausschalten 42 | # Help Menu 43 | toolStripInfo|Hilfe 44 | toolStripUsageGuide|Anleitung 45 | toolStripRegexReference|Regex Hinweis 46 | toolStripReportBug|Fehler melden 47 | toolStripSupportUs|Unterstütze uns 48 | toolStripAbout|Über 49 | # Process Context Menu 50 | contextAddToFavs|Zu Favoriten hinzufügen... 51 | toolStripByTheWindowTitle|... durch Fenstertitel 52 | toolStripByRegex|... durch Fenstertitel (regex) 53 | toolStripByProcess|... durch den Anwendungsnamen des Prozesses 54 | contextBorderless|Randlos machen 55 | contextBorderlessOn|Randlos machen auf... 56 | toolStripSetWindowTitle|Fenstertitel anpassen 57 | toolStripHideProcess|Diesen Prozess verstecken 58 | # Favorite Context Menu 59 | toolStripFullScreen|Vollbild 60 | toolStripNoSizeChange|Keine Größen Veränderung 61 | toolStripSetSetWindowSize|Fenstergröße anpassen 62 | toolStripAutomaximize|Auto-Maximieren 63 | toolStripAdjustWindowBounds|Fenstergrenzen anpassen 64 | toolStripAlwaysOnTop|Immer im Vordergrund 65 | toolStripDelayBorderless|Randloses Fenster verzögern 66 | toolStripHideMouseCursor|Mauszeiger verstecken 67 | toolStripHideWindowsTaskbar|Windows Taskleiste verstecken 68 | toolStripRemoveMenus|Menüs entfernen 69 | contextFavScreen|Bevorzugten Bildschirm auswählen... 70 | toolStripMuteInBackground|Im Hintergrund stummschalten 71 | contextRemoveFromFavs|Aus Favoriten entfernen 72 | # UI 73 | superSize|ExtraGroß! 74 | processLabel|Anwendungen: 75 | favoritesLabel|Favoriten (automatisch): 76 | statusLabel|Lade... 77 | moreOptionsLabel|Rechtsklicken für weitere Optionen. Zuletzt aktualisiert 78 | # Tool Tips 79 | steamHint|Verhindert "In Anwendung" auf Steam 80 | addFavorite|Fügt ausgewählte Anwendung den Favoriten hinzu (durch den Fenstertitel). 81 | removeFavorite|Entfernt ausgewählten Favorit von der Liste. 82 | makeBorderless|Macht ausgewählte Anwendung randlos. 83 | restoreBorders|Versucht den Rand eines Fensters wiederherzustellen. 84 | -------------------------------------------------------------------------------- /Languages/en-US.lang: -------------------------------------------------------------------------------- 1 | # Popups 2 | setWindowSizeTitle|Set Window Size 3 | setWindowSizePixelPrompt|Pixel {0} location for the top left corner ({0} coordinate): 4 | setWindowSizeWidthPrompt|Window width (in pixels): 5 | setWindowSizeHeightPrompt|Window height (in pixels): 6 | setWindowSizeMouseTitle|Select Area? 7 | setWindowSizeMousePrompt|Would you like to select the area using your mouse cursor?\r\n\r\nIf you answer No, you will be prompted for specific pixel dimensions. 8 | adjustWindowBoundsTitle|Adjust Window Bounds 9 | adjustWindowBoundsPrompt|Pixel adjustment for the {0} window edge (0 pixels = no adjustment): 10 | adjustWindowBoundsLeft|left 11 | adjustWindowBoundsRight|right 12 | adjustWindowBoundsTop|top 13 | adjustWindowBoundsBottom|bottom 14 | settingConfirmationTitle|Confirm Your Changes 15 | settingConfirmationPrompt|You must restart Borderless Gaming for your changes to take affect. Restart now? 16 | setWindowTitleTitle|Set Window Title 17 | setWindowTitlePrompt|Set the new window title text: 18 | toggleMouseCursorVisibilityTitle|Really Hide Mouse Cursor? 19 | toggleMouseCursorVisibilityPrompt|Do you really want to hide the mouse cursor?\r\n\r\nYou may have a difficult time finding the mouse again once it's hidden.\r\n\r\nIf you have enabled the global hotkey to toggle the mouse cursor visibility, you can press [Win + Scroll Lock] to toggle the mouse cursor on.\r\n\r\nAlso, exiting Borderless Gaming will immediately restore your mouse cursor. 20 | # Options Menu 21 | toolStripOptions|Options 22 | toolStripRunOnStartup|Run On Startup 23 | toolStripLanguages|Select Language 24 | toolStripCheckForUpdates|Check For Updates 25 | toolStripGlobalHotkey|Use Global Hotkey 26 | toolStripMouseLock|Use Mouse Lock Hotkey 27 | toolStripMouseHide|Use Mouse Hide Hotkey 28 | toolStripMinimizedToTray|Start Minimized To Tray 29 | toolStripCloseToTray|Close To Tray 30 | toolStripHideBalloonTips|Hide Balloon Tips 31 | toolStripSlowWindowDetection|Use Slower Window Detection 32 | toolStripViewFullProcessDetails|View Full Process Details 33 | toolStripRestoreProcesses|Restore All Hidden Applications 34 | # Tools Menu 35 | toolsToolStripMenuItem|Tools 36 | toolStripPauseAutomaticProcessing|Pause Automatic Processing 37 | toolStripOpenDataFolder|Open Data Folder 38 | toolStripToggleMouseCursorVisibility|Toggle Mouse Cursor Visibility 39 | toolStripToggleWindowsTaskbar|Toggle Windows Taskbar Visibility 40 | toolStripFullApplicationRefresh|Full Application Refresh 41 | toolStripDisableSteamIntegration|Disable Steam Integration 42 | # Help Menu 43 | toolStripInfo|Help 44 | toolStripUsageGuide|Usage Guide 45 | toolStripRegexReference|Regex Reference 46 | toolStripReportBug|Report Bug 47 | toolStripSupportUs|Support Us 48 | toolStripAbout|About 49 | # Process Context Menu 50 | contextAddToFavs|Add to Favorites... 51 | toolStripByTheWindowTitle|... by the window title text 52 | toolStripByRegex|... by the window title text (regex) 53 | toolStripByProcess|... by the process binary name 54 | contextBorderless|Make Borderless 55 | contextBorderlessOn|Make Borderless On... 56 | toolStripSetWindowTitle|Set Window Title 57 | toolStripHideProcess|Hide This Process 58 | # Favorite Context Menu 59 | toolStripFullScreen|Full Screen 60 | toolStripNoSizeChange|No Size Change 61 | toolStripSetSetWindowSize|Set Window Size 62 | toolStripAutomaximize|Auto-Maximize 63 | toolStripAdjustWindowBounds|Adjust Window bounds 64 | toolStripAlwaysOnTop|Always On Top 65 | toolStripDelayBorderless|Delay Borderless Window 66 | toolStripHideMouseCursor|Hide Mouse Cursor 67 | toolStripHideWindowsTaskbar|Hide Windows Taskbar 68 | toolStripRemoveMenus|Remove Menus 69 | contextFavScreen|Select Favorite Screen... 70 | toolStripMuteInBackground|Mute In Background 71 | contextRemoveFromFavs|Remove From Favorites 72 | # UI 73 | superSize|SuperSize! 74 | processLabel|Applications: 75 | favoritesLabel|Favorites (automatic): 76 | statusLabel|Loading... 77 | moreOptionsLabel|Right-click for more options. Last updated 78 | # Tool Tips 79 | steamHint|Prevents "In-App" on Steam 80 | addFavorite|Adds the currently-selected application to your favorites list (by the window title). 81 | removeFavorite|Removes the currently-selected favorite from the list. 82 | makeBorderless|Makes the currently-selected application borderless. 83 | restoreBorders|Attempts to restore a window back to its bordered state. -------------------------------------------------------------------------------- /Languages/es-419.lang: -------------------------------------------------------------------------------- 1 | # Popups 2 | setWindowSizeTitle|Establecer tamaño de la ventana 3 | setWindowSizePixelPrompt|Ubicacion del pixel {0} para la esquina superior izquierda ({0} coordenadas): 4 | setWindowSizeWidthPrompt|Ancho de la ventana (en pixeles): 5 | setWindowSizeHeightPrompt|Alto de la ventana (en pixeles): 6 | setWindowSizeMouseTitle|¿Seleccionar Area? 7 | setWindowSizeMousePrompt|¿Desas seleccionar el area usando el cursor del mouse?\r\n\r\nSi eliges No, se te preguntara por dimensiones especificas de los pixeles. 8 | adjustWindowBoundsTitle|Ajustar limites de la ventana 9 | adjustWindowBoundsPrompt|Ajuste de pixeles para el borde de la ventana de {0} (0 pixeles = sin ajustes): 10 | adjustWindowBoundsLeft|izquierda 11 | adjustWindowBoundsRight|derecha 12 | adjustWindowBoundsTop|arriba 13 | adjustWindowBoundsBottom|abajo 14 | settingConfirmationTitle|Confirma tus cambios 15 | settingConfirmationPrompt|Debes reiniciar Borderless Gaming para que tus cambios tomen efecto. ¿Reiniciar ahora? 16 | setWindowTitleTitle|Establecer titulo de la ventana 17 | setWindowTitlePrompt|Establece el nuevo titulo de la ventana: 18 | toggleMouseCursorVisibilityTitle|¿Ocultar realmente el cursor del mouse? 19 | toggleMouseCursorVisibilityPrompt|¿De verdad deseas ocultar el cursor del mouse?\r\n\r\nTal vez te encuentres con dificultades al intentar encontrar el cursor una vez oculto.\r\n\r\nSi tienes activado el Hotkey globar para alternar la visibilidad del mouse, puedes presionar [Win + Scroll Lock] para alternar el cursor del mouse.\r\n\r\nTambien, salir de Borderless Gaming mostrara automaticamente el cursor del mouse 20 | # Options Menu 21 | toolStripOptions|Opciones 22 | toolStripRunOnStartup|Ejecutar al inicio 23 | toolStripLanguages|Seleccionar idioma 24 | toolStripCheckForUpdates|Buscar actualizaciones 25 | toolStripGlobalHotkey|Usar Hotkey global 26 | toolStripMouseLock|Usar Hotkey para bloquear el mouse 27 | toolStripMouseHide|Usar Hotkey para ocultar el mouse 28 | toolStripMinimizedToTray|Iniciar minimizado en bandeja 29 | toolStripCloseToTray|Cerrar a la bandeja 30 | toolStripHideBalloonTips|Ocultar pop-up's de informacion 31 | toolStripSlowWindowDetection|Usar deteccion de ventanas mas lenta 32 | toolStripViewFullProcessDetails|Mostrar todos los detalles del proceso 33 | toolStripRestoreProcesses|Restaurar todas las aplicaciones ocultas 34 | # Tools Menu 35 | toolsToolStripMenuItem|Herramientas 36 | toolStripPauseAutomaticProcessing|Pausar Procesamiento automatico 37 | toolStripOpenDataFolder|Abrir carpeta de configuracion 38 | toolStripToggleMouseCursorVisibility|Cambiar visibilidad del cursor 39 | toolStripToggleWindowsTaskbar|Cambiar visibilidad en la barra de tareas 40 | toolStripFullApplicationRefresh|Recargar la aplicacion completamente 41 | toolStripDisableSteamIntegration|Desactivar integracion con Steam 42 | # Help Menu 43 | toolStripInfo|Ayuda 44 | toolStripUsageGuide|Guia de uso 45 | toolStripRegexReference|Referencia de Regex 46 | toolStripReportBug|Reportar Bug 47 | toolStripSupportUs|Apoyanos 48 | toolStripAbout|Acerca de 49 | # Process Context Menu 50 | contextAddToFavs|Añadir a Favoritos... 51 | toolStripByTheWindowTitle|... por el texto de la ventana 52 | toolStripByRegex|... por el titulo de la ventana (regex) 53 | toolStripByProcess|... por el nombre del ejecutable 54 | contextBorderless|Eliminar Bordes 55 | contextBorderlessOn|Eliminar Bordes activado... 56 | toolStripSetWindowTitle|Establecer titulo de la ventana 57 | toolStripHideProcess|Ocultar este proceso 58 | # Favorite Context Menu 59 | toolStripFullScreen|Pantalla Completa 60 | toolStripNoSizeChange|No cambiar el tamaño 61 | toolStripSetSetWindowSize|Establecer tamaño de la ventana 62 | toolStripAutomaximize|Auto Maximizar 63 | toolStripAdjustWindowBounds|Ajustar limites de los bordes 64 | toolStripAlwaysOnTop|Siempre activa 65 | toolStripDelayBorderless|Añadir delay al remover los bordes 66 | toolStripHideMouseCursor|Ocultar el cursor del mouse 67 | toolStripHideWindowsTaskbar|Ocultar la barra de tareas 68 | toolStripRemoveMenus|Remover menus 69 | contextFavScreen|Seleccionar la ventana favorita... 70 | toolStripMuteInBackground|Silenciar en segundo plano 71 | contextRemoveFromFavs|Remover de Favoritos 72 | # UI 73 | superSize|¡Super Tamaño! 74 | processLabel|Aplicaciones: 75 | favoritesLabel|Favoritos (automatico): 76 | statusLabel|Cargando... 77 | moreOptionsLabel|Boton derecho para mas opciones. Ultima vez actualizado 78 | # Tool Tips 79 | steamHint|Evita "En una aplicacion" en Steam 80 | addFavorite|Añade la aplicaccion actualmente seleccionada a tu lista de favoritos (por titulo de ventana). 81 | removeFavorite|Remueve el favorito actualmente seleccionado de la lista. 82 | makeBorderless|Hace la aplicacion actualmente seleccionada sin bordes. 83 | restoreBorders|Intenta restaurar los bordes de una ventana a su estado normal. -------------------------------------------------------------------------------- /Languages/fr-FR.lang: -------------------------------------------------------------------------------- 1 | # Popups 2 | setWindowSizeTitle|Régler la taille de la fenêtre 3 | setWindowSizePixelPrompt|Emplacement en pixels {0} depuis le coin supérieur gauche (coordonnée{0}): 4 | setWindowSizeWidthPrompt|Largeur de la fenêtre (en pixels): 5 | setWindowSizeHeightPrompt|Hauteur de la fenêtre (en pixels): 6 | setWindowSizeMouseTitle|Sélection de la zone? 7 | setWindowSizeMousePrompt|Souhaitez-vous sélectionner la zone avec le curseur de votre souris? Si vous choisissez Non, vous devrez renseigner les dimensions adéquates en pixels. 8 | adjustWindowBoundsTitle|Ajuster les limites de la fenêtre 9 | adjustWindowBoundsPrompt|Ajustement au pixel pour le bord de fenêtre {0} (0 pixel = pas d'ajustement): 10 | adjustWindowBoundsLeft|gauche 11 | adjustWindowBoundsRight|droite 12 | adjustWindowBoundsTop|haut 13 | adjustWindowBoundsBottom|bas 14 | settingConfirmationTitle|Confirmer vos changements 15 | settingConfirmationPrompt|Afin d'appliquer vos changements, vous devez relancer Borderless Gaming. Redémarrer maintenant? 16 | setWindowTitleTitle|Définir le titre de la fenêtre 17 | setWindowTitlePrompt|Définir le nouveau titre de la fenêtre: 18 | toggleMouseCursorVisibilityTitle|Souhaitez-vous vraiment cacher le curseur de la souris? 19 | toggleMouseCursorVisibilityPrompt|Souhaitez-vous vraiment cacher le curseur de la souris? Vous pourriez avoir du mal à retrouver le curseur une fois dissimulé. Si vous avez activé le raccourci général pour activer/désactiver la visibilité du curseur, vous pouvez presser [Win + Scroll Lock] pour réafficher le curseur. De plus, quitter Borderless Gaming restaurera immédiatement votre curseur. 20 | # Options Menu 21 | toolStripOptions|Options 22 | toolStripRunOnStartup|Démarrer avec Windows 23 | toolStripLanguages|Changer la langue 24 | toolStripCheckForUpdates|Vérifier les mises à jour 25 | toolStripGlobalHotkey|Utiliser le raccourci général 26 | toolStripMouseLock|Bloquer la souris 27 | toolStripMouseHide|Cacher la souris 28 | toolStripMinimizedToTray|Démarrer minimisé dans la zone de notification 29 | toolStripCloseToTray|Fermer vers la zone de notification 30 | toolStripHideBalloonTips|Cacher les astuces 31 | toolStripSlowWindowDetection|Ralentir la détection des fenêtres 32 | toolStripViewFullProcessDetails|Voir le détail de tous les processus 33 | toolStripRestoreProcesses|Restaurer toutes les applications cachées 34 | # Tools Menu 35 | toolsToolStripMenuItem|Outils 36 | toolStripPauseAutomaticProcessing|Mettre en pause l'éxécution automatique 37 | toolStripOpenDataFolder|Ouvrir le répertoire racine 38 | toolStripToggleMouseCursorVisibility|Afficher/Cacher le curseur de la souris 39 | toolStripToggleWindowsTaskbar|Afficher/Cacher la barre des tâches Windows 40 | toolStripFullApplicationRefresh|Rafraîchir les applications en cours 41 | toolStripDisableSteamIntegration|Désactiver l'intégration à Steam 42 | # Help Menu 43 | toolStripInfo|Aide 44 | toolStripUsageGuide|Guide d'utilisation 45 | toolStripRegexReference|Index Regex 46 | toolStripReportBug|Soumettre un bug 47 | toolStripSupportUs|Supportez-nous 48 | toolStripAbout|À propos 49 | # Process Context Menu 50 | contextAddToFavs|Ajouter aux favoris... 51 | toolStripByTheWindowTitle|... selon le texte de la fenêtre 52 | toolStripByRegex|... selon le texte de la fenêtre (regex) 53 | toolStripByProcess|... selon le nom du processus 54 | contextBorderless|Rendre Borderless 55 | contextBorderlessOn|Rendre Borderless sur... 56 | toolStripSetWindowTitle|Changer le titre de la fenêtre 57 | toolStripHideProcess|Cacher ce processus 58 | # Favorite Context Menu 59 | toolStripFullScreen|Plein écran 60 | toolStripNoSizeChange|Pas de changement de taille 61 | toolStripSetSetWindowSize|Régler la taille de la fenêtre 62 | toolStripAutomaximize|Maximiser automatiquement 63 | toolStripAdjustWindowBounds|Ajuster les limites de la fenêtre 64 | toolStripAlwaysOnTop|Toujours au-dessus 65 | toolStripDelayBorderless|Retarder la fenêtre Borderless 66 | toolStripHideMouseCursor|Cacher le curseur de la souris 67 | toolStripHideWindowsTaskbar|Cacher la barre des tâches Windows 68 | toolStripRemoveMenus|Enlever les menus 69 | contextFavScreen|Choisir l'écran favori... 70 | toolStripMuteInBackground|Couper le son en arrière-plan 71 | contextRemoveFromFavs|Retirer des favoris 72 | # UI 73 | superSize|SuperSize! 74 | processLabel|Applications: 75 | favoritesLabel|Favoris (automatique): 76 | statusLabel|Chargement... 77 | moreOptionsLabel|Clic droit pour plus d'options. Dernière mise à jour: 78 | # Tool Tips 79 | steamHint|Empêche l'affichage du "utilise maintenant" dans Steam 80 | addFavorite|Ajoute l'application sélectionnée à votre liste de favoris (selon le titre de la fenêtre). 81 | removeFavorite|Retire le favori sélectionné de la liste. 82 | makeBorderless|Retire les bordures de l'application sélectionnée. 83 | restoreBorders|Tente de restaurer une fenêtre dans sa résolution d'origine. -------------------------------------------------------------------------------- /Languages/it-IT.lang: -------------------------------------------------------------------------------- 1 | # Popups 2 | setWindowSizeTitle|Imposta la dimensione della finestra 3 | setWindowSizePixelPrompt|Posizione del pixel {0} dell'angolo in alto a sinistra (coordinata {0}): 4 | setWindowSizeWidthPrompt|Larghezza finestra (in pixel): 5 | setWindowSizeHeightPrompt|Altezza finestra (in pixel): 6 | setWindowSizeMouseTitle|Selezionare area? 7 | setWindowSizeMousePrompt|Vuoi selezionare l'area utilizzando il cursore del mouse? Rispondendo No, ti verranno chieste dimensioni specifiche in pixel. 8 | adjustWindowBoundsTitle|Regola i limiti della finestra 9 | adjustWindowBoundsPrompt|Regolazione in pixel per l'angolo della finestra {0} (0 pixel = nessun adattamento): 10 | adjustWindowBoundsLeft|sinistra 11 | adjustWindowBoundsRight|destra 12 | adjustWindowBoundsTop|alto 13 | adjustWindowBoundsBottom|basso 14 | settingConfirmationTitle|Conferma i cambiamenti 15 | settingConfirmationPrompt|Per rendere effettive le modifiche è necessario riavviare Borderless Gaming. Riavviare ora? 16 | setWindowTitleTitle|Imposta il titolo della finestra 17 | setWindowTitlePrompt|Scegli il nuovo titolo per la finestra: 18 | toggleMouseCursorVisibilityTitle|Nascondere il cursore del mouse? 19 | toggleMouseCursorVisibilityPrompt|Vuoi veramente nascondere il cursore del mouse? Potresti avere difficoltà nel ritrovare il mouse una volta nascosto. Se hai abilitato la scorciatoia globale per il cursore del mouse, puoi premere [Win + Scroll Lock] per mostrare\nascondere il cursore. Inoltre, uscendo da Borderless Gaming ripristinerà immediatamente il cursore del mouse. 20 | # Options Menu 21 | toolStripOptions|Opzioni 22 | toolStripRunOnStartup|Esegui all'avvio del sistema 23 | toolStripLanguages|Cambia lingua 24 | toolStripCheckForUpdates|Controllo aggiornamenti 25 | toolStripGlobalHotkey|Utilizza la scorciatoia globale 26 | toolStripMouseLock|Blocca il mouse 27 | toolStripMouseHide|Nascondi il mouse 28 | toolStripMinimizedToTray|Minimizza nell'area di notifica all'avvio 29 | toolStripCloseToTray|Minimizza nell'area di notifica alla chiusura 30 | toolStripHideBalloonTips|Nascondi i suggerimenti 31 | toolStripSlowWindowDetection|Rallenta il rilevamento delle finestre 32 | toolStripViewFullProcessDetails|Mostra più dettagli sui processi 33 | toolStripRestoreProcesses|Ripristina tutte le applicazioni nascoste 34 | # Tools Menu 35 | toolsToolStripMenuItem|Strumenti 36 | toolStripPauseAutomaticProcessing|Metti in pausa l'esecuzione automatica 37 | toolStripOpenDataFolder|Apri la cartella dei dati 38 | toolStripToggleMouseCursorVisibility|Mostra\Nascondi il cursore del mouse 39 | toolStripToggleWindowsTaskbar|Mostra\Nascondi l'icona dall'area di notifica 40 | toolStripFullApplicationRefresh|Aggiorna la lista delle applicazioni 41 | toolStripDisableSteamIntegration|Disabilita l'integrazione con Steam 42 | # Help Menu 43 | toolStripInfo|Aiuto 44 | toolStripUsageGuide|Manuale 45 | toolStripRegexReference|Riferimenti a Regex 46 | toolStripReportBug|Segnala un malfunzionamento 47 | toolStripSupportUs|Supportaci 48 | toolStripAbout|Informazioni 49 | # Process Context Menu 50 | contextAddToFavs|Aggiungi ai preferiti... 51 | toolStripByTheWindowTitle|... secondo il testo nel titolo della finestra 52 | toolStripByRegex|... secondo il testo nel titolo della finestra (regex) 53 | toolStripByProcess|... secondo il nome del processo 54 | contextBorderless|Rimuovi i bordi 55 | contextBorderlessOn|Rimuovi i bordi su... 56 | toolStripSetWindowTitle|Imposta il titolo della finestra 57 | toolStripHideProcess|Nascondi questo processo 58 | # Favorite Context Menu 59 | toolStripFullScreen|Schermo intero 60 | toolStripNoSizeChange|Nessun cambiamento 61 | toolStripSetSetWindowSize|Imposta la dimensione della finestra 62 | toolStripAutomaximize|Massimizza automaticamente 63 | toolStripAdjustWindowBounds|Regola i limiti della finestra 64 | toolStripAlwaysOnTop|Sempre in primo piano 65 | toolStripDelayBorderless|Ritarda la finestra senza bordi 66 | toolStripHideMouseCursor|Nascondi il cursore del mouse 67 | toolStripHideWindowsTaskbar|Nascondi la barra delle applicazioni di Windows 68 | toolStripRemoveMenus|Rimuovi i menu 69 | contextFavScreen|Seleziona lo schermo che preferisci... 70 | toolStripMuteInBackground|Silenzia quando ridotta ad icona 71 | contextRemoveFromFavs|Rimuovi dai preferiti 72 | # UI 73 | superSize|SuperSize! 74 | processLabel|Appliczioni: 75 | favoritesLabel|Preferiti (automatico): 76 | statusLabel|Caricamento... 77 | moreOptionsLabel|Fai click con il tasto destro su un elemento per mostrare più opzioni. Ultimo aggiornamento 78 | # Tool Tips 79 | steamHint|Impedisce di mostrarti come "In Applicazione" su Steam 80 | addFavorite|Aggiunge l'applicazione selezionata alla tua lista preferiti (secondo il titolo della finestra). 81 | removeFavorite|Rimuove l'applicazione selezionata dalla tua lista preferiti. 82 | makeBorderless|Rimuove i bordi alla finestra dell'applicazione selezionata. 83 | restoreBorders|Tenta di ripristinare i bordi della finestra. 84 | -------------------------------------------------------------------------------- /Languages/ja-JP.lang: -------------------------------------------------------------------------------- 1 | # Popups 2 | setWindowSizeTitle|ウィンドウサイズ設定 3 | setWindowSizePixelPrompt|ピクセル {0} の左上の位置 ({0} 座標): 4 | setWindowSizeWidthPrompt|ウィンドウの幅 (単位:ピクセル): 5 | setWindowSizeHeightPrompt|ウィンドウの高さ (単位:ピクセル): 6 | setWindowSizeMouseTitle|エリア選択 7 | setWindowSizeMousePrompt|マウスでウィンドウのサイズを指定しますか?\r\n\r\n[いいえ]を選択した場合、直接サイズ指定を行います 8 | adjustWindowBoundsTitle|ウィンドウの端を微調整する 9 | adjustWindowBoundsPrompt|{0} からの距離 (0 pixels = 調整しない): 10 | adjustWindowBoundsLeft|左端 11 | adjustWindowBoundsRight|右端 12 | adjustWindowBoundsTop|上端 13 | adjustWindowBoundsBottom|下端 14 | settingConfirmationTitle|変更の適用 15 | settingConfirmationPrompt|設定を適用するには[Borderless Gaming]を再起動する必要があります。 今すぐ再起動しますか? 16 | setWindowTitleTitle|タイトルの変更 17 | setWindowTitlePrompt|変更後のタイトル: 18 | toggleMouseCursorVisibilityTitle|本当にマウスカーソルを非表示にしますか? 19 | toggleMouseCursorVisibilityPrompt|本当にマウスカーソルを非表示にしますか?\r\n\r\n非表示にした場合、マウスの位置を見つける事が困難になります。\r\n\r\nホットキーを有効にしている場合、[Win + Scroll Lock]を利用してマウスカーソルの表示を切り替える事ができます。\r\n\r\n[Borderless Gaming]を終了すると、マウスカーソルが復元されます。 20 | # Options Menu 21 | toolStripOptions|設定 22 | toolStripRunOnStartup|PCの起動時に自動で起動する 23 | toolStripLanguages|言語設定 24 | toolStripCheckForUpdates|更新を確認 25 | toolStripGlobalHotkey|グローバルホットキーを利用する 26 | toolStripMouseLock|マウスカーソル固定切替のホットキーを利用する 27 | toolStripMouseHide|マウスカーソル表示切替のホットキーを利用する 28 | toolStripMinimizedToTray|起動時にタスクトレイに格納する 29 | toolStripCloseToTray|[閉じる]ボタンでタスクトレイに格納する 30 | toolStripHideBalloonTips|バルーンチップを非表示にする 31 | toolStripSlowWindowDetection|ウィンドウ検出を遅くする 32 | toolStripViewFullProcessDetails|プロセスの詳細を表示する 33 | toolStripRestoreProcesses|非表示にしたすべてのプロセスを再表示する 34 | # Tools Menu 35 | toolsToolStripMenuItem|ツール 36 | toolStripPauseAutomaticProcessing|自動処理を一時停止する 37 | toolStripOpenDataFolder|データフォルダを開く 38 | toolStripToggleMouseCursorVisibility|マウスカーソルの表示を切り替える 39 | toolStripToggleWindowsTaskbar|タスクバーの表示を切り替える 40 | toolStripFullApplicationRefresh|アプリケーション一覧を再読み込みする 41 | toolStripDisableSteamIntegration|Steamとの統合を無効にする 42 | # Help Menu 43 | toolStripInfo|ヘルプ 44 | toolStripUsageGuide|使用方法 45 | toolStripRegexReference|正規表現ガイド 46 | toolStripReportBug|バグを報告 47 | toolStripSupportUs|Support Us 48 | toolStripAbout|このツールについて 49 | # Process Context Menu 50 | contextAddToFavs|お気に入りへ追加 51 | toolStripByTheWindowTitle|... ウィンドウタイトルを利用する 52 | toolStripByRegex|... ウィンドウタイトルを利用する(正規表現) 53 | toolStripByProcess|... プロセスのバイナリ名を利用する 54 | contextBorderless|ボーダーレス化 55 | contextBorderlessOn|指定した画面でボーダーレス化する 56 | toolStripSetWindowTitle|ウィンドウのタイトルを変更する 57 | toolStripHideProcess|プロセスを非表示化する 58 | # Favorite Context Menu 59 | toolStripFullScreen|フルスクリーン 60 | toolStripNoSizeChange|サイズを変更しない 61 | toolStripSetSetWindowSize|サイズを指定する 62 | toolStripAutomaximize|自動で最大化する 63 | toolStripAdjustWindowBounds|ウィンドウの端を微調整する 64 | toolStripAlwaysOnTop|常に最前面 65 | toolStripDelayBorderless|ボーダーレス化を遅延させる 66 | toolStripHideMouseCursor|マウスカーソルを非表示にする 67 | toolStripHideWindowsTaskbar|タスクバーを非表示にする 68 | toolStripRemoveMenus|メニューを削除 69 | contextFavScreen|利用するディスプレイを選択 70 | toolStripMuteInBackground|非アクティブ時にミュートする 71 | contextRemoveFromFavs|お気に入りから削除 72 | # UI 73 | superSize|モニタを跨いで全画面化する 74 | processLabel|アプリケーション: 75 | favoritesLabel|お気に入り (自動化): 76 | statusLabel|読み込み中... 77 | moreOptionsLabel|右クリックで詳細なオプションを表示します。 最終更新: 78 | # Tool Tips 79 | steamHint|Steamの"In-App"を抑制 80 | addFavorite|選択中のアプリケーションをお気に入りへ追加 (ウィンドウタイトルを利用) 81 | removeFavorite|選択中のアプリケーションをお気に入りから削除 82 | makeBorderless|選択中のアプリケーションをボーダーレス化 83 | restoreBorders|選択中のアプリケーションのボーダーレス化を解除 -------------------------------------------------------------------------------- /Languages/ko-KR.lang: -------------------------------------------------------------------------------- 1 | # Popups 2 | setWindowSizeTitle|창 크기 설정 3 | setWindowSizePixelPrompt|{0} 좌상단 모서리의 픽셀 위치 ({0} 좌표): 4 | setWindowSizeWidthPrompt|창 너비 (픽셀 단위): 5 | setWindowSizeHeightPrompt|창 높이 (픽셀 단위): 6 | setWindowSizeMouseTitle|구역 선택? 7 | setWindowSizeMousePrompt|마우스 커스로 영역을 지정하시겠습니까?\r\n\r\n아니오를 선택하면 특정한 픽셀 영역을 지정할 수 있는 옵션이 뜰 것입니다. 8 | adjustWindowBoundsTitle|창 경계 조절 9 | adjustWindowBoundsPrompt|{0} 창 테두리 픽셀 조정 (0 픽셀 = 조정 없음): 10 | adjustWindowBoundsLeft|왼쪽 11 | adjustWindowBoundsRight|오른쪽 12 | adjustWindowBoundsTop|상단 13 | adjustWindowBoundsBottom|하단 14 | settingConfirmationTitle|변경 확인 15 | settingConfirmationPrompt|변경 사항을 적용하려면 Borderless Gaming을 재시작해야 합니다. 재시작합니까? 16 | setWindowTitleTitle|창 제목 설정 17 | setWindowTitlePrompt|새로운 창 제목 설정: 18 | toggleMouseCursorVisibilityTitle|정말 마우스 커서를 숨깁니까? 19 | toggleMouseCursorVisibilityPrompt|정말 마우스 커서를 숨깁니까?\r\n\r\n한 번 숨기고 나면 마우스 커서의 위치 파악이 어려워집니다.\r\n\r\n마우스 커서 표시 관련 전역 단축키를 사용하고 있다면 [Win + Scroll Lock] 을 눌러서 마우스 커서를 다시 표시할 수 있습니다.\r\n\r\n또한 Borderless Gaming을 종료하면 바로 마우스 커서 표시가 원상복구 됩니다. 20 | # Options Menu 21 | toolStripOptions|옵션 22 | toolStripRunOnStartup|윈도우 시작 시 실행 23 | toolStripLanguages|언어 선택 24 | toolStripCheckForUpdates|업데이트 확인 25 | toolStripGlobalHotkey|전역 단축키 사용 26 | toolStripMouseLock|마우스 가둠 단축키 사용 27 | toolStripMouseHide|마우스 숨김 단축키 사용 28 | toolStripMinimizedToTray|시작 시 트레이로 최소화 29 | toolStripCloseToTray|닫으면 트레이로 이동 30 | toolStripHideBalloonTips|풍선 도움말 숨김 31 | toolStripSlowWindowDetection|느린 창 감지 사용 32 | toolStripViewFullProcessDetails|프로세스 세부사항 보기 33 | toolStripRestoreProcesses|모든 숨긴 프로그램 복구 34 | # Tools Menu 35 | toolsToolStripMenuItem|도구 36 | toolStripPauseAutomaticProcessing|자동 처리 일시정지 37 | toolStripOpenDataFolder|데이터 폴더 열기 38 | toolStripToggleMouseCursorVisibility|마우스 커서 표시 토글 39 | toolStripToggleWindowsTaskbar|윈도우 작업줄 표시 토글 40 | toolStripFullApplicationRefresh|모든 프로그램 새로고침 41 | toolStripDisableSteamIntegration|Steam 연동 끄기 42 | # Help Menu 43 | toolStripInfo|도움말 44 | toolStripUsageGuide|사용 가이드 45 | toolStripRegexReference|Regex 레퍼런스 46 | toolStripReportBug|버그 제보 47 | toolStripSupportUs|지원해주세요 48 | toolStripAbout|프로그램 정보 49 | # Process Context Menu 50 | contextAddToFavs|즐겨찾기에 추가... 51 | toolStripByTheWindowTitle|... 창 제목으로 52 | toolStripByRegex|... 창 제목으로 (regex) 53 | toolStripByProcess|... 프로세스 실행 파일명으로 54 | contextBorderless|테두리 없는 창모드 만들기 55 | contextBorderlessOn|테두리 없는 창모드 만들기... 56 | toolStripSetWindowTitle|창 제목 설정 57 | toolStripHideProcess|이 프로세스 숨김 58 | # Favorite Context Menu 59 | toolStripFullScreen|전체화면 60 | toolStripNoSizeChange|크기 변경 없음 61 | toolStripSetSetWindowSize|창 크기 설정 62 | toolStripAutomaximize|자동으로 최대화 63 | toolStripAdjustWindowBounds|창 가장자리 조정 64 | toolStripAlwaysOnTop|항상 위에 65 | toolStripDelayBorderless|테두리 없는 창모드 천천히 적용 66 | toolStripHideMouseCursor|마우스 커서 숨김 67 | toolStripHideWindowsTaskbar|윈도우 작업줄 숨김 68 | toolStripRemoveMenus|메뉴 제거 69 | contextFavScreen|즐겨찾기 화면 선택... 70 | toolStripMuteInBackground|백그라운드로 이동 시 음소거 71 | contextRemoveFromFavs|즐겨찾기에서 제거 72 | # UI 73 | superSize|초대형! 74 | processLabel|프로그램: 75 | favoritesLabel|즐겨찾기 (자동 처리): 76 | statusLabel|로딩 중... 77 | moreOptionsLabel|추가 옵션을 보려면 마우스 오른쪽을 클릭. 마지막 업데이트: 78 | # Tool Tips 79 | steamHint|Steam 상에서 "게임 중" 방지 80 | addFavorite|현재 선택된 프로그램을 즐겨찾기 목록에 추가 (창 제목으로 정렬). 81 | removeFavorite|현재 선택된 즐겨찾기를 목록에서 제거. 82 | makeBorderless|현재 선택된 프로그램을 테두리 없는 창모드로. 83 | restoreBorders|현재 창을 기존 상태로 전환 시도. -------------------------------------------------------------------------------- /Languages/pl-PL.lang: -------------------------------------------------------------------------------- 1 | # Popups 2 | setWindowSizeTitle|Ustaw rozmiar okna 3 | setWindowSizePixelPrompt|Lokalizacja piksela {0} dla górnego lewego rogu (współrzędna {0}): 4 | setWindowSizeWidthPrompt|Szerokość okna (w pikselach): 5 | setWindowSizeHeightPrompt|Wysokość okna (w pikselach): 6 | setWindowSizeMouseTitle|Wybrać obszar? 7 | setWindowSizeMousePrompt|Chcesz wybrać obszar, używając twojego kursora myszy?\r\n\r\nJeśli odpowiesz Nie, będziesz zapytany o konkretne wymiary pikseli. 8 | adjustWindowBoundsTitle|Dostosuj granice okna 9 | adjustWindowBoundsPrompt|Dostosowanie pikseli dla {0} krawędzi okna (0 pikseli = brak dostosowania): 10 | adjustWindowBoundsLeft|lewo 11 | adjustWindowBoundsRight|prawo 12 | adjustWindowBoundsTop|góra 13 | adjustWindowBoundsBottom|dół 14 | settingConfirmationTitle|Potwierdź swoje zmiany 15 | settingConfirmationPrompt|Musisz uruchomić ponownie Borderless Gaming, by twoje zmiany zostały wprowadzone. Uruchomić ponownie teraz? 16 | setWindowTitleTitle|Ustaw tytuł okna 17 | setWindowTitlePrompt|Ustaw nowy tekst tytułu okna: 18 | toggleMouseCursorVisibilityTitle|Naprawdę ukryć kursor myszy? 19 | toggleMouseCursorVisibilityPrompt|Naprawdę chcesz ukryć kursor myszy?\r\n\r\nMożesz mieć trudności z ponownym odnalezieniem myszy, gdy zostanie ukryta.\r\n\r\nJeśli włączyłeś globalny skrót klawiszowy do przełączania widoczności kursora myszy, możesz nacisnąć [Win + Scroll Lock], aby włączyć kursor myszy.\r\n\r\nWyjście z Borderless Gaming natychmiast przywróci twój kursor myszy. 20 | # Options Menu 21 | toolStripOptions|Opcje 22 | toolStripRunOnStartup|Uruchom przy starcie 23 | toolStripLanguages|Wybierz język 24 | toolStripCheckForUpdates|Sprawdź aktualizacje 25 | toolStripGlobalHotkey|Używaj globalnego skrótu klawiszowego 26 | toolStripMouseLock|Używaj skrótu klawiszowego blokady myszy 27 | toolStripMouseHide|Używaj skrótu klawiszowego ukrycia myszy 28 | toolStripMinimizedToTray|Uruchom zminimalizowane do paska 29 | toolStripCloseToTray|Zamknij do paska 30 | toolStripHideBalloonTips|Ukryj porady dymkowe 31 | toolStripSlowWindowDetection|Używaj wolniejszego wykrywania okna 32 | toolStripViewFullProcessDetails|Pokaż pełne szczegóły procesu 33 | toolStripRestoreProcesses|Przywróć wszystkie ukryte aplikacje 34 | # Tools Menu 35 | toolsToolStripMenuItem|Narzędzia 36 | toolStripPauseAutomaticProcessing|Wstrzymaj automatyczne przetwarzanie 37 | toolStripOpenDataFolder|Otwórz folder danych 38 | toolStripToggleMouseCursorVisibility|Przełącz widoczność kursora myszy 39 | toolStripToggleWindowsTaskbar|Przełącz widoczność paska zadań Windows 40 | toolStripFullApplicationRefresh|Pełne odświeżenie aplikacji 41 | toolStripDisableSteamIntegration|Wyłącz integrację ze Steam 42 | # Help Menu 43 | toolStripInfo|Pomoc 44 | toolStripUsageGuide|Poradnik użytkowania 45 | toolStripRegexReference|Odniesienie regex 46 | toolStripReportBug|Zgłoś błąd 47 | toolStripSupportUs|Wesprzyj nas 48 | toolStripAbout|O programie 49 | # Process Context Menu 50 | contextAddToFavs|Dodaj do ulubionych... 51 | toolStripByTheWindowTitle|... po tekście tytułu okna 52 | toolStripByRegex|... po tekście tytułu okna (regex) 53 | toolStripByProcess|... po binarnej nazwie procesu 54 | contextBorderless|Ustaw bez ramki 55 | contextBorderlessOn|Ustaw bez ramki na... 56 | toolStripSetWindowTitle|Ustaw tytuł okna 57 | toolStripHideProcess|Ukryj ten proces 58 | # Favorite Context Menu 59 | toolStripFullScreen|Pełny ekran 60 | toolStripNoSizeChange|Brak zmiany rozmiaru 61 | toolStripSetSetWindowSize|Ustaw rozmiar okna 62 | toolStripAutomaximize|Automatycznie maksymalizuj 63 | toolStripAdjustWindowBounds|Dostosuj granice okna 64 | toolStripAlwaysOnTop|Zawsze na wierzchu 65 | toolStripDelayBorderless|Opóźnij okno bez ramki 66 | toolStripHideMouseCursor|Ukryj kursor myszy 67 | toolStripHideWindowsTaskbar|Ukryj pasek zadań Windows 68 | toolStripRemoveMenus|Usuń menu 69 | contextFavScreen|Wybierz ulubiony ekran... 70 | toolStripMuteInBackground|Wycisz w tle 71 | contextRemoveFromFavs|Usuń z ulubionych 72 | # UI 73 | superSize|Super rozmiar! 74 | processLabel|Aplikacje: 75 | favoritesLabel|Ulubione (automatyczne): 76 | statusLabel|Ładowanie... 77 | moreOptionsLabel|Kliknij prawym przyciskiem myszy po więcej opcji. Ostatnio zaktualizowano 78 | # Tool Tips 79 | steamHint|Zapobiega "w aplikacji" na Steam 80 | addFavorite|Dodaje aktualnie wybraną aplikację do twojej listy ulubionych (po tytule okna). 81 | removeFavorite|Usuwa aktualnie wybraną ulubioną aplikację z listy. 82 | makeBorderless|Sprawia, że aktualnie wybrana aplikacja jest bez ramki. 83 | restoreBorders|Próbuje przywrócić okno spowrotem do stanu z ramką. -------------------------------------------------------------------------------- /Languages/ru-RU.lang: -------------------------------------------------------------------------------- 1 | # Popups 2 | setWindowSizeTitle|Изменение размера окна 3 | setWindowSizePixelPrompt|Расположение по оси {0} верхнего левого пикселя ({0} координата): 4 | setWindowSizeWidthPrompt|Ширина окна (в пикселях): 5 | setWindowSizeHeightPrompt|Высота окна (в пикселях): 6 | setWindowSizeMouseTitle|Выбрать область? 7 | setWindowSizeMousePrompt|Вы хотите выбрать область с помощью курсора мыши?\r\n\r\nЕсли вы ответите "Нет", вам будут предложено указать конкретные размеры самостоятельно. 8 | adjustWindowBoundsTitle|Изменение границ окна 9 | adjustWindowBoundsPrompt|Регулировка пикселей для {0} края окна (0 пикселей = по умолчанию): 10 | adjustWindowBoundsLeft|левого 11 | adjustWindowBoundsRight|правого 12 | adjustWindowBoundsTop|верхнего 13 | adjustWindowBoundsBottom|нижнего 14 | settingConfirmationTitle|Подтверждение изменений 15 | settingConfirmationPrompt|Вы должны перезапустить Borderless Gaming, чтобы изменения вступили в силу. Перезапустить сейчас? 16 | setWindowTitleTitle|Изменение заголовка окна 17 | setWindowTitlePrompt|Задайте новый заголовок окна: 18 | toggleMouseCursorVisibilityTitle|Действительно скрыть курсор мыши? 19 | toggleMouseCursorVisibilityPrompt|Do you really want to hide the mouse cursor?\r\n\r\nYou may have a difficult time finding the mouse again once it's hidden.\r\n\r\nIf you have enabled the global hotkey to toggle the mouse cursor visibility, you can press [Win + Scroll Lock] to toggle the mouse cursor on.\r\n\r\nAlso, exiting Borderless Gaming will immediately restore your mouse cursor. 20 | # Options Menu 21 | toolStripOptions|Настройки 22 | toolStripRunOnStartup|Запускать при старте системы 23 | toolStripLanguages|Выбрать язык 24 | toolStripCheckForUpdates|Проверять наличие обновлений 25 | toolStripGlobalHotkey|Использовать разворот на весь экран 26 | toolStripMouseLock|Использовать блокировку мыши 27 | toolStripMouseHide|Использовать скрытие мыши 28 | toolStripMinimizedToTray|При запуске сворачивать в трей 29 | toolStripCloseToTray|При закрытии сворачивать в трей 30 | toolStripHideBalloonTips|Скрыть подсказки 31 | toolStripSlowWindowDetection|Использовать медленное обнаружение окон 32 | toolStripViewFullProcessDetails|Использовать подробные сведения процессов 33 | toolStripRestoreProcesses|Восстановить все скрытые приложения 34 | # Tools Menu 35 | toolsToolStripMenuItem|Инструменты 36 | toolStripPauseAutomaticProcessing|Выключить автоматическую обработку 37 | toolStripOpenDataFolder|Открыть папку данных 38 | toolStripToggleMouseCursorVisibility|Переключить видимость курсора мыши 39 | toolStripToggleWindowsTaskbar|Переключить видимость панели задач 40 | toolStripFullApplicationRefresh|Обновить список приложений 41 | toolStripDisableSteamIntegration|Выключить интеграцию со Steam 42 | # Help Menu 43 | toolStripInfo|Помощь 44 | toolStripUsageGuide|Руководство 45 | toolStripRegexReference|Ссылка на Regex 46 | toolStripReportBug|Сообщить об ошибке 47 | toolStripSupportUs|Поддержать нас 48 | toolStripAbout|О программе 49 | # Process Context Menu 50 | contextAddToFavs|Добавить в избранное... 51 | toolStripByTheWindowTitle|... по заголовку окна 52 | toolStripByRegex|... по заголовку окна (regex) 53 | toolStripByProcess|... по названию процесса 54 | contextBorderless|Сделать безрамочным 55 | contextBorderlessOn|Сделать безрамочным на... 56 | toolStripSetWindowTitle|Изменить заголовок окна 57 | toolStripHideProcess|Скрыть этот процесс 58 | # Favorite Context Menu 59 | toolStripFullScreen|Полноэкранный 60 | toolStripNoSizeChange|Без изменения размера 61 | toolStripSetSetWindowSize|Изменить размер окна 62 | toolStripAutomaximize|Авт. разворачивать окно 63 | toolStripAdjustWindowBounds|Изменить границы окна 64 | toolStripAlwaysOnTop|Поверх всех окон 65 | toolStripDelayBorderless|Задерживать безрамочное окно 66 | toolStripHideMouseCursor|Скрыть курсор мыши 67 | toolStripHideWindowsTaskbar|Скрыть панель задач 68 | toolStripRemoveMenus|Удалить меню 69 | contextFavScreen|Выбрать избранный экран... 70 | toolStripMuteInBackground|Выключить звук на фоне 71 | contextRemoveFromFavs|Удалить из избранного 72 | # UI 73 | superSize|SuperSize! 74 | processLabel|Приложения: 75 | favoritesLabel|Избранные (авт.): 76 | statusLabel|Загрузка... 77 | moreOptionsLabel|ПКМ для изменения параметров. Последнее обновление: 78 | # Tool Tips 79 | steamHint|Убрать надпись "В программе" в Steam 80 | addFavorite|Добавить выбранное приложение в список избранных (по заголовку окна). 81 | removeFavorite|Удалить выбранное приложение из списка избранных. 82 | makeBorderless|Сделать выбранное приложение безрамочным. 83 | restoreBorders|Восстановить прежнее состояние окна. -------------------------------------------------------------------------------- /Languages/sl-SI.lang: -------------------------------------------------------------------------------- 1 | # Popups 2 | 3 | setWindowSizeTitle|Nastavi Velikost Oknja 4 | setWindowSizePixelPrompt|Začetna {0} lokacija piksla za zgornji levi kot ({0} koordinate): 5 | setWindowSizeWidthPrompt|Širina oknja (v pikslih): 6 | setWindowSizeHeightPrompt|Višina oknja (v pikslih): 7 | setWindowSizeMouseTitle|Izberi območje? 8 | setWindowSizeMousePrompt|Bi izbrali območje z miško?\r\n\r\nČe ne bi, boste vprašani za določeno dimenzijo pikslov. 9 | adjustWindowBoundsTitle|Prilagodite meje oknja 10 | adjustWindowBoundsPrompt|Prilagoditev pikslov za {0} rob oknja (0 pikslov = ni prilagoditve): 11 | adjustWindowBoundsLeft|levo 12 | adjustWindowBoundsRight|desno 13 | adjustWindowBoundsTop|zgoraj 14 | adjustWindowBoundsBottom|spodaj 15 | settingConfirmationTitle|Potrdite spremembe 16 | settingConfirmationPrompt|Za veljavnost sprememb morate ponovno zagnati Borderless Gaming. Ponovno zaženite sedaj? 17 | setWindowTitleTitle|Nastavi naslov oknja 18 | setWindowTitlePrompt|Nastavite naslov novega oknja: 19 | toggleMouseCursorVisibilityTitle|Sigurno želite skriti kazalo miške? 20 | toggleMouseCursorVisibilityPrompt|Sigurno želite skriti kazalo miške?\r\n\r\nTežje boste našli položaj miškinega kazalca, ko je skrit.\r\n\r\nČe imate navedeno globalno bližnjico za preklopitev prikaza miškinega kazalca, lahko pritisnite [Win + Scroll Lock] za priklop miškinega kazalca.\r\n\r\n\r\nPoleg tega, ugasnitev Borderless Gaming bo ponovno vrnilo vaš miškin kazalec. 21 | 22 | # Options Menu 23 | 24 | toolStripOptions|Nastavite 25 | toolStripRunOnStartup|Zaženi po pogonu 26 | toolStripLanguages|Izberi jezik 27 | toolStripCheckForUpdates|Preveri za posodobitve 28 | toolStripGlobalHotkey|Uporabi globalno bližnjico 29 | toolStripMouseLock|Uporabi bližnjico Zakleni miško 30 | toolStripMouseHide|Uporabi bližnjico Skrij miško 31 | toolStripMinimizedToTray|Zaženi minimizirano v orodni vrstici 32 | toolStripCloseToTray|Zapri oknjo v orodno vrstico 33 | toolStripHideBalloonTips|Ne prikaži balonskih nasvetov 34 | toolStripSlowWindowDetection|Uporabi počasnejšo zaznavo oknjov 35 | toolStripViewFullProcessDetails|Prikaži celotne detajle procesa 36 | toolStripRestoreProcesses|Ponastavi vse skrite aplikacije 37 | 38 | # Tools Menu 39 | 40 | toolsToolStripMenuItem|Orodja 41 | toolStripPauseAutomaticProcessing|Pavziraj avtomatično procesiranje 42 | toolStripOpenDataFolder|Odpri mapo z podatki 43 | toolStripToggleMouseCursorVisibility|Preklopi vidljivost miškinega kazalca 44 | toolStripToggleWindowsTaskbar|Preklopi vidljivost Windows opravilne vrstice 45 | toolStripFullApplicationRefresh|Popolna osvežitev aplikacije 46 | toolStripDisableSteamIntegration|Izklopite Steam integracijo 47 | 48 | # Help Menu 49 | 50 | toolStripInfo|Pomoč 51 | toolStripUsageGuide|Navodila uporabe 52 | toolStripRegexReference|Regex referenca 53 | toolStripReportBug|Prijavite napako 54 | toolStripSupportUs|Podpirajte Nas 55 | toolStripAbout|O programu 56 | 57 | # Process Context Menu 58 | 59 | contextAddToFavs|Dodaj k priljubljenimi... 60 | toolStripByTheWindowTitle|... ob naslovnemu textu oknja 61 | toolStripByRegex|... ob naslovnemu textu oknja (regex) 62 | toolStripByProcess|... pri binarnem imenu procesa 63 | contextBorderless|Odstrani robove 64 | contextBorderlessOn|Odstrani robove na... 65 | toolStripSetWindowTitle|Nastavite naslov oknja 66 | toolStripHideProcess|Skrijte ta proces 67 | 68 | # Favorite Context Menu 69 | 70 | toolStripFullScreen|Polni zaslon 71 | toolStripNoSizeChange|Ne spremeni velikost 72 | toolStripSetSetWindowSize|Nastavi velikost oknja 73 | toolStripAutomaximize|Avtomatično maksimiranje 74 | toolStripAdjustWindowBounds|Prilagodite meje oknja 75 | toolStripAlwaysOnTop|Vedno na vrhu 76 | toolStripDelayBorderless|Nastavi zamudo oknja brez robov 77 | toolStripHideMouseCursor|Skrij kazalec miške 78 | toolStripHideWindowsTaskbar|Skrij Windows opravilno vrstico 79 | toolStripRemoveMenus|Ne prikaži menijev 80 | contextFavScreen|Izberi priljubljeni zaslon... 81 | toolStripMuteInBackground|Zamolči v ozadju 82 | contextRemoveFromFavs|Odstrani od prijljubjenih 83 | 84 | # UI 85 | 86 | superSize|SuperSize! Super povečava! 87 | processLabel|Aplikacije: 88 | favoritesLabel|Priljubljeni (avtomatično): 89 | statusLabel|Nalaganje... 90 | moreOptionsLabel|Desni klik za več opcij. Nazadnje posodobljeno 91 | 92 | # Tool Tips 93 | 94 | steamHint|Onemogoči "In-App" v Steam-u 95 | addFavorite|Dodaj trenutno izbrane aplikacije v list priljubljenih (v redu okenjskih naslovov). 96 | removeFavorite|Odstrani trenutno izbrane aplikacije iz lista priljubljenih. 97 | makeBorderless|Naredi trenutno izbrano aplikacijo brez robov. 98 | restoreBorders|Poskusi ponastaviti oknjo v stanje z robovi. -------------------------------------------------------------------------------- /Languages/zh-CN.lang: -------------------------------------------------------------------------------- 1 | # Popups 2 | setWindowSizeTitle|设置窗口标题 3 | setWindowSizePixelPrompt|请输入窗口左上角的{0}坐标({0}以像素为单位): 4 | setWindowSizeWidthPrompt|窗口宽度(以像素为单位): 5 | setWindowSizeHeightPrompt|窗口高度(以像素为单位): 6 | setWindowSizeMouseTitle|使用鼠标选择区域? 7 | setWindowSizeMousePrompt|您要使用鼠标选择区域吗?如果您选择否,系统将提示您输入具体的像素尺寸。 8 | adjustWindowBoundsTitle|调整窗口边界 9 | adjustWindowBoundsPrompt|您想为窗口{0}边缘调整的像素 (设置为0时不调整): 10 | adjustWindowBoundsLeft|左 11 | adjustWindowBoundsRight|右 12 | adjustWindowBoundsTop|上 13 | adjustWindowBoundsBottom|下 14 | settingConfirmationTitle|确认您的更改 15 | settingConfirmationPrompt|您必须重新启动本软件才能使您的更改生效,现在重启? 16 | setWindowTitleTitle|设置窗口标题 17 | setWindowTitlePrompt|设置新的窗口标题: 18 | toggleMouseCursorVisibilityTitle|真的要隐藏鼠标吗? 19 | toggleMouseCursorVisibilityPrompt|您真的要隐藏鼠标吗?一旦隐藏,你可能很难再找到鼠标。如果已经启用了全局鼠标隐藏热键,您可以按[Win + Scroll Lock]来切换鼠标可见性。此外,退出Borderless Gaming将立即恢复鼠标光标。 20 | # Options Menu 21 | toolStripOptions|选项 22 | toolStripRunOnStartup|开机启动 23 | toolStripLanguages|选择语言 24 | toolStripCheckForUpdates|检查更新 25 | toolStripGlobalHotkey|使用全局热键 26 | toolStripMouseLock|使用鼠标锁定热键 27 | toolStripMouseHide|使用鼠标隐藏热键 28 | toolStripMinimizedToTray|开启时最小化到托盘 29 | toolStripCloseToTray|关闭时最小化到托盘 30 | toolStripHideBalloonTips|隐藏气泡提示 31 | toolStripSlowWindowDetection|使用较慢的窗口检测 32 | toolStripViewFullProcessDetails|查看详细进程信息 33 | toolStripRestoreProcesses|恢复所有隐藏的应用 34 | # Tools Menu 35 | toolsToolStripMenuItem|工具 36 | toolStripPauseAutomaticProcessing|暂停自动处理 37 | toolStripOpenDataFolder|打开数据文件夹 38 | toolStripToggleMouseCursorVisibility|切换鼠标可见性 39 | toolStripToggleWindowsTaskbar|切换Windows任务栏可见性 40 | toolStripFullApplicationRefresh|完全刷新应用程序 41 | toolStripDisableSteamIntegration|禁用Steam集成 42 | # Help Menu 43 | toolStripInfo|帮助 44 | toolStripUsageGuide|使用指南 45 | toolStripRegexReference|正则表达式参考 46 | toolStripReportBug|报告错误 47 | toolStripSupportUs|支持我们 48 | toolStripAbout|关于 49 | # Process Context Menu 50 | contextAddToFavs|添加到自动处理列表... 51 | toolStripByTheWindowTitle|以窗口标题识别 52 | toolStripByRegex|以窗口标题识别 (使用正则表达式) 53 | toolStripByProcess|以进程可执行文件名识别 54 | contextBorderless|无边框化 55 | contextBorderlessOn|在...上无边框 56 | toolStripSetWindowTitle|设置窗口标题 57 | toolStripHideProcess|隐藏这个进程 58 | # Favorite Context Menu 59 | toolStripFullScreen|全屏 60 | toolStripNoSizeChange|尺寸不改变 61 | toolStripSetSetWindowSize|设置窗口尺寸 62 | toolStripAutomaximize|自动最大化 63 | toolStripAdjustWindowBounds|调整窗口边框 64 | toolStripAlwaysOnTop|保持窗口在顶部 65 | toolStripDelayBorderless|延迟无边框化窗口 66 | toolStripHideMouseCursor|隐藏鼠标指针 67 | toolStripHideWindowsTaskbar|隐藏Windows任务栏 68 | toolStripRemoveMenus|隐藏菜单 69 | contextFavScreen|Select Favorite Screen... 70 | toolStripMuteInBackground|应用程序后台运行时静音 71 | contextRemoveFromFavs|移出自动处理列表 72 | # UI 73 | superSize|SuperSize! 74 | processLabel|应用程序: 75 | favoritesLabel|自动处理列表: 76 | statusLabel|载入中... 77 | moreOptionsLabel|右键单击查看更多选项。最后更新于 78 | # Tool Tips 79 | steamHint|可脱离Steam启动。 80 | addFavorite|将当前选择的应用程序添加到自动处理列表(以窗口标题识别)。 81 | removeFavorite|将当前选择的应用程序移出自动处理列表。 82 | makeBorderless|使当前选择的应用程序无边框。 83 | restoreBorders|尝试将当前选择的应用程序窗口化。 -------------------------------------------------------------------------------- /Languages/zh-TW.lang: -------------------------------------------------------------------------------- 1 | # Popups 2 | setWindowSizeTitle|設定視窗大小 3 | setWindowSizePixelPrompt|請輸入視窗左上角的 {0} 坐標({0} 以像素為單位): 4 | setWindowSizeWidthPrompt|視窗寬度 (以像素為單位): 5 | setWindowSizeHeightPrompt|視窗高度 (以像素為單位): 6 | setWindowSizeMouseTitle|使用滑鼠指標選擇區域? 7 | setWindowSizeMousePrompt|您要使用滑鼠指標選擇區域嗎?\r\n\r\n如果您選擇否,系統將提示您輸入具體的像素尺寸。 8 | adjustWindowBoundsTitle|調整視窗邊框 9 | adjustWindowBoundsPrompt|您想為視窗{0}邊緣調整的像素 (設定為 0 時不調整): 10 | adjustWindowBoundsLeft|左 11 | adjustWindowBoundsRight|右 12 | adjustWindowBoundsTop|上 13 | adjustWindowBoundsBottom|下 14 | settingConfirmationTitle|確認您的變更 15 | settingConfirmationPrompt|您必須重新啟動 Borderless Gaming 才能使您的變更生效,現在重啟? 16 | setWindowTitleTitle|設定視窗標題 17 | setWindowTitlePrompt|設定新的視窗標題: 18 | toggleMouseCursorVisibilityTitle|真的要隱藏滑鼠指標嗎? 19 | toggleMouseCursorVisibilityPrompt|您真的要隱藏滑鼠指標嗎?\r\n\r\n一旦隱藏,您可能很難再找到滑鼠指標。 如果已經啟用了全域滑鼠指標隱藏熱鍵,您可以按下 [Win + Scroll Lock] 來切換滑鼠指標的可見性。\r\n\r\n此外,退出 Borderless Gaming 將立即恢復滑鼠指標。 20 | # Options Menu 21 | toolStripOptions|選項 22 | toolStripRunOnStartup|開機啟動 23 | toolStripLanguages|選擇語言 24 | toolStripCheckForUpdates|檢查更新 25 | toolStripGlobalHotkey|使用全域熱鍵 26 | toolStripMouseLock|使用滑鼠指標鎖定熱鍵 27 | toolStripMouseHide|使用滑鼠指標隱藏熱鍵 28 | toolStripMinimizedToTray|開啟時最小化到工作列 29 | toolStripCloseToTray|關閉時最小化到工作列 30 | toolStripHideBalloonTips|隱藏氣泡提示 31 | toolStripSlowWindowDetection|使用較慢的視窗偵測 32 | toolStripViewFullProcessDetails|檢視詳細程序訊息 33 | toolStripRestoreProcesses|恢復所有隱藏的應用程式 34 | # Tools Menu 35 | toolsToolStripMenuItem|工具 36 | toolStripPauseAutomaticProcessing|暫停自動處理 37 | toolStripOpenDataFolder|開啟數據資料夾 38 | toolStripToggleMouseCursorVisibility|切換滑鼠指標可見性 39 | toolStripToggleWindowsTaskbar|切換 Windows 工作列可見性 40 | toolStripFullApplicationRefresh|完全重整應用程式程序 41 | toolStripDisableSteamIntegration|停用 Steam 內嵌介面 42 | # Help Menu 43 | toolStripInfo|幫助 44 | toolStripUsageGuide|使用指南 45 | toolStripRegexReference|正則表達式參考 46 | toolStripReportBug|報告錯誤 47 | toolStripSupportUs|支持我們 48 | toolStripAbout|關於 49 | # Process Context Menu 50 | contextAddToFavs|加入到我的最愛... 51 | toolStripByTheWindowTitle|... 以視窗標題識別 52 | toolStripByRegex|... 以視窗標題識別 (使用正則表達式) 53 | toolStripByProcess|... 以程序可執行檔案名稱識別 54 | contextBorderless|無邊框化 55 | contextBorderlessOn|在...上無邊框 56 | toolStripSetWindowTitle|設定視窗標題 57 | toolStripHideProcess|隱藏這個程序 58 | # Favorite Context Menu 59 | toolStripFullScreen|全螢幕 60 | toolStripNoSizeChange|尺寸不改變 61 | toolStripSetSetWindowSize|設定視窗尺寸 62 | toolStripAutomaximize|自動最大化 63 | toolStripAdjustWindowBounds|調整視窗邊框 64 | toolStripAlwaysOnTop|保持視窗在最上層 65 | toolStripDelayBorderless|延遲無邊框化視窗 66 | toolStripHideMouseCursor|隱藏滑鼠指標 67 | toolStripHideWindowsTaskbar|隱藏 Windows 工作列 68 | toolStripRemoveMenus|隱藏選單 69 | contextFavScreen|選擇螢幕到我的最愛... 70 | toolStripMuteInBackground|應用程式程序背景執行時靜音 71 | contextRemoveFromFavs|從我的最愛中移除 72 | # UI 73 | superSize|超級大小! 74 | processLabel|應用程式程序: 75 | favoritesLabel|我的最愛(自動處理): 76 | statusLabel|載入中... 77 | moreOptionsLabel|右鍵點擊檢視更多選項。 最後更新於 78 | # Tool Tips 79 | steamHint|防止在 Steam 上的 "使用程式中" 80 | addFavorite|將目前選擇的應用程式程序加入到自動處理列表(以視窗標題識別)。 81 | removeFavorite|將目前選擇的應用程式程序移出自動處理列表。 82 | makeBorderless|使目前選擇的應用程式程序無邊框。 83 | restoreBorders|嘗試將目前選擇的應用程式程序視窗化。 -------------------------------------------------------------------------------- /Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Resources; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | 9 | [assembly: AssemblyTitle("Borderless Gaming")] 10 | [assembly: AssemblyDescription("Play your favorite games in a borderless window; no more time-consuming Alt-Tabs!")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("Andrew Sampson")] 13 | [assembly: AssemblyProduct("Borderless Gaming")] 14 | [assembly: AssemblyCopyright("Copyright © 2014-2018 Andrew Sampson")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | 18 | // Setting ComVisible to false makes the types in this assembly not visible 19 | // to COM components. If you need to access a type in this assembly from 20 | // COM, set the ComVisible attribute to true on that type. 21 | 22 | [assembly: ComVisible(false)] 23 | 24 | // The following GUID is for the ID of the typelib if this project is exposed to COM 25 | 26 | [assembly: Guid("a4ec5be3-e7a6-4d82-825a-b697248925dc")] 27 | 28 | // Version information for an assembly consists of the following four values: 29 | // 30 | // Major Version 31 | // Minor Version 32 | // Build Number 33 | // Revision 34 | // 35 | // You can specify all the values or you can default the Build and Revision Numbers 36 | // by using the '*' as shown below: 37 | // [assembly: AssemblyVersion("1.0.*")] 38 | 39 | [assembly: AssemblyVersion("9.4.6.1328")] 40 | [assembly: AssemblyFileVersion("9.4.6.1328")] 41 | [assembly: NeutralResourcesLanguage("en-US")] -------------------------------------------------------------------------------- /Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace BorderlessGaming.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | public class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | public static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("BorderlessGaming.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | public static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.Drawing.Bitmap. 65 | /// 66 | public static System.Drawing.Bitmap add { 67 | get { 68 | object obj = ResourceManager.GetObject("add", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | 73 | /// 74 | /// Looks up a localized resource of type System.Byte[]. 75 | /// 76 | public static byte[] blank { 77 | get { 78 | object obj = ResourceManager.GetObject("blank", resourceCulture); 79 | return ((byte[])(obj)); 80 | } 81 | } 82 | 83 | /// 84 | /// Looks up a localized resource of type System.Drawing.Bitmap. 85 | /// 86 | public static System.Drawing.Bitmap bordered { 87 | get { 88 | object obj = ResourceManager.GetObject("bordered", resourceCulture); 89 | return ((System.Drawing.Bitmap)(obj)); 90 | } 91 | } 92 | 93 | /// 94 | /// Looks up a localized resource of type System.Drawing.Bitmap. 95 | /// 96 | public static System.Drawing.Bitmap borderless { 97 | get { 98 | object obj = ResourceManager.GetObject("borderless", resourceCulture); 99 | return ((System.Drawing.Bitmap)(obj)); 100 | } 101 | } 102 | 103 | /// 104 | /// Looks up a localized string similar to Unable to save favorites. Do you have permission?\r\n\r\nDetailed Error: {0}. 105 | /// 106 | public static string ErrorFavoritesSave { 107 | get { 108 | return ResourceManager.GetString("ErrorFavoritesSave", resourceCulture); 109 | } 110 | } 111 | 112 | /// 113 | /// Looks up a localized string similar to Error. 114 | /// 115 | public static string ErrorHeader { 116 | get { 117 | return ResourceManager.GetString("ErrorHeader", resourceCulture); 118 | } 119 | } 120 | 121 | /// 122 | /// Looks up a localized string similar to Borderless Gaming encountered an error checking for updates. Restart the program to try again.. 123 | /// 124 | public static string ErrorUpdates { 125 | get { 126 | return ResourceManager.GetString("ErrorUpdates", resourceCulture); 127 | } 128 | } 129 | 130 | /// 131 | /// Looks up a localized string similar to A new version of Borderless Gaming is available. Would you like to go to the release page?. 132 | /// 133 | public static string InfoUpdateAvailable { 134 | get { 135 | return ResourceManager.GetString("InfoUpdateAvailable", resourceCulture); 136 | } 137 | } 138 | 139 | /// 140 | /// Looks up a localized string similar to Update available. 141 | /// 142 | public static string InfoUpdatesHeader { 143 | get { 144 | return ResourceManager.GetString("InfoUpdatesHeader", resourceCulture); 145 | } 146 | } 147 | 148 | /// 149 | /// Looks up a localized resource of type System.Drawing.Bitmap. 150 | /// 151 | public static System.Drawing.Bitmap remove { 152 | get { 153 | object obj = ResourceManager.GetObject("remove", resourceCulture); 154 | return ((System.Drawing.Bitmap)(obj)); 155 | } 156 | } 157 | 158 | /// 159 | /// Looks up a localized string similar to {0} is minimized.. 160 | /// 161 | public static string TrayMinimized { 162 | get { 163 | return ResourceManager.GetString("TrayMinimized", resourceCulture); 164 | } 165 | } 166 | } 167 | } 168 | -------------------------------------------------------------------------------- /Properties/Resources.de.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | Favoriten konnten nicht gespeichert werden. Haben Sie die benötigten Berechtigungen?\r\n\r\nFehler-Details: {0} 122 | 123 | 124 | Fehler 125 | 126 | 127 | Bei der Suche nach Updates trat ein Fehler auf. Starten Sie das Programm erneut um die Suche zu wiederholen. 128 | 129 | 130 | Eine neue Version von Borderless Gaming ist verfügbar. Möchten Sie die Downloadseite jetzt besuchen? 131 | 132 | 133 | Aktualisierung verfügbar 134 | 135 | 136 | {0} wurde minimiert. 137 | 138 | -------------------------------------------------------------------------------- /Properties/Resources.ru.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | Невозможно добавить в избранное. У вас есть привилегии?\r\n\r\nПодробности: {0} 122 | 123 | 124 | Ошибка 125 | 126 | 127 | Возникла ошибка при поиске обновлений. Перезапустите программу и попытайтесь снова. 128 | 129 | 130 | Доступна новая версия Borderless Gaming. Хотите перейти на страницу загрузки? 131 | 132 | 133 | Доступно обновление 134 | 135 | 136 | {0} свернут в трей. 137 | 138 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
5 |
6 | 7 | 8 | # What is this? 9 | 10 | Borderless Gaming is a simple tool that will allow you to turn your windowed video games into "fullscreen" applications without all of the negative side effects 11 | 12 | The project is open source under the [GNU General Public License v2.0](https://github.com/Codeusa/Borderless-Gaming/blob/master/LICENSE). 13 | 14 | 15 | ![Before Borderless-Gaming](http://cdn.akamai.steamstatic.com/steam/apps/388080/ss_a599d209638e8db8af430b7e9028c490c3c24f78.1920x1080.jpg?t=1437672493) 16 | 17 | ![After Borderless-Gaming](http://cdn.akamai.steamstatic.com/steam/apps/388080/ss_3f6206f211ea573e6013665f5bca126c6ba895ce.1920x1080.jpg?t=1437672493) 18 | 19 | ![Image](http://cdn.akamai.steamstatic.com/steam/apps/388080/ss_0bb8cabe18249b7fdc16376723e0fd6110bd7c4e.1920x1080.jpg?t=1437672493) 20 | 21 | 22 | ## How to install and run Borderless-Gaming 23 | 24 | #### Buy through Steam and run it 25 | [Can be purchased here](http://store.steampowered.com/app/388080). 26 | 27 | #### Install from Source 28 | 29 | - Clone with repository 30 | 31 | - Open the solution inside Visual Studio 2017 32 | 33 | - Select the "Release" option 34 | 35 | - Build the projects and use the generated executable 36 | 37 | 38 | #### Usage 39 | [A detailed guide can be found here](https://steamcommunity.com/app/388080/discussions/0/535151589899658778/). 40 | 41 | #### Need help? 42 | contact me on my [Website](http://andrew.im) 43 | 44 | or if you're suffering from crashes or bugs submit information [here](https://github.com/Codeusa/Borderless-Gaming/issues?state=open) 45 | 46 | 47 | ## Helping Borderless-Gaming 48 | 49 | **I want to help with the code:** I accept pull-requests, please see the [Contributing to Borderless-Gaming](https://github.com/Codeusa/Borderless-Gaming/blob/master/CONTRIBUTING.md) guide for information on contributing to this project. And don't forget to add your contact informations on the AUTHORS list. 50 | 51 | **I found a bug:** File it as an [issue](https://github.com/Codeusa/Borderless-Gaming/issues) and please describe as much as possible the bug and the context. 52 | 53 | **I have a new suggestion:** For feature requests please first check [the issues list](https://github.com/Codeusa/Borderless-Gaming/issues) to see if it's already there. If not, feel free to file it as an issue and to define the label **enhancement**. 54 | 55 | ## Contact info 56 | 57 | * **Twitter:** [@AndrewMD5](https://twitter.com/andrewmd5) 58 | * **Blog:** [blog.andrew.im](http://blog.andrew.im) 59 | 60 | # Join our Steam Group! 61 | [Borderless Gaming on Steam](https://steamcommunity.com/app/388080/discussions/) 62 | -------------------------------------------------------------------------------- /SteamLibs/Facepunch.Steamworks.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/SteamLibs/Facepunch.Steamworks.dll -------------------------------------------------------------------------------- /SteamLibs/steam_api.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/SteamLibs/steam_api.dll -------------------------------------------------------------------------------- /SteamLibs/steam_appid.txt: -------------------------------------------------------------------------------- 1 | 388080 -------------------------------------------------------------------------------- /Tools/DigiCertUtil.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/Tools/DigiCertUtil.exe -------------------------------------------------------------------------------- /data/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/data/add.png -------------------------------------------------------------------------------- /data/blank.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/data/blank.cur -------------------------------------------------------------------------------- /data/bordered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/data/bordered.png -------------------------------------------------------------------------------- /data/borderless.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/data/borderless.png -------------------------------------------------------------------------------- /data/globe-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/data/globe-green.png -------------------------------------------------------------------------------- /data/remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/data/remove.png -------------------------------------------------------------------------------- /data/steam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codeusa/Borderless-Gaming/3cc4dc6bd580b263287be45981f1e36036daf4eb/data/steam.png -------------------------------------------------------------------------------- /version.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9.5.6 4 | https://github.com/Codeusa/Borderless-Gaming/releases/latest 5 | 6 | --------------------------------------------------------------------------------