From 3adf9e9a51bd5e485e50d0298f9d226db85c6173 Mon Sep 17 00:00:00 2001
From: Robin Krom
Date: Thu, 18 Mar 2021 19:25:54 +0100
Subject: [PATCH 001/143] BUG-2743: Cleanup of MAPI & Outlook logic, removed
the check on "HKEY_LOCAL_MACHINE\SOFTWARE(\WOW6432Node)\Microsoft\Windows
Messaging Subsystem" with the MAPI value in favor of the
HKEY_LOCAL_MACHINE\SOFTWARE(\WOW6432Node)\Clients\Mail where the default
value contains the name, this should hopefully solve some issues.
---
Greenshot/Destinations/EmailDestination.cs | 16 +++---
Greenshot/Helpers/MailHelper.cs | 10 +---
.../Destinations/OutlookDestination.cs | 24 +++++++--
GreenshotPlugin/Core/EmailConfigHelper.cs | 54 -------------------
4 files changed, 28 insertions(+), 76 deletions(-)
delete mode 100644 GreenshotPlugin/Core/EmailConfigHelper.cs
diff --git a/Greenshot/Destinations/EmailDestination.cs b/Greenshot/Destinations/EmailDestination.cs
index 0ba93ff59..326e27e9c 100644
--- a/Greenshot/Destinations/EmailDestination.cs
+++ b/Greenshot/Destinations/EmailDestination.cs
@@ -26,6 +26,7 @@ using Greenshot.Configuration;
using Greenshot.Helpers;
using GreenshotPlugin.Core;
using GreenshotPlugin.Interfaces;
+using Microsoft.Win32;
namespace Greenshot.Destinations {
///
@@ -39,12 +40,9 @@ namespace Greenshot.Destinations {
static EmailDestination() {
// Logic to decide what email implementation we use
- if (!EmailConfigHelper.HasMapi()) return;
-
- _isActiveFlag = false;
- _mapiClient = EmailConfigHelper.GetMapiClient();
+ _mapiClient = RegistryHive.LocalMachine.ReadKey64Or32(@"Clients\Mail");
if (!string.IsNullOrEmpty(_mapiClient)) {
- // Active as we have a mapi client, can be disabled later
+ // Active as we have a MAPI client, can be disabled later
_isActiveFlag = true;
}
}
@@ -66,11 +64,9 @@ namespace Greenshot.Destinations {
if (_isActiveFlag) {
// Disable if the office plugin is installed and the client is outlook
// TODO: Change this! It always creates an exception, as the plugin has not been loaded the type is not there :(
- Type outlookdestination = Type.GetType("GreenshotOfficePlugin.OutlookDestination,GreenshotOfficePlugin");
- if (outlookdestination != null) {
- if (_mapiClient.ToLower().Contains("microsoft outlook")) {
- _isActiveFlag = false;
- }
+ var outlookDestination = Type.GetType("GreenshotOfficePlugin.OutlookDestination,GreenshotOfficePlugin", false);
+ if (outlookDestination != null && _mapiClient.ToLower().Contains("microsoft outlook")) {
+ _isActiveFlag = false;
}
}
return base.IsActive && _isActiveFlag;
diff --git a/Greenshot/Helpers/MailHelper.cs b/Greenshot/Helpers/MailHelper.cs
index 5111ba2cf..3bc09b5f8 100644
--- a/Greenshot/Helpers/MailHelper.cs
+++ b/Greenshot/Helpers/MailHelper.cs
@@ -80,15 +80,7 @@ namespace Greenshot.Helpers {
// Store the list of currently active windows, so we can make sure we show the email window later!
var windowsBefore = WindowDetails.GetVisibleWindows();
- //bool isEmailSend = false;
- //if (EmailConfigHelper.HasOutlook() && (CoreConfig.OutputEMailFormat == EmailFormat.OUTLOOK_HTML || CoreConfig.OutputEMailFormat == EmailFormat.OUTLOOK_TXT)) {
- // isEmailSend = OutlookExporter.ExportToOutlook(tmpFile, captureDetails);
- //}
- if (/*!isEmailSend &&*/ EmailConfigHelper.HasMapi()) {
- // Fallback to MAPI
- // Send the email
- SendImage(tmpFile, captureDetails.Title);
- }
+ SendImage(tmpFile, captureDetails.Title);
WindowDetails.ActiveNewerWindows(windowsBefore);
}
diff --git a/GreenshotOfficePlugin/Destinations/OutlookDestination.cs b/GreenshotOfficePlugin/Destinations/OutlookDestination.cs
index 65ccf03be..f08269c51 100644
--- a/GreenshotOfficePlugin/Destinations/OutlookDestination.cs
+++ b/GreenshotOfficePlugin/Destinations/OutlookDestination.cs
@@ -30,6 +30,7 @@ using GreenshotPlugin.IniFile;
using GreenshotPlugin.Interfaces;
using GreenshotPlugin.Interfaces.Plugin;
using Microsoft.Office.Interop.Outlook;
+using Microsoft.Win32;
namespace GreenshotOfficePlugin.Destinations {
///
@@ -47,23 +48,40 @@ namespace GreenshotOfficePlugin.Destinations {
private const string MapiClient = "Microsoft Outlook";
private readonly string _outlookInspectorCaption;
private readonly OlObjectClass _outlookInspectorType;
- private readonly OutlookEmailExporter _outlookEmailExporter = new OutlookEmailExporter();
+ private readonly OutlookEmailExporter _outlookEmailExporter = new();
static OutlookDestination() {
- if (EmailConfigHelper.HasOutlook()) {
+ if (HasOutlook()) {
IsActiveFlag = true;
}
ExePath = PluginUtils.GetExePath("OUTLOOK.EXE");
if (ExePath != null && File.Exists(ExePath)) {
WindowDetails.AddProcessToExcludeFromFreeze("outlook");
} else {
- ExePath = null;
+ ExePath = GetOutlookExePath();
}
if (ExePath == null) {
IsActiveFlag = false;
}
}
+
+ private static string GetOutlookExePath() => RegistryHive.LocalMachine.ReadKey64Or32(@"Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE");
+
+ ///
+ /// Check if Outlook is installed
+ ///
+ /// Returns true if outlook is installed
+ private static bool HasOutlook()
+ {
+ string outlookPath = GetOutlookExePath();
+ if (outlookPath == null)
+ {
+ return false;
+ }
+ return File.Exists(outlookPath);
+ }
+
public OutlookDestination() {
}
diff --git a/GreenshotPlugin/Core/EmailConfigHelper.cs b/GreenshotPlugin/Core/EmailConfigHelper.cs
deleted file mode 100644
index 9eb8a7bfe..000000000
--- a/GreenshotPlugin/Core/EmailConfigHelper.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Greenshot - a free and open source screenshot tool
- * Copyright (C) 2007-2021 Thomas Braun, Jens Klingen, Robin Krom
- *
- * For more information see: http://getgreenshot.org/
- * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-using System.IO;
-using Microsoft.Win32;
-
-namespace GreenshotPlugin.Core {
- ///
- /// Description of EmailConfigHelper.
- ///
- public static class EmailConfigHelper {
-
- public static string GetMapiClient() => RegistryHive.LocalMachine.ReadKey64Or32(@"Clients\Mail");
-
- public static bool HasMapi()
- {
- var value = RegistryHive.LocalMachine.ReadKey64Or32(@"Microsoft\Windows Messaging Subsystem", "MAPI", "0");
- return "1".Equals(value);
- }
-
- public static string GetOutlookExePath() => RegistryHive.LocalMachine.ReadKey64Or32(@"Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE");
-
- ///
- /// Check if Outlook is installed
- ///
- /// Returns true if outlook is installed
- public static bool HasOutlook() {
- string outlookPath = GetOutlookExePath();
- if (outlookPath == null)
- {
- return false;
- }
- return File.Exists(outlookPath);
- }
- }
-}
From 20e59ddd1ca81ba384e6608abf11b36c9aa2f4e1 Mon Sep 17 00:00:00 2001
From: Robin Krom
Date: Thu, 18 Mar 2021 21:53:25 +0100
Subject: [PATCH 002/143] FEATURE-1110: A first step in enabling a hotkey for
opening the clipboard contents in the editor. This is not visible nor
configurable in the UI, but needs to be configured in the greenshot.ini, by
specifying ClipboardHotkey=
---
Greenshot/Forms/MainForm.cs | 19 +++++++++++++++++-
Greenshot/Helpers/CaptureHelper.cs | 24 +++++++++++++++--------
GreenshotPlugin/Controls/HotkeyControl.cs | 10 +++++-----
GreenshotPlugin/Core/CoreConfiguration.cs | 3 +++
4 files changed, 42 insertions(+), 14 deletions(-)
diff --git a/Greenshot/Forms/MainForm.cs b/Greenshot/Forms/MainForm.cs
index ce6bd92af..1a38839c8 100644
--- a/Greenshot/Forms/MainForm.cs
+++ b/Greenshot/Forms/MainForm.cs
@@ -608,6 +608,10 @@ namespace Greenshot.Forms {
if (!RegisterWrapper(failedKeys, "CaptureLastRegion", "LastregionHotkey", _instance.CaptureLastRegion, ignoreFailedRegistration)) {
success = false;
}
+ if (!RegisterWrapper(failedKeys, "CaptureClipboard", "ClipboardHotkey", _instance.CaptureClipboard, true))
+ {
+ success = false;
+ }
if (_conf.IECapture) {
if (!RegisterWrapper(failedKeys, "CaptureIE", "IEHotkey", _instance.CaptureIE, ignoreFailedRegistration)) {
success = false;
@@ -688,7 +692,12 @@ namespace Greenshot.Forms {
contextmenu_capturewindow.ShortcutKeyDisplayString = HotkeyControl.GetLocalizedHotkeyStringFromString(_conf.WindowHotkey);
contextmenu_capturefullscreen.ShortcutKeyDisplayString = HotkeyControl.GetLocalizedHotkeyStringFromString(_conf.FullscreenHotkey);
contextmenu_captureie.ShortcutKeyDisplayString = HotkeyControl.GetLocalizedHotkeyStringFromString(_conf.IEHotkey);
- }
+ var clipboardHotkey = HotkeyControl.GetLocalizedHotkeyStringFromString(_conf.ClipboardHotkey);
+ if (!string.IsNullOrEmpty(clipboardHotkey) && !"None".Equals(clipboardHotkey))
+ {
+ contextmenu_captureclipboard.ShortcutKeyDisplayString = clipboardHotkey;
+ }
+ }
private void MainFormFormClosing(object sender, FormClosingEventArgs e) {
@@ -728,6 +737,14 @@ namespace Greenshot.Forms {
CaptureHelper.CaptureLastRegion(true);
}
+ ///
+ /// This is used by the hotkey trigger
+ ///
+ private void CaptureClipboard()
+ {
+ CaptureHelper.CaptureClipboard(DestinationHelper.GetDestination(EditorDestination.DESIGNATION));
+ }
+
private void CaptureIE() {
if (_conf.IECapture) {
CaptureHelper.CaptureIe(true, null);
diff --git a/Greenshot/Helpers/CaptureHelper.cs b/Greenshot/Helpers/CaptureHelper.cs
index 8b5d19bd7..19acda012 100644
--- a/Greenshot/Helpers/CaptureHelper.cs
+++ b/Greenshot/Helpers/CaptureHelper.cs
@@ -85,11 +85,23 @@ namespace Greenshot.Helpers {
PsAPI.EmptyWorkingSet();
}
}
+
public static void CaptureClipboard()
+ {
+ using CaptureHelper captureHelper = new CaptureHelper(CaptureMode.Clipboard);
+ captureHelper.MakeCapture();
+ }
+
+ public static void CaptureClipboard(IDestination destination)
{
using CaptureHelper captureHelper = new CaptureHelper(CaptureMode.Clipboard);
+ if (destination != null)
+ {
+ captureHelper.AddDestination(destination);
+ }
captureHelper.MakeCapture();
}
+
public static void CaptureRegion(bool captureMouse)
{
using CaptureHelper captureHelper = new CaptureHelper(CaptureMode.Region, captureMouse);
@@ -194,12 +206,8 @@ namespace Greenshot.Helpers {
}
public WindowDetails SelectedCaptureWindow {
- get {
- return _selectedCaptureWindow;
- }
- set {
- _selectedCaptureWindow = value;
- }
+ get => _selectedCaptureWindow;
+ set => _selectedCaptureWindow = value;
}
private void DoCaptureFeedback() {
@@ -244,7 +252,7 @@ namespace Greenshot.Helpers {
Log.Debug($"Capturing with mode {_captureMode} and using Cursor {_captureMouseCursor}");
_capture.CaptureDetails.CaptureMode = _captureMode;
- // Get the windows details in a seperate thread, only for those captures that have a Feedback
+ // Get the windows details in a separate thread, only for those captures that have a Feedback
// As currently the "elements" aren't used, we don't need them yet
switch (_captureMode) {
case CaptureMode.Region:
@@ -270,7 +278,7 @@ namespace Greenshot.Helpers {
CoreConfig.CaptureDelay = 0;
}
- // Capture Mousecursor if we are not loading from file or clipboard, only show when needed
+ // Capture Mouse cursor if we are not loading from file or clipboard, only show when needed
if (_captureMode != CaptureMode.File && _captureMode != CaptureMode.Clipboard)
{
_capture = WindowCapture.CaptureCursor(_capture);
diff --git a/GreenshotPlugin/Controls/HotkeyControl.cs b/GreenshotPlugin/Controls/HotkeyControl.cs
index 6e6557522..cb9f4593a 100644
--- a/GreenshotPlugin/Controls/HotkeyControl.cs
+++ b/GreenshotPlugin/Controls/HotkeyControl.cs
@@ -463,10 +463,10 @@ namespace GreenshotPlugin.Controls {
if (RegisterHotKey(_hotkeyHwnd, _hotKeyCounter, modifiers, (uint)virtualKeyCode)) {
KeyHandlers.Add(_hotKeyCounter, handler);
return _hotKeyCounter++;
- } else {
- Log.Warn($"Couldn't register hotkey modifier {modifierKeyCode} virtualKeyCode {virtualKeyCode}");
- return -1;
}
+
+ Log.Warn($"Couldn't register hotkey modifier {modifierKeyCode} virtualKeyCode {virtualKeyCode}");
+ return -1;
}
public static void UnregisterHotkeys() {
@@ -574,9 +574,9 @@ namespace GreenshotPlugin.Controls {
visibleName = visibleName.Substring(0,1) + visibleName.Substring(1).ToLower();
}
return visibleName;
- } else {
- return givenKey.ToString();
}
+
+ return givenKey.ToString();
}
}
}
\ No newline at end of file
diff --git a/GreenshotPlugin/Core/CoreConfiguration.cs b/GreenshotPlugin/Core/CoreConfiguration.cs
index 15f408480..bf2570ce9 100644
--- a/GreenshotPlugin/Core/CoreConfiguration.cs
+++ b/GreenshotPlugin/Core/CoreConfiguration.cs
@@ -74,6 +74,9 @@ namespace GreenshotPlugin.Core {
public string LastregionHotkey { get; set; }
[IniProperty("IEHotkey", Description="Hotkey for starting the IE capture", DefaultValue="Shift + Ctrl + PrintScreen")]
public string IEHotkey { get; set; }
+
+ [IniProperty("ClipboardHotkey", Description = "Hotkey for opening the clipboard contents into the editor")]
+ public string ClipboardHotkey { get; set; }
[IniProperty("IsFirstLaunch", Description="Is this the first time launch?", DefaultValue="true")]
public bool IsFirstLaunch { get; set; }
From 96d04334ef68db1b700d78ae75602d082422184c Mon Sep 17 00:00:00 2001
From: Robin Krom
Date: Fri, 19 Mar 2021 08:42:40 +0100
Subject: [PATCH 003/143] BUG-2745: Fixed registering issue when a hotkey is
not or wrongly configured.
---
Greenshot/Forms/MainForm.cs | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/Greenshot/Forms/MainForm.cs b/Greenshot/Forms/MainForm.cs
index 1a38839c8..4053b41f5 100644
--- a/Greenshot/Forms/MainForm.cs
+++ b/Greenshot/Forms/MainForm.cs
@@ -532,21 +532,26 @@ namespace Greenshot.Forms {
private static bool RegisterWrapper(StringBuilder failedKeys, string functionName, string configurationKey, HotKeyHandler handler, bool ignoreFailedRegistration) {
IniValue hotkeyValue = _conf.Values[configurationKey];
+ var hotkeyStringValue = hotkeyValue.Value?.ToString();
+ if (string.IsNullOrEmpty(hotkeyStringValue))
+ {
+ return true;
+ }
try {
- bool success = RegisterHotkey(failedKeys, functionName, hotkeyValue.Value.ToString(), handler);
+ bool success = RegisterHotkey(failedKeys, functionName, hotkeyStringValue, handler);
if (!success && ignoreFailedRegistration) {
- LOG.DebugFormat("Ignoring failed hotkey registration for {0}, with value '{1}', resetting to 'None'.", functionName, hotkeyValue);
+ LOG.DebugFormat("Ignoring failed hotkey registration for {0}, with value '{1}', resetting to 'None'.", functionName, hotkeyStringValue);
_conf.Values[configurationKey].Value = Keys.None.ToString();
_conf.IsDirty = true;
}
return success;
} catch (Exception ex) {
LOG.Warn(ex);
- LOG.WarnFormat("Restoring default hotkey for {0}, stored under {1} from '{2}' to '{3}'", functionName, configurationKey, hotkeyValue.Value, hotkeyValue.Attributes.DefaultValue);
+ LOG.WarnFormat("Restoring default hotkey for {0}, stored under {1} from '{2}' to '{3}'", functionName, configurationKey, hotkeyStringValue, hotkeyValue.Attributes.DefaultValue);
// when getting an exception the key wasn't found: reset the hotkey value
hotkeyValue.UseValueOrDefault(null);
hotkeyValue.ContainingIniSection.IsDirty = true;
- return RegisterHotkey(failedKeys, functionName, hotkeyValue.Value.ToString(), handler);
+ return RegisterHotkey(failedKeys, functionName, hotkeyStringValue, handler);
}
}
From a21abb1c7e9965f9a65f16b8c27868da0da87ab7 Mon Sep 17 00:00:00 2001
From: bovirus <1262554+bovirus@users.noreply.github.com>
Date: Fri, 19 Mar 2021 19:43:16 +0100
Subject: [PATCH 004/143] Update Italian language
@Lakritzator
Please check and merge. Thanks.
---
Greenshot/Languages/language-it-IT.xml | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/Greenshot/Languages/language-it-IT.xml b/Greenshot/Languages/language-it-IT.xml
index a2b3db147..53fa10837 100644
--- a/Greenshot/Languages/language-it-IT.xml
+++ b/Greenshot/Languages/language-it-IT.xml
@@ -7,10 +7,10 @@
Libreria icone del set icone Fugue di Yusuke Kamiyamane (Creative Commons Attribution 3.0 license)
Copyright (C) 2007-2021 Thomas Braun, Jens Klingen, Robin Krom
Greenshot viene fornito SENZA ALCUNA GARANZIA.
-Questo software è garuitio", e potete ri-distribuirlo secondo certe condizioni.
+Questo software è gratuito", e potete ri-distribuirlo secondo certe condizioni.
Dettagli della General Public License GNU:
Info su Greenshot
- Traduzione italiana (v. 16.08.2020) di bovirus e tonytogna
+ Traduzione italiana (v. 29.01.2021) di bovirus e tonytogna
Greenshot - Uno straordinario strumento per copiare immagini dallo schermo
Chiudi
Si è verificato un errore inaspettato.
@@ -133,7 +133,7 @@ Controlla i permessi di accesso per '{0}'.
Adatta a dimensioni di cattura
Offusca (O)
Sfuma
- Modalità di offuscamento
+ Modalità offuscamento
Offusca/pixelizza
Oggetti
Apri cartella su Windows Explorer
@@ -185,7 +185,7 @@ Correggi la maschera noem file e riprova.
Esegui ottimizzazioni per uso con desktop remoto
Riutilizza se possibile la gestione immagini
Evita avviso di salvataggio in chiusura della gestione immagini
- Visualizza anteprima finestra nel menù di contesto (Vista e Windows 7)
+ Visualizza anteprima finestra nel menù contestuale (Vista e Windows 7)
Esportato in: {0}
Si è verificato un errore durante l'esportazione in {0}:
Guida in linea Greenshot
@@ -207,7 +207,7 @@ Correggi la maschera noem file e riprova.
Aggiungi data/ora nel piè di pagina
Opzioni di stampa di Greenshot
Salva come qualità predefinita e non chiedere più
- Qualità di Greenshot
+ Qualità Greenshot
Salva direttamente (usando le impostazioni preferite file destinazione)
Visualizza scelta opzioni di stampa ogni volta che stampi un'immagine
Visualizza scelta qualità ogni volta che si salva un'immagine
From c303c073201d2e3100a64c57b7224119ee9b4144 Mon Sep 17 00:00:00 2001
From: Robin Krom
Date: Fri, 19 Mar 2021 22:53:19 +0100
Subject: [PATCH 005/143] Updated Microsoft.Toolkit.Uwp.Notifications which
brings a lot more to Greenshot [skip ci]
---
.../GreenshotWin10Plugin.csproj | 2 +-
.../Native/GreenshotNotificationActivator.cs | 44 ------
.../ToastNotificationService.cs | 142 ++++++++----------
3 files changed, 67 insertions(+), 121 deletions(-)
delete mode 100644 GreenshotWin10Plugin/Native/GreenshotNotificationActivator.cs
diff --git a/GreenshotWin10Plugin/GreenshotWin10Plugin.csproj b/GreenshotWin10Plugin/GreenshotWin10Plugin.csproj
index 00229a0ab..2c8237637 100644
--- a/GreenshotWin10Plugin/GreenshotWin10Plugin.csproj
+++ b/GreenshotWin10Plugin/GreenshotWin10Plugin.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/GreenshotWin10Plugin/Native/GreenshotNotificationActivator.cs b/GreenshotWin10Plugin/Native/GreenshotNotificationActivator.cs
deleted file mode 100644
index d47989c97..000000000
--- a/GreenshotWin10Plugin/Native/GreenshotNotificationActivator.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Greenshot - a free and open source screenshot tool
- * Copyright (C) 2007-2021 Thomas Braun, Jens Klingen, Robin Krom
- *
- * For more information see: http://getgreenshot.org/
- * The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-using System.Runtime.InteropServices;
-using log4net;
-using Microsoft.Toolkit.Uwp.Notifications;
-
-namespace GreenshotWin10Plugin.Native
-{
- ///
- /// This implements the NotificationActivator
- ///
- [ClassInterface(ClassInterfaceType.None)]
- [ComSourceInterfaces(typeof(NotificationActivator.INotificationActivationCallback))]
- [Guid("F48E86D3-E34C-4DB7-8F8F-9A0EA55F0D08"), ComVisible(true)]
- public class GreenshotNotificationActivator : NotificationActivator
- {
- private static readonly ILog Log = LogManager.GetLogger(typeof(GreenshotNotificationActivator));
-
- public override void OnActivated(string invokedArgs, NotificationUserInput userInput, string appUserModelId)
- {
- // TODO: Handle activation
- Log.Info("Activated");
- }
- }
-}
diff --git a/GreenshotWin10Plugin/ToastNotificationService.cs b/GreenshotWin10Plugin/ToastNotificationService.cs
index 4e3f6bc03..e7c932ab7 100644
--- a/GreenshotWin10Plugin/ToastNotificationService.cs
+++ b/GreenshotWin10Plugin/ToastNotificationService.cs
@@ -22,13 +22,12 @@
using System;
using System.Drawing.Imaging;
using System.IO;
-using System.Linq;
+using Windows.Foundation.Collections;
using Windows.Foundation.Metadata;
using Windows.UI.Notifications;
using GreenshotPlugin.Core;
using GreenshotPlugin.IniFile;
using GreenshotPlugin.Interfaces;
-using GreenshotWin10Plugin.Native;
using log4net;
using Microsoft.Toolkit.Uwp.Notifications;
@@ -45,10 +44,21 @@ namespace GreenshotWin10Plugin
private readonly string _imageFilePath;
public ToastNotificationService()
{
- // Register AUMID and COM server (for Desktop Bridge apps, this no-ops)
- DesktopNotificationManagerCompat.RegisterAumidAndComServer("Greenshot");
- // Register COM server and activator type
- DesktopNotificationManagerCompat.RegisterActivator();
+ if (ToastNotificationManagerCompat.WasCurrentProcessToastActivated())
+ {
+ Log.Info("Greenshot was activated due to a toast.");
+ }
+ // Listen to notification activation
+ ToastNotificationManagerCompat.OnActivated += toastArgs =>
+ {
+ // Obtain the arguments from the notification
+ ToastArguments args = ToastArguments.Parse(toastArgs.Argument);
+
+ // Obtain any user input (text boxes, menu selections) from the notification
+ ValueSet userInput = toastArgs.UserInput;
+
+ Log.Info("Toast activated. Args: " + toastArgs.Argument);
+ };
var localAppData = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Greenshot");
if (!Directory.Exists(localAppData))
@@ -81,7 +91,7 @@ namespace GreenshotWin10Plugin
return;
}
// Prepare the toast notifier. Be sure to specify the AppUserModelId on your application's shortcut!
- var toastNotifier = DesktopNotificationManagerCompat.CreateToastNotifier();
+ var toastNotifier = ToastNotificationManagerCompat.CreateToastNotifier();
// Here is an interesting article on reading the settings: https://www.rudyhuyn.com/blog/2018/02/10/toastnotifier-and-settings-careful-with-non-uwp-applications/
try
@@ -97,82 +107,62 @@ namespace GreenshotWin10Plugin
Log.Info("Ignoring exception as this means that there was no stored settings.");
}
- // Get a toast XML template
- var toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText01);
+ // Generate the toast and send it off
+ new ToastContentBuilder()
- // Fill in the text elements
- var stringElement = toastXml.GetElementsByTagName("text").First();
- stringElement.AppendChild(toastXml.CreateTextNode(message));
-
- if (_imageFilePath != null && File.Exists(_imageFilePath))
- {
- // Specify the absolute path to an image
- var imageElement = toastXml.GetElementsByTagName("image").First();
- var imageSrcNode = imageElement.Attributes.GetNamedItem("src");
- if (imageSrcNode != null)
+ .AddArgument("ToastID", 100)
+ // Inline image
+ .AddText(message)
+ // Profile (app logo override) image
+ //.AddAppLogoOverride(new Uri($@"file://{_imageFilePath}"), ToastGenericAppLogoCrop.None)
+ .Show(toast =>
{
- imageSrcNode.NodeValue = _imageFilePath;
- }
- }
+ // Windows 10 first with 1903: ExpiresOnReboot = true
+ toast.ExpirationTime = timeout.HasValue ? DateTimeOffset.Now.Add(timeout.Value) : (DateTimeOffset?) null;
+ void ToastActivatedHandler(ToastNotification toastNotification, object sender)
+ {
+ try
+ {
+ onClickAction?.Invoke();
+ }
+ catch (Exception ex)
+ {
+ Log.Warn("Exception while handling the onclick action: ", ex);
+ }
- // Create the toast and attach event listeners
- var toast = new ToastNotification(toastXml)
- {
- // Windows 10 first with 1903: ExpiresOnReboot = true,
- ExpirationTime = timeout.HasValue ? DateTimeOffset.Now.Add(timeout.Value) : (DateTimeOffset?)null
- };
+ toast.Activated -= ToastActivatedHandler;
+ }
- void ToastActivatedHandler(ToastNotification toastNotification, object sender)
- {
- try
- {
- onClickAction?.Invoke();
- }
- catch (Exception ex)
- {
- Log.Warn("Exception while handling the onclick action: ", ex);
- }
+ if (onClickAction != null)
+ {
+ toast.Activated += ToastActivatedHandler;
+ }
- toast.Activated -= ToastActivatedHandler;
- }
+ void ToastDismissedHandler(ToastNotification toastNotification, ToastDismissedEventArgs eventArgs)
+ {
+ Log.Debug($"Toast closed with reason {eventArgs.Reason}");
+ if (eventArgs.Reason != ToastDismissalReason.UserCanceled)
+ {
+ return;
+ }
+ try
+ {
+ onClosedAction?.Invoke();
+ }
+ catch (Exception ex)
+ {
+ Log.Warn("Exception while handling the onClosed action: ", ex);
+ }
- if (onClickAction != null)
- {
- toast.Activated += ToastActivatedHandler;
- }
+ toast.Dismissed -= ToastDismissedHandler;
+ // Remove the other handler too
+ toast.Activated -= ToastActivatedHandler;
+ toast.Failed -= ToastOnFailed;
- void ToastDismissedHandler(ToastNotification toastNotification, ToastDismissedEventArgs eventArgs)
- {
- Log.Debug($"Toast closed with reason {eventArgs.Reason}");
- if (eventArgs.Reason != ToastDismissalReason.UserCanceled)
- {
- return;
- }
- try
- {
- onClosedAction?.Invoke();
- }
- catch (Exception ex)
- {
- Log.Warn("Exception while handling the onClosed action: ", ex);
- }
-
- toast.Dismissed -= ToastDismissedHandler;
- // Remove the other handler too
- toast.Activated -= ToastActivatedHandler;
- toast.Failed -= ToastOnFailed;
-
- }
- toast.Dismissed += ToastDismissedHandler;
- toast.Failed += ToastOnFailed;
- try
- {
- toastNotifier.Show(toast);
- }
- catch (Exception ex)
- {
- Log.Error("Couldn't show notification.", ex);
- }
+ }
+ toast.Dismissed += ToastDismissedHandler;
+ toast.Failed += ToastOnFailed;
+ });
}
private void ToastOnFailed(ToastNotification sender, ToastFailedEventArgs args)
From 33defa6165d462ded81e9ad1912ed50c86ec20da Mon Sep 17 00:00:00 2001
From: bovirus <1262554+bovirus@users.noreply.github.com>
Date: Sat, 20 Mar 2021 11:55:39 +0100
Subject: [PATCH 006/143] Update Help (IT)
@Lakritzator
Please check and merge. Thanks.
---
Greenshot/Languages/help-it-IT.html | 332 ++++++++++++----------------
1 file changed, 146 insertions(+), 186 deletions(-)
diff --git a/Greenshot/Languages/help-it-IT.html b/Greenshot/Languages/help-it-IT.html
index 1d5744287..14c135e67 100644
--- a/Greenshot/Languages/help-it-IT.html
+++ b/Greenshot/Languages/help-it-IT.html
@@ -1,4 +1,4 @@
-
+
@@ -35,68 +35,62 @@
Cattura ultima regione
Cattura finestra
Cattura schermo intero
- Cattura Internet Explorer
+ Cattura con Internet Explorer
- Uso della Gestione Immagini
+ Uso gestione immagini
- - Disegnare forme
- - Aggiungere testo
- - Evidenziare qualcosa
- - Offuscare qualcosa
- - Ritagliare l'immagine
- - Aggiungere elementi grafici all'immagine
- - Riutilizzare gli elementi disegnati
- - Esportare l'immagine
+ - Disegna forme
+ - Aggiungi testo
+ - Evidenzia qualcosa
+ - Offusca qualcosa\
+ - Ritaglia immagine
+ - Aggiungi elementi grafici all'immagine
+ - Riusa elementi disegnati
+ - Esporta immagine
- La pagina delle Impostazioni
+ Pagina impostazioni
- - Impostazioni Generali
- - Impostazioni di Cattura
- - Impostazioni di Emissione
- - Impostazioni Stampante
+ - Impostazioni generali
+ - Impostazioni cattura
+ - Impostazioni destinazione
+ - Impostazioni stampante
Vuoi aiutarci?
- - Considera una donazione
+ - Fai una donazione
- Spargi la parola
- Invia una traduzione
- Creazione immagine dello schermo
+ Crea immagine dello schermo
- L'immagine può essere creata utilizzando il tasto Stamp della tastiera,
- oppure cliccando il tasto destro del mouse sull'icona di Greenshot nella barra.
+ L'immagine può essere creata usando il tasto Stamp della tastiera, oppure facendo clic il tasto destro del mouse sull'icona di Greenshot nella barra.
Ci sono varie opzioni per creare un'immagine:
Cattura regione Stamp
- Il metodo cattura regione consente di selezionare una parte dello schermo da "fotografare".
- Dopo aver avviato il metodo regione, apparirà un mirino sulla posizione del mouse sullo
- schermo. Cliccare e tenere premuto dove si vuole impostare un angolo della regione da
- fotografare. Tenendo premuto il pulsante del mouse, muovere il mouse fino a definire il
- rettangolo da fotografare. Rilasciare quindi il pulsante quando il rettangolo verde avrà
- coperto l'area da catturare nell'immagine.
+ Il metodo cattura regione consente di selezionare una parte dello schermo da "catturare".
+ Dopo aver attivato la cattura, apparirà un mirino sulla posizione del mouse sullo schermo.
+ Fai clic e tieni premuto dove vuoi impostare un angolo della regione da catturare.
+ Tenendo premuto il pulsante del mouse, sposta il mouse fino a definire il rettangolo da catturare.
+ Rilascia quindi il pulsante quando il rettangolo verde avrà coperto l'area che vuoi catturare.
- Si può usare il tasto Spazio per cambiare da metodo regione a metodo
- finestra.
+ Puoi usare il tasto Spazio per cambiare da metodo regione a metodo finestra.
- Se si vuol catturare precisamente un'area, potrebbe risultare più facile selezionare
- un'area più grande e quindi ritagliare l'immagine in
- seguito, utilizzando la Gestione Immagini di Greenshot.
+ Se vuoi catturare una specifica, può risultare più facile selezionare un'area più grande e quindi ritagliare l'immagine in seguito, usando la 'Gestione immagini' di Greenshot.
Cattura ultima regione Maiusc + Stamp
- Usando questa opzione, se avete già eseguito un cattura regione o finestra,
- si può ricatturare automaticamente la stessa regione.
+ Usando questa opzione, se hai già eseguito un cattura regione o finestra, puoi ricatturare automaticamente la stessa regione.
@@ -105,14 +99,10 @@
Crea un'immagine della finestra che è attiva in quel momento.
- La pagina delle impostazioni offre una possibilità per non catturare
- direttamente la finestra attiva, consentendo quindi di sceglierne una interattivamente.
- Se si seleziona questa opzione, la finestra può essere scelta cliccandovi (come nel metodo
- regione, Greenshot evidenzierà l'area che verrà catturata).
-
Se si vuol catturare una finestra figlia (es: una browser
- viewport (senza barra strumenti, ecc...) o un singolo frame di una pagina web che usa i framesets)
- si può puntare il cursore del mouse sulla finestra e premere il tasto PgDown. Dopo di questo, sarà
- possibile selezionare elementi da catturare nella finestra figlia.
+ La pagina delle impostazioni offre una possibilità per non catturare direttamente la finestra attiva, consentendo quindi di sceglierne una interattivamente.
+ Se selezioni questa opzione, la finestra può essere scelta facendovi clic sopra (come nel metodo regione, Greenshot evidenzierà l'area che verrà catturata).
+ Se vuoi catturare una finestra figlia (es: una browser viewport (senza barra strumenti, ecc...) o un singolo frame di una pagina web che usa i frameset) puoi puntare il cursore del mouse sulla finestra e premere il tasto PgDown.
+ Fatto questo, sarà possibile selezionare gli elementi da catturare nella finestra figlia.
@@ -122,75 +112,63 @@
Cattura Internet Explorer Ctrl + Maiusc + Stamp
- Crea facilmente un'immagine della pagina web attiva in quel momento su Internet Explorer.
- Si può usare il menu sensibile al contesto di Greenshot per selezionare la tab di Internet Explorer da catturare, oppure premere
- Crtl + Maiusc + Stamp per catturare la tab attiva.
+ Crea facilmente un'immagine della pagina web attiva in quel momento su Internet Explorer.
+ Puoi usare il menu sensibile al contesto di Greenshot per selezionare la scheda di Internet Explorer da catturare, o premi Crtl + Maiusc + Stamp per catturare la scheda attiva.
- Uso della Gestione Immagini
+ Uso Gestione Immagini
- Greenshot fornisce anche una pratica gestione delle immagini, che include degli utili strumenti
- per aggiungere note e forme alle immagini. Essa permette inoltre di evidenziare o
- offuscare parti dell'immagine.
+ Greenshot fornisce anche una pratica gestione delle immagini, che include degli utili strumenti per aggiungere note e forme alle immagini.
+ Essa permette inoltre di evidenziare o offuscare parti dell'immagine.
- La Gestioni Immagini di Greenshot non è solo per le immagini catturate. Si può usare
- anche per aprire e modificare immagini da file o da Appunti. E' sufficiente premere il tasto destro
- sull'icona di Greenshot nella barra, e selezionare rispettivamente Apri immagine da file
- o Apri immagine da Appunti.
+ La Gestioni Immagini di Greenshot non serve solo per le immagini catturate.
+ Si può usare anche per aprire e modificare immagini da file o da Appunti.
+ E' sufficiente premere il tasto destro sull'icona di Greenshot nella barra, e selezionare rispettivamente Apri immagine da file o Apri immagine da Appunti.
- Come default, la gestione immagini verrà aperta ogniqualvolta un'immagine viene catturata.
- Se non si vuole passare per la gestione immagini, si può disabilitare questo funzionamento
- nella pagina delle impostazioni.
+ Come impostazione predefinita, la gestione immagini verrà aperta ogni volta che un'immagine viene catturata.
+ Se non vuoi usare la gestione immagini, puoi disabilitare questa funzionalità nella pagina delle impostazioni.
- Disegnare forme
+ Disegna forme
- Selezionare uno degli strumenti di disegno dalla barra degli strumenti sul lato sinistro
- della gestione immagini o dal menù Oggetti. Per facilitarne la selezione, ciascun
- strumento è assegnato ad un tasto.
- Le forme disponibili sono: rettangolo R, ellisse E, linea L
- e freccia A.
- Cliccare, tenendo premuto il pulsante del mouse e trascinare per definire la posizione e la dimensione della forma.
- Completata la definizione, rilasciare il pulsante del mouse.
+ Seleziona uno degli strumenti di disegno dalla barra degli strumenti sul lato sinistro della gestione immagini o dal menù Oggetti.
+ Per facilitarne la selezione, ciascun strumento è assegnato ad un tasto.
+ Le forme disponibili sono: rettangolo R, ellisse E, linea L e freccia A.
+ Fai clic, e tenendo premuto il pulsante del mouse trascina per definire la posizione e la dimensione della forma.
+ Completata la definizione, rilascia il pulsante del mouse.
- Le forme possono essere mosse e ridimensionate facilmente, previa selezione mediante lo strumento
- ESC disponibile nella barra a sinistra.
Per ciascun tipo di elemento c'è un gruppo di
- opzioni specifiche per cambiarne l'aspetto (es: spessore linea,
- colore linea, colore di riempimento). Si possono modificare le opzioni di un elemento esistente, previa selezione,
- e anche quelle di nuovi elementi da disegnare, previa selezione dello strumento di disegno.
+ Le forme possono essere mosse e ridimensionate facilmente, previa selezione mediante lo strumento ESC disponibile nella barra a sinistra.
+ Per ciascun tipo di elemento c'è un gruppo di opzioni specifiche per cambiarne l'aspetto (es: spessore linea, colore linea, colore di riempimento).
+ Si possono modificare le opzioni di un elemento esistente, previa selezione, e anche quelle di nuovi elementi da disegnare, previa selezione dello strumento di disegno.
- Si possono inoltre selezionare più elementi per una modifica simultanea. Per selezionare più elementi,
- tenere premuto il tasto Maiusc mentre si clicca sugli elementi.
+ Si possono inoltre selezionare più elementi per una modifica simultanea.
+ Per selezionare più elementi, tieni premuto il tasto Maiusc mentre si fai clic sugli elementi.
- Aggiungere testo
+ Aggiungi testo
- L'uso dello strumento di testo T è simile all'uso degli strumenti di disegno
- forme. E' sufficiente disegnare l'elemento di testo delle dimensioni desiderate,
- e quindi digitare il testo.
- Per modificare il testo di un elemento esistente, premere il doppio click sull'elemento.
+ L'uso dello strumento di testo T è simile all'uso degli strumenti di disegno forme.
+ E' sufficiente disegnare l'elemento di testo delle dimensioni desiderate, e quindi digitare il testo.
+ Per modificare il testo di un elemento esistente, fai doppio clic sull'elemento.
- Evidenziare qualcosa
+ Evidenzia qualcosa
- Dopo aver selezionato lo strumento di evidenziazione H, definire l'area da evidenziare esattamente
- come si volesse disegnare una forma.
- Ci sono varie opzioni per evidenziare, esse possono essere selezionate cliccando il pulsante
- più in alto a sinistra nella barra degli strumenti:
+ Dopo aver selezionato lo strumento di evidenziazione H, definisci l'area da evidenziare esattamente come si volesse disegnare una forma.
+ Ci sono varie opzioni per evidenziare, esse possono essere selezionate selezionando il pulsante più in alto a sinistra nella barra degli strumenti:
- - Evidenzia il testo: evidenzia un'area applicando un colore brillante ad essa, come un
- pennarello evidenziatore
- - Evidenzia l'area: sfuoca* e scurisce tutto all'esterno dell'area selezionata
+ - Evidenzia testo: evidenzia un'area applicando un colore brillante ad essa, come un pennarello evidenziatore
+ - Evidenzia area: sfuoca * e scurisce tutto all'esterno dell'area selezionata
- Scala di grigi: tutto ciò che è al di fuori dell'area selezionata viene trasformato in scala di grigi
- Ingrandisci: l'area selezionata verrà visualizzata come ingrandita da una lente
@@ -198,177 +176,163 @@
Offuscare qualcosa
- Offuscare parti di un'immagine può essere una buona idea se essa contiene dati privati che non devono essere
- visti da altre persone, per esempio dati conto bancario, nomi, parole d'ordine o volti di persone.
- Usare lo strumento di offuscamento O esattamente come lo strumento di evidenziazione.
+ Offuscare parti di un'immagine può essere una buona idea se essa contiene dati privati che non devono essere visti da altre persone, per esempio dati conto bancario, nomi, parole d'ordine o volti di persone.
+ Usa lo strumento di offuscamento O esattamente come lo strumento di evidenziazione.
Le opzioni disponibili per l'offuscamento, sono:
- - Offusca/pixelize: aumenta le dimensioni dei pixel nell'area selezionata
+ - Offusca/pixelizza: aumenta le dimensioni dei pixel nell'area selezionata
- Sfuma*: sfuma e sfuoca l'area selezionata
- * A seconda delle prestazioni del proprio PC, applicare un effetto di sfumatura potrebbe rallentare la Gestione
- Immagini di Greenshot. Se si vede che la Gestione Immagini risponde lentamente subito dopo aver eseguito una sfumatura,
- è utile provare a ridurre il valore di Qualità anteprima nella barra strumenti di offuscamento,
- o a diminuire il valore di Raggio sfumatura.
- Se le prestazioni della sfumatura sono ancora deludenti per poterci lavorare, si consiglia si usare invece
- l'effetto Offusca/pixelize.
+ * A seconda delle prestazioni del proprio PC, applicare un effetto di sfumatura potrebbe rallentare la Gestione Immagini di Greenshot.
+ Se si vede che la Gestione Immagini risponde lentamente subito dopo aver eseguito una sfumatura, è utile provare a ridurre il valore di Qualità anteprima nella barra strumenti di offuscamento, o a diminuire il valore di Raggio sfumatura.
+ Se le prestazioni della sfumatura sono ancora deludenti per poterci lavorare, ti consiglia si usare invece l'effetto Offusca/pixelizza.
- Ritagliare l'immagine
+ Ritaglia immagine
- Per ricavare solo una parte dell'immagine catturata, si può usare lo strumento di ritaglio C
- per ritagliare l'area desiderata.
- Dopo aver selezionato lo strumento di ritaglio, disegnare un rettangolo per l'area che si vuole mantenere.
+ Per ricavare solo una parte dell'immagine catturata, si può usare lo strumento di ritaglio C per ritagliare l'area desiderata.
+ Dopo aver selezionato lo strumento di ritaglio, disegna un rettangolo per l'area che vuoi mantenere.
Come per gli atri elementi, si possono facilmente modificare le dimensioni dell'area selezionata.
- Dopo aver impostato correttamente la selezione dell'area, premere il pulsante di conferma della barra strumenti
- oppure premere il tasto Invio. Si può annullare l'azione di ritaglio, cliccando il pulsante di cancellazione o premendo
- ESC.
+ Dopo aver impostato correttamente la selezione dell'area, seleziona il pulsante di conferma nella barra strumenti o premi il tasto Invio.
+ Puoi annullare l'azione di ritaglio, selezionando il pulsante annullamento o premendo ESC.
- Ritaglia Automaticamente: Se si ha la necessità di ritagliare un pezzo dell'immagine lungo i bordi di uno sfondo con colore compatto,
- è sufficiente scegliere Ritaglia Automaticamente dal menù Modifica e Greenshot automaticamente
- selezionerà l'area di ritaglio.
+ Ritaglia automaticamente: ae si ha la necessità di ritagliare un pezzo dell'immagine lungo i bordi di uno sfondo con colore compatto, è sufficiente scegliere Ritaglia automaticamente dal menù Modifica e Greenshot automaticamente selezionerà l'area di ritaglio.
Aggiunta elementi grafici all'immagine
- Si possono facilmente aggiungere degli elementi grafici o delle altre immagini alla immagine in lavorazione, è sufficiente trascinare un file di immagine
- all'interno della finestra di gestione immagini. Inoltre, selezionando Inserisci finestra dal menù Modifica, si possono inserire
- immagini prese da altre finestre. In questo caso, appare una lista con tutte le finestre aperte, consentendo quindi di scegliere quella che si
- vuole inserire.
+ Si possono facilmente aggiungere degli elementi grafici o delle altre immagini alla immagine in lavorazione, trascinando un file immagine all'interno della finestra di gestione immagini.
+ Inoltre, selezionando Inserisci finestra dal menù Modifica, si possono inserire immagini prese da altre finestre.
+ In questo caso, appare un elenco con tutte le finestre aperte, consentendo quindi di scegliere quella che si vuole inserire.
- Ri-utilizzare elementi disegnati
+ Ri-usa elementi disegnati
- Se ci si ritrova a utilizzare lo stesso o simile elemento nella maggior parte delle immagini,
- (es: campo di testo contenente tipo browser e versione, oppure offuscamento dello stesso elemento
- su più immagini), è possibile riutilizzare gli elementi in modo semplice.
- Selezionare Salva oggetti su file dal menù Oggetti per salvare di elementi correnti
- per poterli riutilizzare poi. Carica oggetti da file viene invece usato per applicare su un'altra immagine
- gli elementi salvati in precedenza.
+ Se ci si ritrova a utilizzare lo stesso o simile elemento nella maggior parte delle immagini, (es: campo di testo contenente tipo browser e versione, oppure offuscamento dello stesso elemento su più immagini), è possibile riusare gli elementi in modo semplice.
+ Per salvare di elementi attuali seleziona Salva oggetti su file dal menù Oggetti.
+ Per poterli riusare seleziona Carica oggetti da file con un'altra immagine.
- Esportare l'immagine
+ Esporta immagine
- Dopo aver modificato l'immagine, si può esportare il risultato per vari scopi, a seconda delle necessità.
- Si può accedere a tutte le opzioni di esportazione mediante il menù File,
- sulla barra principale, o per mezzo delle seguenti scorciatoie:
+ Dopo aver modificato l'immagine, si può esportare il risultato per vari scopi, a seconda delle necessità.
+ Si può accedere a tutte le opzioni di esportazione dal menù File, nella barra principale, o per mezzo delle seguenti scorciatoie:
- - Salva Ctrl + S: salva l'immagine su un file (se l'immagine è già stata salvata, altrimenti emette la finestra di Salva come...)
+ - Salva Ctrl + S: salva l'immagine in un file (se l'immagine è già stata salvata, altrimenti visualizza la finestra di Salva come...)
- Salva come... Ctrl + Maiusc + S: permette di scegliere la destinazione, il nome file e il formato immagine per il file da salvare
- - Copia immagine sugli appunti Ctrl + Maiusc + C: mette una copia dell'immagine sugli appunti, consentendo poi di incollarla dentro altri programmi
- - Stampa... Ctrl + P: invia l'immagine a una stampante
- - E-Mail Ctrl + E: apre un nuovo messaggio sul programma di e-mail di default, aggiungendo l'immagine come allegato
+ - Copia immagine negli Appunti Ctrl + Maiusc + C: fa una copia dell'immagine negli Appunti, consentendo poi di incollarla in altri programmi
+ - Stampa... Ctrl + P: invia l'immagine ad una stampante
+ - Email Ctrl + E: crea un nuovo messaggio nel programma email predefinito, aggiungendo l'immagine come allegato
- Dopo aver salvato un'immagine dalla gestione, cliccando con il tasto destro del mouse sulla barra di stato in basso sulla finestra
- della gestione immagini, è possibile copiare il percorso sugli appunti, oppure aprire la cartella di destinazione con la gestione risorse.
+ Dopo aver salvato un'immagine dalla gestione, facendo clic con il tasto destro del mouse sulla barra di stato in basso sulla finestra della gestione immagini, è possibile copiare il percorso negli Appunti, o aprire la cartella destinazione con la Gestione risorse.
- Le Preferenze
+ Preferenze
- Impostazioni Generali
+ Impostazioni generali
- - Lingua: La lingua che si preferisce usare.
- Si possono scaricare i file per le lingue aggiuntive di Greenshot qui.
- - Lancia Greenshot all'avvio: Avvia il programma in automatico all'accensione del sistema.
- - Scorciatoie di tastiera: Personalizza le scorciatoie (hotkeys) da usare per catturare le immagini.
- - Usa il proxy di default del sistema: Se selezionato, Greenshot usa il proxy di default del sistema per controllare se ci sono aggiornamenti.
- - Intervallo di controllo aggiornamento, in giorni: Greenshot può controllare automaticamente se ci sono aggiornamenti. Questo parametro può essere
- utilizzato per specificare l'intervallo (in giorni); per disabilitare il controllo aggiornamento si può usare il valore 0.
+ - Lingua: lingua dell'interfaccia utente.
+ Si possono scaricare i file per le lingue aggiuntive di Greenshot da qui.
+ - Esegui Greenshot all'avvio: esegue il programma Greenshot in automatico all'avvio del sistema.
+ - Scorciatoie tastiera: personalizza le scorciatoie (tasti rapidi) da usare per catturare le immagini.
+ - Usa proxy predefinito sistema: se selezionato, Greenshot per controllare se ci sono aggiornamenti usa il proxy predefinito di sistema.
+ - Intervallo controllo aggiornamento, in giorni: Greenshot può controllare automaticamente se ci sono aggiornamenti.
+ Questo parametro può essere usato per specificare l'intervallo (in giorni); per disabilitare il controllo aggiornamento si può usare il valore 0.
- Impostazioni di Cattura
+ Impostazioni cattura
- - Cattura puntatore mouse: Se selezionato, il puntatore del mouse verrà catturato. Il puntatore viene gestito come un elemento separato, in modo che possa essere spostato o rimosso in seguito.
- - Emetti suono fotocamera: Attiva il riscontro udibile dell'azione di cattura (suono dello scatto fotografico).
- - Millisecondi di attesa prima di catturare: Utile per aggiungere un tempo di ritardo prima dell'effettiva cattura dello schermo.
- - Usa la modalità di cattura via finestra interattiva: Invece di catturare direttamente la finestra attiva, la modalità interattiva
- consente di selezionare la finestra da catturare. E' inoltre possibile catturare le finestre figlie, vedi Cattura finestra.
+ - Cattura puntatore mouse: se selezionato, il puntatore del mouse verrà catturato.
+ Il puntatore viene gestito come un elemento separato, in modo che possa essere spostato o rimosso in seguito.
+ - Riproduci suono fotocamera: attiva il riscontro udibile dell'azione di cattura (suono scatto fotografico).
+ - Millisecondi attesa prima di catturare: utile per aggiungere un tempo di ritardo prima dell'effettiva cattura dello schermo.
+ - Usa modalità cattura via finestra interattiva: invece di catturare direttamente la finestra attiva, la modalità interattiva consente di selezionare la finestra da catturare.
+ E' inoltre possibile catturare le finestre figlie, vedi Cattura finestra.
-
- Cattura in stile Aero (so Windows Vista / 7): Se si sta usando Greenshot su Windows Vista or Windows 7 con lo stile di visualizzazione Aero abilitato, è possibile
- scegliere come devono essere gestiti i bordi della finestra trasparente quando vengono create le immagini in modalità finestra. Questa impostazione è da usare per evitare
- la cattura di elementi dello sfondo che appaiono attraverso i bordi trasparenti.
+ Cattura in stile Aero (so Windows Vista / 7): se si sta usando Greenshot in Windows Vista o Windows 7 con lo stile di visualizzazione Aero abilitato, è possibile scegliere come devono essere gestiti i bordi della finestra trasparenti quando vengono create le immagini in modalità finestra.
+ Questa impostazione è da usare per evitare la cattura di elementi dello sfondo che appaiono attraverso i bordi trasparenti.
- Automaticamente: Greenshot deciderà come gestire la trasparenza.
- - Come visualizzata: I bordi trasparenti verranno catturati come visualizzati sullo schermo.
- - Usa i colori di default: Al posto della trasparenza verrà applicato un colore compatto di default.
- - Usa colori personalizzati: Si può scegliere il colore che sarà applicato al posto della trasparenza.
- - Conserva la trasparenza: I bordi verranno catturati conservando la trasparenza, senza però catturare gli elementi che potrebbero essere sullo sfondo. (Nota: le aree
- trasparenti verrano visualizzate usando un modello selezionato nella gestione immagini. Il modello non verrà esportato se si salverà l'immagine su file. Ricordarsi di salvare
- il file come PNG se si vuole conservance il pieno supporto della trasparenza.)
+ - Come visualizzata: i bordi trasparenti verranno catturati come visualizzati sullo schermo.
+ - Usa colori predefiniti: Al posto della trasparenza verrà applicato un colore compatto predefinito.
+ - Usa colori personalizzati: si può scegliere il colore che sarà applicato al posto della trasparenza.
+ - Conserva trasparenza: i bordi verranno catturati conservando la trasparenza, senza però catturare gli elementi che potrebbero essere sullo sfondo.
+ Nota: le aree trasparenti verranno visualizzate usando un modello selezionato nella gestione immagini.
+ Il modello non verrà esportato se si salverà l'immagine su file.
+ Ricordarti di salvare il file come PNG se vuoi conservare il pieno supporto della trasparenza.)
- - Cattura Internet Explorer: Abilita la comoda cattura delle pagine web utilizzando Internet Explorer.
- - Adatta finestra Gestione a dimensioni di cattura: Se selezionata, la finestra della Gestione immagini verrà automaticamente ridimensionata in base alla dimensione dell'immagine catturata.
+ - Cattura con Internet Explorer: abilita la comoda cattura delle pagine web usando Internet Explorer.
+ - Adatta finestra Gestione a dimensioni di cattura: se selezionata, la finestra della Gestione immagini verrà automaticamente ridimensionata in base alla dimensione dell'immagine catturata.
- Impostazioni di Emissione
+ Impostazioni destinazione
- - Destinazione dell'immagine: Consente di scegliere la destinazione/i automatiche delle immagini subito dopo l'azione di cattura.
- - Impostazioni Preferite per l'Emissione File: Cartella e nome file da usare quando si salva automaticamente, o da suggerire quando si salva (usando la finestra "Salva come"). Cliccare il pulsante ? per sapere di più sulle variabili che possono essere usate nel modello del nome file.
- - Impostazioni JPEG: Qualità da usare quando si salvano file JPEG.
+ - Destinazione immagine: consente di scegliere la/le destinazione/i automatiche delle immagini subito dopo l'azione di cattura.
+ - Impostazioni preferite destinazione file: cartella e nome file da usare quando si salva automaticamente, o da suggerire quando si salva (usando la finestra "Salva come").
+ Fai clic su ? per sapere di più sulle variabili che possono essere usate nel modello del nome file.
+ - Impostazioni JPEG: qualità da usare quando si salvano file JPEG.
Impostazioni Stampante
- - Riduci alle dimensioni pagina: Se l'immagine eccede le dimensioni della pagina, essa verrà ridotta e adattata alle dimensioni della pagina.
- - Ingrandisci fino alle dimensioni pagina: Se l'immagine è più piccola delle dimensioni della pagina, essa verrà ingrandita per stamparla più grande possibile senza superare le dimensioni della pagina.
+ - Riduci a dimensioni pagina: se l'immagine eccede le dimensioni della pagina, essa verrà ridotta e adattata alle dimensioni della pagina.
+ - Ingrandisci fino a dimensioni pagina: se l'immagine è più piccola delle dimensioni della pagina, essa verrà ingrandita per stamparla più grande possibile senza superare le dimensioni della pagina.
- Ruota a seconda dell'orientamento pagina: Ruoterà l'immagine in formato orizzontale di 90° per la stampa.
- - Centra nella pagina: L'immagine verrà stampata al centro della pagina.
- - Stampa data / ora sul piede della pagina: La data e l'ora di stampa verranno stampati sul piede della pagina.
- - Stampa con colori inverititi (negativo): Trasformerà l'immagine in negativo prima di stamparla, utile per esempio quando si stampa un'immagine con testo bianco su sfondo nero (per risparmiare toner o inchiostro).
- - Visualizza scelta opzioni di stampa ogni volta che si stampa un'immagine: Permette di scegliere se visualizzare o meno la finestra di scelta opzioni per le stampe successive alla prima.
+ - Centra nella pagina: l'immagine verrà stampata al centro della pagina.
+ - Stampa data/ora in piè di pagina: la data e l'ora di stampa verranno stampate nel piè di pagina.
+ - Stampa con colori invertiti (negativo): trasformerà l'immagine in negativo prima di stamparla.
+ Utile per esempio quando si stampa un'immagine con testo bianco su sfondo nero (per risparmiare toner o inchiostro).
+ - Visualizza scelta opzioni stampa ogni volta che si stampa un'immagine: permette di scegliere se visualizzare o meno la finestra di scelta opzioni per le stampe successive alla prima.
- Impostazioni Componenti Aggiuntivi
+ Impostazioni componenti aggiuntivi
- Visualizza la lista dei componenti aggiuntivi di Greenshot che sono attualmente installati. La configurazione del singolo componente aggiuntivo è disponibile selezionando
- il componente dalla lista e quindi cliccando su Configura.
+ Visualizza l'elenco dei componenti aggiuntivi di Greenshot che sono attualmente installati.
+ La configurazione del singolo componente aggiuntivo è disponibile selezionando il componente dall'elenco e quindi selezionando Configura.
- Desideri aiutarci?
+ Vuoi aiutarci?
- Attualmente non abbiamo bisogno di aiuto per lo sviluppo. Tuttavia, ci sono molte cose che puoi fare per
- supportare Greenshot e il team di sviluppo.
+ Attualmente non abbiamo bisogno di aiuto per lo sviluppo.
+ Tuttavia, ci sono molte cose che puoi fare per supportare Greenshot e il team di sviluppo.
Grazie anticipatamente :)
- Considera una donazione
+ Fai una donazione
- Stiamo lavorando molto su Greenshot e stiamo spendendo molto tempo per fornire
- un buon prodotto software gratuito e open source. Se ti sei reso conto che Greenshot
- ti ha reso più produttivo, e se fa risparmiare a te (o alla tua società)
- molto tempo e denaro, o se semplicemente ti piace Greenshot e l'idea
- di software open source: per cortesia, considera di onorare i nostri sforzi con una donazione.
- Per cortesia dai un'occhiata alla nostra home page per vedere come puoi aiutare il team di sviluppo di Greenshot:
+ Stiamo lavorando molto su Greenshot e stiamo spendendo molto tempo per fornire un buon prodotto software gratuito e open source.
+ Se ti sei reso conto che Greenshot ti ha reso più produttivo, e se fa risparmiare a te (o alla tua società) molto tempo e denaro, o se semplicemente ti piace Greenshot e l'idea di software open source considera di onorare i nostri sforzi con una donazione.
+ Dai un'occhiata alla nostra home page per vedere come puoi aiutare il team di sviluppo di Greenshot:
http://getgreenshot.org/support/
Spargi la parola
- Se ti piace Greenshot, fallo sapere anche agli altri: racconta ai tuoi amici di Greenshot.
+ Se ti piace Greenshot, fallo sapere anche agli altri: racconta ai tuoi amici di Greenshot.
Anche loro, a loro volta :)
Commenta positivamente Greenshot sui portali di software, oppure metti un link sulla tua home page, blog o sito web.
@@ -376,20 +340,16 @@
Invia una traduzione
- Greenshot non è disponibile nella tua lingua preferita? Se ti senti in grado di tradurre un pezzo di software,
- sei più che benvenuto.
- Se sei un utente registrato su sourceforge.net, puoi inviare le traduzioni al nostro
- translations tracker.
- Prima di farlo, assicurati che non esista già la traduzione sulla nostra
- pagina di download. Controlla anche il nostro translations tracker,
- ci potrebbe essere una traduzione in lavorazione, o almeno in discussione.
- Ti preghiamo di notare che forniremo una traduzione della nostra pagina di download solo se è stata inviata mediante
- il tuo conto utente su sourceforge.net. Visto che molto probabilmente non siamo in grado di capire la traduzione, è opportuno
- che gli altri utenti di sourceforge possano essere in grado di contattarti per revisioni o miglioramenti
- in caso di nuove versioni di Greenshot.
+ Greenshot non è disponibile nella tua lingua preferita?
+ Se ti senti in grado di tradurre un pezzo di software, sei più che benvenuto.
+ Se sei un utente registrato su sourceforge.net, puoi inviare le traduzioni al nostro translations tracker.
+ Prima di farlo, assicurati che non esista già la traduzione sulla nostra pagina download.
+ Controlla anche il nostro translations tracker, ci potrebbe essere una traduzione in lavorazione, o almeno in discussione.
+ Nota che forniremo una traduzione della nostra pagina di download solo se è stata inviata mediante il tuo account utente di sourceforge.net.
+ Visto che molto probabilmente non siamo in grado di capire la traduzione, è opportuno che gli altri utenti di sourceforge possano essere in grado di contattarti per revisioni o miglioramenti in caso di nuove versioni di Greenshot.
-
\ No newline at end of file
+