mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 14:07:46 +08:00
Compare commits
148 Commits
20251007-v
...
20251017-v
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
21ab172041 | ||
|
|
d6c2c2158a | ||
|
|
0c50e2d78e | ||
|
|
64183e8e7d | ||
|
|
b9595d1650 | ||
|
|
fa3be420b8 | ||
|
|
e2d1929553 | ||
|
|
4f05e8dbe9 | ||
|
|
ea9e79d930 | ||
|
|
e1a8d60cd7 | ||
|
|
4e20049ea3 | ||
|
|
89ccd33fd1 | ||
|
|
4668104e36 | ||
|
|
b4aa30de23 | ||
|
|
526cb1fb47 | ||
|
|
03b395ee15 | ||
|
|
4125344254 | ||
|
|
531e117731 | ||
|
|
588fdca4d7 | ||
|
|
285ca46c18 | ||
|
|
8bdb83eb73 | ||
|
|
d38b71d5ea | ||
|
|
687f06937d | ||
|
|
e0799a6772 | ||
|
|
4943dce1a8 | ||
|
|
8dee5c0d3c | ||
|
|
018b07299e | ||
|
|
6f52b82a6d | ||
|
|
e1ee905286 | ||
|
|
6853b158ce | ||
|
|
d705b8a45d | ||
|
|
cfb707d20f | ||
|
|
3aedc938cb | ||
|
|
c70e4c66e6 | ||
|
|
b727dbd604 | ||
|
|
cd7f237920 | ||
|
|
a1db763060 | ||
|
|
01e22740ce | ||
|
|
6b52b6b062 | ||
|
|
6781fd57af | ||
|
|
8b22c7812d | ||
|
|
80c1391361 | ||
|
|
c77e6b8616 | ||
|
|
e04ace4820 | ||
|
|
d89ea96b34 | ||
|
|
d5d9a8bf03 | ||
|
|
ecb935868d | ||
|
|
d736d3c388 | ||
|
|
2520ccd6be | ||
|
|
4307dd043e | ||
|
|
4ae8e4252b | ||
|
|
995f03d03e | ||
|
|
2965f598ac | ||
|
|
0ad6f5aea1 | ||
|
|
c6fe8ff1f1 | ||
|
|
a3a6917bf8 | ||
|
|
1d8484957e | ||
|
|
6ab67ee844 | ||
|
|
11fa059b1b | ||
|
|
847115abd6 | ||
|
|
a5a0a310ce | ||
|
|
a72582b10f | ||
|
|
929e22dc5a | ||
|
|
ec4bca9bc0 | ||
|
|
0648541ce1 | ||
|
|
77529f29f5 | ||
|
|
02cf1739c0 | ||
|
|
ccd955ca7e | ||
|
|
1af3b03fa8 | ||
|
|
cc28186f73 | ||
|
|
103bc8bd8b | ||
|
|
9bcf7af467 | ||
|
|
8d10980875 | ||
|
|
57d4945d71 | ||
|
|
11febb93bd | ||
|
|
cc9b83b0f8 | ||
|
|
54386924d7 | ||
|
|
35417bc05d | ||
|
|
8b212dd87f | ||
|
|
488035e124 | ||
|
|
9129edb725 | ||
|
|
6f3882e0ca | ||
|
|
f810f6aa85 | ||
|
|
6f13111c4c | ||
|
|
fcca1a1fa3 | ||
|
|
ac0aa9e33b | ||
|
|
6109ff7783 | ||
|
|
4d2d24efb3 | ||
|
|
e2b7081b9e | ||
|
|
6ba7fedc18 | ||
|
|
3973fae8ef | ||
|
|
77752f494f | ||
|
|
71574b62cb | ||
|
|
546ba16366 | ||
|
|
f61ca2ad17 | ||
|
|
781afd1c3b | ||
|
|
2bfd8495ab | ||
|
|
094fa65ad6 | ||
|
|
ec2a652d74 | ||
|
|
1b55645b81 | ||
|
|
5c02581c81 | ||
|
|
62cc4780ca | ||
|
|
8f26d57f40 | ||
|
|
3bd2fe889a | ||
|
|
492a2629c2 | ||
|
|
b64ddf32ff | ||
|
|
e86a550985 | ||
|
|
fcccdacb99 | ||
|
|
487de4c29b | ||
|
|
d36c6cb067 | ||
|
|
a4b704252b | ||
|
|
93e8d26a75 | ||
|
|
0a3ecaac64 | ||
|
|
ea6b762021 | ||
|
|
265a43e31c | ||
|
|
6d156586ac | ||
|
|
68e3f607a3 | ||
|
|
0b240a3902 | ||
|
|
4082761606 | ||
|
|
e68c42ba64 | ||
|
|
347546ee0e | ||
|
|
ca717d6b80 | ||
|
|
5d623d80eb | ||
|
|
a2edbd9934 | ||
|
|
5830f39d50 | ||
|
|
0aa0b59635 | ||
|
|
3c6a485647 | ||
|
|
bbe1fa8416 | ||
|
|
ac4469bb4a | ||
|
|
9e61e8eafa | ||
|
|
b193199268 | ||
|
|
f8b7d37af1 | ||
|
|
b3e9202d72 | ||
|
|
0f819ade56 | ||
|
|
d682afcde2 | ||
|
|
e67754ee9f | ||
|
|
4897771fbf | ||
|
|
4128f3404a | ||
|
|
7bc25ceb38 | ||
|
|
f77f0f5e04 | ||
|
|
0e666efaad | ||
|
|
e2893b9516 | ||
|
|
fb86b13948 | ||
|
|
e22cc6921d | ||
|
|
42fdd91206 | ||
|
|
2329d95002 | ||
|
|
8dda6ba13f | ||
|
|
156e2b8056 |
2
.github/workflows/Build_mR-NB.yml
vendored
2
.github/workflows/Build_mR-NB.yml
vendored
@@ -139,7 +139,7 @@ jobs:
|
||||
|
||||
- name: (10) Create release
|
||||
id: create_release
|
||||
uses: softprops/action-gh-release@aec2ec56f94eb8180ceec724245f64ef008b89f5 # v2
|
||||
uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
|
||||
with:
|
||||
|
||||
@@ -17,7 +17,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
- #2734: fix native build for Windows-x64
|
||||
|
||||
### Added
|
||||
- #2728 Add support for building mRemoteNG on Windows ARM64
|
||||
- #2212: Add 1Password integration
|
||||
- #2865: Add configurable connection tab colors to distinguish between different environments
|
||||
- #2864: Add Color property to connections and folders with inheritance support
|
||||
- #2863: Add ARD (Apple Remote Desktop) protocol support for macOS connections
|
||||
- #2728: Add support for building mRemoteNG on Windows ARM64
|
||||
- #2723: Read keyboardhook, gatewayaccesstoken and gatewaycredentialssource from RDP File
|
||||
- #2690: தமிழ் (ta) Translation update
|
||||
- #2643: Registry Settings: enhancements and new settings implementation
|
||||
@@ -29,6 +33,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
- #2502: Updated Polish translation
|
||||
|
||||
### Dependency update
|
||||
- #3bd2fe8: puttyng updated to x64 version (and signed)
|
||||
|
||||
## [1.77.3.1784]
|
||||
### Fixed
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
# Contributors
|
||||
|
||||
## Current mRemoteNG dev team
|
||||
[Dimitrij Gorodeckij](https://github.com/Kvarkas)
|
||||
|
||||
## Past Contributors
|
||||
[David Sparer](http://github.com/sparerd)
|
||||
[Sean Kaim](http://github.com/kmscode)
|
||||
[Faryan Rezagholi](http://github.com/farosch)
|
||||
@@ -28,8 +30,6 @@ Tony Lambert
|
||||
[MitchellBot](http://github.com/MitchellBot)
|
||||
[Filippo Ferrazini](http://github.com/Filippo125)
|
||||
|
||||
## Past Contributors
|
||||
|
||||
Felix Deimel - mRemote original developer
|
||||
Riley McArdle - mRemoteNG original developer
|
||||
|
||||
|
||||
@@ -5,26 +5,26 @@
|
||||
<NoWarn>$(NoWarn);NU1507</NoWarn>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageVersion Include="AWSSDK.Core" Version="4.0.0.32" />
|
||||
<PackageVersion Include="AWSSDK.EC2" Version="4.0.40.4" />
|
||||
<PackageVersion Include="AWSSDK.Core" Version="4.0.1.1" />
|
||||
<PackageVersion Include="AWSSDK.EC2" Version="4.0.43.1" />
|
||||
<PackageVersion Include="BouncyCastle.Cryptography" Version="2.6.2" />
|
||||
<PackageVersion Include="Castle.Core" Version="5.2.1" />
|
||||
<PackageVersion Include="ConsoleControl" Version="1.3.0" />
|
||||
<PackageVersion Include="ConsoleControlAPI" Version="1.3.0" />
|
||||
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
|
||||
<PackageVersion Include="Cucumber.Messages" Version="30.0.0" />
|
||||
<PackageVersion Include="Cucumber.Messages" Version="30.1.0" />
|
||||
<PackageVersion Include="DockPanelSuite" Version="3.1.1" />
|
||||
<PackageVersion Include="DockPanelSuite.ThemeVS2015" Version="3.1.1" />
|
||||
<PackageVersion Include="envdte" Version="17.14.40260" />
|
||||
<PackageVersion Include="Gherkin" Version="35.1.0" />
|
||||
<PackageVersion Include="Google.Protobuf" Version="3.32.1" />
|
||||
<PackageVersion Include="Gherkin" Version="36.0.0" />
|
||||
<PackageVersion Include="Google.Protobuf" Version="3.33.0" />
|
||||
<PackageVersion Include="LiteDB" Version="5.0.21" />
|
||||
<PackageVersion Include="log4net" Version="3.2.0" />
|
||||
<PackageVersion Include="Microsoft.Data.SqlClient" Version="6.1.1" />
|
||||
<PackageVersion Include="Microsoft.Data.SqlClient" Version="6.1.2" />
|
||||
<PackageVersion Include="Microsoft.Data.SqlClient.SNI" Version="6.0.2" />
|
||||
<PackageVersion Include="Microsoft.Data.SqlClient.SNI.runtime" Version="6.0.2" />
|
||||
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="9.0.9" />
|
||||
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.9" />
|
||||
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="9.0.10" />
|
||||
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.10" />
|
||||
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.0" />
|
||||
<PackageVersion Include="Microsoft.NETCore.Platforms" Version="7.0.4" />
|
||||
<PackageVersion Include="Microsoft.NETCore.Targets" Version="5.0.0" />
|
||||
@@ -58,18 +58,18 @@
|
||||
<PackageVersion Include="runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
|
||||
<PackageVersion Include="SSH.NET" Version="2025.0.0" />
|
||||
<PackageVersion Include="System.Buffers" Version="4.6.1" />
|
||||
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="9.0.9" />
|
||||
<PackageVersion Include="System.Collections.Immutable" Version="9.0.9" />
|
||||
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Collections.Immutable" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Console" Version="4.3.1" />
|
||||
<PackageVersion Include="System.Data.Common" Version="4.3.0" />
|
||||
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="9.0.9" />
|
||||
<PackageVersion Include="System.Drawing.Common" Version="9.0.9" />
|
||||
<PackageVersion Include="System.Diagnostics.EventLog" Version="9.0.9" />
|
||||
<PackageVersion Include="System.DirectoryServices" Version="9.0.9" />
|
||||
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Drawing.Common" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Diagnostics.EventLog" Version="9.0.10" />
|
||||
<PackageVersion Include="System.DirectoryServices" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Dynamic.Runtime" Version="4.3.0" />
|
||||
<PackageVersion Include="System.IO.Pipelines" Version="9.0.9" />
|
||||
<PackageVersion Include="System.Formats.Asn1" Version="9.0.9" />
|
||||
<PackageVersion Include="System.Management" Version="9.0.9" />
|
||||
<PackageVersion Include="System.IO.Pipelines" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Formats.Asn1" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Management" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Memory" Version="4.6.3" />
|
||||
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
|
||||
<PackageVersion Include="System.Net.Primitives" Version="4.3.1" />
|
||||
@@ -77,7 +77,7 @@
|
||||
<PackageVersion Include="System.Reflection.Emit" Version="4.7.0" />
|
||||
<PackageVersion Include="System.Reflection.Emit.ILGeneration" Version="4.7.0" />
|
||||
<PackageVersion Include="System.Reflection.Emit.Lightweight" Version="4.7.0" />
|
||||
<PackageVersion Include="System.Reflection.Metadata" Version="9.0.9" />
|
||||
<PackageVersion Include="System.Reflection.Metadata" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Reflection.TypeExtensions" Version="4.7.0" />
|
||||
<PackageVersion Include="System.Resources.ResourceManager" Version="4.3.0" />
|
||||
<PackageVersion Include="System.Runtime" Version="4.3.1" />
|
||||
@@ -87,16 +87,16 @@
|
||||
<PackageVersion Include="System.Security.Cryptography.Algorithms" Version="4.3.1" />
|
||||
<PackageVersion Include="System.Security.Cryptography.Cng" Version="5.0.0" />
|
||||
<PackageVersion Include="System.Security.Cryptography.OpenSsl" Version="5.0.0" />
|
||||
<PackageVersion Include="System.Security.Cryptography.ProtectedData" Version="9.0.9" />
|
||||
<PackageVersion Include="System.Security.Cryptography.ProtectedData" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Security.Cryptography.X509Certificates" Version="4.3.2" />
|
||||
<PackageVersion Include="System.Security.Permissions" Version="9.0.9" />
|
||||
<PackageVersion Include="System.Security.Permissions" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Security.Principal.Windows" Version="5.0.0" />
|
||||
<PackageVersion Include="System.Text.Encoding.CodePages" Version="9.0.9" />
|
||||
<PackageVersion Include="System.Text.Json" Version="9.0.9" />
|
||||
<PackageVersion Include="System.Text.Encoding.CodePages" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Text.Json" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
|
||||
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.6.3" />
|
||||
<PackageVersion Include="System.ValueTuple" Version="4.6.1" />
|
||||
<PackageVersion Include="System.Windows.Extensions" Version="9.0.9" />
|
||||
<PackageVersion Include="System.Windows.Extensions" Version="9.0.10" />
|
||||
<PackageVersion Include="System.Xml.ReaderWriter" Version="4.3.1" />
|
||||
<PackageVersion Include="VncSharpCore" Version="1.2.1" />
|
||||
<PackageVersion Include="ZstdSharp.Port" Version="0.8.6" />
|
||||
|
||||
107
ExternalConnectors/OP/OnePasswordCli.cs
Normal file
107
ExternalConnectors/OP/OnePasswordCli.cs
Normal file
@@ -0,0 +1,107 @@
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Text.Json;
|
||||
using System.Web;
|
||||
|
||||
namespace ExternalConnectors.OP;
|
||||
|
||||
public class OnePasswordCliException(string message, string arguments) : Exception(message)
|
||||
{
|
||||
public string Arguments { get; set; } = arguments;
|
||||
}
|
||||
|
||||
public class OnePasswordCli
|
||||
{
|
||||
private const string OnePasswordCliExecutable = "op.exe";
|
||||
private const string UserNamePurpose = "USERNAME";
|
||||
private const string PasswordPurpose = "PASSWORD";
|
||||
private const string StringType = "STRING";
|
||||
private const string SshKeyType = "SSHKEY";
|
||||
private const string DomainLabel = "domain";
|
||||
|
||||
private record VaultUrl(string Label, string Href);
|
||||
|
||||
private record VaultField(string Id, string Label, string Type, string Purpose, string Value);
|
||||
|
||||
private record VaultItem(VaultUrl[]? Urls, VaultField[]? Fields);
|
||||
|
||||
private static readonly JsonSerializerOptions JsonSerializerOptions = new()
|
||||
{
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
|
||||
};
|
||||
|
||||
public static void ReadPassword(string input, out string username, out string password, out string domain, out string privateKey)
|
||||
{
|
||||
var inputUrl = new Uri(input);
|
||||
var vault = WebUtility.UrlDecode(inputUrl.Host);
|
||||
var queryParams = HttpUtility.ParseQueryString(inputUrl.Query);
|
||||
var account = queryParams["account"];
|
||||
var item = WebUtility.UrlDecode(inputUrl.AbsolutePath.TrimStart('/'));
|
||||
ItemGet(item, vault, account, out username, out password, out domain, out privateKey);
|
||||
}
|
||||
|
||||
private static void ItemGet(string item, string? vault, string? account, out string username, out string password, out string domain, out string privateKey)
|
||||
{
|
||||
var args = new List<string> { "item", "get", item };
|
||||
|
||||
if (!string.IsNullOrEmpty(account))
|
||||
{
|
||||
args.Add("--account");
|
||||
args.Add(account);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(vault))
|
||||
{
|
||||
args.Add("--vault");
|
||||
args.Add(vault);
|
||||
}
|
||||
|
||||
args.Add("--format");
|
||||
args.Add("json");
|
||||
|
||||
var exitCode = RunCommand(OnePasswordCliExecutable, args, out var output, out var error);
|
||||
if (exitCode != 0)
|
||||
{
|
||||
username = string.Empty;
|
||||
password = string.Empty;
|
||||
privateKey = string.Empty;
|
||||
domain = string.Empty;
|
||||
throw new OnePasswordCliException($"Error running op item get: {error}",
|
||||
OnePasswordCliExecutable + " " + string.Join(' ', args));
|
||||
}
|
||||
|
||||
var items = JsonSerializer.Deserialize<VaultItem>(output, JsonSerializerOptions) ??
|
||||
throw new OnePasswordCliException("1Password returned null",
|
||||
OnePasswordCliExecutable + " " + string.Join(' ', args));
|
||||
username = items.Fields?.FirstOrDefault(x => x.Purpose == UserNamePurpose)?.Value ?? string.Empty;
|
||||
password = items.Fields?.FirstOrDefault(x => x.Purpose == PasswordPurpose)?.Value ?? string.Empty;
|
||||
privateKey = items.Fields?.FirstOrDefault(x => x.Type == SshKeyType)?.Value ?? string.Empty;
|
||||
domain = items.Fields?.FirstOrDefault(x => x.Type == StringType && x.Label == DomainLabel)?.Value ?? string.Empty;
|
||||
}
|
||||
|
||||
private static int RunCommand(string command, IReadOnlyCollection<string> arguments, out string output,
|
||||
out string error)
|
||||
{
|
||||
var processStartInfo = new ProcessStartInfo
|
||||
{
|
||||
FileName = command,
|
||||
RedirectStandardOutput = true,
|
||||
RedirectStandardError = true,
|
||||
UseShellExecute = false,
|
||||
CreateNoWindow = true
|
||||
};
|
||||
|
||||
foreach (var argument in arguments)
|
||||
{
|
||||
processStartInfo.ArgumentList.Add(argument);
|
||||
}
|
||||
|
||||
using var process = new Process();
|
||||
process.StartInfo = processStartInfo;
|
||||
process.Start();
|
||||
output = process.StandardOutput.ReadToEnd();
|
||||
error = process.StandardError.ReadToEnd();
|
||||
process.WaitForExit();
|
||||
return process.ExitCode;
|
||||
}
|
||||
}
|
||||
26
README.md
26
README.md
@@ -1,3 +1,18 @@
|
||||
<p align="Left">
|
||||
Developing mRemoteNG to its fullest potential is my personal priority.<br>
|
||||
While the project remains non-commercial, it does come with ongoing costs — including VPS hosting for testing, AI tools, domain fees, and more. <br> If you find value in mRemoteNG and want to support its future, even a small donation from our community can make a huge difference.<br>
|
||||
Your support helps me keep the project secure, modern, and accessible for everyone who relies on it — and brings us closer to a brighter, more collaborative future.<br><br>
|
||||
Consider donating — every contribution counts!
|
||||
<br><br>
|
||||
<a href="https://www.paypal.com/paypalme/mremoteng">
|
||||
<img height='36' alt="PayPal" style='border:0px;height:36px;' src="https://img.shields.io/badge/%24-PayPal-blue.svg?label=Donate&logo=PayPal&style=flat-square">
|
||||
</a><br>
|
||||
<a href='https://ko-fi.com/Q5Q41I7JS' target='_blank'><img height='36' style='border:0px;height:36px;' src='https://storage.ko-fi.com/cdn/kofi6.png?v=6' border='0' alt='Buy Me a Coffee at ko-fi.com' /></a>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
<img width="450" src="https://github.com/mRemoteNG/mRemoteNG/blob/mRemoteNGProjectFiles/Header_dark.png">
|
||||
</p>
|
||||
@@ -21,11 +36,6 @@
|
||||
<img alt="Element" src="https://img.shields.io/matrix/mremoteng:matrix.org?label=Join%20to%20chat%20about%20mRemoteNG&logo=element&style=social&link=https://app.element.io/#/room/#mremoteng:matrix.org">
|
||||
</a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<a href="https://www.paypal.com/paypalme/mremoteng">
|
||||
<img alt="PayPal" src="https://img.shields.io/badge/%24-PayPal-blue.svg?label=Donate&logo=PayPal&style=flat-square">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/mRemoteNG/mRemoteNG/blob/develop/COPYING.TXT">
|
||||
@@ -79,12 +89,13 @@ For a detailed feature list and general usage support, refer to the [Documentati
|
||||
|
||||
#### Source package
|
||||
|
||||
This contains the source code from which mRemoteNG is build.
|
||||
This contains the source code from which mRemoteNG is built.
|
||||
You will need to compile it yourself using Visual Studio.
|
||||
|
||||
### Minimum Requirements
|
||||
|
||||
* [[Microsoft .NET Desktop Runtime 9.0](https://dotnet.microsoft.com/download/dotnet/6.0](https://dotnet.microsoft.com/en-us/download/dotnet/9.0))
|
||||
* [Microsoft .NET Desktop Runtime 9.0](https://dotnet.microsoft.com/download/dotnet/9.0)
|
||||
* [Microsoft Visual C++ 2015-2022 Redistributable x64](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170#latest-supported-redistributable-version) - [download latest](https://aka.ms/vs/17/release/vc_redist.x64.exe) (note: use x64 installer also in ARM environments as the installer contains both; ~32-bit version required until #2870 is resolved~)
|
||||
* Microsoft Terminal Service Client 6.0 or later (needed if you use RDP with mstscax.dll and/or msrdp.ocx to be registered)
|
||||
|
||||
### Download
|
||||
@@ -129,6 +140,7 @@ _If you are using the Portable version, simply deleting the folder that contains
|
||||
|
||||
* [PSmRemoteNG](https://github.com/realslacker/PSmRemoteNG) A module to create mRemoteNG connection files from PowerShell.
|
||||
* [mRemoteNGOpenVPN](https://github.com/T3los/mRemoteNGOpenVPN) A script that can be embedded as an external tool to control OpenVPN.
|
||||
* [mRemoteNG-Icons](https://github.com/bearlikelion/mRemoteNG-Icons) A collection of fancy icons to customize the connections
|
||||
|
||||
## Contribute
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace mRemoteNG.App.Update
|
||||
string version = $"{major}.{minor}";
|
||||
foreach (var baseKey in baseKeys)
|
||||
{
|
||||
string path = $@"{baseKey}\{version}\VC\Runtimes\x86";
|
||||
string path = $@"{baseKey}\{version}\VC\Runtimes\x64";
|
||||
using (RegistryKey? key = Registry.LocalMachine.OpenSubKey(path))
|
||||
{
|
||||
if (key?.GetValue("Installed") is int installed && installed == 1)
|
||||
|
||||
@@ -15,8 +15,10 @@ namespace mRemoteNG.App.Info
|
||||
{
|
||||
public const string UrlHome = "https://mremoteng.org";
|
||||
public const string UrlDonate = "https://mremoteng.org/contribute";
|
||||
public const string UrlForum = "https://www.reddit.com/r/mRemoteNG";
|
||||
public const string UrlBugs = "https://bugs.mremoteng.org";
|
||||
public const string UrlForum = "https://github.com/orgs/mRemoteNG/discussions";
|
||||
public const string UrlChat = "https://app.element.io/#/room/#mremoteng:matrix.org";
|
||||
public const string UrlCommunity = "https://www.reddit.com/r/mRemoteNG";
|
||||
public const string UrlBugs = "https://github.com/mRemoteNG/mRemoteNG/issues/new";
|
||||
public const string UrlDocumentation = "https://mremoteng.readthedocs.io/en/latest/";
|
||||
public static readonly string ApplicationVersion = Application.ProductVersion;
|
||||
public static readonly string ProductName = Application.ProductName;
|
||||
|
||||
@@ -5,7 +5,7 @@ using mRemoteNG.Config.Settings;
|
||||
using mRemoteNG.DotNet.Update;
|
||||
using mRemoteNG.DotNet.Update;
|
||||
using mRemoteNG.UI.Forms;
|
||||
|
||||
using mRemoteNG.Resources.Language;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
@@ -53,12 +53,11 @@ namespace mRemoteNG.App
|
||||
{
|
||||
try
|
||||
{
|
||||
var result = MessageBox.Show(
|
||||
$".NET Desktop Runtime at least {DotNetRuntimeCheck.RequiredDotnetVersion}.0 is required.\n" +
|
||||
"The application will now exit.\n\nPlease download and install latest desktop runtime:\n" + downloadUrl,
|
||||
"Missing .NET " + DotNetRuntimeCheck.RequiredDotnetVersion + " Runtime",
|
||||
MessageBoxButtons.OKCancel,
|
||||
MessageBoxIcon.Information);
|
||||
var result = ShowDownloadCancelDialog(
|
||||
$".NET " + DotNetRuntimeCheck.RequiredDotnetVersion + ".0 " + Language.MsgRuntimeIsRequired + "\n\n" +
|
||||
Language.MsgDownloadLatestRuntime + "\n" + downloadUrl + "\n\n" +
|
||||
Language.MsgExit + "\n\n",
|
||||
Language.MsgMissingRuntime + " .NET " + DotNetRuntimeCheck.RequiredDotnetVersion);
|
||||
|
||||
if (result == DialogResult.OK && InternetConnection.IsPosible())
|
||||
{
|
||||
@@ -79,15 +78,14 @@ namespace mRemoteNG.App
|
||||
// Checking Visual C++ Redistributable version
|
||||
if (VCppRuntimeCheck.GetInstalledVcRedistVersions() == null || VCppRuntimeCheck.GetInstalledVcRedistVersions().Count == 0)
|
||||
{
|
||||
var downloadUrl2 = "https://aka.ms/vs/17/release/vc_redist.x86.exe";
|
||||
var downloadUrl2 = "https://aka.ms/vs/17/release/vc_redist.x64.exe";
|
||||
try
|
||||
{
|
||||
var result = MessageBox.Show(
|
||||
$"A Visual C++ (MSVC) runtime library is required.\n" +
|
||||
"The application will now exit.\n\nPlease download and install latest desktop runtime:\n" + downloadUrl2,
|
||||
"Missing Visual C++ Redistributable x86 Runtime",
|
||||
MessageBoxButtons.OKCancel,
|
||||
MessageBoxIcon.Information);
|
||||
var result = ShowDownloadCancelDialog(
|
||||
$"A Visual C++ (MSVC) " + Language.MsgRuntimeIsRequired + "\n\n" +
|
||||
Language.MsgDownloadLatestRuntime + "\n" + downloadUrl2 + "\n\n" +
|
||||
Language.MsgExit + "\n\n",
|
||||
Language.MsgMissingRuntime + " Visual C++ Redistributable x64");
|
||||
|
||||
if (result == DialogResult.OK && InternetConnection.IsPosible())
|
||||
{
|
||||
@@ -269,5 +267,101 @@ namespace mRemoteNG.App
|
||||
_wpfSplashThread = null;
|
||||
}
|
||||
}
|
||||
|
||||
// Helper to show a dialog with "Download" and "Cancel" buttons.
|
||||
// Returns DialogResult.OK if Download clicked, otherwise DialogResult.Cancel.
|
||||
private static DialogResult ShowDownloadCancelDialog(string message, string caption)
|
||||
{
|
||||
using Form dialog = new Form()
|
||||
{
|
||||
Text = caption,
|
||||
StartPosition = FormStartPosition.CenterScreen,
|
||||
FormBorderStyle = FormBorderStyle.FixedDialog,
|
||||
MinimizeBox = false,
|
||||
MaximizeBox = false,
|
||||
ShowInTaskbar = false,
|
||||
ClientSize = new Size(560, 200),
|
||||
Icon = SystemIcons.Information
|
||||
};
|
||||
|
||||
// Try to find a URL in the message (very simple heuristic: first "http" until whitespace/newline)
|
||||
int urlStart = message.IndexOf("http", StringComparison.OrdinalIgnoreCase);
|
||||
string? url = null;
|
||||
if (urlStart >= 0)
|
||||
{
|
||||
int urlEnd = message.IndexOfAny(new char[] { ' ', '\r', '\n', '\t' }, urlStart);
|
||||
if (urlEnd == -1) urlEnd = message.Length;
|
||||
url = message.Substring(urlStart, urlEnd - urlStart);
|
||||
}
|
||||
|
||||
LinkLabel lbl = new LinkLabel()
|
||||
{
|
||||
AutoSize = false,
|
||||
Text = message,
|
||||
Location = new Point(12, 12),
|
||||
Size = new Size(dialog.ClientSize.Width - 24, dialog.ClientSize.Height - 60),
|
||||
TextAlign = ContentAlignment.TopLeft,
|
||||
LinkBehavior = LinkBehavior.SystemDefault
|
||||
};
|
||||
lbl.MaximumSize = new Size(dialog.ClientSize.Width - 24, 0);
|
||||
|
||||
if (!string.IsNullOrEmpty(url) && urlStart >= 0)
|
||||
{
|
||||
// Ensure link indices are within bounds of the LinkLabel text
|
||||
int linkStartInLabel = urlStart;
|
||||
int linkLength = url.Length;
|
||||
if (linkStartInLabel + linkLength <= lbl.Text.Length)
|
||||
{
|
||||
lbl.Links.Add(linkStartInLabel, linkLength, url);
|
||||
}
|
||||
}
|
||||
|
||||
lbl.LinkClicked += (s, e) =>
|
||||
{
|
||||
string? linkUrl = e.Link.LinkData as string;
|
||||
if (string.IsNullOrEmpty(linkUrl))
|
||||
return;
|
||||
if (!InternetConnection.IsPosible())
|
||||
{
|
||||
MessageBox.Show("No internet connection is available.", "Network", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
// Treat clicking the link the same as clicking the "Download" button:
|
||||
// set DialogResult to OK so the caller receives DialogResult.OK and can proceed to open the download URL.
|
||||
dialog.DialogResult = DialogResult.OK;
|
||||
// Do not call Process.Start here to avoid duplicate launches; caller already opens the URL when it sees DialogResult.OK.
|
||||
};
|
||||
|
||||
Button btnDownload = new Button()
|
||||
{
|
||||
Text = "Download",
|
||||
DialogResult = DialogResult.OK,
|
||||
Size = new Size(100, 28),
|
||||
};
|
||||
Button btnCancel = new Button()
|
||||
{
|
||||
Text = "Cancel",
|
||||
DialogResult = DialogResult.Cancel,
|
||||
Size = new Size(100, 28),
|
||||
};
|
||||
|
||||
// Position buttons
|
||||
int padding = 12;
|
||||
btnCancel.Location = new Point(dialog.ClientSize.Width - padding - btnCancel.Width, dialog.ClientSize.Height - padding - btnCancel.Height);
|
||||
btnDownload.Location = new Point(btnCancel.Left - 8 - btnDownload.Width, btnCancel.Top);
|
||||
|
||||
// Set dialog defaults
|
||||
dialog.Controls.Add(lbl);
|
||||
dialog.Controls.Add(btnDownload);
|
||||
dialog.Controls.Add(btnCancel);
|
||||
dialog.AcceptButton = btnDownload;
|
||||
dialog.CancelButton = btnCancel;
|
||||
|
||||
// Adjust label height to wrap text properly
|
||||
lbl.Height = btnCancel.Top - lbl.Top - 8;
|
||||
|
||||
return dialog.ShowDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -84,10 +84,8 @@ namespace mRemoteNG.App
|
||||
try
|
||||
{
|
||||
await _appUpdate.GetUpdateInfoAsync();
|
||||
if (_appUpdate.IsUpdateAvailable())
|
||||
{
|
||||
Windows.Show(WindowType.Update);
|
||||
}
|
||||
// Update is available, but don't show the panel automatically at startup
|
||||
// User can check for updates manually via Help > Check for Updates menu
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -26,7 +26,7 @@ namespace mRemoteNG.App
|
||||
|
||||
internal static ConfigWindow ConfigForm { get; set; } = new ConfigWindow();
|
||||
internal static ErrorAndInfoWindow ErrorsForm { get; set; } = new ErrorAndInfoWindow();
|
||||
private static UpdateWindow UpdateForm { get; set; } = new UpdateWindow();
|
||||
internal static UpdateWindow UpdateForm { get; set; } = new UpdateWindow();
|
||||
internal static SSHTransferWindow SshtransferForm { get; private set; } = new SSHTransferWindow();
|
||||
internal static OptionsWindow OptionsFormWindow { get; private set; }
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.Runtime.Versioning;
|
||||
using System.Threading.Tasks;
|
||||
using System.Runtime.InteropServices;
|
||||
using LiteDB;
|
||||
using mRemoteNG.Resources.Language;
|
||||
|
||||
namespace mRemoteNG.Config.DatabaseConnectors
|
||||
{
|
||||
@@ -111,19 +112,19 @@ namespace mRemoteNG.Config.DatabaseConnectors
|
||||
catch (PlatformNotSupportedException ex)
|
||||
{
|
||||
// Log or handle architecture mismatch
|
||||
Console.WriteLine($"Platform error: {ex.Message}");
|
||||
Console.WriteLine(string.Format(Language.ErrorPlatformNotSupported, ex.Message));
|
||||
return ConnectionTestResult.UnknownError;
|
||||
}
|
||||
catch (DllNotFoundException ex)
|
||||
{
|
||||
// Handle missing native dependencies
|
||||
Console.WriteLine($"Missing dependency: {ex.Message}");
|
||||
Console.WriteLine(string.Format(Language.ErrorMissingDependency, ex.Message));
|
||||
return ConnectionTestResult.UnknownError;
|
||||
}
|
||||
catch (BadImageFormatException ex)
|
||||
{
|
||||
// Handle architecture mismatch in native libraries
|
||||
Console.WriteLine($"Architecture mismatch: {ex.Message}");
|
||||
Console.WriteLine(string.Format(Language.ErrorArchitectureMismatch, ex.Message));
|
||||
return ConnectionTestResult.UnknownError;
|
||||
}
|
||||
catch (SqlException sqlException)
|
||||
|
||||
@@ -42,6 +42,7 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
|
||||
element.Add(new XAttribute("Descr", connectionInfo.Description));
|
||||
element.Add(new XAttribute("Icon", connectionInfo.Icon));
|
||||
element.Add(new XAttribute("Panel", connectionInfo.Panel));
|
||||
element.Add(new XAttribute("TabColor", connectionInfo.TabColor));
|
||||
element.Add(new XAttribute("Id", connectionInfo.ConstantID));
|
||||
|
||||
if (!Runtime.UseCredentialManager)
|
||||
@@ -187,6 +188,8 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
|
||||
element.Add(new XAttribute("InheritIcon", inheritance.Icon.ToString().ToLowerInvariant()));
|
||||
if (inheritance.Panel)
|
||||
element.Add(new XAttribute("InheritPanel", inheritance.Panel.ToString().ToLowerInvariant()));
|
||||
if (inheritance.TabColor)
|
||||
element.Add(new XAttribute("InheritTabColor", inheritance.TabColor.ToString().ToLowerInvariant()));
|
||||
if (inheritance.Password)
|
||||
element.Add(new XAttribute("InheritPassword", inheritance.Password.ToString().ToLowerInvariant()));
|
||||
if (inheritance.Port)
|
||||
|
||||
@@ -328,6 +328,7 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
|
||||
connectionInfo.Inheritance.DisplayWallpaper = xmlnode.GetAttributeAsBool("InheritDisplayWallpaper");
|
||||
connectionInfo.Inheritance.Icon = xmlnode.GetAttributeAsBool("InheritIcon");
|
||||
connectionInfo.Inheritance.Panel = xmlnode.GetAttributeAsBool("InheritPanel");
|
||||
connectionInfo.Inheritance.TabColor = xmlnode.GetAttributeAsBool("InheritTabColor");
|
||||
connectionInfo.Inheritance.Port = xmlnode.GetAttributeAsBool("InheritPort");
|
||||
connectionInfo.Inheritance.Protocol = xmlnode.GetAttributeAsBool("InheritProtocol");
|
||||
connectionInfo.Inheritance.PuttySession = xmlnode.GetAttributeAsBool("InheritPuttySession");
|
||||
@@ -350,6 +351,7 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
|
||||
|
||||
connectionInfo.Icon = xmlnode.GetAttributeAsString("Icon");
|
||||
connectionInfo.Panel = xmlnode.GetAttributeAsString("Panel");
|
||||
connectionInfo.TabColor = xmlnode.GetAttributeAsString("TabColor");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
|
||||
private XAttribute CreateProtectedAttribute(RootNodeInfo rootNodeInfo, ICryptographyProvider cryptographyProvider)
|
||||
{
|
||||
XAttribute attribute = new(XName.Get("Protected"), "");
|
||||
string plainText = rootNodeInfo.Password ? "ThisIsProtected" : "ThisIsNotProtected";
|
||||
string plainText = (rootNodeInfo.PasswordString != rootNodeInfo.DefaultPassword) ? "ThisIsProtected" : "ThisIsNotProtected";
|
||||
System.Security.SecureString encryptionPassword = rootNodeInfo.PasswordString.ConvertToSecureString();
|
||||
attribute.Value = cryptographyProvider.Encrypt(plainText, encryptionPassword);
|
||||
return attribute;
|
||||
|
||||
@@ -61,6 +61,10 @@ namespace mRemoteNG.Config.Serializers.MiscSerializers
|
||||
if (host.Vnc)
|
||||
finalProtocol = ProtocolType.VNC;
|
||||
break;
|
||||
case ProtocolType.ARD:
|
||||
if (host.Vnc)
|
||||
finalProtocol = ProtocolType.ARD;
|
||||
break;
|
||||
default:
|
||||
protocolValid = false;
|
||||
break;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using mRemoteNG.Connection.Protocol;
|
||||
using mRemoteNG.Connection.Protocol.Http;
|
||||
using mRemoteNG.Connection.Protocol.RDP;
|
||||
@@ -22,6 +23,8 @@ namespace mRemoteNG.Connection
|
||||
private string _description;
|
||||
private string _icon;
|
||||
private string _panel;
|
||||
private string _color;
|
||||
private string _tabColor;
|
||||
|
||||
private string _hostname;
|
||||
private ExternalAddressProvider _externalAddressProvider;
|
||||
@@ -153,6 +156,28 @@ namespace mRemoteNG.Connection
|
||||
set => SetField(ref _panel, value, "Panel");
|
||||
}
|
||||
|
||||
[LocalizedAttributes.LocalizedCategory(nameof(Language.Display)),
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.Color)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionColor)),
|
||||
Editor(typeof(System.Drawing.Design.ColorEditor), typeof(System.Drawing.Design.UITypeEditor)),
|
||||
TypeConverter(typeof(MiscTools.TabColorConverter))]
|
||||
public virtual string Color
|
||||
{
|
||||
get => GetPropertyValue("Color", _color);
|
||||
set => SetField(ref _color, value, "Color");
|
||||
}
|
||||
|
||||
[LocalizedAttributes.LocalizedCategory(nameof(Language.Display)),
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.TabColor)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionTabColor)),
|
||||
Editor(typeof(System.Drawing.Design.ColorEditor), typeof(System.Drawing.Design.UITypeEditor)),
|
||||
TypeConverter(typeof(MiscTools.TabColorConverter))]
|
||||
public virtual string TabColor
|
||||
{
|
||||
get => GetPropertyValue("TabColor", _tabColor);
|
||||
set => SetField(ref _tabColor, value, "TabColor");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Connection
|
||||
@@ -203,7 +228,7 @@ namespace mRemoteNG.Connection
|
||||
[LocalizedAttributes.LocalizedCategory(nameof(Language.Connection), 2),
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.Username)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionUsername)),
|
||||
AttributeUsedInProtocol(ProtocolType.RDP, ProtocolType.SSH1, ProtocolType.SSH2, ProtocolType.HTTP, ProtocolType.HTTPS)]
|
||||
AttributeUsedInProtocol(ProtocolType.RDP, ProtocolType.SSH1, ProtocolType.SSH2, ProtocolType.HTTP, ProtocolType.HTTPS, ProtocolType.IntApp)]
|
||||
public virtual string Username
|
||||
{
|
||||
get => GetPropertyValue("Username", _username);
|
||||
@@ -908,7 +933,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.Compression)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionCompression)),
|
||||
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC, ProtocolType.ARD),
|
||||
Browsable(false)]
|
||||
public ProtocolVNC.Compression VNCCompression
|
||||
{
|
||||
@@ -920,7 +945,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.Encoding)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionEncoding)),
|
||||
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC, ProtocolType.ARD),
|
||||
Browsable(false)]
|
||||
public ProtocolVNC.Encoding VNCEncoding
|
||||
{
|
||||
@@ -932,7 +957,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.AuthenticationMode)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionAuthenticationMode)),
|
||||
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC, ProtocolType.ARD),
|
||||
Browsable(false)]
|
||||
public ProtocolVNC.AuthMode VNCAuthMode
|
||||
{
|
||||
@@ -944,7 +969,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.ProxyType)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionVNCProxyType)),
|
||||
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC, ProtocolType.ARD),
|
||||
Browsable(false)]
|
||||
public ProtocolVNC.ProxyType VNCProxyType
|
||||
{
|
||||
@@ -955,7 +980,7 @@ namespace mRemoteNG.Connection
|
||||
[LocalizedAttributes.LocalizedCategory(nameof(Language.Proxy), 7),
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.ProxyAddress)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionVNCProxyAddress)),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC, ProtocolType.ARD),
|
||||
Browsable(false)]
|
||||
public string VNCProxyIP
|
||||
{
|
||||
@@ -966,7 +991,7 @@ namespace mRemoteNG.Connection
|
||||
[LocalizedAttributes.LocalizedCategory(nameof(Language.Proxy), 7),
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.ProxyPort)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionVNCProxyPort)),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC, ProtocolType.ARD),
|
||||
Browsable(false)]
|
||||
public int VNCProxyPort
|
||||
{
|
||||
@@ -977,7 +1002,7 @@ namespace mRemoteNG.Connection
|
||||
[LocalizedAttributes.LocalizedCategory(nameof(Language.Proxy), 7),
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.ProxyUsername)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionVNCProxyUsername)),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC, ProtocolType.ARD),
|
||||
Browsable(false)]
|
||||
public string VNCProxyUsername
|
||||
{
|
||||
@@ -989,7 +1014,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.ProxyPassword)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionVNCProxyPassword)),
|
||||
PasswordPropertyText(true),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC, ProtocolType.ARD),
|
||||
Browsable(false)]
|
||||
public string VNCProxyPassword
|
||||
{
|
||||
@@ -1001,7 +1026,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.Colors)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionColors)),
|
||||
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC, ProtocolType.ARD),
|
||||
Browsable(false)]
|
||||
public ProtocolVNC.Colors VNCColors
|
||||
{
|
||||
@@ -1013,7 +1038,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.SmartSizeMode)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionSmartSizeMode)),
|
||||
TypeConverter(typeof(MiscTools.EnumTypeConverter)),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC)]
|
||||
AttributeUsedInProtocol(ProtocolType.VNC, ProtocolType.ARD)]
|
||||
public ProtocolVNC.SmartSizeMode VNCSmartSizeMode
|
||||
{
|
||||
get => GetPropertyValue("VNCSmartSizeMode", _vncSmartSizeMode);
|
||||
@@ -1024,7 +1049,7 @@ namespace mRemoteNG.Connection
|
||||
LocalizedAttributes.LocalizedDisplayName(nameof(Language.ViewOnly)),
|
||||
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionViewOnly)),
|
||||
TypeConverter(typeof(MiscTools.YesNoTypeConverter)),
|
||||
AttributeUsedInProtocol(ProtocolType.VNC)]
|
||||
AttributeUsedInProtocol(ProtocolType.VNC, ProtocolType.ARD)]
|
||||
public bool VNCViewOnly
|
||||
{
|
||||
get => GetPropertyValue("VNCViewOnly", _vncViewOnly);
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Linq;
|
||||
using System.Reflection;
|
||||
using mRemoteNG.App;
|
||||
using mRemoteNG.Connection.Protocol;
|
||||
using mRemoteNG.Connection.Protocol.ARD;
|
||||
using mRemoteNG.Connection.Protocol.Http;
|
||||
using mRemoteNG.Connection.Protocol.PowerShell;
|
||||
using mRemoteNG.Connection.Protocol.RAW;
|
||||
@@ -254,6 +255,8 @@ namespace mRemoteNG.Connection
|
||||
return (int)RdpProtocol.Defaults.Port;
|
||||
case ProtocolType.VNC:
|
||||
return (int)ProtocolVNC.Defaults.Port;
|
||||
case ProtocolType.ARD:
|
||||
return (int)ProtocolARD.Defaults.Port;
|
||||
case ProtocolType.SSH1:
|
||||
return (int)ProtocolSSH1.Defaults.Port;
|
||||
case ProtocolType.SSH2:
|
||||
@@ -289,6 +292,8 @@ namespace mRemoteNG.Connection
|
||||
Description = Settings.Default.ConDefaultDescription;
|
||||
Icon = Settings.Default.ConDefaultIcon;
|
||||
Panel = Language.General;
|
||||
Color = string.Empty;
|
||||
TabColor = string.Empty;
|
||||
}
|
||||
|
||||
private void SetConnectionDefaults()
|
||||
|
||||
@@ -50,6 +50,18 @@ namespace mRemoteNG.Connection
|
||||
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
|
||||
public bool Panel { get; set; }
|
||||
|
||||
[LocalizedAttributes.LocalizedCategory(nameof(Language.Display), 2),
|
||||
LocalizedAttributes.LocalizedDisplayNameInherit(nameof(Language.Color)),
|
||||
LocalizedAttributes.LocalizedDescriptionInherit(nameof(Language.PropertyDescriptionColor)),
|
||||
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
|
||||
public bool Color { get; set; }
|
||||
|
||||
[LocalizedAttributes.LocalizedCategory(nameof(Language.Display), 2),
|
||||
LocalizedAttributes.LocalizedDisplayNameInherit(nameof(Language.TabColor)),
|
||||
LocalizedAttributes.LocalizedDescriptionInherit(nameof(Language.PropertyDescriptionTabColor)),
|
||||
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
|
||||
public bool TabColor { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Connection
|
||||
|
||||
@@ -320,7 +320,8 @@ namespace mRemoteNG.Connection
|
||||
ConnectionWindow connectionForm = conForm ?? Runtime.WindowList.FromString(connectionPanel) as ConnectionWindow;
|
||||
|
||||
if (connectionForm == null)
|
||||
connectionForm = _panelAdder.AddPanel(connectionPanel);
|
||||
// Don't show the panel immediately - it will be shown when first tab is added
|
||||
connectionForm = _panelAdder.AddPanel(connectionPanel, showImmediately: false);
|
||||
else
|
||||
connectionForm.Show(FrmMain.Default.pnlDock);
|
||||
|
||||
|
||||
@@ -12,7 +12,9 @@ namespace mRemoteNG.Connection
|
||||
DelineaSecretServer = 1,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription(nameof(Language.ECPClickstudiosPasswordstate))]
|
||||
ClickstudiosPasswordState = 2
|
||||
ClickstudiosPasswordState = 2,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription(nameof(Language.ECPOnePassword))]
|
||||
OnePassword = 3,
|
||||
}
|
||||
}
|
||||
|
||||
19
mRemoteNG/Connection/Protocol/ARD/ProtocolARD.cs
Normal file
19
mRemoteNG/Connection/Protocol/ARD/ProtocolARD.cs
Normal file
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Runtime.Versioning;
|
||||
using mRemoteNG.Connection.Protocol.VNC;
|
||||
|
||||
namespace mRemoteNG.Connection.Protocol.ARD
|
||||
{
|
||||
[SupportedOSPlatform("windows")]
|
||||
public class ProtocolARD : ProtocolVNC
|
||||
{
|
||||
public ProtocolARD()
|
||||
{
|
||||
}
|
||||
|
||||
public new enum Defaults
|
||||
{
|
||||
Port = 5900
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ using mRemoteNG.Connection.Protocol.Rlogin;
|
||||
using mRemoteNG.Connection.Protocol.SSH;
|
||||
using mRemoteNG.Connection.Protocol.Telnet;
|
||||
using mRemoteNG.Connection.Protocol.VNC;
|
||||
using mRemoteNG.Connection.Protocol.ARD;
|
||||
using System;
|
||||
using mRemoteNG.Connection.Protocol.PowerShell;
|
||||
using mRemoteNG.Resources.Language;
|
||||
@@ -28,6 +29,8 @@ namespace mRemoteNG.Connection.Protocol
|
||||
return rdp;
|
||||
case ProtocolType.VNC:
|
||||
return new ProtocolVNC();
|
||||
case ProtocolType.ARD:
|
||||
return new ProtocolARD();
|
||||
case ProtocolType.SSH1:
|
||||
return new ProtocolSSH1();
|
||||
case ProtocolType.SSH2:
|
||||
|
||||
@@ -35,6 +35,9 @@ namespace mRemoteNG.Connection.Protocol
|
||||
[LocalizedAttributes.LocalizedDescription(nameof(Language.PowerShell))]
|
||||
PowerShell = 10,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription(nameof(Language.Ard))]
|
||||
ARD = 11,
|
||||
|
||||
[LocalizedAttributes.LocalizedDescription(nameof(Language.ExternalTool))]
|
||||
IntApp = 20
|
||||
}
|
||||
|
||||
@@ -151,6 +151,17 @@ namespace mRemoteNG.Connection.Protocol
|
||||
Event_ErrorOccured(this, "Passwordstate Interface Error: " + ex.Message, 0);
|
||||
}
|
||||
}
|
||||
else if (InterfaceControl.Info.ExternalCredentialProvider == ExternalCredentialProvider.OnePassword) {
|
||||
try
|
||||
{
|
||||
ExternalConnectors.OP.OnePasswordCli.ReadPassword($"{UserViaAPI}", out username, out password, out domain, out privatekey);
|
||||
}
|
||||
catch (ExternalConnectors.OP.OnePasswordCliException ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, Language.ECPOnePasswordCommandLine + ": " + ex.Arguments);
|
||||
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.ECPOnePasswordReadFailed + Environment.NewLine + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (string.IsNullOrEmpty(username))
|
||||
|
||||
@@ -470,6 +470,19 @@ namespace mRemoteNG.Connection.Protocol.RDP
|
||||
Event_ErrorOccured(this, "Passwordstate Interface Error: " + ex.Message, 0);
|
||||
}
|
||||
}
|
||||
else if (InterfaceControl.Info.ExternalCredentialProvider == ExternalCredentialProvider.OnePassword)
|
||||
{
|
||||
try
|
||||
{
|
||||
string RDGUserViaAPI = InterfaceControl.Info.RDGatewayUserViaAPI;
|
||||
ExternalConnectors.OP.OnePasswordCli.ReadPassword($"{RDGUserViaAPI}", out gwu, out gwp, out gwd, out pkey);
|
||||
}
|
||||
catch (ExternalConnectors.OP.OnePasswordCliException ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, Language.ECPOnePasswordCommandLine + ": " + ex.Arguments);
|
||||
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.ECPOnePasswordReadFailed + Environment.NewLine + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (connectionInfo.RDGatewayUseConnectionCredentials != RDGatewayUseConnectionCredentials.AccessToken)
|
||||
@@ -570,6 +583,18 @@ namespace mRemoteNG.Connection.Protocol.RDP
|
||||
Event_ErrorOccured(this, "Passwordstate Interface Error: " + ex.Message, 0);
|
||||
}
|
||||
}
|
||||
else if (InterfaceControl.Info.ExternalCredentialProvider == ExternalCredentialProvider.OnePassword)
|
||||
{
|
||||
try
|
||||
{
|
||||
ExternalConnectors.OP.OnePasswordCli.ReadPassword($"{userViaApi}", out userName, out password, out domain, out pkey);
|
||||
}
|
||||
catch (ExternalConnectors.OP.OnePasswordCliException ex)
|
||||
{
|
||||
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, Language.ECPOnePasswordCommandLine + ": " + ex.Arguments);
|
||||
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.ECPOnePasswordReadFailed + Environment.NewLine + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(userName))
|
||||
{
|
||||
|
||||
310
mRemoteNG/Language/Language.Designer.cs
generated
310
mRemoteNG/Language/Language.Designer.cs
generated
@@ -19,7 +19,7 @@ namespace mRemoteNG.Resources.Language {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Language {
|
||||
@@ -213,15 +213,6 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to About.
|
||||
/// </summary>
|
||||
internal static string About {
|
||||
get {
|
||||
return ResourceManager.GetString("About", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Hidden.
|
||||
/// </summary>
|
||||
@@ -420,6 +411,15 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to ARD (Apple Remote Desktop).
|
||||
/// </summary>
|
||||
internal static string Ard {
|
||||
get {
|
||||
return ResourceManager.GetString("Ard", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Arguments.
|
||||
/// </summary>
|
||||
@@ -726,15 +726,6 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Check for Updates.
|
||||
/// </summary>
|
||||
internal static string CheckForUpdates {
|
||||
get {
|
||||
return ResourceManager.GetString("CheckForUpdates", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Check for updates at startup.
|
||||
/// </summary>
|
||||
@@ -843,6 +834,15 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Color.
|
||||
/// </summary>
|
||||
internal static string Color {
|
||||
get {
|
||||
return ResourceManager.GetString("Color", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Colors.
|
||||
/// </summary>
|
||||
@@ -1077,6 +1077,15 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Are you sure you want to disconnect "{0}"?.
|
||||
/// </summary>
|
||||
internal static string ConfirmDisconnectConnection {
|
||||
get {
|
||||
return ResourceManager.GetString("ConfirmDisconnectConnection", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Do you want to close all open connections?.
|
||||
/// </summary>
|
||||
@@ -1681,15 +1690,6 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Donate.
|
||||
/// </summary>
|
||||
internal static string Donate {
|
||||
get {
|
||||
return ResourceManager.GetString("Donate", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Do not play.
|
||||
/// </summary>
|
||||
@@ -1852,6 +1852,33 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to 1Password.
|
||||
/// </summary>
|
||||
internal static string ECPOnePassword {
|
||||
get {
|
||||
return ResourceManager.GetString("ECPOnePassword", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to 1Password command line.
|
||||
/// </summary>
|
||||
internal static string ECPOnePasswordCommandLine {
|
||||
get {
|
||||
return ResourceManager.GetString("ECPOnePasswordCommandLine", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to 1Password read failed.
|
||||
/// </summary>
|
||||
internal static string ECPOnePasswordReadFailed {
|
||||
get {
|
||||
return ResourceManager.GetString("ECPOnePasswordReadFailed", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Do you want to continue with no password?.
|
||||
/// </summary>
|
||||
@@ -1969,6 +1996,15 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Architecture mismatch: {0}.
|
||||
/// </summary>
|
||||
internal static string ErrorArchitectureMismatch {
|
||||
get {
|
||||
return ResourceManager.GetString("ErrorArchitectureMismatch", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to The database version {0} is not compatible with this version of {1}..
|
||||
/// </summary>
|
||||
@@ -2027,6 +2063,24 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Missing dependency: {0}.
|
||||
/// </summary>
|
||||
internal static string ErrorMissingDependency {
|
||||
get {
|
||||
return ResourceManager.GetString("ErrorMissingDependency", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Platform error: {0}.
|
||||
/// </summary>
|
||||
internal static string ErrorPlatformNotSupported {
|
||||
get {
|
||||
return ResourceManager.GetString("ErrorPlatformNotSupported", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Errors.
|
||||
/// </summary>
|
||||
@@ -2504,15 +2558,6 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to mRemoteNG Help.
|
||||
/// </summary>
|
||||
internal static string HelpContents {
|
||||
get {
|
||||
return ResourceManager.GetString("HelpContents", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to High.
|
||||
/// </summary>
|
||||
@@ -3035,6 +3080,87 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to About.
|
||||
/// </summary>
|
||||
internal static string MenuItem_About {
|
||||
get {
|
||||
return ResourceManager.GetString("MenuItem_About", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to mR Chat.
|
||||
/// </summary>
|
||||
internal static string MenuItem_Chat {
|
||||
get {
|
||||
return ResourceManager.GetString("MenuItem_Chat", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Check for Updates.
|
||||
/// </summary>
|
||||
internal static string MenuItem_CheckForUpdates {
|
||||
get {
|
||||
return ResourceManager.GetString("MenuItem_CheckForUpdates", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Community.
|
||||
/// </summary>
|
||||
internal static string MenuItem_Community {
|
||||
get {
|
||||
return ResourceManager.GetString("MenuItem_Community", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Donate.
|
||||
/// </summary>
|
||||
internal static string MenuItem_Donate {
|
||||
get {
|
||||
return ResourceManager.GetString("MenuItem_Donate", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to mRemoteNG Help.
|
||||
/// </summary>
|
||||
internal static string MenuItem_HelpContents {
|
||||
get {
|
||||
return ResourceManager.GetString("MenuItem_HelpContents", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Report an Issue.
|
||||
/// </summary>
|
||||
internal static string MenuItem_ReportIssue {
|
||||
get {
|
||||
return ResourceManager.GetString("MenuItem_ReportIssue", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Support Forum.
|
||||
/// </summary>
|
||||
internal static string MenuItem_SupportForum {
|
||||
get {
|
||||
return ResourceManager.GetString("MenuItem_SupportForum", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Website.
|
||||
/// </summary>
|
||||
internal static string MenuItem_Website {
|
||||
get {
|
||||
return ResourceManager.GetString("MenuItem_Website", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Message.
|
||||
/// </summary>
|
||||
@@ -3125,6 +3251,42 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Please download and install latest runtime:.
|
||||
/// </summary>
|
||||
internal static string MsgDownloadLatestRuntime {
|
||||
get {
|
||||
return ResourceManager.GetString("MsgDownloadLatestRuntime", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to The application will now exit..
|
||||
/// </summary>
|
||||
internal static string MsgExit {
|
||||
get {
|
||||
return ResourceManager.GetString("MsgExit", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Missing Runtime:.
|
||||
/// </summary>
|
||||
internal static string MsgMissingRuntime {
|
||||
get {
|
||||
return ResourceManager.GetString("MsgMissingRuntime", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to runtime library is required.
|
||||
/// </summary>
|
||||
internal static string MsgRuntimeIsRequired {
|
||||
get {
|
||||
return ResourceManager.GetString("MsgRuntimeIsRequired", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Multi SSH:.
|
||||
/// </summary>
|
||||
@@ -3388,7 +3550,7 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to OpeningCommand TODO.
|
||||
/// Looks up a localized string similar to Opening Command .
|
||||
/// </summary>
|
||||
internal static string OpeningCommand {
|
||||
get {
|
||||
@@ -3774,6 +3936,15 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Sets the color for the connection or folder in the connections tree. Connections inherit this color from their parent folder..
|
||||
/// </summary>
|
||||
internal static string PropertyDescriptionColor {
|
||||
get {
|
||||
return ResourceManager.GetString("PropertyDescriptionColor", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Select the color quality to be used..
|
||||
/// </summary>
|
||||
@@ -4314,6 +4485,15 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Sets the color of the connection tab. Leave empty for default theme color..
|
||||
/// </summary>
|
||||
internal static string PropertyDescriptionTabColor {
|
||||
get {
|
||||
return ResourceManager.GetString("PropertyDescriptionTabColor", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Connect to the console session of the remote host..
|
||||
/// </summary>
|
||||
@@ -5496,15 +5676,6 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Report a Bug.
|
||||
/// </summary>
|
||||
internal static string ReportBug {
|
||||
get {
|
||||
return ResourceManager.GetString("ReportBug", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Reset layout.
|
||||
/// </summary>
|
||||
@@ -5595,6 +5766,24 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Do you want to save the changes made to the options?.
|
||||
/// </summary>
|
||||
internal static string SaveOptionsBeforeClosing {
|
||||
get {
|
||||
return ResourceManager.GetString("SaveOptionsBeforeClosing", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Discard.
|
||||
/// </summary>
|
||||
internal static string Discard {
|
||||
get {
|
||||
return ResourceManager.GetString("Discard", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to SaveConnectionsOnExit.
|
||||
/// </summary>
|
||||
@@ -6171,15 +6360,6 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Support Forum.
|
||||
/// </summary>
|
||||
internal static string SupportForum {
|
||||
get {
|
||||
return ResourceManager.GetString("SupportForum", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Switch to Notifications panel on:.
|
||||
/// </summary>
|
||||
@@ -6189,6 +6369,15 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Tab Color.
|
||||
/// </summary>
|
||||
internal static string TabColor {
|
||||
get {
|
||||
return ResourceManager.GetString("TabColor", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Tabs && Panels.
|
||||
/// </summary>
|
||||
@@ -6838,15 +7027,6 @@ namespace mRemoteNG.Resources.Language {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Website.
|
||||
/// </summary>
|
||||
internal static string Website {
|
||||
get {
|
||||
return ResourceManager.GetString("Website", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to WebView2InitializationFailed.
|
||||
/// </summary>
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>O Aplikaci</value>
|
||||
</data>
|
||||
<data name="ActiveDirectory" xml:space="preserve">
|
||||
@@ -712,7 +712,7 @@ Otevírám nový prázdný soubor seznamu spojení.</value>
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>Nový panel spojení</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>Vyhledat aktualizace</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -733,7 +733,7 @@ Otevírám nový prázdný soubor seznamu spojení.</value>
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>Smazat vnější nástroj...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>Přispějte</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -751,7 +751,7 @@ Otevírám nový prázdný soubor seznamu spojení.</value>
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>&Nápověda</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>Nápověda mRemoteNG</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -793,7 +793,7 @@ Otevírám nový prázdný soubor seznamu spojení.</value>
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>Přejmonovat záložku tabu</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>Nahlásit chybu</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -823,7 +823,7 @@ Otevírám nový prázdný soubor seznamu spojení.</value>
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>Spustit (VNC) chat</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>Diskuzní fórum podpory</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -838,7 +838,7 @@ Otevírám nový prázdný soubor seznamu spojení.</value>
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>Pouze prohlížet (VNC)</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>Webová stránka</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>Über</value>
|
||||
</data>
|
||||
<data name="AddNodeFromXmlFailed" xml:space="preserve">
|
||||
@@ -195,6 +195,9 @@
|
||||
<data name="Inheritance" xml:space="preserve">
|
||||
<value>Vererbung</value>
|
||||
</data>
|
||||
<data name="_Launch" xml:space="preserve">
|
||||
<value>&Starten</value>
|
||||
</data>
|
||||
<data name="ButtonLaunchPutty" xml:space="preserve">
|
||||
<value>Starte PuTTY</value>
|
||||
</data>
|
||||
@@ -225,9 +228,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>Anzeige</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Gateway</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>Verschiedenes</value>
|
||||
</data>
|
||||
@@ -294,9 +294,18 @@
|
||||
<data name="Message" xml:space="preserve">
|
||||
<value>Nachricht</value>
|
||||
</data>
|
||||
<data name="CommandExitProgram" xml:space="preserve">
|
||||
<value>B&eende {0}</value>
|
||||
</data>
|
||||
<data name="CommandLineArgsCouldNotBeParsed" xml:space="preserve">
|
||||
<value>Die Kommandozeilenparameter konnten nicht ausgewertet werden!</value>
|
||||
</data>
|
||||
<data name="CommandOpenConnectionFile" xml:space="preserve">
|
||||
<value>Eine Verbindungsdatei öffnen</value>
|
||||
</data>
|
||||
<data name="_TryAgain" xml:space="preserve">
|
||||
<value>&Nochmal versuchen</value>
|
||||
</data>
|
||||
<data name="CompatibilityLenovoAutoScrollUtilityDetected" xml:space="preserve">
|
||||
<value>{0} hat festgestellt, dass das Lenovo Auto Scroll Utility auf diesem Computer ausgeführt wird. Dieses Dienstprogramm ist dafür bekannt, dass es Probleme mit {0} verursacht. Es wird empfohlen, dass Sie es deaktivieren oder deinstallieren.</value>
|
||||
</data>
|
||||
@@ -395,6 +404,9 @@ Starte mit neuer Datei.</value>
|
||||
<data name="ConnectionsFileCouldNotSaveAs" xml:space="preserve">
|
||||
<value>Verbindungsdatei konnte nicht als "{0}" gespeichert werden!</value>
|
||||
</data>
|
||||
<data name="ConnectNoCredentials" xml:space="preserve">
|
||||
<value>Ohne Anmeldedaten verbinden</value>
|
||||
</data>
|
||||
<data name="ConnectToConsoleSession" xml:space="preserve">
|
||||
<value>Mit der Konsolensitzung verbinden</value>
|
||||
</data>
|
||||
@@ -419,6 +431,9 @@ Starte mit neuer Datei.</value>
|
||||
<data name="Detect" xml:space="preserve">
|
||||
<value>Erkennen</value>
|
||||
</data>
|
||||
<data name="DontConnectToConsoleSession" xml:space="preserve">
|
||||
<value>Keine Verbindung zur Konsolensitzung herstellen</value>
|
||||
</data>
|
||||
<data name="DontConnectWhenAuthFails" xml:space="preserve">
|
||||
<value>Keine Verbindung herstellen, wenn Authentifizierung fehlschlägt</value>
|
||||
</data>
|
||||
@@ -458,6 +473,9 @@ Starte mit neuer Datei.</value>
|
||||
<data name="ErrorConnectionListSaveFailed" xml:space="preserve">
|
||||
<value>Die Verbindungsliste konnte nicht gespeichert werden.</value>
|
||||
</data>
|
||||
<data name="ErrorCouldNotLaunchPutty" xml:space="preserve">
|
||||
<value>PuTTY konnte nicht gestartet werden.</value>
|
||||
</data>
|
||||
<data name="ErrorDecryptionFailed" xml:space="preserve">
|
||||
<value>Entschlüsselung ist gescheitert. {0}</value>
|
||||
</data>
|
||||
@@ -482,9 +500,36 @@ Starte mit neuer Datei.</value>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Exportieren</value>
|
||||
</data>
|
||||
<data name="ExportEverything" xml:space="preserve">
|
||||
<value>Alles exportieren</value>
|
||||
</data>
|
||||
<data name="ExportFile" xml:space="preserve">
|
||||
<value>Datei exportieren</value>
|
||||
</data>
|
||||
<data name="ExportItems" xml:space="preserve">
|
||||
<value>Element exportieren</value>
|
||||
</data>
|
||||
<data name="ExportProperties" xml:space="preserve">
|
||||
<value>Eigenschaften exportieren</value>
|
||||
</data>
|
||||
<data name="ExportSelectedConnection" xml:space="preserve">
|
||||
<value>Die Aktuell gewählte Verbindung exportieren</value>
|
||||
</data>
|
||||
<data name="ExportSelectedFolder" xml:space="preserve">
|
||||
<value>Den Aktuell gewählten Ordner exportieren</value>
|
||||
</data>
|
||||
<data name="_ExportToFile" xml:space="preserve">
|
||||
<value>In Datei &exportieren...</value>
|
||||
</data>
|
||||
<data name="ExternalToolDefaultName" xml:space="preserve">
|
||||
<value>Neues externes Programm</value>
|
||||
</data>
|
||||
<data name="FilterAll" xml:space="preserve">
|
||||
<value>Alle Dateien (*.*)</value>
|
||||
</data>
|
||||
<data name="FilterAllImportable" xml:space="preserve">
|
||||
<value>Alle wichtigen Dateien</value>
|
||||
</data>
|
||||
<data name="FilterApplication" xml:space="preserve">
|
||||
<value>Application Dateien (*.exe)</value>
|
||||
</data>
|
||||
@@ -527,6 +572,9 @@ Starte mit neuer Datei.</value>
|
||||
<data name="Host" xml:space="preserve">
|
||||
<value>Host</value>
|
||||
</data>
|
||||
<data name="Http" xml:space="preserve">
|
||||
<value>HTTP</value>
|
||||
</data>
|
||||
<data name="HttpConnectFailed" xml:space="preserve">
|
||||
<value>Verbindung mit HTTP fehlgeschlagen!</value>
|
||||
</data>
|
||||
@@ -536,12 +584,24 @@ Starte mit neuer Datei.</value>
|
||||
<data name="HttpDocumentTileChangeFailed" xml:space="preserve">
|
||||
<value>Fehler beim Ändern des HTTP-Dokumentfensters!</value>
|
||||
</data>
|
||||
<data name="HttpInternetExplorer" xml:space="preserve">
|
||||
<value>Internet Explorer</value>
|
||||
</data>
|
||||
<data name="Https" xml:space="preserve">
|
||||
<value>HTTPS</value>
|
||||
</data>
|
||||
<data name="HttpSetPropsFailed" xml:space="preserve">
|
||||
<value>Setzen der HTTP-Parameter fehlgeschlagen!</value>
|
||||
</data>
|
||||
<data name="ImportAD" xml:space="preserve">
|
||||
<value>Von Active Directory importieren</value>
|
||||
</data>
|
||||
<data name="ImportFileFailedContent" xml:space="preserve">
|
||||
<value>Beim Importieren der Datei ist ein Fehler aufgetreten ("{0}").</value>
|
||||
</data>
|
||||
<data name="ImportFromFile" xml:space="preserve">
|
||||
<value>Von &Datei importieren</value>
|
||||
</data>
|
||||
<data name="ImportPortScan" xml:space="preserve">
|
||||
<value>Von Port Scan importieren</value>
|
||||
</data>
|
||||
@@ -623,6 +683,9 @@ Starte mit neuer Datei.</value>
|
||||
<data name="LoadFromSqlFailed" xml:space="preserve">
|
||||
<value>Laden per SQL fehlgeschlagen!</value>
|
||||
</data>
|
||||
<data name="LoadFromSqlFailedContent" xml:space="preserve">
|
||||
<value>Die Verbindungsinformationen konnten nicht vom SQL-Server geladen werden.</value>
|
||||
</data>
|
||||
<data name="LoadFromXmlFailed" xml:space="preserve">
|
||||
<value>Laden der XML-Datei fehlgeschlagen!</value>
|
||||
</data>
|
||||
@@ -635,7 +698,7 @@ Starte mit neuer Datei.</value>
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>Verbindungs-Panel hinzufügen</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>Suche nach Updates</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -656,7 +719,7 @@ Starte mit neuer Datei.</value>
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>Entfernen</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>Spenden</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -674,7 +737,7 @@ Starte mit neuer Datei.</value>
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>&Hilfe</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>Hilfe</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -683,6 +746,9 @@ Starte mit neuer Datei.</value>
|
||||
<data name="NewConnectionFile" xml:space="preserve">
|
||||
<value>Neue Verbindungsdatei</value>
|
||||
</data>
|
||||
<data name="NewExternalTool" xml:space="preserve">
|
||||
<value>Neues externes Tool</value>
|
||||
</data>
|
||||
<data name="Notifications" xml:space="preserve">
|
||||
<value>Meldungen</value>
|
||||
</data>
|
||||
@@ -713,7 +779,7 @@ Starte mit neuer Datei.</value>
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>Tab umbenennen</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>Fehler melden</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -743,7 +809,7 @@ Starte mit neuer Datei.</value>
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>Chat starten (VNC)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>Forum</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -758,7 +824,7 @@ Starte mit neuer Datei.</value>
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>View-Only-Modus</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>Webseite</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
@@ -819,6 +885,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell
|
||||
<data name="OpenPorts" xml:space="preserve">
|
||||
<value>Offene Ports</value>
|
||||
</data>
|
||||
<data name="OptionsProxyTesting" xml:space="preserve">
|
||||
<value>Testen...</value>
|
||||
</data>
|
||||
<data name="Theme" xml:space="preserve">
|
||||
<value>Theme</value>
|
||||
</data>
|
||||
@@ -834,9 +903,18 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell
|
||||
<data name="PasswordProtect" xml:space="preserve">
|
||||
<value>Passwortschutz</value>
|
||||
</data>
|
||||
<data name="PasswordStatusMustMatch" xml:space="preserve">
|
||||
<value>Die beide Passwörter müssen übereinstimmen.</value>
|
||||
</data>
|
||||
<data name="PasswordStatusTooShort" xml:space="preserve">
|
||||
<value>Das Passwort muss mindestens 3 Zeichen lang sein.</value>
|
||||
</data>
|
||||
<data name="PleaseFillAllFields" xml:space="preserve">
|
||||
<value>Bitte alle Felder ausfüllen!</value>
|
||||
</data>
|
||||
<data name="PortScanComplete" xml:space="preserve">
|
||||
<value>Port-Scan abgeschlossen.</value>
|
||||
</data>
|
||||
<data name="PortScanCouldNotLoadPanel" xml:space="preserve">
|
||||
<value>Kann das Port-Scan-Panel nicht laden!</value>
|
||||
</data>
|
||||
@@ -852,6 +930,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell
|
||||
<data name="PropertyDescriptionAuthenticationMode" xml:space="preserve">
|
||||
<value>Wählen Sie, wie Sie sich am VNC-Server authentifizieren wollen.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionAutomaticResize" xml:space="preserve">
|
||||
<value>Wählen Sie aus, ob die Größe der Verbindung automatisch angepasst werden soll, wenn die Fenstergröße geändert oder der Vollbildmodus umgeschaltet wird. Benötigt RDC 8.0 oder höher.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionCacheBitmaps" xml:space="preserve">
|
||||
<value>Wählen Sie, ob Bitmap-Zwischenspeicherung verwendet werden soll.</value>
|
||||
</data>
|
||||
@@ -894,6 +975,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell
|
||||
<data name="PropertyDescriptionIcon" xml:space="preserve">
|
||||
<value>Das ausgewählte Icon wird bei Verbindung zum Host im Tab angezeigt.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionLoadBalanceInfo" xml:space="preserve">
|
||||
<value>Gibt die Lastausgleichsinformationen an, die von Lastenausgleichsroutern verwendet werden, um den besten Server auszuwählen.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionMACAddress" xml:space="preserve">
|
||||
<value>Geben Sie die MAC-Adresse des Remote Hosts ein (kann für externe Applikationen verwendet werden).</value>
|
||||
</data>
|
||||
@@ -942,6 +1026,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell
|
||||
<data name="PropertyDescriptionRedirectPrinters" xml:space="preserve">
|
||||
<value>Wählen Sie, ob ihre lokalen Drucker auf dem entfernten System zur Verfügung stehen sollen.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRedirectClipboard" xml:space="preserve">
|
||||
<value>Umleitung der Zwischenablage erlauben.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRedirectSmartCards" xml:space="preserve">
|
||||
<value>Wählen Sie, ob lokale Smartcards auf dem Remotehost verfügbar sein sollen.</value>
|
||||
</data>
|
||||
@@ -999,6 +1086,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell
|
||||
<data name="AuthenticationMode" xml:space="preserve">
|
||||
<value>Authentifizierungsmodus</value>
|
||||
</data>
|
||||
<data name="AutomaticResize" xml:space="preserve">
|
||||
<value>Automatische Größenänderung</value>
|
||||
</data>
|
||||
<data name="CacheBitmaps" xml:space="preserve">
|
||||
<value>Bitmaps zwischenspeichern</value>
|
||||
</data>
|
||||
@@ -1035,6 +1125,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell
|
||||
<data name="ExternalToolBefore" xml:space="preserve">
|
||||
<value>Externes Programm vorher</value>
|
||||
</data>
|
||||
<data name="LoadBalanceInfo" xml:space="preserve">
|
||||
<value>Lastausgleichsinfo</value>
|
||||
</data>
|
||||
<data name="MacAddress" xml:space="preserve">
|
||||
<value>MAC-Adresse</value>
|
||||
</data>
|
||||
@@ -1083,6 +1176,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell
|
||||
<data name="Printers" xml:space="preserve">
|
||||
<value>Drucker</value>
|
||||
</data>
|
||||
<data name="Clipboard" xml:space="preserve">
|
||||
<value>Zwischenablage</value>
|
||||
</data>
|
||||
<data name="Sounds" xml:space="preserve">
|
||||
<value>Töne</value>
|
||||
</data>
|
||||
@@ -1172,6 +1268,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell
|
||||
<data name="Quick" xml:space="preserve">
|
||||
<value>Direkt: {0}</value>
|
||||
</data>
|
||||
<data name="QuickConnect" xml:space="preserve">
|
||||
<value>Schnellverbindung</value>
|
||||
</data>
|
||||
<data name="QuickConnectAddFailed" xml:space="preserve">
|
||||
<value>Hinzufügen zur Direktverbindungshistorie fehlgeschlagen!</value>
|
||||
</data>
|
||||
@@ -1349,9 +1448,6 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell
|
||||
<data name="SaveConnectionsFileBeforeOpeningAnother" xml:space="preserve">
|
||||
<value>Wollen sie die aktuelle Verbindungsdatei speichern, bevor eine andere geladen wird?</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>Verbindungen beim Schließen speichern</value>
|
||||
</data>
|
||||
<data name="SaveImageFilter" xml:space="preserve">
|
||||
<value>Graphics Interchange Format Datei (.gif)|*.gif|Joint Photographic Experts Group Datei (.jpeg)|*.jpeg|Joint Photographic Experts Group Datei (.jpg)|*.jpg|Portable Network Graphics Datei (.png)|*.png</value>
|
||||
</data>
|
||||
@@ -1463,6 +1559,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell
|
||||
<data name="TitlePassword" xml:space="preserve">
|
||||
<value>mRemoteNG Passwort</value>
|
||||
</data>
|
||||
<data name="TitlePasswordWithName" xml:space="preserve">
|
||||
<value>mRemoteNG Passwort für {0}</value>
|
||||
</data>
|
||||
<data name="TitleSelectPanel" xml:space="preserve">
|
||||
<value>Wähle Panel</value>
|
||||
</data>
|
||||
@@ -1475,6 +1574,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell
|
||||
<data name="TryToIntegrate" xml:space="preserve">
|
||||
<value>Integration versuchen</value>
|
||||
</data>
|
||||
<data name="ShowOnToolbar" xml:space="preserve">
|
||||
<value>In der Symbolleiste anzeigen</value>
|
||||
</data>
|
||||
<data name="UltraVncRepeater" xml:space="preserve">
|
||||
<value>Ultra Vnc Repeater</value>
|
||||
</data>
|
||||
@@ -1515,6 +1617,9 @@ mRemoteNG wird nun geschlossen und die Installation gestartet.</value>
|
||||
<data name="Weekly" xml:space="preserve">
|
||||
<value>Wöchentlich</value>
|
||||
</data>
|
||||
<data name="UpdateGetChangeLogFailed" xml:space="preserve">
|
||||
<value>Der Changelog konnte nicht heruntergeladen werden.</value>
|
||||
</data>
|
||||
<data name="UseDifferentUsernameAndPassword" xml:space="preserve">
|
||||
<value>Anderen Benutzernamen und Passwort verwenden</value>
|
||||
</data>
|
||||
@@ -1566,105 +1671,6 @@ mRemoteNG wird nun geschlossen und die Installation gestartet.</value>
|
||||
<data name="Yes" xml:space="preserve">
|
||||
<value>Ja</value>
|
||||
</data>
|
||||
<data name="_Launch" xml:space="preserve">
|
||||
<value>&Starten</value>
|
||||
</data>
|
||||
<data name="CommandOpenConnectionFile" xml:space="preserve">
|
||||
<value>Eine Verbindungsdatei öffnen</value>
|
||||
</data>
|
||||
<data name="ConnectNoCredentials" xml:space="preserve">
|
||||
<value>Ohne Anmeldedaten verbinden</value>
|
||||
</data>
|
||||
<data name="DontConnectToConsoleSession" xml:space="preserve">
|
||||
<value>Keine Verbindung zur Konsolensitzung herstellen</value>
|
||||
</data>
|
||||
<data name="ErrorCouldNotLaunchPutty" xml:space="preserve">
|
||||
<value>PuTTY konnte nicht gestartet werden.</value>
|
||||
</data>
|
||||
<data name="ExportEverything" xml:space="preserve">
|
||||
<value>Alles exportieren</value>
|
||||
</data>
|
||||
<data name="ExportFile" xml:space="preserve">
|
||||
<value>Datei exportieren</value>
|
||||
</data>
|
||||
<data name="ExportProperties" xml:space="preserve">
|
||||
<value>Eigenschaften exportieren</value>
|
||||
</data>
|
||||
<data name="FilterAllImportable" xml:space="preserve">
|
||||
<value>Alle wichtigen Dateien</value>
|
||||
</data>
|
||||
<data name="ImportFromFile" xml:space="preserve">
|
||||
<value>Von &Datei importieren</value>
|
||||
</data>
|
||||
<data name="OptionsProxyTesting" xml:space="preserve">
|
||||
<value>Testen...</value>
|
||||
</data>
|
||||
<data name="EncryptionEngine" xml:space="preserve">
|
||||
<value>Verschlüsselungs-Engine</value>
|
||||
</data>
|
||||
<data name="TabSecurity" xml:space="preserve">
|
||||
<value>Sicherheit</value>
|
||||
</data>
|
||||
<data name="Dynamic" xml:space="preserve">
|
||||
<value>Dynamisch</value>
|
||||
</data>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Hoch</value>
|
||||
</data>
|
||||
<data name="Medium" xml:space="preserve">
|
||||
<value>Mittel</value>
|
||||
</data>
|
||||
<data name="SoundQuality" xml:space="preserve">
|
||||
<value>Klangqualität</value>
|
||||
</data>
|
||||
<data name="UpdatePortableDownloadComplete" xml:space="preserve">
|
||||
<value>Download abgeschlossen!</value>
|
||||
</data>
|
||||
<data name="Title" xml:space="preserve">
|
||||
<value>Titel</value>
|
||||
</data>
|
||||
<data name="OpenFile" xml:space="preserve">
|
||||
<value>Datei öffnen</value>
|
||||
</data>
|
||||
<data name="OpenADifferentFile" xml:space="preserve">
|
||||
<value>Andere Datei öffnen</value>
|
||||
</data>
|
||||
<data name="ConfigurationCreateNew" xml:space="preserve">
|
||||
<value>Neue Verbindungsdatei erstellen</value>
|
||||
</data>
|
||||
<data name="CommandExitProgram" xml:space="preserve">
|
||||
<value>B&eende {0}</value>
|
||||
</data>
|
||||
<data name="_TryAgain" xml:space="preserve">
|
||||
<value>&Nochmal versuchen</value>
|
||||
</data>
|
||||
<data name="ExternalToolDefaultName" xml:space="preserve">
|
||||
<value>Neues externes Programm</value>
|
||||
</data>
|
||||
<data name="LoadFromSqlFailedContent" xml:space="preserve">
|
||||
<value>Die Verbindungsinformationen konnten nicht vom SQL-Server geladen werden.</value>
|
||||
</data>
|
||||
<data name="PasswordStatusMustMatch" xml:space="preserve">
|
||||
<value>Die beide Passwörter müssen übereinstimmen.</value>
|
||||
</data>
|
||||
<data name="PasswordStatusTooShort" xml:space="preserve">
|
||||
<value>Das Passwort muss mindestens 3 Zeichen lang sein.</value>
|
||||
</data>
|
||||
<data name="PortScanComplete" xml:space="preserve">
|
||||
<value>Port-Scan abgeschlossen.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionAutomaticResize" xml:space="preserve">
|
||||
<value>Wählen Sie aus, ob die Größe der Verbindung automatisch angepasst werden soll, wenn die Fenstergröße geändert oder der Vollbildmodus umgeschaltet wird. Benötigt RDC 8.0 oder höher.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionLoadBalanceInfo" xml:space="preserve">
|
||||
<value>Gibt die Lastausgleichsinformationen an, die von Lastenausgleichsroutern verwendet werden, um den besten Server auszuwählen.</value>
|
||||
</data>
|
||||
<data name="LoadBalanceInfo" xml:space="preserve">
|
||||
<value>Lastausgleichsinfo</value>
|
||||
</data>
|
||||
<data name="TitlePasswordWithName" xml:space="preserve">
|
||||
<value>mRemoteNG Passwort für {0}</value>
|
||||
</data>
|
||||
<data name="RdpOverallConnectionTimeout" xml:space="preserve">
|
||||
<value>RDP-Verbindungs-Timeout</value>
|
||||
</data>
|
||||
@@ -1683,75 +1689,36 @@ mRemoteNG wird nun geschlossen und die Installation gestartet.</value>
|
||||
<data name="EncryptionBlockCipherMode" xml:space="preserve">
|
||||
<value>Block-Cipher-Modus</value>
|
||||
</data>
|
||||
<data name="ShowTheseMessageTypes" xml:space="preserve">
|
||||
<value>Zeige diese Nachrichtentypen</value>
|
||||
<data name="EncryptionEngine" xml:space="preserve">
|
||||
<value>Verschlüsselungs-Engine</value>
|
||||
</data>
|
||||
<data name="ConnectionFileNotFound" xml:space="preserve">
|
||||
<value>Die Verbindungsdatei konnte nicht gefunden werden.</value>
|
||||
<data name="TabSecurity" xml:space="preserve">
|
||||
<value>Sicherheit</value>
|
||||
</data>
|
||||
<data name="ConfigurationImportFile" xml:space="preserve">
|
||||
<value>Existierende Datei importieren</value>
|
||||
<data name="EncryptionKeyDerivationIterations" xml:space="preserve">
|
||||
<value>Iterationen der Ableitungsfunktion</value>
|
||||
</data>
|
||||
<data name="ConnectionSuccessful" xml:space="preserve">
|
||||
<value>Verbindung erfolgreich</value>
|
||||
<data name="Dynamic" xml:space="preserve">
|
||||
<value>Dynamisch</value>
|
||||
</data>
|
||||
<data name="DatabaseNotAvailable" xml:space="preserve">
|
||||
<value>Datenbank '{0}' ist nicht verfügbar.</value>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Hoch</value>
|
||||
</data>
|
||||
<data name="SaveConnectionsAfterEveryEdit" xml:space="preserve">
|
||||
<value>Verbindungen nach jeder Bearbeitung speichern</value>
|
||||
</data>
|
||||
<data name="FilterSearchMatchesInConnectionTree" xml:space="preserve">
|
||||
<value>Suchergebnisse in Verbindungen filtern</value>
|
||||
</data>
|
||||
<data name="TestConnection" xml:space="preserve">
|
||||
<value>Verbindung testen</value>
|
||||
</data>
|
||||
<data name="TimeoutInSeconds" xml:space="preserve">
|
||||
<value>Time-Out [Sekunden]</value>
|
||||
</data>
|
||||
<data name="AutomaticResize" xml:space="preserve">
|
||||
<value>Automatische Größenänderung</value>
|
||||
</data>
|
||||
<data name="ShowOnToolbar" xml:space="preserve">
|
||||
<value>In der Symbolleiste anzeigen</value>
|
||||
</data>
|
||||
<data name="AssignedCredential" xml:space="preserve">
|
||||
<value>Zugewiesene Anmeldedaten</value>
|
||||
</data>
|
||||
<data name="OptionsThemeNewThemeCaption" xml:space="preserve">
|
||||
<value>Neuer Thema Name</value>
|
||||
</data>
|
||||
<data name="TestingConnection" xml:space="preserve">
|
||||
<value>Verbindung testen</value>
|
||||
</data>
|
||||
<data name="_ExportToFile" xml:space="preserve">
|
||||
<value>In Datei &exportieren...</value>
|
||||
</data>
|
||||
<data name="ImportFileFailedContent" xml:space="preserve">
|
||||
<value>Beim Importieren der Datei ist ein Fehler aufgetreten ("{0}").</value>
|
||||
</data>
|
||||
<data name="AdvancedSecurityOptions" xml:space="preserve">
|
||||
<value>Erweiterte Sicherheitsoptionen</value>
|
||||
</data>
|
||||
<data name="LogTheseMessageTypes" xml:space="preserve">
|
||||
<value>Diese Nachrichtentypen protokollieren</value>
|
||||
</data>
|
||||
<data name="LoginFailedForUser" xml:space="preserve">
|
||||
<value>Login fehlgeschlagen für Benutzer '{0}'.</value>
|
||||
</data>
|
||||
<data name="OptionsPageTitle" xml:space="preserve">
|
||||
<value>mRemoteNG Optionen</value>
|
||||
</data>
|
||||
<data name="NewExternalTool" xml:space="preserve">
|
||||
<value>Neues externes Tool</value>
|
||||
</data>
|
||||
<data name="UpdateGetChangeLogFailed" xml:space="preserve">
|
||||
<value>Der Changelog konnte nicht heruntergeladen werden.</value>
|
||||
<data name="Medium" xml:space="preserve">
|
||||
<value>Mittel</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionSoundQuality" xml:space="preserve">
|
||||
<value>Wählen Sie die vom Protokoll bereitgestellte Klangqualität: Dynamisch, Mittel, Hoch</value>
|
||||
</data>
|
||||
<data name="SoundQuality" xml:space="preserve">
|
||||
<value>Klangqualität</value>
|
||||
</data>
|
||||
<data name="UpdatePortableDownloadComplete" xml:space="preserve">
|
||||
<value>Download abgeschlossen!</value>
|
||||
</data>
|
||||
<data name="Download" xml:space="preserve">
|
||||
<value>Download</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRDPMinutesToIdleTimeout" xml:space="preserve">
|
||||
<value>Die Anzahl der Minuten, die die RDP-Sitzung im Leerlauf verbleibt, bevor sie automatisch getrennt wird (0 bedeutet kein Limit)</value>
|
||||
</data>
|
||||
@@ -1761,6 +1728,9 @@ mRemoteNG wird nun geschlossen und die Installation gestartet.</value>
|
||||
<data name="Add" xml:space="preserve">
|
||||
<value>Hinzufügen</value>
|
||||
</data>
|
||||
<data name="Title" xml:space="preserve">
|
||||
<value>Titel</value>
|
||||
</data>
|
||||
<data name="ConfirmDeleteCredentialRecord" xml:space="preserve">
|
||||
<value>Möchten Sie die Anmeldeinformationen {0} wirklich löschen?</value>
|
||||
</data>
|
||||
@@ -1786,74 +1756,161 @@ Die Passwortlänge muss zwischen {0} und {1} liegen</value>
|
||||
<data name="ChooseLogPath" xml:space="preserve">
|
||||
<value>Wählen Sie einen Pfad für das mRemoteNG-Logfile</value>
|
||||
</data>
|
||||
<data name="ShowTheseMessageTypes" xml:space="preserve">
|
||||
<value>Zeige diese Nachrichtentypen</value>
|
||||
</data>
|
||||
<data name="LogFilePath" xml:space="preserve">
|
||||
<value>Pfad des Logfiles</value>
|
||||
</data>
|
||||
<data name="LogTheseMessageTypes" xml:space="preserve">
|
||||
<value>Diese Nachrichtentypen protokollieren</value>
|
||||
</data>
|
||||
<data name="ChoosePath" xml:space="preserve">
|
||||
<value>Pfad auswählen</value>
|
||||
</data>
|
||||
<data name="OpenFile" xml:space="preserve">
|
||||
<value>Datei öffnen</value>
|
||||
</data>
|
||||
<data name="UseDefault" xml:space="preserve">
|
||||
<value>Standard verwenden</value>
|
||||
</data>
|
||||
<data name="Logging" xml:space="preserve">
|
||||
<value>Protokollierung</value>
|
||||
</data>
|
||||
<data name="Popups" xml:space="preserve">
|
||||
<value>Pop-ups</value>
|
||||
</data>
|
||||
<data name="LogToAppDir" xml:space="preserve">
|
||||
<value>In das Anwendungsverzeichnis protokollieren</value>
|
||||
</data>
|
||||
<data name="AssignedCredential" xml:space="preserve">
|
||||
<value>Zugewiesene Anmeldedaten</value>
|
||||
</data>
|
||||
<data name="Credentials" xml:space="preserve">
|
||||
<value>Anmeldedaten</value>
|
||||
</data>
|
||||
<data name="OpenADifferentFile" xml:space="preserve">
|
||||
<value>Andere Datei öffnen</value>
|
||||
</data>
|
||||
<data name="CredentialUnavailable" xml:space="preserve">
|
||||
<value>Anmeldeinformationen nicht verfügbar</value>
|
||||
</data>
|
||||
<data name="OptionsThemeDeleteConfirmation" xml:space="preserve">
|
||||
<value>Soll das Theme wirklich gelöscht werden?</value>
|
||||
</data>
|
||||
<data name="OptionsThemeNewThemeCaption" xml:space="preserve">
|
||||
<value>Neuer Thema Name</value>
|
||||
</data>
|
||||
<data name="OptionsThemeNewThemeError" xml:space="preserve">
|
||||
<value>Das Theme kann nicht erstellt werden, Name bereits vorhanden oder Sonderzeichen im Namen</value>
|
||||
</data>
|
||||
<data name="OptionsThemeNewThemeText" xml:space="preserve">
|
||||
<value>Namen des neuen Theme angeben</value>
|
||||
</data>
|
||||
<data name="OptionsThemeChangeWarning" xml:space="preserve">
|
||||
<value>Warnung: Ein Neustart ist erforderlich, um Änderungen am Theme anzuwenden.</value>
|
||||
</data>
|
||||
<data name="CouldNotFindExternalTool" xml:space="preserve">
|
||||
<value>Externes Tool mit Namen "{0}" konnte nicht gefunden werden</value>
|
||||
</data>
|
||||
<data name="ConfigurationCreateNew" xml:space="preserve">
|
||||
<value>Neue Verbindungsdatei erstellen</value>
|
||||
</data>
|
||||
<data name="ConnectionFileNotFound" xml:space="preserve">
|
||||
<value>Die Verbindungsdatei konnte nicht gefunden werden.</value>
|
||||
</data>
|
||||
<data name="ConfigurationImportFile" xml:space="preserve">
|
||||
<value>Existierende Datei importieren</value>
|
||||
</data>
|
||||
<data name="ConfigurationCustomPath" xml:space="preserve">
|
||||
<value>Eigenen Pfad verwenden</value>
|
||||
</data>
|
||||
<data name="TestingConnection" xml:space="preserve">
|
||||
<value>Verbindung testen</value>
|
||||
</data>
|
||||
<data name="ServerNotAccessible" xml:space="preserve">
|
||||
<value>Server '{0}' nicht erreichbar</value>
|
||||
</data>
|
||||
<data name="ConnectionSuccessful" xml:space="preserve">
|
||||
<value>Verbindung erfolgreich</value>
|
||||
</data>
|
||||
<data name="LoginFailedForUser" xml:space="preserve">
|
||||
<value>Login fehlgeschlagen für Benutzer '{0}'.</value>
|
||||
</data>
|
||||
<data name="DatabaseNotAvailable" xml:space="preserve">
|
||||
<value>Datenbank '{0}' ist nicht verfügbar.</value>
|
||||
</data>
|
||||
<data name="SaveConnectionsAfterEveryEdit" xml:space="preserve">
|
||||
<value>Verbindungen nach jeder Bearbeitung speichern</value>
|
||||
</data>
|
||||
<data name="FilterSearchMatchesInConnectionTree" xml:space="preserve">
|
||||
<value>Suchergebnisse in Verbindungen filtern</value>
|
||||
</data>
|
||||
<data name="TestConnection" xml:space="preserve">
|
||||
<value>Verbindung testen</value>
|
||||
</data>
|
||||
<data name="LoadBalanceInfoUseUtf8" xml:space="preserve">
|
||||
<value>Verwenden Sie die UTF8-Codierung für die RDP-Eigenschaft "Load Balance Info"</value>
|
||||
</data>
|
||||
<data name="ExportSelectedConnection" xml:space="preserve">
|
||||
<value>Die Aktuell gewählte Verbindung exportieren</value>
|
||||
<data name="TimeoutInSeconds" xml:space="preserve">
|
||||
<value>Time-Out [Sekunden]</value>
|
||||
</data>
|
||||
<data name="ExportSelectedFolder" xml:space="preserve">
|
||||
<value>Den Aktuell gewählten Ordner exportieren</value>
|
||||
<data name="WorkingDirectory" xml:space="preserve">
|
||||
<value>Arbeitsverzeichnis:</value>
|
||||
</data>
|
||||
<data name="Popups" xml:space="preserve">
|
||||
<value>Pop-ups</value>
|
||||
<data name="WorkingDirColumnHeader" xml:space="preserve">
|
||||
<value>Arbeitsverzeichnis</value>
|
||||
</data>
|
||||
<data name="ExportItems" xml:space="preserve">
|
||||
<value>Element exportieren</value>
|
||||
<data name="LockToolbars" xml:space="preserve">
|
||||
<value>Position der Symbolleiste sperren</value>
|
||||
</data>
|
||||
<data name="Http" xml:space="preserve">
|
||||
<value>HTTP</value>
|
||||
<data name="MultiSshToolbar" xml:space="preserve">
|
||||
<value>Multi-SSH Symbolleiste</value>
|
||||
</data>
|
||||
<data name="HttpInternetExplorer" xml:space="preserve">
|
||||
<value>Internet Explorer</value>
|
||||
<data name="AdvancedSecurityOptions" xml:space="preserve">
|
||||
<value>Erweiterte Sicherheitsoptionen</value>
|
||||
</data>
|
||||
<data name="Https" xml:space="preserve">
|
||||
<value>HTTPS</value>
|
||||
<data name="OptionsPageTitle" xml:space="preserve">
|
||||
<value>mRemoteNG Optionen</value>
|
||||
</data>
|
||||
<data name="Download" xml:space="preserve">
|
||||
<value>Download</value>
|
||||
<data name="CreateEmptyPanelOnStartUp" xml:space="preserve">
|
||||
<value>Erstelle ein leeres Panel, wenn mRemoteNG gestartet wird</value>
|
||||
</data>
|
||||
<data name="MustBeBetween0And255" xml:space="preserve">
|
||||
<value>Muss zwischen 0 und 255 liegen</value>
|
||||
</data>
|
||||
<data name="Delete" xml:space="preserve">
|
||||
<value>Löschen</value>
|
||||
</data>
|
||||
<data name="ReconnectAllConnections" xml:space="preserve">
|
||||
<value>Alle Verbindungen wieder verbinden</value>
|
||||
</data>
|
||||
<data name="DisconnectOthers" xml:space="preserve">
|
||||
<value>Alles außer dieser Verbindung trennen</value>
|
||||
</data>
|
||||
<data name="ConfirmCloseConnectionOthersInstruction" xml:space="preserve">
|
||||
<value>Sind Sie sicher, dass Sie alle Verbindungen bis auf "{0}" schließen wollen?</value>
|
||||
</data>
|
||||
<data name="AutomaticReconnectError" xml:space="preserve">
|
||||
<value>Beim Versuch, die Verbindung zum RDP-Host '{0}' wiederherzustellen, ist ein Fehler aufgetreten</value>
|
||||
</data>
|
||||
<data name="ChangeConnectionResolutionError" xml:space="preserve">
|
||||
<value>Beim Versuch, die Verbindungsauflösung auf den Host '{0}' zu ändern, ist ein Fehler aufgetreten</value>
|
||||
</data>
|
||||
<data name="ExceptionMessage" xml:space="preserve">
|
||||
<value>Fehlermeldung</value>
|
||||
</data>
|
||||
<data name="UnhandledExceptionOccured" xml:space="preserve">
|
||||
<value>Eine unbehandelte Ausnahme ist aufgetreten</value>
|
||||
</data>
|
||||
<data name="CopyHostname" xml:space="preserve">
|
||||
<value>Hostnamen kopieren</value>
|
||||
</data>
|
||||
<data name="PlaceSearchBarAboveConnectionTree" xml:space="preserve">
|
||||
<value>Suchleiste über den Verbindungen anzeigen</value>
|
||||
</data>
|
||||
<data name="CreateEmptyPanelOnStartUp" xml:space="preserve">
|
||||
<value>Erstelle ein leeres Panel, wenn mRemoteNG gestartet wird</value>
|
||||
<data name="TrackActiveConnectionInConnectionTree" xml:space="preserve">
|
||||
<value>Aktive Verbindung im Verbindungsbaum verfolgen</value>
|
||||
</data>
|
||||
<data name="ReleaseChannel" xml:space="preserve">
|
||||
<value>Update-Kanal</value>
|
||||
@@ -1863,30 +1920,9 @@ Die Passwortlänge muss zwischen {0} und {1} liegen</value>
|
||||
Preview beinhaltet Betas & Release Candidates.
|
||||
Nightly umfasst Alphas, Betas und Release Candidates.</value>
|
||||
</data>
|
||||
<data name="TrackActiveConnectionInConnectionTree" xml:space="preserve">
|
||||
<value>Aktive Verbindung im Verbindungsbaum verfolgen</value>
|
||||
</data>
|
||||
<data name="EncryptionKeyDerivationIterations" xml:space="preserve">
|
||||
<value>Iterationen der Ableitungsfunktion</value>
|
||||
</data>
|
||||
<data name="Credentials" xml:space="preserve">
|
||||
<value>Anmeldedaten</value>
|
||||
</data>
|
||||
<data name="Apply" xml:space="preserve">
|
||||
<value>Anwenden</value>
|
||||
</data>
|
||||
<data name="OptionsThemeChangeWarning" xml:space="preserve">
|
||||
<value>Warnung: Ein Neustart ist erforderlich, um Änderungen am Theme anzuwenden.</value>
|
||||
</data>
|
||||
<data name="Clipboard" xml:space="preserve">
|
||||
<value>Zwischenablage</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRedirectClipboard" xml:space="preserve">
|
||||
<value>Umleitung der Zwischenablage erlauben.</value>
|
||||
</data>
|
||||
<data name="MultiSshToolbar" xml:space="preserve">
|
||||
<value>Multi-SSH Symbolleiste</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionFavorite" xml:space="preserve">
|
||||
<value>Zeige diese Verbindung in den Favoriten</value>
|
||||
</data>
|
||||
@@ -1905,8 +1941,8 @@ Nightly umfasst Alphas, Betas und Release Candidates.</value>
|
||||
<data name="DoNotTrimUsername" xml:space="preserve">
|
||||
<value>Leerzeichen nicht aus Benutzernamen entfernen</value>
|
||||
</data>
|
||||
<data name="UseVmId" xml:space="preserve">
|
||||
<value>Benutze VM ID</value>
|
||||
<data name="PropertyDescriptionRdpVersion" xml:space="preserve">
|
||||
<value>Legt die Version des RDP fest, die beim Öffnen von Verbindungen verwendet wird.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionUseVmId" xml:space="preserve">
|
||||
<value>Verwenden Sie die VM ID, um eine Verbindung zu einer VM herzustellen die auf Hyper-V ausgeführt wird.</value>
|
||||
@@ -1914,18 +1950,24 @@ Nightly umfasst Alphas, Betas und Release Candidates.</value>
|
||||
<data name="PropertyDescriptionVmId" xml:space="preserve">
|
||||
<value>Die ID der virtuellen Hyper-V-Maschine, zu der eine Verbindung hergestellt werden soll.</value>
|
||||
</data>
|
||||
<data name="UseVmId" xml:space="preserve">
|
||||
<value>Benutze VM ID</value>
|
||||
</data>
|
||||
<data name="RdpProtocolVersionNotSupported" xml:space="preserve">
|
||||
<value>RDP-Client konnte nicht erstellt werden. Die RDP-Protokollversion {0} wird auf diesem System nicht unterstützt. Bitte wählen Sie eine ältere Protokollversion.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRdpVersion" xml:space="preserve">
|
||||
<value>Legt die Version des RDP fest, die beim Öffnen von Verbindungen verwendet wird.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionSshTunnel" xml:space="preserve">
|
||||
<value>Zum Verbinden mittels eines SSH Tunnels (Jump Host) geben Sie hier den Namen der SSH Verbindung an, welche benutzt werden soll um den SSH Tunnel einzurichten.</value>
|
||||
</data>
|
||||
<data name="SshTunnel" xml:space="preserve">
|
||||
<value>SSH-Tunnel</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionSshOptions" xml:space="preserve">
|
||||
<value>Geben Sie hier zusaetzliche Optionen an welche fuer die SSH Verbindung verwendet werden sollen. Fuer weitere Infos zu den moeglichen Optionen konsultieren sie die Putty Dokumentation.</value>
|
||||
</data>
|
||||
<data name="SshOptions" xml:space="preserve">
|
||||
<value>SSH-Optionen</value>
|
||||
</data>
|
||||
<data name="SshTunnelConfigProblem" xml:space="preserve">
|
||||
<value>Konfigurationsfehler der Verbindung. Verbindung zu: "{0}" via SSH Tunnel: "{1}" nicht möglich. Eine Verbindung mit dem als SSH Tunnel konfiguriertem Namen konnte nicht gefunden werden. Löschen Sie die SSH Tunnel Konfiguration or geben sie eine existierende SSH Verbindung an, welche zum Aufbau eine Tunnels zum Erreichen des eigentlichen Zielsystems verwendet werden soll.</value>
|
||||
</data>
|
||||
@@ -1950,6 +1992,9 @@ Nightly umfasst Alphas, Betas und Release Candidates.</value>
|
||||
<data name="PropertyDescriptionPasswordProtect" xml:space="preserve">
|
||||
<value>Legen Sie ein Kennwort fest, mit dem die Verbindungsdatei verschlüsselt werden soll. Sie werden aufgefordert Ihr Passwort einzugeben, bevor Sie mRemoteNG starten.</value>
|
||||
</data>
|
||||
<data name="UseEnhancedMode" xml:space="preserve">
|
||||
<value>Erweiterten Modus verwenden</value>
|
||||
</data>
|
||||
<data name="CloseToSysTray" xml:space="preserve">
|
||||
<value>In den System Tray schließen</value>
|
||||
</data>
|
||||
@@ -1962,75 +2007,21 @@ Nightly umfasst Alphas, Betas und Release Candidates.</value>
|
||||
<data name="PropertyDescriptionDisableCursorShadow" xml:space="preserve">
|
||||
<value>Legt fest, ob ein Mausschatten sichtbar sein soll.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionDisableMenuAnimations" xml:space="preserve">
|
||||
<value>Legt fest, ob Menüs und Fenster mit Animationseffekten in der Remote-Sitzung angezeigt werden können.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionDisableFullWindowDrag" xml:space="preserve">
|
||||
<value>Legt fest, ob der Fensterinhalt angezeigt wird, wenn Sie das Fenster an eine neue Position ziehen.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionDisableMenuAnimations" xml:space="preserve">
|
||||
<value>Legt fest, ob Menüs und Fenster mit Animationseffekten in der Remote-Sitzung angezeigt werden können.</value>
|
||||
</data>
|
||||
<data name="ShowHideMenu" xml:space="preserve">
|
||||
<value>Verstecke/Zeige Menü</value>
|
||||
</data>
|
||||
<data name="WorkingDirColumnHeader" xml:space="preserve">
|
||||
<value>Arbeitsverzeichnis</value>
|
||||
</data>
|
||||
<data name="WorkingDirectory" xml:space="preserve">
|
||||
<value>Arbeitsverzeichnis:</value>
|
||||
</data>
|
||||
<data name="UseEnhancedMode" xml:space="preserve">
|
||||
<value>Erweiterten Modus verwenden</value>
|
||||
</data>
|
||||
<data name="UnhandledExceptionOccured" xml:space="preserve">
|
||||
<value>Eine unbehandelte Ausnahme ist aufgetreten</value>
|
||||
</data>
|
||||
<data name="ReconnectAllConnections" xml:space="preserve">
|
||||
<value>Alle Verbindungen wieder verbinden</value>
|
||||
</data>
|
||||
<data name="QuickConnect" xml:space="preserve">
|
||||
<value>Schnellverbindung</value>
|
||||
</data>
|
||||
<data name="SshOptions" xml:space="preserve">
|
||||
<value>SSH-Optionen</value>
|
||||
</data>
|
||||
<data name="SshTunnel" xml:space="preserve">
|
||||
<value>SSH-Tunnel</value>
|
||||
</data>
|
||||
<data name="MustBeBetween0And255" xml:space="preserve">
|
||||
<value>Muss zwischen 0 und 255 liegen</value>
|
||||
</data>
|
||||
<data name="AutomaticReconnectError" xml:space="preserve">
|
||||
<value>Beim Versuch, die Verbindung zum RDP-Host '{0}' wiederherzustellen, ist ein Fehler aufgetreten</value>
|
||||
</data>
|
||||
<data name="ChangeConnectionResolutionError" xml:space="preserve">
|
||||
<value>Beim Versuch, die Verbindungsauflösung auf den Host '{0}' zu ändern, ist ein Fehler aufgetreten</value>
|
||||
</data>
|
||||
<data name="ConfirmCloseConnectionOthersInstruction" xml:space="preserve">
|
||||
<value>Sind Sie sicher, dass Sie alle Verbindungen bis auf "{0}" schließen wollen?</value>
|
||||
</data>
|
||||
<data name="CopyHostname" xml:space="preserve">
|
||||
<value>Hostnamen kopieren</value>
|
||||
</data>
|
||||
<data name="Delete" xml:space="preserve">
|
||||
<value>Löschen</value>
|
||||
</data>
|
||||
<data name="DisconnectOthers" xml:space="preserve">
|
||||
<value>Alles außer dieser Verbindung trennen</value>
|
||||
</data>
|
||||
<data name="LockToolbars" xml:space="preserve">
|
||||
<value>Position der Symbolleiste sperren</value>
|
||||
</data>
|
||||
<data name="ExceptionMessage" xml:space="preserve">
|
||||
<value>Fehlermeldung</value>
|
||||
</data>
|
||||
<data name="WebView2InitializationFailed" xml:space="preserve">
|
||||
<value>WebView2-Erstellung fehlgeschlagen</value>
|
||||
<data name="ApplyInheritanceToChildren" xml:space="preserve">
|
||||
<value>Vererbung auf Kinder anwenden</value>
|
||||
</data>
|
||||
<data name="ApplyDefaultInheritance" xml:space="preserve">
|
||||
<value>Standardvererbung anwenden</value>
|
||||
</data>
|
||||
<data name="ApplyInheritanceToChildren" xml:space="preserve">
|
||||
<value>Vererbung auf Kinder anwenden</value>
|
||||
</data>
|
||||
<data name="PsCanceled" xml:space="preserve">
|
||||
<value>Anmeldung abgebrochen! Bei bedarf neu einleiten.</value>
|
||||
<comment>C# to Powershell transfer issue with encoding possible</comment>
|
||||
@@ -2050,4 +2041,13 @@ Nightly umfasst Alphas, Betas und Release Candidates.</value>
|
||||
<data name="OptionsCompanyPolicyMessage" xml:space="preserve">
|
||||
<value>*Einige Einstellungen werden von Ihrem Unternehmen festgelegt. Für weitere Informationen wenden Sie sich an Ihren Systemadministrator.</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Gateway</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>Verbindungen beim Schließen speichern</value>
|
||||
</data>
|
||||
<data name="WebView2InitializationFailed" xml:space="preserve">
|
||||
<value>WebView2-Erstellung fehlgeschlagen</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -59,7 +59,7 @@
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
@@ -105,19 +105,19 @@
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>Σχετικά με</value>
|
||||
</data>
|
||||
<data name="AddNodeFromXmlFailed" xml:space="preserve">
|
||||
@@ -222,9 +222,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>Οθόνη</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Πύλη</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>Διάφορα</value>
|
||||
</data>
|
||||
@@ -273,4 +270,7 @@
|
||||
<data name="ConnectionsFileCouldNotBeLoaded" xml:space="preserve">
|
||||
<value>Το αρχείο συνδέσεων "{0}" δεν μπορεί να φορτωθεί!</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Πύλη</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -59,7 +59,7 @@
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
@@ -105,17 +105,17 @@
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="ButtonDefaultProperties" xml:space="preserve">
|
||||
<value>Propiedades por defecto</value>
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>Acerca de</value>
|
||||
</data>
|
||||
<data name="AddNodeFromXmlFailed" xml:space="preserve">
|
||||
@@ -225,9 +225,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>Pantalla</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Puerta de Enlace</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>Varios</value>
|
||||
</data>
|
||||
@@ -628,7 +625,7 @@ Arrancando con un nuevo archivo de conexiones.</value>
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>Agregar Panel de Conexión</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>Comprobar Actualizaciones</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -649,7 +646,7 @@ Arrancando con un nuevo archivo de conexiones.</value>
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>Borrar Herramienta Externa...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>Donar</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -667,7 +664,7 @@ Arrancando con un nuevo archivo de conexiones.</value>
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>&Ayuda</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>Ayuda de mRemoteNG</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -709,7 +706,7 @@ Arrancando con un nuevo archivo de conexiones.</value>
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>Renombrar Pestaña</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>Informar de un Bug</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -739,7 +736,7 @@ Arrancando con un nuevo archivo de conexiones.</value>
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>Comenzar Chat (VNC)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>Foro de Soporte</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -754,7 +751,7 @@ Arrancando con un nuevo archivo de conexiones.</value>
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>Solo Ver (VNC)</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>Sitio Web</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
@@ -1330,9 +1327,6 @@ Mensaje:
|
||||
<data name="SaveConnectionsFileBeforeOpeningAnother" xml:space="preserve">
|
||||
<value>¿Quiere guardar el actual archivo de conexiones antes de cargar otro?</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>Guardar conexiones al salir</value>
|
||||
</data>
|
||||
<data name="Screen" xml:space="preserve">
|
||||
<value>Pantalla</value>
|
||||
</data>
|
||||
@@ -1541,4 +1535,10 @@ mRemoteNG ahora se cerrará y comenzará la instalación.</value>
|
||||
<data name="Yes" xml:space="preserve">
|
||||
<value>Sí</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Puerta de Enlace</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>Guardar conexiones al salir</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -1,5 +1,64 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
@@ -79,4 +138,4 @@
|
||||
<data name="Rdp65536Colors" xml:space="preserve">
|
||||
<value>65536 Värit (16-bit)</value>
|
||||
</data>
|
||||
</root>
|
||||
</root>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -59,7 +59,7 @@
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
@@ -105,19 +105,19 @@
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>Névjegy</value>
|
||||
</data>
|
||||
<data name="Always" xml:space="preserve">
|
||||
@@ -183,9 +183,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>Képernyő</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Átjáró</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>Egyéb</value>
|
||||
</data>
|
||||
@@ -270,7 +267,7 @@
|
||||
<data name="LanguageDefault" xml:space="preserve">
|
||||
<value>(Automatikus észlelés)</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>Frissítés keresése</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -297,7 +294,7 @@
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>Fül átnevezése</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>Hibabejelentés</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -309,7 +306,7 @@
|
||||
<data name="SaveConnectionFileAs" xml:space="preserve">
|
||||
<value>Kapcsolatfájl mentése, mint...</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>Honlap</value>
|
||||
</data>
|
||||
<data name="Never" xml:space="preserve">
|
||||
@@ -333,4 +330,7 @@
|
||||
<data name="UseSQLServer" xml:space="preserve">
|
||||
<value>SQL szerver használata a kapcsolatok kezelésére</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Átjáró</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -59,7 +59,7 @@
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
@@ -105,19 +105,19 @@
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>Informazioni su</value>
|
||||
</data>
|
||||
<data name="AddNodeFromXmlFailed" xml:space="preserve">
|
||||
@@ -225,9 +225,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>Schermo</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Gateway</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>Altro</value>
|
||||
</data>
|
||||
@@ -625,7 +622,7 @@ Creazione di un nuovo file delle connessioni.</value>
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>Aggiungi pannello delle connessioni</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>Verifica la presenza di aggiornamenti</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -646,7 +643,7 @@ Creazione di un nuovo file delle connessioni.</value>
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>Elimina applicazione esterna...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>Effettua una donazione</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -664,7 +661,7 @@ Creazione di un nuovo file delle connessioni.</value>
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>&Aiuto</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>Guida di mRemoteNG</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -706,7 +703,7 @@ Creazione di un nuovo file delle connessioni.</value>
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>Rinomina tab</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>Segnala un bug</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -736,7 +733,7 @@ Creazione di un nuovo file delle connessioni.</value>
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>Avvia chat (VNC)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>Forum di supporto</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -751,7 +748,7 @@ Creazione di un nuovo file delle connessioni.</value>
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>Visualizza soltanto (VNC)</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>Sito web</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
@@ -1342,9 +1339,6 @@ Messaggio:
|
||||
<data name="SaveConnectionsFileBeforeOpeningAnother" xml:space="preserve">
|
||||
<value>Vuoi salvare il file delle connessioni corrente prima di caricarne un altro?</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>Salva le connessioni all'uscita</value>
|
||||
</data>
|
||||
<data name="SaveImageFilter" xml:space="preserve">
|
||||
<value>File Graphics Interchange Format (.gif)|*.gif|File Joint Photographic Experts Group (.jpeg)|*.jpeg|File Joint Photographic Experts Group (.jpg)|*.jpg|File Portable Network Graphics (.png)|*.png</value>
|
||||
</data>
|
||||
@@ -1556,4 +1550,10 @@ mRemoteNG verrà chiuso e l'installazione avrà inizio.</value>
|
||||
<data name="Yes" xml:space="preserve">
|
||||
<value>Sì</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Gateway</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>Salva le connessioni all'uscita</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -117,7 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>mRemoteNGについて</value>
|
||||
</data>
|
||||
<data name="ActiveDirectory" xml:space="preserve">
|
||||
@@ -233,9 +233,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>ディスプレイ</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>ゲートウェイ</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>その他</value>
|
||||
</data>
|
||||
@@ -726,7 +723,7 @@ Starting with new connections file.</value>
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>接続表示パネルの追加</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>最新バージョンをチェック</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -747,7 +744,7 @@ Starting with new connections file.</value>
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>外部ツールを削除...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>寄付のお願い</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -765,7 +762,7 @@ Starting with new connections file.</value>
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>ヘルプ(&H)</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>mRemoteNGヘルプ</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -807,7 +804,7 @@ Starting with new connections file.</value>
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>タブ名を変更</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>バグを報告する</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -838,7 +835,7 @@ Starting with new connections file.</value>
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>Start Chat (VNC)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>サポートフォーラム</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -853,7 +850,7 @@ Starting with new connections file.</value>
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>View Only (VNC)</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>ウェブサイト(英語)</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
@@ -1486,9 +1483,6 @@ Message:
|
||||
<data name="SaveConnectionsFileBeforeOpeningAnother" xml:space="preserve">
|
||||
<value>Do you want to save the current connections file before loading another?</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>終了時に保存する</value>
|
||||
</data>
|
||||
<data name="SaveImageFilter" xml:space="preserve">
|
||||
<value>Graphics Interchange Format File (.gif)|*.gif|Joint Photographic Experts Group File (.jpeg)|*.jpeg|Joint Photographic Experts Group File (.jpg)|*.jpg|Portable Network Graphics File (.png)|*.png</value>
|
||||
</data>
|
||||
@@ -1716,4 +1710,10 @@ mRemoteNGを終了してインストールを開始します</value>
|
||||
<data name="Yes" xml:space="preserve">
|
||||
<value>はい</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>ゲートウェイ</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>終了時に保存する</value>
|
||||
</data>
|
||||
</root>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -117,15 +117,34 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="PlaceSearchBarAboveConnectionTree" xml:space="preserve">
|
||||
<value>Place search bar above connection tree</value>
|
||||
<data name="ActiveDirectory" xml:space="preserve">
|
||||
<value>Active Directory</value>
|
||||
</data>
|
||||
<data name="ErrorFipsPolicyIncompatible" xml:space="preserve">
|
||||
<value>The Windows security setting, "System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing", is enabled.
|
||||
|
||||
See the Microsoft Support article at http://support.microsoft.com/kb/811833 for more information.
|
||||
|
||||
{0} is not fully FIPS compliant. Click OK to proceed at your own discretion, or Cancel to Exit.</value>
|
||||
</data>
|
||||
<data name="HttpInternetExplorer" xml:space="preserve">
|
||||
<value>Internet Explorer</value>
|
||||
</data>
|
||||
<data name="None" xml:space="preserve">
|
||||
<value>None</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionColors" xml:space="preserve">
|
||||
<value>Select the color quality to be used.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRedirectClipboard" xml:space="preserve">
|
||||
<value>Select whether clipboard should be shared.</value>
|
||||
</data>
|
||||
<data name="Colors" xml:space="preserve">
|
||||
<value>Colors</value>
|
||||
</data>
|
||||
<data name="Clipboard" xml:space="preserve">
|
||||
<value>Clipboard</value>
|
||||
</data>
|
||||
<data name="Rdp16777216Colors" xml:space="preserve">
|
||||
<value>16777216 Colors (24-bit)</value>
|
||||
</data>
|
||||
@@ -141,91 +160,72 @@
|
||||
<data name="Rdp65536Colors" xml:space="preserve">
|
||||
<value>65536 Colors (16-bit)</value>
|
||||
</data>
|
||||
<data name="ActiveDirectory" xml:space="preserve">
|
||||
<value>Active Directory</value>
|
||||
</data>
|
||||
<data name="ErrorFipsPolicyIncompatible" xml:space="preserve">
|
||||
<value>The Windows security setting, "System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing", is enabled.
|
||||
|
||||
See the Microsoft Support article at http://support.microsoft.com/kb/811833 for more information.
|
||||
|
||||
{0} is not fully FIPS compliant. Click OK to proceed at your own discretion, or Cancel to Exit.</value>
|
||||
</data>
|
||||
<data name="HttpInternetExplorer" xml:space="preserve">
|
||||
<value>Internet Explorer</value>
|
||||
</data>
|
||||
<data name="None" xml:space="preserve">
|
||||
<value>None</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRedirectClipboard" xml:space="preserve">
|
||||
<value>Select whether clipboard should be shared.</value>
|
||||
</data>
|
||||
<data name="Clipboard" xml:space="preserve">
|
||||
<value>Clipboard</value>
|
||||
</data>
|
||||
<data name="OptionsThemeChangeWarning" xml:space="preserve">
|
||||
<value>Warning: Restart is required to commit any theme configuration change.</value>
|
||||
</data>
|
||||
<value>Warning: Restart is required to commit any theme configuration change.</value>
|
||||
</data>
|
||||
<data name="MustBeBetween0And255" xml:space="preserve">
|
||||
<value>Must Be Between 0 and 255</value>
|
||||
</data>
|
||||
<value>Must Be Between 0 and 255</value>
|
||||
</data>
|
||||
<data name="OutOfRange" xml:space="preserve">
|
||||
<value>Out Of Range</value>
|
||||
</data>
|
||||
<value>Out Of Range</value>
|
||||
</data>
|
||||
<data name="Delete" xml:space="preserve">
|
||||
<value>Delete...</value>
|
||||
</data>
|
||||
<value>Delete...</value>
|
||||
</data>
|
||||
<data name="ReconnectAllConnections" xml:space="preserve">
|
||||
<value>Reconnect All Connections</value>
|
||||
</data>
|
||||
<value>Reconnect All Connections</value>
|
||||
</data>
|
||||
<data name="UltraVNCSingleClick" xml:space="preserve">
|
||||
<value>UltraVNC SingleClick</value>
|
||||
</data>
|
||||
<value>UltraVNC SingleClick</value>
|
||||
</data>
|
||||
<data name="DisconnectOthers" xml:space="preserve">
|
||||
<value>Disconnect All But This</value>
|
||||
</data>
|
||||
<value>Disconnect All But This</value>
|
||||
</data>
|
||||
<data name="AutomaticReconnectError" xml:space="preserve">
|
||||
<value>An error occurred while trying to reconnect to RDP host '{0}'</value>
|
||||
</data>
|
||||
<value>An error occurred while trying to reconnect to RDP host '{0}'</value>
|
||||
</data>
|
||||
<data name="ChangeConnectionResolutionError" xml:space="preserve">
|
||||
<value>An error occurred while trying to change the connection resolution to host '{0}'</value>
|
||||
</data>
|
||||
<value>An error occurred while trying to change the connection resolution to host '{0}'</value>
|
||||
</data>
|
||||
<data name="StackTrace" xml:space="preserve">
|
||||
<value>Stack trace</value>
|
||||
</data>
|
||||
<value>Stack trace</value>
|
||||
</data>
|
||||
<data name="ExceptionMessage" xml:space="preserve">
|
||||
<value>Exception Message</value>
|
||||
</data>
|
||||
<value>Exception Message</value>
|
||||
</data>
|
||||
<data name="mRemoteNGUnhandledException" xml:space="preserve">
|
||||
<value>mRemoteNG Unhandled Exception</value>
|
||||
</data>
|
||||
<value>mRemoteNG Unhandled Exception</value>
|
||||
</data>
|
||||
<data name="UnhandledExceptionOccured" xml:space="preserve">
|
||||
<value>An unhandled exception has occurred</value>
|
||||
</data>
|
||||
<value>An unhandled exception has occurred</value>
|
||||
</data>
|
||||
<data name="ExceptionForcesmRemoteNGToClose" xml:space="preserve">
|
||||
<value>This exception will force mRemoteNG to close</value>
|
||||
</data>
|
||||
<value>This exception will force mRemoteNG to close</value>
|
||||
</data>
|
||||
<data name="CopyHostname" xml:space="preserve">
|
||||
<value>Copy Hostname</value>
|
||||
</data>
|
||||
<value>Copy Hostname</value>
|
||||
</data>
|
||||
<data name="PlaceSearchBarAboveConnectionTree" xml:space="preserve">
|
||||
<value>Place search bar above connection tree</value>
|
||||
</data>
|
||||
<data name="TrackActiveConnectionInConnectionTree" xml:space="preserve">
|
||||
<value>Track active connection in the connection tree</value>
|
||||
</data>
|
||||
<value>Track active connection in the connection tree</value>
|
||||
</data>
|
||||
<data name="AlwaysShowConnectionTabs" xml:space="preserve">
|
||||
<value>Always show connection tabs</value>
|
||||
</data>
|
||||
<value>Always show connection tabs</value>
|
||||
</data>
|
||||
<data name="ReleaseChannel" xml:space="preserve">
|
||||
<value>Release Channel</value>
|
||||
</data>
|
||||
<value>Release Channel</value>
|
||||
</data>
|
||||
<data name="ReleaseChannelExplanation" xml:space="preserve">
|
||||
<value>Stable channel includes final releases only.
|
||||
<value>Stable channel includes final releases only.
|
||||
Preview channel includes Betas & Release Candidates.
|
||||
Nightly Channel includes Alphas, Betas & Release Candidates.</value>
|
||||
</data>
|
||||
</data>
|
||||
<data name="Apply" xml:space="preserve">
|
||||
<value>Apply</value>
|
||||
</data>
|
||||
<value>Apply</value>
|
||||
</data>
|
||||
<data name="Proxy" xml:space="preserve">
|
||||
<value>Proxy</value>
|
||||
</data>
|
||||
<value>Proxy</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -117,7 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>Om</value>
|
||||
</data>
|
||||
<data name="AddNodeFromXmlFailed" xml:space="preserve">
|
||||
@@ -195,6 +195,9 @@
|
||||
<data name="Inheritance" xml:space="preserve">
|
||||
<value>Arv</value>
|
||||
</data>
|
||||
<data name="_Launch" xml:space="preserve">
|
||||
<value>&Start</value>
|
||||
</data>
|
||||
<data name="ButtonLaunchPutty" xml:space="preserve">
|
||||
<value>Start PuTTY</value>
|
||||
</data>
|
||||
@@ -225,9 +228,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>Skjerm</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Gateway</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>Diverse</value>
|
||||
</data>
|
||||
@@ -294,9 +294,18 @@
|
||||
<data name="Message" xml:space="preserve">
|
||||
<value>Melding</value>
|
||||
</data>
|
||||
<data name="CommandExitProgram" xml:space="preserve">
|
||||
<value>Avslu&tt {0}</value>
|
||||
</data>
|
||||
<data name="CommandLineArgsCouldNotBeParsed" xml:space="preserve">
|
||||
<value>Kunne ikke tolke kommandolinjeargumenter!</value>
|
||||
</data>
|
||||
<data name="CommandOpenConnectionFile" xml:space="preserve">
|
||||
<value>Åpne tilkoblingsfil</value>
|
||||
</data>
|
||||
<data name="_TryAgain" xml:space="preserve">
|
||||
<value>Prøv igjen</value>
|
||||
</data>
|
||||
<data name="CompatibilityLenovoAutoScrollUtilityDetected" xml:space="preserve">
|
||||
<value>{0} har oppdaget at Lenovo Auto Scroll-verktøyet kjører på dette systemet. Dette verktøyet er kjent for å forårsake problemer med {0}. Det anbefales at du deaktiverer eller avinstallerer dette programmet.</value>
|
||||
</data>
|
||||
@@ -394,6 +403,9 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="ConnectionsFileCouldNotSaveAs" xml:space="preserve">
|
||||
<value>Kunne ikke lagre tilkoblingsfilen som "{0}"!</value>
|
||||
</data>
|
||||
<data name="ConnectNoCredentials" xml:space="preserve">
|
||||
<value>Koble til uten legitimasjon</value>
|
||||
</data>
|
||||
<data name="ConnectToConsoleSession" xml:space="preserve">
|
||||
<value>Koble til konsolløkt</value>
|
||||
</data>
|
||||
@@ -418,6 +430,9 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="Detect" xml:space="preserve">
|
||||
<value>Oppdag</value>
|
||||
</data>
|
||||
<data name="DontConnectToConsoleSession" xml:space="preserve">
|
||||
<value>Ikke koble til konsollsesjon</value>
|
||||
</data>
|
||||
<data name="DontConnectWhenAuthFails" xml:space="preserve">
|
||||
<value>Ikke koble til dersom godkjenning mislykkes</value>
|
||||
</data>
|
||||
@@ -457,12 +472,23 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="ErrorConnectionListSaveFailed" xml:space="preserve">
|
||||
<value>Tilkoblingslisten kan ikke lagres.</value>
|
||||
</data>
|
||||
<data name="ErrorCouldNotLaunchPutty" xml:space="preserve">
|
||||
<value>PuTTY kunne ikke startes.</value>
|
||||
</data>
|
||||
<data name="ErrorDecryptionFailed" xml:space="preserve">
|
||||
<value>Dekryptering mislyktes. {0}</value>
|
||||
</data>
|
||||
<data name="ErrorEncryptionFailed" xml:space="preserve">
|
||||
<value>Kryptering mislyktes. {0}</value>
|
||||
</data>
|
||||
<data name="ErrorFipsPolicyIncompatible" xml:space="preserve">
|
||||
<value>Sikkerhetsinnstillingen "Systemkryptografi: Bruk FIPS-kompatible algoritmer til kryptering, hash-koding og signering" i Windows er aktivert.
|
||||
|
||||
Se Microsofts support-artikkel på http://support.microsoft.com/kb/811833 for mer informasjon.
|
||||
|
||||
{0} er ikke fullt ut FIPS-kompatibel. Klikk OK for å fortsette, eller Avbryt for å avslutte.
|
||||
</value>
|
||||
</data>
|
||||
<data name="Errors" xml:space="preserve">
|
||||
<value>Feil</value>
|
||||
</data>
|
||||
@@ -481,9 +507,39 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="Export" xml:space="preserve">
|
||||
<value>Eksporter</value>
|
||||
</data>
|
||||
<data name="ExportEverything" xml:space="preserve">
|
||||
<value>Eksporter alt</value>
|
||||
</data>
|
||||
<data name="ExportFile" xml:space="preserve">
|
||||
<value>Eksporter fil</value>
|
||||
</data>
|
||||
<data name="ExportItems" xml:space="preserve">
|
||||
<value>Eksporter elementer</value>
|
||||
</data>
|
||||
<data name="ExportProperties" xml:space="preserve">
|
||||
<value>Eksporter egenskaper</value>
|
||||
</data>
|
||||
<data name="ExportSelectedConnection" xml:space="preserve">
|
||||
<value>Eksporter valgt tilkobling</value>
|
||||
</data>
|
||||
<data name="ExportSelectedFolder" xml:space="preserve">
|
||||
<value>Eksporter valgt mappe</value>
|
||||
</data>
|
||||
<data name="_ExportToFile" xml:space="preserve">
|
||||
<value>&Eksporter til fil...</value>
|
||||
</data>
|
||||
<data name="ExternalToolDefaultName" xml:space="preserve">
|
||||
<value>Nytt eksternt verktøy</value>
|
||||
</data>
|
||||
<data name="FileFormat" xml:space="preserve">
|
||||
<value>&Filformat:</value>
|
||||
</data>
|
||||
<data name="FilterAll" xml:space="preserve">
|
||||
<value>Alle filer (*.*)</value>
|
||||
</data>
|
||||
<data name="FilterAllImportable" xml:space="preserve">
|
||||
<value>Alle filer som kan importeres</value>
|
||||
</data>
|
||||
<data name="FilterApplication" xml:space="preserve">
|
||||
<value>Programfiler (*.exe)</value>
|
||||
</data>
|
||||
@@ -493,6 +549,12 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="FiltermRemoteXML" xml:space="preserve">
|
||||
<value>mRemote XML-filer (*.xml)</value>
|
||||
</data>
|
||||
<data name="FilterPuttyConnectionManager" xml:space="preserve">
|
||||
<value>PuTTY Connection Manager-filer</value>
|
||||
</data>
|
||||
<data name="FilterRdgFiles" xml:space="preserve">
|
||||
<value>Remote Desktop Connection Manager-filer (*.rdg)</value>
|
||||
</data>
|
||||
<data name="FilterRDP" xml:space="preserve">
|
||||
<value>RDP-filer (*.rdp)</value>
|
||||
</data>
|
||||
@@ -544,6 +606,12 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="ImportAD" xml:space="preserve">
|
||||
<value>Importer fra Active Directory</value>
|
||||
</data>
|
||||
<data name="ImportFileFailedContent" xml:space="preserve">
|
||||
<value>En feil har oppstått under import av filen "{0}".</value>
|
||||
</data>
|
||||
<data name="ImportFromFile" xml:space="preserve">
|
||||
<value>Importer fra &fil...</value>
|
||||
</data>
|
||||
<data name="ImportPortScan" xml:space="preserve">
|
||||
<value>Import fra Port Scan</value>
|
||||
</data>
|
||||
@@ -625,6 +693,9 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="LoadFromSqlFailed" xml:space="preserve">
|
||||
<value>Innlasting fra SQL mislyktes!</value>
|
||||
</data>
|
||||
<data name="LoadFromSqlFailedContent" xml:space="preserve">
|
||||
<value>Tilkoblingsinformasjonen kunne ikke lastes fra SQL server.</value>
|
||||
</data>
|
||||
<data name="LoadFromXmlFailed" xml:space="preserve">
|
||||
<value>Innlasting fra XML mislyktes!</value>
|
||||
</data>
|
||||
@@ -637,7 +708,7 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>Legg til tilkoblingspanel</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>Se etter oppdateringer</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -658,7 +729,7 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>Slett eksternt verktøy...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>Donér</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -676,7 +747,7 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>&Hjelp</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>mRemoteNG-hjelp</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -718,7 +789,7 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>Gi nytt navn til fane</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>Rapporter en feil</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -748,7 +819,7 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>Start chat (VNC)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>Forum for brukerstøtte</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -763,7 +834,7 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>Kun visning (VNC)</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>Nettsted</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
@@ -838,9 +909,18 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="PasswordProtect" xml:space="preserve">
|
||||
<value>Passordbeskyttelse</value>
|
||||
</data>
|
||||
<data name="PasswordStatusMustMatch" xml:space="preserve">
|
||||
<value>Begge passordene må være like.</value>
|
||||
</data>
|
||||
<data name="PasswordStatusTooShort" xml:space="preserve">
|
||||
<value>Passordet må være minst 3 tegn langt.</value>
|
||||
</data>
|
||||
<data name="PleaseFillAllFields" xml:space="preserve">
|
||||
<value>Vennligst fyll inn alle felt</value>
|
||||
</data>
|
||||
<data name="PortScanComplete" xml:space="preserve">
|
||||
<value>Portskanning ferdig.</value>
|
||||
</data>
|
||||
<data name="PortScanCouldNotLoadPanel" xml:space="preserve">
|
||||
<value>Kunne ikke laste inn portskanningpanelet!</value>
|
||||
</data>
|
||||
@@ -856,6 +936,9 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="PropertyDescriptionAuthenticationMode" xml:space="preserve">
|
||||
<value>Velg hvordan du ønsker å autentisere deg mot VNC-serveren.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionAutomaticResize" xml:space="preserve">
|
||||
<value>Velg om tilkoblingen skal endre størrelse når vinduet endrer størrelse eller fullskjermsmodus slås av eller på. Krever RDC 8.0 eller høyere.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionCacheBitmaps" xml:space="preserve">
|
||||
<value>Velg om du vil bruke hurtigbufring av punktgrafikk eller ikke.</value>
|
||||
</data>
|
||||
@@ -898,6 +981,9 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="PropertyDescriptionIcon" xml:space="preserve">
|
||||
<value>Velg et ikon som skal vises når man er tilkoblet verten.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionLoadBalanceInfo" xml:space="preserve">
|
||||
<value>Angi informasjon for lastbalanseringsrutere for å velge den beste verten.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionMACAddress" xml:space="preserve">
|
||||
<value>Angi MAC-adressen til den eksterne verten dersom du ønsker å bruke denne i et eksternt verktøy.</value>
|
||||
</data>
|
||||
@@ -946,12 +1032,18 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="PropertyDescriptionRedirectPrinters" xml:space="preserve">
|
||||
<value>Velg om lokale skrivere skal vises på den eksterne verten.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRedirectClipboard" xml:space="preserve">
|
||||
<value>Velg om utklippstavlen skal deles.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRedirectSmartCards" xml:space="preserve">
|
||||
<value>Velg om lokale smartkort skal være tilgjengelig på den eksterne verten.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRedirectSounds" xml:space="preserve">
|
||||
<value>Velg hvordan ekstern lyd skal omadresseres.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRedirectAudioCapture" xml:space="preserve">
|
||||
<value>Velg om standard lydinndataenhet på den eksterne maskinen skal omadresseres til denne maskinen.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRenderingEngine" xml:space="preserve">
|
||||
<value>Velg en av de tilgjengelige renderingsmotorene som skal brukes til å vise HTML.</value>
|
||||
</data>
|
||||
@@ -1003,6 +1095,9 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="AuthenticationMode" xml:space="preserve">
|
||||
<value>Godkjenningsmodus</value>
|
||||
</data>
|
||||
<data name="AutomaticResize" xml:space="preserve">
|
||||
<value>Automatisk størrelsesendring</value>
|
||||
</data>
|
||||
<data name="CacheBitmaps" xml:space="preserve">
|
||||
<value>Hurtigbufring av punktgrafikk</value>
|
||||
</data>
|
||||
@@ -1039,6 +1134,9 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="ExternalToolBefore" xml:space="preserve">
|
||||
<value>Eksternt verktøy før</value>
|
||||
</data>
|
||||
<data name="LoadBalanceInfo" xml:space="preserve">
|
||||
<value>Lastbalanseringsinformasjon</value>
|
||||
</data>
|
||||
<data name="MacAddress" xml:space="preserve">
|
||||
<value>MAC-adresse</value>
|
||||
</data>
|
||||
@@ -1087,9 +1185,15 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="Printers" xml:space="preserve">
|
||||
<value>Skrivere</value>
|
||||
</data>
|
||||
<data name="Clipboard" xml:space="preserve">
|
||||
<value>Utklippstavle</value>
|
||||
</data>
|
||||
<data name="Sounds" xml:space="preserve">
|
||||
<value>Lyder</value>
|
||||
</data>
|
||||
<data name="AudioCapture" xml:space="preserve">
|
||||
<value>Lydopptak</value>
|
||||
</data>
|
||||
<data name="RenderingEngine" xml:space="preserve">
|
||||
<value>Renderingsmotor</value>
|
||||
</data>
|
||||
@@ -1355,9 +1459,6 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="SaveConnectionsFileBeforeOpeningAnother" xml:space="preserve">
|
||||
<value>Vil du lagre den gjeldende tilkoblingsfilen før du laster inn en annen?</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>Lagre tilkoblinger ved avslutning</value>
|
||||
</data>
|
||||
<data name="SaveImageFilter" xml:space="preserve">
|
||||
<value>Graphics Interchange Format File (.gif)|*.gif|Joint Photographic Experts Group File (.jpeg)|*.jpeg|Joint Photographic Experts Group File (.jpg)|*.jpg|Portable Network Graphics File (.png)|*.png</value>
|
||||
</data>
|
||||
@@ -1469,6 +1570,9 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="TitlePassword" xml:space="preserve">
|
||||
<value>Passord</value>
|
||||
</data>
|
||||
<data name="TitlePasswordWithName" xml:space="preserve">
|
||||
<value>Passord for {0}</value>
|
||||
</data>
|
||||
<data name="TitleSelectPanel" xml:space="preserve">
|
||||
<value>Velg panel</value>
|
||||
</data>
|
||||
@@ -1481,6 +1585,9 @@ Starter med ny tilkoblingsfil.</value>
|
||||
<data name="TryToIntegrate" xml:space="preserve">
|
||||
<value>Prøv å integrere</value>
|
||||
</data>
|
||||
<data name="ShowOnToolbar" xml:space="preserve">
|
||||
<value>Vis på verktøylinjen</value>
|
||||
</data>
|
||||
<data name="UltraVncRepeater" xml:space="preserve">
|
||||
<value>Ultra VNC Repeater</value>
|
||||
</data>
|
||||
@@ -1521,6 +1628,9 @@ mRemoteNG vil nå avslutte og starte installasjonen.</value>
|
||||
<data name="Weekly" xml:space="preserve">
|
||||
<value>Ukentlig</value>
|
||||
</data>
|
||||
<data name="UpdateGetChangeLogFailed" xml:space="preserve">
|
||||
<value>Endringsloggen kunne ikke lastes ned.</value>
|
||||
</data>
|
||||
<data name="UseDifferentUsernameAndPassword" xml:space="preserve">
|
||||
<value>Bruk et annet brukernavn og/eller passord</value>
|
||||
</data>
|
||||
@@ -1572,122 +1682,6 @@ mRemoteNG vil nå avslutte og starte installasjonen.</value>
|
||||
<data name="Yes" xml:space="preserve">
|
||||
<value>Ja</value>
|
||||
</data>
|
||||
<data name="_Launch" xml:space="preserve">
|
||||
<value>&Start</value>
|
||||
</data>
|
||||
<data name="CommandExitProgram" xml:space="preserve">
|
||||
<value>Avslu&tt {0}</value>
|
||||
</data>
|
||||
<data name="CommandOpenConnectionFile" xml:space="preserve">
|
||||
<value>Åpne tilkoblingsfil</value>
|
||||
</data>
|
||||
<data name="_TryAgain" xml:space="preserve">
|
||||
<value>Prøv igjen</value>
|
||||
</data>
|
||||
<data name="ConnectNoCredentials" xml:space="preserve">
|
||||
<value>Koble til uten legitimasjon</value>
|
||||
</data>
|
||||
<data name="DontConnectToConsoleSession" xml:space="preserve">
|
||||
<value>Ikke koble til konsollsesjon</value>
|
||||
</data>
|
||||
<data name="ErrorCouldNotLaunchPutty" xml:space="preserve">
|
||||
<value>PuTTY kunne ikke startes.</value>
|
||||
</data>
|
||||
<data name="ErrorFipsPolicyIncompatible" xml:space="preserve">
|
||||
<value>Sikkerhetsinnstillingen "Systemkryptografi: Bruk FIPS-kompatible algoritmer til kryptering, hash-koding og signering" i Windows er aktivert.
|
||||
|
||||
Se Microsofts support-artikkel på http://support.microsoft.com/kb/811833 for mer informasjon.
|
||||
|
||||
{0} er ikke fullt ut FIPS-kompatibel. Klikk OK for å fortsette, eller Avbryt for å avslutte.
|
||||
</value>
|
||||
</data>
|
||||
<data name="ExportEverything" xml:space="preserve">
|
||||
<value>Eksporter alt</value>
|
||||
</data>
|
||||
<data name="ExportFile" xml:space="preserve">
|
||||
<value>Eksporter fil</value>
|
||||
</data>
|
||||
<data name="ExportItems" xml:space="preserve">
|
||||
<value>Eksporter elementer</value>
|
||||
</data>
|
||||
<data name="ExportProperties" xml:space="preserve">
|
||||
<value>Eksporter egenskaper</value>
|
||||
</data>
|
||||
<data name="ExportSelectedConnection" xml:space="preserve">
|
||||
<value>Eksporter valgt tilkobling</value>
|
||||
</data>
|
||||
<data name="ExportSelectedFolder" xml:space="preserve">
|
||||
<value>Eksporter valgt mappe</value>
|
||||
</data>
|
||||
<data name="_ExportToFile" xml:space="preserve">
|
||||
<value>&Eksporter til fil...</value>
|
||||
</data>
|
||||
<data name="ExternalToolDefaultName" xml:space="preserve">
|
||||
<value>Nytt eksternt verktøy</value>
|
||||
</data>
|
||||
<data name="FileFormat" xml:space="preserve">
|
||||
<value>&Filformat:</value>
|
||||
</data>
|
||||
<data name="FilterAllImportable" xml:space="preserve">
|
||||
<value>Alle filer som kan importeres</value>
|
||||
</data>
|
||||
<data name="FilterPuttyConnectionManager" xml:space="preserve">
|
||||
<value>PuTTY Connection Manager-filer</value>
|
||||
</data>
|
||||
<data name="FilterRdgFiles" xml:space="preserve">
|
||||
<value>Remote Desktop Connection Manager-filer (*.rdg)</value>
|
||||
</data>
|
||||
<data name="ImportFileFailedContent" xml:space="preserve">
|
||||
<value>En feil har oppstått under import av filen "{0}".</value>
|
||||
</data>
|
||||
<data name="ImportFromFile" xml:space="preserve">
|
||||
<value>Importer fra &fil...</value>
|
||||
</data>
|
||||
<data name="LoadFromSqlFailedContent" xml:space="preserve">
|
||||
<value>Tilkoblingsinformasjonen kunne ikke lastes fra SQL server.</value>
|
||||
</data>
|
||||
<data name="PasswordStatusMustMatch" xml:space="preserve">
|
||||
<value>Begge passordene må være like.</value>
|
||||
</data>
|
||||
<data name="PasswordStatusTooShort" xml:space="preserve">
|
||||
<value>Passordet må være minst 3 tegn langt.</value>
|
||||
</data>
|
||||
<data name="PortScanComplete" xml:space="preserve">
|
||||
<value>Portskanning ferdig.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionAutomaticResize" xml:space="preserve">
|
||||
<value>Velg om tilkoblingen skal endre størrelse når vinduet endrer størrelse eller fullskjermsmodus slås av eller på. Krever RDC 8.0 eller høyere.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionLoadBalanceInfo" xml:space="preserve">
|
||||
<value>Angi informasjon for lastbalanseringsrutere for å velge den beste verten.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRedirectClipboard" xml:space="preserve">
|
||||
<value>Velg om utklippstavlen skal deles.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionRedirectAudioCapture" xml:space="preserve">
|
||||
<value>Velg om standard lydinndataenhet på den eksterne maskinen skal omadresseres til denne maskinen.</value>
|
||||
</data>
|
||||
<data name="AutomaticResize" xml:space="preserve">
|
||||
<value>Automatisk størrelsesendring</value>
|
||||
</data>
|
||||
<data name="LoadBalanceInfo" xml:space="preserve">
|
||||
<value>Lastbalanseringsinformasjon</value>
|
||||
</data>
|
||||
<data name="Clipboard" xml:space="preserve">
|
||||
<value>Utklippstavle</value>
|
||||
</data>
|
||||
<data name="AudioCapture" xml:space="preserve">
|
||||
<value>Lydopptak</value>
|
||||
</data>
|
||||
<data name="TitlePasswordWithName" xml:space="preserve">
|
||||
<value>Passord for {0}</value>
|
||||
</data>
|
||||
<data name="ShowOnToolbar" xml:space="preserve">
|
||||
<value>Vis på verktøylinjen</value>
|
||||
</data>
|
||||
<data name="UpdateGetChangeLogFailed" xml:space="preserve">
|
||||
<value>Endringsloggen kunne ikke lastes ned.</value>
|
||||
</data>
|
||||
<data name="RdpOverallConnectionTimeout" xml:space="preserve">
|
||||
<value>RDP tidsavbrudd</value>
|
||||
</data>
|
||||
@@ -2005,4 +1999,10 @@ Nightly-kanalen inkluderer alpha-, beta- og release candidate-versjoner.</value>
|
||||
<data name="Environment" xml:space="preserve">
|
||||
<value>Miljø</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Gateway</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>Lagre tilkoblinger ved avslutning</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -117,7 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>Over</value>
|
||||
</data>
|
||||
<data name="AddNodeFromXmlFailed" xml:space="preserve">
|
||||
@@ -225,9 +225,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>Scherm</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Gateway</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>Diversen</value>
|
||||
</data>
|
||||
@@ -634,7 +631,7 @@ Beginnen met nieuwe Connectie bestand.</value>
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>Voeg Connectie Paneel toe</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>Controleer voor beschikbare Updates</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -655,7 +652,7 @@ Beginnen met nieuwe Connectie bestand.</value>
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>Verwijder Externe Applicatie...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>Doneer</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -673,7 +670,7 @@ Beginnen met nieuwe Connectie bestand.</value>
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>&Help</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>mRemoteNG Help</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -715,7 +712,7 @@ Beginnen met nieuwe Connectie bestand.</value>
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>Hernoem Tab</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>Meld een bug</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -745,7 +742,7 @@ Beginnen met nieuwe Connectie bestand.</value>
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>Start Chat (VNC)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>Ondersteunings Forum</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -760,7 +757,7 @@ Beginnen met nieuwe Connectie bestand.</value>
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>Alleen bekijken (VNC)</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>Website</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
@@ -1355,9 +1352,6 @@ Bericht:
|
||||
<data name="SaveConnectionsFileBeforeOpeningAnother" xml:space="preserve">
|
||||
<value>Wil je de huidige verbindingen opslaan voordat er een andere wordt geopend?</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>Sla verbindingen op bij afsluiten</value>
|
||||
</data>
|
||||
<data name="SaveImageFilter" xml:space="preserve">
|
||||
<value>Graphics Interchange Format bestand (.gif)|*.gif|Joint Photographic Experts Group bestand (.jpeg)|*.jpeg|Joint Photographic Experts Group bestand (.jpg)|*.jpg|Portable Network Graphics bestand (.png)|*.png</value>
|
||||
</data>
|
||||
@@ -1588,4 +1582,10 @@ mRemoteNG zal nu worden gesloten en beginnen met de installatie.</value>
|
||||
<value>Maximaal aantal inlogpogingen overschreden. Maak opnieuw verbinding.</value>
|
||||
<comment>C# to Powershell transfer issue with encoding possible</comment>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Gateway</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>Sla verbindingen op bij afsluiten</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -117,7 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>O programie</value>
|
||||
</data>
|
||||
<data name="ActiveDirectory" xml:space="preserve">
|
||||
@@ -231,9 +231,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>Wyświetl</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Brama</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>Pozostałe</value>
|
||||
</data>
|
||||
@@ -725,7 +722,7 @@ Więcj informacji w aktykule Wsparcia Windows na stronie https://support.microso
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>Dodaj panel połączenia</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>Sprawdź aktualizacje</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -746,7 +743,7 @@ Więcj informacji w aktykule Wsparcia Windows na stronie https://support.microso
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>Usuń zewnętrzne narzędzie...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>Darowizna</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -764,7 +761,7 @@ Więcj informacji w aktykule Wsparcia Windows na stronie https://support.microso
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>&Pomoc</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>Pomoc mRemoteNG</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -806,7 +803,7 @@ Więcj informacji w aktykule Wsparcia Windows na stronie https://support.microso
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>Zmień nazwę karty</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>Zgłoś błąd</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -836,7 +833,7 @@ Więcj informacji w aktykule Wsparcia Windows na stronie https://support.microso
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>Rozpocznij Chat (VNC)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>Forum pomocy</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -851,7 +848,7 @@ Więcj informacji w aktykule Wsparcia Windows na stronie https://support.microso
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>Tylko pogląd (VNC)</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>Strona WWW</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
@@ -2359,4 +2356,7 @@ Kanał nocny obejmuje wersje alfa, beta i RC (gotowe do wydania).</value>
|
||||
<value>Maksymalna liczba prób została przekroczona. Proszę połączyć się ponownie.</value>
|
||||
<comment>Problem z transferem z C# do Powershell z możliwym kodowaniem</comment>
|
||||
</data>
|
||||
</root>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Brama</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -59,7 +59,7 @@
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
@@ -105,19 +105,19 @@
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>Sobre</value>
|
||||
</data>
|
||||
<data name="AddNodeFromXmlFailed" xml:space="preserve">
|
||||
@@ -222,9 +222,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>Mostrar</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Gateway</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>Diversos</value>
|
||||
</data>
|
||||
@@ -369,4 +366,7 @@
|
||||
<data name="ConnectionsFileCouldNotBeLoadedNew" xml:space="preserve">
|
||||
<value>Arquivo de conexões "{0}" não pôde ser carregado! Começando com o novo arquivo de conexões.</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Gateway</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -59,7 +59,7 @@
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
@@ -105,19 +105,19 @@
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>Sobre</value>
|
||||
</data>
|
||||
<data name="AddNodeFromXmlFailed" xml:space="preserve">
|
||||
@@ -225,9 +225,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>Ecrã</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Gateway</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>Diversos</value>
|
||||
</data>
|
||||
@@ -630,7 +627,7 @@
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>Adicionar o Painel de Ligação</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>Verificar se há atualizações</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -651,7 +648,7 @@
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>Excluir ferramenta externa...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>Doar</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -669,7 +666,7 @@
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>&Ajuda</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>Ajuda mRemoteNG</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -711,7 +708,7 @@
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>Renomear aba</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>Relatar um erro</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -738,7 +735,7 @@
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>Iniciar chat (VNC)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>Fórum de suporte</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -753,7 +750,7 @@
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>Somente ver (VNC)</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>Sítio</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
@@ -1341,9 +1338,6 @@
|
||||
<data name="SaveConnectionsFileBeforeOpeningAnother" xml:space="preserve">
|
||||
<value>Você deseja salvar o arquivo atual de ligações antes de carregar outro?</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>Salvar as ligações à saída</value>
|
||||
</data>
|
||||
<data name="SaveImageFilter" xml:space="preserve">
|
||||
<value>Graphics Interchange Format File (.gif)|*.gif|Joint Photographic Experts Group File (.jpeg)|*.jpeg|Joint Photographic Experts Group File (.jpg)|*.jpg|Portable Network Graphics File (.png)|*.png</value>
|
||||
</data>
|
||||
@@ -1554,4 +1548,10 @@
|
||||
<data name="Yes" xml:space="preserve">
|
||||
<value>Sim</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Gateway</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>Salvar as ligações à saída</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -117,7 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>About</value>
|
||||
</data>
|
||||
<data name="ActiveDirectory" xml:space="preserve">
|
||||
@@ -159,6 +159,9 @@
|
||||
<data name="AskUpdatesMainInstruction" xml:space="preserve">
|
||||
<value>Automatic update settings</value>
|
||||
</data>
|
||||
<data name="Ard" xml:space="preserve">
|
||||
<value>ARD (Apple Remote Desktop)</value>
|
||||
</data>
|
||||
<data name="Aspect" xml:space="preserve">
|
||||
<value>Aspect</value>
|
||||
</data>
|
||||
@@ -345,6 +348,9 @@
|
||||
<data name="ConfirmCloseConnectionPanelMainInstruction" xml:space="preserve">
|
||||
<value>Are you sure you want to close the panel, "{0}"? Any connections that it contains will also be closed.</value>
|
||||
</data>
|
||||
<data name="ConfirmDisconnectConnection" xml:space="preserve">
|
||||
<value>Are you sure you want to disconnect "{0}"?</value>
|
||||
</data>
|
||||
<data name="ConfirmDeleteExternalTool" xml:space="preserve">
|
||||
<value>Are you sure you want to delete the external tool, "{0}"?</value>
|
||||
</data>
|
||||
@@ -725,7 +731,7 @@ See the Microsoft Support article at http://support.microsoft.com/kb/811833 for
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>Add Connection Panel</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>Check for Updates</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -746,7 +752,7 @@ See the Microsoft Support article at http://support.microsoft.com/kb/811833 for
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>Delete External Tool...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>Donate</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -764,7 +770,7 @@ See the Microsoft Support article at http://support.microsoft.com/kb/811833 for
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>&Help</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>mRemoteNG Help</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -806,8 +812,8 @@ See the Microsoft Support article at http://support.microsoft.com/kb/811833 for
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>Rename Tab</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<value>Report a Bug</value>
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>Report an Issue</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
<value>Reset layout</value>
|
||||
@@ -836,7 +842,7 @@ See the Microsoft Support article at http://support.microsoft.com/kb/811833 for
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>Start Chat (VNC)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>Support Forum</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -851,7 +857,7 @@ See the Microsoft Support article at http://support.microsoft.com/kb/811833 for
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>View Only</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>Website</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
@@ -1020,6 +1026,12 @@ If you run into such an error, please create a new connection file!</value>
|
||||
<data name="PropertyDescriptionPanel" xml:space="preserve">
|
||||
<value>Sets the panel in which the connection will open.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionColor" xml:space="preserve">
|
||||
<value>Sets the color for the connection or folder in the connections tree. Connections inherit this color from their parent folder.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionTabColor" xml:space="preserve">
|
||||
<value>Sets the color of the connection tab. Leave empty for default theme color.</value>
|
||||
</data>
|
||||
<data name="PropertyDescriptionPassword" xml:space="preserve">
|
||||
<value>Enter your password.</value>
|
||||
</data>
|
||||
@@ -1137,6 +1149,9 @@ If you run into such an error, please create a new connection file!</value>
|
||||
<data name="CacheBitmaps" xml:space="preserve">
|
||||
<value>Cache Bitmaps</value>
|
||||
</data>
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>Color</value>
|
||||
</data>
|
||||
<data name="Colors" xml:space="preserve">
|
||||
<value>Colors</value>
|
||||
</data>
|
||||
@@ -1182,6 +1197,9 @@ If you run into such an error, please create a new connection file!</value>
|
||||
<data name="Panel" xml:space="preserve">
|
||||
<value>Panel</value>
|
||||
</data>
|
||||
<data name="TabColor" xml:space="preserve">
|
||||
<value>Tab Color</value>
|
||||
</data>
|
||||
<data name="Password" xml:space="preserve">
|
||||
<value>Password</value>
|
||||
</data>
|
||||
@@ -1501,6 +1519,12 @@ If you run into such an error, please create a new connection file!</value>
|
||||
<data name="SaveConnectionsFileBeforeOpeningAnother" xml:space="preserve">
|
||||
<value>Do you want to save the current connections file before loading another?</value>
|
||||
</data>
|
||||
<data name="SaveOptionsBeforeClosing" xml:space="preserve">
|
||||
<value>Do you want to save the changes made to the options?</value>
|
||||
</data>
|
||||
<data name="Discard" xml:space="preserve">
|
||||
<value>Discard</value>
|
||||
</data>
|
||||
<data name="ConnectionsBackupFrequencyDaily" xml:space="preserve">
|
||||
<value>Daily</value>
|
||||
</data>
|
||||
@@ -1925,6 +1949,15 @@ mRemoteNG will now quit and begin with the installation.</value>
|
||||
<data name="DatabaseNotAvailable" xml:space="preserve">
|
||||
<value>Database '{0}' not available.</value>
|
||||
</data>
|
||||
<data name="ErrorPlatformNotSupported" xml:space="preserve">
|
||||
<value>Platform error: {0}</value>
|
||||
</data>
|
||||
<data name="ErrorMissingDependency" xml:space="preserve">
|
||||
<value>Missing dependency: {0}</value>
|
||||
</data>
|
||||
<data name="ErrorArchitectureMismatch" xml:space="preserve">
|
||||
<value>Architecture mismatch: {0}</value>
|
||||
</data>
|
||||
<data name="SaveConnectionsAfterEveryEdit" xml:space="preserve">
|
||||
<value>Save connections after every edit</value>
|
||||
</data>
|
||||
@@ -2200,7 +2233,8 @@ Nightly Channel includes Alphas, Betas & Release Candidates.</value>
|
||||
<comment>https://docs.microsoft.com/en-us/windows/win32/termserv/imstscsecuredsettings-workdir</comment>
|
||||
</data>
|
||||
<data name="OpeningCommand" xml:space="preserve">
|
||||
<value>OpeningCommand TODO</value>
|
||||
<value>Opening Command </value>
|
||||
<comment>Command what will be run after connection</comment>
|
||||
</data>
|
||||
<data name="PropertyDescriptionOpeningCommand" xml:space="preserve">
|
||||
<value>Description of OpeningCommand TODO</value>
|
||||
@@ -2292,6 +2326,15 @@ Nightly Channel includes Alphas, Betas & Release Candidates.</value>
|
||||
<data name="ECPClickstudiosPasswordstate" xml:space="preserve">
|
||||
<value>Clickstudios Passwordstate</value>
|
||||
</data>
|
||||
<data name="ECPOnePassword" xml:space="preserve">
|
||||
<value>1Password</value>
|
||||
</data>
|
||||
<data name="ECPOnePasswordReadFailed" xml:space="preserve">
|
||||
<value>1Password read failed</value>
|
||||
</data>
|
||||
<data name="ECPOnePasswordCommandLine" xml:space="preserve">
|
||||
<value>1Password command line</value>
|
||||
</data>
|
||||
<data name="ECPNone" xml:space="preserve">
|
||||
<value>None</value>
|
||||
</data>
|
||||
@@ -2416,4 +2459,26 @@ Nightly Channel includes Alphas, Betas & Release Candidates.</value>
|
||||
<data name="WarnMeOnlyWhenClosingMultipleConnections" xml:space="preserve">
|
||||
<value>WarnMeOnlyWhenClosingMultipleConnections</value>
|
||||
</data>
|
||||
<data name="MsgExit" xml:space="preserve">
|
||||
<value>The application will now exit.</value>
|
||||
<comment>Message shown then application will normally close</comment>
|
||||
</data>
|
||||
<data name="MsgDownloadLatestRuntime" xml:space="preserve">
|
||||
<value>Please download and install latest runtime:</value>
|
||||
<comment>Appears then missing a runtime</comment>
|
||||
</data>
|
||||
<data name="MsgMissingRuntime" xml:space="preserve">
|
||||
<value>Missing Runtime:</value>
|
||||
</data>
|
||||
<data name="MsgRuntimeIsRequired" xml:space="preserve">
|
||||
<value>runtime library is required</value>
|
||||
</data>
|
||||
<data name="MenuItem_Chat" xml:space="preserve">
|
||||
<value>mR Chat</value>
|
||||
<comment>Chat to dev</comment>
|
||||
</data>
|
||||
<data name="MenuItem_Community" xml:space="preserve">
|
||||
<value>Community</value>
|
||||
<comment>Reddit</comment>
|
||||
</data>
|
||||
</root>
|
||||
@@ -117,7 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>О программе</value>
|
||||
</data>
|
||||
<data name="ActiveDirectory" xml:space="preserve">
|
||||
@@ -719,7 +719,7 @@
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>Добавить Панель подключения</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>Проверка наличия обновлений</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -740,7 +740,7 @@
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>Удалить внешний инструмент...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>Помочь проекту</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -758,7 +758,7 @@
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>&Справка</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>Справка mRemoteNG</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -800,7 +800,7 @@
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>Переименовать закладку</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>Сообщить об ошибке</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -830,7 +830,7 @@
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>Начать чат (VNC)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>Форум поддержки</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -845,7 +845,7 @@
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>Просмотр (VNC)</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>Веб-сайт</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
@@ -26,79 +26,79 @@
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0"/>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string"/>
|
||||
<xsd:attribute name="type" type="xsd:string"/>
|
||||
<xsd:attribute name="mimetype" type="xsd:string"/>
|
||||
<xsd:attribute ref="xml:space"/>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string"/>
|
||||
<xsd:attribute name="name" type="xsd:string"/>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2"/>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1"/>
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3"/>
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4"/>
|
||||
<xsd:attribute ref="xml:space"/>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1"/>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
@@ -117,7 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>Om</value>
|
||||
</data>
|
||||
<data name="AddNodeFromXmlFailed" xml:space="preserve">
|
||||
@@ -228,9 +228,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>Skärm</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Nätverksnod (gateway)</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>Blandat</value>
|
||||
</data>
|
||||
@@ -713,7 +710,7 @@ Se Microsofts supportartikel på http://support.microsoft.com/kb/811833 för mer
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>Lägg till anslutningspanel</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>Sök efter uppdateringar</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -728,7 +725,7 @@ Se Microsofts supportartikel på http://support.microsoft.com/kb/811833 för mer
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>Ta bort externt verktyg...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>Donera</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -746,7 +743,7 @@ Se Microsofts supportartikel på http://support.microsoft.com/kb/811833 för mer
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>&Hjälp</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>mRemoteNG hjälp</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -788,7 +785,7 @@ Se Microsofts supportartikel på http://support.microsoft.com/kb/811833 för mer
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>Byt namn på flik</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>Rapportera en bugg</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -815,7 +812,7 @@ Se Microsofts supportartikel på http://support.microsoft.com/kb/811833 för mer
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>Starta chatt (VNC)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>Supportforum</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -830,7 +827,7 @@ Se Microsofts supportartikel på http://support.microsoft.com/kb/811833 för mer
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>Visa endast</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>Webbplats</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
@@ -2172,4 +2169,7 @@ Nattliga kanalen inkluderar Alfa, Betor & Utgåvokandidater.</value>
|
||||
<data name="FiltermRemoteRemoteDesktopManagerCSV" xml:space="preserve">
|
||||
<value>Remote Desktop Manager-filer (*.csv)</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>Nätverksnod (gateway)</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -117,7 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>பற்றி</value>
|
||||
</data>
|
||||
<data name="ActiveDirectory" xml:space="preserve">
|
||||
@@ -725,7 +725,7 @@
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>இணைப்பு பலகையைச் சேர்</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>புதுப்பிப்புகளை சரிபார்</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -746,7 +746,7 @@
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>வெளிப்புற கருவியை நீக்கு...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>நன்கொடை</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -764,7 +764,7 @@
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>உதவி</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>பலதொலைஅத உதவி</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -806,7 +806,7 @@
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>தாவலை மறுபெயரிடுங்கள்</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>ஒரு பிழையைப் புகாரளி</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -836,7 +836,7 @@
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>அரட்டையைத் தொடங்கு (விஎன்சி)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>உதவி மன்றம்</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -851,7 +851,7 @@
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>பார்க்க மட்டுமே</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>வலைத்தளம்</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
@@ -2416,4 +2416,4 @@
|
||||
<data name="WarnMeOnlyWhenClosingMultipleConnections" xml:space="preserve">
|
||||
<value>முன்னறிவிப்பு</value>
|
||||
</data>
|
||||
</root>
|
||||
</root>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -117,7 +117,7 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>关于</value>
|
||||
</data>
|
||||
<data name="ActiveDirectory" xml:space="preserve">
|
||||
@@ -231,9 +231,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>显示</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>网关</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>杂项</value>
|
||||
</data>
|
||||
@@ -722,7 +719,7 @@
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>添加连接面板</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>检查更新</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -743,7 +740,7 @@
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>删除外部工具...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>捐赠</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -761,7 +758,7 @@
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>帮助(&H)</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>mRemoteNG 帮助</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -803,7 +800,7 @@
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>重命名标签</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>报告问题</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -833,7 +830,7 @@
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>启动 Chat(VNC)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>支持论坛</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -848,7 +845,7 @@
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>仅查看</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>网站</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
@@ -1483,9 +1480,6 @@
|
||||
<data name="SaveConnectionsFileBeforeOpeningAnother" xml:space="preserve">
|
||||
<value>打开其它连接配置文件前,是否保存当前配置文件?</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>退出时保存连接配置文件</value>
|
||||
</data>
|
||||
<data name="SaveImageFilter" xml:space="preserve">
|
||||
<value>图形交换格式文件 (.gif)|*.gif|联合图像专家组文件 (.jpeg)|*.jpeg|联合图像专家组文件 (.jpg)|*.jpg|便携式网络图形文件 (.png)|*.png</value>
|
||||
</data>
|
||||
@@ -2080,4 +2074,10 @@ mRemoteNG 将退出并安装更新。</value>
|
||||
<data name="PowerShell" xml:space="preserve">
|
||||
<value>PowerShell</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>网关</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>退出时保存连接配置文件</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -59,7 +59,7 @@
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
@@ -105,19 +105,19 @@
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="About" xml:space="preserve">
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="MenuItem_About" xml:space="preserve">
|
||||
<value>關於</value>
|
||||
</data>
|
||||
<data name="AddNodeFromXmlFailed" xml:space="preserve">
|
||||
@@ -225,9 +225,6 @@
|
||||
<data name="Display" xml:space="preserve">
|
||||
<value>顯示</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>閘道</value>
|
||||
</data>
|
||||
<data name="Miscellaneous" xml:space="preserve">
|
||||
<value>雜項</value>
|
||||
</data>
|
||||
@@ -637,7 +634,7 @@
|
||||
<data name="AddConnectionPanel" xml:space="preserve">
|
||||
<value>加入連線面板</value>
|
||||
</data>
|
||||
<data name="CheckForUpdates" xml:space="preserve">
|
||||
<data name="MenuItem_CheckForUpdates" xml:space="preserve">
|
||||
<value>檢查更新</value>
|
||||
</data>
|
||||
<data name="Config" xml:space="preserve">
|
||||
@@ -658,7 +655,7 @@
|
||||
<data name="DeleteExternalTool" xml:space="preserve">
|
||||
<value>刪除外部工具...</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<data name="MenuItem_Donate" xml:space="preserve">
|
||||
<value>捐贈</value>
|
||||
</data>
|
||||
<data name="DuplicateTab" xml:space="preserve">
|
||||
@@ -676,7 +673,7 @@
|
||||
<data name="_Help" xml:space="preserve">
|
||||
<value>說明(&H)</value>
|
||||
</data>
|
||||
<data name="HelpContents" xml:space="preserve">
|
||||
<data name="MenuItem_HelpContents" xml:space="preserve">
|
||||
<value>mRemoteNG 說明</value>
|
||||
</data>
|
||||
<data name="LaunchExternalTool" xml:space="preserve">
|
||||
@@ -718,7 +715,7 @@
|
||||
<data name="RenameTab" xml:space="preserve">
|
||||
<value>重新命名索引標籤</value>
|
||||
</data>
|
||||
<data name="ReportBug" xml:space="preserve">
|
||||
<data name="MenuItem_ReportIssue" xml:space="preserve">
|
||||
<value>報告 Bug</value>
|
||||
</data>
|
||||
<data name="ResetLayout" xml:space="preserve">
|
||||
@@ -748,7 +745,7 @@
|
||||
<data name="StartChat" xml:space="preserve">
|
||||
<value>開始聊天 (VNC)</value>
|
||||
</data>
|
||||
<data name="SupportForum" xml:space="preserve">
|
||||
<data name="MenuItem_SupportForum" xml:space="preserve">
|
||||
<value>支援討論區</value>
|
||||
</data>
|
||||
<data name="_Tools" xml:space="preserve">
|
||||
@@ -763,7 +760,7 @@
|
||||
<data name="ViewOnly" xml:space="preserve">
|
||||
<value>只有檢視 (VNC)</value>
|
||||
</data>
|
||||
<data name="Website" xml:space="preserve">
|
||||
<data name="MenuItem_Website" xml:space="preserve">
|
||||
<value>網站</value>
|
||||
</data>
|
||||
<data name="MinimizeToSysTray" xml:space="preserve">
|
||||
@@ -1358,9 +1355,6 @@
|
||||
<data name="SaveConnectionsFileBeforeOpeningAnother" xml:space="preserve">
|
||||
<value>您要在載入另一個之前先儲存目前的連線檔案嗎?</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>結束時儲存連線</value>
|
||||
</data>
|
||||
<data name="SaveImageFilter" xml:space="preserve">
|
||||
<value>Graphics Interchange Format 檔案 (.gif)|*.gif|Joint Photographic Experts Group 檔案 (.jpeg)|*.jpeg|Joint Photographic Experts Group 檔案 (.jpg)|*.jpg|Portable Network Graphics 檔案 (.png)|*.png</value>
|
||||
</data>
|
||||
@@ -1575,4 +1569,10 @@ mRemoteNG 將立即結束並開始安裝。</value>
|
||||
<data name="Yes" xml:space="preserve">
|
||||
<value>是</value>
|
||||
</data>
|
||||
<data name="Gateway" xml:space="preserve">
|
||||
<value>閘道</value>
|
||||
</data>
|
||||
<data name="SaveConsOnExit" xml:space="preserve">
|
||||
<value>結束時儲存連線</value>
|
||||
</data>
|
||||
</root>
|
||||
Binary file not shown.
@@ -156,11 +156,7 @@ namespace mRemoteNG.Tools
|
||||
ExternalToolArgumentParser argParser = new(startConnectionInfo);
|
||||
process.StartInfo.UseShellExecute = true;
|
||||
process.StartInfo.FileName = argParser.ParseArguments(FileName);
|
||||
var parsedArgs = argParser.ParseArguments(Arguments).Split(' ');
|
||||
foreach (var arg in parsedArgs)
|
||||
{
|
||||
process.StartInfo.ArgumentList.Add(arg);
|
||||
}
|
||||
process.StartInfo.Arguments = argParser.ParseArguments(Arguments);
|
||||
if (WorkingDir != "") process.StartInfo.WorkingDirectory = argParser.ParseArguments(WorkingDir);
|
||||
if (RunElevated) process.StartInfo.Verb = "runas";
|
||||
}
|
||||
|
||||
@@ -268,5 +268,131 @@ namespace mRemoteNG.Tools
|
||||
return svc;
|
||||
}
|
||||
}
|
||||
|
||||
public class TabColorConverter : TypeConverter
|
||||
{
|
||||
public override bool CanConvertFrom(ITypeDescriptorContext? context, Type sourceType)
|
||||
{
|
||||
return sourceType == typeof(string) || sourceType == typeof(Color) || base.CanConvertFrom(context, sourceType);
|
||||
}
|
||||
|
||||
public override bool CanConvertTo(ITypeDescriptorContext? context, Type? destinationType)
|
||||
{
|
||||
return destinationType == typeof(string) || destinationType == typeof(Color) || base.CanConvertTo(context, destinationType);
|
||||
}
|
||||
|
||||
public override object? ConvertFrom(ITypeDescriptorContext? context, CultureInfo? culture, object? value)
|
||||
{
|
||||
if (value == null || (value is string str && string.IsNullOrWhiteSpace(str)))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
if (value is string stringValue)
|
||||
{
|
||||
return stringValue;
|
||||
}
|
||||
|
||||
if (value is Color colorValue)
|
||||
{
|
||||
// Convert Color to string representation
|
||||
// Use named color if it's a known color, otherwise use hex format
|
||||
if (colorValue.IsNamedColor)
|
||||
{
|
||||
return colorValue.Name;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Return hex format without alpha if fully opaque, otherwise include alpha
|
||||
if (colorValue.A == 255)
|
||||
{
|
||||
return $"#{colorValue.R:X2}{colorValue.G:X2}{colorValue.B:X2}";
|
||||
}
|
||||
else
|
||||
{
|
||||
return $"#{colorValue.A:X2}{colorValue.R:X2}{colorValue.G:X2}{colorValue.B:X2}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return base.ConvertFrom(context, culture, value);
|
||||
}
|
||||
|
||||
public override object ConvertTo(ITypeDescriptorContext? context, CultureInfo? culture, object? value, Type destinationType)
|
||||
{
|
||||
if (destinationType == typeof(string))
|
||||
{
|
||||
if (value == null || (value is string str && string.IsNullOrWhiteSpace(str)))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
return value.ToString() ?? string.Empty;
|
||||
}
|
||||
|
||||
if (destinationType == typeof(Color))
|
||||
{
|
||||
if (value == null || (value is string str && string.IsNullOrWhiteSpace(str)))
|
||||
{
|
||||
return Color.Empty;
|
||||
}
|
||||
|
||||
if (value is string stringValue)
|
||||
{
|
||||
try
|
||||
{
|
||||
ColorConverter converter = new ColorConverter();
|
||||
return converter.ConvertFromString(stringValue) ?? Color.Empty;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return Color.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return base.ConvertTo(context, culture, value, destinationType) ?? throw new InvalidOperationException("Base conversion returned null.");
|
||||
}
|
||||
|
||||
public override bool GetStandardValuesSupported(ITypeDescriptorContext? context)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext? context)
|
||||
{
|
||||
// Provide a list of common colors for the dropdown
|
||||
Color[] colors =
|
||||
[
|
||||
Color.Red,
|
||||
Color.Orange,
|
||||
Color.Yellow,
|
||||
Color.Green,
|
||||
Color.Blue,
|
||||
Color.Purple,
|
||||
Color.Pink,
|
||||
Color.Brown,
|
||||
Color.Black,
|
||||
Color.White,
|
||||
Color.Gray,
|
||||
Color.LightGray,
|
||||
Color.DarkGray,
|
||||
Color.Cyan,
|
||||
Color.Magenta,
|
||||
Color.Lime,
|
||||
Color.Navy,
|
||||
Color.Teal,
|
||||
Color.Maroon,
|
||||
Color.Olive
|
||||
];
|
||||
|
||||
return new StandardValuesCollection(colors);
|
||||
}
|
||||
|
||||
public override bool GetStandardValuesExclusive(ITypeDescriptorContext? context)
|
||||
{
|
||||
// Return false to allow custom values (hex codes or other color names)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -43,7 +43,7 @@ namespace mRemoteNG.Tree.Root
|
||||
[Browsable(false)]
|
||||
public string PasswordString
|
||||
{
|
||||
get => Password ? _customPassword : DefaultPassword;
|
||||
get => (Password && !string.IsNullOrEmpty(_customPassword)) ? _customPassword : DefaultPassword;
|
||||
set
|
||||
{
|
||||
_customPassword = value;
|
||||
|
||||
@@ -3,9 +3,12 @@ using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using mRemoteNG.App;
|
||||
using mRemoteNG.App.Info;
|
||||
using mRemoteNG.Config;
|
||||
using mRemoteNG.Connection;
|
||||
using mRemoteNG.Connection.Protocol;
|
||||
using mRemoteNG.Container;
|
||||
using mRemoteNG.Properties;
|
||||
using mRemoteNG.Tools;
|
||||
using mRemoteNG.Tools.Clipboard;
|
||||
using mRemoteNG.Tree;
|
||||
@@ -13,6 +16,7 @@ using mRemoteNG.Tree.Root;
|
||||
using mRemoteNG.Resources.Language;
|
||||
using System.Runtime.Versioning;
|
||||
using mRemoteNG.Security;
|
||||
using mRemoteNG.UI.TaskDialog;
|
||||
|
||||
// ReSharper disable UnusedParameter.Local
|
||||
|
||||
@@ -794,6 +798,28 @@ namespace mRemoteNG.UI.Controls
|
||||
try
|
||||
{
|
||||
if (connectionInfo == null) return;
|
||||
|
||||
// Check if confirmation is needed based on settings
|
||||
if (Settings.Default.ConfirmCloseConnection == (int)ConfirmCloseEnum.All)
|
||||
{
|
||||
string confirmMessage = string.Format(Language.ConfirmDisconnectConnection, connectionInfo.Name);
|
||||
DialogResult result = CTaskDialog.MessageBox(this, GeneralAppInfo.ProductName,
|
||||
confirmMessage, "", "", "",
|
||||
Language.CheckboxDoNotShowThisMessageAgain,
|
||||
ETaskDialogButtons.YesNo, ESysIcons.Question,
|
||||
ESysIcons.Question);
|
||||
if (CTaskDialog.VerificationChecked)
|
||||
{
|
||||
Settings.Default.ConfirmCloseConnection = (int)ConfirmCloseEnum.Never;
|
||||
Settings.Default.Save();
|
||||
}
|
||||
|
||||
if (result == DialogResult.No)
|
||||
{
|
||||
return; // User cancelled the disconnect
|
||||
}
|
||||
}
|
||||
|
||||
ContainerInfo nodeAsContainer = connectionInfo as ContainerInfo;
|
||||
if (nodeAsContainer != null)
|
||||
{
|
||||
|
||||
@@ -168,6 +168,7 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid
|
||||
strHide.AddRange(SpecialRdpExclusions());
|
||||
break;
|
||||
case ProtocolType.VNC:
|
||||
case ProtocolType.ARD:
|
||||
strHide.AddRange(SpecialVncExclusions());
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -166,6 +166,7 @@ namespace mRemoteNG.UI.Controls.ConnectionTree
|
||||
ModelDropped += _dragAndDropHandler.HandleEvent_ModelDropped;
|
||||
BeforeLabelEdit += OnBeforeLabelEdit;
|
||||
AfterLabelEdit += OnAfterLabelEdit;
|
||||
FormatCell += ConnectionTree_FormatCell;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -512,6 +513,27 @@ namespace mRemoteNG.UI.Controls.ConnectionTree
|
||||
_contextMenu.DisableShortcutKeys();
|
||||
}
|
||||
|
||||
private void ConnectionTree_FormatCell(object sender, FormatCellEventArgs e)
|
||||
{
|
||||
if (e.Model is not ConnectionInfo connectionInfo)
|
||||
return;
|
||||
|
||||
string colorString = connectionInfo.Color;
|
||||
if (string.IsNullOrEmpty(colorString))
|
||||
return;
|
||||
|
||||
try
|
||||
{
|
||||
System.Drawing.ColorConverter converter = new();
|
||||
System.Drawing.Color color = (System.Drawing.Color)converter.ConvertFromString(colorString);
|
||||
e.SubItem.ForeColor = color;
|
||||
}
|
||||
catch
|
||||
{
|
||||
// If color parsing fails, just ignore and use default color
|
||||
}
|
||||
}
|
||||
|
||||
private void OnAfterLabelEdit(object sender, LabelEditEventArgs e)
|
||||
{
|
||||
if (!_nodeInEditMode)
|
||||
|
||||
7
mRemoteNG/UI/Forms/FrmAbout.Designer.cs
generated
7
mRemoteNG/UI/Forms/FrmAbout.Designer.cs
generated
@@ -142,14 +142,9 @@
|
||||
Controls.Add(pbLogo);
|
||||
Font = new System.Drawing.Font("Segoe UI", 8.25F);
|
||||
ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
MaximizeBox = false;
|
||||
MaximumSize = new System.Drawing.Size(20000, 10000);
|
||||
MinimizeBox = false;
|
||||
Name = "frmAbout";
|
||||
StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
Text = "About";
|
||||
TopMost = true;
|
||||
TabText = "About";
|
||||
((System.ComponentModel.ISupportInitialize)pbLogo).EndInit();
|
||||
pnlBottom.ResumeLayout(false);
|
||||
pnlBottom.PerformLayout();
|
||||
|
||||
@@ -7,15 +7,16 @@ using System.Reflection;
|
||||
using mRemoteNG.Properties;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.Versioning;
|
||||
using mRemoteNG.UI.Window;
|
||||
|
||||
namespace mRemoteNG.UI.Forms
|
||||
{
|
||||
[SupportedOSPlatform("windows")]
|
||||
public partial class frmAbout : Form
|
||||
public partial class frmAbout : BaseWindow
|
||||
{
|
||||
public static frmAbout Instance { get; set; } = new frmAbout();
|
||||
|
||||
private frmAbout()
|
||||
public frmAbout()
|
||||
{
|
||||
InitializeComponent();
|
||||
Icon = Resources.ImageConverter.GetImageAsIcon(Properties.Resources.UIAboutBox_16x);
|
||||
@@ -27,7 +28,8 @@ namespace mRemoteNG.UI.Forms
|
||||
private void ApplyLanguage()
|
||||
{
|
||||
lblLicense.Text = Language.ReleasedUnderGPL;
|
||||
base.Text = Language.About;
|
||||
base.Text = Language.MenuItem_About;
|
||||
TabText = Language.MenuItem_About;
|
||||
llChangelog.Text = Language.Changelog;
|
||||
llCredits.Text = Language.Credits;
|
||||
llLicense.Text = Language.License;
|
||||
@@ -50,9 +52,9 @@ namespace mRemoteNG.UI.Forms
|
||||
protected override void OnFormClosing(FormClosingEventArgs e)
|
||||
{
|
||||
base.OnFormClosing(e);
|
||||
|
||||
e.Cancel = true;
|
||||
Hide();
|
||||
|
||||
// Don't cancel close when shown in DockPanel
|
||||
// This allows the tab to close properly without showing connection close dialog
|
||||
}
|
||||
|
||||
private void llLicense_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
|
||||
@@ -61,9 +61,14 @@ namespace mRemoteNG.UI.Forms
|
||||
pbLock.Image = display.ScaleImage(pbLock.Image);
|
||||
Height = tableLayoutPanel1.Height;
|
||||
|
||||
if (NewPasswordMode) return;
|
||||
if (NewPasswordMode)
|
||||
{
|
||||
txtPassword.Focus();
|
||||
return;
|
||||
}
|
||||
lblVerify.Visible = false;
|
||||
txtVerify.Visible = false;
|
||||
txtPassword.Focus();
|
||||
}
|
||||
|
||||
private void PasswordForm_FormClosed(object sender, FormClosedEventArgs e)
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace mRemoteNG.UI.Forms
|
||||
labelExceptionMessageHeader.Text = Language.ExceptionMessage;
|
||||
labelStackTraceHeader.Text = Language.StackTrace;
|
||||
labelEnvironment.Text = Language.Environment;
|
||||
buttonCreateBug.Text = Language.ReportBug;
|
||||
buttonCreateBug.Text = Language.MenuItem_ReportIssue;
|
||||
buttonCopyAll.Text = Language.CopyAll;
|
||||
buttonClose.Text = _isFatal
|
||||
? Language.Exit
|
||||
|
||||
@@ -257,8 +257,8 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
// tableLayoutPanel2
|
||||
//
|
||||
tableLayoutPanel2.ColumnCount = 2;
|
||||
tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 45F));
|
||||
tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 55F));
|
||||
tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.AutoSize));
|
||||
tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
tableLayoutPanel2.Controls.Add(numRdpReconnectionCount, 1, 0);
|
||||
tableLayoutPanel2.Controls.Add(numAutoSave, 1, 2);
|
||||
tableLayoutPanel2.Controls.Add(lblRdpReconnectionCount, 0, 0);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using mRemoteNG.Config;
|
||||
using mRemoteNG.Config.Connections;
|
||||
using mRemoteNG.Properties;
|
||||
using mRemoteNG.Resources.Language;
|
||||
@@ -14,9 +15,6 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
private OptRegistryConnectionsPage pageRegSettingsInstance;
|
||||
private readonly FrmMain _frmMain = FrmMain.Default;
|
||||
|
||||
// never used, added: Jun 15, 2024
|
||||
//private List<DropdownList> _connectionWarning;
|
||||
|
||||
#endregion
|
||||
|
||||
public ConnectionsPage()
|
||||
@@ -29,10 +27,19 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
* Comments added: Jun 15, 2024
|
||||
* These settings are not used on the settings page. It doesn't matter if they are set or not; nothing happens:
|
||||
* 1) chkSaveConnectionsAfterEveryEdit: never used
|
||||
* 2) pnlConfirmCloseConnection: seems to be unfinished. _connectionWarning or other corresponding settings are not available.
|
||||
*/
|
||||
chkSaveConnectionsAfterEveryEdit.Visible = false; // Temporary hide control, never used, added: Jun 15, 2024
|
||||
pnlConfirmCloseConnection.Visible = false; // Temporary hide control, never used, added: Jun 15, 2024
|
||||
|
||||
// Reload settings when page becomes visible to reflect any changes made outside the Options dialog
|
||||
VisibleChanged += ConnectionsPage_VisibleChanged;
|
||||
}
|
||||
|
||||
private void ConnectionsPage_VisibleChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (Visible)
|
||||
{
|
||||
LoadSettings();
|
||||
}
|
||||
}
|
||||
|
||||
public override string PageName
|
||||
@@ -45,23 +52,6 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
{
|
||||
base.ApplyLanguage();
|
||||
|
||||
/*
|
||||
* Comments added: Jun 15, 2024
|
||||
*
|
||||
* Seems to be unfinished or old
|
||||
*/
|
||||
/*_connectionWarning = new List<DropdownList>
|
||||
{
|
||||
{ new DropdownList((int)ConfirmCloseEnum.Never, Language.RadioCloseWarnMultiple)},
|
||||
{ new DropdownList((int)ConfirmCloseEnum.Exit, Language.RadioCloseWarnExit)},
|
||||
{ new DropdownList((int)ConfirmCloseEnum.Multiple, Language.RadioCloseWarnMultiple)},
|
||||
{ new DropdownList((int)ConfirmCloseEnum.All, Language._CloseWarnAll)}
|
||||
};*/
|
||||
|
||||
//comboBoxConnectionWarning.DataSource = _connectionWarning;
|
||||
//comboBoxConnectionWarning.DisplayMember = "DisplayString";
|
||||
//comboBoxConnectionWarning.ValueMember = "Index";
|
||||
|
||||
chkSingleClickOnConnectionOpensIt.Text = Language.SingleClickOnConnectionOpensIt;
|
||||
chkSingleClickOnOpenedConnectionSwitchesToIt.Text = Language.SingleClickOnOpenConnectionSwitchesToIt;
|
||||
chkConnectionTreeTrackActiveConnection.Text = Language.TrackActiveConnectionInConnectionTree;
|
||||
@@ -73,7 +63,12 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
lblRdpReconnectionCount.Text = Language.RdpReconnectCount;
|
||||
lblRDPConTimeout.Text = Language.RdpOverallConnectionTimeout;
|
||||
lblAutoSave1.Text = Language.AutoSaveEvery;
|
||||
//ngLabel1.Text = Language.strLabelClosingConnections;
|
||||
|
||||
lblClosingConnections.Text = Language.ClosingConnections;
|
||||
radCloseWarnAll.Text = Language._CloseWarnAll;
|
||||
radCloseWarnMultiple.Text = Language.RadioCloseWarnMultiple;
|
||||
radCloseWarnExit.Text = Language.RadioCloseWarnExit;
|
||||
radCloseWarnNever.Text = Language.RadioCloseWarnNever;
|
||||
|
||||
lblRegistrySettingsUsedInfo.Text = Language.OptionsCompanyPolicyMessage;
|
||||
}
|
||||
@@ -93,7 +88,25 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
numRDPConTimeout.Value = Convert.ToDecimal(Settings.Default.ConRDPOverallConnectionTimeout);
|
||||
numAutoSave.Value = Convert.ToDecimal(Properties.OptionsBackupPage.Default.AutoSaveEveryMinutes);
|
||||
|
||||
//comboBoxConnectionWarning.SelectedValue = Settings.Default.ConfirmCloseConnection;
|
||||
// Load ConfirmCloseConnection setting
|
||||
switch (Settings.Default.ConfirmCloseConnection)
|
||||
{
|
||||
case (int)ConfirmCloseEnum.Never:
|
||||
radCloseWarnNever.Checked = true;
|
||||
break;
|
||||
case (int)ConfirmCloseEnum.Exit:
|
||||
radCloseWarnExit.Checked = true;
|
||||
break;
|
||||
case (int)ConfirmCloseEnum.Multiple:
|
||||
radCloseWarnMultiple.Checked = true;
|
||||
break;
|
||||
case (int)ConfirmCloseEnum.All:
|
||||
radCloseWarnAll.Checked = true;
|
||||
break;
|
||||
default:
|
||||
radCloseWarnAll.Checked = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (Properties.OptionsBackupPage.Default.SaveConnectionsFrequency == (int)ConnectionsBackupFrequencyEnum.Unassigned)
|
||||
{
|
||||
@@ -136,7 +149,23 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
_frmMain.tmrAutoSave.Enabled = false;
|
||||
}
|
||||
|
||||
//Settings.Default.ConfirmCloseConnection = (int)comboBoxConnectionWarning.SelectedValue;
|
||||
// Save ConfirmCloseConnection setting
|
||||
if (radCloseWarnNever.Checked)
|
||||
{
|
||||
Settings.Default.ConfirmCloseConnection = (int)ConfirmCloseEnum.Never;
|
||||
}
|
||||
else if (radCloseWarnExit.Checked)
|
||||
{
|
||||
Settings.Default.ConfirmCloseConnection = (int)ConfirmCloseEnum.Exit;
|
||||
}
|
||||
else if (radCloseWarnMultiple.Checked)
|
||||
{
|
||||
Settings.Default.ConfirmCloseConnection = (int)ConfirmCloseEnum.Multiple;
|
||||
}
|
||||
else if (radCloseWarnAll.Checked)
|
||||
{
|
||||
Settings.Default.ConfirmCloseConnection = (int)ConfirmCloseEnum.All;
|
||||
}
|
||||
}
|
||||
|
||||
public override void LoadRegistrySettings()
|
||||
|
||||
@@ -24,6 +24,12 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
public virtual Icon PageIcon { get; protected set; }
|
||||
public virtual Image IconImage => PageIcon?.ToBitmap();
|
||||
|
||||
/// <summary>
|
||||
/// Indicates whether the settings on this page have been modified.
|
||||
/// </summary>
|
||||
[Browsable(false)]
|
||||
public bool HasChanges { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Public Methods
|
||||
|
||||
@@ -79,7 +79,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
chkIdentifyQuickConnectTabs._mice = MrngCheckBox.MouseState.OUT;
|
||||
chkIdentifyQuickConnectTabs.AutoSize = true;
|
||||
chkIdentifyQuickConnectTabs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
chkIdentifyQuickConnectTabs.Location = new System.Drawing.Point(3, 118);
|
||||
chkIdentifyQuickConnectTabs.Location = new System.Drawing.Point(3, 72);
|
||||
chkIdentifyQuickConnectTabs.Name = "chkIdentifyQuickConnectTabs";
|
||||
chkIdentifyQuickConnectTabs.Size = new System.Drawing.Size(315, 17);
|
||||
chkIdentifyQuickConnectTabs.TabIndex = 4;
|
||||
@@ -103,7 +103,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
chkAlwaysShowPanelSelectionDlg._mice = MrngCheckBox.MouseState.OUT;
|
||||
chkAlwaysShowPanelSelectionDlg.AutoSize = true;
|
||||
chkAlwaysShowPanelSelectionDlg.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
chkAlwaysShowPanelSelectionDlg.Location = new System.Drawing.Point(3, 164);
|
||||
chkAlwaysShowPanelSelectionDlg.Location = new System.Drawing.Point(3, 118);
|
||||
chkAlwaysShowPanelSelectionDlg.Name = "chkAlwaysShowPanelSelectionDlg";
|
||||
chkAlwaysShowPanelSelectionDlg.Size = new System.Drawing.Size(347, 17);
|
||||
chkAlwaysShowPanelSelectionDlg.TabIndex = 6;
|
||||
@@ -115,7 +115,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
chkShowLogonInfoOnTabs._mice = MrngCheckBox.MouseState.OUT;
|
||||
chkShowLogonInfoOnTabs.AutoSize = true;
|
||||
chkShowLogonInfoOnTabs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
chkShowLogonInfoOnTabs.Location = new System.Drawing.Point(3, 72);
|
||||
chkShowLogonInfoOnTabs.Location = new System.Drawing.Point(3, 26);
|
||||
chkShowLogonInfoOnTabs.Name = "chkShowLogonInfoOnTabs";
|
||||
chkShowLogonInfoOnTabs.Size = new System.Drawing.Size(226, 17);
|
||||
chkShowLogonInfoOnTabs.TabIndex = 2;
|
||||
@@ -127,7 +127,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
chkDoubleClickClosesTab._mice = MrngCheckBox.MouseState.OUT;
|
||||
chkDoubleClickClosesTab.AutoSize = true;
|
||||
chkDoubleClickClosesTab.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
chkDoubleClickClosesTab.Location = new System.Drawing.Point(3, 141);
|
||||
chkDoubleClickClosesTab.Location = new System.Drawing.Point(3, 95);
|
||||
chkDoubleClickClosesTab.Name = "chkDoubleClickClosesTab";
|
||||
chkDoubleClickClosesTab.Size = new System.Drawing.Size(170, 17);
|
||||
chkDoubleClickClosesTab.TabIndex = 5;
|
||||
@@ -139,7 +139,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
chkShowProtocolOnTabs._mice = MrngCheckBox.MouseState.OUT;
|
||||
chkShowProtocolOnTabs.AutoSize = true;
|
||||
chkShowProtocolOnTabs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
chkShowProtocolOnTabs.Location = new System.Drawing.Point(3, 95);
|
||||
chkShowProtocolOnTabs.Location = new System.Drawing.Point(3, 49);
|
||||
chkShowProtocolOnTabs.Name = "chkShowProtocolOnTabs";
|
||||
chkShowProtocolOnTabs.Size = new System.Drawing.Size(180, 17);
|
||||
chkShowProtocolOnTabs.TabIndex = 3;
|
||||
@@ -151,7 +151,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
chkCreateEmptyPanelOnStart._mice = MrngCheckBox.MouseState.OUT;
|
||||
chkCreateEmptyPanelOnStart.AutoSize = true;
|
||||
chkCreateEmptyPanelOnStart.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
chkCreateEmptyPanelOnStart.Location = new System.Drawing.Point(3, 187);
|
||||
chkCreateEmptyPanelOnStart.Location = new System.Drawing.Point(3, 141);
|
||||
chkCreateEmptyPanelOnStart.Name = "chkCreateEmptyPanelOnStart";
|
||||
chkCreateEmptyPanelOnStart.Size = new System.Drawing.Size(271, 17);
|
||||
chkCreateEmptyPanelOnStart.TabIndex = 7;
|
||||
@@ -162,7 +162,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
// txtBoxPanelName
|
||||
//
|
||||
txtBoxPanelName.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
txtBoxPanelName.Location = new System.Drawing.Point(35, 223);
|
||||
txtBoxPanelName.Location = new System.Drawing.Point(35, 177);
|
||||
txtBoxPanelName.Name = "txtBoxPanelName";
|
||||
txtBoxPanelName.Size = new System.Drawing.Size(213, 22);
|
||||
txtBoxPanelName.TabIndex = 8;
|
||||
@@ -170,7 +170,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
// lblPanelName
|
||||
//
|
||||
lblPanelName.AutoSize = true;
|
||||
lblPanelName.Location = new System.Drawing.Point(32, 207);
|
||||
lblPanelName.Location = new System.Drawing.Point(32, 161);
|
||||
lblPanelName.Name = "lblPanelName";
|
||||
lblPanelName.Size = new System.Drawing.Size(69, 13);
|
||||
lblPanelName.TabIndex = 9;
|
||||
@@ -192,7 +192,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
pnlOptions.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
pnlOptions.Location = new System.Drawing.Point(0, 30);
|
||||
pnlOptions.Name = "pnlOptions";
|
||||
pnlOptions.Size = new System.Drawing.Size(610, 262);
|
||||
pnlOptions.Size = new System.Drawing.Size(610, 216);
|
||||
pnlOptions.TabIndex = 10;
|
||||
//
|
||||
// lblRegistrySettingsUsedInfo
|
||||
|
||||
@@ -89,7 +89,10 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
* Properties.OptionsTabsPanelsPage.Default.AlwaysShowConnectionTabs nerver used
|
||||
*/
|
||||
//Properties.OptionsTabsPanelsPage.Default.AlwaysShowConnectionTabs = chkAlwaysShowConnectionTabs.Checked;
|
||||
FrmMain.Default.ShowHidePanelTabs();
|
||||
|
||||
// Defer the ShowHidePanelTabs call to avoid corrupting the Options window
|
||||
// This ensures the call happens after the Options window is closed
|
||||
FrmMain.Default.BeginInvoke(new System.Windows.Forms.MethodInvoker(() => FrmMain.Default.ShowHidePanelTabs()));
|
||||
|
||||
/*
|
||||
* Comment added: June 16, 2024
|
||||
|
||||
@@ -18,6 +18,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
|
||||
private readonly ThemeManager _themeManager;
|
||||
private readonly bool _oriActiveTheming;
|
||||
private ThemeInfo _oriActiveTheme;
|
||||
private readonly List<ThemeInfo> modifiedThemes = [];
|
||||
|
||||
#endregion
|
||||
@@ -65,6 +66,8 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
// ReSharper disable once CoVariantArrayConversion
|
||||
cboTheme.Items.AddRange(_themeManager.LoadThemes().OrderBy(x => x.Name).ToArray());
|
||||
cboTheme.SelectedItem = _themeManager.ActiveTheme;
|
||||
// Store the original active theme for reverting
|
||||
_oriActiveTheme = _themeManager.ActiveTheme;
|
||||
cboTheme_SelectionChangeCommitted(this, new EventArgs());
|
||||
cboTheme.DisplayMember = "Name";
|
||||
|
||||
@@ -107,6 +110,20 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
{
|
||||
base.RevertSettings();
|
||||
_themeManager.ThemingActive = _oriActiveTheming;
|
||||
|
||||
// Clear the modified themes list without saving
|
||||
modifiedThemes.Clear();
|
||||
|
||||
// Restore the original theme selection
|
||||
if (_oriActiveTheme != null)
|
||||
{
|
||||
_themeManager.ActiveTheme = _oriActiveTheme;
|
||||
// Reload the theme list to reflect the original state
|
||||
cboTheme.Items.Clear();
|
||||
cboTheme.Items.AddRange(_themeManager.LoadThemes().OrderBy(x => x.Name).ToArray());
|
||||
cboTheme.SelectedItem = _oriActiveTheme;
|
||||
cboTheme_SelectionChangeCommitted(this, new EventArgs());
|
||||
}
|
||||
}
|
||||
|
||||
#region Private Methods
|
||||
|
||||
@@ -215,9 +215,14 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
InitialiseCheckForUpdatesOnStartupComboBox();
|
||||
}
|
||||
|
||||
private void btnUpdateCheckNow_Click(object sender, EventArgs e)
|
||||
private async void btnUpdateCheckNow_Click(object sender, EventArgs e)
|
||||
{
|
||||
App.Windows.Show(WindowType.Update);
|
||||
var updateWindow = App.Windows.UpdateForm;
|
||||
if (updateWindow != null && !updateWindow.IsDisposed)
|
||||
{
|
||||
await updateWindow.PerformUpdateCheckAsync();
|
||||
}
|
||||
}
|
||||
|
||||
private void chkUseProxyForAutomaticUpdates_CheckedChanged(object sender, EventArgs e)
|
||||
|
||||
@@ -470,7 +470,7 @@ namespace mRemoteNG.UI.Forms
|
||||
DialogResult result = CTaskDialog.MessageBox(this, Application.ProductName, Language.ConfirmExitMainInstruction, "", "", "", Language.CheckboxDoNotShowThisMessageAgain, ETaskDialogButtons.YesNo, ESysIcons.Question, ESysIcons.Question);
|
||||
if (CTaskDialog.VerificationChecked)
|
||||
{
|
||||
Properties.Settings.Default.ConfirmCloseConnection--; //--?
|
||||
Properties.Settings.Default.ConfirmCloseConnection = (int)ConfirmCloseEnum.Never;
|
||||
}
|
||||
|
||||
if (result == DialogResult.No)
|
||||
|
||||
@@ -22,6 +22,8 @@ namespace mRemoteNG.UI.Forms
|
||||
private string _pageName;
|
||||
private readonly DisplayProperties _display = new();
|
||||
private readonly List<string> _optionPageObjectNames;
|
||||
private bool _isLoading = true;
|
||||
private bool _isInitialized = false; // Add this field to the FrmOptions class
|
||||
|
||||
public FrmOptions() : this(Language.StartupExit)
|
||||
{
|
||||
@@ -57,6 +59,13 @@ namespace mRemoteNG.UI.Forms
|
||||
|
||||
private void FrmOptions_Load(object sender, EventArgs e)
|
||||
{
|
||||
// Only initialize once to prevent multiple event subscriptions and page reloading
|
||||
if (_isInitialized)
|
||||
{
|
||||
this.Visible = true;
|
||||
return;
|
||||
}
|
||||
|
||||
this.Visible = true;
|
||||
FontOverrider.FontOverride(this);
|
||||
SetActivatedPage();
|
||||
@@ -71,6 +80,23 @@ namespace mRemoteNG.UI.Forms
|
||||
//ThemeManager.getInstance().ThemeChanged += ApplyTheme;
|
||||
lstOptionPages.SelectedIndexChanged += LstOptionPages_SelectedIndexChanged;
|
||||
lstOptionPages.SelectedIndex = 0;
|
||||
|
||||
// Handle visibility changes to ensure panel is populated when form is shown
|
||||
this.VisibleChanged += FrmOptions_VisibleChanged;
|
||||
|
||||
// Mark as initialized
|
||||
_isInitialized = true;
|
||||
}
|
||||
|
||||
private void FrmOptions_VisibleChanged(object sender, EventArgs e)
|
||||
{
|
||||
// When the form becomes visible, ensure the panel is populated with the selected page
|
||||
if (this.Visible && pnlMain.Controls.Count == 0)
|
||||
{
|
||||
OptionsPage page = (OptionsPage)lstOptionPages.SelectedObject;
|
||||
if (page != null)
|
||||
pnlMain.Controls.Add(page);
|
||||
}
|
||||
}
|
||||
|
||||
private void ApplyTheme()
|
||||
@@ -105,6 +131,8 @@ namespace mRemoteNG.UI.Forms
|
||||
if (_currentIndex >= _optionPageObjectNames.Count)
|
||||
{
|
||||
Application.Idle -= new EventHandler(Application_Idle);
|
||||
// All pages loaded, now start tracking changes
|
||||
_isLoading = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -210,6 +238,9 @@ namespace mRemoteNG.UI.Forms
|
||||
page.LoadSettings();
|
||||
_optionPages.Add(page);
|
||||
lstOptionPages.AddObject(page);
|
||||
|
||||
// Track changes in all controls on the page
|
||||
TrackChangesInControls(page);
|
||||
}
|
||||
|
||||
private object ImageGetter(object rowobject)
|
||||
@@ -238,12 +269,16 @@ namespace mRemoteNG.UI.Forms
|
||||
private void BtnOK_Click(object sender, EventArgs e)
|
||||
{
|
||||
SaveOptions();
|
||||
// Clear change flags after saving
|
||||
ClearChangeFlags();
|
||||
this.Visible = false;
|
||||
}
|
||||
|
||||
private void BtnApply_Click(object sender, EventArgs e)
|
||||
{
|
||||
SaveOptions();
|
||||
// Clear change flags after applying
|
||||
ClearChangeFlags();
|
||||
}
|
||||
|
||||
private void SaveOptions()
|
||||
@@ -269,13 +304,113 @@ namespace mRemoteNG.UI.Forms
|
||||
|
||||
private void BtnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
// When Cancel is clicked, we don't check for changes
|
||||
// The user explicitly wants to cancel
|
||||
this.Visible = false;
|
||||
}
|
||||
|
||||
private void FrmOptions_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
e.Cancel = true;
|
||||
this.Visible = false;
|
||||
// Check if any page has unsaved changes
|
||||
bool hasChanges = _optionPages.Any(page => page.HasChanges);
|
||||
|
||||
if (hasChanges)
|
||||
{
|
||||
DialogResult result = MessageBox.Show(
|
||||
Language.SaveOptionsBeforeClosing,
|
||||
Language.Options,
|
||||
MessageBoxButtons.YesNoCancel,
|
||||
MessageBoxIcon.Question);
|
||||
|
||||
switch (result)
|
||||
{
|
||||
case DialogResult.Yes:
|
||||
SaveOptions();
|
||||
ClearChangeFlags();
|
||||
e.Cancel = true;
|
||||
this.Visible = false;
|
||||
break;
|
||||
case DialogResult.No:
|
||||
// Discard changes
|
||||
ClearChangeFlags();
|
||||
e.Cancel = true;
|
||||
this.Visible = false;
|
||||
break;
|
||||
case DialogResult.Cancel:
|
||||
// Cancel closing - keep the dialog open
|
||||
e.Cancel = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
e.Cancel = true;
|
||||
this.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void TrackChangesInControls(Control control)
|
||||
{
|
||||
foreach (Control childControl in control.Controls)
|
||||
{
|
||||
// Track changes for common input controls
|
||||
if (childControl is TextBox textBox)
|
||||
{
|
||||
textBox.TextChanged += (s, e) => MarkPageAsChanged(control);
|
||||
}
|
||||
else if (childControl is CheckBox checkBox)
|
||||
{
|
||||
checkBox.CheckedChanged += (s, e) => MarkPageAsChanged(control);
|
||||
}
|
||||
else if (childControl is RadioButton radioButton)
|
||||
{
|
||||
radioButton.CheckedChanged += (s, e) => MarkPageAsChanged(control);
|
||||
}
|
||||
else if (childControl is ComboBox comboBox)
|
||||
{
|
||||
comboBox.SelectedIndexChanged += (s, e) => MarkPageAsChanged(control);
|
||||
}
|
||||
else if (childControl is NumericUpDown numericUpDown)
|
||||
{
|
||||
numericUpDown.ValueChanged += (s, e) => MarkPageAsChanged(control);
|
||||
}
|
||||
else if (childControl is ListBox listBox)
|
||||
{
|
||||
listBox.SelectedIndexChanged += (s, e) => MarkPageAsChanged(control);
|
||||
}
|
||||
|
||||
// Recursively track changes in nested controls
|
||||
if (childControl.Controls.Count > 0)
|
||||
{
|
||||
TrackChangesInControls(childControl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void MarkPageAsChanged(Control control)
|
||||
{
|
||||
// Don't track changes during initial loading
|
||||
if (_isLoading) return;
|
||||
|
||||
// Find the parent OptionsPage
|
||||
Control current = control;
|
||||
while (current != null && !(current is OptionsPage))
|
||||
{
|
||||
current = current.Parent;
|
||||
}
|
||||
|
||||
if (current is OptionsPage page)
|
||||
{
|
||||
page.HasChanges = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void ClearChangeFlags()
|
||||
{
|
||||
foreach (OptionsPage page in _optionPages)
|
||||
{
|
||||
page.HasChanges = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,16 +13,19 @@ namespace mRemoteNG.UI.Menu
|
||||
[SupportedOSPlatform("windows")]
|
||||
public class HelpMenu : ToolStripMenuItem
|
||||
{
|
||||
private ToolStripMenuItem _mMenInfoHelp;
|
||||
private ToolStripMenuItem _mMenInfoWebsite;
|
||||
private ToolStripSeparator _mMenInfoSep1;
|
||||
private ToolStripMenuItem _mMenInfoAbout;
|
||||
private ToolStripMenuItem _mMenInfoDonate;
|
||||
private ToolStripSeparator _mMenInfoSep2;
|
||||
private ToolStripSeparator _mMenInfoSep3;
|
||||
private ToolStripSeparator _mMenInfoSep4;
|
||||
private ToolStripMenuItem _mMenInfoForum;
|
||||
private ToolStripMenuItem _mMenToolsUpdate;
|
||||
private ToolStripMenuItem _mMenInfoHelp = null!;
|
||||
private ToolStripMenuItem _mMenInfoWebsite = null!;
|
||||
private ToolStripSeparator _mMenInfoSep1 = null!;
|
||||
private ToolStripMenuItem _mMenInfoAbout = null!;
|
||||
private ToolStripMenuItem _mMenInfoDonate = null!;
|
||||
private ToolStripSeparator _mMenInfoSep2 = null!;
|
||||
private ToolStripSeparator _mMenInfoSep3 = null!;
|
||||
private ToolStripSeparator _mMenInfoSep4 = null!;
|
||||
private ToolStripMenuItem _mMenInfoForum = null!;
|
||||
private ToolStripMenuItem _mMenInfoChat = null!;
|
||||
private ToolStripMenuItem _mMenInfoCommunity = null!;
|
||||
private ToolStripMenuItem _mMenInfoBug = null!;
|
||||
private ToolStripMenuItem _mMenToolsUpdate = null!;
|
||||
|
||||
public HelpMenu()
|
||||
{
|
||||
@@ -36,6 +39,9 @@ namespace mRemoteNG.UI.Menu
|
||||
_mMenInfoWebsite = new ToolStripMenuItem();
|
||||
_mMenInfoDonate = new ToolStripMenuItem();
|
||||
_mMenInfoForum = new ToolStripMenuItem();
|
||||
_mMenInfoChat = new ToolStripMenuItem();
|
||||
_mMenInfoCommunity = new ToolStripMenuItem();
|
||||
_mMenInfoBug = new ToolStripMenuItem();
|
||||
_mMenToolsUpdate = new ToolStripMenuItem();
|
||||
_mMenInfoSep2 = new ToolStripSeparator();
|
||||
_mMenInfoSep3 = new ToolStripSeparator();
|
||||
@@ -51,6 +57,9 @@ namespace mRemoteNG.UI.Menu
|
||||
_mMenInfoSep1,
|
||||
_mMenInfoWebsite,
|
||||
_mMenInfoForum,
|
||||
_mMenInfoChat,
|
||||
_mMenInfoCommunity,
|
||||
_mMenInfoBug,
|
||||
_mMenInfoSep2,
|
||||
_mMenToolsUpdate,
|
||||
_mMenInfoSep3,
|
||||
@@ -69,7 +78,7 @@ namespace mRemoteNG.UI.Menu
|
||||
_mMenInfoHelp.Name = "mMenInfoHelp";
|
||||
_mMenInfoHelp.ShortcutKeys = Keys.F1;
|
||||
_mMenInfoHelp.Size = new System.Drawing.Size(190, 22);
|
||||
_mMenInfoHelp.Text = Language.HelpContents;
|
||||
_mMenInfoHelp.Text = Language.MenuItem_HelpContents;
|
||||
_mMenInfoHelp.Click += mMenInfoHelp_Click;
|
||||
//
|
||||
// mMenToolsUpdate
|
||||
@@ -77,7 +86,7 @@ namespace mRemoteNG.UI.Menu
|
||||
_mMenToolsUpdate.Image = Properties.Resources.RunUpdate_16x;
|
||||
_mMenToolsUpdate.Name = "mMenToolsUpdate";
|
||||
_mMenToolsUpdate.Size = new System.Drawing.Size(190, 22);
|
||||
_mMenToolsUpdate.Text = Language.CheckForUpdates;
|
||||
_mMenToolsUpdate.Text = Language.MenuItem_CheckForUpdates;
|
||||
_mMenToolsUpdate.Click += mMenToolsUpdate_Click;
|
||||
_mMenToolsUpdate.Enabled = CommonRegistrySettings.AllowCheckForUpdates
|
||||
&& CommonRegistrySettings.AllowCheckForUpdatesManual;
|
||||
@@ -91,23 +100,44 @@ namespace mRemoteNG.UI.Menu
|
||||
//
|
||||
_mMenInfoWebsite.Name = "mMenInfoWebsite";
|
||||
_mMenInfoWebsite.Size = new System.Drawing.Size(190, 22);
|
||||
_mMenInfoWebsite.Text = Language.Website;
|
||||
_mMenInfoWebsite.Text = Language.MenuItem_Website;
|
||||
_mMenInfoWebsite.Click += mMenInfoWebsite_Click;
|
||||
//
|
||||
// mMenInfoDonate
|
||||
//
|
||||
_mMenInfoDonate.Name = "mMenInfoDonate";
|
||||
_mMenInfoDonate.Size = new System.Drawing.Size(190, 22);
|
||||
_mMenInfoDonate.Text = Language.Donate;
|
||||
_mMenInfoDonate.Text = Language.MenuItem_Donate;
|
||||
_mMenInfoDonate.Click += mMenInfoDonate_Click;
|
||||
//
|
||||
// mMenInfoForum
|
||||
//
|
||||
_mMenInfoForum.Name = "mMenInfoForum";
|
||||
_mMenInfoForum.Size = new System.Drawing.Size(190, 22);
|
||||
_mMenInfoForum.Text = Language.SupportForum;
|
||||
_mMenInfoForum.Text = Language.MenuItem_SupportForum;
|
||||
_mMenInfoForum.Click += mMenInfoForum_Click;
|
||||
//
|
||||
// mMenInfoChat
|
||||
//
|
||||
_mMenInfoChat.Name = "mMenInfoChat";
|
||||
_mMenInfoChat.Size = new System.Drawing.Size(190, 22);
|
||||
_mMenInfoChat.Text = Language.MenuItem_Chat;
|
||||
_mMenInfoChat.Click += mMenInfoChat_Click;
|
||||
//
|
||||
// mMenInfoCommunity
|
||||
//
|
||||
_mMenInfoCommunity.Name = "mMenInfoCommunity";
|
||||
_mMenInfoCommunity.Size = new System.Drawing.Size(190, 22);
|
||||
_mMenInfoCommunity.Text = Language.MenuItem_Community;
|
||||
_mMenInfoCommunity.Click += mMenInfoCommunity_Click;
|
||||
//
|
||||
// mMenInfoBug
|
||||
//
|
||||
_mMenInfoBug.Name = "mMenInfoBug";
|
||||
_mMenInfoBug.Size = new System.Drawing.Size(190, 22);
|
||||
_mMenInfoBug.Text = Language.MenuItem_ReportIssue;
|
||||
_mMenInfoBug.Click += mMenInfoBug_Click;
|
||||
//
|
||||
// mMenInfoSep2
|
||||
//
|
||||
_mMenInfoSep2.Name = "mMenInfoSep2";
|
||||
@@ -128,34 +158,56 @@ namespace mRemoteNG.UI.Menu
|
||||
_mMenInfoAbout.Image = Properties.Resources.UIAboutBox_16x;
|
||||
_mMenInfoAbout.Name = "mMenInfoAbout";
|
||||
_mMenInfoAbout.Size = new System.Drawing.Size(190, 22);
|
||||
_mMenInfoAbout.Text = Language.About;
|
||||
_mMenInfoAbout.Text = Language.MenuItem_About;
|
||||
_mMenInfoAbout.Click += mMenInfoAbout_Click;
|
||||
}
|
||||
|
||||
public void ApplyLanguage()
|
||||
{
|
||||
Text = Language._Help;
|
||||
_mMenInfoHelp.Text = Language.HelpContents;
|
||||
_mMenInfoWebsite.Text = Language.Website;
|
||||
_mMenInfoDonate.Text = Language.Donate;
|
||||
_mMenInfoForum.Text = Language.SupportForum;
|
||||
_mMenInfoAbout.Text = Language.About;
|
||||
_mMenToolsUpdate.Text = Language.CheckForUpdates;
|
||||
_mMenInfoHelp.Text = Language.MenuItem_HelpContents;
|
||||
_mMenInfoWebsite.Text = Language.MenuItem_Website;
|
||||
_mMenInfoDonate.Text = Language.MenuItem_Donate;
|
||||
_mMenInfoForum.Text = Language.MenuItem_SupportForum;
|
||||
_mMenInfoChat.Text = Language.MenuItem_Chat;
|
||||
_mMenInfoCommunity.Text = Language.MenuItem_Community;
|
||||
_mMenInfoBug.Text = Language.MenuItem_ReportIssue;
|
||||
_mMenInfoAbout.Text = Language.MenuItem_About;
|
||||
_mMenToolsUpdate.Text = Language.MenuItem_CheckForUpdates;
|
||||
}
|
||||
|
||||
#region Info
|
||||
|
||||
private void mMenToolsUpdate_Click(object sender, EventArgs e) => App.Windows.Show(WindowType.Update);
|
||||
private async void mMenToolsUpdate_Click(object sender, EventArgs e)
|
||||
{
|
||||
App.Windows.Show(WindowType.Update);
|
||||
var updateWindow = App.Windows.UpdateForm;
|
||||
if (updateWindow != null && !updateWindow.IsDisposed)
|
||||
{
|
||||
await updateWindow.PerformUpdateCheckAsync();
|
||||
}
|
||||
}
|
||||
|
||||
private void mMenInfoHelp_Click(object sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlDocumentation);
|
||||
private void mMenInfoHelp_Click(object? sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlDocumentation);
|
||||
|
||||
private void mMenInfoForum_Click(object sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlForum);
|
||||
private void mMenInfoForum_Click(object? sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlForum);
|
||||
|
||||
private void mMenInfoWebsite_Click(object sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlHome);
|
||||
private void mMenInfoChat_Click(object? sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlChat);
|
||||
|
||||
private void mMenInfoDonate_Click(object sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlDonate);
|
||||
private void mMenInfoCommunity_Click(object? sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlCommunity);
|
||||
|
||||
private void mMenInfoAbout_Click(object sender, EventArgs e) => frmAbout.Instance.Show();
|
||||
private void mMenInfoBug_Click(object? sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlBugs);
|
||||
|
||||
private void mMenInfoWebsite_Click(object? sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlHome);
|
||||
|
||||
private void mMenInfoDonate_Click(object? sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlDonate);
|
||||
|
||||
private void mMenInfoAbout_Click(object? sender, EventArgs e)
|
||||
{
|
||||
if (frmAbout.Instance == null || frmAbout.Instance.IsDisposed)
|
||||
frmAbout.Instance = new frmAbout();
|
||||
frmAbout.Instance.Show(FrmMain.Default.pnlDock);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -15,14 +15,17 @@ namespace mRemoteNG.UI.Panels
|
||||
[SupportedOSPlatform("windows")]
|
||||
public class PanelAdder
|
||||
{
|
||||
public ConnectionWindow AddPanel(string title = "")
|
||||
public ConnectionWindow AddPanel(string title = "", bool showImmediately = true)
|
||||
{
|
||||
try
|
||||
{
|
||||
ConnectionWindow connectionForm = new(new DockContent());
|
||||
BuildConnectionWindowContextMenu(connectionForm);
|
||||
SetConnectionWindowTitle(title, connectionForm);
|
||||
ShowConnectionWindow(connectionForm);
|
||||
// Only show immediately if requested (for user-created empty panels)
|
||||
// When opening connections, we defer showing until first tab is added
|
||||
if (showImmediately)
|
||||
ShowConnectionWindow(connectionForm);
|
||||
PrepareTabSupport(connectionForm);
|
||||
return connectionForm;
|
||||
}
|
||||
|
||||
@@ -55,7 +55,8 @@ namespace mRemoteNG.UI.Tabs
|
||||
ESysIcons.Question);
|
||||
if (CTaskDialog.VerificationChecked)
|
||||
{
|
||||
Settings.Default.ConfirmCloseConnection--;
|
||||
Settings.Default.ConfirmCloseConnection = (int)ConfirmCloseEnum.Never;
|
||||
Settings.Default.Save();
|
||||
}
|
||||
|
||||
if (result == DialogResult.No)
|
||||
|
||||
@@ -991,8 +991,11 @@ namespace mRemoteNG.UI.Tabs
|
||||
rectText = DrawHelper.RtlTransform(this, rectText);
|
||||
rectIcon = DrawHelper.RtlTransform(this, rectIcon);
|
||||
|
||||
Color activeColor = DockPane.DockPanel.Theme.ColorPalette.TabSelectedActive.Background;
|
||||
Color lostFocusColor = DockPane.DockPanel.Theme.ColorPalette.TabSelectedInactive.Background;
|
||||
// Get custom tab color if available
|
||||
Color? customTabColor = GetCustomTabColor(tab.Content);
|
||||
|
||||
Color activeColor = customTabColor ?? DockPane.DockPanel.Theme.ColorPalette.TabSelectedActive.Background;
|
||||
Color lostFocusColor = customTabColor ?? DockPane.DockPanel.Theme.ColorPalette.TabSelectedInactive.Background;
|
||||
Color inactiveColor = DockPane.DockPanel.Theme.ColorPalette.MainWindowActive.Background;
|
||||
Color mouseHoverColor = DockPane.DockPanel.Theme.ColorPalette.TabUnselectedHovered.Background;
|
||||
|
||||
@@ -1056,6 +1059,31 @@ namespace mRemoteNG.UI.Tabs
|
||||
g.DrawIcon(tab.Content.DockHandler.Icon, rectIcon);
|
||||
}
|
||||
|
||||
private Color? GetCustomTabColor(IDockContent content)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (content is ConnectionTab connectionTab)
|
||||
{
|
||||
InterfaceControl interfaceControl = InterfaceControl.FindInterfaceControl(connectionTab);
|
||||
if (interfaceControl?.Info != null)
|
||||
{
|
||||
string tabColorStr = interfaceControl.Info.TabColor;
|
||||
if (!string.IsNullOrEmpty(tabColorStr))
|
||||
{
|
||||
ColorConverter converter = new ColorConverter();
|
||||
return (Color)converter.ConvertFromString(tabColorStr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
// If there's any error parsing the color, just return null to use default
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private bool m_isMouseDown;
|
||||
|
||||
protected bool IsMouseDown
|
||||
|
||||
@@ -143,6 +143,13 @@ namespace mRemoteNG.UI.Window
|
||||
// TODO: See if we can make this work with DPS...
|
||||
//TabController.HideTabsMode = TabControl.HideTabsModes.HideAlways;
|
||||
|
||||
// Ensure the ConnectionWindow is visible before adding the tab
|
||||
// This prevents visibility issues when the window was created but not yet shown
|
||||
// Check DockState instead of Visible to properly detect if window is shown in DockPanel
|
||||
if (DockState == DockState.Unknown || DockState == DockState.Hidden || !Visible)
|
||||
{
|
||||
Show(FrmMain.Default.pnlDock, DockState.Document);
|
||||
}
|
||||
|
||||
//Show the tab
|
||||
conTab.Show(connDock, DockState.Document);
|
||||
@@ -288,16 +295,11 @@ namespace mRemoteNG.UI.Window
|
||||
Settings.Default.ConfirmCloseConnection == (int)ConfirmCloseEnum.Multiple &
|
||||
connDock.Documents.Count() > 1))
|
||||
{
|
||||
DialogResult result = CTaskDialog.MessageBox(this, GeneralAppInfo.ProductName,
|
||||
string
|
||||
.Format(Language.ConfirmCloseConnectionPanelMainInstruction,
|
||||
Text), "", "", "",
|
||||
Language.CheckboxDoNotShowThisMessageAgain,
|
||||
ETaskDialogButtons.YesNo, ESysIcons.Question,
|
||||
ESysIcons.Question);
|
||||
DialogResult result = CTaskDialog.MessageBox(this, GeneralAppInfo.ProductName, string.Format(Language.ConfirmCloseConnectionPanelMainInstruction, Text), "", "", "", Language.CheckboxDoNotShowThisMessageAgain, ETaskDialogButtons.YesNo, ESysIcons.Question, ESysIcons.Question);
|
||||
if (CTaskDialog.VerificationChecked)
|
||||
{
|
||||
Settings.Default.ConfirmCloseConnection--;
|
||||
Settings.Default.ConfirmCloseConnection = (int)ConfirmCloseEnum.Never;
|
||||
Settings.Default.Save();
|
||||
}
|
||||
|
||||
if (result == DialogResult.No)
|
||||
@@ -662,7 +664,8 @@ namespace mRemoteNG.UI.Window
|
||||
ESysIcons.Question);
|
||||
if (CTaskDialog.VerificationChecked)
|
||||
{
|
||||
Settings.Default.ConfirmCloseConnection--;
|
||||
Settings.Default.ConfirmCloseConnection = (int)ConfirmCloseEnum.Never;
|
||||
Settings.Default.Save();
|
||||
}
|
||||
|
||||
if (result == DialogResult.No)
|
||||
@@ -776,6 +779,7 @@ namespace mRemoteNG.UI.Window
|
||||
ProtocolBase protocolBase = sender as ProtocolBase;
|
||||
if (!(protocolBase?.InterfaceControl.Parent is ConnectionTab tabPage)) return;
|
||||
if (tabPage.Disposing || tabPage.IsDisposed) return;
|
||||
if (IsDisposed || Disposing) return;
|
||||
tabPage.protocolClose = true;
|
||||
Invoke(new Action(() => tabPage.Close()));
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ namespace mRemoteNG.UI.Window
|
||||
public partial class OptionsWindow : BaseWindow
|
||||
{
|
||||
private FrmOptions _optionsForm;
|
||||
private bool _isInitialized = false;
|
||||
|
||||
#region Public Methods
|
||||
|
||||
@@ -34,8 +35,14 @@ namespace mRemoteNG.UI.Window
|
||||
|
||||
private void Options_Load(object sender, EventArgs e)
|
||||
{
|
||||
// Only subscribe to ThemeChanged once to prevent multiple subscriptions
|
||||
if (!_isInitialized)
|
||||
{
|
||||
ThemeManager.getInstance().ThemeChanged += ApplyTheme;
|
||||
_isInitialized = true;
|
||||
}
|
||||
|
||||
ApplyTheme();
|
||||
ThemeManager.getInstance().ThemeChanged += ApplyTheme;
|
||||
ApplyLanguage();
|
||||
LoadOptionsForm();
|
||||
}
|
||||
@@ -77,15 +84,22 @@ namespace mRemoteNG.UI.Window
|
||||
|
||||
protected override void OnFormClosing(FormClosingEventArgs e)
|
||||
{
|
||||
// Detach the FrmOptions form so it can be reused
|
||||
if (_optionsForm != null)
|
||||
{
|
||||
_optionsForm.VisibleChanged -= OptionsForm_VisibleChanged;
|
||||
Controls.Remove(_optionsForm);
|
||||
}
|
||||
// With HideOnClose = true, we don't dispose the window
|
||||
// so we keep the embedded form in Controls for reuse
|
||||
base.OnFormClosing(e);
|
||||
}
|
||||
|
||||
protected override void OnVisibleChanged(EventArgs e)
|
||||
{
|
||||
base.OnVisibleChanged(e);
|
||||
|
||||
// When the window becomes visible, ensure the embedded form is also shown
|
||||
if (Visible && _optionsForm != null && !_optionsForm.Visible)
|
||||
{
|
||||
_optionsForm.Show();
|
||||
}
|
||||
}
|
||||
|
||||
public void SetActivatedPage(string pageName)
|
||||
{
|
||||
_optionsForm?.SetActivatedPage(pageName);
|
||||
@@ -100,6 +114,7 @@ namespace mRemoteNG.UI.Window
|
||||
// OptionsWindow
|
||||
//
|
||||
ClientSize = new System.Drawing.Size(800, 600);
|
||||
HideOnClose = true;
|
||||
Name = "OptionsWindow";
|
||||
Text = Language.Options;
|
||||
TabText = Language.Options;
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
using System;
|
||||
using mRemoteNG.App;
|
||||
using mRemoteNG.App.Update;
|
||||
using mRemoteNG.Messages;
|
||||
using mRemoteNG.Resources.Language;
|
||||
using mRemoteNG.Themes;
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using mRemoteNG.App;
|
||||
using mRemoteNG.App.Update;
|
||||
using mRemoteNG.Messages;
|
||||
using mRemoteNG.Themes;
|
||||
using WeifenLuo.WinFormsUI.Docking;
|
||||
using mRemoteNG.Resources.Language;
|
||||
using System.Threading.Tasks;
|
||||
using System.Runtime.Versioning;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using WeifenLuo.WinFormsUI.Docking;
|
||||
|
||||
namespace mRemoteNG.UI.Window
|
||||
{
|
||||
@@ -35,6 +37,15 @@ namespace mRemoteNG.UI.Window
|
||||
FontOverrider.FontOverride(this);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks for updates and displays the results in the window.
|
||||
/// Call this method when you want to trigger an update check.
|
||||
/// </summary>
|
||||
public async Task PerformUpdateCheckAsync()
|
||||
{
|
||||
await CheckForUpdateAsync();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Form Stuff
|
||||
@@ -44,7 +55,6 @@ namespace mRemoteNG.UI.Window
|
||||
ApplyTheme();
|
||||
ThemeManager.getInstance().ThemeChanged += ApplyTheme;
|
||||
ApplyLanguage();
|
||||
await CheckForUpdateAsync();
|
||||
}
|
||||
|
||||
private new void ApplyTheme()
|
||||
@@ -58,8 +68,8 @@ namespace mRemoteNG.UI.Window
|
||||
|
||||
private void ApplyLanguage()
|
||||
{
|
||||
Text = Language.CheckForUpdates;
|
||||
TabText = Language.CheckForUpdates;
|
||||
Text = Language.MenuItem_CheckForUpdates;
|
||||
TabText = Language.MenuItem_CheckForUpdates;
|
||||
btnCheckForUpdate.Text = Language.CheckAgain;
|
||||
btnDownload.Text = Runtime.IsPortableEdition
|
||||
? Language.Download
|
||||
@@ -108,7 +118,7 @@ namespace mRemoteNG.UI.Window
|
||||
return;
|
||||
}
|
||||
|
||||
lblStatus.Text = Language.CheckForUpdates;
|
||||
lblStatus.Text = Language.MenuItem_CheckForUpdates;
|
||||
lblStatus.ForeColor = SystemColors.WindowText;
|
||||
lblLatestVersionLabel.Visible = false;
|
||||
lblInstalledVersion.Visible = false;
|
||||
@@ -205,11 +215,11 @@ namespace mRemoteNG.UI.Window
|
||||
prgbDownload.Visible = false;
|
||||
|
||||
if (Runtime.IsPortableEdition)
|
||||
MessageBox.Show(Language.UpdatePortableDownloadComplete, Language.CheckForUpdates,
|
||||
MessageBox.Show(Language.UpdatePortableDownloadComplete, Language.MenuItem_CheckForUpdates,
|
||||
MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
else
|
||||
{
|
||||
if (MessageBox.Show(Language.UpdateDownloadComplete, Language.CheckForUpdates,
|
||||
if (MessageBox.Show(Language.UpdateDownloadComplete, Language.MenuItem_CheckForUpdates,
|
||||
MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
|
||||
{
|
||||
Shutdown.Quit(_appUpdate.CurrentUpdateInfo.UpdateFilePath);
|
||||
|
||||
@@ -57,3 +57,22 @@ Only the Name and Hostname/IP properties are left over,
|
||||
everything else will be inherited from the parent folder.
|
||||
Of course you can also only let some of the properties be inherited.
|
||||
Just play around with this a bit and you'll get the hang of it.
|
||||
|
||||
Color Property
|
||||
==============
|
||||
You can set a color for each connection or folder in the connections list.
|
||||
This makes things clearer when you have many connections.
|
||||
|
||||
To set a color:
|
||||
|
||||
1. Select a connection or folder in the connections tree
|
||||
2. In the properties panel, find the **Color** property under the Display category
|
||||
3. Click on the color value and select a color from the color picker
|
||||
|
||||
When you set a color on a folder, all connections under that folder can inherit the same color
|
||||
if their Color inheritance is enabled. This provides a visual way to group and identify
|
||||
related connections in the tree view.
|
||||
|
||||
.. note::
|
||||
The Color property can be inherited just like other properties. Enable inheritance
|
||||
in the inheritance view to have connections automatically use their parent folder's color.
|
||||
|
||||
@@ -87,6 +87,26 @@ Icon
|
||||
The icon indicates the visual identifier for the connection.
|
||||
Clicking the icon will let you set a different icon for the connection.
|
||||
|
||||
Tab Color
|
||||
---------
|
||||
|
||||
.. note::
|
||||
|
||||
The Tab Color property is available in the Display category of the connection properties.
|
||||
|
||||
You can set a custom color for connection tabs to help distinguish between different environments (e.g., Development, Testing, Production).
|
||||
This can be especially useful when working with critical systems like Live servers, where you want a clear visual reminder.
|
||||
|
||||
To set a tab color:
|
||||
|
||||
1. Select your connection in the Connections panel
|
||||
2. In the Config panel, expand the **Display** category
|
||||
3. Find the **Tab Color** property
|
||||
4. Enter a color name (e.g., "Red", "Green", "Blue") or a hex color code (e.g., "#FF0000", "#00FF00")
|
||||
5. Leave empty to use the default theme color
|
||||
|
||||
The tab color will be applied when you open the connection. You can use inheritance to set the same color for multiple connections in a folder.
|
||||
|
||||
Status
|
||||
------
|
||||
|
||||
|
||||
@@ -97,6 +97,36 @@ public class XmlRootNodeSerializerTests
|
||||
Assert.That(attributeValuePlainText, Is.EqualTo(expectedPlainText));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ProtectedStringSerializedWhenPasswordPropertySetDirectly()
|
||||
{
|
||||
// Simulate edge case where Password property is set to true directly
|
||||
// without setting PasswordString (leaving _customPassword empty)
|
||||
_rootNodeInfo.Password = true;
|
||||
var element = _rootNodeSerializer.SerializeRootNodeInfo(_rootNodeInfo, _cryptographyProvider, _version);
|
||||
var attributeValue = element.Attribute(XName.Get("Protected"))?.Value;
|
||||
// Should use default password and serialize as "ThisIsNotProtected"
|
||||
var attributeValuePlainText =
|
||||
_cryptographyProvider.Decrypt(attributeValue, _rootNodeInfo.PasswordString.ConvertToSecureString());
|
||||
Assert.That(attributeValuePlainText, Is.EqualTo("ThisIsNotProtected"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void FullFileEncryptionWorksWithPasswordPropertySetDirectly()
|
||||
{
|
||||
// Simulate edge case where Password property is set to true directly
|
||||
// This should not cause encryption to fail
|
||||
_rootNodeInfo.Password = true;
|
||||
var element = _rootNodeSerializer.SerializeRootNodeInfo(_rootNodeInfo, _cryptographyProvider, _version, fullFileEncryption: true);
|
||||
var fullFileEncryptionValue = element.Attribute(XName.Get("FullFileEncryption"))?.Value;
|
||||
Assert.That(bool.Parse(fullFileEncryptionValue), Is.True);
|
||||
// Verify Protected attribute can be decrypted successfully
|
||||
var protectedValue = element.Attribute(XName.Get("Protected"))?.Value;
|
||||
Assert.That(protectedValue, Is.Not.Null.And.Not.Empty);
|
||||
var decryptedProtected = _cryptographyProvider.Decrypt(protectedValue, _rootNodeInfo.PasswordString.ConvertToSecureString());
|
||||
Assert.That(decryptedProtected, Is.EqualTo("ThisIsNotProtected"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConfVersionSerialized()
|
||||
{
|
||||
|
||||
94
mRemoteNGTests/Connection/ColorPropertyAttributeTests.cs
Normal file
94
mRemoteNGTests/Connection/ColorPropertyAttributeTests.cs
Normal file
@@ -0,0 +1,94 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using mRemoteNG.Connection;
|
||||
using mRemoteNG.Tools;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace mRemoteNGTests.Connection
|
||||
{
|
||||
[TestFixture]
|
||||
public class ColorPropertyAttributeTests
|
||||
{
|
||||
[Test]
|
||||
public void ColorPropertyHasTabColorConverter()
|
||||
{
|
||||
// Get the Color property
|
||||
var propertyInfo = typeof(ConnectionInfo).GetProperty("Color");
|
||||
Assert.That(propertyInfo, Is.Not.Null, "Color property should exist");
|
||||
|
||||
// Get the TypeConverter attribute
|
||||
var typeConverterAttr = propertyInfo.GetCustomAttributes(typeof(TypeConverterAttribute), true)
|
||||
.FirstOrDefault() as TypeConverterAttribute;
|
||||
|
||||
Assert.That(typeConverterAttr, Is.Not.Null, "Color property should have TypeConverter attribute");
|
||||
Assert.That(typeConverterAttr.ConverterTypeName, Does.Contain("TabColorConverter"),
|
||||
"Color property should use TabColorConverter");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TabColorPropertyHasTabColorConverter()
|
||||
{
|
||||
// Get the TabColor property
|
||||
var propertyInfo = typeof(ConnectionInfo).GetProperty("TabColor");
|
||||
Assert.That(propertyInfo, Is.Not.Null, "TabColor property should exist");
|
||||
|
||||
// Get the TypeConverter attribute
|
||||
var typeConverterAttr = propertyInfo.GetCustomAttributes(typeof(TypeConverterAttribute), true)
|
||||
.FirstOrDefault() as TypeConverterAttribute;
|
||||
|
||||
Assert.That(typeConverterAttr, Is.Not.Null, "TabColor property should have TypeConverter attribute");
|
||||
Assert.That(typeConverterAttr.ConverterTypeName, Does.Contain("TabColorConverter"),
|
||||
"TabColor property should use TabColorConverter");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ColorPropertyHasCategoryAttribute()
|
||||
{
|
||||
var propertyInfo = typeof(ConnectionInfo).GetProperty("Color");
|
||||
Assert.That(propertyInfo, Is.Not.Null);
|
||||
|
||||
var categoryAttr = propertyInfo.GetCustomAttributes(typeof(CategoryAttribute), true)
|
||||
.FirstOrDefault() as CategoryAttribute;
|
||||
|
||||
Assert.That(categoryAttr, Is.Not.Null, "Color property should have Category attribute");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TabColorPropertyHasCategoryAttribute()
|
||||
{
|
||||
var propertyInfo = typeof(ConnectionInfo).GetProperty("TabColor");
|
||||
Assert.That(propertyInfo, Is.Not.Null);
|
||||
|
||||
var categoryAttr = propertyInfo.GetCustomAttributes(typeof(CategoryAttribute), true)
|
||||
.FirstOrDefault() as CategoryAttribute;
|
||||
|
||||
Assert.That(categoryAttr, Is.Not.Null, "TabColor property should have Category attribute");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ColorInheritancePropertyHasCategoryAttribute()
|
||||
{
|
||||
var propertyInfo = typeof(ConnectionInfoInheritance).GetProperty("Color");
|
||||
Assert.That(propertyInfo, Is.Not.Null);
|
||||
|
||||
var categoryAttr = propertyInfo.GetCustomAttributes(typeof(CategoryAttribute), true)
|
||||
.FirstOrDefault() as CategoryAttribute;
|
||||
|
||||
Assert.That(categoryAttr, Is.Not.Null, "Color inheritance property should have Category attribute");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TabColorInheritancePropertyHasCategoryAttribute()
|
||||
{
|
||||
var propertyInfo = typeof(ConnectionInfoInheritance).GetProperty("TabColor");
|
||||
Assert.That(propertyInfo, Is.Not.Null);
|
||||
|
||||
var categoryAttr = propertyInfo.GetCustomAttributes(typeof(CategoryAttribute), true)
|
||||
.FirstOrDefault() as CategoryAttribute;
|
||||
|
||||
Assert.That(categoryAttr, Is.Not.Null, "TabColor inheritance property should have Category attribute");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -115,6 +115,7 @@ namespace mRemoteNGTests.Connection
|
||||
[TestCase(ProtocolType.SSH2, ExpectedResult = 22)]
|
||||
[TestCase(ProtocolType.Telnet, ExpectedResult = 23)]
|
||||
[TestCase(ProtocolType.VNC, ExpectedResult = 5900)]
|
||||
[TestCase(ProtocolType.ARD, ExpectedResult = 5900)]
|
||||
public int GetDefaultPortReturnsCorrectPortForProtocol(ProtocolType protocolType)
|
||||
{
|
||||
_connectionInfo.Protocol = protocolType;
|
||||
|
||||
@@ -68,5 +68,29 @@ namespace mRemoteNGTests.IntegrationTests
|
||||
folder3.AddChild(connection);
|
||||
Assert.That(connection.Icon, Is.EqualTo(folder1.Icon));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConnectionInheritsColorFromFolder()
|
||||
{
|
||||
var folder = new ContainerInfo { Color = "Red" };
|
||||
var connection = new ConnectionInfo { Inheritance = { Color = true } };
|
||||
_rootNode.AddChild(folder);
|
||||
folder.AddChild(connection);
|
||||
Assert.That(connection.Color, Is.EqualTo(folder.Color));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void CanInheritColorThroughMultipleFolderLevels()
|
||||
{
|
||||
var folder1 = new ContainerInfo { Color = "Blue" };
|
||||
var folder2 = new ContainerInfo { Inheritance = { Color = true } };
|
||||
var folder3 = new ContainerInfo { Inheritance = { Color = true } };
|
||||
var connection = new ConnectionInfo { Inheritance = { Color = true } };
|
||||
_rootNode.AddChild(folder1);
|
||||
folder1.AddChild(folder2);
|
||||
folder2.AddChild(folder3);
|
||||
folder3.AddChild(connection);
|
||||
Assert.That(connection.Color, Is.EqualTo(folder1.Color));
|
||||
}
|
||||
}
|
||||
}
|
||||
115
mRemoteNGTests/Tools/ExternalToolTests.cs
Normal file
115
mRemoteNGTests/Tools/ExternalToolTests.cs
Normal file
@@ -0,0 +1,115 @@
|
||||
using System.Diagnostics;
|
||||
using System.Reflection;
|
||||
using mRemoteNG.Connection;
|
||||
using mRemoteNG.Tools;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace mRemoteNGTests.Tools
|
||||
{
|
||||
[TestFixture]
|
||||
public class ExternalToolTests
|
||||
{
|
||||
[Test]
|
||||
public void PasswordWithEqualsSignIsPassedCorrectly()
|
||||
{
|
||||
// Arrange
|
||||
var connectionInfo = new ConnectionInfo
|
||||
{
|
||||
Password = "Z-3=Wv99/Aq",
|
||||
Hostname = "testhost",
|
||||
Username = "testuser"
|
||||
};
|
||||
|
||||
var externalTool = new ExternalTool
|
||||
{
|
||||
DisplayName = "Test Tool",
|
||||
FileName = "test.exe",
|
||||
Arguments = "-u %USERNAME% -p %PASSWORD% -h %HOSTNAME%"
|
||||
};
|
||||
|
||||
// Act
|
||||
var process = new Process();
|
||||
var setProcessPropertiesMethod = typeof(ExternalTool).GetMethod(
|
||||
"SetProcessProperties",
|
||||
BindingFlags.NonPublic | BindingFlags.Instance
|
||||
);
|
||||
setProcessPropertiesMethod?.Invoke(externalTool, new object[] { process, connectionInfo });
|
||||
|
||||
// Assert
|
||||
// The arguments should contain the password with the equals sign
|
||||
// It may be escaped (e.g., Z-3^=Wv99/Aq), but should not be split
|
||||
Assert.That(process.StartInfo.Arguments, Does.Contain("Z-3"));
|
||||
Assert.That(process.StartInfo.Arguments, Does.Contain("Wv99/Aq"));
|
||||
// The equals sign should be present (possibly escaped as ^=)
|
||||
Assert.That(process.StartInfo.Arguments, Does.Match("Z-3.=Wv99/Aq"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void PasswordWithSpecialCharactersIsPassedCorrectly()
|
||||
{
|
||||
// Arrange
|
||||
var connectionInfo = new ConnectionInfo
|
||||
{
|
||||
Password = "P@ss=W0rd!",
|
||||
Hostname = "testhost",
|
||||
Username = "testuser"
|
||||
};
|
||||
|
||||
var externalTool = new ExternalTool
|
||||
{
|
||||
DisplayName = "Test Tool",
|
||||
FileName = "test.exe",
|
||||
Arguments = "-p %PASSWORD%"
|
||||
};
|
||||
|
||||
// Act
|
||||
var process = new Process();
|
||||
var setProcessPropertiesMethod = typeof(ExternalTool).GetMethod(
|
||||
"SetProcessProperties",
|
||||
BindingFlags.NonPublic | BindingFlags.Instance
|
||||
);
|
||||
setProcessPropertiesMethod?.Invoke(externalTool, new object[] { process, connectionInfo });
|
||||
|
||||
// Assert
|
||||
// The password should be present in the arguments (possibly escaped)
|
||||
Assert.That(process.StartInfo.Arguments, Does.Contain("P@ss"));
|
||||
Assert.That(process.StartInfo.Arguments, Does.Contain("W0rd"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void MultipleArgumentsAreParsedCorrectly()
|
||||
{
|
||||
// Arrange
|
||||
var connectionInfo = new ConnectionInfo
|
||||
{
|
||||
Password = "TestPass=123",
|
||||
Hostname = "myhost.com",
|
||||
Username = "admin",
|
||||
Port = 8080
|
||||
};
|
||||
|
||||
var externalTool = new ExternalTool
|
||||
{
|
||||
DisplayName = "Test Tool",
|
||||
FileName = "app.exe",
|
||||
Arguments = "--host %HOSTNAME% --port %PORT% --user %USERNAME% --pass %PASSWORD%"
|
||||
};
|
||||
|
||||
// Act
|
||||
var process = new Process();
|
||||
var setProcessPropertiesMethod = typeof(ExternalTool).GetMethod(
|
||||
"SetProcessProperties",
|
||||
BindingFlags.NonPublic | BindingFlags.Instance
|
||||
);
|
||||
setProcessPropertiesMethod?.Invoke(externalTool, new object[] { process, connectionInfo });
|
||||
|
||||
// Assert
|
||||
var arguments = process.StartInfo.Arguments;
|
||||
Assert.That(arguments, Does.Contain("myhost.com"));
|
||||
Assert.That(arguments, Does.Contain("8080"));
|
||||
Assert.That(arguments, Does.Contain("admin"));
|
||||
Assert.That(arguments, Does.Contain("TestPass"));
|
||||
Assert.That(arguments, Does.Contain("123"));
|
||||
}
|
||||
}
|
||||
}
|
||||
166
mRemoteNGTests/Tools/TabColorConverterTests.cs
Normal file
166
mRemoteNGTests/Tools/TabColorConverterTests.cs
Normal file
@@ -0,0 +1,166 @@
|
||||
using System.Drawing;
|
||||
using mRemoteNG.Tools;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace mRemoteNGTests.Tools
|
||||
{
|
||||
public class TabColorConverterTests
|
||||
{
|
||||
private MiscTools.TabColorConverter _converter;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_converter = new MiscTools.TabColorConverter();
|
||||
}
|
||||
|
||||
[TestCase(typeof(string), true)]
|
||||
[TestCase(typeof(Color), true)]
|
||||
public void CanConvertFrom(Type typeToConvertFrom, bool expectedOutcome)
|
||||
{
|
||||
var actualOutcome = _converter.CanConvertFrom(typeToConvertFrom);
|
||||
Assert.That(actualOutcome, Is.EqualTo(expectedOutcome));
|
||||
}
|
||||
|
||||
[TestCase(typeof(string), true)]
|
||||
[TestCase(typeof(Color), true)]
|
||||
public void CanConvertTo(Type typeToConvertTo, bool expectedOutcome)
|
||||
{
|
||||
var actualOutcome = _converter.CanConvertTo(typeToConvertTo);
|
||||
Assert.That(actualOutcome, Is.EqualTo(expectedOutcome));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertFromColorToStringNamedColor()
|
||||
{
|
||||
var color = Color.Red;
|
||||
var result = _converter.ConvertFrom(color);
|
||||
Assert.That(result, Is.EqualTo("Red"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertFromColorToStringCustomColor()
|
||||
{
|
||||
var color = Color.FromArgb(255, 128, 64, 32);
|
||||
var result = _converter.ConvertFrom(color);
|
||||
Assert.That(result, Is.EqualTo("#80401F"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertFromColorToStringCustomColorWithAlpha()
|
||||
{
|
||||
var color = Color.FromArgb(128, 255, 0, 0);
|
||||
var result = _converter.ConvertFrom(color);
|
||||
Assert.That(result, Is.EqualTo("#80FF0000"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertFromStringReturnsString()
|
||||
{
|
||||
var colorString = "Blue";
|
||||
var result = _converter.ConvertFrom(colorString);
|
||||
Assert.That(result, Is.EqualTo("Blue"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertFromHexStringReturnsString()
|
||||
{
|
||||
var colorString = "#FF0000";
|
||||
var result = _converter.ConvertFrom(colorString);
|
||||
Assert.That(result, Is.EqualTo("#FF0000"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertFromNullReturnsEmptyString()
|
||||
{
|
||||
var result = _converter.ConvertFrom(null);
|
||||
Assert.That(result, Is.EqualTo(string.Empty));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertFromEmptyStringReturnsEmptyString()
|
||||
{
|
||||
var result = _converter.ConvertFrom("");
|
||||
Assert.That(result, Is.EqualTo(string.Empty));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertToStringFromString()
|
||||
{
|
||||
var colorString = "Green";
|
||||
var result = _converter.ConvertTo(colorString, typeof(string));
|
||||
Assert.That(result, Is.EqualTo("Green"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertToColorFromNamedString()
|
||||
{
|
||||
var colorString = "Red";
|
||||
var result = _converter.ConvertTo(colorString, typeof(Color));
|
||||
Assert.That(result, Is.EqualTo(Color.Red));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertToColorFromHexString()
|
||||
{
|
||||
var colorString = "#FF0000";
|
||||
var result = _converter.ConvertTo(colorString, typeof(Color));
|
||||
var expectedColor = Color.FromArgb(255, 255, 0, 0);
|
||||
Assert.That(result, Is.EqualTo(expectedColor));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertToColorFromEmptyStringReturnsEmpty()
|
||||
{
|
||||
var result = _converter.ConvertTo("", typeof(Color));
|
||||
Assert.That(result, Is.EqualTo(Color.Empty));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertToColorFromNullReturnsEmpty()
|
||||
{
|
||||
var result = _converter.ConvertTo(null, typeof(Color));
|
||||
Assert.That(result, Is.EqualTo(Color.Empty));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetStandardValuesSupportedReturnsTrue()
|
||||
{
|
||||
var result = _converter.GetStandardValuesSupported(null);
|
||||
Assert.That(result, Is.True);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetStandardValuesReturnsColorList()
|
||||
{
|
||||
var result = _converter.GetStandardValues(null);
|
||||
Assert.That(result, Is.Not.Null);
|
||||
Assert.That(result.Count, Is.GreaterThan(0));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void GetStandardValuesExclusiveReturnsFalse()
|
||||
{
|
||||
var result = _converter.GetStandardValuesExclusive(null);
|
||||
Assert.That(result, Is.False);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertFromColorObjectDoesNotThrowException()
|
||||
{
|
||||
// This test verifies the fix for the "Object of type 'System.Drawing.Color' cannot be converted to type 'System.String'" error
|
||||
var color = Color.FromArgb(255, 100, 150, 200);
|
||||
Assert.DoesNotThrow(() => _converter.ConvertFrom(color));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ColorPropertyUsesTabColorConverter()
|
||||
{
|
||||
// This test verifies that the Color property can properly handle Color objects
|
||||
// by using TabColorConverter instead of System.Drawing.ColorConverter
|
||||
var color = Color.Blue;
|
||||
var result = _converter.ConvertFrom(color);
|
||||
Assert.That(result, Is.EqualTo("Blue"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -48,6 +48,14 @@ namespace mRemoteNGTests.Tree
|
||||
Assert.That(_rootNodeInfo.PasswordString, Is.EqualTo(password));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void PasswordStringReturnsDefaultWhenPasswordPropertySetWithoutPasswordString()
|
||||
{
|
||||
// Edge case: Password property set to true directly without setting PasswordString
|
||||
_rootNodeInfo.Password = true;
|
||||
Assert.That(_rootNodeInfo.PasswordString, Is.EqualTo(_rootNodeInfo.DefaultPassword));
|
||||
}
|
||||
|
||||
[TestCase(RootNodeType.Connection, TreeNodeType.Root)]
|
||||
[TestCase(RootNodeType.PuttySessions, TreeNodeType.PuttyRoot)]
|
||||
public void RootNodeHasCorrectTreeNodeType(RootNodeType rootNodeType, TreeNodeType expectedTreeNodeType)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using mRemoteNGTests.TestHelpers;
|
||||
using System.Linq;
|
||||
|
||||
namespace mRemoteNGTests.UI.Forms
|
||||
{
|
||||
@@ -33,5 +34,37 @@ namespace mRemoteNGTests.UI.Forms
|
||||
ListViewTester listViewTester = new("lstOptionPages", _optionsForm);
|
||||
Assert.That(listViewTester.Items.Count, Is.EqualTo(12));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ChangingOptionMarksPageAsChanged()
|
||||
{
|
||||
// Wait for all pages to load
|
||||
System.Threading.Thread.Sleep(500);
|
||||
Application.DoEvents();
|
||||
|
||||
// Get the options panel
|
||||
var pnlMain = _optionsForm.FindControl<Panel>("pnlMain");
|
||||
Assert.That(pnlMain, Is.Not.Null);
|
||||
|
||||
if (pnlMain.Controls.Count > 0)
|
||||
{
|
||||
var optionsPage = pnlMain.Controls[0] as mRemoteNG.UI.Forms.OptionsPages.OptionsPage;
|
||||
Assert.That(optionsPage, Is.Not.Null);
|
||||
|
||||
// Find a checkbox in the options page
|
||||
var checkBoxes = optionsPage.Controls.Find("", true).OfType<CheckBox>().ToList();
|
||||
|
||||
if (checkBoxes.Count > 0)
|
||||
{
|
||||
var checkBox = checkBoxes[0];
|
||||
bool originalValue = checkBox.Checked;
|
||||
checkBox.Checked = !originalValue;
|
||||
Application.DoEvents();
|
||||
|
||||
// Verify the page is marked as changed
|
||||
Assert.That(optionsPage.HasChanges, Is.True);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -45,5 +45,15 @@ namespace mRemoteNGTests.UI.Forms
|
||||
cancelButton.PerformClick();
|
||||
Assert.That(eventFired, Is.True);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void PasswordFieldHasAutofocus()
|
||||
{
|
||||
// Find the password textbox control
|
||||
TextBox passwordTextBox = _passwordForm.FindControl<TextBox>("txtPassword");
|
||||
|
||||
// Verify that the password field has focus when the form is loaded
|
||||
Assert.That(passwordTextBox.Focused, Is.True, "Password field should have autofocus when form loads");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user