From d6aadef2b89a96ea399d3325e32d1ce34980dc19 Mon Sep 17 00:00:00 2001 From: Faryan Rezagholi Date: Fri, 3 May 2019 00:01:44 +0200 Subject: [PATCH 01/32] Update CONTRIBUTING.md fixed spelling --- .github/CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index dec8ed31..68626539 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -17,7 +17,7 @@ You'll find all information on our GitHub workflow in our [Wiki](https://github. - [Branches](https://github.com/mRemoteNG/mRemoteNG/wiki/Branches) - [Bug Repots](https://github.com/mRemoteNG/mRemoteNG/wiki/Bug-Reports) -- [Feauture Requests](https://github.com/mRemoteNG/mRemoteNG/wiki/Feature-Requests) +- [Feature Requests](https://github.com/mRemoteNG/mRemoteNG/wiki/Feature-Requests) - [Pull Requests](https://github.com/mRemoteNG/mRemoteNG/wiki/Pull-Requests) Want to help but don't know where to start? Check out the issues that we've labeled with [`Help Wanted`](https://github.com/mRemoteNG/mRemoteNG/issues?q=is%3Aissue+is%3Aopen+label%3A%22Help+Wanted%22) or [`ready`](https://github.com/mRemoteNG/mRemoteNG/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3A%22ready%22). These will vary in difficulty, but should be possible for new contributors. From 93b6fe7aab85cb92cb157c5884725c6e632ae759 Mon Sep 17 00:00:00 2001 From: Petter Johan Olsen Date: Sun, 5 May 2019 20:13:49 +0200 Subject: [PATCH 02/32] Updated Norwegian translation --- .../Resources/Language/Language.nb-NO.resx | 2114 +++++++++++------ 1 file changed, 1353 insertions(+), 761 deletions(-) diff --git a/mRemoteV1/Resources/Language/Language.nb-NO.resx b/mRemoteV1/Resources/Language/Language.nb-NO.resx index ee84bafe..c8c3d2ea 100644 --- a/mRemoteV1/Resources/Language/Language.nb-NO.resx +++ b/mRemoteV1/Resources/Language/Language.nb-NO.resx @@ -1,6 +1,6 @@  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Om - + Aktiv - + Aktivitet - - Ny tilkobling + + &Ny tilkobling - - Ny mappe + + Ny &mappe - + AddNodeFromXML mislyktes! - + AddNodesFromSQL mislyktes! - + Tillat bare én instans av programmet (omstart av mRemoteNG påkrevd) - + Alltid - + Alltid koble til, selv om autentisering feiler - + Alltid vis panelvalgdialog når tilkoblinger åpnes - + Alltid vis panelfaner - + Alltid vis ikon i notisfeltet - + Spør meg igjen senere - + Tilpass innstillingene nå - + Bruk de anbefalte innstillingene - + {0} kan automatisk se etter oppdateringer som kan tilby ny funksjonalitet og feilrettinger. Det er anbefalt at du lar {0} se etter oppdateringer ukentlig. - + Innstillinger for automatiske oppdateringer - + Aspekt - + Hent sesjonsinformasjon automatisk - + Lagre automatisk hvert: - + minutt (0 betyr deaktivert) - + Gjeldende versjon - + &Bla gjennom... - + &Avbryt - + Endre - + &Lukk - + Standard arv - + Standardegenskaper - + Koble fra - + Ikon - + &Importer - + Arv - + Start PuTTY - + &Ny - + &OK - + Egenskaper - + &Søk - + &Stopp - + Test proxy - + Du kan ikke importere en vanlig tilkoblingsfil. Vennligst bruk Fil - Last inn tilkoblinger for vanlige tilkoblingsfiler! - + Kan ikke starte portskanning, feil IP-format! - + Utseende - + Tilkobling - + Legitimasjon - + Skjerm - + Gateway - + Generelt - + Diverse - + Protokoll - + Omdiriger - + Alltid vis denne skjermen ved oppstart - + Oppdater - + Sjekk mislyktes! - + Sjekk lyktes! - - (RDP) økter-funksjonen krever at du har en registrert kopi av eolwtscom.dll på systemet. -mRemoteNG leveres med denne komponenten, men vil ikke automatisk registrere det med mindre du kjører installasjonsprogrammet. -For å registrere det manuelt gjør dette: Åpne Kjør-dialogboksen (Start - Kjør) og skriv inn følgende: regsvr32 "c:\Program Files\mRemoteNG\eolwtscom.dll" (der c:\Program Files\mRemoteNG\ er banen til din mRemoteNG-installasjon). -Hvis du fortsatt ikke passerer denne kontrollen eller bruke (RDP) økter-funksjonene i mRemoteNG kan du konsultere mRemoteNG-forumet på http://forum.mremoteng.org/ + + Funksjonaliteten RDP-sesjoner krever at du har en kopi av eolwtscom.dll registrert på ditt system. +mRemoteNG inneholder denne komponenten, men hvis du ikke har kjørt installasjonsprogrammet blir den ikke automatisk registrert. +For å registrere den manuelt, kjør den følgende kommandoen fra en elevert (administrator)-kommandolinje: regsvr32 "C:\Program Files\mRemoteNG\eolwtscom.dll" (hvor C:\Program Files\mRemoteNG\ er stien til mRemoteNG-installasjonen). +Hvis denne kontrollen fortsatt feiler eller RDP-sesjoner ikke fungerer, se {0}. - + EOLWTSCOM ble funnet, og synes å være korrekt registrert. - + For å bruke Gecko-renderingsmotoren må du ha XULrunner 1.8.1.x installert og stien til installasjonen angitt i Alternativer. Du kan laste ned XULrunner 1.8.1.3 herfra: ftp://ftp.mozilla.org/pub/xulrunner/releases/1.8.1.3/contrib/win32/ Når nedlastingen er ferdig, pakk den ut til et passende sted. I mRemoteNG, gå til Verktøy - Alternativer - Avansert og skriv inn korrekt sti i XULrunner-stifeltet. -Hvis du fremdeles ikke passerer denne kontrollen eller brukre Gecko-renderingsmotoren i mRemoteNG, vennligst konsulter mRemoteNG-forumet på http://forum.mremoteng.org/ +Hvis denne kontrollen fortsatt feiler eller Gecko-renderingsmotoren i mRemoteNG ikke fungerer, vennligst se {0}. - + GeckoFx ble funnet å ser ut til å være korrekt installert. - + ICA krever at XenDesktop Online Plugin er installert og at wfica.ocx-biblioteket er registrert. Du kan laste ned klienten herfra: http://www.citrix.com/download/ Hvis du har XenDesktop Online Pluginen installert og kontrollen fremdeles feiler, kan du forsøke å registrere wfica.ocx manuelt. For å gjøre dette, åpne Kjør-dialogboksen (Start - Kjør) og skriv inn følgende: regsvr32 "c:\Program Files\Citrix\ICA Client\wfica.ocx" (der c:\Program Files\Citrix\ICA Client\ er stien til XenDesktop Online Plugin-installasjonen). -Hvis du fremdeles ikke passerer kontrollen eller bruke ICA i mRemoteNG, vennligst konsulter mRemoteNG-forumet på http://forum.mremoteng.org/ +Hvis denne kontrollen fortsatt feiler eller ICA i mRemoteNG ikke fungerer, vennligst se {0}. - + Alle ICA-komponenter ble funnet, og ser ut til å være korrekt registrert. Citrix ICA Client Control Version {0} - + ikke korrekt installert - + SSH-, Telnet-, Rlogin- og RAW-protokollene trenger PuTTY for å fungere. PuTTY kommer med hver mRemoteNG-pakke, og ligger i installasjonsstien. Vennligst kontroller at du enten har putty.exe i mRemoteNG-mappen (standard: C:\Program Files\mRemoteNG\) eller at du har angitt en gyldig sti til putty.exe i Alternativer (Verktøy - Alternativer - Avansert - Egendefinert bane til PuTTY) - + PuTTY ble funnet og er klar til bruk. - + For at RDP skal fungere korrekt må du som et minimum ha Remote Desktop Connection (Terminal Services Client) 8.0 installert. Denne kan lastes ned herfra: https://support.microsoft.com/kb/2592687 Hvis du har RDP 8.0 installert og kontrollen fremdeles feiler, kan du prøve å registrere mstscax.dll manuelt. For å gjøre dette, åpne Kjør-dialogboksen (Start - Kjør) og skriv inn følgende: regsvr32 "c:\windows\system32\mstscax.dll" (der c:\ er systemdisken). -Hvis du fremdeles har problemer med å få RDP til å fungere, vennligst konsulter mRemoteNG-forumet på http://forum.mremoteng.org/ +Hvis du fremdeles har problemer med å få RDP til å fungere, vennligst se {0}. - + Alle RDP-komponenter ble funnet og ser ut til å være korrekt registrert. Remote Desktop Connection Control Version {0} - + VNC krever at VncSharp.dll finnes i mappen mRemoteNG er installert i. Vennligst kontroller at du har VncSharp.dll i installasjonsmappen til mRemoteNG (vanligvis C:\Program Files\mRemoteNG\). -Hvis du ikke passerer kontrollen eller ikke får brukt VNC i mRemoteNG, vennligst konsulter mRemoteNG-forumet på http://forum.mremoteng.org/ +Hvis kontrollen feiler eller VNC ikke fungerer i mRemoteNG, vennligst se {0}. - + Alle VNC-komponenter ble funnet og ser ut til å være korrekt registrert. VncSharp Control Version {0} - + Forsøk å automatisk koble til på nytt ved frakobling fra server (kun RDP && ICA) - + Domene - + Ikke vis denne meldingen igjen. - + Arv - + Passord - + Denne proxyserveren krever autentisering - + Bruk egendefinert sti til PuTTY: - + Koble til på nytt når klar - + Bruk proxyserver for tilkobling - + Brukernavn - + Vent på avslutning - + Sjekk igjen - + Se etter oppdateringer og kunngjøringer ved oppstart - + Sjekk nå - + Sjekk for korrekt installasjon av komponenter ved oppstart - + Velg panel før tilkobling - + Lukkede porter - + Slå sammen alle mapper - + Argumenter - + Visningsnavn - + Filnavn - + Vertsnavn/IP-adresse - + Melding - + Brukernavn - + Vent på avslutning - + Kunne ikke tolke kommandolinjeargumenter! - + {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. - + Kompatibilitetsproblem oppdaget - + Komponentkontroll - + btnIcon_Click mislyktes! - + ShowHideGridItems mislyktes! - + IconMenu_Click mislyktes! - + Property Grid-objekt mislyktes! - + SetHostStatus mislyktes! - + pGrid_PopertyValueChanged mislyktes! - + Innlasting av Konfigurasjonsgrensesnitt mislyktes! - + Ønsker du å avslutte tilkoblingen: "{0}"? - + Er du sikker på at du ønsker å lukke panelet "{0}"? Alle tilkoblinger den inneholder vil også bli lukket. - + Er du sikker på at du ønsker å slette det eksterne verktøyet "{0}"? - + Er du sikker på at du ønsker å slette de {0} valgte eksterne verktøyene? - + Er du sikker på at du ønsker å slette tilkoblingen "{0}"? - + Er du sikker på at du ønsker å slette den tomme mappen "{0}"? - + Er du sikker på at du ønsker å slette mappen "{0}"? Alle undermapper eller tilkoblinger den inneholder vil også bli slettet. - + Ønsker du å avslutte alle åpne tilkoblinger? - + Er du sikker på at du ønsker å tilbakestille alle paneler til standardoppsett? - + Koble til - + Koble til i fullskjermmodus - + Kobler til... - + Protokollhendelse tilkoblet - + Tilkobling til "{0}" via "{1}" etablert av bruker "{2}" (Beskrivelse: "{3}"; Brukerfelt "{4}") - + Tilkobling mislyktes! - - Protokollhendelse ErrorOccured + + Feil i tilkoblingsprotokoll har oppstått. Vertt: "{1}"; Feilkode: "{2}"; Feilbeskrivelse: "{0}" - + Åpning av tilkobling mislyktes! - + Kan ikke åpne forbindelse: Vertsnavn ikke angitt! - + RDP-feil! Feilkode: {0} Feilbeskrivelse: {1} - + Tilkoblinger - + Kunne ikke angi standardport! - + Kunne ikke opprette sikkerhetskopi av tilkoblingsfilen! - + Kunne ikke importere tilkoblingsfilen! - + Tilkoblingsfilen "{0}" kunne ikke lastes inn! - + Tilkoblingsfilen "{0}" kunne ikke lastes inn! Starter med ny tilkoblingsfil. - + Kunne ikke lagre tilkoblingsfilen! - + Kunne ikke lagre tilkoblingsfilen som "{0}"! - + Koble til konsolløkt - + Koble til (med alternativer) - + Tilkobling til {0} via {1} ble avsluttet av bruker {2}. - + Tilkobling til {0} via {1} avsluttet av bruker {2}. (Beskrivelse: "{3}"; Brukerfelt: "{4}") - + Tilkoblingshendelse avsluttet - + Tilkoblingshendelse avsluttet feilet! - + Kunne ikke opprette ny tilkoblingsfil! - + Fant ikke ToolStrip-kontroll i FilteredPropertyGrid. - + Installert versjon - + Standardtema - + Oppdag - + Ikke koble til dersom godkjenning mislykkes - + Dobbeltklikk på fanen lukker den - + Last ned og installer - + Duplikat - + Ønsker du å fortsette uten passord? - + For tomt brukernavn, passord eller domenefelt, bruk: - + 128-biters - + 128-biters (kun pålogging) - + Grunnleggende - + Krypter tilkoblingsfil fullstendig - + Siste IP - + Siste port - + AddExternalToolsToToolBar (frmMain) mislyktes. {0} - + AddFolder (UI.Window.Tree) mislyktes. {0} - + Databaseversjonen {0} er ikke kompatibel med denne versjonen av {1}. - + CloneNode (Tree.Node) mislyktes. {0} - + Feilkode {0}. - + Tilkoblingslisten kan ikke lagres. - + Dekryptering mislyktes. {0} - + Kryptering mislyktes. {0} - + Feil - + Kan ikke laste inn oppstartstilkoblingsfilen.{0}{0}{2}{0}{3}{0}{0}For å hindre tap av data, avsluttes {1} nå. - + VerifyDatabaseVersion (Config.Connections.Save) mislyktes. {0} - + Utvid alle mapper - + Eksperimentell - + Eksporter - + Eksporter mRemote/mRemoteNG XML - + Ekstern applikasjon - + Inkluderer ikoner av [FAMFAMFAM] - + Alle filer (*.*) - + Programfiler (*.exe) - + mRemote CSV-filer (*.csv) - + mRemote XML-filer (*.xml) - + RDP-filer (*.rdp) - + visionapp Remote Desktop 2008 CSV-filer (*.csv) - + Arve {0} - + Beskrivelse av arvet egenskap: {0} - + Fri - + Fullskjerm - + Generelt - + Henting av tilkoblingsinformasjon fra SQL mislyktes - + Det oppstod en feil under innlasting av tilkoblingsoppføring for "{0}" fra "{1}". {2} - + Koble til på nytt automatisk - + Tilkobling - + Egenskaper for eksterne verktøy - + Filer - + Vert - + HTTP-tilkobling mislyktes! - + Kunne ikke opprette ny HTTP-tilkobling! - + Endring av HTTP-dokumentflate mislyktes! - + Angi HTTP-egenskaper mislyktes! - + Kunne ikke opprette ny ICA-tilkobling! - + Innlasting av ICA Plugin mislyktes! - + ICA SetCredentials mislyktes! - + ICA Set Event Handlers mislyktes! - + ICA Set Props mislyktes! - + ICA Set Resolution mislyktes! - + Identifisere hurtigkoblingsfaner ved prefikset "Hurtig:" - + Importer fra Active Directory - + Import/eksport - + Importere mRemote/mRemoteNG XML - + Import fra Port Scan - + Importer fra .RDP-fil(er) - + Inaktiv - + Informasjon - + mRemoteNG er oppdatert - + Tilkobling mislyktes! - + Forkasting av Int App-prosess mislyktes! - + Int App-fokus mislyktes! - + Int App Handle: {0} - + Tvungen avslutning av Int App-prosess mislyktes! - + Panel Handle: {0} - + Int App Resize mislyktes! - + --- IntApp-ting --- - + Int App-tittel: {0} - + CTRL-ALT-DEL - + CTRL-ESC - + Adresse: - + Argumenter: - + Endringslogg: - + Ved lukking av tilkoblinger: - + &Koble til: - + Visningsnavn - + Domene: - + Filnavn: - + Vertsnavn: - + Alternativer: - + Passord: - + Port: - + Portable Edition - + Protokoll: - + Klikk denne knappen for å konfigurere PuTTY-sesjoner: - + Maksimal ventetid for PuTTY og integrerte verktøy: - + Utgitt under GNU General Public License (GPL) - + sekunder - + Velg et panel fra listen under eller klikk Ny for å legge til en ny. Klikk OK for å fortsette. - + Serverstatus: - + Database: - + Database: - + Brukernavn: - + Bekreft: - + Språk - + (Oppdag automatisk) - + {0} må startes på nytt for at endringer i språkinnstillinger skal tre i kraft. - + Innlasting fra SQL mislyktes! - + Innlasting fra XML mislyktes! - + Lokal fil - + Lokal fil eksisterer ikke! - + Logg av - + Skriving til rapportfil mislyktes! - + Kunne ikke lagre rapport til endelig plassering. - + Bruker Magic-biblioteket av [Crownwood Software] - + Om - + Legg til tilkoblingspanel - + Se etter oppdateringer - + Oppsett - + Koble til - + Tilkoblingspaneler - + Tilkoblinger - + Tilkoblinger og oppsett - + Kopier - + Ctrl-Alt-Del - + Ctrl-Esc - + Slett... - + Slett tilkobling... - + Slett eksternt verktøy... - + Slett mappe... - + Koble fra - + Donér - + Duplikat - + Duplisér tilkobling - + Kopier mappe - + Kopier fane - - Avslutt + + A&vslutt - + Eksterne verktøy - + Eksterne verktøy-verktøylinje - + &Fil - + Fullskjerm - + Fullskjerm (RDP) - + &Hjelp - + mRemoteNG-hjelp - + Hopp til - + Kjør eksternt verktøy - - Ny tilkoblingsfil + + Ny tilkoblings&fil - + Nytt eksternt verktøy - + Varslinger - + Kopier alle - + Slett - + Slett alle - + Åpne tilkoblingsfil... - + Alternativer - + Lim inn - + Portskanning - + Hurtigtilkoblingsverktøylinje - + Koble til på nytt - + Oppdater skjerm (VNC) - + Gi nytt navn - + Gi nytt navn til tilkobling - - Gi nytt navn til mappe + + &Gi nytt navn til mappe - + Gi nytt navn til fane - + Rapporter en feil - + Tilbakestill oppsett - + Lagre tilkoblingsfil - - Lagre tilkoblingsfilen som... + + Lagre tilkoblingsfilen &som... - + Skjermbilde - + Skjermbildeadminstrator - + Send spesialtastekombinasjoner (VNC) - + Sesjoner - + Sesjoner og skjermbilder - + &Vis hjelpetekst - + Vis tekst - + SmartSize (RDP/VNC) - + SSH-filoverføring - + Start chat (VNC) - + Forum for brukerstøtte - - &Verktøy + + V&erktøy - + Overfør fil (SSH) - + &Vis - + Kun visning (VNC) - + Nettsted - + Minimer til notisområde - + Flytt ned - + Flytt opp - + Min gjeldende legitimasjon (Windows-påloggingsinformasjon) - + Aldri - - Ny tilkobling + + &Ny tilkobling - - Ny mappe + + Ny &mappe - + Nytt panel - + Nytt rotnivå - + Ny tittel - + Nei - + Ingen komprimering - + Ingen ekstern applikasjon spesifisert. - + Ingen - + Ingen - + Normal - + Ingen SmartSize - + Ingen oppdateringer tilgjengelig - + Du prøver å laste inn en tilkoblingsfil opprettet i en veldig tidlig versjon av mRemote. Dette kan føre til kjørefeil. Hvis du støter på en slik feil, vennligst opprett en ny tilkoblingsfil! - + Åpne ny fane til høyre for aktiv fane - + Åpne porter - + Tema - + &Slett - + &Ny - + Panelnavn - + Passordbeskyttelse - + Vennligst fyll inn alle felt - - Kunne ikke laste inn PortScan-panelet! + + Kunne ikke laste inn portskanningpanelet! - + (Disse egenskapene vil bare lagres dersom du velger mRemote/mRemoteNG XML som format for målfilen!) - + Angi vertsnavnet eller IP-adressen du ønsker å koble til. - + Veksle alle alternativer for arv. - + Velg hvilket autentiseringsnivå denne tilkoblingen skal bruke. - + Velg hvordan du ønsker å autentisere deg mot VNC-serveren. - + Velg om du vil bruke hurtigbufring av punktgrafikk eller ikke. - + Velg hvilken fargekvalitet som skal brukes. - + Velg kompresjonsverdien som skal brukes. - + Skriv inn notater eller en beskrivelse for verten her. - + Velg ja hvis den eksterne vertens tema skal vises. - + Velg ja hvis den eksterne vertens bakgrunnsbilde skal vises. - + Skriv inn domenenavn. - + Velg om du vil bruke skrivebordskomposisjon eller ikke. - + Velg om du vil bruke skriftutjevning eller ikke. - + Velg hvilken tekstkodingsmodus som skal brukes. - + Velg krypteringsstyrke for den eksterne verten. - + Velg det eksterne verktøyet som skal startes. - + Velg et eksternt verktøy som skal startes etter frakobling fra den eksterne verten. - + Velg et eksternt verktøy som skal startes før tilkoblingen til den eksterne verten er opprettet. - + Velg et ikon som skal vises når man er tilkoblet verten. - + Angi MAC-adressen til den eksterne verten dersom du ønsker å bruke denne i et eksternt verktøy. - + Dette er navnet som vises i tilkoblingstreet. - + Angir panelet tilkoblingen vil åpnes i. - + Skriv inn ditt passord. - + Angi porten den valgte protokollen lytter på. - + Velg protokollen mRemoteNG skal bruke for å koble til verten. - + Velg en PuTTY-sesjon som skal brukes ved tilkobling. - + Angir navnet på domenet som brukeren oppgir for å koble til RD Gateway-serveren. - + Angir vertsnavnet til Remote Desktop Gateway-serveren. - + Angir når en server for eksternt skrivebord (ES-Gateway) skal brukes. - + Angir om pålogging til gatewayen skal skje med det samme brukernavnet og passordet som tilkoblingen eller ikke. - + Angir brukernavnet som brukeren oppgir for å koble til RD Gateway-serveren. - + Velg om lokale diskstasjoner skal vises på den eksterne verten. - + Velg om tastekombinasjoner (f.eks. Alt-Tab) skal omadresseres til den eksterne verten. - + Velg om lokale porter (dvs. com, parallell) skal vises på den eksterne verten. - + Velg om lokale skrivere skal vises på den eksterne verten. - - Velg om lokale smart-kort skal være tilgjengelig på den eksterne verten. + + Velg om lokale smartkort skal være tilgjengelig på den eksterne verten. - + Velg hvordan ekstern lyd skal omadresseres. - + Velg en av de tilgjengelige renderingsmotorene som skal brukes til å vise HTML. - + Velg oppløsning eller modus denne tilkoblingen skal åpnes i. - + Velg SmartSize-modus som skal brukes. - + Koble til konsolløkten på den eksterne verten. - + Bruk Credential Security Support Provider (CredSSP) for godkjenning hvis den er tilgjengelig. - + Skriv inn informasjon du trenger her. - + Skriv inn ditt brukernavn. - + Velg Ja hvis du vil opprette en kun-visning-tilkobling til verten. - + Angi proxy-adressen som skal brukes. - + Skriv inn passordet for autentisering mot proxy. - + Angi porten proxy-serveren lytter på. - + Hvis du bruker en proxy til å tunnelere VNC-tilkoblinger, velg hvilken type proxy det er. - + Skriv inn ditt brukernavn for godkjenning mot proxy. - + Vertsnavn/IP-adresse - + Alle - + Server-godkjenning - + Godkjenningsmodus - + Hurtigbufring av punktgrafikk - + Farger - + Komprimering - + Beskrivelse - + Visningstemaer - + Vis bakgrunnbilde - + Domene - + Skrivebordskomposisjon - + Skriftutjevning - + Tekstkoding - + Krypteringsnivå - + Eksternt verktøy - + Eksternt verktøy etter - + Eksternt verktøy før - + Ikon - + MAC-adresse - + Navn - + Panel - + Passord - + Port - + Protokoll - + PuTTY-sesjon - + Gateway-domene - + Gateway-vertsnavn - + Gateway for eksternt skrivebord-passord - + Bruk gateway - + Legitimasjon for gateway - + Gateway-brukernavn - + Diskstasjoner - + Tastekombinasjoner - + Porter - + Skrivere - + Smartkort - + Lyder - + Renderingsmotor - + Oppløsning - + SmartSize-modus - + Bruk konsolløkt - + Bruk CredSSP - + Brukerfelt - + Brukernavn - + Kun visning - + Proxy-adresse - + Proxy-passord - + Proxy-port - + Proxy-type - + Proxy-brukernavn - - Protokollhendelse frakoblet. -Melding: -{0} + + Protokollhendelse Frakoblet. Vert: "{1}"; Protokoll: "{2}" Beskjed: "{0}" - + Protokollhendelse Frakoblet mislyktes. {0} - + Protokoll å importere - + Proxy-test mislyktes! - + Proxy-test var vellykket! - + Tilkobling mislyktes! - + Avslutning av PuTTY-prosessen mislyktes! - + Kunne ikke sette fokus! - + Henting av PuTTY-sesjoner mislyktes! - + Putty Handle: {0} - + Avslutning av PuTTY-prosess mislyktes! - + Panel Handle: {0} - + Endring av størrelse på PuTTY-vindu mislyktes! - + PuTTY lagrede sesjoner - + PuTTY-innstillinger - + Vis dialog for PuTTY-innstillinger mislyktes! - + Start av PuTTY mislyktes! - + --- PuTTY-ting --- - + PuTTY-tittel: {0} - + Hurtig: {0} - + Hurtigtilkobling - + Kunne ikke legge til hurtigtilkobling! - + Oppretting av hurtigtilkobling mislyktes - + &Advar meg når tilkoblinger lukkes - + Advar meg bare ved a&vslutning av mRemoteNG - + Advar meg bare ved lukking av &mange tilkoblinger samtidig - + &Ikke advar meg når tilkoblinger lukkes - + RAW - + RDP - + 16777216 farger (24-biters) - + 256 farger (8-biters) - + 32768 farger (15-biters) - + 16777216 farger (32-biters) - + 65536 farger (16-biters) - + RDP Legg til oppløsning mislyktes! - + RDP Legg til oppløsninger mislyktes! - + Legg til sesjon mislyktes - + Lukk RDP-tilkobling mislyktes! - + Kunne ikke opprette RDP-kontroll, vennligst kontroller mRemoteNGs systemkrav. - + Deaktiver blinkende markør - + Deaktiver markørskygge - + Deaktiver fullvindudragning - + Deaktiver menyanimasjoner - + Deaktiver temaer - + Deaktiver bakgrunnsbilde - + RDP frakoblet! - + RDP-frakobling mislyktes, forsøker å lukke! - + Intern feilkode 1. - + Intern feilkode 2. - + Intern feilkode 3. Dette er ikke en gyldig tilstand. - + Intern feilkode 4. - + Det oppstod en uopprettelig feil under klienttilkoblingen. - + GetError mislyktes (FatalErrors) - + Det oppstod en ukjent, uopprettelig RDP-feil. Feilkode {0}. - + Det oppstod en ut-av-minne-feil. - + En ukjent feil har oppstått. - + En vindusopprettingsfeil har oppstått. - + Feil ved initialisering av Winsock. - + Kunne ikke importere RDP-fil! - + Tilpass til panel - + RDP-fokus mislyktes! - + RD Gateway støttes. - + RD Gateway støttes ikke! - + GetSessions mislyktes! - + Antall RDP gjentilkoblingsforsøk: - + RDP SetAuthenticationLevel mislyktes! - + RDP SetUseConsoleSession mislyktes! - + Angir konsollvalg for RDC {0}. - + RDP SetCredentials mislyktes! - + RDP SetEventHandlers mislyktes! - + RDP SetRDGateway mislyktes! - + RDP SetPerformanceFlags mislyktes! - + RDP SetPort mislyktes! - + RDP SetProps mislyktes! - + RDP Set Redirection mislyktes! - + RDP Set Redirect Keys mislyktes! - + RDP SetResolution mislyktes! - + SmartSize - + Hent til denne datamaskinen - + Ikke spill av - + La være på ekstern datamaskin - + RDP ToggleFullscreen mislyktes! - + RDP ToggleSmartSize mislyktes! - + Koble til tidligere åpnede økter ved oppstart - + Oppdater - + Ekstern fil - + Fjern alle - + Omdøp - + Rlogin - + Lagre - + Lagre alle - + Vil du lagre den gjeldende tilkoblingsfilen før du laster inn en annen? - + Lagre tilkoblinger ved avslutning - + 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 - + Skjerm - + Skjermbilde - + Skjermbilder - + Søk - + Send til... - + Get Sessions Background mislyktes - + Avslutning av Session Background mislyktes - + Angi vertsnavnet som visningsnavn når du oppretter eller gir nytt navn til tilkoblinger - + Angivelse av hovedskjematekst mislyktes - + Kunne ikke lagre innstillinger eller fjerne SysTray-ikon! - - Vis verktøystips i tilkoblingstreet + + Vis verktøytips i tilkoblingstreet - + Vis full sti til tilkoblingsfilen i vindustittel - + Vis påloggingsinformasjon i fanenavn - + Vis protokoller i fanenavn - + Enkeltklikk på tilkoblinger åpner den - + Enkeltklikk på en åpnet tilkobling bytter til valgt tilkobling - + Aspekt - + Fri - + Ingen SmartSize - + Socks 5 - + Sorter - + Stigende (A-Z) - + Synkende (Z-A) - + Spesialtastekombinasjoner - + Vennligst se Hjelp - Komme i gang - SQL-konfigurasjon for mer informasjon! - + SQL Server - + SQL Update-sjekken er ferdig, og det er en oppdatering tilgjengelig! Oppdaterer tilkoblinger... - + SSH versjon 1 - + SSH versjon 2 - + SSH-bakgrunnsoverføring mislyktes! - + Overføring er vellykket! - + SSH Transfer End (UI.Window.SSHTransfer) mislyktes! - + SSH-overføringen mislyktes. - + Start IP-adresse - + Start-port - + Oppstart/Avslutning - + Status - - Bytte til varslingspanelet på: + + Bytte til varslingspanelet ved: - + Avansert - + Utseende - + Faner && paneler - + Oppdateringer - + Telnet - + Følgende: - + Oppsettspanel - + Tilkoblingspanel - + Generelt - + Bakgrunnsfargen på oppsettspanelet. - + Fargen på kategoritekst i oppsettspanelet. - + Fargen på linjene i rutenettet i oppsettspanelet - + Bakgrunnsfargen på hjelp-området i oppsettspanelet. - + Fargen på teksten i hjelp-området i oppsettspanelet. - + Fargen på teksten i oppsettspanelet. - + Bakgrunnsfargen på tilkoblingspanelet. - + Fargen på teksten i tilkoblingspanelet. - + Fargen på trelinjene i tilkoblingspanelet. - + Bakgrunnsfargen på menyene. - + Fargen på teksten i menyene. - + Bakgrunnsfargen på søkeboksen. - + Fargen på teksten i søkeboksen. - + Fargen på ledeteksten i søkeboksen. - + Bakgrunnsfargen på verktøylinjene. - + Fargen på teksten i verktøylinjene. - + Bakgrunnsfarge i hovedvinduet. - + Bakgrunnsfarge for oppsettspanelet - + Tekstfarge for oppsettspanel-kategori - + Rutenettfarge for oppsettspanelet - + Bakgrunnsfarge for oppsettspanel-hjelp - + Tekstfarge for oppsettspanel-hjelp - + Tekstfarge for oppsettspanelet - + Bakgrunnsfarge for tilkoblingspanelet - + Tekstfarge for tilkoblingspanelet - + Farge på trelinjene i tilkoblingspanelet - + Bakgrunnsfarge på menyene - + Tekstfarge for menytekst - + Bakgrunnsfarge for søkeboksen - + Tekstfarge for søkeboksen - + Tekstfarge for spørsmål fra søkeboksen - + Bakgrunnsfarge for verktøylinjen - + Tekstfarge for verktøylinjen - + Bakgrunnsfarge for vinduet - + Feil ({0}) - + Informasjon ({0}) - + Passord - + Velg panel - + Advarsel ({0}) - + Overfør - + Overføringen mislyktes! - + Prøv å integrere - + Type - + Ultra VNC Repeater - + UltraVNC SingleClick port: - + Fjern avkryssingen for egenskapene du ikke ønsker å lagre! - + Tema uten navn - + mRemoteNG krever en oppdatering - + mRemoteNG kan med jevne mellomrom koble til mRemoteNG-webområdet for å se etter oppdateringer og produktkunngjøringer. - + Fullføring av sjekk for oppdatering mislyktes! - + Sjekk for oppdatering mislyktes! - + mRemoteNG Portable Edition støtter for øyeblikket ikke automatiske oppdateringer. - + Feil ved sletting av oppdateringsfilen! - + Nedlastingen er fullført! mRemoteNG vil nå avslutte og starte installasjonen. - + Nedlasting fullført mislyktes! - + Last ned oppdatering mislyktes! - + Hver {0} dag - + Daglig - + Månedlig - + Ukentlig - + Feil ved start av oppdatering! - + Bruk et annet brukernavn og/eller passord - + Bruk bare varslingspanelet (ingen popup-meldingsbokser) - + Bruker - + Bruk samme brukernavn og passord - + Bruk et smartkort - - Bruk SQL Server for å laste inn && lagre tilkoblinger + + Bruk SQL Server for å laste inn og lagre tilkoblinger - + Versjon - + VNC - + VNC-frakobling mislyktes! - + Oppfrisking av skjermen i VNC mislyktes! - + VNC SendSpecialKeys mislyktes! - + VNC Set Event behandlingsrutiner mislyktes! - + VNC Set Props-handling mislyktes! - + VNC Start Chat mislyktes! - + VNC Vis/Skjul SmartSize mislyktes! - + VNC Vis/Skjul ViewOnly mislyktes! - + Advar meg hvis autentisering mislykkes - + Advarsler - + Bruker DockPanel Suite av [Weifen Luo] - + Skriv loggfil (mRemoteNG.log) - + XULrunner filsti: - + Ja + + &Start + + + Avslu&tt {0} + + + Åpne tilkoblingsfil + + + Prøv igjen + + + Koble til uten legitimasjon + + + Ikke koble til konsollsesjon + + + PuTTY kunne ikke startes. + + + 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. + + + + Eksporter alt + + + Eksporter fil + + + Eksporter elementer + + + Eksporter egenskaper + + + Eksporter valgt tilkobling + + + Eksporter valgt mappe + + + &Eksporter til fil... + + + Nytt eksternt verktøy + + + &Filformat: + + + Alle filer som kan importeres + + + PuTTY Connection Manager-filer + + + Remote Desktop Connection Manager-filer (*.rdg) + + + En feil har oppstått under import av filen "{0}". + + + Import feilet + + + Importer fra &fil... + + + Under roten{0}{1}|Under den valgte mappen{0}{2} + + + Hvor ønsker du å plassere de importerte elementene? + + + Importplassering + + + &Import + + + Tilkoblingsinformasjonen kunne ikke lastes fra SQL server. + + + Hent + + + &Slett + + + &Ny + + + &Tilbakestill til standard + + + Tilbakestill &alt til standard + + + Faner + + + Neste fane + + + Forrige fane + + + Endre tastatursnarvei + + + Tastatursnarveier + + + Tastatur + + + Begge passordene må være like. + + + Passordet må være minst 3 tegn langt. + + + Portskanning ferdig. + + + 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. + + + Angi informasjon for lastbalanseringsrutere for å velge den beste verten. + + + Velg om utklippstavlen skal deles. + + + Velg om standard lydinndataenhet på den eksterne maskinen skal omadresseres til denne maskinen. + + + Automatisk størrelsesendring + + + Lastbalanseringsinformasjon + + + Utklippstavle + + + Lydopptak + + + PuTTY sesjonsinnstillinger + + + Passord for {0} + + + Vis på verktøylinjen + + + Sjekk feilet + + + Sjekker om det finnes oppdateringer... + + + Endringsloggen kunne ikke lastes ned. + + + &Koble til alle åpne tilkoblinger på nytt + + + RDP tidsavbrudd + + + Elementet finnes allere i denne mappen. + + + Kan ikke dra elementet til seg selv. + + + Kan ikke dra foreldreelementet til underordnet element. + + + Elementet kan ikke flyttes. + + + Blokkrypteringsmodus + + + Krypteringsmotor + + + Sikkerhet + + + Antall iterasjoner for nøkkelderivasjon + + + Dynamisk + + + Høy + + + Medium + + + Velg lydkvalitet: dynamisk, medium, høy + + + Lydkvalitet + + + Nedlasting ferdig! + + + Nedlasting + + + Antall minutter med inaktivitet før RDP-sesjonen automatisk kobles fra (bruk 0 for ubegrenset) + + + Inaktivitet i minutter + + + Godta + + + Legg til + + + Legitimasjonsredigering + + + Legitimasjonshåndtering + + + Fjern + + + Tittel + + + Velg hvilken legitimasjon du vil bruke for denne tilkoblingen + + + Er du sikker på at du vil fjerne legitimasjonen {0}? + + + Kunne ikke finne legitimasjon med ID "{0}" for tilkoblingen "{1}" + + + Velg om du ønsker et varsel når RDP-sesjonen avsluttes på grunn av inaktivitet + + + Varsel ved inaktivitet + + + Passordet må inneholde minst {0} av de følgende tegnene: {1} + + + Passordet må inneholde minst {0} små bokstaver + + + Passordet må inneholde minst {0} tall + + + Passordet må inneholde minst {0} store bokstaver + + + Passordlengden må være mellom {0} og {1} + + + Velg plassering for mRemoteNGs loggfil + + + Feilsøking + + + Vis disse beskjedtypene + + + Sti til loggfil + + + Logg disse beskjedtypene + + + Velg sti + + + Åpne fil + + + Bruk standard + + + Logging + + + Oppsprettvinduer + + + Logg til applikasjonens mappe + + + Tilordnet legitimasjon + + + Tillat alltid + + + Tillat én gang + + + Ikke tillat + + + Tillat usikkert sertifikat for URL {0}? + + + Tillat usikkert sertifikat + + + Det valgte lageret er låst opp + + + Feil passord + + + Kilde + + + Låser opp + + + Lås opp legitimasjonslager + + + Lås opp + + + Spør om legitimasjonslagre skal låses opp ved oppstart + + + Legitimasjoner + + + Oppgrader + + + Tilbake + + + Sti til tilkoblingsfil + + + Lag og åpne ny fil + + + Åpne en annen fil + + + I v1.76 har vi introdusert et system for håndtering av legitimasjon. Denne funksjonaliteten krever en endring i hvordan legitimasjon lagres. For å fortsette må mRemoteNGs tilkoblingsfil oppgraderes, og denne endringen kan ikke angres. + +Denne siden vil lede deg gjennom stegene for å oppgradere tilkoblingsfilen, eller la deg åpne en annen tilkoblingsfil hvis du ikke ønsker å oppgradere. + + + Legitimasjon ikke tilgjengelig + + + Vil du slette dette temaet? + + + Aktiver temaer + + + Navn på nytt tema + + + Kan ikke opprette tema, navnet finnes allerede eller inneholder spesialtegn + + + Skriv inn navn på nytt tema + + + Advarsel: applikasjonen må startes på nytt før endringer i tema trer i kraft. + + + Ingen tema er lastet, sjekk at standard mRemoteNG-temaer finnes i 'themes'-mappen + + + Kunne ikke finne eksternt verktøy "{0}" + + + Lag en ny tilkoblingsfil + + + Tilkoblingsfilen ble ikke funnet. + + + Importer en eksisterende fil + + + Bruk egendefinert filsti + + + Tester tilkobling + + + Verten '{0}' var ikke tilgjengelig. + + + Tilkobling vellykket + + + Innlogging feilet for brukeren '{0}'. + + + Databasen '{0}' er ikke tilgjengelig. + + + Lagre tilkoblinger etter hver endring + + + Filtrer søketreff i tilkoblingstre + + + Test tilkobling + + + Bare lesemodus: + + + Bruk UTF8-koding for RDP "Lastbalanseringsinformasjon"-egenskap + + + Tidsavbrudd [sekunder] + + + Start i: + + + Kjør elevert + + + Elevering + + + Vis på verktøylinjens kolonne + + + Prøv å integrere + + + Start i + + + Lås verktøylinjeposisjoner + + + Multi SSH-verktøylinje + + + Importer under-OUer + + + Lås verktøylinjeposisjoner + + + Multi SSH-verktøylinje + + + Avanserte sikkerhetsvalg + + + mRemoteNG-valg + + + Bruk UTF8-koding for RDP "Lastbalanseringsinformasjon"-egenskap + + + Lag et tomt panel når mRemoteNG starter + + + Må være mellom 0 og 255 + + + Utenfor gyldig område + + + Slett... + + + Koble til alle tilkoblinger på nytt + + + UltraVNC SingleClick + + + Koble fra faner til høyre + + + Koble fra alle unntatt denne + + + Er du sikker på at du vil lukke alle tilkoblinger bortsett fra "{0}"? + + + Er du sikker på at du vil lukke alle tilkoblinger til høyre for "{0}"? + + + En feil oppsto under gjenoppretting av tilkobling til RDP-vert '{0}' + + + En feil oppsto under endring av oppløsning til vert '{0}' + + + Stakksporing + + + Unntaksbeskjed + + + mRemoteNG ubehandlet unntak + + + Et ubehandlet unntak har oppstått + + + Dette unntaket gjør at mRemoteNG må lukkes + + + Kopier vertsnavn + + + Plasser søkelinjen over tilkoblingstreet + + + For å skanne en enkelt port, velg bare "Start-port" + + + Vis aktiv tilkobling i tilkoblingstreet + + + Vis alltid tilkoblingsfaner + + + Release-kanal + + + Stable-kanalen inkluderer bare endelige versjoner. +Beta-kanalen inkluderer beta- og release candidate-versjoner. +Development-kanalen inkluderer alpha-, beta- og release candidate-versjoner. + + + Bruk + + + Proxy-innstillinger + + + Multi-SSH: + + + Trykk ENTER for å sende, Ctrl+C sendes umiddelbart. + + + Vis denne tilkoblingen i favoritter-menyen. + + + Favoritt + + + Favoritter + + + Nullstill søkestreng + + + Koble til i bare visningsmodus + + + Ikke fjern mellomrom fra brukernavn + + + Miljø + \ No newline at end of file From e9dcb986f98350b90381bc7dc20ab640b8dadbef Mon Sep 17 00:00:00 2001 From: wwj402 Date: Wed, 8 May 2019 13:47:24 +0800 Subject: [PATCH 03/32] update chinese simplified language base on commit 9fdcffd --- .../Resources/Language/Language.zh-CN.resx | 109 ++++++++++++++++-- 1 file changed, 98 insertions(+), 11 deletions(-) diff --git a/mRemoteV1/Resources/Language/Language.zh-CN.resx b/mRemoteV1/Resources/Language/Language.zh-CN.resx index 0b9a5765..57f091f2 100644 --- a/mRemoteV1/Resources/Language/Language.zh-CN.resx +++ b/mRemoteV1/Resources/Language/Language.zh-CN.resx @@ -244,7 +244,8 @@ 测试代理 - 您不能导入正常连接文件。请使用文件/加载连接文件以导入正常连接文件! + 您不能导入正常连接文件。 +请使用文件/加载连接文件以导入正常连接文件! 无法启动端口扫描,IP 格式不正确! @@ -308,7 +309,7 @@ mRemoteNG提供此组件,但是如果没有使用 mRemoteNG 安装程序,不 启用 ICA 需要提前安装 XenDesktop Online 插件,并正确注册 wfica.ocx 库文件。您可以在此下载此插件:http://www.citrix.com/download/ -如果您已安装 XenDesktop Online 插件,但人就检测失败,请手动注册 wfica.ocx 。 +如果您已安装 XenDesktop Online 插件,但仍旧检测失败,请手动注册 wfica.ocx。 请打开运行对话框(开始菜单/运行),并输入如下内容:“regsvr32 "c:\Program Files\Citrix\ICA Client\wfica.ocx" ”(c:\Program Files\Citrix\ICA Client\ 是您安装 XenDesktop Online 插件的路径)。 如果仍然无法通过此检查或在 mRemoteNG 中使用 ICA,请咨询 {0}。 @@ -335,7 +336,8 @@ Citrix ICA 客户端空间版本:{0} 远程桌面版本 {0} - 使用 VNC 前,请确认 VncSharp.dll 在您安装 mRemoteNG 的目录中(一般为 C:\Program Files\mRemoteNG\)。 + VNC 要求 VncSharp.dll 位于 mRemoteNG 应用程序文件夹中。 +请确认 VncSharp.dll 在您安装 mRemoteNG 的目录中(一般为 C:\Program Files\mRemoteNG\)。 如果仍然无法通过此检查或在 mRemoteNG 中使用 VNC,请咨询 {0}。 @@ -460,7 +462,8 @@ VncSharp 版本 {0} 无法加载配置界面。 - 确定要关闭连接“{0}”? + 确定要关闭连接: +“{0}”? 确实要关闭面板“{0}”?此面板所包含的所有连接将会断开。 @@ -499,7 +502,7 @@ VncSharp 版本 {0} 协议事件:已连接 - 通过{1}到主机{0}的连接,已被用户{2}打开(说明:“{3}”,自定义信息:“{4}”)。 + 通过{1}到主机{0}的连接,已被用户{2}打开(说明:“{3}”,自定义信息:“{4}”) 连接失败! @@ -522,7 +525,7 @@ VncSharp 版本 {0} 连接 - 无法设置默认端口 ! + 无法设置默认端口! 无法创建连接配置文件备份! @@ -653,7 +656,9 @@ VncSharp 版本 {0} Windows 安全设置中已启用"系统加密:使用 FIPS 兼容算法进行加密、散列和签名操作"。 + 请参阅 Microsoft 支持文章中的详细信息:http://support.microsoft.com/kb/811833 + {0} 不完全符合FIPS标准。单击“确定”继续自己的决定,或单击“取消”退出。 @@ -707,6 +712,9 @@ VncSharp 版本 {0} 内置图标由[FAMFAMFAM]制作 + + http://www.famfamfam.com/ + 文件格式(&F): @@ -773,6 +781,9 @@ VncSharp 版本 {0} 主机 + + HTTP + HTTP 连接失败! @@ -782,9 +793,21 @@ VncSharp 版本 {0} 更改HTTP文档标题失败! + + Gecko (Firefox) + + + Internet Explorer + + + HTTPS + 设置 HTTP 属性失败! + + ICA + 无法创建新 ICA 连接! @@ -878,6 +901,12 @@ VncSharp 版本 {0} 内部程序标题:{0} + + CTRL-ALT-DEL + + + CTRL-ESC + 地址: @@ -986,6 +1015,9 @@ VncSharp 版本 {0} 使用[Crownwood Software]开发的 Magic 库 + + http://www.dotnetmagic.com/ + 关于 @@ -1188,7 +1220,7 @@ VncSharp 版本 {0} 查看(&V) - 查看模式(VNC) + 仅查看 网站 @@ -1202,6 +1234,12 @@ VncSharp 版本 {0} 上移 + + mRemoteNG CSV + + + mRemoteNG XML + 当前凭据(Windows登录信息) @@ -1248,7 +1286,8 @@ VncSharp 版本 {0} 无可用更新 - 您正在试图加载旧版mRemote连接配置文件,可能会导致出现运行时错误。如果您遇到此类错误,请创建新的连接配置文件! + 您正在试图加载旧版mRemote连接配置文件,可能会导致出现运行时错误。 +如果您遇到此类错误,请创建新的连接配置文件! 新建标签于当前标签右侧 @@ -1442,6 +1481,9 @@ VncSharp 版本 {0} 请选择远程主机声音的处理方式。 + + 选择是否应将远程计算机上的默认音频输入设备重定向到此计算机。 + 请选择一个有效的渲染显示HTML的引擎。 @@ -1604,6 +1646,9 @@ VncSharp 版本 {0} 声音 + + 音频捕获 + 渲染引擎 @@ -1728,6 +1773,12 @@ VncSharp 版本 {0} 关闭连接时不需确认 + + RAW + + + RDP + 24位色 @@ -1816,7 +1867,7 @@ VncSharp 版本 {0} Winsock 初始化错误。 - 无法导入 rdp 文件 ! + 无法导入 rdp 文件! 适合面板 @@ -1905,6 +1956,9 @@ VncSharp 版本 {0} 重命名 + + Rlogin + 保存 @@ -1918,7 +1972,7 @@ VncSharp 版本 {0} 退出时保存连接配置文件 - GIF(.gif)|*.gif|JPEG(.jpeg)|*.jpeg|JPEG(.jpg)|*.jpg|PNG(.png)|*.png + 图形交换格式文件 (.gif)|*.gif|联合图像专家组文件 (.jpeg)|*.jpeg|联合图像专家组文件 (.jpg)|*.jpg|便携式网络图形文件 (.png)|*.png 屏幕 @@ -1977,6 +2031,9 @@ VncSharp 版本 {0} 禁用窗口自适应 + + Socks 5 + 排序 @@ -2043,6 +2100,9 @@ VncSharp 版本 {0} 升级 + + Telnet + 以下: @@ -2190,6 +2250,9 @@ VncSharp 版本 {0} 类型 + + Ultra VNC Repeater + UltraVNC SingleClick 端口: @@ -2260,6 +2323,9 @@ mRemoteNG 将退出并安装更新。 版本 + + VNC + VNC 连接断开失败! @@ -2293,6 +2359,9 @@ mRemoteNG 将退出并安装更新。 使用DockPanel Suite[Weifen Luo] + + http://sourceforge.net/projects/dockpanelsuite/ + XULrunner 路径: @@ -2368,6 +2437,9 @@ mRemoteNG 将退出并安装更新。 凭证管理器 + + ID + 移除 @@ -2628,6 +2700,9 @@ mRemoteNG 将退出并安装更新。 重新连接所有连接 + + UltraVNC SingleClick + 断开右侧标签的连接 @@ -2705,4 +2780,16 @@ mRemoteNG 将退出并安装更新。 收藏夹 - + + 清除搜索字符串 + + + 以仅查看模式连接 + + + 不要修剪用户名中的空格 + + + 环境 + + \ No newline at end of file From c4544832d242a4b5cb1fbc166f1f29a849e52f2b Mon Sep 17 00:00:00 2001 From: Faryan Rezagholi Date: Sun, 12 May 2019 14:24:20 +0200 Subject: [PATCH 04/32] Update PULL_REQUEST_TEMPLATE.md --- .github/PULL_REQUEST_TEMPLATE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 225845bc..20f27991 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -19,6 +19,7 @@ - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) +- [ ] Updated translation ## Checklist: From a69f6925e9f841e28e90469c9a45c1dd2233a030 Mon Sep 17 00:00:00 2001 From: Faryan Rezagholi Date: Sun, 12 May 2019 14:42:00 +0200 Subject: [PATCH 05/32] updated changelog file --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3e5a6b0..5a9edc35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] ### Added ### Changed +- #1437: Updated Norwegian translation ### Fixed - #1428: Fixed a rare error when checking for FIPS - #1426: Tabbing is reversed in config window From b7fff50d31bca1d850c36883b448bf1c95711c32 Mon Sep 17 00:00:00 2001 From: Faryan Rezagholi Date: Sun, 12 May 2019 14:58:33 +0200 Subject: [PATCH 06/32] updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3e5a6b0..cc7b6399 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] ### Added ### Changed +- #1443: Chinese (simplified) translation improvements ### Fixed - #1428: Fixed a rare error when checking for FIPS - #1426: Tabbing is reversed in config window From 565e163b3e849ead21005e26df3355fa0db4bef8 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Mon, 13 May 2019 09:31:17 -0500 Subject: [PATCH 07/32] fixes #1447 --- CHANGELOG.md | 1 + mRemoteV1/UI/Forms/frmMain.cs | 6 ------ 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc49bc89..e08e79ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - #1443: Chinese (simplified) translation improvements - #1437: Norwegian translation improvements ### Fixed +- #1447: Exception occurs when resetting layout - #1428: Fixed a rare error when checking for FIPS - #1426: Tabbing is reversed in config window - #1425: Connections didn't always respect the Panel property diff --git a/mRemoteV1/UI/Forms/frmMain.cs b/mRemoteV1/UI/Forms/frmMain.cs index b21e6fd2..e583b1d2 100644 --- a/mRemoteV1/UI/Forms/frmMain.cs +++ b/mRemoteV1/UI/Forms/frmMain.cs @@ -693,15 +693,9 @@ namespace mRemoteNG.UI.Forms pnlDock.DockTopPortion = pnlDock.Height * 0.25; pnlDock.DockBottomPortion = pnlDock.Height * 0.25; - Windows.TreeForm.DockAreas = DockAreas.DockBottom | DockAreas.DockLeft | DockAreas.DockRight | - DockAreas.DockTop | DockAreas.Float; Windows.TreeForm.Show(pnlDock, DockState.DockLeft); - Windows.ConfigForm.DockAreas = DockAreas.DockBottom | DockAreas.DockLeft | DockAreas.DockRight | - DockAreas.DockTop | DockAreas.Float; Windows.ConfigForm.Show(pnlDock); Windows.ConfigForm.DockTo(Windows.TreeForm.Pane, DockStyle.Bottom, -1); - Windows.ErrorsForm.DockAreas = DockAreas.DockBottom | DockAreas.DockLeft | DockAreas.DockRight | - DockAreas.DockTop | DockAreas.Float; Windows.ErrorsForm.Show(pnlDock, DockState.DockBottomAutoHide); Windows.ScreenshotForm.Hide(); From 4fc82ab7c19f69ffbe839023e28e846ed4874c80 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Mon, 13 May 2019 12:17:50 -0500 Subject: [PATCH 08/32] fixes #1439 --- CHANGELOG.md | 1 + mRemoteV1/UI/Window/ConnectionTreeWindow.cs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e08e79ed..233a5e01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - #1437: Norwegian translation improvements ### Fixed - #1447: Exception occurs when resetting layout +- #1439: Searching in hosts tree loses first keystroke - #1428: Fixed a rare error when checking for FIPS - #1426: Tabbing is reversed in config window - #1425: Connections didn't always respect the Panel property diff --git a/mRemoteV1/UI/Window/ConnectionTreeWindow.cs b/mRemoteV1/UI/Window/ConnectionTreeWindow.cs index ad469739..137f9d53 100644 --- a/mRemoteV1/UI/Window/ConnectionTreeWindow.cs +++ b/mRemoteV1/UI/Window/ConnectionTreeWindow.cs @@ -338,8 +338,8 @@ namespace mRemoteNG.UI.Window try { if (!char.IsLetterOrDigit(e.KeyChar)) return; - txtSearch.Text = e.KeyChar.ToString(); txtSearch.Focus(); + txtSearch.Text = e.KeyChar.ToString(); txtSearch.SelectionStart = txtSearch.TextLength; } catch (Exception ex) From 027e37545b398e4f77266a3306ead85bd9ef7165 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Mon, 13 May 2019 12:54:36 -0500 Subject: [PATCH 09/32] added a "defaulttext" mode to the ng search box This will prevent a bug when users want to perform a real search using the same term as Language.strSearchPrompt --- mRemoteV1/UI/Controls/Base/NGSearchBox.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mRemoteV1/UI/Controls/Base/NGSearchBox.cs b/mRemoteV1/UI/Controls/Base/NGSearchBox.cs index 2f891023..585abe26 100644 --- a/mRemoteV1/UI/Controls/Base/NGSearchBox.cs +++ b/mRemoteV1/UI/Controls/Base/NGSearchBox.cs @@ -6,6 +6,7 @@ namespace mRemoteNG.UI.Controls.Base { public class NGSearchBox : NGTextBox { + private bool _showDefaultText; private PictureBox pbClear = new PictureBox(); private ToolTip btClearToolTip = new ToolTip(); @@ -36,7 +37,7 @@ namespace mRemoteNG.UI.Controls.Base private void FocusLost(object sender, EventArgs e) { - if (string.IsNullOrEmpty(Text)) + if (_showDefaultText) { Text = Language.strSearchPrompt; pbClear.Visible = false; @@ -59,7 +60,8 @@ namespace mRemoteNG.UI.Controls.Base private void NGSearchBox_TextChanged(object sender, EventArgs e) { - pbClear.Visible = Text == Language.strSearchPrompt ? false : TextLength > 0; + _showDefaultText = string.IsNullOrEmpty(Text); + pbClear.Visible = !_showDefaultText && TextLength > 0; } } } \ No newline at end of file From 594f005476e1e693bda97605653d0e9aaa8e2558 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Mon, 13 May 2019 13:28:25 -0500 Subject: [PATCH 10/32] fixed a few more cases where default text wouldn't behave correctly --- mRemoteV1/UI/Controls/Base/NGSearchBox.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/mRemoteV1/UI/Controls/Base/NGSearchBox.cs b/mRemoteV1/UI/Controls/Base/NGSearchBox.cs index 585abe26..bed89c1f 100644 --- a/mRemoteV1/UI/Controls/Base/NGSearchBox.cs +++ b/mRemoteV1/UI/Controls/Base/NGSearchBox.cs @@ -6,10 +6,13 @@ namespace mRemoteNG.UI.Controls.Base { public class NGSearchBox : NGTextBox { - private bool _showDefaultText; + private bool _showDefaultText = true; + private bool _settingDefaultText = true; private PictureBox pbClear = new PictureBox(); private ToolTip btClearToolTip = new ToolTip(); + //public override string Text { get; set; } + public NGSearchBox() { InitializeComponent(); @@ -39,12 +42,17 @@ namespace mRemoteNG.UI.Controls.Base { if (_showDefaultText) { + _settingDefaultText = true; Text = Language.strSearchPrompt; pbClear.Visible = false; } } - private void FocusGot(object sender, EventArgs e) => Text = ""; + private void FocusGot(object sender, EventArgs e) + { + if (_showDefaultText) + Text = ""; + } private void InitializeComponent() { @@ -60,8 +68,13 @@ namespace mRemoteNG.UI.Controls.Base private void NGSearchBox_TextChanged(object sender, EventArgs e) { - _showDefaultText = string.IsNullOrEmpty(Text); + if (!_settingDefaultText) + { + _showDefaultText = string.IsNullOrEmpty(Text); + } + pbClear.Visible = !_showDefaultText && TextLength > 0; + _settingDefaultText = false; } } } \ No newline at end of file From 1ebe773b6eb45ff0afc6806957e4ce4a6a6fca5c Mon Sep 17 00:00:00 2001 From: David Sparer Date: Mon, 13 May 2019 13:30:13 -0500 Subject: [PATCH 11/32] minor cleanup of ng search box --- mRemoteV1/UI/Controls/Base/NGSearchBox.cs | 49 +++++++++-------------- 1 file changed, 18 insertions(+), 31 deletions(-) diff --git a/mRemoteV1/UI/Controls/Base/NGSearchBox.cs b/mRemoteV1/UI/Controls/Base/NGSearchBox.cs index bed89c1f..437a2cc5 100644 --- a/mRemoteV1/UI/Controls/Base/NGSearchBox.cs +++ b/mRemoteV1/UI/Controls/Base/NGSearchBox.cs @@ -1,5 +1,4 @@ using System; -using System.Drawing; using System.Windows.Forms; namespace mRemoteNG.UI.Controls.Base @@ -8,14 +7,12 @@ namespace mRemoteNG.UI.Controls.Base { private bool _showDefaultText = true; private bool _settingDefaultText = true; - private PictureBox pbClear = new PictureBox(); - private ToolTip btClearToolTip = new ToolTip(); - - //public override string Text { get; set; } + private readonly PictureBox _pbClear = new PictureBox(); + private readonly ToolTip _btClearToolTip = new ToolTip(); public NGSearchBox() { - InitializeComponent(); + TextChanged += NGSearchBox_TextChanged; LostFocus += FocusLost; GotFocus += FocusGot; AddClearButton(); @@ -24,28 +21,28 @@ namespace mRemoteNG.UI.Controls.Base private void ApplyLanguage() { - btClearToolTip.SetToolTip(pbClear, Language.ClearSearchString); + _btClearToolTip.SetToolTip(_pbClear, Language.ClearSearchString); } private void AddClearButton() { - pbClear.Image = Resources.Delete; - pbClear.Width = 20; - pbClear.Dock = DockStyle.Right; - pbClear.Cursor = Cursors.Default; - pbClear.Click += PbClear_Click; - pbClear.LostFocus += FocusLost; - Controls.Add(pbClear); + _pbClear.Image = Resources.Delete; + _pbClear.Width = 20; + _pbClear.Dock = DockStyle.Right; + _pbClear.Cursor = Cursors.Default; + _pbClear.Click += PbClear_Click; + _pbClear.LostFocus += FocusLost; + Controls.Add(_pbClear); } private void FocusLost(object sender, EventArgs e) { - if (_showDefaultText) - { - _settingDefaultText = true; - Text = Language.strSearchPrompt; - pbClear.Visible = false; - } + if (!_showDefaultText) + return; + + _settingDefaultText = true; + Text = Language.strSearchPrompt; + _pbClear.Visible = false; } private void FocusGot(object sender, EventArgs e) @@ -54,16 +51,6 @@ namespace mRemoteNG.UI.Controls.Base Text = ""; } - private void InitializeComponent() - { - this.SuspendLayout(); - // - // NGSearchBox - // - this.TextChanged += new System.EventHandler(this.NGSearchBox_TextChanged); - this.ResumeLayout(false); - } - private void PbClear_Click(object sender, EventArgs e) => Text = string.Empty; private void NGSearchBox_TextChanged(object sender, EventArgs e) @@ -73,7 +60,7 @@ namespace mRemoteNG.UI.Controls.Base _showDefaultText = string.IsNullOrEmpty(Text); } - pbClear.Visible = !_showDefaultText && TextLength > 0; + _pbClear.Visible = !_showDefaultText && TextLength > 0; _settingDefaultText = false; } } From cae906d226a003b783cd440b8a0bdf7e6a126cdc Mon Sep 17 00:00:00 2001 From: David Sparer Date: Mon, 13 May 2019 14:07:10 -0500 Subject: [PATCH 12/32] simplified connection initiator method overloads --- mRemoteV1/Connection/ConnectionInitiator.cs | 53 +++++++------------- mRemoteV1/Connection/IConnectionInitiator.cs | 15 ++++-- mRemoteV1/UI/Window/ConnectionTreeWindow.cs | 2 + 3 files changed, 29 insertions(+), 41 deletions(-) diff --git a/mRemoteV1/Connection/ConnectionInitiator.cs b/mRemoteV1/Connection/ConnectionInitiator.cs index 958e227e..8190d63c 100644 --- a/mRemoteV1/Connection/ConnectionInitiator.cs +++ b/mRemoteV1/Connection/ConnectionInitiator.cs @@ -5,6 +5,7 @@ using mRemoteNG.App; using mRemoteNG.Connection.Protocol; using mRemoteNG.Container; using mRemoteNG.Messages; +using mRemoteNG.Tools; using mRemoteNG.UI.Forms; using mRemoteNG.UI.Panels; using mRemoteNG.UI.Tabs; @@ -21,35 +22,6 @@ namespace mRemoteNG.Connection public IEnumerable ActiveConnections => _activeConnections; - public void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force = ConnectionInfo.Force.None) - { - OpenConnection(containerInfo, force, null); - } - - public void OpenConnection(ConnectionInfo connectionInfo) - { - try - { - OpenConnection(connectionInfo, ConnectionInfo.Force.None); - } - catch (Exception ex) - { - Runtime.MessageCollector.AddExceptionStackTrace(Language.strConnectionOpenFailed, ex); - } - } - - public void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force) - { - try - { - OpenConnection(connectionInfo, force, null); - } - catch (Exception ex) - { - Runtime.MessageCollector.AddExceptionStackTrace(Language.strConnectionOpenFailed, ex); - } - } - public bool SwitchToOpenConnection(ConnectionInfo connectionInfo) { var interfaceControl = FindConnectionContainer(connectionInfo); @@ -61,13 +33,15 @@ namespace mRemoteNG.Connection return true; } - #region Private - - private void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force, ConnectionWindow conForm) + public void OpenConnection( + ContainerInfo containerInfo, + ConnectionInfo.Force force = ConnectionInfo.Force.None, + ConnectionWindow conForm = null) { - var children = containerInfo.Children; - if (children.Count == 0) return; - foreach (var child in children) + if (containerInfo == null || containerInfo.Children.Count == 0) + return; + + foreach (var child in containerInfo.Children) { if (child is ContainerInfo childAsContainer) OpenConnection(childAsContainer, force, conForm); @@ -76,8 +50,14 @@ namespace mRemoteNG.Connection } } - private void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force, ConnectionWindow conForm) + public void OpenConnection( + ConnectionInfo connectionInfo, + ConnectionInfo.Force force = ConnectionInfo.Force.None, + ConnectionWindow conForm = null) { + if (connectionInfo == null) + return; + try { if (connectionInfo.Hostname == "" && connectionInfo.Protocol != ProtocolType.IntApp) @@ -130,6 +110,7 @@ namespace mRemoteNG.Connection } } + #region Private private static void StartPreConnectionExternalApp(ConnectionInfo connectionInfo) { if (connectionInfo.PreExtApp == "") return; diff --git a/mRemoteV1/Connection/IConnectionInitiator.cs b/mRemoteV1/Connection/IConnectionInitiator.cs index c29a15d4..ea3d8d0f 100644 --- a/mRemoteV1/Connection/IConnectionInitiator.cs +++ b/mRemoteV1/Connection/IConnectionInitiator.cs @@ -1,5 +1,6 @@ -using System.Collections.Generic; +using System.Collections.Generic; using mRemoteNG.Container; +using mRemoteNG.UI.Window; namespace mRemoteNG.Connection { @@ -7,11 +8,15 @@ namespace mRemoteNG.Connection { IEnumerable ActiveConnections { get; } - void OpenConnection(ConnectionInfo connectionInfo); + void OpenConnection( + ContainerInfo containerInfo, + ConnectionInfo.Force force = ConnectionInfo.Force.None, + ConnectionWindow conForm = null); - void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force = ConnectionInfo.Force.None); - - void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force); + void OpenConnection( + ConnectionInfo connectionInfo, + ConnectionInfo.Force force = ConnectionInfo.Force.None, + ConnectionWindow conForm = null); bool SwitchToOpenConnection(ConnectionInfo connectionInfo); } diff --git a/mRemoteV1/UI/Window/ConnectionTreeWindow.cs b/mRemoteV1/UI/Window/ConnectionTreeWindow.cs index 137f9d53..01a7f592 100644 --- a/mRemoteV1/UI/Window/ConnectionTreeWindow.cs +++ b/mRemoteV1/UI/Window/ConnectionTreeWindow.cs @@ -355,6 +355,8 @@ namespace mRemoteNG.UI.Window if (e.KeyCode == Keys.Enter) { e.Handled = true; + if (SelectedNode == null) + return; _connectionInitiator.OpenConnection(SelectedNode); } else if (e.Control && e.KeyCode == Keys.F) From 57d8b0c80338bae08e9561c8cff5bbd935c4800a Mon Sep 17 00:00:00 2001 From: David Sparer Date: Sat, 18 May 2019 15:09:24 -0500 Subject: [PATCH 13/32] default kdf iteration count is now 10000 --- mRemoteV1/Properties/Settings.Designer.cs | 4 ++-- mRemoteV1/Properties/Settings.settings | 10 +++++----- mRemoteV1/app.config | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mRemoteV1/Properties/Settings.Designer.cs b/mRemoteV1/Properties/Settings.Designer.cs index 1ebb21b1..5a63c5d6 100644 --- a/mRemoteV1/Properties/Settings.Designer.cs +++ b/mRemoteV1/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace mRemoteNG { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.0.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -2295,7 +2295,7 @@ namespace mRemoteNG { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("1000")] + [global::System.Configuration.DefaultSettingValueAttribute("10000")] public int EncryptionKeyDerivationIterations { get { return ((int)(this["EncryptionKeyDerivationIterations"])); diff --git a/mRemoteV1/Properties/Settings.settings b/mRemoteV1/Properties/Settings.settings index e1dd398d..90374d26 100644 --- a/mRemoteV1/Properties/Settings.settings +++ b/mRemoteV1/Properties/Settings.settings @@ -148,8 +148,8 @@ DoNotPlay - - + + False @@ -256,8 +256,8 @@ False - - + + False @@ -570,7 +570,7 @@ GCM - 1000 + 10000 Dynamic diff --git a/mRemoteV1/app.config b/mRemoteV1/app.config index bed2738a..80fca089 100644 --- a/mRemoteV1/app.config +++ b/mRemoteV1/app.config @@ -607,7 +607,7 @@ GCM - 1000 + 10000 Dynamic From 63c78f986d4bb5368ef90136aa211267dcd5b8f0 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Sat, 18 May 2019 15:10:08 -0500 Subject: [PATCH 14/32] added button to test encryption settings on the security page --- .../Config/Connections/XmlConnectionsSaver.cs | 23 ++-- .../Xml/XmlConnectionSerializerFactory.cs | 33 ++++++ .../Resources/Language/Language.Designer.cs | 29 ++++- mRemoteV1/Resources/Language/Language.resx | 9 ++ .../OptionsPages/SecurityPage.Designer.cs | 109 ++++++++++-------- .../UI/Forms/OptionsPages/SecurityPage.cs | 35 ++++++ mRemoteV1/mRemoteV1.csproj | 1 + 7 files changed, 180 insertions(+), 59 deletions(-) create mode 100644 mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionSerializerFactory.cs diff --git a/mRemoteV1/Config/Connections/XmlConnectionsSaver.cs b/mRemoteV1/Config/Connections/XmlConnectionsSaver.cs index c9d9352d..b7cea279 100644 --- a/mRemoteV1/Config/Connections/XmlConnectionsSaver.cs +++ b/mRemoteV1/Config/Connections/XmlConnectionsSaver.cs @@ -32,19 +32,16 @@ namespace mRemoteNG.Config.Connections try { var cryptographyProvider = new CryptoProviderFactoryFromSettings().Build(); - var connectionNodeSerializer = new XmlConnectionNodeSerializer27( - cryptographyProvider, - connectionTreeModel - .RootNodes.OfType() - .First().PasswordString - .ConvertToSecureString(), - _saveFilter); - var xmlConnectionsSerializer = - new XmlConnectionsSerializer(cryptographyProvider, connectionNodeSerializer) - { - UseFullEncryption = mRemoteNG.Settings.Default.EncryptCompleteConnectionsFile - }; - var xml = xmlConnectionsSerializer.Serialize(connectionTreeModel); + var serializerFactory = new XmlConnectionSerializerFactory(); + + var xmlConnectionsSerializer = serializerFactory.Build( + cryptographyProvider, + connectionTreeModel, + _saveFilter, + mRemoteNG.Settings.Default.EncryptCompleteConnectionsFile); + + var rootNode = connectionTreeModel.RootNodes.OfType().First(); + var xml = xmlConnectionsSerializer.Serialize(rootNode); var fileDataProvider = new FileDataProviderWithRollingBackup(_connectionFileName); fileDataProvider.Save(xml); diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionSerializerFactory.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionSerializerFactory.cs new file mode 100644 index 00000000..c8dbf362 --- /dev/null +++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionSerializerFactory.cs @@ -0,0 +1,33 @@ +using System.Linq; +using mRemoteNG.Connection; +using mRemoteNG.Security; +using mRemoteNG.Tree; +using mRemoteNG.Tree.Root; + +namespace mRemoteNG.Config.Serializers.Xml +{ + public class XmlConnectionSerializerFactory + { + public ISerializer Build( + ICryptographyProvider cryptographyProvider, + ConnectionTreeModel connectionTreeModel, + SaveFilter saveFilter = null, + bool useFullEncryption = false) + { + var encryptionKey = connectionTreeModel + .RootNodes.OfType() + .First().PasswordString + .ConvertToSecureString(); + + var connectionNodeSerializer = new XmlConnectionNodeSerializer27( + cryptographyProvider, + encryptionKey, + saveFilter ?? new SaveFilter()); + + return new XmlConnectionsSerializer(cryptographyProvider, connectionNodeSerializer) + { + UseFullEncryption = useFullEncryption + }; + } + } +} diff --git a/mRemoteV1/Resources/Language/Language.Designer.cs b/mRemoteV1/Resources/Language/Language.Designer.cs index 462d965e..4bf02569 100644 --- a/mRemoteV1/Resources/Language/Language.Designer.cs +++ b/mRemoteV1/Resources/Language/Language.Designer.cs @@ -19,7 +19,7 @@ namespace mRemoteNG { // 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", "15.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Language { @@ -186,6 +186,24 @@ namespace mRemoteNG { } } + /// + /// Looks up a localized string similar to Encryption Test. + /// + internal static string EncryptionTest { + get { + return ResourceManager.GetString("EncryptionTest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Encrypting {0} entries using {1}/{2} and {3} iterations took {4} seconds.. + /// + internal static string EncryptionTestResultMessage { + get { + return ResourceManager.GetString("EncryptionTestResultMessage", resourceCulture); + } + } + /// /// Looks up a localized string similar to Environment. /// @@ -7984,6 +8002,15 @@ namespace mRemoteNG { } } + /// + /// Looks up a localized string similar to Test Settings. + /// + internal static string TestSettings { + get { + return ResourceManager.GetString("TestSettings", resourceCulture); + } + } + /// /// Looks up a localized string similar to An unhandled exception has occurred. /// diff --git a/mRemoteV1/Resources/Language/Language.resx b/mRemoteV1/Resources/Language/Language.resx index cf45009c..62072629 100644 --- a/mRemoteV1/Resources/Language/Language.resx +++ b/mRemoteV1/Resources/Language/Language.resx @@ -2793,4 +2793,13 @@ Development Channel includes Alphas, Betas & Release Candidates. Environment + + Encrypting {0} entries using {1}/{2} and {3} iterations took {4} seconds. + + + Encryption Test + + + Test Settings + \ No newline at end of file diff --git a/mRemoteV1/UI/Forms/OptionsPages/SecurityPage.Designer.cs b/mRemoteV1/UI/Forms/OptionsPages/SecurityPage.Designer.cs index ef4c347b..497ef280 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/SecurityPage.Designer.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/SecurityPage.Designer.cs @@ -34,12 +34,13 @@ this.labelBlockCipher = new mRemoteNG.UI.Controls.Base.NGLabel(); this.comboBoxBlockCipher = new mRemoteNG.UI.Controls.Base.NGComboBox(); this.groupAdvancedSecurityOptions = new mRemoteNG.UI.Controls.Base.NGGroupBox(); - this.numberBoxKdfIterations = new mRemoteNG.UI.Controls.Base.NGNumericUpDown(); - this.labelKdfIterations = new mRemoteNG.UI.Controls.Base.NGLabel(); this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.btnTestSettings = new mRemoteNG.UI.Controls.Base.NGButton(); + this.labelKdfIterations = new mRemoteNG.UI.Controls.Base.NGLabel(); + this.numberBoxKdfIterations = new mRemoteNG.UI.Controls.Base.NGNumericUpDown(); this.groupAdvancedSecurityOptions.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.numberBoxKdfIterations)).BeginInit(); this.tableLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numberBoxKdfIterations)).BeginInit(); this.SuspendLayout(); // // chkEncryptCompleteFile @@ -60,7 +61,7 @@ this.comboBoxEncryptionEngine.Dock = System.Windows.Forms.DockStyle.Fill; this.comboBoxEncryptionEngine.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxEncryptionEngine.FormattingEnabled = true; - this.comboBoxEncryptionEngine.Location = new System.Drawing.Point(223, 3); + this.comboBoxEncryptionEngine.Location = new System.Drawing.Point(190, 3); this.comboBoxEncryptionEngine.Name = "comboBoxEncryptionEngine"; this.comboBoxEncryptionEngine.Size = new System.Drawing.Size(131, 21); this.comboBoxEncryptionEngine.Sorted = true; @@ -72,7 +73,7 @@ this.labelEncryptionEngine.Dock = System.Windows.Forms.DockStyle.Fill; this.labelEncryptionEngine.Location = new System.Drawing.Point(3, 0); this.labelEncryptionEngine.Name = "labelEncryptionEngine"; - this.labelEncryptionEngine.Size = new System.Drawing.Size(214, 26); + this.labelEncryptionEngine.Size = new System.Drawing.Size(181, 27); this.labelEncryptionEngine.TabIndex = 0; this.labelEncryptionEngine.Text = "Encryption Engine"; this.labelEncryptionEngine.TextAlign = System.Drawing.ContentAlignment.MiddleRight; @@ -81,9 +82,9 @@ // this.labelBlockCipher.AutoSize = true; this.labelBlockCipher.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelBlockCipher.Location = new System.Drawing.Point(3, 26); + this.labelBlockCipher.Location = new System.Drawing.Point(3, 27); this.labelBlockCipher.Name = "labelBlockCipher"; - this.labelBlockCipher.Size = new System.Drawing.Size(214, 26); + this.labelBlockCipher.Size = new System.Drawing.Size(181, 27); this.labelBlockCipher.TabIndex = 2; this.labelBlockCipher.Text = "Block Cipher Mode"; this.labelBlockCipher.TextAlign = System.Drawing.ContentAlignment.MiddleRight; @@ -94,21 +95,69 @@ this.comboBoxBlockCipher.Dock = System.Windows.Forms.DockStyle.Fill; this.comboBoxBlockCipher.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxBlockCipher.FormattingEnabled = true; - this.comboBoxBlockCipher.Location = new System.Drawing.Point(223, 29); + this.comboBoxBlockCipher.Location = new System.Drawing.Point(190, 30); this.comboBoxBlockCipher.Name = "comboBoxBlockCipher"; this.comboBoxBlockCipher.Size = new System.Drawing.Size(131, 21); - this.comboBoxBlockCipher.TabIndex = 3; + this.comboBoxBlockCipher.TabIndex = 2; // // groupAdvancedSecurityOptions // this.groupAdvancedSecurityOptions.Controls.Add(this.tableLayoutPanel1); this.groupAdvancedSecurityOptions.Location = new System.Drawing.Point(3, 30); this.groupAdvancedSecurityOptions.Name = "groupAdvancedSecurityOptions"; - this.groupAdvancedSecurityOptions.Size = new System.Drawing.Size(604, 112); + this.groupAdvancedSecurityOptions.Size = new System.Drawing.Size(604, 134); this.groupAdvancedSecurityOptions.TabIndex = 1; this.groupAdvancedSecurityOptions.TabStop = false; this.groupAdvancedSecurityOptions.Text = "Advanced Security Options"; // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.AutoSize = true; + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.Controls.Add(this.labelKdfIterations, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.numberBoxKdfIterations, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.labelBlockCipher, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.comboBoxEncryptionEngine, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.labelEncryptionEngine, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.comboBoxBlockCipher, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.btnTestSettings, 1, 3); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Left; + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 18); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.Size = new System.Drawing.Size(324, 113); + this.tableLayoutPanel1.TabIndex = 2; + // + // btnTestSettings + // + this.btnTestSettings._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.OUT; + this.btnTestSettings.AutoSize = true; + this.btnTestSettings.Dock = System.Windows.Forms.DockStyle.Right; + this.btnTestSettings.Location = new System.Drawing.Point(240, 85); + this.btnTestSettings.Name = "btnTestSettings"; + this.btnTestSettings.Size = new System.Drawing.Size(81, 25); + this.btnTestSettings.TabIndex = 4; + this.btnTestSettings.Text = "Test Settings"; + this.btnTestSettings.UseVisualStyleBackColor = true; + this.btnTestSettings.Click += new System.EventHandler(this.BtnTestSettings_Click); + // + // labelKdfIterations + // + this.labelKdfIterations.AutoSize = true; + this.labelKdfIterations.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelKdfIterations.Location = new System.Drawing.Point(3, 54); + this.labelKdfIterations.Name = "labelKdfIterations"; + this.labelKdfIterations.Size = new System.Drawing.Size(181, 28); + this.labelKdfIterations.TabIndex = 4; + this.labelKdfIterations.Text = "Key Derivation Function Iterations"; + this.labelKdfIterations.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // // numberBoxKdfIterations // this.numberBoxKdfIterations.Dock = System.Windows.Forms.DockStyle.Fill; @@ -117,7 +166,7 @@ 0, 0, 0}); - this.numberBoxKdfIterations.Location = new System.Drawing.Point(223, 55); + this.numberBoxKdfIterations.Location = new System.Drawing.Point(190, 57); this.numberBoxKdfIterations.Maximum = new decimal(new int[] { 50000, 0, @@ -130,7 +179,7 @@ 0}); this.numberBoxKdfIterations.Name = "numberBoxKdfIterations"; this.numberBoxKdfIterations.Size = new System.Drawing.Size(131, 22); - this.numberBoxKdfIterations.TabIndex = 5; + this.numberBoxKdfIterations.TabIndex = 3; this.numberBoxKdfIterations.ThousandsSeparator = true; this.numberBoxKdfIterations.Value = new decimal(new int[] { 1000, @@ -138,38 +187,6 @@ 0, 0}); // - // labelKdfIterations - // - this.labelKdfIterations.AutoSize = true; - this.labelKdfIterations.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelKdfIterations.Location = new System.Drawing.Point(3, 52); - this.labelKdfIterations.Name = "labelKdfIterations"; - this.labelKdfIterations.Size = new System.Drawing.Size(214, 26); - this.labelKdfIterations.TabIndex = 4; - this.labelKdfIterations.Text = "Key Derivation Function Iterations"; - this.labelKdfIterations.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // tableLayoutPanel1 - // - this.tableLayoutPanel1.ColumnCount = 2; - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 220F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanel1.Controls.Add(this.labelKdfIterations, 0, 2); - this.tableLayoutPanel1.Controls.Add(this.numberBoxKdfIterations, 1, 2); - this.tableLayoutPanel1.Controls.Add(this.labelBlockCipher, 0, 1); - this.tableLayoutPanel1.Controls.Add(this.comboBoxEncryptionEngine, 1, 0); - this.tableLayoutPanel1.Controls.Add(this.labelEncryptionEngine, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.comboBoxBlockCipher, 1, 1); - this.tableLayoutPanel1.Location = new System.Drawing.Point(6, 21); - this.tableLayoutPanel1.Name = "tableLayoutPanel1"; - this.tableLayoutPanel1.RowCount = 4; - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); - this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanel1.Size = new System.Drawing.Size(357, 81); - this.tableLayoutPanel1.TabIndex = 2; - // // SecurityPage // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); @@ -179,9 +196,10 @@ this.Name = "SecurityPage"; this.Size = new System.Drawing.Size(610, 490); this.groupAdvancedSecurityOptions.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.numberBoxKdfIterations)).EndInit(); + this.groupAdvancedSecurityOptions.PerformLayout(); this.tableLayoutPanel1.ResumeLayout(false); this.tableLayoutPanel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numberBoxKdfIterations)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -198,5 +216,6 @@ private Controls.Base.NGNumericUpDown numberBoxKdfIterations; private Controls.Base.NGLabel labelKdfIterations; private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private Controls.Base.NGButton btnTestSettings; } } diff --git a/mRemoteV1/UI/Forms/OptionsPages/SecurityPage.cs b/mRemoteV1/UI/Forms/OptionsPages/SecurityPage.cs index 2aca2c0c..cf240151 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/SecurityPage.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/SecurityPage.cs @@ -1,6 +1,12 @@ using System; using System.ComponentModel; +using System.Diagnostics; +using System.Linq; +using System.Windows.Forms; +using mRemoteNG.App; +using mRemoteNG.Config.Serializers.Xml; using mRemoteNG.Security; +using mRemoteNG.Security.Factories; namespace mRemoteNG.UI.Forms.OptionsPages { @@ -30,6 +36,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages labelEncryptionEngine.Text = Language.strEncryptionEngine; labelKdfIterations.Text = Language.strEncryptionKeyDerivationIterations; groupAdvancedSecurityOptions.Text = Language.strAdvancedSecurityOptions; + btnTestSettings.Text = Language.TestSettings; } public override void LoadSettings() @@ -62,5 +69,33 @@ namespace mRemoteNG.UI.Forms.OptionsPages { comboBoxBlockCipher.DataSource = Enum.GetValues(typeof(BlockCipherModes)); } + + private void BtnTestSettings_Click(object sender, EventArgs e) + { + var connectionTree = Runtime.ConnectionsService.ConnectionTreeModel; + if (!connectionTree.RootNodes.Any()) + return; + + var engine = (BlockCipherEngines) comboBoxEncryptionEngine.SelectedItem; + var mode = (BlockCipherModes) comboBoxBlockCipher.SelectedItem; + var cryptographyProvider = new CryptoProviderFactory(engine, mode).Build(); + cryptographyProvider.KeyDerivationIterations = (int) numberBoxKdfIterations.Value; + + var serializerFactory = new XmlConnectionSerializerFactory(); + var serializer = serializerFactory.Build(cryptographyProvider, connectionTree, useFullEncryption: chkEncryptCompleteFile.Checked); + var nodeCount = connectionTree.GetRecursiveChildList().Count; + + var timer = Stopwatch.StartNew(); + var rootNode = connectionTree.RootNodes.First(); + serializer.Serialize(rootNode); + timer.Stop(); + + MessageBox.Show(this, + string.Format(Language.EncryptionTestResultMessage, + nodeCount, engine, mode, numberBoxKdfIterations.Value, timer.Elapsed.TotalSeconds), + Language.EncryptionTest, + MessageBoxButtons.OK, + MessageBoxIcon.Information); + } } } \ No newline at end of file diff --git a/mRemoteV1/mRemoteV1.csproj b/mRemoteV1/mRemoteV1.csproj index e5b4be9a..4fab83af 100644 --- a/mRemoteV1/mRemoteV1.csproj +++ b/mRemoteV1/mRemoteV1.csproj @@ -172,6 +172,7 @@ + From cf680eba4ae20bfacacef622db1f3163881d6e60 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Sat, 18 May 2019 15:10:51 -0500 Subject: [PATCH 15/32] fixed issue with collection-changed exception when iterating over items to save --- .../ConnectionSerializers/Xml/XmlConnectionsDocumentCompiler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDocumentCompiler.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDocumentCompiler.cs index acdde98c..8dc44dd1 100644 --- a/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDocumentCompiler.cs +++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDocumentCompiler.cs @@ -61,7 +61,7 @@ namespace mRemoteNG.Config.Serializers.Xml var serializationTargetAsContainer = serializationTarget as ContainerInfo; if (serializationTargetAsContainer == null) return; - foreach (var child in serializationTargetAsContainer.Children) + foreach (var child in serializationTargetAsContainer.Children.ToArray()) CompileRecursive(child, newElement); } From 519efe633fcde5f7635596fbf522bfe4114c40d7 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Sat, 18 May 2019 15:14:40 -0500 Subject: [PATCH 16/32] updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 233a5e01..0161a7da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### Changed - #1443: Chinese (simplified) translation improvements - #1437: Norwegian translation improvements +- #1239: Increased default key derivation function (KDF) iterations from 1000 to 10000 ### Fixed - #1447: Exception occurs when resetting layout - #1439: Searching in hosts tree loses first keystroke From c28b4d39addd2e8a053ba0bd289a7e3a874e19d7 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Mon, 20 May 2019 07:41:36 -0500 Subject: [PATCH 17/32] moved sql scripts to separate files to ease management --- mRemoteV1/Documentation/mssql_db_setup.sql | 155 ++++++++ mRemoteV1/Documentation/mysql_db_setup.sql | 184 ++++++++++ mRemoteV1/Documentation/sql_configuration.rst | 339 +----------------- mRemoteV1/mRemoteV1.csproj | 2 + 4 files changed, 345 insertions(+), 335 deletions(-) create mode 100644 mRemoteV1/Documentation/mssql_db_setup.sql create mode 100644 mRemoteV1/Documentation/mysql_db_setup.sql diff --git a/mRemoteV1/Documentation/mssql_db_setup.sql b/mRemoteV1/Documentation/mssql_db_setup.sql new file mode 100644 index 00000000..8a6d3a09 --- /dev/null +++ b/mRemoteV1/Documentation/mssql_db_setup.sql @@ -0,0 +1,155 @@ +if exists (select * from dbo.sysobjects + where id = object_id(N'[dbo].[tblCons]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) +drop table [dbo].[tblCons] +GO + +if exists (select * from dbo.sysobjects + where id = object_id(N'[dbo].[tblRoot]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) +drop table [dbo].[tblRoot] +GO + +if exists (select * from dbo.sysobjects + where id = object_id(N'[dbo].[tblUpdate]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) +drop table [dbo].[tblUpdate] +GO + +CREATE TABLE [dbo].[tblCons] ( + [ID] [int] IDENTITY (1001, 1) NOT NULL , + [ConstantID] [varchar] (128) NULL , + [PositionID] [int] NOT NULL , + [ParentID] [varchar] (128) NULL , + [LastChange] [datetime] NOT NULL , + [Name] [varchar] (128) NOT NULL , + [Type] [varchar] (32) NOT NULL , + [Expanded] [bit] NOT NULL , + [Description] [varchar] (1024) NULL , + [Icon] [varchar] (128) NOT NULL , + [Panel] [varchar] (128) NOT NULL , + [Username] [varchar] (512) NULL , + [DomainName] [varchar] (512) NULL , + [Password] [varchar] (1024) NULL , + [Hostname] [varchar] (512) NULL , + [Protocol] [varchar] (32) NOT NULL , + [PuttySession] [varchar] (128) NULL , + [Port] [int] NOT NULL , + [ConnectToConsole] [bit] NOT NULL , + [UseCredSsp] [bit] NOT NULL , + [RenderingEngine] [varchar] (10) NULL , + [ICAEncryptionStrength] [varchar] (32) NOT NULL , + [RDPAuthenticationLevel] [varchar] (32) NOT NULL , + [RDPMinutesToIdleTimeout] [int] NOT NULL, + [RDPAlertIdleTimeout] [bit] NOT NULL, + [Colors] [varchar] (32) NOT NULL , + [Resolution] [varchar] (32) NOT NULL , + [DisplayWallpaper] [bit] NOT NULL , + [DisplayThemes] [bit] NOT NULL , + [EnableFontSmoothing] [bit] NOT NULL , + [EnableDesktopComposition] [bit] NOT NULL , + [CacheBitmaps] [bit] NOT NULL , + [RedirectDiskDrives] [bit] NOT NULL , + [RedirectPorts] [bit] NOT NULL , + [RedirectPrinters] [bit] NOT NULL , + [RedirectSmartCards] [bit] NOT NULL , + [RedirectSound] [varchar] (64) NOT NULL , + [SoundQuality] [varchar] (20) NOT NULL, + [RedirectAudioCapture] [bit] NOT NULL, + [RedirectKeys] [bit] NOT NULL , + [Connected] [bit] NOT NULL , + [PreExtApp] [varchar] (256) NULL , + [PostExtApp] [varchar] (256) NULL , + [MacAddress] [varchar] (32) NULL , + [UserField] [varchar] (256) NULL , + [ExtApp] [varchar] (256) NULL , + [VNCCompression] [varchar] (10) NULL , + [VNCEncoding] [varchar] (20) NULL , + [VNCAuthMode] [varchar] (10) NULL , + [VNCProxyType] [varchar] (20) NULL , + [VNCProxyIP] [varchar] (128) NULL , + [VNCProxyPort] [int] NULL , + [VNCProxyUsername] [varchar] (512) NULL , + [VNCProxyPassword] [varchar] (1024) NULL , + [VNCColors] [varchar] (10) NULL , + [VNCSmartSizeMode] [varchar] (20) NULL , + [VNCViewOnly] [bit] NOT NULL , + [RDGatewayUsageMethod] [varchar] (32) NOT NULL , + [RDGatewayHostname] [varchar] (512) NULL , + [RDGatewayUseConnectionCredentials] [varchar] (32) NOT NULL , + [RDGatewayUsername] [varchar] (512) NULL , + [RDGatewayPassword] [varchar] (1024) NULL , + [RDGatewayDomain] [varchar] (512) NULL , + [InheritCacheBitmaps] [bit] NOT NULL , + [InheritColors] [bit] NOT NULL , + [InheritDescription] [bit] NOT NULL , + [InheritDisplayThemes] [bit] NOT NULL , + [InheritDisplayWallpaper] [bit] NOT NULL , + [InheritEnableFontSmoothing] [bit] NOT NULL , + [InheritEnableDesktopComposition] [bit] NOT NULL , + [InheritDomain] [bit] NOT NULL , + [InheritIcon] [bit] NOT NULL , + [InheritPanel] [bit] NOT NULL , + [InheritPassword] [bit] NOT NULL , + [InheritPort] [bit] NOT NULL , + [InheritProtocol] [bit] NOT NULL , + [InheritPuttySession] [bit] NOT NULL , + [InheritRedirectDiskDrives] [bit] NOT NULL , + [InheritRedirectKeys] [bit] NOT NULL , + [InheritRedirectPorts] [bit] NOT NULL , + [InheritRedirectPrinters] [bit] NOT NULL , + [InheritRedirectSmartCards] [bit] NOT NULL , + [InheritRedirectSound] [bit] NOT NULL , + [InheritSoundQuality] [bit] NOT NULL, + [InheritRedirectAudioCapture] [bit] NOT NULL, + [InheritResolution] [bit] NOT NULL , + [InheritUseConsoleSession] [bit] NOT NULL , + [InheritUseCredSsp] [bit] NOT NULL , + [InheritRenderingEngine] [bit] NOT NULL , + [InheritICAEncryptionStrength] [bit] NOT NULL , + [InheritRDPAuthenticationLevel] [bit] NOT NULL , + [InheritRDPMinutesToIdleTimeout] [bit] NOT NULL, + [InheritRDPAlertIdleTimeout] [bit] NOT NULL, + [InheritUsername] [bit] NOT NULL , + [InheritPreExtApp] [bit] NOT NULL , + [InheritPostExtApp] [bit] NOT NULL , + [InheritMacAddress] [bit] NOT NULL , + [InheritUserField] [bit] NOT NULL , + [InheritExtApp] [bit] NOT NULL , + [InheritVNCCompression] [bit] NOT NULL, + [InheritVNCEncoding] [bit] NOT NULL , + [InheritVNCAuthMode] [bit] NOT NULL , + [InheritVNCProxyType] [bit] NOT NULL , + [InheritVNCProxyIP] [bit] NOT NULL , + [InheritVNCProxyPort] [bit] NOT NULL , + [InheritVNCProxyUsername] [bit] NOT NULL , + [InheritVNCProxyPassword] [bit] NOT NULL , + [InheritVNCColors] [bit] NOT NULL , + [InheritVNCSmartSizeMode] [bit] NOT NULL , + [InheritVNCViewOnly] [bit] NOT NULL , + [InheritRDGatewayUsageMethod] [bit] NOT NULL , + [InheritRDGatewayHostname] [bit] NOT NULL , + [InheritRDGatewayUseConnectionCredentials] [bit] NOT NULL , + [InheritRDGatewayUsername] [bit] NOT NULL , + [InheritRDGatewayPassword] [bit] NOT NULL , + [InheritRDGatewayDomain] [bit] NOT NULL , + [LoadBalanceInfo] [varchar] (1024) NULL , + [AutomaticResize] [bit] NOT NULL DEFAULT 1 , + [InheritLoadBalanceInfo] [bit] NOT NULL DEFAULT 0 , + [InheritAutomaticResize] [bit] NOT NULL DEFAULT 0 , + [RedirectClipboard] [bit] NOT NULL DEFAULT 0 , + [InheritRedirectClipboard] [bit] NOT NULL DEFAULT 0, + [RedirectAudioCapture] [bit] NOT NULL DEFAULT 0, + [InheritRedirectAudioCapture] [bit] NOT NULL DEFAULT 0 +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[tblRoot] ( + [Name] [varchar] (2048) NOT NULL , + [Export] [bit] NOT NULL , + [Protected] [varchar] (4048) NOT NULL , + [ConfVersion] [float] NOT NULL +) ON [PRIMARY] +GO + +CREATE TABLE [dbo].[tblUpdate] ( + [LastUpdate] [datetime] NULL +) ON [PRIMARY] +GO \ No newline at end of file diff --git a/mRemoteV1/Documentation/mysql_db_setup.sql b/mRemoteV1/Documentation/mysql_db_setup.sql new file mode 100644 index 00000000..66028de7 --- /dev/null +++ b/mRemoteV1/Documentation/mysql_db_setup.sql @@ -0,0 +1,184 @@ +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `tblCons` +-- + +DROP TABLE IF EXISTS `tblCons`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tblCons` ( + `ID` int(11) NOT NULL AUTO_INCREMENT, + `ConstantID` varchar(128) DEFAULT NULL, + `PositionID` int(11) NOT NULL, + `ParentID` varchar(128) DEFAULT NULL, + `LastChange` datetime NOT NULL, + `Name` varchar(128) NOT NULL, + `Type` varchar(32) NOT NULL, + `Expanded` tinyint(1) NOT NULL, + `Description` varchar(1024) DEFAULT NULL, + `Icon` varchar(128) NOT NULL, + `Panel` varchar(128) NOT NULL, + `Username` varchar(512) DEFAULT NULL, + `DomainName` varchar(512) DEFAULT NULL, + `Password` varchar(1024) DEFAULT NULL, + `Hostname` varchar(512) DEFAULT NULL, + `Protocol` varchar(32) NOT NULL, + `PuttySession` varchar(128) DEFAULT NULL, + `Port` int(11) NOT NULL, + `ConnectToConsole` tinyint(1) NOT NULL, + `UseCredSsp` tinyint(1) NOT NULL, + `RenderingEngine` varchar(10) DEFAULT NULL, + `ICAEncryptionStrength` varchar(32) NOT NULL, + `RDPAuthenticationLevel` varchar(32) NOT NULL, + `RDPMinutesToIdleTimeout` int(11) NOT NULL, + `RDPAlertIdleTimeout` tinyint(1) NOT NULL, + `Colors` varchar(32) NOT NULL, + `Resolution` varchar(32) NOT NULL, + `DisplayWallpaper` tinyint(1) NOT NULL, + `DisplayThemes` tinyint(1) NOT NULL, + `EnableFontSmoothing` tinyint(1) NOT NULL, + `EnableDesktopComposition` tinyint(1) NOT NULL, + `CacheBitmaps` tinyint(1) NOT NULL, + `RedirectDiskDrives` tinyint(1) NOT NULL, + `RedirectPorts` tinyint(1) NOT NULL, + `RedirectPrinters` tinyint(1) NOT NULL, + `RedirectSmartCards` tinyint(1) NOT NULL, + `RedirectSound` varchar(64) NOT NULL, + `SoundQuality` varchar(20) NOT NULL, + `RedirectAudioCapture` tinyint(1) NOT NULL, + `RedirectKeys` tinyint(1) NOT NULL, + `Connected` tinyint(1) NOT NULL, + `PreExtApp` varchar(256) DEFAULT NULL, + `PostExtApp` varchar(256) DEFAULT NULL, + `MacAddress` varchar(32) DEFAULT NULL, + `UserField` varchar(256) DEFAULT NULL, + `ExtApp` varchar(256) DEFAULT NULL, + `VNCCompression` varchar(10) DEFAULT NULL, + `VNCEncoding` varchar(20) DEFAULT NULL, + `VNCAuthMode` varchar(10) DEFAULT NULL, + `VNCProxyType` varchar(20) DEFAULT NULL, + `VNCProxyIP` varchar(128) DEFAULT NULL, + `VNCProxyPort` int(11) DEFAULT NULL, + `VNCProxyUsername` varchar(512) DEFAULT NULL, + `VNCProxyPassword` varchar(1024) DEFAULT NULL, + `VNCColors` varchar(10) DEFAULT NULL, + `VNCSmartSizeMode` varchar(20) DEFAULT NULL, + `VNCViewOnly` tinyint(1) NOT NULL, + `RDGatewayUsageMethod` varchar(32) NOT NULL, + `RDGatewayHostname` varchar(512) DEFAULT NULL, + `RDGatewayUseConnectionCredentials` varchar(32) NOT NULL, + `RDGatewayUsername` varchar(512) DEFAULT NULL, + `RDGatewayPassword` varchar(1024) DEFAULT NULL, + `RDGatewayDomain` varchar(512) DEFAULT NULL, + `InheritCacheBitmaps` tinyint(1) NOT NULL, + `InheritColors` tinyint(1) NOT NULL, + `InheritDescription` tinyint(1) NOT NULL, + `InheritDisplayThemes` tinyint(1) NOT NULL, + `InheritDisplayWallpaper` tinyint(1) NOT NULL, + `InheritEnableFontSmoothing` tinyint(1) NOT NULL, + `InheritEnableDesktopComposition` tinyint(1) NOT NULL, + `InheritDomain` tinyint(1) NOT NULL, + `InheritIcon` tinyint(1) NOT NULL, + `InheritPanel` tinyint(1) NOT NULL, + `InheritPassword` tinyint(1) NOT NULL, + `InheritPort` tinyint(1) NOT NULL, + `InheritProtocol` tinyint(1) NOT NULL, + `InheritPuttySession` tinyint(1) NOT NULL, + `InheritRedirectDiskDrives` tinyint(1) NOT NULL, + `InheritRedirectKeys` tinyint(1) NOT NULL, + `InheritRedirectPorts` tinyint(1) NOT NULL, + `InheritRedirectPrinters` tinyint(1) NOT NULL, + `InheritRedirectSmartCards` tinyint(1) NOT NULL, + `InheritRedirectSound` tinyint(1) NOT NULL, + `InheritSoundQuality` tinyint(1) NOT NULL, + `InheritRedirectAudioCapture` tinyint(1) NOT NULL, + `InheritResolution` tinyint(1) NOT NULL, + `InheritUseConsoleSession` tinyint(1) NOT NULL, + `InheritUseCredSsp` tinyint(1) NOT NULL, + `InheritRenderingEngine` tinyint(1) NOT NULL, + `InheritICAEncryptionStrength` tinyint(1) NOT NULL, + `InheritRDPAuthenticationLevel` tinyint(1) NOT NULL, + `InheritRDPMinutesToIdleTimeout` tinyint(1) NOT NULL, + `InheritRDPAlertIdleTimeout` tinyint(1) NOT NULL, + `InheritUsername` tinyint(1) NOT NULL, + `InheritPreExtApp` tinyint(1) NOT NULL, + `InheritPostExtApp` tinyint(1) NOT NULL, + `InheritMacAddress` tinyint(1) NOT NULL, + `InheritUserField` tinyint(1) NOT NULL, + `InheritExtApp` tinyint(1) NOT NULL, + `InheritVNCCompression` tinyint(1) NOT NULL, + `InheritVNCEncoding` tinyint(1) NOT NULL, + `InheritVNCAuthMode` tinyint(1) NOT NULL, + `InheritVNCProxyType` tinyint(1) NOT NULL, + `InheritVNCProxyIP` tinyint(1) NOT NULL, + `InheritVNCProxyPort` tinyint(1) NOT NULL, + `InheritVNCProxyUsername` tinyint(1) NOT NULL, + `InheritVNCProxyPassword` tinyint(1) NOT NULL, + `InheritVNCColors` tinyint(1) NOT NULL, + `InheritVNCSmartSizeMode` tinyint(1) NOT NULL, + `InheritVNCViewOnly` tinyint(1) NOT NULL, + `InheritRDGatewayUsageMethod` tinyint(1) NOT NULL, + `InheritRDGatewayHostname` tinyint(1) NOT NULL, + `InheritRDGatewayUseConnectionCredentials` tinyint(1) NOT NULL, + `InheritRDGatewayUsername` tinyint(1) NOT NULL, + `InheritRDGatewayPassword` tinyint(1) NOT NULL, + `InheritRDGatewayDomain` tinyint(1) NOT NULL, + `LoadBalanceInfo` varchar(1024) DEFAULT NULL, + `AutomaticResize` tinyint(1) NOT NULL DEFAULT 1, + `InheritLoadBalanceInfo` tinyint(1) NOT NULL DEFAULT 0, + `InheritAutomaticResize` tinyint(1) NOT NULL DEFAULT 0, + `RedirectClipboard` tinyint(1) NOT NULL DEFAULT 0, + `InheritRedirectClipboard` tinyint(1) NOT NULL DEFAULT 0, + `RedirectAudioCapture` bit NOT NULL DEFAULT 0, + `InheritRedirectAudioCapture` bit NOT NULL DEFAULT 0, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB AUTO_INCREMENT=3324 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `tblRoot` +-- + +DROP TABLE IF EXISTS `tblRoot`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tblRoot` ( + `Name` varchar(2048) NOT NULL, + `Export` tinyint(1) NOT NULL, + `Protected` varchar(4048) NOT NULL, + `ConfVersion` double NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Table structure for table `tblUpdate` +-- + +DROP TABLE IF EXISTS `tblUpdate`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `tblUpdate` ( + `LastUpdate` datetime(3) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + + +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; \ No newline at end of file diff --git a/mRemoteV1/Documentation/sql_configuration.rst b/mRemoteV1/Documentation/sql_configuration.rst index 6b4c23aa..62773e12 100644 --- a/mRemoteV1/Documentation/sql_configuration.rst +++ b/mRemoteV1/Documentation/sql_configuration.rst @@ -39,343 +39,12 @@ SQL Table creation Scripts MSSQL ----- -.. code-block:: sql +.. include:: mssql_db_setup.sql + :code: sql - if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblCons]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) - drop table [dbo].[tblCons] - GO - - if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblRoot]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) - drop table [dbo].[tblRoot] - GO - - if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblUpdate]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) - drop table [dbo].[tblUpdate] - GO - - CREATE TABLE [dbo].[tblCons] ( - [ID] [int] IDENTITY (1001, 1) NOT NULL , - [ConstantID] [varchar] (128) NULL , - [PositionID] [int] NOT NULL , - [ParentID] [varchar] (128) NULL , - [LastChange] [datetime] NOT NULL , - [Name] [varchar] (128) NOT NULL , - [Type] [varchar] (32) NOT NULL , - [Expanded] [bit] NOT NULL , - [Description] [varchar] (1024) NULL , - [Icon] [varchar] (128) NOT NULL , - [Panel] [varchar] (128) NOT NULL , - [Username] [varchar] (512) NULL , - [DomainName] [varchar] (512) NULL , - [Password] [varchar] (1024) NULL , - [Hostname] [varchar] (512) NULL , - [Protocol] [varchar] (32) NOT NULL , - [PuttySession] [varchar] (128) NULL , - [Port] [int] NOT NULL , - [ConnectToConsole] [bit] NOT NULL , - [UseCredSsp] [bit] NOT NULL , - [RenderingEngine] [varchar] (10) NULL , - [ICAEncryptionStrength] [varchar] (32) NOT NULL , - [RDPAuthenticationLevel] [varchar] (32) NOT NULL , - [RDPMinutesToIdleTimeout] [int] NOT NULL, - [RDPAlertIdleTimeout] [bit] NOT NULL, - [Colors] [varchar] (32) NOT NULL , - [Resolution] [varchar] (32) NOT NULL , - [DisplayWallpaper] [bit] NOT NULL , - [DisplayThemes] [bit] NOT NULL , - [EnableFontSmoothing] [bit] NOT NULL , - [EnableDesktopComposition] [bit] NOT NULL , - [CacheBitmaps] [bit] NOT NULL , - [RedirectDiskDrives] [bit] NOT NULL , - [RedirectPorts] [bit] NOT NULL , - [RedirectPrinters] [bit] NOT NULL , - [RedirectSmartCards] [bit] NOT NULL , - [RedirectSound] [varchar] (64) NOT NULL , - [SoundQuality] [varchar] (20) NOT NULL, - [RedirectAudioCapture] [bit] NOT NULL, - [RedirectKeys] [bit] NOT NULL , - [Connected] [bit] NOT NULL , - [PreExtApp] [varchar] (256) NULL , - [PostExtApp] [varchar] (256) NULL , - [MacAddress] [varchar] (32) NULL , - [UserField] [varchar] (256) NULL , - [ExtApp] [varchar] (256) NULL , - [VNCCompression] [varchar] (10) NULL , - [VNCEncoding] [varchar] (20) NULL , - [VNCAuthMode] [varchar] (10) NULL , - [VNCProxyType] [varchar] (20) NULL , - [VNCProxyIP] [varchar] (128) NULL , - [VNCProxyPort] [int] NULL , - [VNCProxyUsername] [varchar] (512) NULL , - [VNCProxyPassword] [varchar] (1024) NULL , - [VNCColors] [varchar] (10) NULL , - [VNCSmartSizeMode] [varchar] (20) NULL , - [VNCViewOnly] [bit] NOT NULL , - [RDGatewayUsageMethod] [varchar] (32) NOT NULL , - [RDGatewayHostname] [varchar] (512) NULL , - [RDGatewayUseConnectionCredentials] [varchar] (32) NOT NULL , - [RDGatewayUsername] [varchar] (512) NULL , - [RDGatewayPassword] [varchar] (1024) NULL , - [RDGatewayDomain] [varchar] (512) NULL , - [InheritCacheBitmaps] [bit] NOT NULL , - [InheritColors] [bit] NOT NULL , - [InheritDescription] [bit] NOT NULL , - [InheritDisplayThemes] [bit] NOT NULL , - [InheritDisplayWallpaper] [bit] NOT NULL , - [InheritEnableFontSmoothing] [bit] NOT NULL , - [InheritEnableDesktopComposition] [bit] NOT NULL , - [InheritDomain] [bit] NOT NULL , - [InheritIcon] [bit] NOT NULL , - [InheritPanel] [bit] NOT NULL , - [InheritPassword] [bit] NOT NULL , - [InheritPort] [bit] NOT NULL , - [InheritProtocol] [bit] NOT NULL , - [InheritPuttySession] [bit] NOT NULL , - [InheritRedirectDiskDrives] [bit] NOT NULL , - [InheritRedirectKeys] [bit] NOT NULL , - [InheritRedirectPorts] [bit] NOT NULL , - [InheritRedirectPrinters] [bit] NOT NULL , - [InheritRedirectSmartCards] [bit] NOT NULL , - [InheritRedirectSound] [bit] NOT NULL , - [InheritSoundQuality] [bit] NOT NULL, - [InheritRedirectAudioCapture] [bit] NOT NULL, - [InheritResolution] [bit] NOT NULL , - [InheritUseConsoleSession] [bit] NOT NULL , - [InheritUseCredSsp] [bit] NOT NULL , - [InheritRenderingEngine] [bit] NOT NULL , - [InheritICAEncryptionStrength] [bit] NOT NULL , - [InheritRDPAuthenticationLevel] [bit] NOT NULL , - [InheritRDPMinutesToIdleTimeout] [bit] NOT NULL, - [InheritRDPAlertIdleTimeout] [bit] NOT NULL, - [InheritUsername] [bit] NOT NULL , - [InheritPreExtApp] [bit] NOT NULL , - [InheritPostExtApp] [bit] NOT NULL , - [InheritMacAddress] [bit] NOT NULL , - [InheritUserField] [bit] NOT NULL , - [InheritExtApp] [bit] NOT NULL , - [InheritVNCCompression] [bit] NOT NULL, - [InheritVNCEncoding] [bit] NOT NULL , - [InheritVNCAuthMode] [bit] NOT NULL , - [InheritVNCProxyType] [bit] NOT NULL , - [InheritVNCProxyIP] [bit] NOT NULL , - [InheritVNCProxyPort] [bit] NOT NULL , - [InheritVNCProxyUsername] [bit] NOT NULL , - [InheritVNCProxyPassword] [bit] NOT NULL , - [InheritVNCColors] [bit] NOT NULL , - [InheritVNCSmartSizeMode] [bit] NOT NULL , - [InheritVNCViewOnly] [bit] NOT NULL , - [InheritRDGatewayUsageMethod] [bit] NOT NULL , - [InheritRDGatewayHostname] [bit] NOT NULL , - [InheritRDGatewayUseConnectionCredentials] [bit] NOT NULL , - [InheritRDGatewayUsername] [bit] NOT NULL , - [InheritRDGatewayPassword] [bit] NOT NULL , - [InheritRDGatewayDomain] [bit] NOT NULL , - [LoadBalanceInfo] [varchar] (1024) NULL , - [AutomaticResize] [bit] NOT NULL DEFAULT 1 , - [InheritLoadBalanceInfo] [bit] NOT NULL DEFAULT 0 , - [InheritAutomaticResize] [bit] NOT NULL DEFAULT 0 , - [RedirectClipboard] [bit] NOT NULL DEFAULT 0 , - [InheritRedirectClipboard] [bit] NOT NULL DEFAULT 0 - ) ON [PRIMARY] - GO - - CREATE TABLE [dbo].[tblRoot] ( - [Name] [varchar] (2048) NOT NULL , - [Export] [bit] NOT NULL , - [Protected] [varchar] (4048) NOT NULL , - [ConfVersion] [float] NOT NULL - ) ON [PRIMARY] - GO - - CREATE TABLE [dbo].[tblUpdate] ( - [LastUpdate] [datetime] NULL - ) ON [PRIMARY] - GO MYSQL ----- -.. code-block:: sql - - /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; - /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; - /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; - /*!40101 SET NAMES utf8 */; - /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; - /*!40103 SET TIME_ZONE='+00:00' */; - /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; - /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; - /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; - /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - - -- - -- Table structure for table `tblCons` - -- - - DROP TABLE IF EXISTS `tblCons`; - /*!40101 SET @saved_cs_client = @@character_set_client */; - /*!40101 SET character_set_client = utf8 */; - CREATE TABLE `tblCons` ( - `ID` int(11) NOT NULL AUTO_INCREMENT, - `ConstantID` varchar(128) DEFAULT NULL, - `PositionID` int(11) NOT NULL, - `ParentID` varchar(128) DEFAULT NULL, - `LastChange` datetime NOT NULL, - `Name` varchar(128) NOT NULL, - `Type` varchar(32) NOT NULL, - `Expanded` tinyint(1) NOT NULL, - `Description` varchar(1024) DEFAULT NULL, - `Icon` varchar(128) NOT NULL, - `Panel` varchar(128) NOT NULL, - `Username` varchar(512) DEFAULT NULL, - `DomainName` varchar(512) DEFAULT NULL, - `Password` varchar(1024) DEFAULT NULL, - `Hostname` varchar(512) DEFAULT NULL, - `Protocol` varchar(32) NOT NULL, - `PuttySession` varchar(128) DEFAULT NULL, - `Port` int(11) NOT NULL, - `ConnectToConsole` tinyint(1) NOT NULL, - `UseCredSsp` tinyint(1) NOT NULL, - `RenderingEngine` varchar(10) DEFAULT NULL, - `ICAEncryptionStrength` varchar(32) NOT NULL, - `RDPAuthenticationLevel` varchar(32) NOT NULL, - `RDPMinutesToIdleTimeout` int(11) NOT NULL, - `RDPAlertIdleTimeout` tinyint(1) NOT NULL, - `Colors` varchar(32) NOT NULL, - `Resolution` varchar(32) NOT NULL, - `DisplayWallpaper` tinyint(1) NOT NULL, - `DisplayThemes` tinyint(1) NOT NULL, - `EnableFontSmoothing` tinyint(1) NOT NULL, - `EnableDesktopComposition` tinyint(1) NOT NULL, - `CacheBitmaps` tinyint(1) NOT NULL, - `RedirectDiskDrives` tinyint(1) NOT NULL, - `RedirectPorts` tinyint(1) NOT NULL, - `RedirectPrinters` tinyint(1) NOT NULL, - `RedirectSmartCards` tinyint(1) NOT NULL, - `RedirectSound` varchar(64) NOT NULL, - `SoundQuality` varchar(20) NOT NULL, - `RedirectAudioCapture` tinyint(1) NOT NULL, - `RedirectKeys` tinyint(1) NOT NULL, - `Connected` tinyint(1) NOT NULL, - `PreExtApp` varchar(256) DEFAULT NULL, - `PostExtApp` varchar(256) DEFAULT NULL, - `MacAddress` varchar(32) DEFAULT NULL, - `UserField` varchar(256) DEFAULT NULL, - `ExtApp` varchar(256) DEFAULT NULL, - `VNCCompression` varchar(10) DEFAULT NULL, - `VNCEncoding` varchar(20) DEFAULT NULL, - `VNCAuthMode` varchar(10) DEFAULT NULL, - `VNCProxyType` varchar(20) DEFAULT NULL, - `VNCProxyIP` varchar(128) DEFAULT NULL, - `VNCProxyPort` int(11) DEFAULT NULL, - `VNCProxyUsername` varchar(512) DEFAULT NULL, - `VNCProxyPassword` varchar(1024) DEFAULT NULL, - `VNCColors` varchar(10) DEFAULT NULL, - `VNCSmartSizeMode` varchar(20) DEFAULT NULL, - `VNCViewOnly` tinyint(1) NOT NULL, - `RDGatewayUsageMethod` varchar(32) NOT NULL, - `RDGatewayHostname` varchar(512) DEFAULT NULL, - `RDGatewayUseConnectionCredentials` varchar(32) NOT NULL, - `RDGatewayUsername` varchar(512) DEFAULT NULL, - `RDGatewayPassword` varchar(1024) DEFAULT NULL, - `RDGatewayDomain` varchar(512) DEFAULT NULL, - `InheritCacheBitmaps` tinyint(1) NOT NULL, - `InheritColors` tinyint(1) NOT NULL, - `InheritDescription` tinyint(1) NOT NULL, - `InheritDisplayThemes` tinyint(1) NOT NULL, - `InheritDisplayWallpaper` tinyint(1) NOT NULL, - `InheritEnableFontSmoothing` tinyint(1) NOT NULL, - `InheritEnableDesktopComposition` tinyint(1) NOT NULL, - `InheritDomain` tinyint(1) NOT NULL, - `InheritIcon` tinyint(1) NOT NULL, - `InheritPanel` tinyint(1) NOT NULL, - `InheritPassword` tinyint(1) NOT NULL, - `InheritPort` tinyint(1) NOT NULL, - `InheritProtocol` tinyint(1) NOT NULL, - `InheritPuttySession` tinyint(1) NOT NULL, - `InheritRedirectDiskDrives` tinyint(1) NOT NULL, - `InheritRedirectKeys` tinyint(1) NOT NULL, - `InheritRedirectPorts` tinyint(1) NOT NULL, - `InheritRedirectPrinters` tinyint(1) NOT NULL, - `InheritRedirectSmartCards` tinyint(1) NOT NULL, - `InheritRedirectSound` tinyint(1) NOT NULL, - `InheritSoundQuality` tinyint(1) NOT NULL, - `InheritRedirectAudioCapture` tinyint(1) NOT NULL, - `InheritResolution` tinyint(1) NOT NULL, - `InheritUseConsoleSession` tinyint(1) NOT NULL, - `InheritUseCredSsp` tinyint(1) NOT NULL, - `InheritRenderingEngine` tinyint(1) NOT NULL, - `InheritICAEncryptionStrength` tinyint(1) NOT NULL, - `InheritRDPAuthenticationLevel` tinyint(1) NOT NULL, - `InheritRDPMinutesToIdleTimeout` tinyint(1) NOT NULL, - `InheritRDPAlertIdleTimeout` tinyint(1) NOT NULL, - `InheritUsername` tinyint(1) NOT NULL, - `InheritPreExtApp` tinyint(1) NOT NULL, - `InheritPostExtApp` tinyint(1) NOT NULL, - `InheritMacAddress` tinyint(1) NOT NULL, - `InheritUserField` tinyint(1) NOT NULL, - `InheritExtApp` tinyint(1) NOT NULL, - `InheritVNCCompression` tinyint(1) NOT NULL, - `InheritVNCEncoding` tinyint(1) NOT NULL, - `InheritVNCAuthMode` tinyint(1) NOT NULL, - `InheritVNCProxyType` tinyint(1) NOT NULL, - `InheritVNCProxyIP` tinyint(1) NOT NULL, - `InheritVNCProxyPort` tinyint(1) NOT NULL, - `InheritVNCProxyUsername` tinyint(1) NOT NULL, - `InheritVNCProxyPassword` tinyint(1) NOT NULL, - `InheritVNCColors` tinyint(1) NOT NULL, - `InheritVNCSmartSizeMode` tinyint(1) NOT NULL, - `InheritVNCViewOnly` tinyint(1) NOT NULL, - `InheritRDGatewayUsageMethod` tinyint(1) NOT NULL, - `InheritRDGatewayHostname` tinyint(1) NOT NULL, - `InheritRDGatewayUseConnectionCredentials` tinyint(1) NOT NULL, - `InheritRDGatewayUsername` tinyint(1) NOT NULL, - `InheritRDGatewayPassword` tinyint(1) NOT NULL, - `InheritRDGatewayDomain` tinyint(1) NOT NULL, - `LoadBalanceInfo` varchar(1024) DEFAULT NULL, - `AutomaticResize` tinyint(1) NOT NULL DEFAULT 1, - `InheritLoadBalanceInfo` tinyint(1) NOT NULL DEFAULT 0, - `InheritAutomaticResize` tinyint(1) NOT NULL DEFAULT 0, - `RedirectClipboard` tinyint(1) NOT NULL DEFAULT 0, - `InheritRedirectClipboard` tinyint(1) NOT NULL DEFAULT 0, - PRIMARY KEY (`ID`) - ) ENGINE=InnoDB AUTO_INCREMENT=3324 DEFAULT CHARSET=latin1; - /*!40101 SET character_set_client = @saved_cs_client */; - - -- - -- Table structure for table `tblRoot` - -- - - DROP TABLE IF EXISTS `tblRoot`; - /*!40101 SET @saved_cs_client = @@character_set_client */; - /*!40101 SET character_set_client = utf8 */; - CREATE TABLE `tblRoot` ( - `Name` varchar(2048) NOT NULL, - `Export` tinyint(1) NOT NULL, - `Protected` varchar(4048) NOT NULL, - `ConfVersion` double NOT NULL - ) ENGINE=InnoDB DEFAULT CHARSET=latin1; - /*!40101 SET character_set_client = @saved_cs_client */; - - -- - -- Table structure for table `tblUpdate` - -- - - DROP TABLE IF EXISTS `tblUpdate`; - /*!40101 SET @saved_cs_client = @@character_set_client */; - /*!40101 SET character_set_client = utf8 */; - CREATE TABLE `tblUpdate` ( - `LastUpdate` datetime(3) DEFAULT NULL - ) ENGINE=InnoDB DEFAULT CHARSET=latin1; - /*!40101 SET character_set_client = @saved_cs_client */; - - - /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - - /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; - /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; - /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; - /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; - /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; - /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; - /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; +.. include:: mysql_db_setup.sql + :code: sql diff --git a/mRemoteV1/mRemoteV1.csproj b/mRemoteV1/mRemoteV1.csproj index 4fab83af..5fa077f3 100644 --- a/mRemoteV1/mRemoteV1.csproj +++ b/mRemoteV1/mRemoteV1.csproj @@ -1168,6 +1168,8 @@ + + From 0b1f04abe3a95aaa1d80fd5df74beabfb45ba28b Mon Sep 17 00:00:00 2001 From: David Sparer Date: Tue, 21 May 2019 07:51:41 -0500 Subject: [PATCH 18/32] fixes #1379 --- mRemoteV1/UI/Controls/QuickConnectComboBox.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mRemoteV1/UI/Controls/QuickConnectComboBox.cs b/mRemoteV1/UI/Controls/QuickConnectComboBox.cs index 2773849b..7380c284 100644 --- a/mRemoteV1/UI/Controls/QuickConnectComboBox.cs +++ b/mRemoteV1/UI/Controls/QuickConnectComboBox.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Drawing; using System.Windows.Forms; using mRemoteNG.App; @@ -20,6 +20,7 @@ namespace mRemoteNG.UI.Controls _comboBox.SelectedIndexChanged += ComboBox_SelectedIndexChanged; _comboBox.DrawItem += ComboBox_DrawItem; _comboBox.DrawMode = DrawMode.OwnerDrawFixed; + CausesValidation = false; // This makes it so that _ignoreEnter works correctly before any items are added to the combo box _comboBox.Items.Clear(); From f9160677c37f72078bac4f5a895611ec850d8521 Mon Sep 17 00:00:00 2001 From: Faryan Rezagholi Date: Thu, 23 May 2019 21:15:08 +0200 Subject: [PATCH 19/32] Update README.MD updated stale link, fixes #1457 --- README.MD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.MD b/README.MD index d9f82a0d..76c64349 100644 --- a/README.MD +++ b/README.MD @@ -38,7 +38,7 @@ For a detailed feature list and general usage support, refer to the [User Manual ## Installation -Before installing make sure you have all the required [prerequisites](https://github.com/mRemoteNG/mRemoteNG/wiki/Prerequisites). +Before installing make sure you fullfill all the [minimum requirements](https://mremoteng.readthedocs.io/en/latest/installation/minimum_requirements.html). mRemoteNG is available as a redistributable msi package, and can be downloaded from the following locations: * [GitHub](https://github.com/mRemoteNG/mRemoteNG/releases) From 22e43c84fca8626f8d80df1bcb77dae49c4aee58 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Fri, 24 May 2019 08:31:15 -0500 Subject: [PATCH 20/32] fixes #1456 --- mRemoteV1/UI/Window/ConnectionTreeWindow.Designer.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/mRemoteV1/UI/Window/ConnectionTreeWindow.Designer.cs b/mRemoteV1/UI/Window/ConnectionTreeWindow.Designer.cs index ff244842..1f819738 100644 --- a/mRemoteV1/UI/Window/ConnectionTreeWindow.Designer.cs +++ b/mRemoteV1/UI/Window/ConnectionTreeWindow.Designer.cs @@ -49,7 +49,6 @@ this.olvConnections.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; this.olvConnections.HideSelection = false; this.olvConnections.IsSimpleDragSource = true; - this.olvConnections.IsSimpleDropSink = true; this.olvConnections.LabelEdit = true; this.olvConnections.Location = new System.Drawing.Point(0, 24); this.olvConnections.MultiSelect = false; From 0f7c2c83b3fd1e310875ce58eac9b1380dcccc85 Mon Sep 17 00:00:00 2001 From: Faryan Rezagholi Date: Sat, 25 May 2019 12:43:10 +0200 Subject: [PATCH 21/32] fixed wrong word in russian tranlation #1458 --- mRemoteV1/Resources/Language/Language.ru.resx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mRemoteV1/Resources/Language/Language.ru.resx b/mRemoteV1/Resources/Language/Language.ru.resx index 69e7681a..f294419f 100644 --- a/mRemoteV1/Resources/Language/Language.ru.resx +++ b/mRemoteV1/Resources/Language/Language.ru.resx @@ -2446,7 +2446,7 @@ mRemoteNG сейчас прекратит работу и начнет проц Минуты в режим ожидания - Приминить + Применить Добавить From 31240fa50d25754e788ea8db529c2764f2e61917 Mon Sep 17 00:00:00 2001 From: David Sparer Date: Mon, 27 May 2019 12:22:26 -0500 Subject: [PATCH 22/32] moved most RDP enums to their own files --- CHANGELOG.md | 1 + ...ectionsDeserializerMremotengFormatTests.cs | 12 +- ...emoteDesktopConnectionDeserializerTests.cs | 6 +- ...topConnectionManager27DeserializerTests.cs | 10 +- ...sktopConnectionManagerDeserializerTests.cs | 10 +- .../AbstractConnectionInfoDataTests.cs | 12 +- .../ConfigWindowGeneralTests.cs | 8 +- .../ConfigWindowRdpSpecialTests.cs | 24 ++-- ...vConnectionsDeserializerMremotengFormat.cs | 12 +- .../MsSql/DataTableDeserializer.cs | 19 ++- .../Xml/XmlConnectionsDeserializer.cs | 30 ++-- .../RemoteDesktopConnectionDeserializer.cs | 26 ++-- ...oteDesktopConnectionManagerDeserializer.cs | 26 ++-- .../Connection/AbstractConnectionRecord.cs | 28 ++-- mRemoteV1/Connection/ConnectionInfo.cs | 43 ++---- .../Connection/Protocol/ICA/IcaProtocol.cs | 12 +- .../Protocol/RDP/AuthenticationLevel.cs | 16 +++ .../Protocol/RDP/RDGatewayUsageMethod.cs | 16 +++ .../RDP/RDGatewayUseConnectionCredentials.cs | 16 +++ .../Connection/Protocol/RDP/RDPColors.cs | 22 +++ .../Protocol/RDP/RDPPerformanceFlags.cs | 22 +++ .../Connection/Protocol/RDP/RDPResolutions.cs | 34 +++++ .../Protocol/RDP/RDPSoundQuality.cs | 16 +++ .../Connection/Protocol/RDP/RDPSounds.cs | 16 +++ .../Connection/Protocol/RDP/RdpProtocol.cs | 128 +----------------- .../ConnectionInfoPropertyGrid.cs | 10 +- mRemoteV1/mRemoteV1.csproj | 8 ++ 27 files changed, 302 insertions(+), 281 deletions(-) create mode 100644 mRemoteV1/Connection/Protocol/RDP/AuthenticationLevel.cs create mode 100644 mRemoteV1/Connection/Protocol/RDP/RDGatewayUsageMethod.cs create mode 100644 mRemoteV1/Connection/Protocol/RDP/RDGatewayUseConnectionCredentials.cs create mode 100644 mRemoteV1/Connection/Protocol/RDP/RDPColors.cs create mode 100644 mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs create mode 100644 mRemoteV1/Connection/Protocol/RDP/RDPResolutions.cs create mode 100644 mRemoteV1/Connection/Protocol/RDP/RDPSoundQuality.cs create mode 100644 mRemoteV1/Connection/Protocol/RDP/RDPSounds.cs diff --git a/CHANGELOG.md b/CHANGELOG.md index 0161a7da..3b302cc4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - #1443: Chinese (simplified) translation improvements - #1437: Norwegian translation improvements - #1239: Increased default key derivation function (KDF) iterations from 1000 to 10000 +- Moved most RDP enums outside of the RDP protocol class. Scripts which reference these enums will need to be updated. ### Fixed - #1447: Exception occurs when resetting layout - #1439: Searching in hosts tree loses first keystroke diff --git a/mRemoteNGTests/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormatTests.cs b/mRemoteNGTests/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormatTests.cs index 7eebe29b..4c893b5c 100644 --- a/mRemoteNGTests/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormatTests.cs +++ b/mRemoteNGTests/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormatTests.cs @@ -98,9 +98,9 @@ namespace mRemoteNGTests.Config.Serializers.ConnectionSerializers.Csv UseCredSsp = true, RenderingEngine = HTTPBase.RenderingEngine.Gecko, ICAEncryptionStrength = IcaProtocol.EncryptionStrength.Encr40Bit, - RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.WarnOnFailedAuth, - Colors = RdpProtocol.RDPColors.Colors16Bit, - Resolution = RdpProtocol.RDPResolutions.Res1366x768, + RDPAuthenticationLevel = AuthenticationLevel.WarnOnFailedAuth, + Colors = RDPColors.Colors16Bit, + Resolution = RDPResolutions.Res1366x768, AutomaticResize = true, DisplayWallpaper = true, DisplayThemes = true, @@ -111,7 +111,7 @@ namespace mRemoteNGTests.Config.Serializers.ConnectionSerializers.Csv RedirectPorts = true, RedirectPrinters = true, RedirectSmartCards = true, - RedirectSound = RdpProtocol.RDPSounds.LeaveAtRemoteComputer, + RedirectSound = RDPSounds.LeaveAtRemoteComputer, RedirectAudioCapture = true, RedirectKeys = true, VNCCompression = ProtocolVNC.Compression.Comp4, @@ -122,8 +122,8 @@ namespace mRemoteNGTests.Config.Serializers.ConnectionSerializers.Csv VNCColors = ProtocolVNC.Colors.Col8Bit, VNCSmartSizeMode = ProtocolVNC.SmartSizeMode.SmartSAspect, VNCViewOnly = true, - RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Detect, - RDGatewayUseConnectionCredentials = RdpProtocol.RDGatewayUseConnectionCredentials.SmartCard + RDGatewayUsageMethod = RDGatewayUsageMethod.Detect, + RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.SmartCard }; } diff --git a/mRemoteNGTests/Config/Serializers/MiscSerializers/RemoteDesktopConnectionDeserializerTests.cs b/mRemoteNGTests/Config/Serializers/MiscSerializers/RemoteDesktopConnectionDeserializerTests.cs index a9900317..df67f374 100644 --- a/mRemoteNGTests/Config/Serializers/MiscSerializers/RemoteDesktopConnectionDeserializerTests.cs +++ b/mRemoteNGTests/Config/Serializers/MiscSerializers/RemoteDesktopConnectionDeserializerTests.cs @@ -19,9 +19,9 @@ namespace mRemoteNGTests.Config.Serializers.MiscSerializers private const string ExpectedGatewayHostname = "gatewayhostname.domain.com"; private const string ExpectedLoadBalanceInfo = "tsv://MS Terminal Services Plugin.1.RDS-NAME"; private const int ExpectedPort = 9933; - private const RdpProtocol.RDPColors ExpectedColors = RdpProtocol.RDPColors.Colors24Bit; + private const RDPColors ExpectedColors = RDPColors.Colors24Bit; private const bool ExpectedBitmapCaching = false; - private const RdpProtocol.RDPResolutions ExpectedResolutionMode = RdpProtocol.RDPResolutions.FitToWindow; + private const RDPResolutions ExpectedResolutionMode = RDPResolutions.FitToWindow; private const bool ExpectedWallpaperDisplay = true; private const bool ExpectedThemesDisplay = true; private const bool ExpectedFontSmoothing = true; @@ -30,7 +30,7 @@ namespace mRemoteNGTests.Config.Serializers.MiscSerializers private const bool ExpectedDriveRedirection = true; private const bool ExpectedPortRedirection = true; private const bool ExpectedPrinterRedirection = true; - private const RdpProtocol.RDPSounds ExpectedSoundRedirection = RdpProtocol.RDPSounds.BringToThisComputer; + private const RDPSounds ExpectedSoundRedirection = RDPSounds.BringToThisComputer; [OneTimeSetUp] diff --git a/mRemoteNGTests/Config/Serializers/MiscSerializers/RemoteDesktopConnectionManager27DeserializerTests.cs b/mRemoteNGTests/Config/Serializers/MiscSerializers/RemoteDesktopConnectionManager27DeserializerTests.cs index 56341e89..db895856 100644 --- a/mRemoteNGTests/Config/Serializers/MiscSerializers/RemoteDesktopConnectionManager27DeserializerTests.cs +++ b/mRemoteNGTests/Config/Serializers/MiscSerializers/RemoteDesktopConnectionManager27DeserializerTests.cs @@ -24,20 +24,20 @@ namespace mRemoteNGTests.Config.Serializers.MiscSerializers private const string ExpectedPassword = "passwordHere!"; private const bool ExpectedUseConsoleSession = true; private const int ExpectedPort = 9933; - private const RdpProtocol.RDGatewayUsageMethod ExpectedGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always; + private const RDGatewayUsageMethod ExpectedGatewayUsageMethod = RDGatewayUsageMethod.Always; private const string ExpectedGatewayHostname = "gatewayserverhost.innerdomain.net"; private const string ExpectedGatewayUsername = "gatewayusername"; private const string ExpectedGatewayDomain = "innerdomain"; private const string ExpectedGatewayPassword = "gatewayPassword123"; - private const RdpProtocol.RDPResolutions ExpectedRdpResolution = RdpProtocol.RDPResolutions.FitToWindow; - private const RdpProtocol.RDPColors ExpectedRdpColorDepth = RdpProtocol.RDPColors.Colors24Bit; - private const RdpProtocol.RDPSounds ExpectedAudioRedirection = RdpProtocol.RDPSounds.DoNotPlay; + private const RDPResolutions ExpectedRdpResolution = RDPResolutions.FitToWindow; + private const RDPColors ExpectedRdpColorDepth = RDPColors.Colors24Bit; + private const RDPSounds ExpectedAudioRedirection = RDPSounds.DoNotPlay; private const bool ExpectedKeyRedirection = true; private const bool ExpectedSmartcardRedirection = true; private const bool ExpectedDriveRedirection = true; private const bool ExpectedPortRedirection = true; private const bool ExpectedPrinterRedirection = true; - private const RdpProtocol.AuthenticationLevel ExpectedAuthLevel = RdpProtocol.AuthenticationLevel.WarnOnFailedAuth; + private const AuthenticationLevel ExpectedAuthLevel = AuthenticationLevel.WarnOnFailedAuth; [OneTimeSetUp] diff --git a/mRemoteNGTests/Config/Serializers/MiscSerializers/RemoteDesktopConnectionManagerDeserializerTests.cs b/mRemoteNGTests/Config/Serializers/MiscSerializers/RemoteDesktopConnectionManagerDeserializerTests.cs index 4a95d2fb..d49755f7 100644 --- a/mRemoteNGTests/Config/Serializers/MiscSerializers/RemoteDesktopConnectionManagerDeserializerTests.cs +++ b/mRemoteNGTests/Config/Serializers/MiscSerializers/RemoteDesktopConnectionManagerDeserializerTests.cs @@ -23,20 +23,20 @@ namespace mRemoteNGTests.Config.Serializers.MiscSerializers private const string ExpectedPassword = "passwordHere!"; private const bool ExpectedUseConsoleSession = true; private const int ExpectedPort = 9933; - private const RdpProtocol.RDGatewayUsageMethod ExpectedGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always; + private const RDGatewayUsageMethod ExpectedGatewayUsageMethod = RDGatewayUsageMethod.Always; private const string ExpectedGatewayHostname = "gatewayserverhost.innerdomain.net"; private const string ExpectedGatewayUsername = "gatewayusername"; private const string ExpectedGatewayDomain = "innerdomain"; private const string ExpectedGatewayPassword = "gatewayPassword123"; - private const RdpProtocol.RDPResolutions ExpectedRdpResolution = RdpProtocol.RDPResolutions.FitToWindow; - private const RdpProtocol.RDPColors ExpectedRdpColorDepth = RdpProtocol.RDPColors.Colors24Bit; - private const RdpProtocol.RDPSounds ExpectedAudioRedirection = RdpProtocol.RDPSounds.DoNotPlay; + private const RDPResolutions ExpectedRdpResolution = RDPResolutions.FitToWindow; + private const RDPColors ExpectedRdpColorDepth = RDPColors.Colors24Bit; + private const RDPSounds ExpectedAudioRedirection = RDPSounds.DoNotPlay; private const bool ExpectedKeyRedirection = true; private const bool ExpectedSmartcardRedirection = true; private const bool ExpectedDriveRedirection = true; private const bool ExpectedPortRedirection = true; private const bool ExpectedPrinterRedirection = true; - private const RdpProtocol.AuthenticationLevel ExpectedAuthLevel = RdpProtocol.AuthenticationLevel.AuthRequired; + private const AuthenticationLevel ExpectedAuthLevel = AuthenticationLevel.AuthRequired; [OneTimeSetUp] diff --git a/mRemoteNGTests/Connection/AbstractConnectionInfoDataTests.cs b/mRemoteNGTests/Connection/AbstractConnectionInfoDataTests.cs index 18429003..882cade9 100644 --- a/mRemoteNGTests/Connection/AbstractConnectionInfoDataTests.cs +++ b/mRemoteNGTests/Connection/AbstractConnectionInfoDataTests.cs @@ -165,7 +165,7 @@ namespace mRemoteNGTests.Connection { var wasCalled = false; _testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true; - _testAbstractConnectionInfoData.RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.AuthRequired; + _testAbstractConnectionInfoData.RDPAuthenticationLevel = AuthenticationLevel.AuthRequired; Assert.That(wasCalled, Is.True); } @@ -201,7 +201,7 @@ namespace mRemoteNGTests.Connection { var wasCalled = false; _testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true; - _testAbstractConnectionInfoData.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always; + _testAbstractConnectionInfoData.RDGatewayUsageMethod = RDGatewayUsageMethod.Always; Assert.That(wasCalled, Is.True); } @@ -219,7 +219,7 @@ namespace mRemoteNGTests.Connection { var wasCalled = false; _testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true; - _testAbstractConnectionInfoData.RDGatewayUseConnectionCredentials = RdpProtocol.RDGatewayUseConnectionCredentials.SmartCard; + _testAbstractConnectionInfoData.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.SmartCard; Assert.That(wasCalled, Is.True); } @@ -255,7 +255,7 @@ namespace mRemoteNGTests.Connection { var wasCalled = false; _testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true; - _testAbstractConnectionInfoData.Resolution = RdpProtocol.RDPResolutions.Res1366x768; + _testAbstractConnectionInfoData.Resolution = RDPResolutions.Res1366x768; Assert.That(wasCalled, Is.True); } @@ -273,7 +273,7 @@ namespace mRemoteNGTests.Connection { var wasCalled = false; _testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true; - _testAbstractConnectionInfoData.Colors = RdpProtocol.RDPColors.Colors16Bit; + _testAbstractConnectionInfoData.Colors = RDPColors.Colors16Bit; Assert.That(wasCalled, Is.True); } @@ -372,7 +372,7 @@ namespace mRemoteNGTests.Connection { var wasCalled = false; _testAbstractConnectionInfoData.PropertyChanged += (sender, args) => wasCalled = true; - _testAbstractConnectionInfoData.RedirectSound = RdpProtocol.RDPSounds.DoNotPlay; + _testAbstractConnectionInfoData.RedirectSound = RDPSounds.DoNotPlay; Assert.That(wasCalled, Is.True); } diff --git a/mRemoteNGTests/UI/Window/ConfigWindowTests/ConfigWindowGeneralTests.cs b/mRemoteNGTests/UI/Window/ConfigWindowTests/ConfigWindowGeneralTests.cs index 4e47ad58..e78190fc 100644 --- a/mRemoteNGTests/UI/Window/ConfigWindowTests/ConfigWindowGeneralTests.cs +++ b/mRemoteNGTests/UI/Window/ConfigWindowTests/ConfigWindowGeneralTests.cs @@ -222,10 +222,10 @@ namespace mRemoteNGTests.UI.Window.ConfigWindowTests : new ConnectionInfo(); node.Protocol = protocol; - node.Resolution = RdpProtocol.RDPResolutions.Res800x600; - node.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Never; - node.RDGatewayUseConnectionCredentials = RdpProtocol.RDGatewayUseConnectionCredentials.Yes; - node.RedirectSound = RdpProtocol.RDPSounds.DoNotPlay; + node.Resolution = RDPResolutions.Res800x600; + node.RDGatewayUsageMethod = RDGatewayUsageMethod.Never; + node.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.Yes; + node.RedirectSound = RDPSounds.DoNotPlay; node.VNCAuthMode = ProtocolVNC.AuthMode.AuthVNC; node.VNCProxyType = ProtocolVNC.ProxyType.ProxyNone; node.Inheritance.TurnOffInheritanceCompletely(); diff --git a/mRemoteNGTests/UI/Window/ConfigWindowTests/ConfigWindowRdpSpecialTests.cs b/mRemoteNGTests/UI/Window/ConfigWindowTests/ConfigWindowRdpSpecialTests.cs index 0804652e..448a28e3 100644 --- a/mRemoteNGTests/UI/Window/ConfigWindowTests/ConfigWindowRdpSpecialTests.cs +++ b/mRemoteNGTests/UI/Window/ConfigWindowTests/ConfigWindowRdpSpecialTests.cs @@ -18,12 +18,12 @@ namespace mRemoteNGTests.UI.Window.ConfigWindowTests RunVerification(); } - [TestCase(RdpProtocol.RDGatewayUsageMethod.Always)] - [TestCase(RdpProtocol.RDGatewayUsageMethod.Detect)] - public void RdGatewayPropertiesShown_WhenRdGatewayUsageMethodIsNotNever(RdpProtocol.RDGatewayUsageMethod gatewayUsageMethod) + [TestCase(RDGatewayUsageMethod.Always)] + [TestCase(RDGatewayUsageMethod.Detect)] + public void RdGatewayPropertiesShown_WhenRdGatewayUsageMethodIsNotNever(RDGatewayUsageMethod gatewayUsageMethod) { ConnectionInfo.RDGatewayUsageMethod = gatewayUsageMethod; - ConnectionInfo.RDGatewayUseConnectionCredentials = RdpProtocol.RDGatewayUseConnectionCredentials.Yes; + ConnectionInfo.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.Yes; ExpectedPropertyList.AddRange(new [] { nameof(mRemoteNG.Connection.ConnectionInfo.RDGatewayHostname), @@ -33,11 +33,11 @@ namespace mRemoteNGTests.UI.Window.ConfigWindowTests RunVerification(); } - [TestCase(RdpProtocol.RDGatewayUseConnectionCredentials.No)] - [TestCase(RdpProtocol.RDGatewayUseConnectionCredentials.SmartCard)] - public void RdGatewayPropertiesShown_WhenRDGatewayUseConnectionCredentialsIsNotYes(RdpProtocol.RDGatewayUseConnectionCredentials useConnectionCredentials) + [TestCase(RDGatewayUseConnectionCredentials.No)] + [TestCase(RDGatewayUseConnectionCredentials.SmartCard)] + public void RdGatewayPropertiesShown_WhenRDGatewayUseConnectionCredentialsIsNotYes(RDGatewayUseConnectionCredentials useConnectionCredentials) { - ConnectionInfo.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always; + ConnectionInfo.RDGatewayUsageMethod = RDGatewayUsageMethod.Always; ConnectionInfo.RDGatewayUseConnectionCredentials = useConnectionCredentials; ExpectedPropertyList.AddRange(new [] { @@ -54,15 +54,15 @@ namespace mRemoteNGTests.UI.Window.ConfigWindowTests [Test] public void SoundQualityPropertyShown_WhenRdpSoundsSetToBringToThisComputer() { - ConnectionInfo.RedirectSound = RdpProtocol.RDPSounds.BringToThisComputer; + ConnectionInfo.RedirectSound = RDPSounds.BringToThisComputer; ExpectedPropertyList.Add(nameof(mRemoteNG.Connection.ConnectionInfo.SoundQuality)); RunVerification(); } - [TestCase(RdpProtocol.RDPResolutions.FitToWindow)] - [TestCase(RdpProtocol.RDPResolutions.Fullscreen)] - public void AutomaticResizePropertyShown_WhenResolutionIsDynamic(RdpProtocol.RDPResolutions resolution) + [TestCase(RDPResolutions.FitToWindow)] + [TestCase(RDPResolutions.Fullscreen)] + public void AutomaticResizePropertyShown_WhenResolutionIsDynamic(RDPResolutions resolution) { ConnectionInfo.Resolution = resolution; ExpectedPropertyList.Add(nameof(mRemoteNG.Connection.ConnectionInfo.AutomaticResize)); diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormat.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormat.cs index 5646f729..80a1ca6d 100644 --- a/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormat.cs +++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormat.cs @@ -174,21 +174,21 @@ namespace mRemoteNG.Config.Serializers.Csv if (headers.Contains("RDPAuthenticationLevel")) { - RdpProtocol.AuthenticationLevel value; + AuthenticationLevel value; if (Enum.TryParse(connectionCsv[headers.IndexOf("RDPAuthenticationLevel")], out value)) connectionRecord.RDPAuthenticationLevel = value; } if (headers.Contains("Colors")) { - RdpProtocol.RDPColors value; + RDPColors value; if (Enum.TryParse(connectionCsv[headers.IndexOf("Colors")], out value)) connectionRecord.Colors = value; } if (headers.Contains("Resolution")) { - RdpProtocol.RDPResolutions value; + RDPResolutions value; if (Enum.TryParse(connectionCsv[headers.IndexOf("Resolution")], out value)) connectionRecord.Resolution = value; } @@ -272,7 +272,7 @@ namespace mRemoteNG.Config.Serializers.Csv if (headers.Contains("RedirectSound")) { - RdpProtocol.RDPSounds value; + RDPSounds value; if (Enum.TryParse(connectionCsv[headers.IndexOf("RedirectSound")], out value)) connectionRecord.RedirectSound = value; } @@ -349,14 +349,14 @@ namespace mRemoteNG.Config.Serializers.Csv if (headers.Contains("RDGatewayUsageMethod")) { - RdpProtocol.RDGatewayUsageMethod value; + RDGatewayUsageMethod value; if (Enum.TryParse(connectionCsv[headers.IndexOf("RDGatewayUsageMethod")], out value)) connectionRecord.RDGatewayUsageMethod = value; } if (headers.Contains("RDGatewayUseConnectionCredentials")) { - RdpProtocol.RDGatewayUseConnectionCredentials value; + RDGatewayUseConnectionCredentials value; if (Enum.TryParse(connectionCsv[headers.IndexOf("RDGatewayUseConnectionCredentials")], out value)) connectionRecord.RDGatewayUseConnectionCredentials = value; } diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableDeserializer.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableDeserializer.cs index 4d657a1d..42d5e0a4 100644 --- a/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableDeserializer.cs +++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableDeserializer.cs @@ -100,15 +100,15 @@ namespace mRemoteNG.Config.Serializers.MsSql (IcaProtocol.EncryptionStrength)Enum.Parse(typeof(IcaProtocol.EncryptionStrength), (string)dataRow["ICAEncryptionStrength"]); connectionInfo.RDPAuthenticationLevel = - (RdpProtocol.AuthenticationLevel)Enum.Parse(typeof(RdpProtocol.AuthenticationLevel), + (AuthenticationLevel)Enum.Parse(typeof(AuthenticationLevel), (string)dataRow["RDPAuthenticationLevel"]); connectionInfo.RDPMinutesToIdleTimeout = (int)dataRow["RDPMinutesToIdleTimeout"]; connectionInfo.RDPAlertIdleTimeout = (bool)dataRow["RDPAlertIdleTimeout"]; connectionInfo.LoadBalanceInfo = (string)dataRow["LoadBalanceInfo"]; connectionInfo.Colors = - (RdpProtocol.RDPColors)Enum.Parse(typeof(RdpProtocol.RDPColors), (string)dataRow["Colors"]); + (RDPColors)Enum.Parse(typeof(RDPColors), (string)dataRow["Colors"]); connectionInfo.Resolution = - (RdpProtocol.RDPResolutions)Enum.Parse(typeof(RdpProtocol.RDPResolutions), + (RDPResolutions)Enum.Parse(typeof(RDPResolutions), (string)dataRow["Resolution"]); connectionInfo.AutomaticResize = (bool)dataRow["AutomaticResize"]; connectionInfo.DisplayWallpaper = (bool)dataRow["DisplayWallpaper"]; @@ -122,8 +122,8 @@ namespace mRemoteNG.Config.Serializers.MsSql connectionInfo.RedirectClipboard = (bool)dataRow["RedirectClipboard"]; connectionInfo.RedirectSmartCards = (bool)dataRow["RedirectSmartCards"]; connectionInfo.RedirectSound = - (RdpProtocol.RDPSounds)Enum.Parse(typeof(RdpProtocol.RDPSounds), (string)dataRow["RedirectSound"]); - connectionInfo.SoundQuality = (RdpProtocol.RDPSoundQuality)Enum.Parse(typeof(RdpProtocol.RDPSoundQuality), + (RDPSounds)Enum.Parse(typeof(RDPSounds), (string)dataRow["RedirectSound"]); + connectionInfo.SoundQuality = (RDPSoundQuality)Enum.Parse(typeof(RDPSoundQuality), (string)dataRow["SoundQuality"]); connectionInfo.RedirectAudioCapture = (bool)dataRow["RedirectAudioCapture"]; @@ -152,15 +152,12 @@ namespace mRemoteNG.Config.Serializers.MsSql ["VNCSmartSizeMode"]); connectionInfo.VNCViewOnly = (bool)dataRow["VNCViewOnly"]; connectionInfo.RDGatewayUsageMethod = - (RdpProtocol.RDGatewayUsageMethod)Enum.Parse(typeof(RdpProtocol.RDGatewayUsageMethod), + (RDGatewayUsageMethod)Enum.Parse(typeof(RDGatewayUsageMethod), (string)dataRow["RDGatewayUsageMethod"]); connectionInfo.RDGatewayHostname = (string)dataRow["RDGatewayHostname"]; connectionInfo.RDGatewayUseConnectionCredentials = - (RdpProtocol.RDGatewayUseConnectionCredentials)Enum.Parse( - typeof(RdpProtocol. - RDGatewayUseConnectionCredentials), - (string)dataRow - ["RDGatewayUseConnectionCredentials"]); + (RDGatewayUseConnectionCredentials)Enum.Parse(typeof(RDGatewayUseConnectionCredentials), + (string)dataRow["RDGatewayUseConnectionCredentials"]); connectionInfo.RDGatewayUsername = (string)dataRow["RDGatewayUsername"]; connectionInfo.RDGatewayPassword = DecryptValue((string)dataRow["RDGatewayPassword"]); connectionInfo.RDGatewayDomain = (string)dataRow["RDGatewayDomain"]; diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs index 60212516..5851c035 100644 --- a/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs +++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs @@ -226,8 +226,8 @@ namespace mRemoteNG.Config.Serializers.Xml if (_confVersion < 1.1) //1.0 - 0.1 { connectionInfo.Resolution = xmlnode.GetAttributeAsBool("Fullscreen") - ? RdpProtocol.RDPResolutions.Fullscreen - : RdpProtocol.RDPResolutions.FitToWindow; + ? RDPResolutions.Fullscreen + : RDPResolutions.FitToWindow; } if (!Runtime.UseCredentialManager || _confVersion <= 2.6) // 0.2 - 2.6 @@ -318,9 +318,9 @@ namespace mRemoteNG.Config.Serializers.Xml if (_confVersion >= 1.3) { - connectionInfo.Colors = xmlnode.GetAttributeAsEnum("Colors"); - connectionInfo.Resolution = xmlnode.GetAttributeAsEnum("Resolution"); - connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum("RedirectSound"); + connectionInfo.Colors = xmlnode.GetAttributeAsEnum("Colors"); + connectionInfo.Resolution = xmlnode.GetAttributeAsEnum("Resolution"); + connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum("RedirectSound"); connectionInfo.RedirectAudioCapture = xmlnode.GetAttributeAsBool("RedirectAudioCapture"); } else @@ -328,25 +328,25 @@ namespace mRemoteNG.Config.Serializers.Xml switch (xmlnode.GetAttributeAsInt("Colors")) { case 0: - connectionInfo.Colors = RdpProtocol.RDPColors.Colors256; + connectionInfo.Colors = RDPColors.Colors256; break; case 1: - connectionInfo.Colors = RdpProtocol.RDPColors.Colors16Bit; + connectionInfo.Colors = RDPColors.Colors16Bit; break; case 2: - connectionInfo.Colors = RdpProtocol.RDPColors.Colors24Bit; + connectionInfo.Colors = RDPColors.Colors24Bit; break; case 3: - connectionInfo.Colors = RdpProtocol.RDPColors.Colors32Bit; + connectionInfo.Colors = RDPColors.Colors32Bit; break; // ReSharper disable once RedundantCaseLabel case 4: default: - connectionInfo.Colors = RdpProtocol.RDPColors.Colors15Bit; + connectionInfo.Colors = RDPColors.Colors15Bit; break; } - connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum("RedirectSound"); + connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum("RedirectSound"); connectionInfo.RedirectAudioCapture = xmlnode.GetAttributeAsBool("RedirectAudioCapture"); } @@ -442,7 +442,7 @@ namespace mRemoteNG.Config.Serializers.Xml if (_confVersion >= 1.8) { connectionInfo.RDPAuthenticationLevel = - xmlnode.GetAttributeAsEnum("RDPAuthenticationLevel"); + xmlnode.GetAttributeAsEnum("RDPAuthenticationLevel"); connectionInfo.Inheritance.RDPAuthenticationLevel = xmlnode.GetAttributeAsBool("InheritRDPAuthenticationLevel"); } @@ -472,10 +472,10 @@ namespace mRemoteNG.Config.Serializers.Xml { // Get settings connectionInfo.RDGatewayUsageMethod = - xmlnode.GetAttributeAsEnum("RDGatewayUsageMethod"); + xmlnode.GetAttributeAsEnum("RDGatewayUsageMethod"); connectionInfo.RDGatewayHostname = xmlnode.GetAttributeAsString("RDGatewayHostname"); connectionInfo.RDGatewayUseConnectionCredentials = - xmlnode.GetAttributeAsEnum( + xmlnode.GetAttributeAsEnum( "RDGatewayUseConnectionCredentials"); connectionInfo.RDGatewayUsername = xmlnode.GetAttributeAsString("RDGatewayUsername"); connectionInfo.RDGatewayPassword = @@ -526,7 +526,7 @@ namespace mRemoteNG.Config.Serializers.Xml if (_confVersion >= 2.6) { connectionInfo.SoundQuality = - xmlnode.GetAttributeAsEnum("SoundQuality"); + xmlnode.GetAttributeAsEnum("SoundQuality"); connectionInfo.Inheritance.SoundQuality = xmlnode.GetAttributeAsBool("InheritSoundQuality"); connectionInfo.RDPMinutesToIdleTimeout = xmlnode.GetAttributeAsInt("RDPMinutesToIdleTimeout"); connectionInfo.Inheritance.RDPMinutesToIdleTimeout = diff --git a/mRemoteV1/Config/Serializers/MiscSerializers/RemoteDesktopConnectionDeserializer.cs b/mRemoteV1/Config/Serializers/MiscSerializers/RemoteDesktopConnectionDeserializer.cs index 9980c626..442a80d0 100644 --- a/mRemoteV1/Config/Serializers/MiscSerializers/RemoteDesktopConnectionDeserializer.cs +++ b/mRemoteV1/Config/Serializers/MiscSerializers/RemoteDesktopConnectionDeserializer.cs @@ -60,19 +60,19 @@ namespace mRemoteNG.Config.Serializers switch (value) { case "8": - connectionInfo.Colors = RdpProtocol.RDPColors.Colors256; + connectionInfo.Colors = RDPColors.Colors256; break; case "15": - connectionInfo.Colors = RdpProtocol.RDPColors.Colors15Bit; + connectionInfo.Colors = RDPColors.Colors15Bit; break; case "16": - connectionInfo.Colors = RdpProtocol.RDPColors.Colors16Bit; + connectionInfo.Colors = RDPColors.Colors16Bit; break; case "24": - connectionInfo.Colors = RdpProtocol.RDPColors.Colors24Bit; + connectionInfo.Colors = RDPColors.Colors24Bit; break; case "32": - connectionInfo.Colors = RdpProtocol.RDPColors.Colors32Bit; + connectionInfo.Colors = RDPColors.Colors32Bit; break; } break; @@ -81,8 +81,8 @@ namespace mRemoteNG.Config.Serializers break; case "screen mode id": connectionInfo.Resolution = value == "2" - ? RdpProtocol.RDPResolutions.Fullscreen - : RdpProtocol.RDPResolutions.FitToWindow; + ? RDPResolutions.Fullscreen + : RDPResolutions.FitToWindow; break; case "connect to console": connectionInfo.UseConsoleSession = value == "1"; @@ -118,13 +118,13 @@ namespace mRemoteNG.Config.Serializers switch (value) { case "0": - connectionInfo.RedirectSound = RdpProtocol.RDPSounds.BringToThisComputer; + connectionInfo.RedirectSound = RDPSounds.BringToThisComputer; break; case "1": - connectionInfo.RedirectSound = RdpProtocol.RDPSounds.LeaveAtRemoteComputer; + connectionInfo.RedirectSound = RDPSounds.LeaveAtRemoteComputer; break; case "2": - connectionInfo.RedirectSound = RdpProtocol.RDPSounds.DoNotPlay; + connectionInfo.RedirectSound = RDPSounds.DoNotPlay; break; } break; @@ -138,13 +138,13 @@ namespace mRemoteNG.Config.Serializers switch (value) { case "0": - connectionInfo.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Never; + connectionInfo.RDGatewayUsageMethod = RDGatewayUsageMethod.Never; break; case "1": - connectionInfo.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Always; + connectionInfo.RDGatewayUsageMethod = RDGatewayUsageMethod.Always; break; case "2": - connectionInfo.RDGatewayUsageMethod = RdpProtocol.RDGatewayUsageMethod.Detect; + connectionInfo.RDGatewayUsageMethod = RDGatewayUsageMethod.Detect; break; } break; diff --git a/mRemoteV1/Config/Serializers/MiscSerializers/RemoteDesktopConnectionManagerDeserializer.cs b/mRemoteV1/Config/Serializers/MiscSerializers/RemoteDesktopConnectionManagerDeserializer.cs index 5c50e06f..505d106f 100644 --- a/mRemoteV1/Config/Serializers/MiscSerializers/RemoteDesktopConnectionManagerDeserializer.cs +++ b/mRemoteV1/Config/Serializers/MiscSerializers/RemoteDesktopConnectionManagerDeserializer.cs @@ -197,8 +197,8 @@ namespace mRemoteNG.Config.Serializers { connectionInfo.RDGatewayUsageMethod = gatewaySettingsNode.SelectSingleNode("./enabled")?.InnerText == "True" - ? RdpProtocol.RDGatewayUsageMethod.Always - : RdpProtocol.RDGatewayUsageMethod.Never; + ? RDGatewayUsageMethod.Always + : RDGatewayUsageMethod.Never; connectionInfo.RDGatewayHostname = gatewaySettingsNode.SelectSingleNode("./hostName")?.InnerText ?? string.Empty; connectionInfo.RDGatewayUsername = gatewaySettingsNode.SelectSingleNode("./userName")?.InnerText ?? string.Empty; @@ -225,21 +225,21 @@ namespace mRemoteNG.Config.Serializers if (remoteDesktopNode?.Attributes?["inherit"]?.Value == "None") { connectionInfo.Resolution = - Enum.TryParse(remoteDesktopNode.SelectSingleNode("./size")?.InnerText.Replace(" ", ""), true, out var rdpResolution) + Enum.TryParse(remoteDesktopNode.SelectSingleNode("./size")?.InnerText.Replace(" ", ""), true, out var rdpResolution) ? rdpResolution - : RdpProtocol.RDPResolutions.FitToWindow; + : RDPResolutions.FitToWindow; if (remoteDesktopNode.SelectSingleNode("./sameSizeAsClientArea")?.InnerText == "True") { - connectionInfo.Resolution = RdpProtocol.RDPResolutions.FitToWindow; + connectionInfo.Resolution = RDPResolutions.FitToWindow; } if (remoteDesktopNode.SelectSingleNode("./fullScreen")?.InnerText == "True") { - connectionInfo.Resolution = RdpProtocol.RDPResolutions.Fullscreen; + connectionInfo.Resolution = RDPResolutions.Fullscreen; } - if (Enum.TryParse(remoteDesktopNode.SelectSingleNode("./colorDepth")?.InnerText, true, out var rdpColors)) + if (Enum.TryParse(remoteDesktopNode.SelectSingleNode("./colorDepth")?.InnerText, true, out var rdpColors)) connectionInfo.Colors = rdpColors; } else @@ -256,15 +256,15 @@ namespace mRemoteNG.Config.Serializers { case "0": // Bring to this computer case "Client": - connectionInfo.RedirectSound = RdpProtocol.RDPSounds.BringToThisComputer; + connectionInfo.RedirectSound = RDPSounds.BringToThisComputer; break; case "1": // Leave at remote computer case "Remote": - connectionInfo.RedirectSound = RdpProtocol.RDPSounds.LeaveAtRemoteComputer; + connectionInfo.RedirectSound = RDPSounds.LeaveAtRemoteComputer; break; case "2": // Do not play case "NoSound": - connectionInfo.RedirectSound = RdpProtocol.RDPSounds.DoNotPlay; + connectionInfo.RedirectSound = RDPSounds.DoNotPlay; break; } @@ -323,15 +323,15 @@ namespace mRemoteNG.Config.Serializers { case "0": // No authentication case "None": - connectionInfo.RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.NoAuth; + connectionInfo.RDPAuthenticationLevel = AuthenticationLevel.NoAuth; break; case "1": // Do not connect if authentication fails case "Required": - connectionInfo.RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.AuthRequired; + connectionInfo.RDPAuthenticationLevel = AuthenticationLevel.AuthRequired; break; case "2": // Warn if authentication fails case "Warn": - connectionInfo.RDPAuthenticationLevel = RdpProtocol.AuthenticationLevel.WarnOnFailedAuth; + connectionInfo.RDPAuthenticationLevel = AuthenticationLevel.WarnOnFailedAuth; break; } } diff --git a/mRemoteV1/Connection/AbstractConnectionRecord.cs b/mRemoteV1/Connection/AbstractConnectionRecord.cs index 4630e825..16b2a199 100644 --- a/mRemoteV1/Connection/AbstractConnectionRecord.cs +++ b/mRemoteV1/Connection/AbstractConnectionRecord.cs @@ -31,23 +31,23 @@ namespace mRemoteNG.Connection private string _puttySession; private IcaProtocol.EncryptionStrength _icaEncryption; private bool _useConsoleSession; - private RdpProtocol.AuthenticationLevel _rdpAuthenticationLevel; + private AuthenticationLevel _rdpAuthenticationLevel; private int _rdpMinutesToIdleTimeout; private bool _rdpAlertIdleTimeout; private string _loadBalanceInfo; private HTTPBase.RenderingEngine _renderingEngine; private bool _useCredSsp; - private RdpProtocol.RDGatewayUsageMethod _rdGatewayUsageMethod; + private RDGatewayUsageMethod _rdGatewayUsageMethod; private string _rdGatewayHostname; - private RdpProtocol.RDGatewayUseConnectionCredentials _rdGatewayUseConnectionCredentials; + private RDGatewayUseConnectionCredentials _rdGatewayUseConnectionCredentials; private string _rdGatewayUsername; private string _rdGatewayPassword; private string _rdGatewayDomain; - private RdpProtocol.RDPResolutions _resolution; + private RDPResolutions _resolution; private bool _automaticResize; - private RdpProtocol.RDPColors _colors; + private RDPColors _colors; private bool _cacheBitmaps; private bool _displayWallpaper; private bool _displayThemes; @@ -60,8 +60,8 @@ namespace mRemoteNG.Connection private bool _redirectClipboard; private bool _redirectPorts; private bool _redirectSmartCards; - private RdpProtocol.RDPSounds _redirectSound; - private RdpProtocol.RDPSoundQuality _soundQuality; + private RDPSounds _redirectSound; + private RDPSoundQuality _soundQuality; private bool _redirectAudioCapture; private string _preExtApp; @@ -244,7 +244,7 @@ namespace mRemoteNG.Connection LocalizedAttributes.LocalizedDescription("strPropertyDescriptionAuthenticationLevel"), TypeConverter(typeof(MiscTools.EnumTypeConverter)), UsedInProtocol(ProtocolType.RDP)] - public RdpProtocol.AuthenticationLevel RDPAuthenticationLevel + public AuthenticationLevel RDPAuthenticationLevel { get => GetPropertyValue("RDPAuthenticationLevel", _rdpAuthenticationLevel); set => SetField(ref _rdpAuthenticationLevel, value, "RDPAuthenticationLevel"); @@ -318,7 +318,7 @@ namespace mRemoteNG.Connection LocalizedAttributes.LocalizedDescription("strPropertyDescriptionRDGatewayUsageMethod"), TypeConverter(typeof(MiscTools.EnumTypeConverter)), UsedInProtocol(ProtocolType.RDP)] - public RdpProtocol.RDGatewayUsageMethod RDGatewayUsageMethod + public RDGatewayUsageMethod RDGatewayUsageMethod { get => GetPropertyValue("RDGatewayUsageMethod", _rdGatewayUsageMethod); set => SetField(ref _rdGatewayUsageMethod, value, "RDGatewayUsageMethod"); @@ -339,7 +339,7 @@ namespace mRemoteNG.Connection LocalizedAttributes.LocalizedDescription("strPropertyDescriptionRDGatewayUseConnectionCredentials"), TypeConverter(typeof(MiscTools.EnumTypeConverter)), UsedInProtocol(ProtocolType.RDP)] - public RdpProtocol.RDGatewayUseConnectionCredentials RDGatewayUseConnectionCredentials + public RDGatewayUseConnectionCredentials RDGatewayUseConnectionCredentials { get => GetPropertyValue("RDGatewayUseConnectionCredentials", _rdGatewayUseConnectionCredentials); set => SetField(ref _rdGatewayUseConnectionCredentials, value, "RDGatewayUseConnectionCredentials"); @@ -385,7 +385,7 @@ namespace mRemoteNG.Connection LocalizedAttributes.LocalizedDescription("strPropertyDescriptionResolution"), TypeConverter(typeof(MiscTools.EnumTypeConverter)), UsedInProtocol(ProtocolType.RDP, ProtocolType.ICA)] - public RdpProtocol.RDPResolutions Resolution + public RDPResolutions Resolution { get => GetPropertyValue("Resolution", _resolution); set => SetField(ref _resolution, value, "Resolution"); @@ -407,7 +407,7 @@ namespace mRemoteNG.Connection LocalizedAttributes.LocalizedDescription("strPropertyDescriptionColors"), TypeConverter(typeof(MiscTools.EnumTypeConverter)), UsedInProtocol(ProtocolType.RDP, ProtocolType.ICA)] - public RdpProtocol.RDPColors Colors + public RDPColors Colors { get => GetPropertyValue("Colors", _colors); set => SetField(ref _colors, value, "Colors"); @@ -544,7 +544,7 @@ namespace mRemoteNG.Connection LocalizedAttributes.LocalizedDescription("strPropertyDescriptionRedirectSounds"), TypeConverter(typeof(MiscTools.EnumTypeConverter)), UsedInProtocol(ProtocolType.RDP)] - public RdpProtocol.RDPSounds RedirectSound + public RDPSounds RedirectSound { get => GetPropertyValue("RedirectSound", _redirectSound); set => SetField(ref _redirectSound, value, "RedirectSound"); @@ -555,7 +555,7 @@ namespace mRemoteNG.Connection LocalizedAttributes.LocalizedDescription("strPropertyDescriptionSoundQuality"), TypeConverter(typeof(MiscTools.EnumTypeConverter)), UsedInProtocol(ProtocolType.RDP)] - public RdpProtocol.RDPSoundQuality SoundQuality + public RDPSoundQuality SoundQuality { get => GetPropertyValue("SoundQuality", _soundQuality); set => SetField(ref _soundQuality, value, "SoundQuality"); diff --git a/mRemoteV1/Connection/ConnectionInfo.cs b/mRemoteV1/Connection/ConnectionInfo.cs index aeca82a6..1c8337a8 100644 --- a/mRemoteV1/Connection/ConnectionInfo.cs +++ b/mRemoteV1/Connection/ConnectionInfo.cs @@ -297,17 +297,11 @@ namespace mRemoteNG.Connection ExtApp = Settings.Default.ConDefaultExtApp; Port = 0; PuttySession = Settings.Default.ConDefaultPuttySession; - ICAEncryptionStrength = (IcaProtocol.EncryptionStrength)Enum.Parse(typeof(IcaProtocol.EncryptionStrength), - Settings - .Default - .ConDefaultICAEncryptionStrength); + ICAEncryptionStrength = (IcaProtocol.EncryptionStrength)Enum.Parse( + typeof(IcaProtocol.EncryptionStrength), Settings.Default.ConDefaultICAEncryptionStrength); UseConsoleSession = Settings.Default.ConDefaultUseConsoleSession; - RDPAuthenticationLevel = (RdpProtocol.AuthenticationLevel)Enum.Parse( - typeof(RdpProtocol.AuthenticationLevel - ), - Settings - .Default - .ConDefaultRDPAuthenticationLevel); + RDPAuthenticationLevel = (AuthenticationLevel)Enum.Parse( + typeof(AuthenticationLevel), Settings.Default.ConDefaultRDPAuthenticationLevel); RDPMinutesToIdleTimeout = Settings.Default.ConDefaultRDPMinutesToIdleTimeout; RDPAlertIdleTimeout = Settings.Default.ConDefaultRDPAlertIdleTimeout; LoadBalanceInfo = Settings.Default.ConDefaultLoadBalanceInfo; @@ -318,21 +312,11 @@ namespace mRemoteNG.Connection private void SetRdGatewayDefaults() { - RDGatewayUsageMethod = (RdpProtocol.RDGatewayUsageMethod)Enum.Parse( - typeof(RdpProtocol.RDGatewayUsageMethod - ), - Settings - .Default - .ConDefaultRDGatewayUsageMethod); + RDGatewayUsageMethod = (RDGatewayUsageMethod)Enum.Parse( + typeof(RDGatewayUsageMethod), Settings.Default.ConDefaultRDGatewayUsageMethod); RDGatewayHostname = Settings.Default.ConDefaultRDGatewayHostname; - RDGatewayUseConnectionCredentials = (RdpProtocol.RDGatewayUseConnectionCredentials)Enum.Parse( - typeof( - RdpProtocol - .RDGatewayUseConnectionCredentials - ), - Settings - .Default - .ConDefaultRDGatewayUseConnectionCredentials); + RDGatewayUseConnectionCredentials = (RDGatewayUseConnectionCredentials)Enum.Parse( + typeof(RDGatewayUseConnectionCredentials), Settings.Default.ConDefaultRDGatewayUseConnectionCredentials); RDGatewayUsername = Settings.Default.ConDefaultRDGatewayUsername; RDGatewayPassword = Settings.Default.ConDefaultRDGatewayPassword; RDGatewayDomain = Settings.Default.ConDefaultRDGatewayDomain; @@ -340,11 +324,10 @@ namespace mRemoteNG.Connection private void SetAppearanceDefaults() { - Resolution = (RdpProtocol.RDPResolutions)Enum.Parse(typeof(RdpProtocol.RDPResolutions), - Settings.Default.ConDefaultResolution); + Resolution = (RDPResolutions)Enum.Parse( + typeof(RDPResolutions), Settings.Default.ConDefaultResolution); AutomaticResize = Settings.Default.ConDefaultAutomaticResize; - Colors = (RdpProtocol.RDPColors)Enum.Parse(typeof(RdpProtocol.RDPColors), - Settings.Default.ConDefaultColors); + Colors = (RDPColors)Enum.Parse(typeof(RDPColors), Settings.Default.ConDefaultColors); CacheBitmaps = Settings.Default.ConDefaultCacheBitmaps; DisplayWallpaper = Settings.Default.ConDefaultDisplayWallpaper; DisplayThemes = Settings.Default.ConDefaultDisplayThemes; @@ -360,9 +343,9 @@ namespace mRemoteNG.Connection RedirectClipboard = Settings.Default.ConDefaultRedirectClipboard; RedirectPorts = Settings.Default.ConDefaultRedirectPorts; RedirectSmartCards = Settings.Default.ConDefaultRedirectSmartCards; - RedirectSound = (RdpProtocol.RDPSounds)Enum.Parse(typeof(RdpProtocol.RDPSounds), + RedirectSound = (RDPSounds)Enum.Parse(typeof(RDPSounds), Settings.Default.ConDefaultRedirectSound); - SoundQuality = (RdpProtocol.RDPSoundQuality)Enum.Parse(typeof(RdpProtocol.RDPSoundQuality), + SoundQuality = (RDPSoundQuality)Enum.Parse(typeof(RDPSoundQuality), Settings.Default.ConDefaultSoundQuality); RedirectAudioCapture = Settings.Default.ConDefaultRedirectAudioCapture; } diff --git a/mRemoteV1/Connection/Protocol/ICA/IcaProtocol.cs b/mRemoteV1/Connection/Protocol/ICA/IcaProtocol.cs index 88cfcbaf..d64a94d4 100644 --- a/mRemoteV1/Connection/Protocol/ICA/IcaProtocol.cs +++ b/mRemoteV1/Connection/Protocol/ICA/IcaProtocol.cs @@ -201,17 +201,17 @@ namespace mRemoteNG.Connection.Protocol.ICA return; } - if (InterfaceControl.Info.Resolution == RdpProtocol.RDPResolutions.FitToWindow) + if (InterfaceControl.Info.Resolution == RDPResolutions.FitToWindow) { _icaClient.SetWindowSize(WFICALib.ICAWindowType.WindowTypeClient, InterfaceControl.Size.Width, InterfaceControl.Size.Height, 0); } - else if (InterfaceControl.Info.Resolution == RdpProtocol.RDPResolutions.SmartSize) + else if (InterfaceControl.Info.Resolution == RDPResolutions.SmartSize) { _icaClient.SetWindowSize(WFICALib.ICAWindowType.WindowTypeClient, InterfaceControl.Size.Width, InterfaceControl.Size.Height, 0); } - else if (InterfaceControl.Info.Resolution == RdpProtocol.RDPResolutions.Fullscreen) + else if (InterfaceControl.Info.Resolution == RDPResolutions.Fullscreen) { _icaClient.SetWindowSize(WFICALib.ICAWindowType.WindowTypeClient, Screen.FromControl(_frmMain).Bounds.Width, @@ -238,13 +238,13 @@ namespace mRemoteNG.Connection.Protocol.ICA // ReSharper disable once SwitchStatementMissingSomeCases switch (_info.Colors) { - case RdpProtocol.RDPColors.Colors256: + case RDPColors.Colors256: _icaClient.SetProp("DesiredColor", "2"); break; - case RdpProtocol.RDPColors.Colors15Bit: + case RDPColors.Colors15Bit: _icaClient.SetProp("DesiredColor", "4"); break; - case RdpProtocol.RDPColors.Colors16Bit: + case RDPColors.Colors16Bit: _icaClient.SetProp("DesiredColor", "4"); break; default: diff --git a/mRemoteV1/Connection/Protocol/RDP/AuthenticationLevel.cs b/mRemoteV1/Connection/Protocol/RDP/AuthenticationLevel.cs new file mode 100644 index 00000000..270ff554 --- /dev/null +++ b/mRemoteV1/Connection/Protocol/RDP/AuthenticationLevel.cs @@ -0,0 +1,16 @@ +using mRemoteNG.Tools; + +namespace mRemoteNG.Connection.Protocol.RDP +{ + public enum AuthenticationLevel + { + [LocalizedAttributes.LocalizedDescription("strAlwaysConnectEvenIfAuthFails")] + NoAuth = 0, + + [LocalizedAttributes.LocalizedDescription("strDontConnectWhenAuthFails")] + AuthRequired = 1, + + [LocalizedAttributes.LocalizedDescription("strWarnIfAuthFails")] + WarnOnFailedAuth = 2 + } +} \ No newline at end of file diff --git a/mRemoteV1/Connection/Protocol/RDP/RDGatewayUsageMethod.cs b/mRemoteV1/Connection/Protocol/RDP/RDGatewayUsageMethod.cs new file mode 100644 index 00000000..672f1b56 --- /dev/null +++ b/mRemoteV1/Connection/Protocol/RDP/RDGatewayUsageMethod.cs @@ -0,0 +1,16 @@ +using mRemoteNG.Tools; + +namespace mRemoteNG.Connection.Protocol.RDP +{ + public enum RDGatewayUsageMethod + { + [LocalizedAttributes.LocalizedDescription("strNever")] + Never = 0, // TSC_PROXY_MODE_NONE_DIRECT + + [LocalizedAttributes.LocalizedDescription("strAlways")] + Always = 1, // TSC_PROXY_MODE_DIRECT + + [LocalizedAttributes.LocalizedDescription("strDetect")] + Detect = 2 // TSC_PROXY_MODE_DETECT + } +} \ No newline at end of file diff --git a/mRemoteV1/Connection/Protocol/RDP/RDGatewayUseConnectionCredentials.cs b/mRemoteV1/Connection/Protocol/RDP/RDGatewayUseConnectionCredentials.cs new file mode 100644 index 00000000..edc9bf08 --- /dev/null +++ b/mRemoteV1/Connection/Protocol/RDP/RDGatewayUseConnectionCredentials.cs @@ -0,0 +1,16 @@ +using mRemoteNG.Tools; + +namespace mRemoteNG.Connection.Protocol.RDP +{ + public enum RDGatewayUseConnectionCredentials + { + [LocalizedAttributes.LocalizedDescription("strUseDifferentUsernameAndPassword")] + No = 0, + + [LocalizedAttributes.LocalizedDescription("strUseSameUsernameAndPassword")] + Yes = 1, + + [LocalizedAttributes.LocalizedDescription("strUseSmartCard")] + SmartCard = 2 + } +} \ No newline at end of file diff --git a/mRemoteV1/Connection/Protocol/RDP/RDPColors.cs b/mRemoteV1/Connection/Protocol/RDP/RDPColors.cs new file mode 100644 index 00000000..0d279128 --- /dev/null +++ b/mRemoteV1/Connection/Protocol/RDP/RDPColors.cs @@ -0,0 +1,22 @@ +using mRemoteNG.Tools; + +namespace mRemoteNG.Connection.Protocol.RDP +{ + public enum RDPColors + { + [LocalizedAttributes.LocalizedDescription("strRDP256Colors")] + Colors256 = 8, + + [LocalizedAttributes.LocalizedDescription("strRDP32768Colors")] + Colors15Bit = 15, + + [LocalizedAttributes.LocalizedDescription("strRDP65536Colors")] + Colors16Bit = 16, + + [LocalizedAttributes.LocalizedDescription("strRDP16777216Colors")] + Colors24Bit = 24, + + [LocalizedAttributes.LocalizedDescription("strRDP4294967296Colors")] + Colors32Bit = 32 + } +} \ No newline at end of file diff --git a/mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs b/mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs new file mode 100644 index 00000000..872ee54e --- /dev/null +++ b/mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs @@ -0,0 +1,22 @@ +using System.ComponentModel; + +namespace mRemoteNG.Connection.Protocol.RDP +{ + public enum RDPPerformanceFlags + { + [Description("strRDPDisableWallpaper")] + DisableWallpaper = 0x1, + +// [Description("strRDPDisableFullWindowdrag")]DisableFullWindowDrag = 0x2, +// [Description("strRDPDisableMenuAnimations")]DisableMenuAnimations = 0x4, + [Description("strRDPDisableThemes")] DisableThemes = 0x8, + +// [Description("strRDPDisableCursorShadow")]DisableCursorShadow = 0x20, +// [Description("strRDPDisableCursorblinking")]DisableCursorBlinking = 0x40, + [Description("strRDPEnableFontSmoothing")] + EnableFontSmoothing = 0x80, + + [Description("strRDPEnableDesktopComposition")] + EnableDesktopComposition = 0x100 + } +} \ No newline at end of file diff --git a/mRemoteV1/Connection/Protocol/RDP/RDPResolutions.cs b/mRemoteV1/Connection/Protocol/RDP/RDPResolutions.cs new file mode 100644 index 00000000..ff4db31a --- /dev/null +++ b/mRemoteV1/Connection/Protocol/RDP/RDPResolutions.cs @@ -0,0 +1,34 @@ +using System.ComponentModel; +using mRemoteNG.Tools; + +namespace mRemoteNG.Connection.Protocol.RDP +{ + public enum RDPResolutions + { + [LocalizedAttributes.LocalizedDescription("strRDPFitToPanel")] + FitToWindow, + + [LocalizedAttributes.LocalizedDescription("strFullscreen")] + Fullscreen, + + [LocalizedAttributes.LocalizedDescription("strRDPSmartSize")] + SmartSize, + [Description("800x600")] Res800x600, + [Description("1024x768")] Res1024x768, + [Description("1152x864")] Res1152x864, + [Description("1280x800")] Res1280x800, + [Description("1280x1024")] Res1280x1024, + [Description("1366x768")] Res1366x768, + [Description("1440x900")] Res1440x900, + [Description("1600x900")] Res1600x900, + [Description("1600x1200")] Res1600x1200, + [Description("1680x1050")] Res1680x1050, + [Description("1920x1080")] Res1920x1080, + [Description("1920x1200")] Res1920x1200, + [Description("2048x1536")] Res2048x1536, + [Description("2560x1440")] Res2560x1440, + [Description("2560x1600")] Res2560x1600, + [Description("2560x2048")] Res2560x2048, + [Description("3840x2160")] Res3840x2160 + } +} \ No newline at end of file diff --git a/mRemoteV1/Connection/Protocol/RDP/RDPSoundQuality.cs b/mRemoteV1/Connection/Protocol/RDP/RDPSoundQuality.cs new file mode 100644 index 00000000..0cc13775 --- /dev/null +++ b/mRemoteV1/Connection/Protocol/RDP/RDPSoundQuality.cs @@ -0,0 +1,16 @@ +using mRemoteNG.Tools; + +namespace mRemoteNG.Connection.Protocol.RDP +{ + public enum RDPSoundQuality + { + [LocalizedAttributes.LocalizedDescription("strRDPSoundQualityDynamic")] + Dynamic = 0, + + [LocalizedAttributes.LocalizedDescription("strRDPSoundQualityMedium")] + Medium = 1, + + [LocalizedAttributes.LocalizedDescription("strRDPSoundQualityHigh")] + High = 2 + } +} \ No newline at end of file diff --git a/mRemoteV1/Connection/Protocol/RDP/RDPSounds.cs b/mRemoteV1/Connection/Protocol/RDP/RDPSounds.cs new file mode 100644 index 00000000..af16d959 --- /dev/null +++ b/mRemoteV1/Connection/Protocol/RDP/RDPSounds.cs @@ -0,0 +1,16 @@ +using mRemoteNG.Tools; + +namespace mRemoteNG.Connection.Protocol.RDP +{ + public enum RDPSounds + { + [LocalizedAttributes.LocalizedDescription("strRDPSoundBringToThisComputer")] + BringToThisComputer = 0, + + [LocalizedAttributes.LocalizedDescription("strRDPSoundLeaveAtRemoteComputer")] + LeaveAtRemoteComputer = 1, + + [LocalizedAttributes.LocalizedDescription("strRDPSoundDoNotPlay")] + DoNotPlay = 2 + } +} \ No newline at end of file diff --git a/mRemoteV1/Connection/Protocol/RDP/RdpProtocol.cs b/mRemoteV1/Connection/Protocol/RDP/RdpProtocol.cs index e6f6ed1a..2a72dec2 100644 --- a/mRemoteV1/Connection/Protocol/RDP/RdpProtocol.cs +++ b/mRemoteV1/Connection/Protocol/RDP/RdpProtocol.cs @@ -1,5 +1,4 @@ using System; -using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Threading; @@ -15,7 +14,7 @@ using MSTSCLib; namespace mRemoteNG.Connection.Protocol.RDP { - public class RdpProtocol : ProtocolBase, ISupportsViewOnly + public partial class RdpProtocol : ProtocolBase, ISupportsViewOnly { /* RDP v8 requires Windows 7 with: * https://support.microsoft.com/en-us/kb/2592687 @@ -819,131 +818,6 @@ namespace mRemoteNG.Connection.Protocol.RDP Port = 3389 } - public enum RDPColors - { - [LocalizedAttributes.LocalizedDescription("strRDP256Colors")] - Colors256 = 8, - - [LocalizedAttributes.LocalizedDescription("strRDP32768Colors")] - Colors15Bit = 15, - - [LocalizedAttributes.LocalizedDescription("strRDP65536Colors")] - Colors16Bit = 16, - - [LocalizedAttributes.LocalizedDescription("strRDP16777216Colors")] - Colors24Bit = 24, - - [LocalizedAttributes.LocalizedDescription("strRDP4294967296Colors")] - Colors32Bit = 32 - } - - public enum RDPSounds - { - [LocalizedAttributes.LocalizedDescription("strRDPSoundBringToThisComputer")] - BringToThisComputer = 0, - - [LocalizedAttributes.LocalizedDescription("strRDPSoundLeaveAtRemoteComputer")] - LeaveAtRemoteComputer = 1, - - [LocalizedAttributes.LocalizedDescription("strRDPSoundDoNotPlay")] - DoNotPlay = 2 - } - - public enum RDPSoundQuality - { - [LocalizedAttributes.LocalizedDescription("strRDPSoundQualityDynamic")] - Dynamic = 0, - - [LocalizedAttributes.LocalizedDescription("strRDPSoundQualityMedium")] - Medium = 1, - - [LocalizedAttributes.LocalizedDescription("strRDPSoundQualityHigh")] - High = 2 - } - - private enum RDPPerformanceFlags - { - [Description("strRDPDisableWallpaper")] - DisableWallpaper = 0x1, - -// [Description("strRDPDisableFullWindowdrag")]DisableFullWindowDrag = 0x2, -// [Description("strRDPDisableMenuAnimations")]DisableMenuAnimations = 0x4, - [Description("strRDPDisableThemes")] DisableThemes = 0x8, - -// [Description("strRDPDisableCursorShadow")]DisableCursorShadow = 0x20, -// [Description("strRDPDisableCursorblinking")]DisableCursorBlinking = 0x40, - [Description("strRDPEnableFontSmoothing")] - EnableFontSmoothing = 0x80, - - [Description("strRDPEnableDesktopComposition")] - EnableDesktopComposition = 0x100 - } - - public enum RDPResolutions - { - [LocalizedAttributes.LocalizedDescription("strRDPFitToPanel")] - FitToWindow, - - [LocalizedAttributes.LocalizedDescription("strFullscreen")] - Fullscreen, - - [LocalizedAttributes.LocalizedDescription("strRDPSmartSize")] - SmartSize, - [Description("800x600")] Res800x600, - [Description("1024x768")] Res1024x768, - [Description("1152x864")] Res1152x864, - [Description("1280x800")] Res1280x800, - [Description("1280x1024")] Res1280x1024, - [Description("1366x768")] Res1366x768, - [Description("1440x900")] Res1440x900, - [Description("1600x900")] Res1600x900, - [Description("1600x1200")] Res1600x1200, - [Description("1680x1050")] Res1680x1050, - [Description("1920x1080")] Res1920x1080, - [Description("1920x1200")] Res1920x1200, - [Description("2048x1536")] Res2048x1536, - [Description("2560x1440")] Res2560x1440, - [Description("2560x1600")] Res2560x1600, - [Description("2560x2048")] Res2560x2048, - [Description("3840x2160")] Res3840x2160 - } - - public enum AuthenticationLevel - { - [LocalizedAttributes.LocalizedDescription("strAlwaysConnectEvenIfAuthFails")] - NoAuth = 0, - - [LocalizedAttributes.LocalizedDescription("strDontConnectWhenAuthFails")] - AuthRequired = 1, - - [LocalizedAttributes.LocalizedDescription("strWarnIfAuthFails")] - WarnOnFailedAuth = 2 - } - - public enum RDGatewayUsageMethod - { - [LocalizedAttributes.LocalizedDescription("strNever")] - Never = 0, // TSC_PROXY_MODE_NONE_DIRECT - - [LocalizedAttributes.LocalizedDescription("strAlways")] - Always = 1, // TSC_PROXY_MODE_DIRECT - - [LocalizedAttributes.LocalizedDescription("strDetect")] - Detect = 2 // TSC_PROXY_MODE_DETECT - } - - public enum RDGatewayUseConnectionCredentials - { - [LocalizedAttributes.LocalizedDescription("strUseDifferentUsernameAndPassword")] - No = 0, - - [LocalizedAttributes.LocalizedDescription("strUseSameUsernameAndPassword")] - Yes = 1, - - [LocalizedAttributes.LocalizedDescription("strUseSmartCard")] - SmartCard = 2 - } - #endregion #region Resolution diff --git a/mRemoteV1/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs b/mRemoteV1/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs index edc135c8..67085299 100644 --- a/mRemoteV1/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs +++ b/mRemoteV1/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs @@ -221,7 +221,7 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid strHide.Add(nameof(AbstractConnectionRecord.RDPAlertIdleTimeout)); } - if (SelectedConnectionInfo.RDGatewayUsageMethod == RdpProtocol.RDGatewayUsageMethod.Never) + if (SelectedConnectionInfo.RDGatewayUsageMethod == RDGatewayUsageMethod.Never) { strHide.Add(nameof(AbstractConnectionRecord.RDGatewayDomain)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayHostname)); @@ -230,20 +230,20 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid strHide.Add(nameof(AbstractConnectionRecord.RDGatewayUsername)); } else if (SelectedConnectionInfo.RDGatewayUseConnectionCredentials == - RdpProtocol.RDGatewayUseConnectionCredentials.Yes) + RDGatewayUseConnectionCredentials.Yes) { strHide.Add(nameof(AbstractConnectionRecord.RDGatewayDomain)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayPassword)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayUsername)); } - if (!(SelectedConnectionInfo.Resolution == RdpProtocol.RDPResolutions.FitToWindow || - SelectedConnectionInfo.Resolution == RdpProtocol.RDPResolutions.Fullscreen)) + if (!(SelectedConnectionInfo.Resolution == RDPResolutions.FitToWindow || + SelectedConnectionInfo.Resolution == RDPResolutions.Fullscreen)) { strHide.Add(nameof(AbstractConnectionRecord.AutomaticResize)); } - if (SelectedConnectionInfo.RedirectSound != RdpProtocol.RDPSounds.BringToThisComputer) + if (SelectedConnectionInfo.RedirectSound != RDPSounds.BringToThisComputer) { strHide.Add(nameof(AbstractConnectionRecord.SoundQuality)); } diff --git a/mRemoteV1/mRemoteV1.csproj b/mRemoteV1/mRemoteV1.csproj index 5fa077f3..e2537c59 100644 --- a/mRemoteV1/mRemoteV1.csproj +++ b/mRemoteV1/mRemoteV1.csproj @@ -252,12 +252,20 @@ + + + Component + + + + + From f16894869accacb4749a4ef2aa43c1cd91029f08 Mon Sep 17 00:00:00 2001 From: Ivan Seriavin Date: Thu, 30 May 2019 14:27:27 +0300 Subject: [PATCH 23/32] Resolves https://github.com/mRemoteNG/mRemoteNG/issues/1468 --- mRemoteV1/App/Initialization/StartupDataLogger.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mRemoteV1/App/Initialization/StartupDataLogger.cs b/mRemoteV1/App/Initialization/StartupDataLogger.cs index d4bc791e..d205a8af 100644 --- a/mRemoteV1/App/Initialization/StartupDataLogger.cs +++ b/mRemoteV1/App/Initialization/StartupDataLogger.cs @@ -76,7 +76,7 @@ namespace mRemoteNG.App.Initialization var architecture = string.Empty; try { - foreach (var o in new ManagementObjectSearcher("SELECT * FROM Win32_Processor WHERE DeviceID=\'CPU0\'") + foreach (var o in new ManagementObjectSearcher("SELECT AddressWidth FROM Win32_Processor WHERE DeviceID=\'CPU0\'") .Get()) { var managementObject = (ManagementObject)o; From 78a1058aa1d0214a03588b2fc43fae78f5eb7ed8 Mon Sep 17 00:00:00 2001 From: Sarah Van der Veken <40831399+suggestable@users.noreply.github.com> Date: Tue, 4 Jun 2019 11:56:42 +0100 Subject: [PATCH 24/32] Update sql_configuration.rst Correcting English syntax --- mRemoteV1/Documentation/sql_configuration.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mRemoteV1/Documentation/sql_configuration.rst b/mRemoteV1/Documentation/sql_configuration.rst index 62773e12..67d8fb87 100644 --- a/mRemoteV1/Documentation/sql_configuration.rst +++ b/mRemoteV1/Documentation/sql_configuration.rst @@ -6,7 +6,7 @@ SQL Configuration .. warning:: - The SQL feature is in an early beta stage and not intended for use in an productive environment! I recommend you to do a full backup of your connections and settings before switching to SQL Server. + The SQL feature is in an early beta stage and not intended for use in a production environment! I recommend you to do a full backup of your connections and settings before switching to SQL Server. Supported Databases =================== From 07d7f10622f02217de90b33dcda6821812cb8313 Mon Sep 17 00:00:00 2001 From: Faryan Rezagholi Date: Tue, 4 Jun 2019 21:57:21 +0200 Subject: [PATCH 25/32] fixed spellling mistake --- mRemoteV1/Documentation/faq.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mRemoteV1/Documentation/faq.rst b/mRemoteV1/Documentation/faq.rst index 35226e05..0734338f 100644 --- a/mRemoteV1/Documentation/faq.rst +++ b/mRemoteV1/Documentation/faq.rst @@ -1,4 +1,4 @@ -************************** +************************** Frequently Asked Questions ************************** @@ -12,7 +12,7 @@ You sometimes see PuTTY icons on the side of the terminal (example below). This is a new security feature in PuTTY 0.71. It is meant to signify that PuTTY itself is outputting those lines and not some remote server. Full details are available `here `_. -How can I edit or creat connections in bulk? +How can I edit or create connections in bulk? ============================================ Currently, mRemoteNG does not have a feature to support editing or creating connections in bulk. See :ref:`bulk_connections` for more info on this. From 5038deaf97140c0507e456853e4bcf6d5fb8d754 Mon Sep 17 00:00:00 2001 From: Faryan Rezagholi Date: Sun, 9 Jun 2019 13:23:34 +0200 Subject: [PATCH 26/32] updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b302cc4..dd67b81c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] ### Added ### Changed +- #1468: Improved mRemoteNG startup time - #1443: Chinese (simplified) translation improvements - #1437: Norwegian translation improvements - #1239: Increased default key derivation function (KDF) iterations from 1000 to 10000 From 3acb9f1842c1854174f9772ad10691b628f02d02 Mon Sep 17 00:00:00 2001 From: Faryan Rezagholi Date: Sun, 9 Jun 2019 23:50:15 +0200 Subject: [PATCH 27/32] local attribute "favorite not getting serialized", fixes #1470 --- .../MsSql/LocalConnectionPropertiesXmlSerializer.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/LocalConnectionPropertiesXmlSerializer.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/LocalConnectionPropertiesXmlSerializer.cs index 3af6108d..57ec9b3f 100644 --- a/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/LocalConnectionPropertiesXmlSerializer.cs +++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/LocalConnectionPropertiesXmlSerializer.cs @@ -20,7 +20,8 @@ namespace mRemoteNG.Config.Serializers.MsSql .Select(m => new XElement("Node", new XAttribute("ConnectionId", m.ConnectionId), new XAttribute("Connected", m.Connected), - new XAttribute("Expanded", m.Expanded))); + new XAttribute("Expanded", m.Expanded), + new XAttribute("Favorite", m.Favorite))); var root = new XElement("LocalConnections", localConnections); var xdoc = new XDocument(new XDeclaration("1.0", "utf-8", null), root); @@ -40,7 +41,8 @@ namespace mRemoteNG.Config.Serializers.MsSql { ConnectionId = e.Attribute("ConnectionId")?.Value, Connected = bool.Parse(e.Attribute("Connected")?.Value ?? "False"), - Expanded = bool.Parse(e.Attribute("Expanded")?.Value ?? "False") + Expanded = bool.Parse(e.Attribute("Expanded")?.Value ?? "False"), + Favorite = bool.Parse(e.Attribute("Favorite")?.Value ?? "False") }); } From eee40c2130bf36d950b492d243b4195ba61c01dc Mon Sep 17 00:00:00 2001 From: wwj402 Date: Thu, 13 Jun 2019 17:08:23 +0800 Subject: [PATCH 28/32] update chinese simplified language 2019/06/13 --- mRemoteV1/Resources/Language/Language.zh-CN.resx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mRemoteV1/Resources/Language/Language.zh-CN.resx b/mRemoteV1/Resources/Language/Language.zh-CN.resx index 57f091f2..8cc0ac22 100644 --- a/mRemoteV1/Resources/Language/Language.zh-CN.resx +++ b/mRemoteV1/Resources/Language/Language.zh-CN.resx @@ -2769,7 +2769,7 @@ mRemoteNG 将退出并安装更新。 Multi SSH: - 按 ENTER 发送。 Ctrl+C 立即发送。 + 按 ENTER 发送。Ctrl+C 立即发送。 在收藏夹菜单中显示此连接。 @@ -2792,4 +2792,13 @@ mRemoteNG 将退出并安装更新。 环境 + + 使用 {1}/{2} 和 {3} 迭代加密 {0} 条目花费了 {4} 秒。 + + + 加密测试 + + + 测试设置 + \ No newline at end of file From 02e17f98451412d8b76b6c381a8532ab1bf044de Mon Sep 17 00:00:00 2001 From: cguadall Date: Sun, 16 Jun 2019 09:00:59 +0200 Subject: [PATCH 29/32] Update Language.es.resx Fix "dle" typo --- mRemoteV1/Resources/Language/Language.es.resx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mRemoteV1/Resources/Language/Language.es.resx b/mRemoteV1/Resources/Language/Language.es.resx index 84542f00..ddcf2a00 100644 --- a/mRemoteV1/Resources/Language/Language.es.resx +++ b/mRemoteV1/Resources/Language/Language.es.resx @@ -1334,7 +1334,7 @@ Arrancando con un nuevo archivo de conexiones. Introduzca su nombre de usuario de autentificación en el proxy. - Nombre dle host/IP + Nombre del host/IP Todo @@ -2068,4 +2068,4 @@ mRemoteNG ahora se cerrará y comenzará la instalación. - \ No newline at end of file + From 73c14a9ad05e12d897d6ffac84918c875d1e1bb4 Mon Sep 17 00:00:00 2001 From: Faryan Rezagholi Date: Tue, 18 Jun 2019 00:28:15 +0200 Subject: [PATCH 30/32] updated help to include info about PuTTY menu #1209 --- mRemoteV1/Documentation/user_interface/connections.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mRemoteV1/Documentation/user_interface/connections.rst b/mRemoteV1/Documentation/user_interface/connections.rst index 9fa9b269..83faf013 100644 --- a/mRemoteV1/Documentation/user_interface/connections.rst +++ b/mRemoteV1/Documentation/user_interface/connections.rst @@ -23,7 +23,11 @@ New Connection .. tip:: - You can also duplicate an already created connection if you want to follow some sort of template of a connection. Just right click on folder or connection to duplicate the item. The information is then carried over for editing. This can save a lot of time when the connection list is large. + You can also duplicate an existing connection. Just right click on folder or connection to duplicate the item. The information is then carried over for editing. This can save a lot of time when the connection list is large. + +.. tip:: + + When iside an SSH session you can open the PuTTY menu by holding down the CTRL key while right-clicking into the session window. Creates a new connection item in the connections dialog after where cursor is present. From 09f52a32a66f8ecedd4f262455296ff643068a26 Mon Sep 17 00:00:00 2001 From: Faryan Rezagholi Date: Tue, 18 Jun 2019 01:33:46 +0200 Subject: [PATCH 31/32] Update connections.rst fixed typo --- mRemoteV1/Documentation/user_interface/connections.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mRemoteV1/Documentation/user_interface/connections.rst b/mRemoteV1/Documentation/user_interface/connections.rst index 83faf013..84aa31e4 100644 --- a/mRemoteV1/Documentation/user_interface/connections.rst +++ b/mRemoteV1/Documentation/user_interface/connections.rst @@ -27,7 +27,7 @@ New Connection .. tip:: - When iside an SSH session you can open the PuTTY menu by holding down the CTRL key while right-clicking into the session window. + When inside an SSH session you can open the PuTTY menu by holding down the CTRL key while right-clicking into the session window. Creates a new connection item in the connections dialog after where cursor is present. From 00609f5a5d8ba8dee24a67d3429a4e2e38fa9e95 Mon Sep 17 00:00:00 2001 From: Faryan Rezagholi Date: Thu, 20 Jun 2019 22:34:27 +0200 Subject: [PATCH 32/32] removed trailing slash from URLs, fixes #1496 --- mRemoteV1/App/Info/GeneralAppInfo.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mRemoteV1/App/Info/GeneralAppInfo.cs b/mRemoteV1/App/Info/GeneralAppInfo.cs index fe424beb..289932ee 100644 --- a/mRemoteV1/App/Info/GeneralAppInfo.cs +++ b/mRemoteV1/App/Info/GeneralAppInfo.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Reflection; @@ -11,10 +11,10 @@ namespace mRemoteNG.App.Info { public static class GeneralAppInfo { - public const string UrlHome = "https://www.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 UrlHome = "https://www.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 static string ApplicationVersion = Application.ProductVersion; public static readonly string ProductName = Application.ProductName;