mirror of
https://github.com/greenshot/greenshot
synced 2025-07-13 00:23:54 -07:00
Creating a branch 1.1 where I will try to make the 1.1.7 build available, this means I need to merge some changes from 2.0 to here.
This commit is contained in:
parent
2a8e2475d8
commit
a03bc31aef
247 changed files with 6986 additions and 8233 deletions
19
.gitignore
vendored
Normal file
19
.gitignore
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
.svn/
|
||||
*.gsp
|
||||
*.bak
|
||||
*INSTALLER*.exe
|
||||
*INSTALLER*.zip
|
||||
*.paf.exe
|
||||
*-SVN.*
|
||||
bin/
|
||||
obj/
|
||||
fugue/
|
||||
*Credentials.private.cs
|
||||
*Credentials.orig.cs
|
||||
upgradeLog.htm
|
||||
upgradeLog.XML
|
||||
*.log
|
||||
/Greenshot/releases/additional_files/readme.txt
|
||||
/*.error
|
||||
|
||||
/Greenshot/releases/innosetup/setup.iss
|
|
@ -6,5 +6,8 @@
|
|||
</startup>
|
||||
<runtime>
|
||||
<loadFromRemoteSources enabled="true"/>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<probing privatePath="App\Greenshot"/>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
|
@ -47,4 +47,4 @@ using System.Runtime.InteropServices;
|
|||
// You can specify all values by your own or you can build default build and revision
|
||||
// numbers with the '*' character (the default):
|
||||
|
||||
[assembly: AssemblyVersion("1.1.4.$WCREV$")]
|
||||
[assembly: AssemblyVersion("1.1.6.$WCREV$")]
|
||||
|
|
|
@ -57,6 +57,13 @@ namespace Greenshot.Configuration {
|
|||
|
||||
[IniProperty("SuppressSaveDialogAtClose", Description="Suppressed the 'do you want to save' dialog when closing the editor.", DefaultValue="False")]
|
||||
public bool SuppressSaveDialogAtClose;
|
||||
|
||||
public override void AfterLoad() {
|
||||
base.AfterLoad();
|
||||
if (RecentColors == null) {
|
||||
RecentColors = new List<Color>();
|
||||
}
|
||||
}
|
||||
/// <param name="requestingType">Type of the class for which to create the field</param>
|
||||
/// <param name="fieldType">FieldType of the field to construct</param>
|
||||
/// <param name="scope">FieldType of the field to construct</param>
|
||||
|
|
|
@ -47,7 +47,7 @@ namespace Greenshot.Drawing {
|
|||
/// The StringFormat object is not serializable!!
|
||||
/// </summary>
|
||||
[NonSerialized]
|
||||
StringFormat stringFormat;
|
||||
StringFormat stringFormat = new StringFormat();
|
||||
|
||||
private string text;
|
||||
// there is a binding on the following property!
|
||||
|
@ -192,7 +192,7 @@ namespace Greenshot.Drawing {
|
|||
bool fontBold = GetFieldValueAsBool(FieldType.FONT_BOLD);
|
||||
bool fontItalic = GetFieldValueAsBool(FieldType.FONT_ITALIC);
|
||||
float fontSize = GetFieldValueAsFloat(FieldType.FONT_SIZE);
|
||||
|
||||
try {
|
||||
if (fontInvalidated && fontFamily != null && fontSize != 0) {
|
||||
FontStyle fs = FontStyle.Regular;
|
||||
|
||||
|
@ -226,6 +226,13 @@ namespace Greenshot.Drawing {
|
|||
}
|
||||
fontInvalidated = false;
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
ex.Data.Add("fontFamily", fontFamily);
|
||||
ex.Data.Add("fontBold", fontBold);
|
||||
ex.Data.Add("fontItalic", fontItalic);
|
||||
ex.Data.Add("fontSize", fontSize);
|
||||
throw;
|
||||
}
|
||||
|
||||
stringFormat.Alignment = (StringAlignment)GetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT);
|
||||
stringFormat.LineAlignment = (StringAlignment)GetFieldValue(FieldType.TEXT_VERTICAL_ALIGNMENT);
|
||||
|
|
|
@ -90,7 +90,6 @@ namespace Greenshot {
|
|||
var thread = new Thread(delegate() {AddDestinations();});
|
||||
thread.Name = "add destinations";
|
||||
thread.Start();
|
||||
IniConfig.IniChanged += new FileSystemEventHandler(ReloadConfiguration);
|
||||
};
|
||||
|
||||
// Make sure the editor is placed on the same location as the last editor was on close
|
||||
|
@ -356,18 +355,6 @@ namespace Greenshot {
|
|||
ImageEditorFormResize(sender, new EventArgs());
|
||||
}
|
||||
|
||||
private void ReloadConfiguration(object source, FileSystemEventArgs e) {
|
||||
this.Invoke((MethodInvoker) delegate {
|
||||
// Even update language when needed
|
||||
ApplyLanguage();
|
||||
|
||||
// Fix title
|
||||
if (surface != null && surface.CaptureDetails != null && surface.CaptureDetails.Title != null) {
|
||||
this.Text = surface.CaptureDetails.Title + " - " + Language.GetString(LangKey.editor_title);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public ISurface Surface {
|
||||
get {
|
||||
return surface;
|
||||
|
@ -680,7 +667,6 @@ namespace Greenshot {
|
|||
}
|
||||
|
||||
void ImageEditorFormFormClosing(object sender, FormClosingEventArgs e) {
|
||||
IniConfig.IniChanged -= new FileSystemEventHandler(ReloadConfiguration);
|
||||
if (surface.Modified && !editorConfiguration.SuppressSaveDialogAtClose) {
|
||||
// Make sure the editor is visible
|
||||
WindowDetails.ToForeground(this.Handle);
|
||||
|
@ -1277,13 +1263,16 @@ namespace Greenshot {
|
|||
}
|
||||
|
||||
private void ImageEditorFormResize(object sender, EventArgs e) {
|
||||
if (this.Surface == null) {
|
||||
if (this.Surface == null || this.Surface.Image == null || this.panel1 == null) {
|
||||
return;
|
||||
}
|
||||
Size imageSize = this.Surface.Image.Size;
|
||||
Size currentClientSize = this.panel1.ClientSize;
|
||||
var canvas = this.Surface as Control;
|
||||
Panel panel = (Panel)canvas.Parent;
|
||||
if (panel == null) {
|
||||
return;
|
||||
}
|
||||
int offsetX = -panel.HorizontalScroll.Value;
|
||||
int offsetY = -panel.VerticalScroll.Value;
|
||||
if (canvas != null) {
|
||||
|
|
|
@ -153,6 +153,10 @@ namespace Greenshot {
|
|||
helpOutput.AppendLine("\t\tSet the language of Greenshot, e.g. greenshot /language en-US.");
|
||||
helpOutput.AppendLine();
|
||||
helpOutput.AppendLine();
|
||||
helpOutput.AppendLine("\t/inidirectory [directory]");
|
||||
helpOutput.AppendLine("\t\tSet the directory where the greenshot.ini should be stored & read.");
|
||||
helpOutput.AppendLine();
|
||||
helpOutput.AppendLine();
|
||||
helpOutput.AppendLine("\t[filename]");
|
||||
helpOutput.AppendLine("\t\tOpen the bitmap files in the running Greenshot instance or start a new instance");
|
||||
Console.WriteLine(helpOutput.ToString());
|
||||
|
@ -202,6 +206,12 @@ namespace Greenshot {
|
|||
continue;
|
||||
}
|
||||
|
||||
// Setting the INI-directory
|
||||
if (argument.ToLower().Equals("/inidirectory")) {
|
||||
IniConfig.IniDirectory = args[++argumentNr];
|
||||
continue;
|
||||
}
|
||||
|
||||
// Files to open
|
||||
filesToOpen.Add(argument);
|
||||
}
|
||||
|
@ -338,8 +348,6 @@ namespace Greenshot {
|
|||
// Disable access to the settings, for feature #3521446
|
||||
contextmenu_settings.Visible = !conf.DisableSettings;
|
||||
|
||||
IniConfig.IniChanged += new FileSystemEventHandler(ReloadConfiguration);
|
||||
|
||||
// Make sure all hotkeys pass this window!
|
||||
HotkeyControl.RegisterHotkeyHWND(this.Handle);
|
||||
RegisterHotkeys();
|
||||
|
@ -441,7 +449,14 @@ namespace Greenshot {
|
|||
LOG.Info("Reload requested");
|
||||
try {
|
||||
IniConfig.Reload();
|
||||
ReloadConfiguration(null, null);
|
||||
this.Invoke((MethodInvoker)delegate {
|
||||
// Even update language when needed
|
||||
UpdateUI();
|
||||
// Update the hotkey
|
||||
// Make sure the current hotkeys are disabled
|
||||
HotkeyControl.UnregisterHotkeys();
|
||||
RegisterHotkeys();
|
||||
});
|
||||
} catch {}
|
||||
break;
|
||||
case CommandEnum.OpenFile:
|
||||
|
@ -462,23 +477,6 @@ namespace Greenshot {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This is called when the ini-file changes
|
||||
/// </summary>
|
||||
/// <param name="source"></param>
|
||||
/// <param name="e"></param>
|
||||
private void ReloadConfiguration(object source, FileSystemEventArgs e) {
|
||||
Language.CurrentLanguage = null; // Reload
|
||||
this.Invoke((MethodInvoker) delegate {
|
||||
// Even update language when needed
|
||||
UpdateUI();
|
||||
// Update the hotkey
|
||||
// Make sure the current hotkeys are disabled
|
||||
HotkeyControl.UnregisterHotkeys();
|
||||
RegisterHotkeys();
|
||||
});
|
||||
}
|
||||
|
||||
public ContextMenuStrip MainMenu {
|
||||
get {return contextMenu;}
|
||||
}
|
||||
|
|
110
Greenshot/Forms/SettingsForm.Designer.cs
generated
110
Greenshot/Forms/SettingsForm.Designer.cs
generated
|
@ -99,8 +99,8 @@ namespace Greenshot {
|
|||
this.checkbox_ie_capture = new GreenshotPlugin.Controls.GreenshotCheckBox();
|
||||
this.groupbox_windowscapture = new GreenshotPlugin.Controls.GreenshotGroupBox();
|
||||
this.colorButton_window_background = new Greenshot.Controls.ColorButton();
|
||||
this.label_window_capture_mode = new GreenshotPlugin.Controls.GreenshotLabel();
|
||||
this.checkbox_capture_windows_interactive = new GreenshotPlugin.Controls.GreenshotCheckBox();
|
||||
this.radiobuttonWindowCapture = new GreenshotPlugin.Controls.GreenshotRadioButton();
|
||||
this.radiobuttonInteractiveCapture = new GreenshotPlugin.Controls.GreenshotRadioButton();
|
||||
this.combobox_window_capture_mode = new System.Windows.Forms.ComboBox();
|
||||
this.groupbox_capture = new GreenshotPlugin.Controls.GreenshotGroupBox();
|
||||
this.checkbox_notifications = new GreenshotPlugin.Controls.GreenshotCheckBox();
|
||||
|
@ -186,7 +186,6 @@ namespace Greenshot {
|
|||
this.label_storagelocation.Name = "label_storagelocation";
|
||||
this.label_storagelocation.Size = new System.Drawing.Size(126, 23);
|
||||
this.label_storagelocation.TabIndex = 11;
|
||||
this.label_storagelocation.Text = "Storage location";
|
||||
//
|
||||
// settings_cancel
|
||||
//
|
||||
|
@ -195,7 +194,6 @@ namespace Greenshot {
|
|||
this.settings_cancel.Name = "settings_cancel";
|
||||
this.settings_cancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.settings_cancel.TabIndex = 7;
|
||||
this.settings_cancel.Text = "Cancel";
|
||||
this.settings_cancel.UseVisualStyleBackColor = true;
|
||||
this.settings_cancel.Click += new System.EventHandler(this.Settings_cancelClick);
|
||||
//
|
||||
|
@ -206,7 +204,6 @@ namespace Greenshot {
|
|||
this.settings_confirm.Name = "settings_confirm";
|
||||
this.settings_confirm.Size = new System.Drawing.Size(75, 23);
|
||||
this.settings_confirm.TabIndex = 6;
|
||||
this.settings_confirm.Text = "Ok";
|
||||
this.settings_confirm.UseVisualStyleBackColor = true;
|
||||
this.settings_confirm.Click += new System.EventHandler(this.Settings_okayClick);
|
||||
//
|
||||
|
@ -227,7 +224,6 @@ namespace Greenshot {
|
|||
this.label_screenshotname.Name = "label_screenshotname";
|
||||
this.label_screenshotname.Size = new System.Drawing.Size(126, 23);
|
||||
this.label_screenshotname.TabIndex = 9;
|
||||
this.label_screenshotname.Text = "Filename pattern";
|
||||
//
|
||||
// textbox_screenshotname
|
||||
//
|
||||
|
@ -244,7 +240,6 @@ namespace Greenshot {
|
|||
this.label_language.Name = "label_language";
|
||||
this.label_language.Size = new System.Drawing.Size(181, 23);
|
||||
this.label_language.TabIndex = 10;
|
||||
this.label_language.Text = "Language";
|
||||
//
|
||||
// combobox_language
|
||||
//
|
||||
|
@ -273,7 +268,6 @@ namespace Greenshot {
|
|||
this.label_primaryimageformat.Name = "label_primaryimageformat";
|
||||
this.label_primaryimageformat.Size = new System.Drawing.Size(126, 19);
|
||||
this.label_primaryimageformat.TabIndex = 8;
|
||||
this.label_primaryimageformat.Text = "Image format";
|
||||
//
|
||||
// groupbox_preferredfilesettings
|
||||
//
|
||||
|
@ -292,7 +286,6 @@ namespace Greenshot {
|
|||
this.groupbox_preferredfilesettings.Size = new System.Drawing.Size(412, 122);
|
||||
this.groupbox_preferredfilesettings.TabIndex = 13;
|
||||
this.groupbox_preferredfilesettings.TabStop = false;
|
||||
this.groupbox_preferredfilesettings.Text = "Preferred Output File Settings";
|
||||
//
|
||||
// btnPatternHelp
|
||||
//
|
||||
|
@ -312,7 +305,6 @@ namespace Greenshot {
|
|||
this.checkbox_copypathtoclipboard.PropertyName = "OutputFileCopyPathToClipboard";
|
||||
this.checkbox_copypathtoclipboard.Size = new System.Drawing.Size(394, 24);
|
||||
this.checkbox_copypathtoclipboard.TabIndex = 18;
|
||||
this.checkbox_copypathtoclipboard.Text = "Copy file path to clipboard every time an image is saved";
|
||||
this.checkbox_copypathtoclipboard.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// groupbox_applicationsettings
|
||||
|
@ -326,7 +318,6 @@ namespace Greenshot {
|
|||
this.groupbox_applicationsettings.Size = new System.Drawing.Size(412, 68);
|
||||
this.groupbox_applicationsettings.TabIndex = 14;
|
||||
this.groupbox_applicationsettings.TabStop = false;
|
||||
this.groupbox_applicationsettings.Text = "Application Settings";
|
||||
//
|
||||
// checkbox_autostartshortcut
|
||||
//
|
||||
|
@ -335,7 +326,6 @@ namespace Greenshot {
|
|||
this.checkbox_autostartshortcut.Name = "checkbox_autostartshortcut";
|
||||
this.checkbox_autostartshortcut.Size = new System.Drawing.Size(397, 25);
|
||||
this.checkbox_autostartshortcut.TabIndex = 15;
|
||||
this.checkbox_autostartshortcut.Text = "Launch Greenshot on startup";
|
||||
this.checkbox_autostartshortcut.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// groupbox_qualitysettings
|
||||
|
@ -351,7 +341,6 @@ namespace Greenshot {
|
|||
this.groupbox_qualitysettings.Size = new System.Drawing.Size(412, 106);
|
||||
this.groupbox_qualitysettings.TabIndex = 14;
|
||||
this.groupbox_qualitysettings.TabStop = false;
|
||||
this.groupbox_qualitysettings.Text = "Quality settings";
|
||||
//
|
||||
// checkbox_reducecolors
|
||||
//
|
||||
|
@ -361,7 +350,6 @@ namespace Greenshot {
|
|||
this.checkbox_reducecolors.PropertyName = "OutputFileReduceColors";
|
||||
this.checkbox_reducecolors.Size = new System.Drawing.Size(394, 25);
|
||||
this.checkbox_reducecolors.TabIndex = 17;
|
||||
this.checkbox_reducecolors.Text = "Reduce the amount of colors to a maximum of 256";
|
||||
this.checkbox_reducecolors.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkbox_alwaysshowqualitydialog
|
||||
|
@ -372,7 +360,6 @@ namespace Greenshot {
|
|||
this.checkbox_alwaysshowqualitydialog.PropertyName = "OutputFilePromptQuality";
|
||||
this.checkbox_alwaysshowqualitydialog.Size = new System.Drawing.Size(394, 25);
|
||||
this.checkbox_alwaysshowqualitydialog.TabIndex = 16;
|
||||
this.checkbox_alwaysshowqualitydialog.Text = "Show quality dialog every time an image is saved";
|
||||
this.checkbox_alwaysshowqualitydialog.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label_jpegquality
|
||||
|
@ -382,7 +369,6 @@ namespace Greenshot {
|
|||
this.label_jpegquality.Name = "label_jpegquality";
|
||||
this.label_jpegquality.Size = new System.Drawing.Size(116, 23);
|
||||
this.label_jpegquality.TabIndex = 13;
|
||||
this.label_jpegquality.Text = "JPEG quality";
|
||||
//
|
||||
// textBoxJpegQuality
|
||||
//
|
||||
|
@ -414,7 +400,6 @@ namespace Greenshot {
|
|||
this.groupbox_destination.Size = new System.Drawing.Size(412, 311);
|
||||
this.groupbox_destination.TabIndex = 16;
|
||||
this.groupbox_destination.TabStop = false;
|
||||
this.groupbox_destination.Text = "Destination";
|
||||
//
|
||||
// checkbox_picker
|
||||
//
|
||||
|
@ -423,7 +408,6 @@ namespace Greenshot {
|
|||
this.checkbox_picker.Name = "checkbox_picker";
|
||||
this.checkbox_picker.Size = new System.Drawing.Size(394, 24);
|
||||
this.checkbox_picker.TabIndex = 19;
|
||||
this.checkbox_picker.Text = "Select destination dynamically";
|
||||
this.checkbox_picker.UseVisualStyleBackColor = true;
|
||||
this.checkbox_picker.CheckStateChanged += new System.EventHandler(this.DestinationsCheckStateChanged);
|
||||
//
|
||||
|
@ -477,7 +461,6 @@ namespace Greenshot {
|
|||
this.tab_general.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tab_general.Size = new System.Drawing.Size(423, 351);
|
||||
this.tab_general.TabIndex = 0;
|
||||
this.tab_general.Text = "General";
|
||||
this.tab_general.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// groupbox_network
|
||||
|
@ -491,7 +474,6 @@ namespace Greenshot {
|
|||
this.groupbox_network.Size = new System.Drawing.Size(412, 72);
|
||||
this.groupbox_network.TabIndex = 54;
|
||||
this.groupbox_network.TabStop = false;
|
||||
this.groupbox_network.Text = "Network and updates";
|
||||
//
|
||||
// numericUpDown_daysbetweencheck
|
||||
//
|
||||
|
@ -508,7 +490,6 @@ namespace Greenshot {
|
|||
this.label_checkperiod.Name = "label_checkperiod";
|
||||
this.label_checkperiod.Size = new System.Drawing.Size(334, 23);
|
||||
this.label_checkperiod.TabIndex = 19;
|
||||
this.label_checkperiod.Text = "Update check interval in days (0=no check)";
|
||||
//
|
||||
// checkbox_usedefaultproxy
|
||||
//
|
||||
|
@ -518,7 +499,6 @@ namespace Greenshot {
|
|||
this.checkbox_usedefaultproxy.PropertyName = "UseProxy";
|
||||
this.checkbox_usedefaultproxy.Size = new System.Drawing.Size(397, 25);
|
||||
this.checkbox_usedefaultproxy.TabIndex = 17;
|
||||
this.checkbox_usedefaultproxy.Text = "Use default system proxy";
|
||||
this.checkbox_usedefaultproxy.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// groupbox_hotkeys
|
||||
|
@ -539,7 +519,6 @@ namespace Greenshot {
|
|||
this.groupbox_hotkeys.Size = new System.Drawing.Size(412, 152);
|
||||
this.groupbox_hotkeys.TabIndex = 15;
|
||||
this.groupbox_hotkeys.TabStop = false;
|
||||
this.groupbox_hotkeys.Text = "Hotkeys";
|
||||
//
|
||||
// label_lastregion_hotkey
|
||||
//
|
||||
|
@ -548,7 +527,6 @@ namespace Greenshot {
|
|||
this.label_lastregion_hotkey.Name = "label_lastregion_hotkey";
|
||||
this.label_lastregion_hotkey.Size = new System.Drawing.Size(212, 20);
|
||||
this.label_lastregion_hotkey.TabIndex = 53;
|
||||
this.label_lastregion_hotkey.Text = "Capture last region";
|
||||
//
|
||||
// lastregion_hotkeyControl
|
||||
//
|
||||
|
@ -567,7 +545,6 @@ namespace Greenshot {
|
|||
this.label_ie_hotkey.Name = "label_ie_hotkey";
|
||||
this.label_ie_hotkey.Size = new System.Drawing.Size(212, 20);
|
||||
this.label_ie_hotkey.TabIndex = 51;
|
||||
this.label_ie_hotkey.Text = "Capture Internet Explorer";
|
||||
//
|
||||
// ie_hotkeyControl
|
||||
//
|
||||
|
@ -586,7 +563,6 @@ namespace Greenshot {
|
|||
this.label_region_hotkey.Name = "label_region_hotkey";
|
||||
this.label_region_hotkey.Size = new System.Drawing.Size(212, 20);
|
||||
this.label_region_hotkey.TabIndex = 49;
|
||||
this.label_region_hotkey.Text = "Capture region";
|
||||
//
|
||||
// label_window_hotkey
|
||||
//
|
||||
|
@ -595,7 +571,6 @@ namespace Greenshot {
|
|||
this.label_window_hotkey.Name = "label_window_hotkey";
|
||||
this.label_window_hotkey.Size = new System.Drawing.Size(212, 23);
|
||||
this.label_window_hotkey.TabIndex = 48;
|
||||
this.label_window_hotkey.Text = "Capture window";
|
||||
//
|
||||
// label_fullscreen_hotkey
|
||||
//
|
||||
|
@ -604,7 +579,6 @@ namespace Greenshot {
|
|||
this.label_fullscreen_hotkey.Name = "label_fullscreen_hotkey";
|
||||
this.label_fullscreen_hotkey.Size = new System.Drawing.Size(212, 23);
|
||||
this.label_fullscreen_hotkey.TabIndex = 47;
|
||||
this.label_fullscreen_hotkey.Text = "Capture full screen";
|
||||
//
|
||||
// region_hotkeyControl
|
||||
//
|
||||
|
@ -647,7 +621,6 @@ namespace Greenshot {
|
|||
this.tab_capture.Name = "tab_capture";
|
||||
this.tab_capture.Size = new System.Drawing.Size(423, 351);
|
||||
this.tab_capture.TabIndex = 3;
|
||||
this.tab_capture.Text = "Capture";
|
||||
this.tab_capture.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// groupbox_editor
|
||||
|
@ -659,7 +632,6 @@ namespace Greenshot {
|
|||
this.groupbox_editor.Size = new System.Drawing.Size(416, 50);
|
||||
this.groupbox_editor.TabIndex = 27;
|
||||
this.groupbox_editor.TabStop = false;
|
||||
this.groupbox_editor.Text = "Editor";
|
||||
//
|
||||
// checkbox_editor_match_capture_size
|
||||
//
|
||||
|
@ -670,7 +642,6 @@ namespace Greenshot {
|
|||
this.checkbox_editor_match_capture_size.SectionName = "Editor";
|
||||
this.checkbox_editor_match_capture_size.Size = new System.Drawing.Size(397, 24);
|
||||
this.checkbox_editor_match_capture_size.TabIndex = 26;
|
||||
this.checkbox_editor_match_capture_size.Text = "Match capture size";
|
||||
this.checkbox_editor_match_capture_size.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// groupbox_iecapture
|
||||
|
@ -682,7 +653,6 @@ namespace Greenshot {
|
|||
this.groupbox_iecapture.Size = new System.Drawing.Size(416, 50);
|
||||
this.groupbox_iecapture.TabIndex = 2;
|
||||
this.groupbox_iecapture.TabStop = false;
|
||||
this.groupbox_iecapture.Text = "Internet Explorer capture";
|
||||
//
|
||||
// checkbox_ie_capture
|
||||
//
|
||||
|
@ -692,14 +662,13 @@ namespace Greenshot {
|
|||
this.checkbox_ie_capture.PropertyName = "IECapture";
|
||||
this.checkbox_ie_capture.Size = new System.Drawing.Size(404, 24);
|
||||
this.checkbox_ie_capture.TabIndex = 26;
|
||||
this.checkbox_ie_capture.Text = "Internet Explorer capture";
|
||||
this.checkbox_ie_capture.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// groupbox_windowscapture
|
||||
//
|
||||
this.groupbox_windowscapture.Controls.Add(this.colorButton_window_background);
|
||||
this.groupbox_windowscapture.Controls.Add(this.label_window_capture_mode);
|
||||
this.groupbox_windowscapture.Controls.Add(this.checkbox_capture_windows_interactive);
|
||||
this.groupbox_windowscapture.Controls.Add(this.radiobuttonWindowCapture);
|
||||
this.groupbox_windowscapture.Controls.Add(this.radiobuttonInteractiveCapture);
|
||||
this.groupbox_windowscapture.Controls.Add(this.combobox_window_capture_mode);
|
||||
this.groupbox_windowscapture.LanguageKey = "settings_windowscapture";
|
||||
this.groupbox_windowscapture.Location = new System.Drawing.Point(4, 141);
|
||||
|
@ -707,7 +676,6 @@ namespace Greenshot {
|
|||
this.groupbox_windowscapture.Size = new System.Drawing.Size(416, 80);
|
||||
this.groupbox_windowscapture.TabIndex = 1;
|
||||
this.groupbox_windowscapture.TabStop = false;
|
||||
this.groupbox_windowscapture.Text = "Window capture";
|
||||
//
|
||||
// colorButton_window_background
|
||||
//
|
||||
|
@ -720,26 +688,30 @@ namespace Greenshot {
|
|||
this.colorButton_window_background.TabIndex = 45;
|
||||
this.colorButton_window_background.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label_window_capture_mode
|
||||
//
|
||||
this.label_window_capture_mode.LanguageKey = "settings_window_capture_mode";
|
||||
this.label_window_capture_mode.Location = new System.Drawing.Point(6, 46);
|
||||
this.label_window_capture_mode.Name = "label_window_capture_mode";
|
||||
this.label_window_capture_mode.Size = new System.Drawing.Size(205, 23);
|
||||
this.label_window_capture_mode.TabIndex = 26;
|
||||
this.label_window_capture_mode.Text = "Window capture mode";
|
||||
// radiobuttonWindowCapture
|
||||
//
|
||||
// checkbox_capture_windows_interactive
|
||||
this.radiobuttonWindowCapture.AutoSize = true;
|
||||
this.radiobuttonWindowCapture.LanguageKey = "settings_window_capture_mode";
|
||||
this.radiobuttonWindowCapture.Location = new System.Drawing.Point(11, 44);
|
||||
this.radiobuttonWindowCapture.Name = "radiobuttonWindowCapture";
|
||||
this.radiobuttonWindowCapture.Size = new System.Drawing.Size(132, 17);
|
||||
this.radiobuttonWindowCapture.TabIndex = 47;
|
||||
this.radiobuttonWindowCapture.TabStop = true;
|
||||
this.radiobuttonWindowCapture.UseVisualStyleBackColor = true;
|
||||
//
|
||||
this.checkbox_capture_windows_interactive.LanguageKey = "settings_capture_windows_interactive";
|
||||
this.checkbox_capture_windows_interactive.Location = new System.Drawing.Point(9, 19);
|
||||
this.checkbox_capture_windows_interactive.Name = "checkbox_capture_windows_interactive";
|
||||
this.checkbox_capture_windows_interactive.PropertyName = "CaptureWindowsInteractive";
|
||||
this.checkbox_capture_windows_interactive.Size = new System.Drawing.Size(394, 18);
|
||||
this.checkbox_capture_windows_interactive.TabIndex = 19;
|
||||
this.checkbox_capture_windows_interactive.Text = "Use interactive window capture mode";
|
||||
this.checkbox_capture_windows_interactive.UseVisualStyleBackColor = true;
|
||||
// radiobuttonInteractiveCapture
|
||||
//
|
||||
this.radiobuttonInteractiveCapture.AutoSize = true;
|
||||
this.radiobuttonInteractiveCapture.LanguageKey = "settings_capture_windows_interactive";
|
||||
this.radiobuttonInteractiveCapture.Location = new System.Drawing.Point(11, 20);
|
||||
this.radiobuttonInteractiveCapture.Name = "radiobuttonInteractiveCapture";
|
||||
this.radiobuttonInteractiveCapture.PropertyName = "CaptureWindowsInteractive";
|
||||
this.radiobuttonInteractiveCapture.Size = new System.Drawing.Size(203, 17);
|
||||
this.radiobuttonInteractiveCapture.TabIndex = 46;
|
||||
this.radiobuttonInteractiveCapture.TabStop = true;
|
||||
this.radiobuttonInteractiveCapture.UseVisualStyleBackColor = true;
|
||||
this.radiobuttonInteractiveCapture.CheckedChanged += new System.EventHandler(this.radiobutton_CheckedChanged);
|
||||
// combobox_window_capture_mode
|
||||
//
|
||||
this.combobox_window_capture_mode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
|
@ -784,7 +756,6 @@ namespace Greenshot {
|
|||
this.checkbox_notifications.PropertyName = "ShowTrayNotification";
|
||||
this.checkbox_notifications.Size = new System.Drawing.Size(399, 24);
|
||||
this.checkbox_notifications.TabIndex = 26;
|
||||
this.checkbox_notifications.Text = "Show notifications";
|
||||
this.checkbox_notifications.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkbox_playsound
|
||||
|
@ -795,7 +766,6 @@ namespace Greenshot {
|
|||
this.checkbox_playsound.PropertyName = "PlayCameraSound";
|
||||
this.checkbox_playsound.Size = new System.Drawing.Size(399, 24);
|
||||
this.checkbox_playsound.TabIndex = 18;
|
||||
this.checkbox_playsound.Text = "Play camera sound";
|
||||
this.checkbox_playsound.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkbox_capture_mousepointer
|
||||
|
@ -806,7 +776,6 @@ namespace Greenshot {
|
|||
this.checkbox_capture_mousepointer.PropertyName = "CaptureMousepointer";
|
||||
this.checkbox_capture_mousepointer.Size = new System.Drawing.Size(394, 24);
|
||||
this.checkbox_capture_mousepointer.TabIndex = 17;
|
||||
this.checkbox_capture_mousepointer.Text = "Capture mousepointer";
|
||||
this.checkbox_capture_mousepointer.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// numericUpDownWaitTime
|
||||
|
@ -834,7 +803,6 @@ namespace Greenshot {
|
|||
this.label_waittime.Name = "label_waittime";
|
||||
this.label_waittime.Size = new System.Drawing.Size(331, 16);
|
||||
this.label_waittime.TabIndex = 25;
|
||||
this.label_waittime.Text = "Milliseconds to wait before capture";
|
||||
//
|
||||
// tab_output
|
||||
//
|
||||
|
@ -847,7 +815,6 @@ namespace Greenshot {
|
|||
this.tab_output.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tab_output.Size = new System.Drawing.Size(423, 351);
|
||||
this.tab_output.TabIndex = 1;
|
||||
this.tab_output.Text = "Output";
|
||||
this.tab_output.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tab_destinations
|
||||
|
@ -858,7 +825,6 @@ namespace Greenshot {
|
|||
this.tab_destinations.Name = "tab_destinations";
|
||||
this.tab_destinations.Size = new System.Drawing.Size(423, 351);
|
||||
this.tab_destinations.TabIndex = 4;
|
||||
this.tab_destinations.Text = "Destination";
|
||||
this.tab_destinations.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tab_printer
|
||||
|
@ -872,7 +838,6 @@ namespace Greenshot {
|
|||
this.tab_printer.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tab_printer.Size = new System.Drawing.Size(423, 351);
|
||||
this.tab_printer.TabIndex = 2;
|
||||
this.tab_printer.Text = "Printer";
|
||||
this.tab_printer.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// groupBoxColors
|
||||
|
@ -888,7 +853,6 @@ namespace Greenshot {
|
|||
this.groupBoxColors.Size = new System.Drawing.Size(331, 124);
|
||||
this.groupBoxColors.TabIndex = 34;
|
||||
this.groupBoxColors.TabStop = false;
|
||||
this.groupBoxColors.Text = "Color settings";
|
||||
//
|
||||
// checkboxPrintInverted
|
||||
//
|
||||
|
@ -901,7 +865,6 @@ namespace Greenshot {
|
|||
this.checkboxPrintInverted.PropertyName = "OutputPrintInverted";
|
||||
this.checkboxPrintInverted.Size = new System.Drawing.Size(141, 17);
|
||||
this.checkboxPrintInverted.TabIndex = 28;
|
||||
this.checkboxPrintInverted.Text = "Print with inverted colors";
|
||||
this.checkboxPrintInverted.TextAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxPrintInverted.UseVisualStyleBackColor = true;
|
||||
//
|
||||
|
@ -916,7 +879,6 @@ namespace Greenshot {
|
|||
this.radioBtnColorPrint.PropertyName = "OutputPrintColor";
|
||||
this.radioBtnColorPrint.Size = new System.Drawing.Size(90, 17);
|
||||
this.radioBtnColorPrint.TabIndex = 29;
|
||||
this.radioBtnColorPrint.Text = "Full color print";
|
||||
this.radioBtnColorPrint.TextAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnColorPrint.UseVisualStyleBackColor = true;
|
||||
//
|
||||
|
@ -946,7 +908,6 @@ namespace Greenshot {
|
|||
this.radioBtnMonochrome.PropertyName = "OutputPrintMonochrome";
|
||||
this.radioBtnMonochrome.Size = new System.Drawing.Size(148, 17);
|
||||
this.radioBtnMonochrome.TabIndex = 30;
|
||||
this.radioBtnMonochrome.Text = "Force black/white printing";
|
||||
this.radioBtnMonochrome.TextAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.radioBtnMonochrome.UseVisualStyleBackColor = true;
|
||||
//
|
||||
|
@ -964,7 +925,6 @@ namespace Greenshot {
|
|||
this.groupBoxPrintLayout.Size = new System.Drawing.Size(331, 151);
|
||||
this.groupBoxPrintLayout.TabIndex = 33;
|
||||
this.groupBoxPrintLayout.TabStop = false;
|
||||
this.groupBoxPrintLayout.Text = "Page layout settings";
|
||||
//
|
||||
// checkboxDateTime
|
||||
//
|
||||
|
@ -977,7 +937,6 @@ namespace Greenshot {
|
|||
this.checkboxDateTime.PropertyName = "OutputPrintFooter";
|
||||
this.checkboxDateTime.Size = new System.Drawing.Size(187, 17);
|
||||
this.checkboxDateTime.TabIndex = 26;
|
||||
this.checkboxDateTime.Text = "Print date / time at bottom of page";
|
||||
this.checkboxDateTime.TextAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxDateTime.UseVisualStyleBackColor = true;
|
||||
//
|
||||
|
@ -992,7 +951,6 @@ namespace Greenshot {
|
|||
this.checkboxAllowShrink.PropertyName = "OutputPrintAllowShrink";
|
||||
this.checkboxAllowShrink.Size = new System.Drawing.Size(168, 17);
|
||||
this.checkboxAllowShrink.TabIndex = 21;
|
||||
this.checkboxAllowShrink.Text = "Shrink printout to fit paper size";
|
||||
this.checkboxAllowShrink.TextAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowShrink.UseVisualStyleBackColor = true;
|
||||
//
|
||||
|
@ -1007,7 +965,6 @@ namespace Greenshot {
|
|||
this.checkboxAllowEnlarge.PropertyName = "OutputPrintAllowEnlarge";
|
||||
this.checkboxAllowEnlarge.Size = new System.Drawing.Size(174, 17);
|
||||
this.checkboxAllowEnlarge.TabIndex = 22;
|
||||
this.checkboxAllowEnlarge.Text = "Enlarge printout to fit paper size";
|
||||
this.checkboxAllowEnlarge.TextAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowEnlarge.UseVisualStyleBackColor = true;
|
||||
//
|
||||
|
@ -1022,7 +979,6 @@ namespace Greenshot {
|
|||
this.checkboxAllowRotate.PropertyName = "OutputPrintAllowRotate";
|
||||
this.checkboxAllowRotate.Size = new System.Drawing.Size(187, 17);
|
||||
this.checkboxAllowRotate.TabIndex = 23;
|
||||
this.checkboxAllowRotate.Text = "Rotate printout to page orientation";
|
||||
this.checkboxAllowRotate.TextAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowRotate.UseVisualStyleBackColor = true;
|
||||
//
|
||||
|
@ -1037,7 +993,6 @@ namespace Greenshot {
|
|||
this.checkboxAllowCenter.PropertyName = "OutputPrintCenter";
|
||||
this.checkboxAllowCenter.Size = new System.Drawing.Size(137, 17);
|
||||
this.checkboxAllowCenter.TabIndex = 24;
|
||||
this.checkboxAllowCenter.Text = "Center printout on page";
|
||||
this.checkboxAllowCenter.TextAlign = System.Drawing.ContentAlignment.TopLeft;
|
||||
this.checkboxAllowCenter.UseVisualStyleBackColor = true;
|
||||
//
|
||||
|
@ -1060,7 +1015,6 @@ namespace Greenshot {
|
|||
this.tab_plugins.Name = "tab_plugins";
|
||||
this.tab_plugins.Size = new System.Drawing.Size(423, 351);
|
||||
this.tab_plugins.TabIndex = 2;
|
||||
this.tab_plugins.Text = "Plugins";
|
||||
this.tab_plugins.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// groupbox_plugins
|
||||
|
@ -1102,7 +1056,6 @@ namespace Greenshot {
|
|||
this.button_pluginconfigure.Name = "button_pluginconfigure";
|
||||
this.button_pluginconfigure.Size = new System.Drawing.Size(75, 23);
|
||||
this.button_pluginconfigure.TabIndex = 1;
|
||||
this.button_pluginconfigure.Text = "Configure";
|
||||
this.button_pluginconfigure.UseVisualStyleBackColor = true;
|
||||
this.button_pluginconfigure.Click += new System.EventHandler(this.Button_pluginconfigureClick);
|
||||
//
|
||||
|
@ -1150,7 +1103,6 @@ namespace Greenshot {
|
|||
this.checkbox_reuseeditor.SectionName = "Editor";
|
||||
this.checkbox_reuseeditor.Size = new System.Drawing.Size(394, 24);
|
||||
this.checkbox_reuseeditor.TabIndex = 31;
|
||||
this.checkbox_reuseeditor.Text = "Reuse editor if possible";
|
||||
this.checkbox_reuseeditor.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkbox_minimizememoryfootprint
|
||||
|
@ -1161,7 +1113,6 @@ namespace Greenshot {
|
|||
this.checkbox_minimizememoryfootprint.PropertyName = "MinimizeWorkingSetSize";
|
||||
this.checkbox_minimizememoryfootprint.Size = new System.Drawing.Size(394, 24);
|
||||
this.checkbox_minimizememoryfootprint.TabIndex = 30;
|
||||
this.checkbox_minimizememoryfootprint.Text = "Minimize memory footprint, but with a performance penalty (not adviced).";
|
||||
this.checkbox_minimizememoryfootprint.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkbox_checkunstableupdates
|
||||
|
@ -1172,7 +1123,6 @@ namespace Greenshot {
|
|||
this.checkbox_checkunstableupdates.PropertyName = "CheckForUnstable";
|
||||
this.checkbox_checkunstableupdates.Size = new System.Drawing.Size(394, 24);
|
||||
this.checkbox_checkunstableupdates.TabIndex = 29;
|
||||
this.checkbox_checkunstableupdates.Text = "Check for unstable updates";
|
||||
this.checkbox_checkunstableupdates.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkbox_suppresssavedialogatclose
|
||||
|
@ -1184,7 +1134,6 @@ namespace Greenshot {
|
|||
this.checkbox_suppresssavedialogatclose.SectionName = "Editor";
|
||||
this.checkbox_suppresssavedialogatclose.Size = new System.Drawing.Size(394, 24);
|
||||
this.checkbox_suppresssavedialogatclose.TabIndex = 28;
|
||||
this.checkbox_suppresssavedialogatclose.Text = "Suppress the save dialog when closing the editor";
|
||||
this.checkbox_suppresssavedialogatclose.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label_counter
|
||||
|
@ -1195,7 +1144,6 @@ namespace Greenshot {
|
|||
this.label_counter.Name = "label_counter";
|
||||
this.label_counter.Size = new System.Drawing.Size(246, 13);
|
||||
this.label_counter.TabIndex = 27;
|
||||
this.label_counter.Text = "The number for the ${NUM} in the filename pattern";
|
||||
//
|
||||
// textbox_counter
|
||||
//
|
||||
|
@ -1231,7 +1179,6 @@ namespace Greenshot {
|
|||
this.checkbox_thumbnailpreview.PropertyName = "ThumnailPreview";
|
||||
this.checkbox_thumbnailpreview.Size = new System.Drawing.Size(394, 24);
|
||||
this.checkbox_thumbnailpreview.TabIndex = 23;
|
||||
this.checkbox_thumbnailpreview.Text = "Show window thumbnails in context menu (for Vista and windows 7)";
|
||||
this.checkbox_thumbnailpreview.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkbox_optimizeforrdp
|
||||
|
@ -1242,7 +1189,6 @@ namespace Greenshot {
|
|||
this.checkbox_optimizeforrdp.PropertyName = "OptimizeForRDP";
|
||||
this.checkbox_optimizeforrdp.Size = new System.Drawing.Size(394, 24);
|
||||
this.checkbox_optimizeforrdp.TabIndex = 22;
|
||||
this.checkbox_optimizeforrdp.Text = "Make some optimizations for usage with remote desktop";
|
||||
this.checkbox_optimizeforrdp.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkbox_autoreducecolors
|
||||
|
@ -1253,8 +1199,6 @@ namespace Greenshot {
|
|||
this.checkbox_autoreducecolors.PropertyName = "OutputFileAutoReduceColors";
|
||||
this.checkbox_autoreducecolors.Size = new System.Drawing.Size(408, 24);
|
||||
this.checkbox_autoreducecolors.TabIndex = 21;
|
||||
this.checkbox_autoreducecolors.Text = "Create an 8-bit image if the colors are less than 256 while having a > 8 bits ima" +
|
||||
"ge";
|
||||
this.checkbox_autoreducecolors.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label_clipboardformats
|
||||
|
@ -1265,7 +1209,6 @@ namespace Greenshot {
|
|||
this.label_clipboardformats.Name = "label_clipboardformats";
|
||||
this.label_clipboardformats.Size = new System.Drawing.Size(88, 13);
|
||||
this.label_clipboardformats.TabIndex = 20;
|
||||
this.label_clipboardformats.Text = "Clipboard formats";
|
||||
//
|
||||
// checkbox_enableexpert
|
||||
//
|
||||
|
@ -1274,7 +1217,6 @@ namespace Greenshot {
|
|||
this.checkbox_enableexpert.Name = "checkbox_enableexpert";
|
||||
this.checkbox_enableexpert.Size = new System.Drawing.Size(394, 24);
|
||||
this.checkbox_enableexpert.TabIndex = 19;
|
||||
this.checkbox_enableexpert.Text = "I know what I am doing!";
|
||||
this.checkbox_enableexpert.UseVisualStyleBackColor = true;
|
||||
this.checkbox_enableexpert.CheckedChanged += new System.EventHandler(this.checkbox_enableexpert_CheckedChanged);
|
||||
//
|
||||
|
@ -1376,7 +1318,7 @@ namespace Greenshot {
|
|||
private GreenshotPlugin.Controls.GreenshotLabel label_lastregion_hotkey;
|
||||
private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_hotkeys;
|
||||
private Greenshot.Controls.ColorButton colorButton_window_background;
|
||||
private GreenshotPlugin.Controls.GreenshotLabel label_window_capture_mode;
|
||||
private GreenshotPlugin.Controls.GreenshotRadioButton radiobuttonWindowCapture;
|
||||
private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_ie_capture;
|
||||
private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_capture;
|
||||
private GreenshotPlugin.Controls.GreenshotGroupBox groupbox_windowscapture;
|
||||
|
@ -1385,7 +1327,7 @@ namespace Greenshot {
|
|||
private System.Windows.Forms.ComboBox combobox_window_capture_mode;
|
||||
private System.Windows.Forms.NumericUpDown numericUpDownWaitTime;
|
||||
private GreenshotPlugin.Controls.GreenshotLabel label_waittime;
|
||||
private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_capture_windows_interactive;
|
||||
private GreenshotPlugin.Controls.GreenshotRadioButton radiobuttonInteractiveCapture;
|
||||
private GreenshotPlugin.Controls.GreenshotCheckBox checkbox_capture_mousepointer;
|
||||
private GreenshotPlugin.Controls.GreenshotTabPage tab_printer;
|
||||
private System.Windows.Forms.ListView listview_plugins;
|
||||
|
|
|
@ -342,7 +342,8 @@ namespace Greenshot {
|
|||
|
||||
SetWindowCaptureMode(coreConfiguration.WindowCaptureMode);
|
||||
// Disable editing when the value is fixed
|
||||
combobox_window_capture_mode.Enabled = !coreConfiguration.Values["WindowCaptureMode"].IsFixed;
|
||||
combobox_window_capture_mode.Enabled = !coreConfiguration.CaptureWindowsInteractive && !coreConfiguration.Values["WindowCaptureMode"].IsFixed;
|
||||
radiobuttonWindowCapture.Checked = !coreConfiguration.CaptureWindowsInteractive;
|
||||
|
||||
trackBarJpegQuality.Value = coreConfiguration.OutputFileJpegQuality;
|
||||
trackBarJpegQuality.Enabled = !coreConfiguration.Values["OutputFileJpegQuality"].IsFixed;
|
||||
|
@ -352,6 +353,10 @@ namespace Greenshot {
|
|||
|
||||
numericUpDownWaitTime.Value = coreConfiguration.CaptureDelay >=0?coreConfiguration.CaptureDelay:0;
|
||||
numericUpDownWaitTime.Enabled = !coreConfiguration.Values["CaptureDelay"].IsFixed;
|
||||
if (IniConfig.IsPortable) {
|
||||
checkbox_autostartshortcut.Visible = false;
|
||||
checkbox_autostartshortcut.Checked = false;
|
||||
} else {
|
||||
// Autostart checkbox logic.
|
||||
if (StartupHelper.hasRunAll()) {
|
||||
// Remove runUser if we already have a run under all
|
||||
|
@ -366,6 +371,7 @@ namespace Greenshot {
|
|||
checkbox_autostartshortcut.Enabled = StartupHelper.canWriteRunUser();
|
||||
checkbox_autostartshortcut.Checked = StartupHelper.hasRunUser();
|
||||
}
|
||||
}
|
||||
|
||||
numericUpDown_daysbetweencheck.Value = coreConfiguration.UpdateCheckInterval;
|
||||
numericUpDown_daysbetweencheck.Enabled = !coreConfiguration.Values["UpdateCheckInterval"].IsFixed;
|
||||
|
@ -591,6 +597,10 @@ namespace Greenshot {
|
|||
CheckBox checkBox = sender as CheckBox;
|
||||
ExpertSettingsEnableState(checkBox.Checked);
|
||||
}
|
||||
|
||||
private void radiobutton_CheckedChanged(object sender, EventArgs e) {
|
||||
combobox_window_capture_mode.Enabled = radiobuttonWindowCapture.Checked;
|
||||
}
|
||||
}
|
||||
|
||||
public class ListviewWithDestinationComparer : System.Collections.IComparer {
|
||||
|
|
|
@ -213,9 +213,6 @@
|
|||
<Compile Include="Helpers\ProcessorHelper.cs" />
|
||||
<Compile Include="Help\HelpFileLoader.cs" />
|
||||
<Compile Include="Processors\TitleFixProcessor.cs" />
|
||||
<None Include="Greenshot.exe.config">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<Compile Include="Helpers\WindowWrapper.cs" />
|
||||
<Compile Include="Memento\AddElementMemento.cs" />
|
||||
<Compile Include="Memento\ChangeFieldHolderMemento.cs" />
|
||||
|
@ -400,7 +397,7 @@
|
|||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>"$(MSBuildProjectDirectory)\tools\TortoiseSVN\SubWCRev.exe" "$(MSBuildProjectDirectory)\.." "$(MSBuildProjectDirectory)\AssemblyInfo.cs.template" "$(MSBuildProjectDirectory)\AssemblyInfo.cs"
|
||||
<PreBuildEvent>
|
||||
copy "$(ProjectDir)log4net-debug.xml" "$(SolutionDir)bin\$(Configuration)\log4net.xml"</PreBuildEvent>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Platform)' == 'x86' ">
|
||||
|
|
|
@ -24,6 +24,7 @@ using System.Collections.Generic;
|
|||
using Greenshot.Plugin;
|
||||
using GreenshotPlugin.Core;
|
||||
using Greenshot.Destinations;
|
||||
using Greenshot.IniFile;
|
||||
|
||||
namespace Greenshot.Helpers {
|
||||
/// <summary>
|
||||
|
@ -32,6 +33,7 @@ namespace Greenshot.Helpers {
|
|||
public static class DestinationHelper {
|
||||
private static log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(DestinationHelper));
|
||||
private static Dictionary<string, IDestination> RegisteredDestinations = new Dictionary<string, IDestination>();
|
||||
private static CoreConfiguration coreConfig = IniConfig.GetIniSection<CoreConfiguration>();
|
||||
|
||||
/// Initialize the destinations
|
||||
static DestinationHelper() {
|
||||
|
@ -64,9 +66,11 @@ namespace Greenshot.Helpers {
|
|||
/// </summary>
|
||||
/// <param name="destination"></param>
|
||||
public static void RegisterDestination(IDestination destination) {
|
||||
if (coreConfig.ExcludeDestinations == null || !coreConfig.ExcludeDestinations.Contains(destination.Designation)) {
|
||||
// don't test the key, an exception should happen wenn it's not unique
|
||||
RegisteredDestinations.Add(destination.Designation, destination);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method to get all the destinations from the plugins
|
||||
|
@ -77,9 +81,10 @@ namespace Greenshot.Helpers {
|
|||
foreach (PluginAttribute pluginAttribute in PluginHelper.Instance.Plugins.Keys) {
|
||||
IGreenshotPlugin plugin = PluginHelper.Instance.Plugins[pluginAttribute];
|
||||
try {
|
||||
var dests = plugin.Destinations();
|
||||
if (dests != null) {
|
||||
destinations.AddRange(dests);
|
||||
foreach (IDestination destination in plugin.Destinations()) {
|
||||
if (coreConfig.ExcludeDestinations == null || !coreConfig.ExcludeDestinations.Contains(destination.Designation)) {
|
||||
destinations.Add(destination);
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
LOG.ErrorFormat("Couldn't get destinations from the plugin {0}", pluginAttribute.Name);
|
||||
|
|
|
@ -145,6 +145,7 @@ namespace Greenshot.Helpers {
|
|||
try {
|
||||
IHTMLDocument2 document2 = getHTMLDocument(ieWindow);
|
||||
string title = document2.title;
|
||||
System.Runtime.InteropServices.Marshal.ReleaseComObject(document2);
|
||||
if (string.IsNullOrEmpty(title)) {
|
||||
singleWindowText.Add(ieWindow.Text);
|
||||
} else {
|
||||
|
@ -582,29 +583,6 @@ namespace Greenshot.Helpers {
|
|||
return returnBitmap;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Used as an example
|
||||
/// </summary>
|
||||
/// <param name="documentContainer"></param>
|
||||
/// <param name="graphicsTarget"></param>
|
||||
/// <param name="returnBitmap"></param>
|
||||
private static void ParseElements(DocumentContainer documentContainer, Graphics graphicsTarget, Bitmap returnBitmap) {
|
||||
foreach(ElementContainer element in documentContainer.GetElementsByTagName("input", new string[]{"greenshot"})) {
|
||||
if (element.attributes.ContainsKey("greenshot") && element.attributes["greenshot"] != null) {
|
||||
string greenshotAction = element.attributes["greenshot"];
|
||||
if ("hide".Equals(greenshotAction)) {
|
||||
using (Brush brush = new SolidBrush(Color.Black)) {
|
||||
graphicsTarget.FillRectangle(brush, element.rectangle);
|
||||
}
|
||||
} else if ("red".Equals(greenshotAction)) {
|
||||
using (Brush brush = new SolidBrush(Color.Red)) {
|
||||
graphicsTarget.FillRectangle(brush, element.rectangle);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method takes the actual capture of the document (frame)
|
||||
/// </summary>
|
||||
|
|
|
@ -31,16 +31,9 @@ using Greenshot.Interop.IE;
|
|||
using Greenshot.IniFile;
|
||||
|
||||
namespace Greenshot.Helpers.IEInterop {
|
||||
public class ElementContainer {
|
||||
public Rectangle rectangle;
|
||||
public string id;
|
||||
public Dictionary<string, string> attributes = new Dictionary<string, string>();
|
||||
}
|
||||
|
||||
public class DocumentContainer {
|
||||
private static log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(DocumentContainer));
|
||||
private static CoreConfiguration configuration = IniConfig.GetIniSection<CoreConfiguration>();
|
||||
private static readonly List<string> CAPTURE_TAGS = new List<string>();
|
||||
private const int E_ACCESSDENIED = unchecked((int)0x80070005L);
|
||||
private static readonly Guid IID_IWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046");
|
||||
private static readonly Guid IID_IWebBrowser2 = new Guid("D30C1661-CDAF-11D0-8A3E-00C04FC9E26E");
|
||||
|
@ -61,30 +54,6 @@ namespace Greenshot.Helpers.IEInterop {
|
|||
private double zoomLevelY = 1;
|
||||
private List<DocumentContainer> frames = new List<DocumentContainer>();
|
||||
|
||||
static DocumentContainer() {
|
||||
CAPTURE_TAGS.Add("LABEL");
|
||||
CAPTURE_TAGS.Add("DIV");
|
||||
CAPTURE_TAGS.Add("IMG");
|
||||
CAPTURE_TAGS.Add("INPUT");
|
||||
CAPTURE_TAGS.Add("BUTTON");
|
||||
CAPTURE_TAGS.Add("TD");
|
||||
CAPTURE_TAGS.Add("TR");
|
||||
CAPTURE_TAGS.Add("TH");
|
||||
CAPTURE_TAGS.Add("TABLE");
|
||||
CAPTURE_TAGS.Add("TBODY");
|
||||
CAPTURE_TAGS.Add("SPAN");
|
||||
CAPTURE_TAGS.Add("A");
|
||||
CAPTURE_TAGS.Add("UL");
|
||||
CAPTURE_TAGS.Add("LI");
|
||||
CAPTURE_TAGS.Add("H1");
|
||||
CAPTURE_TAGS.Add("H2");
|
||||
CAPTURE_TAGS.Add("H3");
|
||||
CAPTURE_TAGS.Add("H4");
|
||||
CAPTURE_TAGS.Add("H5");
|
||||
CAPTURE_TAGS.Add("FORM");
|
||||
CAPTURE_TAGS.Add("FIELDSET");
|
||||
}
|
||||
|
||||
private DocumentContainer(IHTMLWindow2 frameWindow, WindowDetails contentWindow, DocumentContainer parent) {
|
||||
//IWebBrowser2 webBrowser2 = frame as IWebBrowser2;
|
||||
//IHTMLDocument2 document2 = webBrowser2.Document as IHTMLDocument2;
|
||||
|
@ -108,19 +77,16 @@ namespace Greenshot.Helpers.IEInterop {
|
|||
|
||||
this.parent = parent;
|
||||
// Calculate startLocation for the frames
|
||||
IHTMLWindow3 window3 = (IHTMLWindow3)document2.parentWindow;
|
||||
// IHTMLElement element = window2.document.body;
|
||||
// long x = 0;
|
||||
// long y = 0;
|
||||
// do {
|
||||
// x += element.offsetLeft;
|
||||
// y += element.offsetTop;
|
||||
// element = element.offsetParent;
|
||||
// } while (element != null);
|
||||
// startLocation = new Point((int)x, (int)y);
|
||||
IHTMLWindow2 window2 = document2.parentWindow;
|
||||
IHTMLWindow3 window3 = (IHTMLWindow3)window2;
|
||||
Point contentWindowLocation = contentWindow.WindowRectangle.Location;
|
||||
int x = window3.screenLeft - contentWindowLocation.X;
|
||||
int y = window3.screenTop - contentWindowLocation.Y;
|
||||
|
||||
// Release IHTMLWindow 2+3 com objects
|
||||
releaseCom(window2);
|
||||
releaseCom(window3);
|
||||
|
||||
startLocation = new Point(x, y);
|
||||
Init(document2, contentWindow);
|
||||
}
|
||||
|
@ -130,6 +96,16 @@ namespace Greenshot.Helpers.IEInterop {
|
|||
LOG.DebugFormat("Creating DocumentContainer for Document {0} found in window with rectangle {1}", name, SourceRectangle);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper method to release com objects
|
||||
/// </summary>
|
||||
/// <param name="comObject"></param>
|
||||
private void releaseCom(object comObject) {
|
||||
if (comObject != null) {
|
||||
Marshal.ReleaseComObject(comObject);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Private helper method for the constructors
|
||||
/// </summary>
|
||||
|
@ -152,12 +128,15 @@ namespace Greenshot.Helpers.IEInterop {
|
|||
LOG.Error("Error checking the compatibility mode:");
|
||||
LOG.Error(ex);
|
||||
}
|
||||
// Do not release IHTMLDocument5 com object, as this also gives problems with the document2!
|
||||
//Marshal.ReleaseComObject(document5);
|
||||
|
||||
Rectangle clientRectangle = contentWindow.WindowRectangle;
|
||||
try {
|
||||
IHTMLWindow2 window2 = (IHTMLWindow2)document2.parentWindow;
|
||||
//IHTMLWindow3 window3 = (IHTMLWindow3)document2.parentWindow;
|
||||
IHTMLScreen2 screen2 = (IHTMLScreen2)window2.screen;
|
||||
IHTMLScreen screen = window2.screen;
|
||||
IHTMLScreen2 screen2 = (IHTMLScreen2)screen;
|
||||
if (parent != null) {
|
||||
// Copy parent values
|
||||
zoomLevelX = parent.zoomLevelX;
|
||||
|
@ -188,6 +167,10 @@ namespace Greenshot.Helpers.IEInterop {
|
|||
}
|
||||
}
|
||||
LOG.DebugFormat("Zoomlevel {0}, {1}", zoomLevelX, zoomLevelY);
|
||||
// Release com objects
|
||||
releaseCom(window2);
|
||||
releaseCom(screen);
|
||||
releaseCom(screen2);
|
||||
} catch (Exception e) {
|
||||
LOG.Warn("Can't get certain properties for documents, using default. Due to: ", e);
|
||||
}
|
||||
|
@ -226,10 +209,14 @@ namespace Greenshot.Helpers.IEInterop {
|
|||
} else {
|
||||
LOG.DebugFormat("Skipping frame {0}", frameData.Name);
|
||||
}
|
||||
// Clean up frameWindow
|
||||
releaseCom(frameWindow);
|
||||
} catch (Exception e) {
|
||||
LOG.Warn("Problem while trying to get information from a frame, skipping the frame!", e);
|
||||
}
|
||||
}
|
||||
// Clean up collection
|
||||
releaseCom(frameCollection);
|
||||
} catch (Exception ex) {
|
||||
LOG.Warn("Problem while trying to get the frames, skipping!", ex);
|
||||
}
|
||||
|
@ -239,6 +226,8 @@ namespace Greenshot.Helpers.IEInterop {
|
|||
foreach (IHTMLElement frameElement in document3.getElementsByTagName("IFRAME")) {
|
||||
try {
|
||||
CorrectFrameLocations(frameElement);
|
||||
// Clean up frameElement
|
||||
releaseCom(frameElement);
|
||||
} catch (Exception e) {
|
||||
LOG.Warn("Problem while trying to get information from an iframe, skipping the frame!", e);
|
||||
}
|
||||
|
@ -248,30 +237,32 @@ namespace Greenshot.Helpers.IEInterop {
|
|||
}
|
||||
}
|
||||
|
||||
private void DisableScrollbars(IHTMLDocument2 document2) {
|
||||
try {
|
||||
setAttribute("scroll","no");
|
||||
IHTMLBodyElement body = (IHTMLBodyElement)document2.body;
|
||||
body.scroll="no";
|
||||
document2.body.style.borderStyle = "none";
|
||||
} catch (Exception ex) {
|
||||
LOG.Warn("Can't disable scroll", ex);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Corrent the frame locations with the information
|
||||
/// </summary>
|
||||
/// <param name="frameElement"></param>
|
||||
private void CorrectFrameLocations(IHTMLElement frameElement) {
|
||||
long x = 0;
|
||||
long y = 0;
|
||||
IHTMLElement element = frameElement;
|
||||
IHTMLElement oldElement = null;
|
||||
do {
|
||||
x += element.offsetLeft;
|
||||
y += element.offsetTop;
|
||||
element = element.offsetParent;
|
||||
// Release element, but prevent the frameElement to be released
|
||||
if (oldElement != null) {
|
||||
releaseCom(oldElement);
|
||||
}
|
||||
oldElement = element;
|
||||
} while (element != null);
|
||||
|
||||
Point elementLocation = new Point((int)x, (int)y);
|
||||
IHTMLElement2 element2 = (IHTMLElement2)frameElement;
|
||||
IHTMLRect rec = element2.getBoundingClientRect();
|
||||
Point elementBoundingLocation = new Point(rec.left, rec.top);
|
||||
// Release IHTMLRect
|
||||
releaseCom(rec);
|
||||
LOG.DebugFormat("Looking for iframe to correct at {0}", elementBoundingLocation);
|
||||
foreach(DocumentContainer foundFrame in frames) {
|
||||
Point frameLocation = foundFrame.SourceLocation;
|
||||
|
@ -337,128 +328,6 @@ namespace Greenshot.Helpers.IEInterop {
|
|||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper around getElementsByTagName
|
||||
/// </summary>
|
||||
/// <param name="tagName">tagName is the name of the tag to look for, e.g. "input"</param>
|
||||
/// <param name="retrieveAttributes">If true then all attributes are retrieved. This is slow!</param>
|
||||
/// <returns></returns>
|
||||
public List<ElementContainer> GetElementsByTagName(string tagName, string[] attributes) {
|
||||
List<ElementContainer> elements = new List<ElementContainer>();
|
||||
foreach(IHTMLElement element in document3.getElementsByTagName(tagName)) {
|
||||
if (element.offsetWidth <= 0 || element.offsetHeight <= 0) {
|
||||
// not visisble
|
||||
continue;
|
||||
}
|
||||
ElementContainer elementContainer = new ElementContainer();
|
||||
elementContainer.id = element.id;
|
||||
|
||||
if (attributes != null) {
|
||||
foreach(string attributeName in attributes) {
|
||||
object attributeValue = element.getAttribute(attributeName, 0);
|
||||
if (attributeValue != null && attributeValue != DBNull.Value && !elementContainer.attributes.ContainsKey(attributeName)) {
|
||||
elementContainer.attributes.Add(attributeName, attributeValue.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Point elementLocation = new Point((int)element.offsetLeft, (int)element.offsetTop);
|
||||
elementLocation.Offset(this.DestinationLocation);
|
||||
IHTMLElement parent = element.offsetParent;
|
||||
while (parent != null) {
|
||||
elementLocation.Offset((int)parent.offsetLeft, (int)parent.offsetTop);
|
||||
parent = parent.offsetParent;
|
||||
}
|
||||
Rectangle elementRectangle = new Rectangle(elementLocation, new Size((int)element.offsetWidth, (int)element.offsetHeight));
|
||||
elementContainer.rectangle = elementRectangle;
|
||||
elements.Add(elementContainer);
|
||||
}
|
||||
return elements;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a CaptureElement for every element on the page, which can be used by the editor.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public CaptureElement CreateCaptureElements(Size documentSize) {
|
||||
LOG.DebugFormat("CreateCaptureElements for {0}", Name);
|
||||
IHTMLElement baseElement;
|
||||
if (!isDTD) {
|
||||
baseElement = document2.body;
|
||||
} else {
|
||||
baseElement = document3.documentElement;
|
||||
}
|
||||
IHTMLElement2 baseElement2 = baseElement as IHTMLElement2;
|
||||
IHTMLRect htmlRect = baseElement2.getBoundingClientRect();
|
||||
if (Size.Empty.Equals(documentSize)) {
|
||||
documentSize = new Size(ScrollWidth, ScrollHeight);
|
||||
}
|
||||
Rectangle baseElementBounds = new Rectangle(DestinationLocation.X + htmlRect.left, DestinationLocation.Y + htmlRect.top, documentSize.Width, documentSize.Height);
|
||||
if (baseElementBounds.Width <= 0 || baseElementBounds.Height <= 0) {
|
||||
// not visisble
|
||||
return null;
|
||||
}
|
||||
|
||||
CaptureElement captureBaseElement = new CaptureElement(name, baseElementBounds);
|
||||
|
||||
foreach(IHTMLElement bodyElement in baseElement.children) {
|
||||
if ("BODY".Equals(bodyElement.tagName)) {
|
||||
captureBaseElement.Children.AddRange(RecurseElements(bodyElement));
|
||||
}
|
||||
}
|
||||
return captureBaseElement;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Recurse into the document tree
|
||||
/// </summary>
|
||||
/// <param name="parentElement">IHTMLElement we want to recurse into</param>
|
||||
/// <returns>List of ICaptureElements with child elements</returns>
|
||||
private List<ICaptureElement> RecurseElements(IHTMLElement parentElement) {
|
||||
List<ICaptureElement> childElements = new List<ICaptureElement>();
|
||||
foreach(IHTMLElement element in parentElement.children) {
|
||||
string tagName = element.tagName;
|
||||
|
||||
// Skip elements we aren't interested in
|
||||
if (!CAPTURE_TAGS.Contains(tagName)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
ICaptureElement captureElement = new CaptureElement(tagName);
|
||||
captureElement.Children.AddRange(RecurseElements(element));
|
||||
|
||||
// Get Bounds
|
||||
IHTMLElement2 element2 = element as IHTMLElement2;
|
||||
IHTMLRect htmlRect = element2.getBoundingClientRect();
|
||||
|
||||
int left = htmlRect.left;
|
||||
int top = htmlRect.top;
|
||||
int right = htmlRect.right;
|
||||
int bottom = htmlRect.bottom;
|
||||
|
||||
// Offset
|
||||
left += DestinationLocation.X;
|
||||
top += DestinationLocation.Y;
|
||||
right += DestinationLocation.X;
|
||||
bottom += DestinationLocation.Y;
|
||||
|
||||
// Fit to floating children
|
||||
foreach(ICaptureElement childElement in captureElement.Children) {
|
||||
//left = Math.Min(left, childElement.Bounds.Left);
|
||||
//top = Math.Min(top, childElement.Bounds.Top);
|
||||
right = Math.Max(right, childElement.Bounds.Right);
|
||||
bottom = Math.Max(bottom, childElement.Bounds.Bottom);
|
||||
}
|
||||
Rectangle bounds = new Rectangle(left, top, right-left, bottom-top);
|
||||
|
||||
if (bounds.Width > 0 && bounds.Height > 0) {
|
||||
captureElement.Bounds = bounds;
|
||||
childElements.Add(captureElement);
|
||||
}
|
||||
}
|
||||
return childElements;
|
||||
}
|
||||
|
||||
public Color BackgroundColor {
|
||||
get {
|
||||
if (document2.bgColor != null) {
|
||||
|
@ -523,11 +392,15 @@ namespace Greenshot.Helpers.IEInterop {
|
|||
/// <param name="document2">The IHTMLDocument2</param>
|
||||
/// <param name="document3">The IHTMLDocument3</param>
|
||||
public void setAttribute(string attribute, string value) {
|
||||
IHTMLElement element = null;
|
||||
if (!isDTD) {
|
||||
document2.body.setAttribute(attribute, value, 1);
|
||||
element = document2.body;
|
||||
} else {
|
||||
document3.documentElement.setAttribute(attribute, value, 1);
|
||||
element = document3.documentElement;
|
||||
}
|
||||
element.setAttribute(attribute, value, 1);
|
||||
// Release IHTMLElement com object
|
||||
releaseCom(element);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -538,12 +411,16 @@ namespace Greenshot.Helpers.IEInterop {
|
|||
/// <param name="document3">The IHTMLDocument3</param>
|
||||
/// <returns>object with the attribute value</returns>
|
||||
public object getAttribute(string attribute) {
|
||||
IHTMLElement element = null;
|
||||
object retVal = 0;
|
||||
if (!isDTD) {
|
||||
retVal = document2.body.getAttribute(attribute, 1);
|
||||
element = document2.body;
|
||||
} else {
|
||||
retVal = document3.documentElement.getAttribute(attribute, 1);
|
||||
element = document3.documentElement;
|
||||
}
|
||||
retVal = element.getAttribute(attribute, 1);
|
||||
// Release IHTMLElement com object
|
||||
releaseCom(element);
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ namespace Greenshot.Helpers {
|
|||
DialogResult? printOptionsResult = ShowPrintOptionsDialog();
|
||||
try {
|
||||
if (printOptionsResult == null || printOptionsResult == DialogResult.OK) {
|
||||
if (IsColorPrint()) {
|
||||
if (!IsColorPrint()) {
|
||||
printDocument.DefaultPageSettings.Color = false;
|
||||
}
|
||||
printDocument.Print();
|
||||
|
@ -196,7 +196,7 @@ namespace Greenshot.Helpers {
|
|||
// rotate the image if it fits the page better
|
||||
if (conf.OutputPrintAllowRotate) {
|
||||
if ((pageRect.Width > pageRect.Height && imageRect.Width < imageRect.Height) || (pageRect.Width < pageRect.Height && imageRect.Width > imageRect.Height)) {
|
||||
image.RotateFlip(RotateFlipType.Rotate90FlipNone);
|
||||
image.RotateFlip(RotateFlipType.Rotate270FlipNone);
|
||||
imageRect = image.GetBounds(ref gu);
|
||||
if (alignment.Equals(ContentAlignment.TopLeft)) {
|
||||
alignment = ContentAlignment.TopRight;
|
||||
|
|
|
@ -86,7 +86,6 @@ namespace Greenshot.Experimental {
|
|||
MainForm.Instance.NotifyIcon.ShowBalloonTip(10000, "Greenshot", Language.GetFormattedString(LangKey.update_found, "'" + latestGreenshot.File + "'"), ToolTipIcon.Info);
|
||||
}
|
||||
conf.LastUpdateCheck = DateTime.Now;
|
||||
IniConfig.Save();
|
||||
} catch (Exception e) {
|
||||
LOG.Error("An error occured while checking for updates, the error will be ignored: ", e);
|
||||
}
|
||||
|
@ -107,7 +106,7 @@ namespace Greenshot.Experimental {
|
|||
Process.Start(downloadLink);
|
||||
}
|
||||
} catch (Exception) {
|
||||
MessageBox.Show(Language.GetFormattedString(LangKey.error_openlink, latestGreenshot.Link), Language.GetString(LangKey.error));
|
||||
MessageBox.Show(Language.GetFormattedString(LangKey.error_openlink, downloadLink), Language.GetString(LangKey.error));
|
||||
} finally {
|
||||
MainForm.Instance.NotifyIcon.BalloonTipClicked -= HandleBalloonTipClick;
|
||||
MainForm.Instance.NotifyIcon.BalloonTipClosed -= CleanupBalloonTipClick;
|
||||
|
|
|
@ -187,7 +187,12 @@
|
|||
<a href="#editor-shapes">Formen-Werkzeuge</a>.
|
||||
Zeichnen Sie einfach ein Textelement in der gewünschten Größe und geben Sie
|
||||
den gewünschten Text ein.<br>
|
||||
Durch Doppelklicken können Sie den Text eines bestehenden Textelements bearbeiten.
|
||||
Durch Doppelklicken können Sie den Text eines bestehenden Textelements bearbeiten.<br>
|
||||
Drücken Sie <kbd>Return</kbd> oder <kbd>Enter</kbd> um die Bearbeitung des Textes zu beenden.
|
||||
</p>
|
||||
<p class="hint">
|
||||
Wenn Sie Zeilenumbrüche innerhalb einer Textbox benötigen, drücken Sie <kbd>Shift</kbd> + <kbd>Return</kbd> oder
|
||||
<kbd>Shift</kbd> + <kbd>Enter</kbd>.
|
||||
</p>
|
||||
|
||||
<a name="editor-highlight"></a>
|
||||
|
|
|
@ -203,7 +203,12 @@
|
|||
Usage of the text tool <kbd>T</kbd> is similar to the usage of the
|
||||
<a href="#editor-shapes">shape</a> tools. Just draw the text element to the desired
|
||||
size, then type in the text.<br>
|
||||
Double click an existing text element to edit the text.
|
||||
Double click an existing text element to edit the text.<br>
|
||||
Hit <kbd>Return</kbd> or <kbd>Enter</kbd> when you have finished editing.
|
||||
</p>
|
||||
<p class="hint">
|
||||
If you need to insert line breaks within a text box, hit <kbd>Shift</kbd> + <kbd>Return</kbd> or
|
||||
<kbd>Shift</kbd> + <kbd>Enter</kbd>.
|
||||
</p>
|
||||
|
||||
<a name="editor-highlight"></a>
|
||||
|
|
294
Greenshot/Languages/language-et-EE.xml
Normal file
294
Greenshot/Languages/language-et-EE.xml
Normal file
|
@ -0,0 +1,294 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<language description="Eesti" ietf="et-EE" version="1.1.4" languagegroup="2">
|
||||
<resources>
|
||||
<resource name="about_bugs">Palun saatke veateated</resource>
|
||||
<resource name="about_donations">Greenshoti kasutamismugavust ja arendust saate toetada siin:</resource>
|
||||
<resource name="about_host">Greenshot asub portaalis sourceforge.net</resource>
|
||||
<resource name="about_icons">Yusuke Kamiyamane on ikoonide tegija Fugue ikooni paketist (Creative Commons Attribution 3.0 litsents)</resource>
|
||||
<resource name="about_license">Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
|
||||
Greenshot ei paku GARANTIID. See on vabaravaline programm ja Te võite seda levitava vabalt teatud tingimuste alusel.
|
||||
Lisainfo GNU Põhilise Avaliku Litsentsi kohta:</resource>
|
||||
<resource name="about_title">Info Greenshoti kohta</resource>
|
||||
<resource name="application_title">Greenshot - revolutsiooniline kuvatõmmise tööriist</resource>
|
||||
<resource name="bugreport_cancel">Sulge</resource>
|
||||
<resource name="bugreport_info">Vabandust aga ilmnes tundmatu viga.
|
||||
|
||||
Hea uudis on: saate meil aidata seda eemaldada saates meile veateate.
|
||||
Uue veateate teavitamiseks, palun külastage kõrvalolevat URLi ja tekstialalt asetage sisu kirjeldusse.
|
||||
|
||||
Vea paremaks parandamiseks lisage palun arusaadav kokkuvõte veast ja lisage ka pisidetailid.
|
||||
Me oleksime väga tänulik, kui te enne kontrolliksite, ega sellest veast pole juba teavitatud. (Postituse kiiresti leidmiseks kasutage otsingut.) Aitäh :)</resource>
|
||||
<resource name="bugreport_title">Viga</resource>
|
||||
<resource name="CANCEL">Loobu</resource>
|
||||
<resource name="clipboard_error">Lõikelauale kirjutamisel ilmnes ootamatu viga.</resource>
|
||||
<resource name="clipboard_inuse">Greenshot ei suutnud lõikelauale kirjutada, sest {0} protsess blokeeris ligipääsu.</resource>
|
||||
<resource name="clipboard_noimage">Lõikelaua pilti ei leitud.</resource>
|
||||
<resource name="ClipboardFormat.BITMAP">Windowsi pisipilt</resource>
|
||||
<resource name="ClipboardFormat.DIB">Seadme isesesev pisipilt (DIB)</resource>
|
||||
<resource name="ClipboardFormat.HTML">HTML</resource>
|
||||
<resource name="ClipboardFormat.HTMLDATAURL">HTML koos tekstisisese pildiga</resource>
|
||||
<resource name="ClipboardFormat.PNG">PNG</resource>
|
||||
<resource name="colorpicker_alpha">Alpha</resource>
|
||||
<resource name="colorpicker_apply">Kinnita</resource>
|
||||
<resource name="colorpicker_blue">Sinine</resource>
|
||||
<resource name="colorpicker_green">Roheline</resource>
|
||||
<resource name="colorpicker_htmlcolor">HTMLi värv</resource>
|
||||
<resource name="colorpicker_recentcolors">Viimati kasutatud värvid</resource>
|
||||
<resource name="colorpicker_red">Punane</resource>
|
||||
<resource name="colorpicker_title">Värvivalik</resource>
|
||||
<resource name="colorpicker_transparent">Läbipaistvus</resource>
|
||||
<resource name="com_rejected">Greenshotile keelas ligipääsu sihtkoht {0}, arvatavasti on dialoog avatud. Sulgege dialoog ja proovige uuesti.</resource>
|
||||
<resource name="com_rejected_title">Greenshotile keelati ligipääs</resource>
|
||||
<resource name="config_unauthorizedaccess_write">Greenshoti seadistusfaili ei suudetud salvestada. Palun kontrollige '{0}' ligipääsu seadmeid.</resource>
|
||||
<resource name="contextmenu_about">Info Greenshoti kohta</resource>
|
||||
<resource name="contextmenu_capturearea">Haarake teatud regioon</resource>
|
||||
<resource name="contextmenu_captureclipboard">Avage pilt lõikelaualt</resource>
|
||||
<resource name="contextmenu_capturefullscreen">Haarake kogu ekraan</resource>
|
||||
<resource name="contextmenu_capturefullscreen_all">kõik</resource>
|
||||
<resource name="contextmenu_capturefullscreen_bottom">alt</resource>
|
||||
<resource name="contextmenu_capturefullscreen_left">vasakult</resource>
|
||||
<resource name="contextmenu_capturefullscreen_right">paremalt</resource>
|
||||
<resource name="contextmenu_capturefullscreen_top">ülevalt</resource>
|
||||
<resource name="contextmenu_captureie">Haarake Internet Explorer</resource>
|
||||
<resource name="contextmenu_captureiefromlist">Haarake Internet Explorer loendist</resource>
|
||||
<resource name="contextmenu_capturelastregion">Haarake hiljutine regioon</resource>
|
||||
<resource name="contextmenu_capturewindow">Haarake aken</resource>
|
||||
<resource name="contextmenu_capturewindowfromlist">Haarake aken loendist</resource>
|
||||
<resource name="contextmenu_donate">Toetage Greenshoti</resource>
|
||||
<resource name="contextmenu_exit">Välju</resource>
|
||||
<resource name="contextmenu_help">Abi</resource>
|
||||
<resource name="contextmenu_openfile">Avage pilt failist</resource>
|
||||
<resource name="contextmenu_openrecentcapture">Avage viimane haaratud asukoht</resource>
|
||||
<resource name="contextmenu_quicksettings">Kiirsätted</resource>
|
||||
<resource name="contextmenu_settings">Eelistused...</resource>
|
||||
<resource name="destination_exportfailed">{0}-le saatmisel ilmnes viga. Palun proovige uuesti.</resource>
|
||||
<resource name="editor_align_bottom">All</resource>
|
||||
<resource name="editor_align_center">Keskel</resource>
|
||||
<resource name="editor_align_horizontal">Horisontaalne joondus</resource>
|
||||
<resource name="editor_align_left">Vasak</resource>
|
||||
<resource name="editor_align_middle">Keskel</resource>
|
||||
<resource name="editor_align_right">Parem</resource>
|
||||
<resource name="editor_align_top">Üleval</resource>
|
||||
<resource name="editor_align_vertical">Vertikaaljoondus</resource>
|
||||
<resource name="editor_arrange">Korrasta</resource>
|
||||
<resource name="editor_arrowheads">Noolepead</resource>
|
||||
<resource name="editor_arrowheads_both">Mõlemad</resource>
|
||||
<resource name="editor_arrowheads_end">Lõpppunkt</resource>
|
||||
<resource name="editor_arrowheads_none">Tühi</resource>
|
||||
<resource name="editor_arrowheads_start">Alguspunkt</resource>
|
||||
<resource name="editor_autocrop">Automaatne lõikus</resource>
|
||||
<resource name="editor_backcolor">Täitke värviga</resource>
|
||||
<resource name="editor_blur_radius">Uduse ala raadius</resource>
|
||||
<resource name="editor_bold">Paks</resource>
|
||||
<resource name="editor_border">Äär</resource>
|
||||
<resource name="editor_brightness">Heledus</resource>
|
||||
<resource name="editor_cancel">Loobu</resource>
|
||||
<resource name="editor_clipboardfailed">Lõikelaua kasutamisel ilmnes viga. Palun proovi uuesti.</resource>
|
||||
<resource name="editor_close">Sulge</resource>
|
||||
<resource name="editor_close_on_save">Kas te tahate salvestada kuvatõmmist?</resource>
|
||||
<resource name="editor_close_on_save_title">Salvestage pilt?</resource>
|
||||
<resource name="editor_confirm">Kinnitan</resource>
|
||||
<resource name="editor_copyimagetoclipboard">Kopeerige pilt lõikelauale</resource>
|
||||
<resource name="editor_copypathtoclipboard">Kopeerige asukoht lõikelauale</resource>
|
||||
<resource name="editor_copytoclipboard">Kopeeri</resource>
|
||||
<resource name="editor_crop">Lõika (C)</resource>
|
||||
<resource name="editor_cursortool">Valiku tööriist (ESC)</resource>
|
||||
<resource name="editor_cuttoclipboard">Lõika</resource>
|
||||
<resource name="editor_deleteelement">Kustuta</resource>
|
||||
<resource name="editor_downonelevel">Samm allapoole</resource>
|
||||
<resource name="editor_downtobottom">Samm lõppu</resource>
|
||||
<resource name="editor_drawarrow">Joonista nool (A)</resource>
|
||||
<resource name="editor_drawellipse">Joonistage ellip (E)</resource>
|
||||
<resource name="editor_drawfreehand">Joonistage vaba käega (F)</resource>
|
||||
<resource name="editor_drawhighlighter">Tooge esile (H)</resource>
|
||||
<resource name="editor_drawline">Joonistage joon (L)</resource>
|
||||
<resource name="editor_drawrectangle">Joonistage ristkülik (R)</resource>
|
||||
<resource name="editor_drawtextbox">Lisage tekstikast (T)</resource>
|
||||
<resource name="editor_dropshadow_darkness">Varjutav tugevus</resource>
|
||||
<resource name="editor_dropshadow_offset">Varju tasakaalustamine</resource>
|
||||
<resource name="editor_dropshadow_settings">Langeva varju seaded</resource>
|
||||
<resource name="editor_dropshadow_thickness">Varju paksus</resource>
|
||||
<resource name="editor_duplicate">Tehke valitud elemendist koopia</resource>
|
||||
<resource name="editor_edit">Muutke</resource>
|
||||
<resource name="editor_effects">Efektid</resource>
|
||||
<resource name="editor_email">E-post</resource>
|
||||
<resource name="editor_file">Fail</resource>
|
||||
<resource name="editor_fontsize">Suurus</resource>
|
||||
<resource name="editor_forecolor">Joone värv</resource>
|
||||
<resource name="editor_grayscale">Halli skaala</resource>
|
||||
<resource name="editor_highlight_area">Tooge esiplaanile</resource>
|
||||
<resource name="editor_highlight_grayscale">Hall skaala</resource>
|
||||
<resource name="editor_highlight_magnify">Suurendamine</resource>
|
||||
<resource name="editor_highlight_mode">Tõstke esile</resource>
|
||||
<resource name="editor_highlight_text">Tõstke esile teksti</resource>
|
||||
<resource name="editor_image_shadow">Langev vari</resource>
|
||||
<resource name="editor_imagesaved">Pilt salvestati {0}.</resource>
|
||||
<resource name="editor_insertwindow">Sisestage aken</resource>
|
||||
<resource name="editor_invert">Võtke tegevus tagasi</resource>
|
||||
<resource name="editor_italic">Kaldkiri</resource>
|
||||
<resource name="editor_load_objects">Laadige objektid failist</resource>
|
||||
<resource name="editor_magnification_factor">Suurendusfaktor</resource>
|
||||
<resource name="editor_match_capture_size">Katke haaratava ala suurus</resource>
|
||||
<resource name="editor_obfuscate">Varjutage (O)</resource>
|
||||
<resource name="editor_obfuscate_blur">Udune ala</resource>
|
||||
<resource name="editor_obfuscate_mode">Varjus olev ala</resource>
|
||||
<resource name="editor_obfuscate_pixelize">Mosaiik</resource>
|
||||
<resource name="editor_object">Objekt</resource>
|
||||
<resource name="editor_opendirinexplorer">Avage asukoht Windows Exploreriga</resource>
|
||||
<resource name="editor_pastefromclipboard">Asetage</resource>
|
||||
<resource name="editor_pixel_size">Piksli suurus</resource>
|
||||
<resource name="editor_preview_quality">Eelvaate kvaliteet</resource>
|
||||
<resource name="editor_print">Printige</resource>
|
||||
<resource name="editor_redo">Tehke uuesti {0}</resource>
|
||||
<resource name="editor_resetsize">Taastage normaalne suurus</resource>
|
||||
<resource name="editor_resize_percent">Protsent</resource>
|
||||
<resource name="editor_resize_pixel">Pikslid</resource>
|
||||
<resource name="editor_rotateccw">Pöörake loendurit päripäeva (Control + ,)</resource>
|
||||
<resource name="editor_rotatecw">Pöörake päripäeva (Control + .)</resource>
|
||||
<resource name="editor_save">Salvesta</resource>
|
||||
<resource name="editor_save_objects">Salvestage objektid faili</resource>
|
||||
<resource name="editor_saveas">Salvestage nimega...</resource>
|
||||
<resource name="editor_selectall">Valige kõik</resource>
|
||||
<resource name="editor_senttoprinter">Printimiskäsklus saadeti '{0}'.</resource>
|
||||
<resource name="editor_shadow">Langev vari</resource>
|
||||
<resource name="editor_storedtoclipboard">Pilt taastati lõikelauale.</resource>
|
||||
<resource name="editor_thickness">Joone paksus</resource>
|
||||
<resource name="editor_title">Greenshoti pildihaldur</resource>
|
||||
<resource name="editor_torn_edge">Rebenev äär</resource>
|
||||
<resource name="editor_tornedge_horizontaltoothrange">Horisontaalne hammasvahemik</resource>
|
||||
<resource name="editor_tornedge_settings">Rebeneva ääre seaded</resource>
|
||||
<resource name="editor_tornedge_toothsize">Rebenemise suurus</resource>
|
||||
<resource name="editor_tornedge_verticaltoothrange">Vertikaalne hambavahemik</resource>
|
||||
<resource name="editor_undo">Võtke tagasi {0}</resource>
|
||||
<resource name="editor_uponelevel">Aste ülespoole</resource>
|
||||
<resource name="editor_uptotop">Kuni ülesse äärde</resource>
|
||||
<resource name="EmailFormat.MAPI">MAPI klient</resource>
|
||||
<resource name="EmailFormat.OUTLOOK_HTML">Outlook koos HTML-iga</resource>
|
||||
<resource name="EmailFormat.OUTLOOK_TXT">Outlook koos tekstiga</resource>
|
||||
<resource name="error">Viga</resource>
|
||||
<resource name="error_multipleinstances">Greenshot on juba käivitatud.</resource>
|
||||
<resource name="error_nowriteaccess">Faili ei suudetud salvestada {0}.
|
||||
Palun kontrollige valitud hoiuala kirjutamisõigust.</resource>
|
||||
<resource name="error_openfile">"{0}" ei suudetud avada.</resource>
|
||||
<resource name="error_openlink">Ei suudetud avada '{0}'.</resource>
|
||||
<resource name="error_save">Ei suudetud salvestada kuvatõmmist, palun valige sobivam asukoht.</resource>
|
||||
<resource name="expertsettings">Ekspert</resource>
|
||||
<resource name="expertsettings_autoreducecolors">Looge 8-bitine pilt, kui värvid on väiksemad kui 256 ja 8 bitisel pildil</resource>
|
||||
<resource name="expertsettings_checkunstableupdates">Kontrollige testimisel olevaid uuendusi</resource>
|
||||
<resource name="expertsettings_clipboardformats">Lõikelaua formaadid</resource>
|
||||
<resource name="expertsettings_counter">${NUM} number failinime atribuutides</resource>
|
||||
<resource name="expertsettings_enableexpert">Ma tean, mida ma teen!</resource>
|
||||
<resource name="expertsettings_footerpattern">Printeri alumine muster</resource>
|
||||
<resource name="expertsettings_minimizememoryfootprint">Vähendage mälu alumist mustrit aga koos jõudluse langusega (ei soovitata).</resource>
|
||||
<resource name="expertsettings_optimizeforrdp">Väliste töölaudade kasutamiseks tehke vajalikud optimiseeringud</resource>
|
||||
<resource name="expertsettings_reuseeditorifpossible">Kui võimalik, taaskasutage kohandajat</resource>
|
||||
<resource name="expertsettings_suppresssavedialogatclose">Kohandaja sulgemisel pressige kokku salvestatud dialoog</resource>
|
||||
<resource name="expertsettings_thumbnailpreview">Kuvage kontekstimenüüs pisipildid aknast (Vista ja windows 7 jaoks)</resource>
|
||||
<resource name="exported_to">Eksporditud: {0}</resource>
|
||||
<resource name="exported_to_error">Eksportimisel {0} tekkis viga:</resource>
|
||||
<resource name="help_title">Greenshoti abi</resource>
|
||||
<resource name="hotkeys">Kiirklahvid</resource>
|
||||
<resource name="jpegqualitydialog_choosejpegquality">Palun valige oma pildile JPEG kvaliteet.</resource>
|
||||
<resource name="OK">Ok</resource>
|
||||
<resource name="print_error">Printimisel tekkis viga.</resource>
|
||||
<resource name="printoptions_allowcenter">Printige lehe keskele</resource>
|
||||
<resource name="printoptions_allowenlarge">Suurendage printimise ala, et pilt kattuks paberi suurusega</resource>
|
||||
<resource name="printoptions_allowrotate">Pöörake pilti paberi suuna järgi</resource>
|
||||
<resource name="printoptions_allowshrink">Vähendage pilti, et see mahuks paberile</resource>
|
||||
<resource name="printoptions_colors">Värvi seaded</resource>
|
||||
<resource name="printoptions_dontaskagain">Salvestage need valikud tavaseadetena ja ärge enam küsige</resource>
|
||||
<resource name="printoptions_inverted">Printige ümberpööratud värvidega</resource>
|
||||
<resource name="printoptions_layout">Lehekülje välimuse seaded</resource>
|
||||
<resource name="printoptions_printcolor">Täielik värviline printimine</resource>
|
||||
<resource name="printoptions_printgrayscale">Sundige printimist hallil skaalal</resource>
|
||||
<resource name="printoptions_printmonochrome">Sundige must/valget printimist</resource>
|
||||
<resource name="printoptions_timestamp">Printige kuupäev / aeg lehekülje alla</resource>
|
||||
<resource name="printoptions_title">Greenshoti printimisvalikud</resource>
|
||||
<resource name="qualitydialog_dontaskagain">Salvestage need valikud tavaseadetena ja ärge enam küsige</resource>
|
||||
<resource name="qualitydialog_title">Greenshoti kvaliteet</resource>
|
||||
<resource name="quicksettings_destination_file">Salvestage otse (kasutades selleks eelistatud faili väljundi seadeid)</resource>
|
||||
<resource name="settings_alwaysshowprintoptionsdialog">Igal printimiskorral kuvage printimise valikute dialoog</resource>
|
||||
<resource name="settings_alwaysshowqualitydialog">Igal pildi salvestamise korral kuvage kvaliteedi dialoog</resource>
|
||||
<resource name="settings_applicationsettings">Rakenduse seaded</resource>
|
||||
<resource name="settings_autostartshortcut">Käivitage Greenshot koos Windowsiga</resource>
|
||||
<resource name="settings_capture">Haarake</resource>
|
||||
<resource name="settings_capture_mousepointer">Haarake hiirenool</resource>
|
||||
<resource name="settings_capture_windows_interactive">Kasutage interaktiivset akna haaramismeetodit</resource>
|
||||
<resource name="settings_checkperiod">Uuendamise intervall (0=uuendamist ei toimu)</resource>
|
||||
<resource name="settings_configureplugin">Seadistage</resource>
|
||||
<resource name="settings_copypathtoclipboard">Iga pildi salvestamisega kopeerige faili asukoht lõikelauale</resource>
|
||||
<resource name="settings_destination">Asukoht</resource>
|
||||
<resource name="settings_destination_clipboard">Kopeerige lõikelauale</resource>
|
||||
<resource name="settings_destination_editor">Avage pildihalduris</resource>
|
||||
<resource name="settings_destination_email">E-post</resource>
|
||||
<resource name="settings_destination_file">Salvestage otse (kasutades kõrvalolevaid seadeid)</resource>
|
||||
<resource name="settings_destination_fileas">Salvestega nimega (dialoogi kuvamin)</resource>
|
||||
<resource name="settings_destination_picker">Valige asukoht dünaamiliselt</resource>
|
||||
<resource name="settings_destination_printer">Saatke printerisse</resource>
|
||||
<resource name="settings_editor">Kohandaja</resource>
|
||||
<resource name="settings_filenamepattern">Faili nime atribuudid</resource>
|
||||
<resource name="settings_general">Põhiline</resource>
|
||||
<resource name="settings_iecapture">Internet Exploreri haaramine</resource>
|
||||
<resource name="settings_jpegquality">JPEG kvaliteet</resource>
|
||||
<resource name="settings_language">Keel</resource>
|
||||
<resource name="settings_message_filenamepattern">See kohatäitja täidetakse automaatselt defineeritud mustris:
|
||||
${YYYY} aasta, 4 numbrit
|
||||
${MM} kuu, 2 numbrit
|
||||
${DD} päev, 2 numbrit
|
||||
${hh} tund, 2 numbrit
|
||||
${mm} minut, 2 numbrit
|
||||
${ss} sekund, 2 numbrit
|
||||
${NUM} suurenev number, 6 numbrit
|
||||
${title} Akna pealkiri
|
||||
${user} Windowsi kasutaja
|
||||
${domain} Windowsi domeen
|
||||
${hostname} Arvuti nimi
|
||||
|
||||
Greenshotiga on võimalik asukohti salvestada dünaamiliselt, selleks kasutage kaldkriipsu (\), et kaustad ja faili nimi oleks eraldatud.
|
||||
Näiteks: Kohatäitja ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
|
||||
loob praeguse päeva jaoks kausta Teie sihtkausta, nt 2008-06-29, kuvatõmmise faili nimi on tuletatud praegusest
|
||||
kellaajast, nt 11_58_32 (lisaks seadetes määratud laiend)</resource>
|
||||
<resource name="settings_network">Võrk ja uuendused</resource>
|
||||
<resource name="settings_output">Väljund</resource>
|
||||
<resource name="settings_playsound">Esitage kaamera heli</resource>
|
||||
<resource name="settings_plugins">Laiendid</resource>
|
||||
<resource name="settings_plugins_createdby">Laiendi omanik</resource>
|
||||
<resource name="settings_plugins_dllpath">DLLi asukoht</resource>
|
||||
<resource name="settings_plugins_name">Nimi</resource>
|
||||
<resource name="settings_plugins_version">Versioon</resource>
|
||||
<resource name="settings_preferredfilesettings">Eelistatud väljundi seade</resource>
|
||||
<resource name="settings_primaryimageformat">Pildi formaat</resource>
|
||||
<resource name="settings_printer">Printer</resource>
|
||||
<resource name="settings_printoptions">Printimisvalikud</resource>
|
||||
<resource name="settings_qualitysettings">Kvaliteedi seaded</resource>
|
||||
<resource name="settings_reducecolors">Vähendage värvide arvu 256ni</resource>
|
||||
<resource name="settings_registerhotkeys">Registreerige kiirklahvid</resource>
|
||||
<resource name="settings_showflashlight">Kuvage välklamp</resource>
|
||||
<resource name="settings_shownotify">Kuvage teateid</resource>
|
||||
<resource name="settings_storagelocation">Hoiuse asukoht</resource>
|
||||
<resource name="settings_title">Seaded</resource>
|
||||
<resource name="settings_tooltip_filenamepattern">Kuvatõmmiste salvestamise ajal kasutatav atribuut</resource>
|
||||
<resource name="settings_tooltip_language">Greenshoti kasutajaliidese keel</resource>
|
||||
<resource name="settings_tooltip_primaryimageformat">Kasutatav pildiformaat</resource>
|
||||
<resource name="settings_tooltip_registerhotkeys">Määrab, kas kiirklahvid Prnt, Ctrl + Print, Alt + Prnt on jäetud Greenshoti programmi käivitumise ajast kuni programmist väljumiseni.</resource>
|
||||
<resource name="settings_tooltip_storagelocation">Kuvatõmmiste asukoht (töölauale salvestamise soovil jätke see tühjaks)</resource>
|
||||
<resource name="settings_usedefaultproxy">Kasutage süsteemi proksit</resource>
|
||||
<resource name="settings_visualization">Efektid</resource>
|
||||
<resource name="settings_waittime">Pildi tegemise ooteaeg millisekundites</resource>
|
||||
<resource name="settings_window_capture_mode">Akna haaramise meetod</resource>
|
||||
<resource name="settings_windowscapture">Akna pildistamine</resource>
|
||||
<resource name="settings_zoom">Kuvage suurendaja</resource>
|
||||
<resource name="tooltip_firststart">Tehke parem-klõps siia või vajutage klahvi {0}.</resource>
|
||||
<resource name="update_found">reenshoti uuem versioon on saadaval! Kas te soovite alla laadida Greenshot {0}?</resource>
|
||||
<resource name="wait_ie_capture">Palun oodake, kui pilti Internet Exploreris tehakse...</resource>
|
||||
<resource name="warning">Hoiatus</resource>
|
||||
<resource name="warning_hotkeys">Kiirklahv(e) "{0}" ei suudetud registreerida. Teine tööriist väidab kasutavat sama(u) kiirklahvi(e)! Muutke või deaktiviseerige kiirklahv(id).
|
||||
|
||||
Kõik Greenshoti lisad töötavad süsteemisalvest ilma kiirklahvide olemasoluta.</resource>
|
||||
<resource name="WindowCaptureMode.Aero">Kasutage kohandatud värvi</resource>
|
||||
<resource name="WindowCaptureMode.AeroTransparent">Säilitage läbipaistvus</resource>
|
||||
<resource name="WindowCaptureMode.Auto">Automaatselt</resource>
|
||||
<resource name="WindowCaptureMode.GDI">Kasutage tavalist värvi</resource>
|
||||
<resource name="WindowCaptureMode.Screen">Nagu kuvatud</resource>
|
||||
</resources>
|
||||
</language>
|
|
@ -28,7 +28,7 @@ Juga, kami sangat terbantu apabila anda mengecek laporan lain yang sama dengan k
|
|||
<resource name="ClipboardFormat.HTML">HTML</resource>
|
||||
<resource name="ClipboardFormat.HTMLDATAURL">HTML dengan gambar inline</resource>
|
||||
<resource name="ClipboardFormat.PNG">PNG</resource>
|
||||
<resource name="colorpicker_alpha">Alpha</resource>
|
||||
<resource name="colorpicker_alpha">Alfa</resource>
|
||||
<resource name="colorpicker_apply">Lakukan</resource>
|
||||
<resource name="colorpicker_blue">Biru</resource>
|
||||
<resource name="colorpicker_green">Hijau</resource>
|
||||
|
@ -223,7 +223,7 @@ Harap cek aksesibilitas menuis pada lokasi penyimpanan yang dipilih.</resource>
|
|||
<resource name="settings_destination_email">E-Mail</resource>
|
||||
<resource name="settings_destination_file">Simpan cepat (menggunakan pengaturan berikut)</resource>
|
||||
<resource name="settings_destination_fileas">Simpan sebagai (tampilkan dialog)</resource>
|
||||
<resource name="settings_destination_picker">Pilih dsetinasi secara dinamis</resource>
|
||||
<resource name="settings_destination_picker">Pilih destinasi secara dinamis</resource>
|
||||
<resource name="settings_destination_printer">Kirim ke printer</resource>
|
||||
<resource name="settings_editor">Editor</resource>
|
||||
<resource name="settings_filenamepattern">Pola nama berkas</resource>
|
||||
|
@ -277,6 +277,7 @@ cont, 11_58_32 (ditambah ekstensi yang ditetapkan pada pengaturan)</resource>
|
|||
<resource name="settings_waittime">Milisekon untuk menunggu sebelum menagkap</resource>
|
||||
<resource name="settings_window_capture_mode">Moda penangkap jendela</resource>
|
||||
<resource name="settings_windowscapture">Tangkap jendela</resource>
|
||||
<resource name="settings_zoom">Tampilkan Pembesar</resource>
|
||||
<resource name="tooltip_firststart">Klik kanan disini atau tekan tombol {0}.</resource>
|
||||
<resource name="update_found">Versi baru Greenshot telah tersedia! Apakah anda ingin mengunduh Greenshot {0}?</resource>
|
||||
<resource name="wait_ie_capture">Harap tunggu ketika halaman Internet Explorer sedang ditangkap</resource>
|
||||
|
|
14
Greenshot/Languages/language-installer-uk-UA.xml
Normal file
14
Greenshot/Languages/language-installer-uk-UA.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<language description="Українська" ietf="uk-UA" version="1.0.0" languagegroup="5">
|
||||
<resources>
|
||||
<resource name="confluence">Плагін Confluence</resource>
|
||||
<resource name="externalcommand">Відкрити з плагіном зовнішніх команд</resource>
|
||||
<resource name="imgur">Плагін Imgur (див.: http://imgur.com)</resource>
|
||||
<resource name="jira">Плагін Jira</resource>
|
||||
<resource name="language">Додаткові мови</resource>
|
||||
<resource name="ocr">Плагін OCR (потребує Microsoft Office Document Imaging (MODI))</resource>
|
||||
<resource name="optimize">Оптимізація продуктивності, це може забрати час.</resource>
|
||||
<resource name="startgreenshot">Запустити {#ExeName}</resource>
|
||||
<resource name="startup">Запускати {#ExeName} під час запуску Windows</resource>
|
||||
</resources>
|
||||
</language>
|
|
@ -180,6 +180,7 @@ Verifica l'accesso in scrittura sulla destinazione di salvataggio.</resource>
|
|||
<resource name="printoptions_dontaskagain">Salva le opzioni come default, e non chiedere più</resource>
|
||||
<resource name="printoptions_inverted">Stampa con colori invertiti (negativo)</resource>
|
||||
<resource name="printoptions_printgrayscale">Forza stampa in scala di grigi</resource>
|
||||
<resource name="printoptions_printmonochrome">Forza stampa in bianco e nero</resource>
|
||||
<resource name="printoptions_timestamp">Stampa data / ora sul piede della pagina</resource>
|
||||
<resource name="printoptions_title">Opzioni di stampa di Greenshot</resource>
|
||||
<resource name="qualitydialog_dontaskagain">Save come qualità di default, e non chiedere più</resource>
|
||||
|
@ -244,6 +245,7 @@ corrente, es: 11_58_32 (più l'estensione definita nelle impostazioni)</resource
|
|||
<resource name="settings_registerhotkeys">Registra scorciatoie di tastiera</resource>
|
||||
<resource name="settings_showflashlight">Mostra torcia elettrica</resource>
|
||||
<resource name="settings_shownotify">Mostra le notifiche</resource>
|
||||
<resource name="settings_zoom">Mostra lente ingrandimento</resource>
|
||||
<resource name="settings_storagelocation">Destinaz. salvataggio</resource>
|
||||
<resource name="settings_title">Impostazioni</resource>
|
||||
<resource name="settings_tooltip_filenamepattern">Modello usato per generare il nome file in fase di salvataggio delle immagini</resource>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<resource name="about_icons">Iconen van de icon set van Yusuke Kamiyamane's Fugue (Creative Commons Attribution 3.0 license)</resource>
|
||||
<resource name="about_license">Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
|
||||
Greenshot komt zonder enige garantie! Dit is gratis software, en U kunt het distribueren onder bepaalde voorwaarden.
|
||||
Deteils over de GNU General Public License:</resource>
|
||||
Details over de GNU General Public License:</resource>
|
||||
<resource name="about_title">Over Greenshot</resource>
|
||||
<resource name="about_translation">Nederlandse vertaling door Jurjen Ladenius en Thomas Smid</resource>
|
||||
<resource name="application_title">Greenshot - de revolutionaire screenshot utility</resource>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<language description="Polski" ietf="pl-PL" version="1.0.0" languagegroup="2">
|
||||
<language description="Polski" ietf="pl-PL" version="1.1.4" languagegroup="2">
|
||||
<resources>
|
||||
<resource name="about_bugs">Tutaj proszę zgłaszać błędy:</resource>
|
||||
<resource name="about_donations">Jeśli podoba Ci się Greenshot, chętnie przyjmiemy Twoje wsparcie:</resource>
|
||||
|
@ -9,6 +9,7 @@
|
|||
Greenshot nie jest objęty JAKĄKOLWIEK GWARANCJĄ. Jako wolne oprogramowanie może być rozpowszechniany na określonych warunkach.
|
||||
Szczegóły na temat Powszechnej Licencji Publicznej GNU:</resource>
|
||||
<resource name="about_title">O Greenshot</resource>
|
||||
<resource name="about_translation">Polskie tłumaczenie: Paweł Matyja, piotrex (https://github.com/piotrex)</resource>
|
||||
<resource name="application_title">Greenshot - rewolucyjne narzędzie do zrzutów ekranu</resource>
|
||||
<resource name="bugreport_cancel">Zamknij</resource>
|
||||
<resource name="bugreport_info">Niestety, wystąpił nieoczekiwany błąd.
|
||||
|
@ -19,8 +20,15 @@ Odwiedź poniższy URL, utwórz nowy raport błędu i wstaw do pola opisu zawart
|
|||
Dodaj sensowne podsumowanie oraz wszelkie informacje, które uważasz za istotne do odtworzenia zaistniałej sytuacji.
|
||||
Będziemy wdzięczni, jeśli najpierw sprawdzisz, czy takie zdarzenie nie zostało już zarejestrowane. (Użyj wyszukiwarki, aby to zweryfikować.) Dziękujemy :)</resource>
|
||||
<resource name="bugreport_title">Błąd</resource>
|
||||
<resource name="CANCEL">Anuluj</resource>
|
||||
<resource name="clipboard_error">Podczas zapisu do schowka wystąpił nieprzewidziany błąd.</resource>
|
||||
<resource name="clipboard_inuse">Greenshot nie mógł dokonać zapisu do schowka, ponieważ proces {0} zablokował dostęp.</resource>
|
||||
<resource name="clipboard_noimage">Nie można odnaleźć obrazu ze schowka.</resource>
|
||||
<resource name="ClipboardFormat.BITMAP">Bitmapa Windows</resource>
|
||||
<resource name="ClipboardFormat.DIB">Bitmapa DIB</resource>
|
||||
<resource name="ClipboardFormat.HTML">HTML</resource>
|
||||
<resource name="ClipboardFormat.HTMLDATAURL">HTML z obrazami w kodzie</resource>
|
||||
<resource name="ClipboardFormat.PNG">PNG</resource>
|
||||
<resource name="colorpicker_alpha">Kanał alfa</resource>
|
||||
<resource name="colorpicker_apply">Zastosuj</resource>
|
||||
<resource name="colorpicker_blue">Niebieski</resource>
|
||||
|
@ -30,28 +38,50 @@ Będziemy wdzięczni, jeśli najpierw sprawdzisz, czy takie zdarzenie nie zosta
|
|||
<resource name="colorpicker_red">Czerwony</resource>
|
||||
<resource name="colorpicker_title">Pobieranie koloru</resource>
|
||||
<resource name="colorpicker_transparent">Przezroczysty</resource>
|
||||
<resource name="com_rejected">Miejsce zapisu {0} nie pozwala Greenshotowi uzyskać dostęp, prawdopodobnie przez otwarte okno. Zamknij okno i spróbuj ponownie.</resource>
|
||||
<resource name="com_rejected_title">Greenshot nie może uzyskać dostępu</resource>
|
||||
<resource name="config_unauthorizedaccess_write">Nie powiódł się zapis pliku konfiguracyjnego Greenshota. Proszę sprawdzić uprawnienia dostępu dla {0}.</resource>
|
||||
<resource name="contextmenu_about">O Greenshot</resource>
|
||||
<resource name="contextmenu_capturearea">Zrzuć obszar</resource>
|
||||
<resource name="contextmenu_captureclipboard">Otwórz obraz ze schowka</resource>
|
||||
<resource name="contextmenu_capturefullscreen">Zrzuć pełny ekran</resource>
|
||||
<resource name="contextmenu_capturefullscreen_all">całość</resource>
|
||||
<resource name="contextmenu_capturefullscreen_bottom">od dołu</resource>
|
||||
<resource name="contextmenu_capturefullscreen_left">od lewej</resource>
|
||||
<resource name="contextmenu_capturefullscreen_right">od prawej</resource>
|
||||
<resource name="contextmenu_capturefullscreen_top">od góry</resource>
|
||||
<resource name="contextmenu_captureie">Przechwyć Internet Explorer</resource>
|
||||
<resource name="contextmenu_captureiefromlist">Przechwyć Internet Explorer z listy</resource>
|
||||
<resource name="contextmenu_capturelastregion">Zrzuć poprzedni obszar</resource>
|
||||
<resource name="contextmenu_capturewindow">Zrzuć okno</resource>
|
||||
<resource name="contextmenu_capturewindowfromlist">Przechwyć okno z listy</resource>
|
||||
<resource name="contextmenu_donate">Wsparcie Greenshota</resource>
|
||||
<resource name="contextmenu_exit">Wyjście</resource>
|
||||
<resource name="contextmenu_help">Pomoc</resource>
|
||||
<resource name="contextmenu_openfile">Otwórz obraz z pliku</resource>
|
||||
<resource name="contextmenu_openrecentcapture">Otwórz ostatnią lokalizację zapisu</resource>
|
||||
<resource name="contextmenu_quicksettings">Szybki dostęp do opcji</resource>
|
||||
<resource name="contextmenu_settings">Preferencje...</resource>
|
||||
<resource name="destination_exportfailed">Błąd podczas eksportowania do {0}. Proszę spróbować później.</resource>
|
||||
<resource name="editor_align_bottom">Do dołu</resource>
|
||||
<resource name="editor_align_center">Wyśrodkowane</resource>
|
||||
<resource name="editor_align_horizontal">Wyrównanie w poziomie</resource>
|
||||
<resource name="editor_align_left">Do lewej</resource>
|
||||
<resource name="editor_align_middle">Do środka</resource>
|
||||
<resource name="editor_align_right">Do prawej</resource>
|
||||
<resource name="editor_align_top">Do góry</resource>
|
||||
<resource name="editor_align_vertical">Wyrównanie w pionie</resource>
|
||||
<resource name="editor_arrange">Zmień rozmieszczenie</resource>
|
||||
<resource name="editor_arrowheads">Groty strzałki</resource>
|
||||
<resource name="editor_arrowheads_both">Oba</resource>
|
||||
<resource name="editor_arrowheads_end">Końcowy</resource>
|
||||
<resource name="editor_arrowheads_none">Żaden</resource>
|
||||
<resource name="editor_arrowheads_start">Początkowy</resource>
|
||||
<resource name="editor_autocrop">Przytnij automatycznie</resource>
|
||||
<resource name="editor_backcolor">Kolor wypełnienia</resource>
|
||||
<resource name="editor_blur_radius">Promień rozmycia</resource>
|
||||
<resource name="editor_bold">Pogrubienie</resource>
|
||||
<resource name="editor_border">Obramowanie</resource>
|
||||
<resource name="editor_brightness">Jaskrawość</resource>
|
||||
<resource name="editor_cancel">Anuluj</resource>
|
||||
<resource name="editor_clipboardfailed">Błąd przy próbie dostępu do schowka. Spróbuj ponownie.</resource>
|
||||
|
@ -70,25 +100,36 @@ Będziemy wdzięczni, jeśli najpierw sprawdzisz, czy takie zdarzenie nie zosta
|
|||
<resource name="editor_downtobottom">Na sam dół</resource>
|
||||
<resource name="editor_drawarrow">Rysuj strzałkę (A)</resource>
|
||||
<resource name="editor_drawellipse">Rysuj elipsę (E)</resource>
|
||||
<resource name="editor_drawfreehand">Rysuj odręcznie (F)</resource>
|
||||
<resource name="editor_drawhighlighter">Uwydatnienie (H)</resource>
|
||||
<resource name="editor_drawline">Rysuj linię (L)</resource>
|
||||
<resource name="editor_drawrectangle">Rysuj prostokąt (R)</resource>
|
||||
<resource name="editor_drawtextbox">Dodaj pole tekstowe (T)</resource>
|
||||
<resource name="editor_dropshadow_darkness">Intensywność cienia</resource>
|
||||
<resource name="editor_dropshadow_offset">Przesunięcie cienia</resource>
|
||||
<resource name="editor_dropshadow_settings">Ustawienia cienia</resource>
|
||||
<resource name="editor_dropshadow_thickness">Intensywność cienia</resource>
|
||||
<resource name="editor_duplicate">Duplikuj wybrany element</resource>
|
||||
<resource name="editor_edit">Edycja</resource>
|
||||
<resource name="editor_effects">Efekty</resource>
|
||||
<resource name="editor_email">Wyślij e-mailem</resource>
|
||||
<resource name="editor_file">Plik</resource>
|
||||
<resource name="editor_fontsize">Rozmiar</resource>
|
||||
<resource name="editor_forecolor">Kolor linii</resource>
|
||||
<resource name="editor_grayscale">Skala szarości</resource>
|
||||
<resource name="editor_highlight_area">Uwydatnienie obszaru</resource>
|
||||
<resource name="editor_highlight_grayscale">Wyszarzenie</resource>
|
||||
<resource name="editor_highlight_magnify">Powiększenie</resource>
|
||||
<resource name="editor_highlight_mode">Tryb uwydatnienia</resource>
|
||||
<resource name="editor_highlight_text">Uwydatnienie tekstu</resource>
|
||||
<resource name="editor_image_shadow">Rzuć cień</resource>
|
||||
<resource name="editor_imagesaved">Obraz został zapisany w {0}.</resource>
|
||||
<resource name="editor_insertwindow">Wklej okno</resource>
|
||||
<resource name="editor_invert">Negatyw</resource>
|
||||
<resource name="editor_italic">Pochylenie</resource>
|
||||
<resource name="editor_load_objects">Załaduj obiekty z pliku</resource>
|
||||
<resource name="editor_magnification_factor">Współczynnik powiększenia</resource>
|
||||
<resource name="editor_match_capture_size">Dopasowuj wielkość zrzutów</resource>
|
||||
<resource name="editor_obfuscate">Zamglenie (O)</resource>
|
||||
<resource name="editor_obfuscate_blur">Rozmywanie</resource>
|
||||
<resource name="editor_obfuscate_mode">Tryb zamglenia</resource>
|
||||
|
@ -99,18 +140,32 @@ Będziemy wdzięczni, jeśli najpierw sprawdzisz, czy takie zdarzenie nie zosta
|
|||
<resource name="editor_pixel_size">Rozmiar piksela</resource>
|
||||
<resource name="editor_preview_quality">Jakość podglądu</resource>
|
||||
<resource name="editor_print">Drukuj</resource>
|
||||
<resource name="editor_redo">Cofnij {0}</resource>
|
||||
<resource name="editor_resetsize">Domyślny rozmiar</resource>
|
||||
<resource name="editor_resize_percent">Procent</resource>
|
||||
<resource name="editor_resize_pixel">Pikseli</resource>
|
||||
<resource name="editor_rotateccw">Obróć w lewo (Ctrl + ,)</resource>
|
||||
<resource name="editor_rotatecw">Obróć w prawo (Ctrl + .)</resource>
|
||||
<resource name="editor_save">Zapisz</resource>
|
||||
<resource name="editor_save_objects">Zapisz obiekty do pliku</resource>
|
||||
<resource name="editor_saveas">Zapisz jako...</resource>
|
||||
<resource name="editor_selectall">Zaznacz wszystko</resource>
|
||||
<resource name="editor_senttoprinter">Zadanie drukowania zostało wysłane do '{0}'.</resource>
|
||||
<resource name="editor_shadow">Cień</resource>
|
||||
<resource name="editor_image_shadow">Cień</resource>
|
||||
<resource name="editor_storedtoclipboard">Obraz został zapisany w schowku.</resource>
|
||||
<resource name="editor_thickness">Grubość linii</resource>
|
||||
<resource name="editor_title">Greenshot - edytor obrazów</resource>
|
||||
<resource name="editor_torn_edge">Poszarpane krawędzie</resource>
|
||||
<resource name="editor_tornedge_horizontaltoothrange">Poziomy zasięg poszarpania</resource>
|
||||
<resource name="editor_tornedge_settings">Ustawienia poszarpanych krawędzi</resource>
|
||||
<resource name="editor_tornedge_toothsize">Rozmiar poszarpania</resource>
|
||||
<resource name="editor_tornedge_verticaltoothrange">Pionowy zasięg poszarpania</resource>
|
||||
<resource name="editor_undo">Cofnij {0}</resource>
|
||||
<resource name="editor_uponelevel">Jeden poziom w górę</resource>
|
||||
<resource name="editor_uptotop">Na samą górę</resource>
|
||||
<resource name="EmailFormat.MAPI">Klient MAPI</resource>
|
||||
<resource name="EmailFormat.OUTLOOK_HTML">Outlook z HTML</resource>
|
||||
<resource name="EmailFormat.OUTLOOK_TXT">Outlook z tekstem</resource>
|
||||
<resource name="error">Błąd</resource>
|
||||
<resource name="error_multipleinstances">Instancja aplikacji Greenshot jest już uruchomiona.</resource>
|
||||
<resource name="error_nowriteaccess">Nie można wykonać zapisu do {0}.
|
||||
|
@ -118,26 +173,50 @@ Sprawdź możliwość zapisu w wybranej lokalizacji.</resource>
|
|||
<resource name="error_openfile">Nie można otworzyć pliku {0}.</resource>
|
||||
<resource name="error_openlink">Nie można otworzyć odsyłacza.</resource>
|
||||
<resource name="error_save">Nie można zapisać zrzutu ekranu, proszę wskazać bardziej odpowiednią lokalizację.</resource>
|
||||
<resource name="expertsettings">Ekspert</resource>
|
||||
<resource name="expertsettings_autoreducecolors">Twórz obraz 8-bitowy, kiedy kolorów jest mniej niż 256, gdy ma się do czynienia z obrazem > 8-bitowym</resource>
|
||||
<resource name="expertsettings_checkunstableupdates">Sprawdzaj niestabilne wersje</resource>
|
||||
<resource name="expertsettings_clipboardformats">Formaty schowka</resource>
|
||||
<resource name="expertsettings_counter">Numer dla ${NUM} we wzorcu nazwy pliku</resource>
|
||||
<resource name="expertsettings_enableexpert">Wiem, co robię!</resource>
|
||||
<resource name="expertsettings_footerpattern">Wzorzec stopki wydruku</resource>
|
||||
<resource name="expertsettings_minimizememoryfootprint">Minimalizuj użycie pamięci kosztem wydajności (nie polecane)</resource>
|
||||
<resource name="expertsettings_optimizeforrdp">Optymalizacje korzystania z programu w zdalnym pulpicie</resource>
|
||||
<resource name="expertsettings_reuseeditorifpossible">Korzystaj ponownie z edytora, kiedy to tylko możliwe</resource>
|
||||
<resource name="expertsettings_suppresssavedialogatclose">Nie pytaj o zapisywanie przy zamykaniu edytora</resource>
|
||||
<resource name="expertsettings_thumbnailpreview">Pokazuj miniaturki oknien w menu kontekstowym (Vista i Win 7)</resource>
|
||||
<resource name="exported_to">Wyeksportowano do: {0}</resource>
|
||||
<resource name="exported_to_error">Wystąpił błąd przy eksportowaniu do {0}:</resource>
|
||||
<resource name="help_title">Greenshot - pomoc</resource>
|
||||
<resource name="hotkeys">Skróty klawiszowe</resource>
|
||||
<resource name="jpegqualitydialog_choosejpegquality">Proszę wybrać poziom jakości dla pliku JPEG.</resource>
|
||||
<resource name="jpegqualitydialog_dontaskagain">Zapisz jako domyślny poziom jakości JPEG i nie pytaj ponownie</resource>
|
||||
<resource name="jpegqualitydialog_title">Greenshot - jakość JPEG</resource>
|
||||
<resource name="OK">OK</resource>
|
||||
<resource name="print_error">Podczas próby wydruku wystąpił błąd.</resource>
|
||||
<resource name="printoptions_allowcenter">Wycentruj wydruk na stronie</resource>
|
||||
<resource name="printoptions_allowenlarge">Powiększ wydruk do rozmiaru papieru</resource>
|
||||
<resource name="printoptions_allowrotate">Obróć wydruk odpowiednio do ułożenia strony</resource>
|
||||
<resource name="printoptions_allowshrink">Pomniejsz wydruk do rozmiaru papieru</resource>
|
||||
<resource name="printoptions_colors">Ustawienia kolorów</resource>
|
||||
<resource name="printoptions_dontaskagain">Zapisz opcje jako domyślne i nie pytaj ponownie</resource>
|
||||
<resource name="printoptions_inverted">Drukuj z odwóconymi kolorami</resource>
|
||||
<resource name="printoptions_layout">Ustawienia strony</resource>
|
||||
<resource name="printoptions_printcolor">Drukowanie w pełnych kolorach</resource>
|
||||
<resource name="printoptions_printgrayscale">Wymuś drukowanie w skali szarości</resource>
|
||||
<resource name="printoptions_printmonochrome">Wymuś drukowanie czarno-białe</resource>
|
||||
<resource name="printoptions_timestamp">Drukuj datę/czas u dołu strony</resource>
|
||||
<resource name="printoptions_title">Greenshot - opcje drukowania</resource>
|
||||
<resource name="qualitydialog_dontaskagain">Ustaw jakość jako domyślną i nie pytaj już więcej</resource>
|
||||
<resource name="qualitydialog_title">Jakość zrzutu</resource>
|
||||
<resource name="quicksettings_destination_file">Zapisz bezpośrednio (używając ustawień dla pliku wyjściowego)</resource>
|
||||
<resource name="settings_alwaysshowjpegqualitydialog">Pokazuj okno ustawień jakości JPEG przy każdym zapisie obrazu</resource>
|
||||
<resource name="settings_alwaysshowprintoptionsdialog">Pokazuj okno opcji wydruku przy każdej próbie wydruku obrazu</resource>
|
||||
<resource name="settings_alwaysshowqualitydialog">Wybieraj jakość przy każdym zapisie obrazu</resource>
|
||||
<resource name="settings_applicationsettings">Ustawienia aplikacji</resource>
|
||||
<resource name="settings_autostartshortcut">Uruchom Greenshot podczas startu systemu</resource>
|
||||
<resource name="settings_capture">Zrzucanie ekranu</resource>
|
||||
<resource name="settings_capture_mousepointer">Zrzucaj wskaźnik myszy</resource>
|
||||
<resource name="settings_capture_windows_interactive">Tryb interaktywnego zrzucania okna</resource>
|
||||
<resource name="settings_checkperiod">Co ile dni sprawdzać aktualizacje (0 = nie sprawdzaj)</resource>
|
||||
<resource name="settings_configureplugin">Konfiguracja</resource>
|
||||
<resource name="settings_copypathtoclipboard">Kopiuj ścieżkę pliku do schowka przy każdym zapisie obrazu</resource>
|
||||
<resource name="settings_destination">Miejsce zrzutu ekranu</resource>
|
||||
<resource name="settings_destination_clipboard">Kopiuj do schowka</resource>
|
||||
|
@ -145,37 +224,48 @@ Sprawdź możliwość zapisu w wybranej lokalizacji.</resource>
|
|||
<resource name="settings_destination_email">Wyślij e-mailem</resource>
|
||||
<resource name="settings_destination_file">Zapisz bezpośrednio (wg ustawień poniżej)</resource>
|
||||
<resource name="settings_destination_fileas">Zapisz jako (z oknem dialogowym)</resource>
|
||||
<resource name="settings_destination_picker">Wybieraj miejsce dynamicznie</resource>
|
||||
<resource name="settings_destination_printer">Wyślij do drukarki</resource>
|
||||
<resource name="settings_editor">Edytor</resource>
|
||||
<resource name="settings_filenamepattern">Szablon nazwy pliku</resource>
|
||||
<resource name="settings_general">Ogólne</resource>
|
||||
<resource name="settings_iecapture">Przechwytywanie Internet Explorera</resource>
|
||||
<resource name="settings_jpegquality">Jakość JPEG</resource>
|
||||
<resource name="settings_jpegsettings">Ustawienia JPEG</resource>
|
||||
<resource name="settings_language">Język</resource>
|
||||
<resource name="settings_message_filenamepattern">Wzorce symboliczne w zdefiniowanych szablonach zostaną zastąpione automatycznie:
|
||||
${YYYY} - rok, 4 cyfry
|
||||
${MM} - miesiąc, 2 cyfry
|
||||
${DD} - dzień, 2 cyfry
|
||||
${hh} - godzina, 2 cyfry
|
||||
${mm} - minuta, 2 cyfry
|
||||
${ss} - sekunda, 2 cyfry
|
||||
${NUM} - liczba zwiększana o 1 (autonumeracja), 6 cyfr
|
||||
${title} - tytuł okna
|
||||
${user} - zalogowany użytkownik
|
||||
${domain} - nazwa domeny
|
||||
${hostname} - nazwa komputera
|
||||
%YYYY% - rok, 4 cyfry
|
||||
%MM% - miesiąc, 2 cyfry
|
||||
%DD% - dzień, 2 cyfry
|
||||
%hh% - godzina, 2 cyfry
|
||||
%mm% - minuta, 2 cyfry
|
||||
%ss% - sekunda, 2 cyfry
|
||||
%NUM% - liczba zwiększana o 1 (autonumeracja), 6 cyfr
|
||||
%title% - tytuł okna
|
||||
%user% - zalogowany użytkownik
|
||||
%domain% - nazwa domeny
|
||||
%hostname% - nazwa komputera
|
||||
|
||||
Możliwe jest także dynamiczne tworzenie folderów - wystarczy użyć znaku odwrotnego ukośnika (\) do rozdzielenia nazw folderów i plików.
|
||||
Przykład: szablon ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
|
||||
Przykład: szablon %YYYY%-%MM%-%DD%\%hh%-%mm%-%ss%
|
||||
utworzy w domyślnym miejscu zapisu folder dla bieżącego dnia, np. 2008-06-29, a nazwy plików ze zrzutami ekranu będą tworzone
|
||||
na podstawie bieżącego czasu, np. 11-58-32 (plus rozszerzenie zdefiniowane w ustawieniach).</resource>
|
||||
<resource name="settings_output">Wyjście</resource>
|
||||
<resource name="settings_network">Śieć i aktualizacje</resource>
|
||||
<resource name="settings_output">Plik wyjściowy</resource>
|
||||
<resource name="settings_playsound">Odtwarzaj dźwięk migawki aparatu</resource>
|
||||
<resource name="settings_plugins">Wtyczki</resource>
|
||||
<resource name="settings_plugins_createdby">Stworzone przez</resource>
|
||||
<resource name="settings_plugins_dllpath">Ścieżka do DLL</resource>
|
||||
<resource name="settings_plugins_name">Nazwa</resource>
|
||||
<resource name="settings_plugins_version">Wersja</resource>
|
||||
<resource name="settings_preferredfilesettings">Preferowane ustawienia pliku wyjściowego</resource>
|
||||
<resource name="settings_primaryimageformat">Format obrazu</resource>
|
||||
<resource name="settings_printer">Drukarka</resource>
|
||||
<resource name="settings_printoptions">Opcje drukowania</resource>
|
||||
<resource name="settings_qualitysettings">Ustawienia jakości</resource>
|
||||
<resource name="settings_reducecolors">Redukuj liczbę kolorów maksymalnie do 256</resource>
|
||||
<resource name="settings_registerhotkeys">Zarejestruj skróty klawiaturowe</resource>
|
||||
<resource name="settings_showflashlight">Pokazuj błysk flesza</resource>
|
||||
<resource name="settings_shownotify">Pokazuj powiadomienia</resource>
|
||||
<resource name="settings_storagelocation">Miejsce zapisu</resource>
|
||||
<resource name="settings_title">Ustawienia</resource>
|
||||
<resource name="settings_tooltip_filenamepattern">Szablon używany do tworzenia nazw plików podczas zapisywania zrzutów ekranu</resource>
|
||||
|
@ -183,12 +273,23 @@ na podstawie bieżącego czasu, np. 11-58-32 (plus rozszerzenie zdefiniowane w u
|
|||
<resource name="settings_tooltip_primaryimageformat">Domyślny format pliku graficznego ze zrzutem ekranu</resource>
|
||||
<resource name="settings_tooltip_registerhotkeys">Określa, czy skróty klawiaturowe Print, Ctrl + Print, Alt + Print są zarezerwowane do globalnego użytku przez Greenshot od chwili jego uruchomienia aż do momentu zamknięcia.</resource>
|
||||
<resource name="settings_tooltip_storagelocation">Domyślne miejsce zapisywania zrzutów ekranu (pozostaw puste, aby zapis odbywał się na pulpit)</resource>
|
||||
<resource name="settings_usedefaultproxy">Używaj domyślnego proxy</resource>
|
||||
<resource name="settings_visualization">Efekty</resource>
|
||||
<resource name="settings_waittime">milisekund oczekiwania przed wykonaniem zrzutu ekranu</resource>
|
||||
<resource name="settings_window_capture_mode">Styl obramowania okien</resource>
|
||||
<resource name="settings_windowscapture">Przechwytywanie okna</resource>
|
||||
<resource name="settings_zoom">Pokazuj przybliżenie</resource>
|
||||
<resource name="tooltip_firststart">Kliknij prawym klawiszem myszy lub naciśnij klawisz Print.</resource>
|
||||
<resource name="update_found">Jest dostępna nowa wersja Greenshot! Chcesz pobrać Greenshot {0}?</resource>
|
||||
<resource name="wait_ie_capture">Proszę czekać aż strona Internet Explorera zostanie przechwycona...</resource>
|
||||
<resource name="warning">Ostrzeżenie</resource>
|
||||
<resource name="warning_hotkeys">Nie udało się zarejestrować jednego lub kilku skrótów klawiaturowych. Z tego powodu używanie skrótów klawiaturowych Greenshota może nie być możliwe.
|
||||
Przyczyną problemu może być wykorzystywanie tych samych skrótów klawiaturowych przez inną aplikację.
|
||||
Proszę wyłączyć oprogramowanie korzystające z klawisza Print. Możliwe jest również zwyczajne korzystanie ze wszystkich funkcji Greenshota za pomocą menu kontekstowego ikony w obszarze powiadomień na pasku zadań.</resource>
|
||||
<resource name="WindowCaptureMode.Aero">Używaj własnego koloru</resource>
|
||||
<resource name="WindowCaptureMode.AeroTransparent">Bez przezroczystości</resource>
|
||||
<resource name="WindowCaptureMode.Auto">Automatycznie</resource>
|
||||
<resource name="WindowCaptureMode.GDI">Używaj domyślnego koloru</resource>
|
||||
<resource name="WindowCaptureMode.Screen">Tak jak wyświetlane</resource>
|
||||
</resources>
|
||||
</language>
|
|
@ -266,6 +266,7 @@ ${hostname} Имя ПК
|
|||
<resource name="settings_registerhotkeys">Регистрация горячих клавиш</resource>
|
||||
<resource name="settings_showflashlight">Показывать вспышку</resource>
|
||||
<resource name="settings_shownotify">Показывать уведомления</resource>
|
||||
<resource name="settings_zoom">Показать лупу</resource>
|
||||
<resource name="settings_storagelocation">Место хранения</resource>
|
||||
<resource name="settings_title">Настройки</resource>
|
||||
<resource name="settings_tooltip_filenamepattern">Шаблон, используемый для создания имён файлов при сохранении скриншотов</resource>
|
||||
|
|
|
@ -5,10 +5,10 @@
|
|||
<resource name="home_headline">Greenshot — безкоштовний інструмент для створення знімків екрану, оптимізований для покращення продуктивності</resource>
|
||||
<resource name="home_opensource">Greenshot безкоштовний і з відкритим кодом</resource>
|
||||
<resource name="home_opensource_donate">Якщо Вам здається, що Greenshot зберігає чимало Вашого часу та/або грошей, Ви можете <a href="/support/">підтримати розробку</a> цього програмного забезпечення для створення знімків екрану.</resource>
|
||||
<resource name="home_opensource_gpl">Greenshot розповсюджується відповідно до <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" target="_blank">GPL</a>, тобто це програмне забезпечення можна вільно завантажувати та використовувати навіть з комерційною метою.</resource>
|
||||
<resource name="home_opensource_gpl">Greenshot розповсюджується відповідно до <a href="http://uk.wikipedia.org/wiki/GNU_General_Public_License" target="_blank">GPL</a>, тобто це програмне забезпечення можна вільно завантажувати та використовувати навіть з комерційною метою.</resource>
|
||||
<resource name="home_seemore">Хочете побачити більше?</resource>
|
||||
<resource name="home_seemore_screenshots">Звісно, Greenshot може зробити для Вас набагато більше. Подивіться кілька <a href="/screenshots/">знімків</a> Greenshot у дії та спробуйте <a href="/downloads/">останній реліз</a>.</resource>
|
||||
<resource name="home_whatis">Що таке Greenshot?</resource>
|
||||
<resource name="home_seemore_screenshots">Звісно, Greenshot може зробити для Вас набагато більше. Подивіться кілька <a title="Знімки Greenshot у дії" href="/screenshots/">знімків</a> Greenshot у дії та спробуйте <a title="Завантажити найновішу стабільну версію Greenshot" href="/downloads/">останній реліз</a>.</resource>
|
||||
<resource name="home_whatis">Що таке Greenshot???</resource>
|
||||
<resource name="home_whatis_create">Швидке створення знімків вибраної області, вікна або всього екрану; Ви навіть можете захоплювати всю (з прокручуванням) Інтернет-сторінку в Internet Explorer.</resource>
|
||||
<resource name="home_whatis_edit">Легке коментування, підсвічування або виділення частин знімку.</resource>
|
||||
<resource name="home_whatis_intro">Greenshot — це невеличка програма для створення знімків екрану для Windows з такими основними можливостями:</resource>
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<language description="正體中文" ietf="zh-TW" version="1.0.0" languagegroup="9">
|
||||
<language description="正體中文" ietf="zh-TW" version="1.1.4" languagegroup="9">
|
||||
<resources>
|
||||
<resource name="about_bugs">如果發現任何錯誤, 請回報到以下網址</resource>
|
||||
<resource name="about_bugs">請回報錯誤到以下網址</resource>
|
||||
<resource name="about_donations">如果您喜歡 Greenshot,歡迎您支持我們:</resource>
|
||||
<resource name="about_host">Greenshot 的主機在 sourceforge.net 網址是</resource>
|
||||
<resource name="about_icons">圖片來源: Yusuke Kamiyamane's Fugue icon set (Creative Commons Attribution 3.0 授權)</resource>
|
||||
<resource name="about_icons">圖片來源: Yusuke Kamiyamane's Fugue 圖示集 (Creative Commons Attribution 3.0 授權)</resource>
|
||||
<resource name="about_license">Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom
|
||||
Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您可以在 GNU 通用公共授權下任意散佈本軟體。
|
||||
關於 GNU 通用公共授權詳細資料:</resource>
|
||||
Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體,您可以在 GNU General Public License 下任意散佈本軟體。
|
||||
關於GNU General Public License 詳細資料:</resource>
|
||||
<resource name="about_title">關於 Greenshot</resource>
|
||||
<resource name="application_title">Greenshot - 革命性的截圖工具</resource>
|
||||
<resource name="application_title">Greenshot - 革命性的螢幕截圖工具</resource>
|
||||
<resource name="bugreport_cancel">關閉</resource>
|
||||
<resource name="bugreport_info">很抱歉,發生未預期錯誤。
|
||||
|
||||
您可以藉由填寫錯誤回報來協助我們修正錯誤。
|
||||
請點擊以下的連結, 新增一個錯誤報告並將下面文字方塊中的資訊貼到報告的內容中,並請稍微敘述錯誤發生時的情況。
|
||||
請訪問以下的連結,新增一個錯誤報告並將下方文字方塊中的資訊貼到報告的內容中,並請稍微敘述錯誤發生時的情況。
|
||||
|
||||
另外, 我們強烈建議您在站內搜尋一下是否已經有人回報此錯誤。
|
||||
另外,我們強烈建議您在站內搜尋一下是否已經有人回報此錯誤。
|
||||
感謝您 :)</resource>
|
||||
<resource name="bugreport_title">錯誤</resource>
|
||||
<resource name="CANCEL">取消</resource>
|
||||
|
@ -39,10 +39,10 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
|
|||
<resource name="colorpicker_transparent">透明</resource>
|
||||
<resource name="com_rejected">目的地 {0} 拒絕 Greenshot 存取,可能已開啟對話方塊。 關閉對話方塊並重試。</resource>
|
||||
<resource name="com_rejected_title">拒絕 Greenshot 存取</resource>
|
||||
<resource name="config_unauthorizedaccess_write">無法儲存 Greenshot 的組態檔,請檢查 '{0}' 的存取權限。</resource>
|
||||
<resource name="config_unauthorizedaccess_write">無法儲存 Greenshot 的組態檔,請檢查「{0}」的存取權限。</resource>
|
||||
<resource name="contextmenu_about">關於 Greenshot</resource>
|
||||
<resource name="contextmenu_capturearea">擷取區域</resource>
|
||||
<resource name="contextmenu_captureclipboard">從剪貼簿載入圖片</resource>
|
||||
<resource name="contextmenu_captureclipboard">從剪貼簿開啟圖片</resource>
|
||||
<resource name="contextmenu_capturefullscreen">擷取全螢幕</resource>
|
||||
<resource name="contextmenu_capturefullscreen_all">全部</resource>
|
||||
<resource name="contextmenu_capturefullscreen_bottom">下</resource>
|
||||
|
@ -59,9 +59,9 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
|
|||
<resource name="contextmenu_help">說明</resource>
|
||||
<resource name="contextmenu_openfile">從檔案開啟圖片</resource>
|
||||
<resource name="contextmenu_openrecentcapture">開啟上次擷取位置</resource>
|
||||
<resource name="contextmenu_quicksettings">快速設定</resource>
|
||||
<resource name="contextmenu_quicksettings">快速喜好設定</resource>
|
||||
<resource name="contextmenu_settings">喜好設定...</resource>
|
||||
<resource name="destination_exportfailed">匯出到 {0} 時錯誤。 請重試。</resource>
|
||||
<resource name="destination_exportfailed">匯出到 {0} 時錯誤,請重試。</resource>
|
||||
<resource name="editor_align_bottom">靠下</resource>
|
||||
<resource name="editor_align_center">垂直置中</resource>
|
||||
<resource name="editor_align_horizontal">水平對齊</resource>
|
||||
|
@ -77,7 +77,7 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
|
|||
<resource name="editor_arrowheads_none">無</resource>
|
||||
<resource name="editor_arrowheads_start">起點</resource>
|
||||
<resource name="editor_autocrop">自動裁剪</resource>
|
||||
<resource name="editor_backcolor">填滿顏色</resource>
|
||||
<resource name="editor_backcolor">填色</resource>
|
||||
<resource name="editor_blur_radius">模糊半徑</resource>
|
||||
<resource name="editor_bold">粗體</resource>
|
||||
<resource name="editor_border">框線</resource>
|
||||
|
@ -91,7 +91,7 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
|
|||
<resource name="editor_copyimagetoclipboard">複製圖片到剪貼簿</resource>
|
||||
<resource name="editor_copypathtoclipboard">複製路徑到剪貼簿</resource>
|
||||
<resource name="editor_copytoclipboard">複製</resource>
|
||||
<resource name="editor_crop">裁切 (C)</resource>
|
||||
<resource name="editor_crop">裁剪 (C)</resource>
|
||||
<resource name="editor_cursortool">選取工具 (ESC)</resource>
|
||||
<resource name="editor_cuttoclipboard">剪下</resource>
|
||||
<resource name="editor_deleteelement">刪除</resource>
|
||||
|
@ -100,12 +100,12 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
|
|||
<resource name="editor_drawarrow">繪製箭頭 (A)</resource>
|
||||
<resource name="editor_drawellipse">繪製橢圓 (E)</resource>
|
||||
<resource name="editor_drawfreehand">自由繪製 (F)</resource>
|
||||
<resource name="editor_drawhighlighter">醒目標示 (H)</resource>
|
||||
<resource name="editor_drawhighlighter">標示 (H)</resource>
|
||||
<resource name="editor_drawline">繪製直線 (L)</resource>
|
||||
<resource name="editor_drawrectangle">繪製矩形 (R)</resource>
|
||||
<resource name="editor_drawtextbox">加入文字 (T)</resource>
|
||||
<resource name="editor_drawtextbox">加入文字方塊 (T)</resource>
|
||||
<resource name="editor_dropshadow_darkness">陰影黑暗</resource>
|
||||
<resource name="editor_dropshadow_offset">陰影位移</resource>
|
||||
<resource name="editor_dropshadow_offset">陰影偏移</resource>
|
||||
<resource name="editor_dropshadow_settings">陰影設定</resource>
|
||||
<resource name="editor_dropshadow_thickness">陰影厚度</resource>
|
||||
<resource name="editor_duplicate">複製選取的元素</resource>
|
||||
|
@ -114,7 +114,7 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
|
|||
<resource name="editor_email">電子郵件</resource>
|
||||
<resource name="editor_file">檔案</resource>
|
||||
<resource name="editor_fontsize">大小</resource>
|
||||
<resource name="editor_forecolor">線段色彩</resource>
|
||||
<resource name="editor_forecolor">直線色彩</resource>
|
||||
<resource name="editor_grayscale">灰階</resource>
|
||||
<resource name="editor_highlight_area">標示區域</resource>
|
||||
<resource name="editor_highlight_grayscale">灰階</resource>
|
||||
|
@ -139,39 +139,39 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
|
|||
<resource name="editor_pixel_size">像素大小</resource>
|
||||
<resource name="editor_preview_quality">預覽品質</resource>
|
||||
<resource name="editor_print">列印</resource>
|
||||
<resource name="editor_redo">復原 {0}</resource>
|
||||
<resource name="editor_redo">重做 {0}</resource>
|
||||
<resource name="editor_resetsize">重設大小</resource>
|
||||
<resource name="editor_resize_percent">百分比</resource>
|
||||
<resource name="editor_resize_pixel">像素</resource>
|
||||
<resource name="editor_rotateccw">逆時針旋轉</resource>
|
||||
<resource name="editor_rotatecw">順時針旋轉</resource>
|
||||
<resource name="editor_rotateccw">逆時針旋轉 (Ctrl + ,)</resource>
|
||||
<resource name="editor_rotatecw">順時針旋轉 (Ctrl + .)</resource>
|
||||
<resource name="editor_save">儲存</resource>
|
||||
<resource name="editor_save_objects">儲存物件到檔案</resource>
|
||||
<resource name="editor_saveas">另存新檔...</resource>
|
||||
<resource name="editor_selectall">全選</resource>
|
||||
<resource name="editor_senttoprinter">已使用 '{0}' 來進行列印工作。</resource>
|
||||
<resource name="editor_senttoprinter">列印工作已傳送到「{0}」。</resource>
|
||||
<resource name="editor_shadow">陰影</resource>
|
||||
<resource name="editor_storedtoclipboard">圖片已儲存到剪貼簿.</resource>
|
||||
<resource name="editor_thickness">線段粗細</resource>
|
||||
<resource name="editor_storedtoclipboard">圖片已儲存到剪貼簿。</resource>
|
||||
<resource name="editor_thickness">直線粗細</resource>
|
||||
<resource name="editor_title">Greenshot 圖片編輯器</resource>
|
||||
<resource name="editor_torn_edge">撕裂邊緣</resource>
|
||||
<resource name="editor_tornedge_horizontaltoothrange">水平撕裂範圍</resource>
|
||||
<resource name="editor_tornedge_horizontaltoothrange">水平鋸齒範圍</resource>
|
||||
<resource name="editor_tornedge_settings">撕裂邊緣設定</resource>
|
||||
<resource name="editor_tornedge_toothsize">撕裂大小</resource>
|
||||
<resource name="editor_tornedge_verticaltoothrange">垂直撕裂範圍</resource>
|
||||
<resource name="editor_tornedge_toothsize">鋸齒大小</resource>
|
||||
<resource name="editor_tornedge_verticaltoothrange">垂直鋸齒範圍</resource>
|
||||
<resource name="editor_undo">復原 {0}</resource>
|
||||
<resource name="editor_uponelevel">上移一層</resource>
|
||||
<resource name="editor_uptotop">移到最上層</resource>
|
||||
<resource name="EmailFormat.MAPI">MAPI 用戶端</resource>
|
||||
<resource name="EmailFormat.OUTLOOK_HTML">使用 HTML 的 Outlook</resource>
|
||||
<resource name="EmailFormat.OUTLOOK_TXT">使用文字的 Outlook</resource>
|
||||
<resource name="EmailFormat.OUTLOOK_HTML">Outlook 使用 HTML</resource>
|
||||
<resource name="EmailFormat.OUTLOOK_TXT">Outlook 使用文字</resource>
|
||||
<resource name="error">錯誤</resource>
|
||||
<resource name="error_multipleinstances">Greenshot 已經在執行。</resource>
|
||||
<resource name="error_nowriteaccess">無法儲存檔案到 {0}。
|
||||
請檢查選取的存放位置可以寫入。</resource>
|
||||
<resource name="error_openfile">無法開啟檔案 "{0}"。</resource>
|
||||
<resource name="error_openlink">無法開啟連結 '{0}'。</resource>
|
||||
<resource name="error_save">無法儲存螢幕擷取,請尋找適合的位置。</resource>
|
||||
<resource name="error_openfile">無法開啟檔案「{0}」。</resource>
|
||||
<resource name="error_openlink">無法開啟連結「{0}」。</resource>
|
||||
<resource name="error_save">無法儲存螢幕擷圖,請尋找適合的位置。</resource>
|
||||
<resource name="expertsettings">專家</resource>
|
||||
<resource name="expertsettings_autoreducecolors">在 > 8 位元圖像時,如果色彩小於 256 則建立 8 位元圖像</resource>
|
||||
<resource name="expertsettings_checkunstableupdates">檢查 Beta 版更新</resource>
|
||||
|
@ -179,34 +179,38 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
|
|||
<resource name="expertsettings_counter">檔案名稱樣式中 ${NUM} 的數字</resource>
|
||||
<resource name="expertsettings_enableexpert">我明白我所做的動作!</resource>
|
||||
<resource name="expertsettings_footerpattern">印表機頁尾樣式</resource>
|
||||
<resource name="expertsettings_minimizememoryfootprint">最小化記憶體頁尾列印,但降低效能 (不建議)。</resource>
|
||||
<resource name="expertsettings_minimizememoryfootprint">最小化記憶體佔用空間,但降低效能 (不建議)。</resource>
|
||||
<resource name="expertsettings_optimizeforrdp">進行使用遠端桌面的一些最佳化</resource>
|
||||
<resource name="expertsettings_reuseeditorifpossible">盡可能重複使用編輯器</resource>
|
||||
<resource name="expertsettings_suppresssavedialogatclose">關閉編輯器時略過儲存對話方塊</resource>
|
||||
<resource name="expertsettings_thumbnailpreview">在內容功能表顯示視窗縮圖 (針對 Vista 和 windows 7)</resource>
|
||||
<resource name="expertsettings_thumbnailpreview">在內容功能表顯示視窗縮圖 (針對 Vista 和 Windows 7)</resource>
|
||||
<resource name="exported_to">匯出到: {0}</resource>
|
||||
<resource name="exported_to_error">匯出到 {0} 時發生錯誤:</resource>
|
||||
<resource name="help_title">Greenshot 說明</resource>
|
||||
<resource name="hotkeys">熱鍵</resource>
|
||||
<resource name="jpegqualitydialog_choosejpegquality">請選擇您想要的 JPEG 圖片品質。</resource>
|
||||
<resource name="jpegqualitydialog_choosejpegquality">請選擇圖片的 JPEG品質。</resource>
|
||||
<resource name="OK">確定</resource>
|
||||
<resource name="print_error">嘗試列印時發生錯誤。</resource>
|
||||
<resource name="printoptions_allowcenter">列印在紙張的正中央</resource>
|
||||
<resource name="printoptions_allowenlarge">放大輸出以符合紙張大小</resource>
|
||||
<resource name="printoptions_allowrotate">旋轉圖片</resource>
|
||||
<resource name="printoptions_allowshrink">縮小輸出以符合紙張大小</resource>
|
||||
<resource name="printoptions_allowenlarge">放大列印輸出以符合紙張大小</resource>
|
||||
<resource name="printoptions_allowrotate">旋轉列印輸出為頁面方向</resource>
|
||||
<resource name="printoptions_allowshrink">縮小列印輸出以符合紙張大小</resource>
|
||||
<resource name="printoptions_colors">色彩設定</resource>
|
||||
<resource name="printoptions_dontaskagain">儲存選項為預設值並不再詢問</resource>
|
||||
<resource name="printoptions_inverted">反向色彩列印</resource>
|
||||
<resource name="printoptions_layout">頁面配置設定</resource>
|
||||
<resource name="printoptions_printcolor">全彩列印</resource>
|
||||
<resource name="printoptions_printgrayscale">強制灰階列印</resource>
|
||||
<resource name="printoptions_printmonochrome">強制黑白列印</resource>
|
||||
<resource name="printoptions_timestamp">在頁尾列印日期 / 時間</resource>
|
||||
<resource name="printoptions_title">Greenshot 列印選項</resource>
|
||||
<resource name="qualitydialog_dontaskagain">儲存為預設品質並不再詢問</resource>
|
||||
<resource name="qualitydialog_title">Greenshot 品質</resource>
|
||||
<resource name="quicksettings_destination_file">直接儲存 (使用慣用的檔案輸出設定)</resource>
|
||||
<resource name="quicksettings_destination_file">直接儲存 (使用慣用的輸出檔案設定)</resource>
|
||||
<resource name="settings_alwaysshowprintoptionsdialog">每次列印圖片時顯示列印選項對話方塊</resource>
|
||||
<resource name="settings_alwaysshowqualitydialog">每次儲存圖片時顯示品質對話方塊</resource>
|
||||
<resource name="settings_applicationsettings">應用程式設定</resource>
|
||||
<resource name="settings_autostartshortcut">開機自動執行 Greenshot</resource>
|
||||
<resource name="settings_autostartshortcut">開機啟動 Greenshot</resource>
|
||||
<resource name="settings_capture">擷取</resource>
|
||||
<resource name="settings_capture_mousepointer">擷取滑鼠指標</resource>
|
||||
<resource name="settings_capture_windows_interactive">使用互動式視窗擷取模式</resource>
|
||||
|
@ -215,34 +219,34 @@ Greenshot 不對這個程式做任何擔保。 這個程式是自由軟體, 您
|
|||
<resource name="settings_copypathtoclipboard">每次儲存圖片時都將路徑複製到剪貼簿</resource>
|
||||
<resource name="settings_destination">目的地</resource>
|
||||
<resource name="settings_destination_clipboard">複製到剪貼簿</resource>
|
||||
<resource name="settings_destination_editor">用圖片編輯器開啟</resource>
|
||||
<resource name="settings_destination_editor">在圖片編輯器開啟</resource>
|
||||
<resource name="settings_destination_email">電子郵件</resource>
|
||||
<resource name="settings_destination_file">直接儲存 (使用以下設定)</resource>
|
||||
<resource name="settings_destination_fileas">另存新檔 (顯示對話方塊)</resource>
|
||||
<resource name="settings_destination_picker">動態選取目的地</resource>
|
||||
<resource name="settings_destination_printer">傳送到印表機</resource>
|
||||
<resource name="settings_editor">編輯器</resource>
|
||||
<resource name="settings_filenamepattern">檔名格式</resource>
|
||||
<resource name="settings_filenamepattern">檔案名稱樣式</resource>
|
||||
<resource name="settings_general">一般</resource>
|
||||
<resource name="settings_iecapture">Internet Explorer 擷取</resource>
|
||||
<resource name="settings_jpegquality">JPEG 品質</resource>
|
||||
<resource name="settings_language">語言</resource>
|
||||
<resource name="settings_message_filenamepattern">您可以使用以下的格式來指定檔名, 兩個%括起來的地方會被取代為日期、時間等:
|
||||
${YYYY} 年, 4個數字
|
||||
${MM} 月, 2個數字
|
||||
${DD} 日, 2個數字
|
||||
${hh} 時, 2個數字
|
||||
${mm} 分, 2個數字
|
||||
${ss} 秒, 2個數字
|
||||
${NUM} 自動編號, 6個數字
|
||||
${title} 抓取視窗的標題
|
||||
<resource name="settings_message_filenamepattern">在樣式定義中以下預留位置將自動取代:
|
||||
${YYYY} 年,4 位數字
|
||||
${MM} 月,2 位數字
|
||||
${DD} 日,2 位數字
|
||||
${hh} 時,2 位數字
|
||||
${mm} 分,2 位數字
|
||||
${ss} 秒,2 位數字
|
||||
${NUM} 自動編號,6 位數字
|
||||
${title} 視窗標題
|
||||
${user} Windows 使用者名稱
|
||||
${domain} Windows 網域名稱
|
||||
${hostname} 電腦名稱
|
||||
|
||||
您也可以讓 Greenshot 自動產生資料夾, 只要用把右斜線( \ )放在資料夾名稱和檔名的中間就可以了
|
||||
例: ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
|
||||
這樣寫的話, Greenshot 會在預設儲存路徑下建立一個以今天日期為名稱的資料夾(如 2008-06-29), 然後在這個資料夾下儲存圖片檔, 檔名為目前的時間(如 11-58-32)再加上圖片的副檔名</resource>
|
||||
您也可以讓 Greenshot 動態建立資料夾,只要使用右斜線 ( \ ) 分隔資料夾和檔案名稱。
|
||||
例如: 樣式 ${YYYY}-${MM}-${DD}\${hh}-${mm}-${ss}
|
||||
將在預設存放位置產生目前日期的資料夾,例如: 2013-05-01,包含螢幕截圖的檔案名稱將根據目前時間,例如: 11_58_32 (再加上設定中定義的附檔名)</resource>
|
||||
<resource name="settings_network">網路和更新</resource>
|
||||
<resource name="settings_output">輸出</resource>
|
||||
<resource name="settings_playsound">播放快門聲</resource>
|
||||
|
@ -256,7 +260,7 @@ ${hostname} 電腦名稱
|
|||
<resource name="settings_printer">印表機</resource>
|
||||
<resource name="settings_printoptions">列印設定</resource>
|
||||
<resource name="settings_qualitysettings">品質設定</resource>
|
||||
<resource name="settings_reducecolors">降低色彩數為最大的 256</resource>
|
||||
<resource name="settings_reducecolors">降低色彩數為最大的 256 色</resource>
|
||||
<resource name="settings_registerhotkeys">註冊熱鍵</resource>
|
||||
<resource name="settings_showflashlight">顯示閃光</resource>
|
||||
<resource name="settings_shownotify">顯示通知</resource>
|
||||
|
@ -272,11 +276,12 @@ ${hostname} 電腦名稱
|
|||
<resource name="settings_waittime">擷取之前等待的時間 (毫秒)</resource>
|
||||
<resource name="settings_window_capture_mode">視窗擷取模式</resource>
|
||||
<resource name="settings_windowscapture">視窗擷取</resource>
|
||||
<resource name="settings_zoom">顯示放大鏡</resource>
|
||||
<resource name="tooltip_firststart">右鍵按一下這裡或是按下 {0} 鍵。</resource>
|
||||
<resource name="update_found">Greenshot 的新版本可以使用! 您要下載 Greenshot {0} 嗎?</resource>
|
||||
<resource name="wait_ie_capture">擷取 Internet Explorer 中頁面時請稍候...</resource>
|
||||
<resource name="warning">警告</resource>
|
||||
<resource name="warning_hotkeys">無法註冊熱鍵 "{0}"。 這個問題可能是另一個工具要求使用相同的熱鍵。 您可以變更熱鍵設定或停用/變更軟體使用熱鍵。
|
||||
<resource name="warning_hotkeys">無法註冊熱鍵「{0}」。 這個問題可能是另一個工具要求使用相同的熱鍵。 您可以變更熱鍵設定或停用/變更軟體使用熱鍵。
|
||||
|
||||
Greenshot 所有功能仍然可以直接從通知區圖示的內容功能表動作而不需熱鍵。</resource>
|
||||
<resource name="WindowCaptureMode.Aero">使用自訂色彩</resource>
|
||||
|
|
|
@ -53,9 +53,6 @@ namespace Greenshot.Processors {
|
|||
}
|
||||
config.IsDirty = true;
|
||||
}
|
||||
if(config.IsDirty) {
|
||||
IniConfig.Save();
|
||||
}
|
||||
}
|
||||
|
||||
public override string Designation {
|
||||
|
|
|
@ -2,7 +2,41 @@ Greenshot: A screenshot tool optimized for productivity. Save a screenshot or a
|
|||
|
||||
CHANGE LOG:
|
||||
|
||||
1.1.4 build $WCREV$ Release
|
||||
1.1.6 build $WCREV$ Bugfix Release
|
||||
|
||||
Bugs resolved (for bug details go to http://sourceforge.net/p/greenshot/bugs and search on the ID):
|
||||
* Bug #1515: Changed the settings GUI to clearly show that the interactive Window capture mode doesn't use the windows capture mode settings.
|
||||
* Bug #1517: export to Microsoft Word always goes to the last active Word instance.
|
||||
* Bug #1525/#1486: Greenshot looses configuration settings. (At least we hope this is resolved)
|
||||
* Bug #1528: export to Microsoft Excel isn't stored in file, which results in a "red cross" when opening on a different or MUCH later on the same computer.
|
||||
* Bug #1544: EntryPointNotFoundException when using higlight area or blur
|
||||
* Bug #1546: Exception in the editor when using multiple destination, among which the editor, and a picker (e.g. Word) is shown.
|
||||
* Not reported: Canceling Imgur authorization or upload caused an NullPointerReference
|
||||
|
||||
Features:
|
||||
* Added EXIF orientation support when copying images from the clipboard
|
||||
* Feature #596: Added commandline option "/inidirectory <directory>" to specify the location of the greenshot.ini, this can e.g. be used for multi-profiles...
|
||||
* Removed reading the greenshot.ini if it was changed manually outside of Greenshot while it is running, this should increase stability. People should now exit Greenshot before modifying this file manually.
|
||||
|
||||
Improvements:
|
||||
* Printouts are now rotated counter-clockwise instead of clockwise, for most people this should be preferable (#1552)
|
||||
|
||||
1.1.5 build 2643 Bugfix Release
|
||||
|
||||
Bugs resolved (for bug details go to http://sourceforge.net/p/greenshot/bugs and search on the ID):
|
||||
* Bug #1510: Under Windows Vista when trying to apply a drop-shadow or a torn-edge effect a GDIPlus error occurs.
|
||||
* Bug #1512/#1514: Will not print color
|
||||
* Not reported: Annotations where not visible when exporting to Office destinations after writing in the Greenshot format.
|
||||
* Not reported: Removed the update check in Greenshot for PortableApps
|
||||
|
||||
Languages:
|
||||
* New translation: Estonian
|
||||
* Updated translations: Russian, Polish and Italian
|
||||
* New installer translation: Ukrainian
|
||||
* New plugin translations: Polish
|
||||
|
||||
|
||||
1.1.4 build 2622 Release
|
||||
|
||||
Features added:
|
||||
* General: Added zoom when capturing with a option in the settings for disabling the zoom. (this can also be done via the "z" key while capturing.)
|
||||
|
@ -16,11 +50,6 @@ Features added:
|
|||
* Plug-in: Added Photobucket plugin
|
||||
|
||||
Bugs resolved (for bug details go to http://sourceforge.net/p/greenshot/bugs and search on the ID):
|
||||
* Bug #1484, #1494: External Command plug-in issues. e.g. when clicking edit in the External Command plug-in settings, than cancel, and than edit again an error occured.
|
||||
* Bug #1499: Stability improvements for when Greenshot tries to open the explorer.exe
|
||||
* Bug #1500: Error while dragging an obfuscation
|
||||
* Fixed some additional unreported issues
|
||||
* Bug #1504: InvalidCastException when using the brightness-filter
|
||||
* Bug #1327, #1401 & #1410 : On Windows XP Firefox/java captures are mainly black. This fix should also work with other OS versions and applications.
|
||||
* Bug #1340: Fixed issue with opening a screenshow from the clipboard which was created in a remote desktop
|
||||
* Bug #1375, #1396 & #1397: Exporting captures to Microsoft Office applications give problems when the Office application shows a dialog, this is fixed by displaying a retry dialog with info.
|
||||
|
@ -38,6 +67,10 @@ Bugs resolved (for bug details go to http://sourceforge.net/p/greenshot/bugs and
|
|||
* Bug #1444: Colors were disappearing when "Create an 8-bit image if colors are less than 256 while having a > 8 bits image" was turned on
|
||||
* Bug #1462: Auto-filename generation cropping title text after period
|
||||
* Bug #1481: when pasting elements from one editor into another the element could end up outside the visible area
|
||||
* Bug #1484, #1494: External Command plug-in issues. e.g. when clicking edit in the External Command plug-in settings, than cancel, and than edit again an error occured.
|
||||
* Bug #1499: Stability improvements for when Greenshot tries to open the explorer.exe
|
||||
* Bug #1500: Error while dragging an obfuscation
|
||||
* Bug #1504: InvalidCastException when using the brightness-filter
|
||||
* Reported in forum: Fixed a problem with the OCR, it sometimes didn't work. See: http://sourceforge.net/p/greenshot/discussion/676082/thread/31a08c8c
|
||||
* Not reported: Flickr configuration for the Family, Friend & Public wasn't stored.
|
||||
* Not reported: If Greenshot is linked in a Windows startup folder, the "Start with startup" checkbox wasn't checked.
|
||||
|
|
|
@ -21,8 +21,8 @@ CommercialUse=true
|
|||
EULAVersion=true
|
||||
|
||||
[Version]
|
||||
PackageVersion=1.1.4.$WCREV$
|
||||
DisplayVersion=1.1.4.$WCREV$
|
||||
PackageVersion=1.1.6.$WCREV$
|
||||
DisplayVersion=1.1.6.$WCREV$
|
||||
|
||||
[SpecialPaths]
|
||||
Plugins=NONE
|
||||
|
|
|
@ -1,4 +1,27 @@
|
|||
@echo off
|
||||
echo File preparations
|
||||
echo Getting current Version
|
||||
cd ..
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\ releases\additional_files\readme.template.txt releases\additional_files\readme.txt
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\ releases\innosetup\setup.iss releases\innosetup\setup-SVN.iss
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\ releases\package_zip.bat releases\package_zip-SVN.bat
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\ releases\appinfo.ini.template releases\portable\App\AppInfo\appinfo.ini
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\ AssemblyInfo.cs.template AssemblyInfo.cs
|
||||
rem Plugins
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\GreenshotBoxPlugin ..\GreenshotBoxPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotBoxPlugin\Properties\AssemblyInfo.cs
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\GreenshotConfluencePlugin ..\GreenshotConfluencePlugin\Properties\AssemblyInfo.cs.template ..\GreenshotConfluencePlugin\Properties\AssemblyInfo.cs
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\GreenshotDropboxPlugin ..\GreenshotDropboxPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotDropboxPlugin\Properties\AssemblyInfo.cs
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\GreenshotExternalCommandPlugin ..\GreenshotExternalCommandPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotExternalCommandPlugin\Properties\AssemblyInfo.cs
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\GreenshotFlickrPlugin ..\GreenshotFlickrPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotFlickrPlugin\Properties\AssemblyInfo.cs
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\GreenshotImgurPlugin ..\GreenshotImgurPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotImgurPlugin\Properties\AssemblyInfo.cs
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\GreenshotJiraPlugin ..\GreenshotJiraPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotJiraPlugin\Properties\AssemblyInfo.cs
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\GreenshotOCRPlugin ..\GreenshotOCRPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotOCRPlugin\Properties\AssemblyInfo.cs
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\GreenshotOfficePlugin ..\GreenshotOfficePlugin\Properties\AssemblyInfo.cs.template ..\GreenshotOfficePlugin\Properties\AssemblyInfo.cs
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\GreenshotPhotobucketPlugin ..\GreenshotPhotobucketPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotPhotobucketPlugin\Properties\AssemblyInfo.cs
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\GreenshotPicasaPlugin ..\GreenshotPicasaPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotPicasaPlugin\Properties\AssemblyInfo.cs
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\GreenshotPlugin ..\GreenshotPlugin\Properties\AssemblyInfo.cs.template ..\GreenshotPlugin\Properties\AssemblyInfo.cs
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\PluginExample ..\PluginExample\Properties\AssemblyInfo.cs.template ..\PluginExample\Properties\AssemblyInfo.cs
|
||||
cd releases
|
||||
echo Starting Greenshot BUILD
|
||||
\Windows\Microsoft.NET\Framework\v3.5\MSBuild ..\Greenshot.sln /t:Clean;Build /p:Configuration=Release /p:Platform="Any CPU" > build.log
|
||||
if %ERRORLEVEL% GEQ 1 (
|
||||
|
@ -6,13 +29,7 @@ echo An error occured, please check the build log!
|
|||
pause
|
||||
exit -1
|
||||
)
|
||||
echo File preparations
|
||||
cd ..
|
||||
echo Getting current Version
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\ releases\additional_files\readme.template.txt releases\additional_files\readme.txt
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\ releases\innosetup\setup.iss releases\innosetup\setup-SVN.iss
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\ releases\package_zip.bat releases\package_zip-SVN.bat
|
||||
tools\TortoiseSVN\SubWCRev.exe ..\ releases\appinfo.ini.template releases\portable\App\AppInfo\appinfo.ini
|
||||
cd bin\Release
|
||||
del *.log
|
||||
echo Making MD5
|
||||
|
|
|
@ -2,11 +2,13 @@
|
|||
Source: "scripts\isxdl\isxdl.dll"; Flags: dontcopy
|
||||
|
||||
[Code]
|
||||
//replace PAnsiChar with PChar on non-unicode Inno Setup
|
||||
procedure isxdl_AddFile(URL, Filename: PAnsiChar);
|
||||
external 'isxdl_AddFile@files:isxdl.dll stdcall';
|
||||
|
||||
function isxdl_DownloadFiles(hWnd: Integer): Integer;
|
||||
external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';
|
||||
|
||||
//replace PAnsiChar with PChar on non-unicode Inno Setup
|
||||
function isxdl_SetOption(Option, Value: PAnsiChar): Integer;
|
||||
external 'isxdl_SetOption@files:isxdl.dll stdcall';
|
|
@ -1,43 +1,35 @@
|
|||
#include "..\scripts\isxdl\isxdl.iss"
|
||||
#include "isxdl\isxdl.iss"
|
||||
|
||||
[CustomMessages]
|
||||
DependenciesDir=MyProgramDependencies
|
||||
|
||||
en.depdownload_msg=The following applications are required before setup can continue:%n%n%1%nDownload and install now?
|
||||
de.depdownload_msg=Die folgenden Programme werden benötigt bevor das Setup fortfahren kann:%n%n%1%nJetzt downloaden und installieren?
|
||||
nl.depdownload_msg=Die volgende programmas zijn nodig voor dat de setup door kan gaan:%n%n%1%nNu downloaden en installeren?
|
||||
|
||||
en.depdownload_memo_title=Download dependencies
|
||||
de.depdownload_memo_title=Abhängigkeiten downloaden
|
||||
nl.depdownload_memo_title=Afhankelijkheiden downloaden
|
||||
|
||||
en.depinstall_memo_title=Install dependencies
|
||||
de.depinstall_memo_title=Abhängigkeiten installieren
|
||||
nl.depinstall_memo_title=Afhankelijkheiden installeren
|
||||
|
||||
en.depinstall_title=Installing dependencies
|
||||
de.depinstall_title=Installiere Abhängigkeiten
|
||||
nl.depinstall_title=Installeer afhankelijkheiden
|
||||
|
||||
en.depinstall_description=Please wait while Setup installs dependencies on your computer.
|
||||
de.depinstall_description=Warten Sie bitte während Abhängigkeiten auf Ihrem Computer installiert wird.
|
||||
nl.depinstall_description=Wachten AUB terwijl de afhankelijkheiden op uw computer geinstalleerd worden.
|
||||
|
||||
en.depinstall_status=Installing %1...
|
||||
de.depinstall_status=Installiere %1...
|
||||
nl.depinstall_status=Installeer %1...
|
||||
|
||||
en.depinstall_missing=%1 must be installed before setup can continue. Please install %1 and run Setup again.
|
||||
de.depinstall_missing=%1 muss installiert werden bevor das Setup fortfahren kann. Bitte installieren Sie %1 und starten Sie das Setup erneut.
|
||||
nl.depinstall_missing=%1 moet geinstalleerd worden voordat de setup door kan gaan. Installeer AUB %1 en start de setup nogmals.
|
||||
|
||||
en.depinstall_error=An error occured while installing the dependencies. Please restart the computer and run the setup again or install the following dependencies manually:%n
|
||||
de.depinstall_error=Ein Fehler ist während der Installation der Abghängigkeiten aufgetreten. Bitte starten Sie den Computer neu und führen Sie das Setup erneut aus oder installieren Sie die folgenden Abhängigkeiten per Hand:%n
|
||||
nl.depinstall_error=Er is een fout tijdens de installatie van de afhankelijkheiden opgetreden. Start uw computer door en laat de setup nog een keer lopen of installeer de volgende afhankelijkheiden met de hand:%n
|
||||
|
||||
en.isxdl_langfile=english.ini
|
||||
en.isxdl_langfile=
|
||||
de.isxdl_langfile=german2.ini
|
||||
nl.isxdl_langfile=english.ini
|
||||
|
||||
|
||||
[Files]
|
||||
Source: "scripts\isxdl\german2.ini"; Flags: dontcopy
|
||||
|
@ -48,15 +40,20 @@ type
|
|||
File: String;
|
||||
Title: String;
|
||||
Parameters: String;
|
||||
InstallClean : boolean;
|
||||
MustRebootAfter : boolean;
|
||||
end;
|
||||
|
||||
InstallResult = (InstallSuccessful, InstallRebootRequired, InstallError);
|
||||
|
||||
var
|
||||
installMemo, downloadMemo, downloadMessage: string;
|
||||
products: array of TProduct;
|
||||
delayedReboot: boolean;
|
||||
DependencyPage: TOutputProgressWizardPage;
|
||||
|
||||
|
||||
procedure AddProduct(FileName, Parameters, Title, Size, URL: string);
|
||||
procedure AddProduct(FileName, Parameters, Title, Size, URL: string; InstallClean : boolean; MustRebootAfter : boolean);
|
||||
var
|
||||
path: string;
|
||||
i: Integer;
|
||||
|
@ -78,13 +75,36 @@ begin
|
|||
products[i].File := path;
|
||||
products[i].Title := Title;
|
||||
products[i].Parameters := Parameters;
|
||||
products[i].InstallClean := InstallClean;
|
||||
products[i].MustRebootAfter := MustRebootAfter;
|
||||
end;
|
||||
|
||||
function InstallProducts: Boolean;
|
||||
function SmartExec(prod : TProduct; var ResultCode : Integer) : boolean;
|
||||
begin
|
||||
if (LowerCase(Copy(prod.File,Length(prod.File)-2,3)) = 'exe') then begin
|
||||
Result := Exec(prod.File, prod.Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
|
||||
end else begin
|
||||
Result := ShellExec('', prod.File, prod.Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
|
||||
end;
|
||||
end;
|
||||
|
||||
function PendingReboot : boolean;
|
||||
var names: String;
|
||||
begin
|
||||
if (RegQueryMultiStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager', 'PendingFileRenameOperations', names)) then begin
|
||||
Result := true;
|
||||
end else if ((RegQueryMultiStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager', 'SetupExecute', names)) and (names <> '')) then begin
|
||||
Result := true;
|
||||
end else begin
|
||||
Result := false;
|
||||
end;
|
||||
end;
|
||||
|
||||
function InstallProducts: InstallResult;
|
||||
var
|
||||
ResultCode, i, productCount, finishCount: Integer;
|
||||
begin
|
||||
Result := true;
|
||||
Result := InstallSuccessful;
|
||||
productCount := GetArrayLength(products);
|
||||
|
||||
if productCount > 0 then begin
|
||||
|
@ -92,20 +112,38 @@ begin
|
|||
DependencyPage.Show;
|
||||
|
||||
for i := 0 to productCount - 1 do begin
|
||||
if (products[i].InstallClean and (delayedReboot or PendingReboot())) then begin
|
||||
Result := InstallRebootRequired;
|
||||
break;
|
||||
end;
|
||||
|
||||
DependencyPage.SetText(FmtMessage(CustomMessage('depinstall_status'), [products[i].Title]), '');
|
||||
DependencyPage.SetProgress(i, productCount);
|
||||
|
||||
if Exec(products[i].File, products[i].Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then begin
|
||||
//success; ResultCode contains the exit code
|
||||
if ResultCode = 0 then
|
||||
finishCount := finishCount + 1
|
||||
else begin
|
||||
Result := false;
|
||||
if SmartExec(products[i], ResultCode) then begin
|
||||
//setup executed; ResultCode contains the exit code
|
||||
//MsgBox(products[i].Title + ' install executed. Result Code: ' + IntToStr(ResultCode), mbInformation, MB_OK);
|
||||
if (products[i].MustRebootAfter) then begin
|
||||
//delay reboot after install if we installed the last dependency anyways
|
||||
if (i = productCount - 1) then begin
|
||||
delayedReboot := true;
|
||||
end else begin
|
||||
Result := InstallRebootRequired;
|
||||
end;
|
||||
break;
|
||||
end else if (ResultCode = 0) then begin
|
||||
finishCount := finishCount + 1;
|
||||
end else if (ResultCode = 3010) then begin
|
||||
//ResultCode 3010: A restart is required to complete the installation. This message indicates success.
|
||||
delayedReboot := true;
|
||||
finishCount := finishCount + 1;
|
||||
end else begin
|
||||
Result := InstallError;
|
||||
break;
|
||||
end;
|
||||
end else begin
|
||||
//failure; ResultCode contains the error code
|
||||
Result := false;
|
||||
//MsgBox(products[i].Title + ' install failed. Result Code: ' + IntToStr(ResultCode), mbInformation, MB_OK);
|
||||
Result := InstallError;
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
|
@ -120,12 +158,15 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
function PrepareToInstall(var NeedsRestart: Boolean): String;
|
||||
function PrepareToInstall(var NeedsRestart: boolean): String;
|
||||
var
|
||||
i: Integer;
|
||||
s: string;
|
||||
begin
|
||||
if not InstallProducts() then begin
|
||||
delayedReboot := false;
|
||||
|
||||
case InstallProducts() of
|
||||
InstallError: begin
|
||||
s := CustomMessage('depinstall_error');
|
||||
|
||||
for i := 0 to GetArrayLength(products) - 1 do begin
|
||||
|
@ -134,6 +175,20 @@ begin
|
|||
|
||||
Result := s;
|
||||
end;
|
||||
InstallRebootRequired: begin
|
||||
Result := products[0].Title;
|
||||
NeedsRestart := true;
|
||||
|
||||
//write into the registry that the installer needs to be executed again after restart
|
||||
RegWriteStringValue(HKEY_CURRENT_USER, 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce', 'InstallBootstrap', ExpandConstant('{srcexe}'));
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function NeedRestart : boolean;
|
||||
begin
|
||||
if (delayedReboot) then
|
||||
Result := true;
|
||||
end;
|
||||
|
||||
function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
|
||||
|
@ -153,15 +208,14 @@ begin
|
|||
Result := s
|
||||
end;
|
||||
|
||||
function ProductNextButtonClick(CurPageID: Integer): Boolean;
|
||||
function NextButtonClick(CurPageID: Integer): boolean;
|
||||
begin
|
||||
Result := true;
|
||||
|
||||
if CurPageID = wpReady then begin
|
||||
|
||||
if downloadMemo <> '' then begin
|
||||
//change isxdl language only if it is not english because isxdl default language is already english
|
||||
if ActiveLanguage() <> 'en' then begin
|
||||
if (ActiveLanguage() <> 'en') then begin
|
||||
ExtractTemporaryFile(CustomMessage('isxdl_langfile'));
|
||||
isxdl_SetOption('language', ExpandConstant('{tmp}{\}') + CustomMessage('isxdl_langfile'));
|
||||
end;
|
||||
|
@ -175,23 +229,39 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
function IsX64: Boolean;
|
||||
function IsX86: boolean;
|
||||
begin
|
||||
Result := (ProcessorArchitecture = paX86) or (ProcessorArchitecture = paUnknown);
|
||||
end;
|
||||
|
||||
function IsX64: boolean;
|
||||
begin
|
||||
Result := Is64BitInstallMode and (ProcessorArchitecture = paX64);
|
||||
end;
|
||||
|
||||
function IsIA64: Boolean;
|
||||
function IsIA64: boolean;
|
||||
begin
|
||||
Result := Is64BitInstallMode and (ProcessorArchitecture = paIA64);
|
||||
end;
|
||||
|
||||
function GetURL(x86, x64, ia64: String): String;
|
||||
function GetString(x86, x64, ia64: String): String;
|
||||
begin
|
||||
if IsX64() and (x64 <> '') then
|
||||
if IsX64() and (x64 <> '') then begin
|
||||
Result := x64;
|
||||
if IsIA64() and (ia64 <> '') then
|
||||
end else if IsIA64() and (ia64 <> '') then begin
|
||||
Result := ia64;
|
||||
|
||||
if Result = '' then
|
||||
end else begin
|
||||
Result := x86;
|
||||
end;
|
||||
end;
|
||||
|
||||
function GetArchitectureString(): String;
|
||||
begin
|
||||
if IsX64() then begin
|
||||
Result := '_x64';
|
||||
end else if IsIA64() then begin
|
||||
Result := '_ia64';
|
||||
end else begin
|
||||
Result := '';
|
||||
end;
|
||||
end;
|
|
@ -5,21 +5,21 @@
|
|||
[CustomMessages]
|
||||
dotnetfx11_title=.NET Framework 1.1
|
||||
|
||||
dotnetfx11_size=23.1 MB
|
||||
en.dotnetfx11_size=23.1 MB
|
||||
de.dotnetfx11_size=23,1 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
dotnetfx11_url = 'http://download.microsoft.com/download/a/a/c/aac39226-8825-44ce-90e3-bf8203e74006/dotnetfx.exe';
|
||||
|
||||
procedure dotnetfx11();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v1.1.4322', 'Install', version);
|
||||
if version <> 1 then
|
||||
if (IsX86() and not netfxinstalled(NetFx11, '')) then
|
||||
AddProduct('dotnetfx11.exe',
|
||||
'/q:a /c:"install /qb /l"',
|
||||
CustomMessage('dotnetfx11_title'),
|
||||
CustomMessage('dotnetfx11_size'),
|
||||
dotnetfx11_url);
|
||||
dotnetfx11_url,
|
||||
false, false);
|
||||
end;
|
||||
|
|
|
@ -11,17 +11,14 @@ de.dotnetfx11lp_url=http://download.microsoft.com/download/6/8/2/6821e687-526a-4
|
|||
|
||||
[Code]
|
||||
procedure dotnetfx11lp();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
if ActiveLanguage() <> 'en' then begin
|
||||
RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v1.1.4322\' + CustomMessage('dotnetfx11lp_lcid'), 'Install', version);
|
||||
|
||||
if version <> 1 then
|
||||
AddProduct(ExpandConstant('dotnetfx11_langpack.exe'),
|
||||
if (ActiveLanguage() <> 'en') then begin
|
||||
if (IsX86() and not netfxinstalled(NetFx11, CustomMessage('dotnetfx11lp_lcid'))) then
|
||||
AddProduct('dotnetfx11' + ActiveLanguage() + '.exe',
|
||||
'/q:a /c:"inst.exe /qb /l"',
|
||||
CustomMessage('dotnetfx11lp_title'),
|
||||
CustomMessage('dotnetfx11lp_size'),
|
||||
CustomMessage('dotnetfx11lp_url'));
|
||||
CustomMessage('dotnetfx11lp_url'),
|
||||
false, false);
|
||||
end;
|
||||
end;
|
||||
|
|
|
@ -5,21 +5,21 @@
|
|||
[CustomMessages]
|
||||
dotnetfx11sp1_title=.NET Framework 1.1 Service Pack 1
|
||||
|
||||
dotnetfx11sp1_size=10.5 MB
|
||||
en.dotnetfx11sp1_size=10.5 MB
|
||||
de.dotnetfx11sp1_size=10,5 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
dotnetfx11sp1_url = 'http://download.microsoft.com/download/8/b/4/8b4addd8-e957-4dea-bdb8-c4e00af5b94b/NDP1.1sp1-KB867460-X86.exe';
|
||||
|
||||
procedure dotnetfx11sp1();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v1.1.4322', 'SP', version);
|
||||
if version < 1 then
|
||||
if (IsX86() and (netfxspversion(NetFx11, '') < 1)) then
|
||||
AddProduct('dotnetfx11sp1.exe',
|
||||
'/q',
|
||||
CustomMessage('dotnetfx11sp1_title'),
|
||||
CustomMessage('dotnetfx11sp1_size'),
|
||||
dotnetfx11sp1_url);
|
||||
dotnetfx11sp1_url,
|
||||
false, false);
|
||||
end;
|
|
@ -1,7 +1,7 @@
|
|||
// requires Windows 2000 Service Pack 3, Windows 98, Windows 98 Second Edition, Windows ME, Windows Server 2003, Windows XP Service Pack 2
|
||||
// requires internet explorer 5.0.1 or higher
|
||||
// requires windows installer 2.0 on windows 98, ME
|
||||
// requires windows installer 3.1 on windows 2000 or higher
|
||||
// requires Windows Installer 3.1 on windows 2000 or higher
|
||||
// http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5
|
||||
|
||||
[CustomMessages]
|
||||
|
@ -9,6 +9,7 @@ dotnetfx20_title=.NET Framework 2.0
|
|||
|
||||
dotnetfx20_size=23 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
dotnetfx20_url = 'http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe';
|
||||
|
@ -16,15 +17,12 @@ const
|
|||
dotnetfx20_url_ia64 = 'http://download.microsoft.com/download/f/8/6/f86148a4-e8f7-4d08-a484-b4107f238728/NetFx64.exe';
|
||||
|
||||
procedure dotnetfx20();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
RegQueryDWordValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727', 'Install', version);
|
||||
if version <> 1 then begin
|
||||
AddProduct('dotnetfx20.exe',
|
||||
'/q:a /t:' + ExpandConstant('{tmp}{\}') + 'dotnetfx20 /c:"install /qb /l"',
|
||||
if (not netfxinstalled(NetFx20, '')) then
|
||||
AddProduct('dotnetfx20' + GetArchitectureString() + '.exe',
|
||||
'/passive /norestart /lang:ENU',
|
||||
CustomMessage('dotnetfx20_title'),
|
||||
CustomMessage('dotnetfx20_size'),
|
||||
GetURL(dotnetfx20_url, dotnetfx20_url_x64, dotnetfx20_url_ia64));
|
||||
end;
|
||||
GetString(dotnetfx20_url, dotnetfx20_url_x64, dotnetfx20_url_ia64),
|
||||
false, false);
|
||||
end;
|
|
@ -2,39 +2,27 @@
|
|||
|
||||
[CustomMessages]
|
||||
de.dotnetfx20lp_title=.NET Framework 2.0 Sprachpaket: Deutsch
|
||||
nl.dotnetfx20lp_title=
|
||||
en.dotnetfx20lp_title=
|
||||
|
||||
dotnetfx20lp_size=1,8 MB
|
||||
de.dotnetfx20lp_size=1,8 MB
|
||||
|
||||
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
|
||||
dotnetfx20lp_lcid=1031
|
||||
|
||||
nl.dotnetfx20lp_url=
|
||||
nl.dotnetfx20lp_url_x64=
|
||||
nl.dotnetfx20lp_url_ia64=
|
||||
|
||||
en.dotnetfx20lp_url=
|
||||
en.dotnetfx20lp_url_x64=
|
||||
en.dotnetfx20lp_url_ia64=
|
||||
de.dotnetfx20lp_lcid=1031
|
||||
|
||||
de.dotnetfx20lp_url=http://download.microsoft.com/download/2/9/7/29768238-56c3-4ea6-abba-4c5246f2bc81/langpack.exe
|
||||
de.dotnetfx20lp_url_x64=http://download.microsoft.com/download/2/e/f/2ef250ba-a868-4074-a4c9-249004866f87/langpack.exe
|
||||
de.dotnetfx20lp_url_ia64=http://download.microsoft.com/download/8/9/8/898c5670-5e74-41c4-82fc-68dd837af627/langpack.exe
|
||||
|
||||
|
||||
[Code]
|
||||
procedure dotnetfx20lp();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
if ActiveLanguage() <> 'en' then begin
|
||||
RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727\' + CustomMessage('dotnetfx20lp_lcid'), 'Install', version);
|
||||
|
||||
if version <> 1 then
|
||||
AddProduct(ExpandConstant('dotnetfx20_langpack.exe'),
|
||||
'/q:a /c:"install /qb /l"',
|
||||
if (ActiveLanguage() <> 'en') then begin
|
||||
if (not netfxinstalled(NetFx20, CustomMessage('dotnetfx20lp_lcid'))) then
|
||||
AddProduct('dotnetfx20' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
|
||||
'/passive /norestart /lang:ENU',
|
||||
CustomMessage('dotnetfx20lp_title'),
|
||||
CustomMessage('dotnetfx20lp_size'),
|
||||
GetURL(CustomMessage('dotnetfx20lp_url'), CustomMessage('dotnetfx20lp_url_x64'), CustomMessage('dotnetfx20lp_url_ia64')));
|
||||
CustomMessage('dotnetfx20lp_url' + GetArchitectureString()),
|
||||
false, false);
|
||||
end;
|
||||
end;
|
|
@ -5,7 +5,9 @@
|
|||
[CustomMessages]
|
||||
dotnetfx20sp1_title=.NET Framework 2.0 Service Pack 1
|
||||
|
||||
dotnetfx20sp1_size=23.6 MB
|
||||
en.dotnetfx20sp1_size=23.6 MB
|
||||
de.dotnetfx20sp1_size=23,6 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
|
@ -14,14 +16,12 @@ const
|
|||
dotnetfx20sp1_url_ia64 = 'http://download.microsoft.com/download/c/9/7/c97d534b-8a55-495d-ab06-ad56f4b7f155/NetFx20SP1_ia64.exe';
|
||||
|
||||
procedure dotnetfx20sp1();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727', 'SP', version);
|
||||
if version < 1 then
|
||||
AddProduct('dotnetfx20sp1.exe',
|
||||
'/q:a /t:' + ExpandConstant('{tmp}{\}') + 'dotnetfx20sp1 /c:"install /qb /l /msipassthru MSI_PROP_BEGIN" REBOOT=Suppress "MSI_PROP_END"',
|
||||
if (netfxspversion(NetFx20, '') < 1) then
|
||||
AddProduct('dotnetfx20sp1' + GetArchitectureString() + '.exe',
|
||||
'/passive /norestart /lang:ENU',
|
||||
CustomMessage('dotnetfx20sp1_title'),
|
||||
CustomMessage('dotnetfx20sp1_size'),
|
||||
GetURL(dotnetfx20sp1_url, dotnetfx20sp1_url_x64, dotnetfx20sp1_url_ia64));
|
||||
GetString(dotnetfx20sp1_url, dotnetfx20sp1_url_x64, dotnetfx20sp1_url_ia64),
|
||||
false, false);
|
||||
end;
|
|
@ -1,40 +1,28 @@
|
|||
//http://www.microsoft.com/downloads/details.aspx?FamilyID=1cc39ffe-a2aa-4548-91b3-855a2de99304
|
||||
|
||||
[CustomMessages]
|
||||
nl.dotnetfx20sp1lp_title=.NET Framework 2.0 SP1 Taalpakket: Nederlands
|
||||
de.dotnetfx20sp1lp_title=.NET Framework 2.0 SP1 Sprachpaket: Deutsch
|
||||
en.dotnetfx20sp1lp_title=
|
||||
|
||||
dotnetfx20sp1lp_size=3,4 MB
|
||||
de.dotnetfx20sp1lp_size=3,4 MB
|
||||
|
||||
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
|
||||
dotnetfx20sp1lp_lcid=1031
|
||||
|
||||
nl.dotnetfx20sp1lp_url=http://download.microsoft.com/download/1/5/d/15de28a3-f1d1-459f-9583-d168cfa05e3f/NetFx20SP1_x86nl.exe
|
||||
nl.dotnetfx20sp1lp_url_x64=
|
||||
nl.dotnetfx20sp1lp_url_ia64=
|
||||
|
||||
en.dotnetfx20sp1lp_url=
|
||||
en.dotnetfx20sp1lp_url_x64=
|
||||
en.dotnetfx20sp1lp_url_ia64=
|
||||
de.dotnetfx20sp1lp_lcid=1031
|
||||
|
||||
de.dotnetfx20sp1lp_url=http://download.microsoft.com/download/8/a/a/8aab7e6a-5e58-4e83-be99-f5fb49fe811e/NetFx20SP1_x86de.exe
|
||||
de.dotnetfx20sp1lp_url_x64=http://download.microsoft.com/download/1/4/2/1425872f-c564-4ab2-8c9e-344afdaecd44/NetFx20SP1_x64de.exe
|
||||
de.dotnetfx20sp1lp_url_ia64=http://download.microsoft.com/download/a/0/b/a0bef431-19d8-433c-9f42-6e2824a8cb90/NetFx20SP1_ia64de.exe
|
||||
|
||||
|
||||
[Code]
|
||||
procedure dotnetfx20sp1lp();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
if ActiveLanguage() <> 'en' then begin
|
||||
RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727\' + CustomMessage('dotnetfx20sp1lp_lcid'), 'SP', version);
|
||||
|
||||
if version < 1 then
|
||||
AddProduct(ExpandConstant('dotnetfx20sp1_langpack.exe'),
|
||||
'/q:a /c:"install /qb /l"',
|
||||
if (ActiveLanguage() <> 'en') then begin
|
||||
if (netfxspversion(NetFx20, CustomMessage('dotnetfx20sp1lp_lcid')) < 1) then
|
||||
AddProduct('dotnetfx20sp1' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
|
||||
'/passive /norestart /lang:ENU',
|
||||
CustomMessage('dotnetfx20sp1lp_title'),
|
||||
CustomMessage('dotnetfx20sp1lp_size'),
|
||||
GetURL(CustomMessage('dotnetfx20sp1lp_url'), CustomMessage('dotnetfx20sp1lp_url_x64'), CustomMessage('dotnetfx20sp1lp_url_ia64')));
|
||||
CustomMessage('dotnetfx20sp1lp_url' + GetArchitectureString()),
|
||||
false, false);
|
||||
end;
|
||||
end;
|
|
@ -3,7 +3,9 @@
|
|||
[CustomMessages]
|
||||
dotnetfx20sp2_title=.NET Framework 2.0 Service Pack 2
|
||||
|
||||
dotnetfx20sp2_size=24 MB - 52 MB
|
||||
en.dotnetfx20sp2_size=24 MB - 52 MB
|
||||
de.dotnetfx20sp2_size=24 MB - 52 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
|
@ -12,14 +14,12 @@ const
|
|||
dotnetfx20sp2_url_ia64 = 'http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_ia64.exe';
|
||||
|
||||
procedure dotnetfx20sp2();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727', 'SP', version);
|
||||
if version < 2 then
|
||||
AddProduct('dotnetfx20sp2.exe',
|
||||
'/lang:enu /qb /norestart',
|
||||
if (netfxspversion(NetFx20, '') < 2) then
|
||||
AddProduct('dotnetfx20sp2' + GetArchitectureString() + '.exe',
|
||||
'/passive /norestart /lang:ENU',
|
||||
CustomMessage('dotnetfx20sp2_title'),
|
||||
CustomMessage('dotnetfx20sp2_size'),
|
||||
GetURL(dotnetfx20sp2_url, dotnetfx20sp2_url_x64, dotnetfx20sp2_url_ia64));
|
||||
GetString(dotnetfx20sp2_url, dotnetfx20sp2_url_x64, dotnetfx20sp2_url_ia64),
|
||||
false, false);
|
||||
end;
|
|
@ -1,22 +1,12 @@
|
|||
//http://www.microsoft.com/downloads/details.aspx?FamilyID=c69789e0-a4fa-4b2e-a6b5-3b3695825992
|
||||
|
||||
[CustomMessages]
|
||||
nl.dotnetfx20sp2lp_title=.NET Framework 2.0 SP2 Taalpakket: Nederlands
|
||||
de.dotnetfx20sp2lp_title=.NET Framework 2.0 SP2 Sprachpaket: Deutsch
|
||||
en.dotnetfx20sp2lp_title=
|
||||
|
||||
dotnetfx20sp2lp_size=3,4 MB
|
||||
de.dotnetfx20sp2lp_size=3,4 MB
|
||||
|
||||
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
|
||||
dotnetfx20sp2lp_lcid=1031
|
||||
|
||||
en.dotnetfx20sp2lp_url=
|
||||
en.dotnetfx20sp2lp_url_x64=
|
||||
en.dotnetfx20sp2lp_url_ia64=
|
||||
|
||||
nl.dotnetfx20sp2lp_url=http://download.microsoft.com/download/7/a/5/7a5ca52b-08ac-40f5-9a6d-6cce78b1db28/NetFx20SP2_x86nl.exe
|
||||
nl.dotnetfx20sp2lp_url_x64=
|
||||
nl.dotnetfx20sp2lp_url_ia64=
|
||||
de.dotnetfx20sp2lp_lcid=1031
|
||||
|
||||
de.dotnetfx20sp2lp_url=http://download.microsoft.com/download/0/b/1/0b175c8e-34bd-46c0-bfcd-af8d33770c58/netfx20sp2_x86de.exe
|
||||
de.dotnetfx20sp2lp_url_x64=http://download.microsoft.com/download/4/e/c/4ec67a11-879d-4550-9c25-fd9ab4261b46/netfx20sp2_x64de.exe
|
||||
|
@ -25,17 +15,14 @@ de.dotnetfx20sp2lp_url_ia64=http://download.microsoft.com/download/a/3/3/a3349a2
|
|||
|
||||
[Code]
|
||||
procedure dotnetfx20sp2lp();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
if ActiveLanguage() <> 'en' then begin
|
||||
RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v2.0.50727\' + CustomMessage('dotnetfx20sp2lp_lcid'), 'SP', version);
|
||||
|
||||
if version < 2 then
|
||||
AddProduct(ExpandConstant('dotnetfx20sp2_langpack.exe'),
|
||||
'/lang:enu /qb /norestart"',
|
||||
if (ActiveLanguage() <> 'en') then begin
|
||||
if (netfxspversion(NetFx20, CustomMessage('dotnetfx20sp2lp_lcid')) < 2) then
|
||||
AddProduct('dotnetfx20sp2' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
|
||||
'/lang:enu /passive /norestart"',
|
||||
CustomMessage('dotnetfx20sp2lp_title'),
|
||||
CustomMessage('dotnetfx20sp2lp_size'),
|
||||
GetURL(CustomMessage('dotnetfx20sp2lp_url'), CustomMessage('dotnetfx20sp2lp_url_x64'), CustomMessage('dotnetfx20sp2lp_url_ia64')));
|
||||
CustomMessage('dotnetfx20sp2lp_url' + GetArchitectureString()),
|
||||
false, false);
|
||||
end;
|
||||
end;
|
|
@ -1,5 +1,5 @@
|
|||
// requires Windows Server 2003 Service Pack 1, Windows Server 2008, Windows Vista, Windows XP Service Pack 2
|
||||
// requires windows installer 3.1
|
||||
// requires Windows Installer 3.1
|
||||
// WARNING: express setup (downloads and installs the components depending on your OS) if you want to deploy it on cd or network download the full bootsrapper on website below
|
||||
// http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6
|
||||
|
||||
|
@ -8,19 +8,18 @@ dotnetfx35_title=.NET Framework 3.5
|
|||
|
||||
dotnetfx35_size=3 MB - 197 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
dotnetfx35_url = 'http://download.microsoft.com/download/7/0/3/703455ee-a747-4cc8-bd3e-98a615c3aedb/dotNetFx35setup.exe';
|
||||
|
||||
procedure dotnetfx35();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v3.5', 'Install', version);
|
||||
if version <> 1 then
|
||||
AddProduct('dotnetfx35.exe',
|
||||
'/lang:enu /qb /norestart',
|
||||
if (netfxinstalled(NetFx35, '') = false) then
|
||||
AddProduct('dotnetfx35' + GetArchitectureString() + '.exe',
|
||||
'/lang:enu /passive /norestart',
|
||||
CustomMessage('dotnetfx35_title'),
|
||||
CustomMessage('dotnetfx35_size'),
|
||||
dotnetfx35_url);
|
||||
dotnetfx35_url,
|
||||
false, false);
|
||||
end;
|
|
@ -11,17 +11,14 @@ de.dotnetfx35lp_url=http://download.microsoft.com/download/d/1/e/d1e617c3-c7f4-4
|
|||
|
||||
[Code]
|
||||
procedure dotnetfx35lp();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
if ActiveLanguage() <> 'en' then begin
|
||||
RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v3.5\' + CustomMessage('dotnetfx35lp_lcid'), 'Install', version);
|
||||
|
||||
if version <> 1 then
|
||||
AddProduct('dotnetfx35_langpack.exe',
|
||||
'/lang:enu /qb /norestart',
|
||||
if (ActiveLanguage() <> 'en') then begin
|
||||
if (not netfxinstalled(NetFx35, CustomMessage('dotnetfx35lp_lcid'))) then
|
||||
AddProduct('dotnetfx35' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
|
||||
'/lang:enu /passive /norestart',
|
||||
CustomMessage('dotnetfx35lp_title'),
|
||||
CustomMessage('dotnetfx35lp_size'),
|
||||
CustomMessage('dotnetfx35lp_url'));
|
||||
CustomMessage('dotnetfx35lp_url'),
|
||||
false, false);
|
||||
end;
|
||||
end;
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
// requires Windows Server 2003 Service Pack 1, Windows Server 2008, Windows Vista, Windows XP Service Pack 2
|
||||
// requires windows installer 3.1
|
||||
// requires Windows Installer 3.1
|
||||
// WARNING: express setup (downloads and installs the components depending on your OS) if you want to deploy it on cd or network download the full bootsrapper on website below
|
||||
// http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7
|
||||
|
||||
[CustomMessages]
|
||||
dotnetfx35sp1_title=.NET Framework 3.5 Service Pack 1
|
||||
|
||||
dotnetfx35sp1_size=3 MB - 232 MB
|
||||
en.dotnetfx35sp1_size=3 MB - 232 MB
|
||||
de.dotnetfx35sp1_size=3 MB - 232 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
dotnetfx35sp1_url = 'http://download.microsoft.com/download/0/6/1/061f001c-8752-4600-a198-53214c69b51f/dotnetfx35setup.exe';
|
||||
|
||||
procedure dotnetfx35sp1();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v3.5', 'SP', version);
|
||||
if version < 1 then
|
||||
AddProduct('dotnetfx35sp1.exe',
|
||||
'/lang:enu /qb /norestart',
|
||||
if (netfxspversion(NetFx35, '') < 1) then
|
||||
AddProduct('dotnetfx35sp1' + GetArchitectureString() + '.exe',
|
||||
'/lang:enu /passive /norestart',
|
||||
CustomMessage('dotnetfx35sp1_title'),
|
||||
CustomMessage('dotnetfx35sp1_size'),
|
||||
dotnetfx35sp1_url);
|
||||
dotnetfx35sp1_url,
|
||||
false, false);
|
||||
end;
|
|
@ -11,17 +11,14 @@ de.dotnetfx35sp1lp_url=http://download.microsoft.com/download/d/7/2/d728b7b9-454
|
|||
|
||||
[Code]
|
||||
procedure dotnetfx35sp1lp();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
if ActiveLanguage() <> 'en' then begin
|
||||
RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v3.5\' + CustomMessage('dotnetfx35sp1lp_lcid'), 'SP', version);
|
||||
|
||||
if version < 1 then
|
||||
AddProduct('dotnetfx35sp1_langpack.exe',
|
||||
'/lang:enu /qb /norestart',
|
||||
if (ActiveLanguage() <> 'en') then begin
|
||||
if (netfxspversion(NetFx35, CustomMessage('dotnetfx35sp1lp_lcid')) < 1) then
|
||||
AddProduct('dotnetfx35sp1' + GetArchitectureString() + '_' + ActiveLanguage() + '.exe',
|
||||
'/lang:enu /passive /norestart',
|
||||
CustomMessage('dotnetfx35sp1lp_title'),
|
||||
CustomMessage('dotnetfx35sp1lp_size'),
|
||||
CustomMessage('dotnetfx35sp1lp_url'));
|
||||
CustomMessage('dotnetfx35sp1lp_url'),
|
||||
false, false);
|
||||
end;
|
||||
end;
|
|
@ -0,0 +1,30 @@
|
|||
// requires Windows 7, Windows 7 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Vista Service Pack 1, Windows XP Service Pack 3
|
||||
// requires Windows Installer 3.1
|
||||
// requires Internet Explorer 5.01
|
||||
// WARNING: express setup (downloads and installs the components depending on your OS) if you want to deploy it on cd or network download the full bootsrapper on website below
|
||||
// http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5765d7a8-7722-4888-a970-ac39b33fd8ab
|
||||
|
||||
[CustomMessages]
|
||||
dotnetfx40client_title=.NET Framework 4.0 Client
|
||||
|
||||
dotnetfx40client_size=3 MB - 197 MB
|
||||
|
||||
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
|
||||
en.dotnetfx40client_lcid=''
|
||||
de.dotnetfx40client_lcid='/lcid 1031 '
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
dotnetfx40client_url = 'http://download.microsoft.com/download/7/B/6/7B629E05-399A-4A92-B5BC-484C74B5124B/dotNetFx40_Client_setup.exe';
|
||||
|
||||
procedure dotnetfx40client();
|
||||
begin
|
||||
if (not netfxinstalled(NetFx40Client, '')) then
|
||||
AddProduct('dotNetFx40_Client_setup.exe',
|
||||
CustomMessage('dotnetfx40client_lcid') + '/passive /norestart',
|
||||
CustomMessage('dotnetfx40client_title'),
|
||||
CustomMessage('dotnetfx40client_size'),
|
||||
dotnetfx40client_url,
|
||||
false, false);
|
||||
end;
|
|
@ -0,0 +1,30 @@
|
|||
// requires Windows 7, Windows 7 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Vista Service Pack 1, Windows XP Service Pack 3
|
||||
// requires Windows Installer 3.1
|
||||
// requires Internet Explorer 5.01
|
||||
// WARNING: express setup (downloads and installs the components depending on your OS) if you want to deploy it on cd or network download the full bootsrapper on website below
|
||||
// http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992
|
||||
|
||||
[CustomMessages]
|
||||
dotnetfx40full_title=.NET Framework 4.0 Full
|
||||
|
||||
dotnetfx40full_size=3 MB - 197 MB
|
||||
|
||||
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
|
||||
en.dotnetfx40full_lcid=''
|
||||
de.dotnetfx40full_lcid='/lcid 1031 '
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
dotnetfx40full_url = 'http://download.microsoft.com/download/1/B/E/1BE39E79-7E39-46A3-96FF-047F95396215/dotNetFx40_Full_setup.exe';
|
||||
|
||||
procedure dotnetfx40full();
|
||||
begin
|
||||
if (not netfxinstalled(NetFx40Full, '')) then
|
||||
AddProduct('dotNetFx40_Full_setup.exe',
|
||||
CustomMessage('dotnetfx40full_lcid') + '/q /passive /norestart',
|
||||
CustomMessage('dotnetfx40full_title'),
|
||||
CustomMessage('dotnetfx40full_size'),
|
||||
dotnetfx40full_url,
|
||||
false, false);
|
||||
end;
|
|
@ -0,0 +1,69 @@
|
|||
[Code]
|
||||
type
|
||||
NetFXType = (NetFx10, NetFx11, NetFx20, NetFx30, NetFx35, NetFx40Client, NetFx40Full);
|
||||
|
||||
const
|
||||
netfx11plus_reg = 'Software\Microsoft\NET Framework Setup\NDP\';
|
||||
|
||||
function netfxinstalled(version: NetFXType; lcid: string): boolean;
|
||||
var
|
||||
regVersion: cardinal;
|
||||
regVersionString: string;
|
||||
begin
|
||||
if (lcid <> '') then
|
||||
lcid := '\' + lcid;
|
||||
|
||||
if (version = NetFx10) then begin
|
||||
RegQueryStringValue(HKLM, 'Software\Microsoft\.NETFramework\Policy\v1.0\3705', 'Install', regVersionString);
|
||||
Result := regVersionString <> '';
|
||||
end else begin
|
||||
case version of
|
||||
NetFx11:
|
||||
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v1.1.4322' + lcid, 'Install', regVersion);
|
||||
NetFx20:
|
||||
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v2.0.50727' + lcid, 'Install', regVersion);
|
||||
NetFx30:
|
||||
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.0\Setup' + lcid, 'InstallSuccess', regVersion);
|
||||
NetFx35:
|
||||
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.5' + lcid, 'Install', regVersion);
|
||||
NetFx40Client:
|
||||
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Client' + lcid, 'Install', regVersion);
|
||||
NetFx40Full:
|
||||
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Install', regVersion);
|
||||
end;
|
||||
Result := (regVersion <> 0);
|
||||
end;
|
||||
end;
|
||||
|
||||
function netfxspversion(version: NetFXType; lcid: string): integer;
|
||||
var
|
||||
regVersion: cardinal;
|
||||
begin
|
||||
if (lcid <> '') then
|
||||
lcid := '\' + lcid;
|
||||
|
||||
case version of
|
||||
NetFx10:
|
||||
//not supported
|
||||
regVersion := -1;
|
||||
NetFx11:
|
||||
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v1.1.4322' + lcid, 'SP', regVersion)) then
|
||||
regVersion := -1;
|
||||
NetFx20:
|
||||
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v2.0.50727' + lcid, 'SP', regVersion)) then
|
||||
regVersion := -1;
|
||||
NetFx30:
|
||||
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.0' + lcid, 'SP', regVersion)) then
|
||||
regVersion := -1;
|
||||
NetFx35:
|
||||
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.5' + lcid, 'SP', regVersion)) then
|
||||
regVersion := -1;
|
||||
NetFx40Client:
|
||||
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Client' + lcid, 'Servicing', regVersion)) then
|
||||
regVersion := -1;
|
||||
NetFx40Full:
|
||||
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Servicing', regVersion)) then
|
||||
regVersion := -1;
|
||||
end;
|
||||
Result := regVersion;
|
||||
end;
|
|
@ -5,7 +5,9 @@
|
|||
[CustomMessages]
|
||||
ie6_title=Internet Explorer 6
|
||||
|
||||
ie6_size=1 MB - 77.5 MB
|
||||
en.ie6_size=1 MB - 77.5 MB
|
||||
de.ie6_size=1 MB - 77,5 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
|
@ -16,10 +18,11 @@ var
|
|||
version: string;
|
||||
begin
|
||||
RegQueryStringValue(HKLM, 'Software\Microsoft\Internet Explorer', 'Version', version);
|
||||
if version < MinVersion then
|
||||
if (compareversion(version, MinVersion) < 0) then
|
||||
AddProduct('ie6.exe',
|
||||
'/q:a /C:"setup /QNT"',
|
||||
CustomMessage('ie6_title'),
|
||||
CustomMessage('ie6_size'),
|
||||
ie6_url);
|
||||
ie6_url,
|
||||
false, false);
|
||||
end;
|
|
@ -5,7 +5,7 @@ iis_title=Internet Information Services (IIS)
|
|||
[Code]
|
||||
function iis(): boolean;
|
||||
begin
|
||||
if not RegKeyExists(HKLM, 'SYSTEM\CurrentControlSet\Services\W3SVC\Security') then
|
||||
if (not RegKeyExists(HKLM, 'SYSTEM\CurrentControlSet\Services\W3SVC\Security')) then
|
||||
MsgBox(FmtMessage(CustomMessage('depinstall_missing'), [CustomMessage('iis_title')]), mbError, MB_OK)
|
||||
else
|
||||
Result := true;
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
[CustomMessages]
|
||||
jet4sp8_title=Jet 4
|
||||
|
||||
jet4sp8_size=3.7 MB
|
||||
en.jet4sp8_size=3.7 MB
|
||||
de.jet4sp8_size=3,7 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
|
@ -12,10 +14,11 @@ const
|
|||
procedure jet4sp8(MinVersion: string);
|
||||
begin
|
||||
//check for Jet4 Service Pack 8 installation
|
||||
if fileversion(ExpandConstant('{sys}{\}msjet40.dll')) < MinVersion then
|
||||
if (compareversion(fileversion(ExpandConstant('{sys}{\}msjet40.dll')), MinVersion) < 0) then
|
||||
AddProduct('jet4sp8.exe',
|
||||
'/q:a /c:"install /qb /l"',
|
||||
CustomMessage('jet4sp8_title'),
|
||||
CustomMessage('jet4sp8_size'),
|
||||
jet4sp8_url);
|
||||
jet4sp8_url,
|
||||
false, false);
|
||||
end;
|
|
@ -5,9 +5,10 @@
|
|||
[CustomMessages]
|
||||
en.kb835732_title=Windows 2000 Security Update (KB835732)
|
||||
de.kb835732_title=Windows 2000 Sicherheitsupdate (KB835732)
|
||||
nl.kb835732_title=Windows 2000 Veiligheidsupdate (KB835732)
|
||||
|
||||
kb835732_size=6.8 MB
|
||||
en.kb835732_size=6.8 MB
|
||||
de.kb835732_size=6,8 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
|
@ -15,12 +16,13 @@ const
|
|||
|
||||
procedure kb835732();
|
||||
begin
|
||||
if (minwinspversion(5, 0, 2) and maxwinspversion(5, 0, 4)) then begin
|
||||
if not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Updates\Windows 2000\SP5\KB835732\Filelist') then
|
||||
if (exactwinversion(5, 0) and (minwinspversion(5, 0, 2) and maxwinspversion(5, 0, 4))) then begin
|
||||
if (not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Updates\Windows 2000\SP5\KB835732\Filelist')) then
|
||||
AddProduct('kb835732.exe',
|
||||
'/q:a /c:"install /q"',
|
||||
CustomMessage('kb835732_title'),
|
||||
CustomMessage('kb835732_size'),
|
||||
kb835732_url);
|
||||
kb835732_url,
|
||||
false, false);
|
||||
end;
|
||||
end;
|
|
@ -1,7 +1,9 @@
|
|||
[CustomMessages]
|
||||
mdac28_title=Microsoft Data Access Components 2.8
|
||||
|
||||
mdac28_size=5.4 MB
|
||||
en.mdac28_size=5.4 MB
|
||||
de.mdac28_size=5,4 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
|
@ -13,10 +15,11 @@ var
|
|||
begin
|
||||
//check for MDAC installation
|
||||
RegQueryStringValue(HKLM, 'Software\Microsoft\DataAccess', 'FullInstallVer', version);
|
||||
if version < MinVersion then
|
||||
if (compareversion(version, MinVersion) < 0) then
|
||||
AddProduct('mdac28.exe',
|
||||
'/q:a /c:"install /qb /l"',
|
||||
CustomMessage('mdac28_title'),
|
||||
CustomMessage('mdac28_size'),
|
||||
mdac28_url);
|
||||
mdac28_url,
|
||||
false, false);
|
||||
end;
|
|
@ -1,7 +1,8 @@
|
|||
[CustomMessages]
|
||||
msi20_title=Windows Installer 2.0
|
||||
|
||||
msi20_size=1.7 MB
|
||||
en.msi20_size=1.7 MB
|
||||
de.msi20_size=1,7 MB
|
||||
|
||||
|
||||
[Code]
|
||||
|
@ -11,10 +12,11 @@ const
|
|||
procedure msi20(MinVersion: string);
|
||||
begin
|
||||
// Check for required Windows Installer 2.0 on Windows 98 and ME
|
||||
if maxwinversion(4, 9) and (fileversion(ExpandConstant('{sys}{\}msi.dll')) < MinVersion) then
|
||||
if (IsX86() and maxwinversion(4, 9) and (compareversion(fileversion(ExpandConstant('{sys}{\}msi.dll')), MinVersion) < 0)) then
|
||||
AddProduct('msi20.exe',
|
||||
'/q:a /c:"msiinst /delayrebootq"',
|
||||
CustomMessage('msi20_title'),
|
||||
CustomMessage('msi20_size'),
|
||||
msi20_url);
|
||||
msi20_url,
|
||||
false, false);
|
||||
end;
|
|
@ -1,7 +1,9 @@
|
|||
[CustomMessages]
|
||||
msi31_title=Windows Installer 3.1
|
||||
|
||||
msi31_size=2.5 MB
|
||||
en.msi31_size=2.5 MB
|
||||
de.msi31_size=2,5 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
|
@ -10,10 +12,11 @@ const
|
|||
procedure msi31(MinVersion: string);
|
||||
begin
|
||||
// Check for required Windows Installer 3.0 on Windows 2000 or higher
|
||||
if minwinversion(5, 0) and (fileversion(ExpandConstant('{sys}{\}msi.dll')) < MinVersion) then
|
||||
if (IsX86() and minwinversion(5, 0) and (compareversion(fileversion(ExpandConstant('{sys}{\}msi.dll')), MinVersion) < 0)) then
|
||||
AddProduct('msi31.exe',
|
||||
'/qb /norestart',
|
||||
'/passive /norestart',
|
||||
CustomMessage('msi31_title'),
|
||||
CustomMessage('msi31_size'),
|
||||
msi31_url);
|
||||
msi31_url,
|
||||
false, false);
|
||||
end;
|
45
Greenshot/releases/innosetup/scripts/products/msi45.iss
Normal file
45
Greenshot/releases/innosetup/scripts/products/msi45.iss
Normal file
|
@ -0,0 +1,45 @@
|
|||
[CustomMessages]
|
||||
msi45_title=Windows Installer 4.5
|
||||
|
||||
en.msi45win60_size=1.7 MB
|
||||
de.msi45win60_size=1,7 MB
|
||||
|
||||
en.msi45win52_size=3.0 MB
|
||||
de.msi45win52_size=3,0 MB
|
||||
|
||||
en.msi45win51_size=3.2 MB
|
||||
de.msi45win51_size=3,2 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
msi45win60_url = 'http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/Windows6.0-KB942288-v2-x86.msu';
|
||||
msi45win52_url = 'http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/WindowsServer2003-KB942288-v4-x86.exe';
|
||||
msi45win51_url = 'http://download.microsoft.com/download/2/6/1/261fca42-22c0-4f91-9451-0e0f2e08356d/WindowsXP-KB942288-v3-x86.exe';
|
||||
|
||||
procedure msi45(MinVersion: string);
|
||||
begin
|
||||
if (IsX86() and (compareversion(fileversion(ExpandConstant('{sys}{\}msi.dll')), MinVersion) < 0)) then begin
|
||||
if minwinversion(6, 0) then
|
||||
AddProduct('msi45_60.msu',
|
||||
'/quiet /norestart',
|
||||
CustomMessage('msi45_title'),
|
||||
CustomMessage('msi45win60_size'),
|
||||
msi45win60_url,
|
||||
false, false)
|
||||
else if minwinversion(5, 2) then
|
||||
AddProduct('msi45_52.exe',
|
||||
'/quiet /norestart',
|
||||
CustomMessage('msi45_title'),
|
||||
CustomMessage('msi45win52_size'),
|
||||
msi45win52_url,
|
||||
false, false)
|
||||
else if minwinversion(5, 1) then
|
||||
AddProduct('msi45_51.exe',
|
||||
'/quiet /norestart',
|
||||
CustomMessage('msi45_title'),
|
||||
CustomMessage('msi45win51_size'),
|
||||
msi45win51_url,
|
||||
false, false);
|
||||
end;
|
||||
end;
|
|
@ -1,32 +1,42 @@
|
|||
// requires Windows 2000 Service Pack 4, Windows Server 2003 Service Pack 1, Windows XP Service Pack 2
|
||||
// SQL Express 2005 Service Pack 1+ should be installed for SQL Express 2005 to work on Vista
|
||||
// requires windows installer 3.1
|
||||
// http://www.microsoft.com/downloads/details.aspx?FamilyID=220549b5-0b07-4448-8848-dcc397514b41
|
||||
// SQL Server Express is supported on x64 and EMT64 systems in Windows On Windows (WOW). SQL Server Express is not supported on IA64 systems
|
||||
// requires Microsoft .NET Framework 2.0 or later
|
||||
// SQLEXPR32.EXE is a smaller package that can be used to install SQL Server Express on 32-bit operating systems only. The larger SQLEXPR.EXE package supports installing onto both 32-bit and 64-bit (WOW install) operating systems. There is no other difference between these packages.
|
||||
// http://www.microsoft.com/download/en/details.aspx?id=15291
|
||||
|
||||
[CustomMessages]
|
||||
sql2005express_title=SQL Server 2005 Express
|
||||
sql2005express_title=SQL Server 2005 Express SP3
|
||||
|
||||
en.sql2005express_size=57.7 MB
|
||||
de.sql2005express_size=57,7 MB
|
||||
en.sql2005express_size=38.1 MB
|
||||
de.sql2005express_size=38,1 MB
|
||||
|
||||
en.sql2005express_size_x64=58.1 MB
|
||||
de.sql2005express_size_x64=58,1 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
sql2005express_url = 'http://download.microsoft.com/download/f/1/0/f10c4f60-630e-4153-bd53-c3010e4c513b/SQLEXPR.EXE';
|
||||
sql2005express_url = 'http://download.microsoft.com/download/4/B/E/4BED5810-C8C0-4697-BDC3-DBC114B8FF6D/SQLEXPR32_NLA.EXE';
|
||||
sql2005express_url_x64 = 'http://download.microsoft.com/download/4/B/E/4BED5810-C8C0-4697-BDC3-DBC114B8FF6D/SQLEXPR_NLA.EXE';
|
||||
|
||||
procedure sql2005express();
|
||||
var
|
||||
version: cardinal;
|
||||
version: string;
|
||||
begin
|
||||
//CHECK NOT FINISHED YET
|
||||
//RTM: 9.00.1399.06
|
||||
//Service Pack 1: 9.1.2047.00
|
||||
//Service Pack 2: 9.2.3042.00
|
||||
RegQueryDWordValue(HKLM, 'Software\Microsoft\Microsoft SQL Server\90\DTS\Setup', 'Install', version);
|
||||
if version <> 1 then
|
||||
AddProduct('sql2005express.exe',
|
||||
'/qb',
|
||||
// Newer detection method required for SP3 and x64
|
||||
//Service Pack 3: 9.00.4035.00
|
||||
//RegQueryDWordValue(HKLM, 'Software\Microsoft\Microsoft SQL Server\90\DTS\Setup', 'Install', version);
|
||||
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS\MSSQLServer\CurrentVersion', 'CurrentVersion', version);
|
||||
if (version < '9.00.4035') then begin
|
||||
if (not isIA64()) then
|
||||
AddProduct('sql2005express' + GetArchitectureString() + '.exe',
|
||||
'/qb ADDLOCAL=ALL INSTANCENAME=SQLEXPRESS',
|
||||
CustomMessage('sql2005express_title'),
|
||||
CustomMessage('sql2005express_size'),
|
||||
sql2005express_url);
|
||||
CustomMessage('sql2005express_size' + GetArchitectureString()),
|
||||
GetString(sql2005express_url, sql2005express_url_x64, ''),
|
||||
false, false);
|
||||
end;
|
||||
end;
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
// requires Windows 7, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP
|
||||
// requires Microsoft .NET Framework 3.5 SP 1 or later
|
||||
// requires Windows Installer 4.5 or later
|
||||
// SQL Server Express is supported on x64 and EMT64 systems in Windows On Windows (WOW). SQL Server Express is not supported on IA64 systems
|
||||
// SQLEXPR32.EXE is a smaller package that can be used to install SQL Server Express on 32-bit operating systems only. The larger SQLEXPR.EXE package supports installing onto both 32-bit and 64-bit (WOW install) operating systems. There is no other difference between these packages.
|
||||
// http://www.microsoft.com/download/en/details.aspx?id=3743
|
||||
|
||||
[CustomMessages]
|
||||
sql2008expressr2_title=SQL Server 2008 Express R2
|
||||
|
||||
en.sql2008expressr2_size=58.2 MB
|
||||
de.sql2008expressr2_size=58,2 MB
|
||||
|
||||
en.sql2008expressr2_size_x64=74.1 MB
|
||||
de.sql2008expressr2_size_x64=74,1 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
sql2008expressr2_url = 'http://download.microsoft.com/download/5/1/A/51A153F6-6B08-4F94-A7B2-BA1AD482BC75/SQLEXPR32_x86_ENU.exe';
|
||||
sql2008expressr2_url_x64 = 'http://download.microsoft.com/download/5/1/A/51A153F6-6B08-4F94-A7B2-BA1AD482BC75/SQLEXPR_x64_ENU.exe';
|
||||
|
||||
procedure sql2008express();
|
||||
var
|
||||
version: string;
|
||||
begin
|
||||
// This check does not take into account that a full version of SQL Server could be installed,
|
||||
// making Express unnecessary.
|
||||
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS\MSSQLServer\CurrentVersion', 'CurrentVersion', version);
|
||||
if (compareversion(version, '10.5') < 0) then begin
|
||||
if (not isIA64()) then
|
||||
AddProduct('sql2008expressr2' + GetArchitectureString() + '.exe',
|
||||
'/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=Install /FEATURES=All /INSTANCENAME=SQLEXPRESS /SQLSVCACCOUNT="NT AUTHORITY\Network Service" /SQLSYSADMINACCOUNTS="builtin\administrators"',
|
||||
CustomMessage('sql2008expressr2_title'),
|
||||
CustomMessage('sql2008expressr2_size' + GetArchitectureString()),
|
||||
GetString(sql2008expressr2_url, sql2008expressr2_url_x64, ''),
|
||||
false, false);
|
||||
end;
|
||||
end;
|
|
@ -0,0 +1,21 @@
|
|||
[CustomMessages]
|
||||
sqlcompact35sp2_title=SQL Server Compact 3.5 Service Pack 2
|
||||
|
||||
en.sqlcompact35sp2_size=5.3 MB
|
||||
de.sqlcompact35sp2_size=5,3 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
sqlcompact35sp2_url = 'http://download.microsoft.com/download/E/C/1/EC1B2340-67A0-4B87-85F0-74D987A27160/SSCERuntime-ENU.exe';
|
||||
|
||||
procedure sqlcompact35sp2();
|
||||
begin
|
||||
if (isX86() and not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5')) then
|
||||
AddProduct('sqlcompact35sp2.msi',
|
||||
'/qb',
|
||||
CustomMessage('sqlcompact35sp2_title'),
|
||||
CustomMessage('sqlcompact35sp2_size'),
|
||||
sqlcompact35sp2_url,
|
||||
false, false);
|
||||
end;
|
|
@ -0,0 +1,52 @@
|
|||
function stringtoversion(var temp: String): Integer;
|
||||
var
|
||||
part: String;
|
||||
pos1: Integer;
|
||||
|
||||
begin
|
||||
if (Length(temp) = 0) then begin
|
||||
Result := -1;
|
||||
Exit;
|
||||
end;
|
||||
|
||||
pos1 := Pos('.', temp);
|
||||
if (pos1 = 0) then begin
|
||||
Result := StrToInt(temp);
|
||||
temp := '';
|
||||
end else begin
|
||||
part := Copy(temp, 1, pos1 - 1);
|
||||
temp := Copy(temp, pos1 + 1, Length(temp));
|
||||
Result := StrToInt(part);
|
||||
end;
|
||||
end;
|
||||
|
||||
function compareinnerversion(var x, y: String): Integer;
|
||||
var
|
||||
num1, num2: Integer;
|
||||
|
||||
begin
|
||||
num1 := stringtoversion(x);
|
||||
num2 := stringtoversion(y);
|
||||
if (num1 = -1) or (num2 = -1) then begin
|
||||
Result := 0;
|
||||
Exit;
|
||||
end;
|
||||
|
||||
if (num1 < num2) then begin
|
||||
Result := -1;
|
||||
end else if (num1 > num2) then begin
|
||||
Result := 1;
|
||||
end else begin
|
||||
Result := compareinnerversion(x, y);
|
||||
end;
|
||||
end;
|
||||
|
||||
function compareversion(versionA, versionB: String): Integer;
|
||||
var
|
||||
temp1, temp2: String;
|
||||
|
||||
begin
|
||||
temp1 := versionA;
|
||||
temp2 := versionB;
|
||||
Result := compareinnerversion(temp1, temp2);
|
||||
end;
|
|
@ -0,0 +1,42 @@
|
|||
// requires Windows 7, Windows 7 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Vista Service Pack 1, Windows XP Service Pack 3
|
||||
// requires Windows Installer 3.1 or later
|
||||
// requires Internet Explorer 5.01 or later
|
||||
// http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992
|
||||
|
||||
[CustomMessages]
|
||||
vcredist2010_title=Visual C++ 2010 Redistributable
|
||||
|
||||
en.vcredist2010_size=4.8 MB
|
||||
de.vcredist2010_size=4,8 MB
|
||||
|
||||
en.vcredist2010_size_x64=5.5 MB
|
||||
de.vcredist2010_size_x64=5,5 MB
|
||||
|
||||
en.vcredist2010_size_ia64=2.2 MB
|
||||
de.vcredist2010_size_ia64=2,2 MB
|
||||
|
||||
;http://www.microsoft.com/globaldev/reference/lcid-all.mspx
|
||||
en.vcredist2010_lcid=''
|
||||
de.vcredist2010_lcid='/lcid 1031 '
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
vcredist2010_url = 'http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe';
|
||||
vcredist2010_url_x64 = 'http://download.microsoft.com/download/3/2/2/3224B87F-CFA0-4E70-BDA3-3DE650EFEBA5/vcredist_x64.exe';
|
||||
vcredist2010_url_ia64 = 'http://download.microsoft.com/download/3/3/A/33A75193-2CBC-424E-A886-287551FF1EB5/vcredist_IA64.exe';
|
||||
|
||||
procedure vcredist2010();
|
||||
var
|
||||
version: cardinal;
|
||||
begin
|
||||
RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\' + GetString('x86', 'x64', 'ia64'), 'Install', version);
|
||||
|
||||
if (version <> 1) then
|
||||
AddProduct('vcredist2010' + GetArchitectureString() + '.exe',
|
||||
CustomMessage('vcredist2010_lcid') + '/passive /norestart',
|
||||
CustomMessage('vcredist2010_title'),
|
||||
CustomMessage('vcredist2010_size' + GetArchitectureString()),
|
||||
GetString(vcredist2010_url, vcredist2010_url_x64, vcredist2010_url_ia64),
|
||||
false, false);
|
||||
end;
|
55
Greenshot/releases/innosetup/scripts/products/wic.iss
Normal file
55
Greenshot/releases/innosetup/scripts/products/wic.iss
Normal file
|
@ -0,0 +1,55 @@
|
|||
//requires Windows Server 2003, Windows Server 2003 R2 Datacenter Edition (32-Bit x86), Windows Server 2003 R2 Enterprise Edition (32-Bit x86), Windows Server 2003 R2 Standard Edition (32-bit x86), Windows XP Service Pack 2
|
||||
|
||||
[CustomMessages]
|
||||
wic_title=Windows Imaging Component
|
||||
|
||||
en.wic_size=1.2 MB
|
||||
de.wic_size=1,2 MB
|
||||
|
||||
|
||||
[Code]
|
||||
const
|
||||
wic_url = 'http://download.microsoft.com/download/f/f/1/ff178bb1-da91-48ed-89e5-478a99387d4f/wic_x86_';
|
||||
wic_url_x64 = 'http://download.microsoft.com/download/6/4/5/645fed5f-a6e7-44d9-9d10-fe83348796b0/wic_x64';
|
||||
|
||||
function GetConvertedLanguageID(): string;
|
||||
begin
|
||||
case ActiveLanguage() of
|
||||
'en': //English
|
||||
Result := 'enu';
|
||||
'zh': //Chinese
|
||||
Result := 'chs';
|
||||
'de': //German
|
||||
Result := 'deu';
|
||||
'es': //Spanish
|
||||
Result := 'esn';
|
||||
'fr': //French
|
||||
Result := 'fra';
|
||||
'it': //Italian
|
||||
Result := 'ita';
|
||||
'ja': //Japanese
|
||||
Result := 'jpn';
|
||||
'nl': //Dutch
|
||||
Result := 'nld';
|
||||
'pt': //Portuguese
|
||||
Result := 'ptb';
|
||||
'ru': //Russian
|
||||
Result := 'rus';
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure wic();
|
||||
begin
|
||||
if (not isIA64()) then begin
|
||||
//only needed on Windows XP SP2 or Windows Server 2003
|
||||
if ((exactwinversion(5, 1) and exactwinspversion(5, 1, 2)) or (exactwinversion(5, 2))) then begin
|
||||
if (not FileExists(GetEnv('windir') + '\system32\windowscodecs.dll')) then
|
||||
AddProduct('wic' + GetArchitectureString() + '_' + GetConvertedLanguageID() + '.exe',
|
||||
'/q',
|
||||
CustomMessage('wic_title'),
|
||||
CustomMessage('wic_size'),
|
||||
GetString(wic_url, wic_url_x64, '') + GetConvertedLanguageID() + '.exe',
|
||||
false, false);
|
||||
end;
|
||||
end;
|
||||
end;
|
582
Greenshot/releases/innosetup/setup - 4.0.iss
Normal file
582
Greenshot/releases/innosetup/setup - 4.0.iss
Normal file
|
@ -0,0 +1,582 @@
|
|||
#define ExeName "Greenshot"
|
||||
#define Version "2.0.0.$WCREV$"
|
||||
|
||||
[Files]
|
||||
Source: ..\..\bin\Release\Greenshot.exe; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||||
Source: ..\..\bin\Release\GreenshotPlugin.dll; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||||
Source: ..\..\bin\Release\Greenshot.exe.config; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||||
Source: ..\..\bin\Release\checksum.MD5; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||||
;Source: ..\greenshot-defaults.ini; DestDir: {app}; Flags: overwritereadonly ignoreversion replacesameversion
|
||||
Source: ..\additional_files\installer.txt; DestDir: {app}; Components: greenshot; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion
|
||||
Source: ..\additional_files\license.txt; DestDir: {app}; Components: greenshot; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion
|
||||
Source: ..\additional_files\readme.txt; DestDir: {app}; Components: greenshot; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion
|
||||
|
||||
; Core language files
|
||||
Source: ..\..\Languages\*nl-NL*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*en-US*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*de-DE*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
|
||||
; Additional language files
|
||||
Source: ..\..\Languages\*ar-SY*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\arSY; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*cs-CZ*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\csCZ; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*da-DK*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\daDK; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*de-x-franconia*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\dexfranconia; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*el-GR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\elGR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*es-ES*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\esES; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*fa-IR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\faIR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*fi-FI*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\fiFI; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*fr-FR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\frFR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*fr-QC*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\frQC; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*he-IL*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\heIL; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*hu-HU*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\huHU; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*id-ID*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\idID; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*it-IT*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\itIT; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*ja-JP*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\jaJP; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*ko-KR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\koKR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*lt-LT*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ltLT; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*my-MM*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\myMM; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*nn-NO*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\nnNO; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*pl-PL*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\plPL; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*pt-BR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ptBR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*pt-PT*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ptPT; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*ro-RO*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\roRO; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*ru-RU*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ruRU; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*sk-SK*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\skSK; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*sl-SI*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\slSI; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*sr-RS*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\srRS; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*sv-SE*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\svSE; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*tr-TR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\trTR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*uk-UA*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\ukUA; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*vi-VN*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\viVN; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*zh-CN*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\zhCN; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*zh-TW*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\zhTW; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
|
||||
;Office Plugin
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotOfficePlugin\GreenshotOfficePlugin.gsp; DestDir: {app}\Plugins\GreenshotOfficePlugin; Components: plugins\office; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotOfficePlugin\*; DestDir: {app}\Languages\Plugins\GreenshotOfficePlugin; Components: plugins\office; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
;OCR Plugin
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotOCRPlugin\GreenshotOCRPlugin.gsp; DestDir: {app}\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotOCRPlugin\GreenshotOCRCommand.exe; DestDir: {app}\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotOCRPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
;JIRA Plugin
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotJiraPlugin\GreenshotJiraPlugin.gsp; DestDir: {app}\Plugins\GreenshotJiraPlugin; Components: plugins\jira; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotJiraPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotJiraPlugin; Components: plugins\jira; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
;Imgur Plugin
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotImgurPlugin\GreenshotImgurPlugin.gsp; DestDir: {app}\Plugins\GreenshotImgurPlugin; Components: plugins\imgur; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotImgurPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotImgurPlugin; Components: plugins\imgur; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
;Box Plugin
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotBoxPlugin\GreenshotBoxPlugin.gsp; DestDir: {app}\Plugins\GreenshotBoxPlugin; Components: plugins\box; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotBoxPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotBoxPlugin; Components: plugins\box; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
;DropBox Plugin
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotDropBoxPlugin\GreenshotDropboxPlugin.gsp; DestDir: {app}\Plugins\GreenshotDropBoxPlugin; Components: plugins\dropbox; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotDropBoxPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotDropBoxPlugin; Components: plugins\dropbox; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
;Flickr Plugin
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotFlickrPlugin\GreenshotFlickrPlugin.gsp; DestDir: {app}\Plugins\GreenshotFlickrPlugin; Components: plugins\flickr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotFlickrPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotFlickrPlugin; Components: plugins\flickr; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
;Photobucket Plugin
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotPhotobucketPlugin\GreenshotPhotobucketPlugin.gsp; DestDir: {app}\Plugins\GreenshotPhotobucketPlugin; Components: plugins\photobucket; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotPhotobucketPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotPhotobucketPlugin; Components: plugins\photobucket; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
;Picasa Plugin
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotPicasaPlugin\GreenshotPicasaPlugin.gsp; DestDir: {app}\Plugins\GreenshotPicasaPlugin; Components: plugins\picasa; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotPicasaPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotPicasaPlugin; Components: plugins\picasa; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
;Confluence Plugin
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotConfluencePlugin\GreenshotConfluencePlugin.gsp; DestDir: {app}\Plugins\GreenshotConfluencePlugin; Components: plugins\confluence; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotConfluencePlugin\*; DestDir: {app}\Languages\Plugins\GreenshotConfluencePlugin; Components: plugins\confluence; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
;ExternalCommand Plugin
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotExternalCommandPlugin\GreenshotExternalCommandPlugin.gsp; DestDir: {app}\Plugins\GreenshotExternalCommandPlugin; Components: plugins\externalcommand; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotExternalCommandPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotExternalCommandPlugin; Components: plugins\externalcommand; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
;Network Import Plugin
|
||||
;Source: ..\..\bin\Release\Plugins\GreenshotNetworkImportPlugin\*; DestDir: {app}\Plugins\GreenshotNetworkImportPlugin; Components: plugins\networkimport; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
[Setup]
|
||||
; changes associations is used when the installer installs new extensions, it clears the explorer icon cache
|
||||
ChangesAssociations=yes
|
||||
AppId={#ExeName}
|
||||
AppName={#ExeName}
|
||||
AppMutex=F48E86D3-E34C-4DB7-8F8F-9A0EA55F0D08
|
||||
AppPublisher={#ExeName}
|
||||
AppPublisherURL=http://getgreenshot.org
|
||||
AppSupportURL=http://getgreenshot.org
|
||||
AppUpdatesURL=http://getgreenshot.org
|
||||
AppVerName={#ExeName} {#Version}
|
||||
AppVersion={#Version}
|
||||
ArchitecturesInstallIn64BitMode=x64
|
||||
Compression=lzma2/ultra64
|
||||
SolidCompression=yes
|
||||
DefaultDirName={code:DefDirRoot}\{#ExeName}
|
||||
DefaultGroupName={#ExeName}
|
||||
InfoBeforeFile=..\additional_files\readme.txt
|
||||
LicenseFile=..\additional_files\license.txt
|
||||
LanguageDetectionMethod=uilanguage
|
||||
MinVersion=0,5.01.2600
|
||||
OutputBaseFilename={#ExeName}-INSTALLER-{#Version}-UNSTABLE
|
||||
OutputDir=..\
|
||||
PrivilegesRequired=none
|
||||
SetupIconFile=..\..\icons\applicationIcon\icon.ico
|
||||
UninstallDisplayIcon={app}\{#ExeName}.exe
|
||||
Uninstallable=true
|
||||
VersionInfoCompany={#ExeName}
|
||||
VersionInfoProductName={#ExeName}
|
||||
VersionInfoTextVersion={#Version}
|
||||
VersionInfoVersion={#Version}
|
||||
; Reference a bitmap, max size 164x314
|
||||
WizardImageFile=installer-large.bmp
|
||||
; Reference a bitmap, max size 55x58
|
||||
WizardSmallImageFile=installer-small.bmp
|
||||
[Registry]
|
||||
; Delete all startup entries, so we don't have leftover values
|
||||
Root: HKCU; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror;
|
||||
Root: HKLM; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror;
|
||||
Root: HKCU32; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror; Check: IsWin64()
|
||||
Root: HKLM32; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: none; ValueName: {#ExeName}; Flags: deletevalue noerror; Check: IsWin64()
|
||||
; Create the startup entries if requested to do so
|
||||
; HKEY_LOCAL_USER - for current user only
|
||||
Root: HKCU; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: {#ExeName}; ValueData: {app}\{#ExeName}.exe; Permissions: users-modify; Flags: uninsdeletevalue noerror; Tasks: startup; Check: IsRegularUser
|
||||
; HKEY_LOCAL_MACHINE - for all users
|
||||
Root: HKLM; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: {#ExeName}; ValueData: {app}\{#ExeName}.exe; Permissions: users-modify; Flags: uninsdeletevalue noerror; Tasks: startup; Check: not IsRegularUser
|
||||
; Register our own filetype for admin
|
||||
Root: HKLM; Subkey: Software\Classes\.greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot"; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
|
||||
Root: HKLM; Subkey: Software\Classes\Greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot File"; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
|
||||
Root: HKLM; Subkey: Software\Classes\Greenshot\DefaultIcon; ValueType: string; ValueName: ""; ValueData: "{app}\Greenshot.EXE,0"; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
|
||||
Root: HKLM; Subkey: Software\Classes\Greenshot\shell\open\command; ValueType: string; ValueName: ""; ValueData: """{app}\Greenshot.EXE"" --openfile ""%1"""; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
|
||||
; Register our own filetype for normal user
|
||||
Root: HKCU; Subkey: Software\Classes\.greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot"; Flags: uninsdeletevalue noerror; Check: IsRegularUser
|
||||
Root: HKCU; Subkey: Software\Classes\Greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot File"; Flags: uninsdeletevalue noerror; Check: IsRegularUser
|
||||
Root: HKCU; Subkey: Software\Classes\Greenshot\DefaultIcon; ValueType: string; ValueName: ""; ValueData: "{app}\Greenshot.EXE,0"; Flags: uninsdeletevalue noerror; Check: IsRegularUser
|
||||
Root: HKCU; Subkey: Software\Classes\Greenshot\shell\open\command; ValueType: string; ValueName: ""; ValueData: """{app}\Greenshot.EXE"" --openfile ""%1"""; Flags: uninsdeletevalue noerror; Check: IsRegularUser
|
||||
[Icons]
|
||||
Name: {group}\{#ExeName}; Filename: {app}\{#ExeName}.exe; WorkingDir: {app}
|
||||
Name: {group}\Uninstall {#ExeName}; Filename: {uninstallexe}; WorkingDir: {app}; AppUserModelID: "{#ExeName}.{#ExeName}"
|
||||
Name: {group}\Readme.txt; Filename: {app}\readme.txt; WorkingDir: {app}
|
||||
Name: {group}\License.txt; Filename: {app}\license.txt; WorkingDir: {app}
|
||||
[Languages]
|
||||
Name: en; MessagesFile: compiler:Default.isl
|
||||
Name: cn; MessagesFile: compiler:Languages\ChineseSimplified.isl
|
||||
Name: de; MessagesFile: compiler:Languages\German.isl
|
||||
Name: es; MessagesFile: compiler:Languages\Spanish.isl
|
||||
Name: fi; MessagesFile: compiler:Languages\Finnish.isl
|
||||
Name: fr; MessagesFile: compiler:Languages\French.isl
|
||||
Name: nl; MessagesFile: compiler:Languages\Dutch.isl
|
||||
Name: nn; MessagesFile: compiler:Languages\NorwegianNynorsk.isl
|
||||
Name: sr; MessagesFile: compiler:Languages\SerbianCyrillic.isl
|
||||
|
||||
[Tasks]
|
||||
Name: startup; Description: {cm:startup}
|
||||
|
||||
[CustomMessages]
|
||||
|
||||
de.confluence=Confluence Plug-in
|
||||
de.default=Standard installation
|
||||
en.office=Microsoft Office Plug-in
|
||||
de.externalcommand=Öffne mit ein externem Kommando Plug-in
|
||||
de.imgur=Imgur Plug-in (Siehe: http://imgur.com)
|
||||
de.jira=Jira Plug-in
|
||||
de.language=Zusätzliche Sprachen
|
||||
de.ocr=OCR Plug-in (benötigt Microsoft Office Document Imaging (MODI))
|
||||
de.optimize=Optimierung der Leistung, kann etwas dauern.
|
||||
de.startgreenshot={#ExeName} starten
|
||||
de.startup={#ExeName} starten wenn Windows hochfährt
|
||||
|
||||
en.confluence=Confluence plug-in
|
||||
en.default=Default installation
|
||||
en.office=Microsoft Office plug-in
|
||||
en.externalcommand=Open with external command plug-in
|
||||
en.imgur=Imgur plug-in (See: http://imgur.com)
|
||||
en.jira=Jira plug-in
|
||||
en.language=Additional languages
|
||||
en.ocr=OCR plug-in (needs Microsoft Office Document Imaging (MODI))
|
||||
en.optimize=Optimizing performance, this may take a while.
|
||||
en.startgreenshot=Start {#ExeName}
|
||||
en.startup=Start {#ExeName} with Windows start
|
||||
|
||||
es.confluence=Extensión para Confluence
|
||||
es.default=${default}
|
||||
es.externalcommand=Extensión para abrir con programas externos
|
||||
es.imgur=Extensión para Imgur (Ver http://imgur.com)
|
||||
es.jira=Extensión para Jira
|
||||
es.language=Idiomas adicionales
|
||||
es.ocr=Extensión para OCR (necesita Microsoft Office Document Imaging (MODI))
|
||||
es.optimize=Optimizando rendimiento; por favor, espera.
|
||||
es.startgreenshot=Lanzar {#ExeName}
|
||||
es.startup=Lanzar {#ExeName} al iniciarse Windows
|
||||
|
||||
fi.confluence=Confluence-liitännäinen
|
||||
fi.default=${default}
|
||||
fi.office=Microsoft-Office-liitännäinen
|
||||
fi.externalcommand=Avaa Ulkoinen komento-liitännäisellä
|
||||
fi.imgur=Imgur-liitännäinen (Katso: http://imgur.com)
|
||||
fi.jira=Jira-liitännäinen
|
||||
fi.language=Lisäkielet
|
||||
fi.ocr=OCR-liitännäinen (Tarvitaan: Microsoft Office Document Imaging (MODI))
|
||||
fi.optimize=Optimoidaan suorituskykyä, tämä voi kestää hetken.
|
||||
fi.startgreenshot=Käynnistä {#ExeName}
|
||||
fi.startup=Käynnistä {#ExeName} Windowsin käynnistyessä
|
||||
|
||||
fr.confluence=Greffon Confluence
|
||||
fr.default=${default}
|
||||
fr.office=Greffon Microsoft Office
|
||||
fr.externalcommand=Ouvrir avec le greffon de commande externe
|
||||
fr.imgur=Greffon Imgur (Voir: http://imgur.com)
|
||||
fr.jira=Greffon Jira
|
||||
fr.language=Langues additionnelles
|
||||
fr.ocr=Greffon OCR (nécessite Document Imaging de Microsoft Office [MODI])
|
||||
fr.optimize=Optimisation des performances, Ceci peut prendre un certain temps.
|
||||
fr.startgreenshot=Démarrer {#ExeName}
|
||||
fr.startup=Lancer {#ExeName} au démarrage de Windows
|
||||
|
||||
nl.confluence=Confluence plug-in
|
||||
nl.default=Default installation
|
||||
nl.office=Microsoft Office plug-in
|
||||
nl.externalcommand=Open met externes commando plug-in
|
||||
nl.imgur=Imgur plug-in (Zie: http://imgur.com)
|
||||
nl.jira=Jira plug-in
|
||||
nl.language=Extra talen
|
||||
nl.ocr=OCR plug-in (heeft Microsoft Office Document Imaging (MODI) nodig)
|
||||
nl.optimize=Prestaties verbeteren, kan even duren.
|
||||
nl.startgreenshot=Start {#ExeName}
|
||||
nl.startup=Start {#ExeName} wanneer Windows opstart
|
||||
|
||||
nn.confluence=Confluence-tillegg
|
||||
nn.default=Default installation
|
||||
nn.office=Microsoft Office Tillegg
|
||||
nn.externalcommand=Tillegg for å opne med ekstern kommando
|
||||
nn.imgur=Imgur-tillegg (sjå http://imgur.com)
|
||||
nn.jira=Jira-tillegg
|
||||
nn.language=Andre språk
|
||||
nn.ocr=OCR-tillegg (krev Microsoft Office Document Imaging (MODI))
|
||||
nn.optimize=Optimaliserar ytelse, dette kan ta litt tid...
|
||||
nn.startgreenshot=Start {#ExeName}
|
||||
nn.startup=Start {#ExeName} når Windows startar
|
||||
|
||||
sr.confluence=Прикључак за Конфлуенс
|
||||
sr.default=${default}
|
||||
sr.externalcommand=Отвори са прикључком за спољне наредбе
|
||||
sr.imgur=Прикључак за Имиџер (http://imgur.com)
|
||||
sr.jira=Прикључак за Џиру
|
||||
sr.language=Додатни језици
|
||||
sr.ocr=OCR прикључак (захтева Microsoft Office Document Imaging (MODI))
|
||||
sr.optimize=Оптимизујем перформансе…
|
||||
sr.startgreenshot=Покрени Гриншот
|
||||
sr.startup=Покрени програм са системом
|
||||
|
||||
cn.confluence=Confluence插件
|
||||
cn.default=${default}
|
||||
cn.externalcommand=使用外部命令打开插件
|
||||
cn.imgur=Imgur插件( (请访问: http://imgur.com))
|
||||
cn.jira=Jira插件
|
||||
cn.language=其它语言
|
||||
cn.ocr=OCR插件(需要Microsoft Office Document Imaging (MODI)的支持)
|
||||
cn.optimize=正在优化性能,这可能需要一点时间。
|
||||
cn.startgreenshot=启动{#ExeName}
|
||||
cn.startup=让{#ExeName}随Windows一起启动
|
||||
|
||||
|
||||
[Types]
|
||||
Name: "default"; Description: "{cm:default}"
|
||||
Name: "full"; Description: "{code:FullInstall}"
|
||||
Name: "compact"; Description: "{code:CompactInstall}"
|
||||
Name: "custom"; Description: "{code:CustomInstall}"; Flags: iscustom
|
||||
|
||||
[Components]
|
||||
Name: "greenshot"; Description: "Greenshot"; Types: default full compact custom; Flags: fixed
|
||||
Name: "plugins\office"; Description: {cm:office}; Types: default full custom; Flags: disablenouninstallwarning
|
||||
Name: "plugins\ocr"; Description: {cm:ocr}; Types: default full custom; Flags: disablenouninstallwarning
|
||||
Name: "plugins\jira"; Description: {cm:jira}; Types: full custom; Flags: disablenouninstallwarning
|
||||
Name: "plugins\imgur"; Description: {cm:imgur}; Types: default full custom; Flags: disablenouninstallwarning
|
||||
Name: "plugins\confluence"; Description: {cm:confluence}; Types: full custom; Flags: disablenouninstallwarning
|
||||
Name: "plugins\externalcommand"; Description: {cm:externalcommand}; Types: default full custom; Flags: disablenouninstallwarning
|
||||
;Name: "plugins\networkimport"; Description: "Network Import Plugin"; Types: full
|
||||
Name: "plugins\box"; Description: "Box Plugin"; Types: full custom; Flags: disablenouninstallwarning
|
||||
Name: "plugins\dropbox"; Description: "Dropbox Plugin"; Types: full custom; Flags: disablenouninstallwarning
|
||||
Name: "plugins\flickr"; Description: "Flickr Plugin"; Types: full custom; Flags: disablenouninstallwarning
|
||||
Name: "plugins\picasa"; Description: "Picasa Plugin"; Types: full custom; Flags: disablenouninstallwarning
|
||||
Name: "plugins\photobucket"; Description: "Photobucket Plugin"; Types: full custom; Flags: disablenouninstallwarning
|
||||
Name: "languages"; Description: {cm:language}; Types: full custom; Flags: disablenouninstallwarning
|
||||
Name: "languages\arSY"; Description: "العربية"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('d')
|
||||
Name: "languages\csCZ"; Description: "Ceština"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\daDK"; Description: "Dansk"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\dexfranconia"; Description: "Frängisch (Deutsch)"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\elGR"; Description: "ελληνικά"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('4')
|
||||
Name: "languages\esES"; Description: "Español"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\faIR"; Description: "پارسی"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('d')
|
||||
Name: "languages\fiFI"; Description: "Suomi"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\frFR"; Description: "Français"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\frQC"; Description: "Français - Québec"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\heIL"; Description: "עִבְרִית"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('c')
|
||||
Name: "languages\huHU"; Description: "Magyar"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
|
||||
Name: "languages\idID"; Description: "Bahasa Indonesia"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\itIT"; Description: "Italiano"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\jaJP"; Description: "日本語"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('7')
|
||||
Name: "languages\koKR"; Description: "한국의"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('8')
|
||||
Name: "languages\ltLT"; Description: "Lietuvių"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('3')
|
||||
Name: "languages\myMM"; Description: "မြန်မာစာ"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('b')
|
||||
Name: "languages\nnNO"; Description: "Nynorsk"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\plPL"; Description: "Polski"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
|
||||
Name: "languages\ptBR"; Description: "Português do Brasil"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\ptPT"; Description: "Português de Portugal"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\ruRU"; Description: "Pусский"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('5')
|
||||
Name: "languages\roRO"; Description: "Română"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
|
||||
Name: "languages\skSK"; Description: "Slovenčina"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
|
||||
Name: "languages\slSI"; Description: "Slovenščina"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
|
||||
Name: "languages\srRS"; Description: "Српски"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('5')
|
||||
Name: "languages\svSE"; Description: "Svenska"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\trTR"; Description: "Türk"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('6')
|
||||
Name: "languages\ukUA"; Description: "Українська"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('5')
|
||||
Name: "languages\viVN"; Description: "Việt"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('e')
|
||||
Name: "languages\zhCN"; Description: "简体中文"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('a')
|
||||
Name: "languages\zhTW"; Description: "繁體中文"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('9')
|
||||
[Code]
|
||||
// Do we have a regular user trying to install this?
|
||||
function IsRegularUser(): Boolean;
|
||||
begin
|
||||
Result := not (IsAdminLoggedOn or IsPowerUserLoggedOn);
|
||||
end;
|
||||
|
||||
// The following code is used to select the installation path, this is localappdata if non poweruser
|
||||
function DefDirRoot(Param: String): String;
|
||||
begin
|
||||
if IsRegularUser then
|
||||
Result := ExpandConstant('{localappdata}')
|
||||
else
|
||||
Result := ExpandConstant('{pf}')
|
||||
end;
|
||||
|
||||
|
||||
function FullInstall(Param : String) : String;
|
||||
begin
|
||||
result := SetupMessage(msgFullInstallation);
|
||||
end;
|
||||
|
||||
function CustomInstall(Param : String) : String;
|
||||
begin
|
||||
result := SetupMessage(msgCustomInstallation);
|
||||
end;
|
||||
|
||||
function CompactInstall(Param : String) : String;
|
||||
begin
|
||||
result := SetupMessage(msgCompactInstallation);
|
||||
end;
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
// The following uninstall code was found at:
|
||||
// http://stackoverflow.com/questions/2000296/innosetup-how-to-automatically-uninstall-previous-installed-version
|
||||
// and than modified to work in a 32/64 bit environment
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
function GetUninstallStrings(): array of String;
|
||||
var
|
||||
sUnInstPath: String;
|
||||
sUnInstallString: String;
|
||||
asUninstallStrings : array of String;
|
||||
index : Integer;
|
||||
begin
|
||||
sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{#emit SetupSetting("AppId")}_is1');
|
||||
sUnInstallString := '';
|
||||
index := 0;
|
||||
|
||||
// Retrieve uninstall string from HKLM32 or HKCU32
|
||||
if RegQueryStringValue(HKLM32, sUnInstPath, 'UninstallString', sUnInstallString) then
|
||||
begin
|
||||
SetArrayLength(asUninstallStrings, index + 1);
|
||||
asUninstallStrings[index] := sUnInstallString;
|
||||
index := index +1;
|
||||
end;
|
||||
|
||||
if RegQueryStringValue(HKCU32, sUnInstPath, 'UninstallString', sUnInstallString) then
|
||||
begin
|
||||
SetArrayLength(asUninstallStrings, index + 1);
|
||||
asUninstallStrings[index] := sUnInstallString;
|
||||
index := index +1;
|
||||
end;
|
||||
|
||||
// Only for Windows with 64 bit support: Retrieve uninstall string from HKLM64 or HKCU64
|
||||
if IsWin64 then
|
||||
begin
|
||||
if RegQueryStringValue(HKLM64, sUnInstPath, 'UninstallString', sUnInstallString) then
|
||||
begin
|
||||
SetArrayLength(asUninstallStrings, index + 1);
|
||||
asUninstallStrings[index] := sUnInstallString;
|
||||
index := index +1;
|
||||
end;
|
||||
|
||||
if RegQueryStringValue(HKCU64, sUnInstPath, 'UninstallString', sUnInstallString) then
|
||||
begin
|
||||
SetArrayLength(asUninstallStrings, index + 1);
|
||||
asUninstallStrings[index] := sUnInstallString;
|
||||
index := index +1;
|
||||
end;
|
||||
end;
|
||||
Result := asUninstallStrings;
|
||||
end;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
procedure UnInstallOldVersions();
|
||||
var
|
||||
sUnInstallString: String;
|
||||
index: Integer;
|
||||
isUninstallMade: Boolean;
|
||||
iResultCode : Integer;
|
||||
asUninstallStrings : array of String;
|
||||
begin
|
||||
isUninstallMade := false;
|
||||
asUninstallStrings := GetUninstallStrings();
|
||||
for index := 0 to (GetArrayLength(asUninstallStrings) -1) do
|
||||
begin
|
||||
sUnInstallString := RemoveQuotes(asUninstallStrings[index]);
|
||||
if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
|
||||
isUninstallMade := true;
|
||||
end;
|
||||
|
||||
// Wait a few seconds to prevent installation issues, otherwise files are removed in one process while the other tries to link to them
|
||||
if (isUninstallMade) then
|
||||
Sleep(2000);
|
||||
end;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
procedure CurStepChanged(CurStep: TSetupStep);
|
||||
begin
|
||||
if (CurStep=ssInstall) then
|
||||
begin
|
||||
UnInstallOldVersions();
|
||||
end;
|
||||
end;
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
// End of unstall code
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Build a list of greenshot parameters from the supplied installer parameters
|
||||
function GetParamsForGS(argument: String): String;
|
||||
var
|
||||
i: Integer;
|
||||
parametersString: String;
|
||||
currentParameter: String;
|
||||
foundStart: Boolean;
|
||||
foundNoRun: Boolean;
|
||||
foundLanguage: Boolean;
|
||||
begin
|
||||
foundNoRun := false;
|
||||
foundLanguage := false;
|
||||
foundStart := false;
|
||||
for i:= 0 to ParamCount() do begin
|
||||
currentParameter := ParamStr(i);
|
||||
|
||||
// check if norun is supplied
|
||||
if Lowercase(currentParameter) = '/norun' then begin
|
||||
foundNoRun := true;
|
||||
continue;
|
||||
end;
|
||||
|
||||
if foundStart then begin
|
||||
parametersString := parametersString + ' ' + currentParameter;
|
||||
foundStart := false;
|
||||
end
|
||||
else begin
|
||||
if Lowercase(currentParameter) = '/language' then begin
|
||||
foundStart := true;
|
||||
foundLanguage := true;
|
||||
parametersString := parametersString + ' ' + currentParameter;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
if not foundLanguage then begin
|
||||
parametersString := parametersString + ' /language ' + ExpandConstant('{language}');
|
||||
end;
|
||||
if foundNoRun then begin
|
||||
parametersString := parametersString + ' /norun';
|
||||
end;
|
||||
// For debugging comment out the following
|
||||
//MsgBox(parametersString, mbInformation, MB_OK);
|
||||
|
||||
Result := parametersString;
|
||||
end;
|
||||
|
||||
// Check if language group is installed
|
||||
function hasLanguageGroup(argument: String): Boolean;
|
||||
var
|
||||
keyValue: String;
|
||||
returnValue: Boolean;
|
||||
begin
|
||||
returnValue := true;
|
||||
if (RegQueryStringValue( HKLM, 'SYSTEM\CurrentControlSet\Control\Nls\Language Groups', argument, keyValue)) then begin
|
||||
if Length(keyValue) = 0 then begin
|
||||
returnValue := false;
|
||||
end;
|
||||
end;
|
||||
Result := returnValue;
|
||||
end;
|
||||
|
||||
function hasDotNet(version: string; service: cardinal): Boolean;
|
||||
// Indicates whether the specified version and service pack of the .NET Framework is installed.
|
||||
//
|
||||
// version -- Specify one of these strings for the required .NET Framework version:
|
||||
// 'v1.1.4322' .NET Framework 1.1
|
||||
// 'v2.0.50727' .NET Framework 2.0
|
||||
// 'v3.0' .NET Framework 3.0
|
||||
// 'v3.5' .NET Framework 3.5
|
||||
// 'v4\Client' .NET Framework 4.0 Client Profile
|
||||
// 'v4\Full' .NET Framework 4.0 Full Installation
|
||||
//
|
||||
// service -- Specify any non-negative integer for the required service pack level:
|
||||
// 0 No service packs required
|
||||
// 1, 2, etc. Service pack 1, 2, etc. required
|
||||
var
|
||||
key: string;
|
||||
install, serviceCount: cardinal;
|
||||
success: boolean;
|
||||
begin
|
||||
key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;
|
||||
// .NET 3.0 uses value InstallSuccess in subkey Setup
|
||||
if Pos('v3.0', version) = 1 then begin
|
||||
success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
|
||||
end else begin
|
||||
success := RegQueryDWordValue(HKLM, key, 'Install', install);
|
||||
end;
|
||||
// .NET 4.0 uses value Servicing instead of SP
|
||||
if Pos('v4', version) = 1 then begin
|
||||
success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
|
||||
end else begin
|
||||
success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
|
||||
end;
|
||||
result := success and (install = 1) and (serviceCount >= service);
|
||||
end;
|
||||
|
||||
function hasDotNet40() : boolean;
|
||||
begin
|
||||
Result := hasDotNet('v4\Client',0) or hasDotNet('v4\Full',0);
|
||||
end;
|
||||
|
||||
function getNGENPath(argument: String) : String;
|
||||
var
|
||||
installPath: string;
|
||||
begin
|
||||
if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.5\Client', 'InstallPath', installPath) then begin
|
||||
if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.5\Full', 'InstallPath', installPath) then begin
|
||||
if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client', 'InstallPath', installPath) then begin
|
||||
if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full', 'InstallPath', installPath) then begin
|
||||
// 3.5 doesn't have NGEN and is using the .net 2.0 installation
|
||||
installPath := ExpandConstant('{dotnet20}');
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
Result := installPath;
|
||||
end;
|
||||
|
||||
// Initialize the setup
|
||||
function InitializeSetup(): Boolean;
|
||||
begin
|
||||
// Only check for 2.0 and install if we don't have .net 3.5 or higher
|
||||
if not hasDotNet40() then
|
||||
begin
|
||||
end;
|
||||
Result := true;
|
||||
end;
|
||||
[Run]
|
||||
Filename: "{code:getNGENPath}\ngen.exe"; Parameters: "install ""{app}\{#ExeName}.exe"""; StatusMsg: "{cm:optimize}"; Flags: runhidden runasoriginaluser
|
||||
Filename: "{code:getNGENPath}\ngen.exe"; Parameters: "install ""{app}\GreenshotPlugin.dll"""; StatusMsg: "{cm:optimize}"; Flags: runhidden runasoriginaluser
|
||||
Filename: "{app}\{#ExeName}.exe"; Description: "{cm:startgreenshot}"; Parameters: "{code:GetParamsForGS}"; WorkingDir: "{app}"; Flags: nowait postinstall runasoriginaluser
|
||||
Filename: "http://getgreenshot.org/thank-you/?language={language}&version={#Version}"; Flags: shellexec runasoriginaluser
|
||||
|
||||
[InstallDelete]
|
||||
Name: {app}; Type: filesandordirs;
|
||||
|
||||
[UninstallRun]
|
||||
Filename: "{code:GetNGENPath}\ngen.exe"; Parameters: "uninstall ""{app}\{#ExeName}.exe"""; StatusMsg: "Cleanup"; Flags: runhidden
|
||||
Filename: "{code:GetNGENPath}\ngen.exe"; Parameters: "uninstall ""{app}\GreenshotPlugin.dll"""; StatusMsg: "Cleanup"; Flags: runhidden
|
|
@ -1,16 +1,16 @@
|
|||
#define ExeName "Greenshot"
|
||||
#define Version "1.1.4.$WCREV$"
|
||||
#define Version "1.1.6.$WCREV$"
|
||||
|
||||
; Include the scripts to install .NET Framework 2.0
|
||||
; Include the scripts to install .NET Framework
|
||||
; See http://www.codeproject.com/KB/install/dotnetfx_innosetup_instal.aspx
|
||||
#include "scripts\products.iss"
|
||||
#include "scripts\products\stringversion.iss"
|
||||
#include "scripts\products\winversion.iss"
|
||||
#include "scripts\products\fileversion.iss"
|
||||
#include "scripts\products\msi20.iss"
|
||||
#include "scripts\products\msi31.iss"
|
||||
#include "scripts\products\dotnetfx20.iss"
|
||||
#include "scripts\products\dotnetfx20sp1.iss"
|
||||
#include "scripts\products\dotnetfx20sp2.iss"
|
||||
#include "scripts\products\dotnetfxversion.iss"
|
||||
#include "scripts\products\dotnetfx35sp1.iss"
|
||||
|
||||
[Files]
|
||||
Source: ..\..\bin\Release\Greenshot.exe; DestDir: {app}; Components: greenshot; Flags: overwritereadonly ignoreversion replacesameversion
|
||||
|
@ -36,6 +36,7 @@ Source: ..\..\Languages\*da-DK*; Excludes: "*installer*,*website*"; DestDir: {ap
|
|||
Source: ..\..\Languages\*de-x-franconia*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\dexfranconia; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*el-GR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\elGR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*es-ES*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\esES; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*et-EE*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\etEE; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*fa-IR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\faIR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*fi-FI*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\fiFI; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
Source: ..\..\Languages\*fr-FR*; Excludes: "*installer*,*website*"; DestDir: {app}\Languages; Components: languages\frFR; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
|
@ -68,6 +69,7 @@ Source: ..\..\bin\Release\Plugins\GreenshotOfficePlugin\GreenshotOfficePlugin.gs
|
|||
;OCR Plugin
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotOCRPlugin\GreenshotOCRPlugin.gsp; DestDir: {app}\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotOCRPlugin\GreenshotOCRCommand.exe; DestDir: {app}\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotOCRPlugin\GreenshotOCRCommand.exe.config; DestDir: {app}\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
Source: ..\..\bin\Release\Languages\Plugins\GreenshotOCRPlugin\*; DestDir: {app}\Languages\Plugins\GreenshotOCRPlugin; Components: plugins\ocr; Flags: overwritereadonly ignoreversion replacesameversion;
|
||||
;JIRA Plugin
|
||||
Source: ..\..\bin\Release\Plugins\GreenshotJiraPlugin\GreenshotJiraPlugin.gsp; DestDir: {app}\Plugins\GreenshotJiraPlugin; Components: plugins\jira; Flags: overwritereadonly recursesubdirs ignoreversion replacesameversion;
|
||||
|
@ -149,11 +151,7 @@ Root: HKLM; Subkey: Software\Classes\.greenshot; ValueType: string; ValueName: "
|
|||
Root: HKLM; Subkey: Software\Classes\Greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot File"; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
|
||||
Root: HKLM; Subkey: Software\Classes\Greenshot\DefaultIcon; ValueType: string; ValueName: ""; ValueData: "{app}\Greenshot.EXE,0"; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
|
||||
Root: HKLM; Subkey: Software\Classes\Greenshot\shell\open\command; ValueType: string; ValueName: ""; ValueData: """{app}\Greenshot.EXE"" --openfile ""%1"""; Flags: uninsdeletevalue noerror; Check: not IsRegularUser
|
||||
; Register our own filetype for normal user
|
||||
Root: HKCU; Subkey: Software\Classes\.greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot"; Flags: uninsdeletevalue noerror; Check: IsRegularUser
|
||||
Root: HKCU; Subkey: Software\Classes\Greenshot; ValueType: string; ValueName: ""; ValueData: "Greenshot File"; Flags: uninsdeletevalue noerror; Check: IsRegularUser
|
||||
Root: HKCU; Subkey: Software\Classes\Greenshot\DefaultIcon; ValueType: string; ValueName: ""; ValueData: "{app}\Greenshot.EXE,0"; Flags: uninsdeletevalue noerror; Check: IsRegularUser
|
||||
Root: HKCU; Subkey: Software\Classes\Greenshot\shell\open\command; ValueType: string; ValueName: ""; ValueData: """{app}\Greenshot.EXE"" --openfile ""%1"""; Flags: uninsdeletevalue noerror; Check: IsRegularUser
|
||||
|
||||
[Icons]
|
||||
Name: {group}\{#ExeName}; Filename: {app}\{#ExeName}.exe; WorkingDir: {app}
|
||||
Name: {group}\Uninstall {#ExeName}; Filename: {uninstallexe}; WorkingDir: {app}; AppUserModelID: "{#ExeName}.{#ExeName}"
|
||||
|
@ -169,6 +167,7 @@ Name: fr; MessagesFile: compiler:Languages\French.isl
|
|||
Name: nl; MessagesFile: compiler:Languages\Dutch.isl
|
||||
Name: nn; MessagesFile: compiler:Languages\NorwegianNynorsk.isl
|
||||
Name: sr; MessagesFile: compiler:Languages\SerbianCyrillic.isl
|
||||
Name: uk; MessagesFile: compiler:Languages\Ukrainian.isl
|
||||
|
||||
[Tasks]
|
||||
Name: startup; Description: {cm:startup}
|
||||
|
@ -269,6 +268,17 @@ sr.optimize=Оптимизујем перформансе…
|
|||
sr.startgreenshot=Покрени Гриншот
|
||||
sr.startup=Покрени програм са системом
|
||||
|
||||
uk.confluence=Плагін Confluence
|
||||
uk.default=${default}
|
||||
uk.externalcommand=Відкрити з плагіном зовнішніх команд
|
||||
uk.imgur=Плагін Imgur (див.: http://imgur.com)
|
||||
uk.jira=Плагін Jira
|
||||
uk.language=Додаткові мови
|
||||
uk.ocr=Плагін OCR (потребує Microsoft Office Document Imaging (MODI))
|
||||
uk.optimize=Оптимізація продуктивності, це може забрати час.
|
||||
uk.startgreenshot=Запустити {#ExeName}
|
||||
uk.startup=Запускати {#ExeName} під час запуску Windows
|
||||
|
||||
cn.confluence=Confluence插件
|
||||
cn.default=${default}
|
||||
cn.externalcommand=使用外部命令打开插件
|
||||
|
@ -308,6 +318,7 @@ Name: "languages\daDK"; Description: "Dansk"; Types: full custom; Flags: disable
|
|||
Name: "languages\dexfranconia"; Description: "Frängisch (Deutsch)"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\elGR"; Description: "ελληνικά"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('4')
|
||||
Name: "languages\esES"; Description: "Español"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\etEE"; Description: "Eesti"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('2')
|
||||
Name: "languages\faIR"; Description: "پارسی"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('d')
|
||||
Name: "languages\fiFI"; Description: "Suomi"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
Name: "languages\frFR"; Description: "Français"; Types: full custom; Flags: disablenouninstallwarning; Check: hasLanguageGroup('1')
|
||||
|
@ -512,99 +523,42 @@ begin
|
|||
Result := returnValue;
|
||||
end;
|
||||
|
||||
function hasDotNet(version: string; service: cardinal): Boolean;
|
||||
// Indicates whether the specified version and service pack of the .NET Framework is installed.
|
||||
//
|
||||
// version -- Specify one of these strings for the required .NET Framework version:
|
||||
// 'v1.1.4322' .NET Framework 1.1
|
||||
// 'v2.0.50727' .NET Framework 2.0
|
||||
// 'v3.0' .NET Framework 3.0
|
||||
// 'v3.5' .NET Framework 3.5
|
||||
// 'v4\Client' .NET Framework 4.0 Client Profile
|
||||
// 'v4\Full' .NET Framework 4.0 Full Installation
|
||||
//
|
||||
// service -- Specify any non-negative integer for the required service pack level:
|
||||
// 0 No service packs required
|
||||
// 1, 2, etc. Service pack 1, 2, etc. required
|
||||
var
|
||||
key: string;
|
||||
install, serviceCount: cardinal;
|
||||
success: boolean;
|
||||
function hasDotNet() : boolean;
|
||||
begin
|
||||
key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + version;
|
||||
// .NET 3.0 uses value InstallSuccess in subkey Setup
|
||||
if Pos('v3.0', version) = 1 then begin
|
||||
success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
|
||||
end else begin
|
||||
success := RegQueryDWordValue(HKLM, key, 'Install', install);
|
||||
end;
|
||||
// .NET 4.0 uses value Servicing instead of SP
|
||||
if Pos('v4', version) = 1 then begin
|
||||
success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
|
||||
end else begin
|
||||
success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
|
||||
end;
|
||||
result := success and (install = 1) and (serviceCount >= service);
|
||||
end;
|
||||
|
||||
function hasDotNet20() : boolean;
|
||||
begin
|
||||
Result := hasDotNet('v2.0.50727',0);
|
||||
end;
|
||||
|
||||
function hasDotNet40() : boolean;
|
||||
begin
|
||||
Result := hasDotNet('v4\Client',0) or hasDotNet('v4\Full',0);
|
||||
// .NET 4.5 = 4.0 full (with a "Release" key, but this is not interresting!)
|
||||
Result := netfxinstalled(NetFX20, '') or netfxinstalled(NetFX30, '') or netfxinstalled(NetFX35, '') or netfxinstalled(NetFX40Client, '') or netfxinstalled(NetFX40Full, '');
|
||||
end;
|
||||
|
||||
function hasDotNet35FullOrHigher() : boolean;
|
||||
begin
|
||||
Result := hasDotNet('v3.5',0) or hasDotNet('v4\Full',0) or hasDotNet('4.5\Full',0);
|
||||
end;
|
||||
|
||||
function hasDotNet35OrHigher() : boolean;
|
||||
begin
|
||||
Result := hasDotNet('v3.5',0) or hasDotNet('v4\Client',0) or hasDotNet('v4\Full',0) or hasDotNet('4.5\Client',0) or hasDotNet('4.5\Full',0);
|
||||
Result := netfxinstalled(NetFX35, '') or netfxinstalled(NetFX40Full, '');
|
||||
end;
|
||||
|
||||
function getNGENPath(argument: String) : String;
|
||||
var
|
||||
installPath: string;
|
||||
begin
|
||||
if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.5\Client', 'InstallPath', installPath) then begin
|
||||
if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4.5\Full', 'InstallPath', installPath) then begin
|
||||
if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client', 'InstallPath', installPath) then begin
|
||||
if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full', 'InstallPath', installPath) then begin
|
||||
if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client', 'InstallPath', installPath) then begin
|
||||
// 3.5 doesn't have NGEN and is using the .net 2.0 installation
|
||||
installPath := ExpandConstant('{dotnet20}');
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
Result := installPath;
|
||||
end;
|
||||
|
||||
// Initialize the setup
|
||||
function InitializeSetup(): Boolean;
|
||||
begin
|
||||
// Only check for 2.0 and install if we don't have .net 3.5 or higher
|
||||
if not hasDotNet35OrHigher() then
|
||||
// Check for .NET and install 3.5 if we don't have it
|
||||
if not hasDotNet() then
|
||||
begin
|
||||
// Enhance installer otherwise .NET installations won't work
|
||||
// Enhance installer, if needed, otherwise .NET installations won't work
|
||||
msi20('2.0');
|
||||
msi31('3.0');
|
||||
|
||||
//install .netfx 2.0 sp2 if possible; if not sp1 if possible; if not .netfx 2.0
|
||||
if minwinversion(5, 1) then begin
|
||||
dotnetfx20sp2();
|
||||
end else begin
|
||||
if minwinversion(5, 0) and minwinspversion(5, 0, 4) then begin
|
||||
// kb835732();
|
||||
dotnetfx20sp1();
|
||||
end else begin
|
||||
dotnetfx20();
|
||||
end;
|
||||
end;
|
||||
//install .net 3.5
|
||||
dotnetfx35sp1();
|
||||
end;
|
||||
Result := true;
|
||||
end;
|
||||
|
|
|
@ -23,6 +23,6 @@ del /s *.bak
|
|||
del /s *installer*.xml
|
||||
del /s *website*.xml
|
||||
del /s *template.txt
|
||||
..\..\tools\7zip\7za.exe a -x!.SVN -r ..\Greenshot-NO-INSTALLER-1.1.4.$WCREV$.zip *
|
||||
..\..\tools\7zip\7za.exe a -x!.SVN -r ..\Greenshot-NO-INSTALLER-1.1.6.$WCREV$.zip *
|
||||
cd ..
|
||||
rmdir /s /q NO-INSTALLER
|
||||
|
|
|
@ -1,340 +0,0 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
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 2 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, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -8,7 +8,7 @@ AppID=PortableApps.comInstaller
|
|||
Publisher=PortableApps.com
|
||||
Homepage=PortableApps.com/go/PortableApps.comInstaller
|
||||
Category=Development
|
||||
Description=Create PortableApps.com Format installers for portable apps
|
||||
Description=PortableApps.com Format installer creator
|
||||
Language=Multilingual
|
||||
|
||||
[License]
|
||||
|
@ -18,8 +18,8 @@ Freeware=true
|
|||
CommercialUse=true
|
||||
|
||||
[Version]
|
||||
PackageVersion=3.0.5.0
|
||||
DisplayVersion=3.0.5
|
||||
PackageVersion=3.0.6.0
|
||||
DisplayVersion=3.0.6
|
||||
|
||||
[Control]
|
||||
Icons=1
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;Copyright 2007-2012 John T. Haller of PortableApps.com
|
||||
;Copyright 2007-2013 John T. Haller of PortableApps.com
|
||||
;Website: http://PortableApps.com/
|
||||
|
||||
;This software is OSI Certified Open Source Software.
|
||||
|
@ -24,8 +24,8 @@
|
|||
;as published at PortableApps.com/development. It may also be used with commercial
|
||||
;software by contacting PortableApps.com.
|
||||
|
||||
!define PORTABLEAPPSINSTALLERVERSION "3.0.5.0"
|
||||
!define PORTABLEAPPS.COMFORMATVERSION "3.0.5"
|
||||
!define PORTABLEAPPSINSTALLERVERSION "3.0.6.0"
|
||||
!define PORTABLEAPPS.COMFORMATVERSION "3.0.6"
|
||||
|
||||
!if ${__FILE__} == "PortableApps.comInstallerPlugin.nsi"
|
||||
!include PortableApps.comInstallerPluginConfig.nsh
|
||||
|
@ -279,6 +279,7 @@ Var MINIMIZEINSTALLER
|
|||
Var DOWNLOADEDFILE
|
||||
Var DOWNLOADALREADYEXISTED
|
||||
Var SECONDDOWNLOADATTEMPT
|
||||
Var DownloadURLActual
|
||||
!endif
|
||||
Var INTERNALEULAVERSION
|
||||
Var InstallingStatusString
|
||||
|
@ -908,6 +909,7 @@ FunctionEnd
|
|||
${If} $DOWNLOADALREADYEXISTED == "true"
|
||||
StrCpy $DOWNLOADEDFILE "$EXEDIR\${DownloadFileName}"
|
||||
${Else}
|
||||
StrCpy $DownloadURLActual ${DownloadURL}
|
||||
DownloadTheFile:
|
||||
CreateDirectory `$PLUGINSDIR\Downloaded`
|
||||
SetDetailsPrint both
|
||||
|
@ -922,9 +924,9 @@ FunctionEnd
|
|||
Delete "$PLUGINSDIR\Downloaded\${DownloadFilename}"
|
||||
|
||||
${If} $(downloading) != ""
|
||||
inetc::get /CONNECTTIMEOUT 30 /NOCOOKIES /TRANSLATE $(downloading) $(downloadconnecting) $(downloadsecond) $(downloadminute) $(downloadhour) $(downloadplural) "%dkB (%d%%) of %dkB @ %d.%01dkB/s" " (%d %s%s $(downloadremaining))" "${DownloadURL}" "$PLUGINSDIR\Downloaded\${DownloadName}" /END
|
||||
inetc::get /CONNECTTIMEOUT 30 /NOCOOKIES /TRANSLATE $(downloading) $(downloadconnecting) $(downloadsecond) $(downloadminute) $(downloadhour) $(downloadplural) "%dkB (%d%%) of %dkB @ %d.%01dkB/s" " (%d %s%s $(downloadremaining))" "$DownloadURLActual" "$PLUGINSDIR\Downloaded\${DownloadName}" /END
|
||||
${Else}
|
||||
inetc::get /CONNECTTIMEOUT 30 /NOCOOKIES /TRANSLATE "Downloading %s..." "Connecting..." second minute hour s "%dkB (%d%%) of %dkB @ %d.%01dkB/s" " (%d %s%s remaining)" "${DownloadURL}" "$PLUGINSDIR\Downloaded\${DownloadName}" /END
|
||||
inetc::get /CONNECTTIMEOUT 30 /NOCOOKIES /TRANSLATE "Downloading %s..." "Connecting..." second minute hour s "%dkB (%d%%) of %dkB @ %d.%01dkB/s" " (%d %s%s remaining)" "$DownloadURLActual" "$PLUGINSDIR\Downloaded\${DownloadName}" /END
|
||||
${EndIf}
|
||||
SetDetailsPrint both
|
||||
DetailPrint $InstallingStatusString
|
||||
|
@ -961,13 +963,22 @@ FunctionEnd
|
|||
${EndIf}
|
||||
!endif
|
||||
${Else}
|
||||
Delete "$INTERNET_CACHE\${DownloadFileName}"
|
||||
Delete "$PLUGINSDIR\Downloaded\${DownloadFilename}"
|
||||
StrCpy $0 $DownloadURLActual
|
||||
|
||||
;Use backup PA.c download server if necessary
|
||||
${WordFind} "$DownloadURLActual" "http://download2.portableapps.com" "#" $R0
|
||||
${If} $R0 == 1
|
||||
${WordReplace} "$DownloadURLActual" "http://download2.portableapps.com" "http://download.portableapps.com" "+" $DownloadURLActual
|
||||
Goto DownloadTheFile
|
||||
${EndIf}
|
||||
|
||||
${If} $SECONDDOWNLOADATTEMPT != true
|
||||
${AndIf} $DOWNLOADRESULT != "Cancelled"
|
||||
StrCpy $SECONDDOWNLOADATTEMPT true
|
||||
Goto DownloadTheFile
|
||||
${EndIf}
|
||||
Delete "$INTERNET_CACHE\${DownloadFileName}"
|
||||
Delete "$PLUGINSDIR\Downloaded\${DownloadFilename}"
|
||||
SetDetailsPrint textonly
|
||||
DetailPrint ""
|
||||
SetDetailsPrint listonly
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;Copyright (C) 2006-2012 John T. Haller
|
||||
;Copyright (C) 2006-2013 John T. Haller
|
||||
|
||||
;Website: http://PortableApps.com/Installer
|
||||
|
||||
|
@ -20,9 +20,9 @@
|
|||
;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
!define APPNAME "PortableApps.com Installer"
|
||||
!define VER "3.0.5.0"
|
||||
!define VER "3.0.6.0"
|
||||
!define WEBSITE "PortableApps.com/Installer"
|
||||
!define FRIENDLYVER "3.0.5"
|
||||
!define FRIENDLYVER "3.0.6"
|
||||
!define PORTABLEAPPS.COMFORMATVERSION "3.0"
|
||||
|
||||
;=== Program Details
|
||||
|
|
Binary file not shown.
|
@ -1,44 +0,0 @@
|
|||
/* CMU libsasl
|
||||
* Tim Martin
|
||||
* Rob Earhart
|
||||
* Rob Siemborski
|
||||
*/
|
||||
/*
|
||||
* Copyright (c) 1998-2003 Carnegie Mellon University. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. The name "Carnegie Mellon University" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For permission or any other legal
|
||||
* details, please contact
|
||||
* Office of Technology Transfer
|
||||
* Carnegie Mellon University
|
||||
* 5000 Forbes Avenue
|
||||
* Pittsburgh, PA 15213-3890
|
||||
* (412) 268-4387, fax: (412) 268-7395
|
||||
* tech-transfer@andrew.cmu.edu
|
||||
*
|
||||
* 4. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by Computing Services
|
||||
* at Carnegie Mellon University (http://www.cmu.edu/computing/)."
|
||||
*
|
||||
* CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
|
||||
* THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
* AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
|
||||
* FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
|
||||
* AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
|
@ -1,127 +0,0 @@
|
|||
|
||||
LICENSE ISSUES
|
||||
==============
|
||||
|
||||
The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
|
||||
the OpenSSL License and the original SSLeay license apply to the toolkit.
|
||||
See below for the actual license texts. Actually both licenses are BSD-style
|
||||
Open Source licenses. In case of any license issues related to OpenSSL
|
||||
please contact openssl-core@openssl.org.
|
||||
|
||||
OpenSSL License
|
||||
---------------
|
||||
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this
|
||||
* software must display the following acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
|
||||
*
|
||||
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||
* endorse or promote products derived from this software without
|
||||
* prior written permission. For written permission, please contact
|
||||
* openssl-core@openssl.org.
|
||||
*
|
||||
* 5. Products derived from this software may not be called "OpenSSL"
|
||||
* nor may "OpenSSL" appear in their names without prior written
|
||||
* permission of the OpenSSL Project.
|
||||
*
|
||||
* 6. Redistributions of any form whatsoever must retain the following
|
||||
* acknowledgment:
|
||||
* "This product includes software developed by the OpenSSL Project
|
||||
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ====================================================================
|
||||
*
|
||||
* This product includes cryptographic software written by Eric Young
|
||||
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||
* Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
*/
|
||||
|
||||
Original SSLeay License
|
||||
-----------------------
|
||||
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
||||
* All rights reserved.
|
||||
*
|
||||
* This package is an SSL implementation written
|
||||
* by Eric Young (eay@cryptsoft.com).
|
||||
* The implementation was written so as to conform with Netscapes SSL.
|
||||
*
|
||||
* This library is free for commercial and non-commercial use as long as
|
||||
* the following conditions are aheared to. The following conditions
|
||||
* apply to all code found in this distribution, be it the RC4, RSA,
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
|
||||
* included with this distribution is covered by the same copyright terms
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com).
|
||||
*
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in
|
||||
* the code are not to be removed.
|
||||
* If this package is used in a product, Eric Young should be given attribution
|
||||
* as the author of the parts of the library used.
|
||||
* This can be in the form of a textual message at program startup or
|
||||
* in documentation (online or textual) provided with the package.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* "This product includes cryptographic software written by
|
||||
* Eric Young (eay@cryptsoft.com)"
|
||||
* The word 'cryptographic' can be left out if the rouines from the library
|
||||
* being used are not cryptographic related :-).
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from
|
||||
* the apps directory (application code) you must include an acknowledgement:
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* The licence and distribution terms for any publically available version or
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
Binary file not shown.
|
@ -1,47 +0,0 @@
|
|||
/* ================================================================
|
||||
* Copyright (c) 2000-2009 CollabNet. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* 3. The end-user documentation included with the redistribution,
|
||||
* if any, must include the following acknowledgment:
|
||||
* "This product includes software developed by
|
||||
* CollabNet (http://www.Collab.Net/)."
|
||||
* Alternately, this acknowledgment may appear in the software itself,
|
||||
* if and wherever such third-party acknowledgments normally appear.
|
||||
*
|
||||
* 4. The hosted project names must not be used to endorse or promote
|
||||
* products derived from this software without prior written
|
||||
* permission. For written permission, please contact info@collab.net.
|
||||
*
|
||||
* 5. Products derived from this software may not use the "Tigris" name
|
||||
* nor may "Tigris" appear in their names without prior written
|
||||
* permission of CollabNet.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
* IN NO EVENT SHALL COLLABNET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* ====================================================================
|
||||
*
|
||||
* This software consists of voluntary contributions made by many
|
||||
* individuals on behalf of CollabNet.
|
||||
*/
|
|
@ -1,340 +0,0 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
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 2 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -37,6 +37,9 @@ namespace GreenshotBoxPlugin {
|
|||
[IniProperty("AfterUploadLinkToClipBoard", Description = "After upload send Box link to clipboard.", DefaultValue = "true")]
|
||||
public bool AfterUploadLinkToClipBoard;
|
||||
|
||||
[IniProperty("UseSharedLink", Description = "Use the shared link, instead of the private, on the clipboard", DefaultValue = "True")]
|
||||
public bool UseSharedLink;
|
||||
|
||||
[IniProperty("BoxToken", Description = "Token.", DefaultValue = "")]
|
||||
public string BoxToken;
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ namespace GreenshotBoxPlugin {
|
|||
/// Copy this file to BoxCredentials.private.cs and fill in valid credentials. (Or empty strings, but of course you won't be able to use the plugin then.)
|
||||
/// </summary>
|
||||
public static class BoxCredentials {
|
||||
public static string API_KEY = empty;
|
||||
public static string ClientId = string.Empty;
|
||||
public static string ClientSecret = string.Empty;
|
||||
}
|
||||
}
|
59
GreenshotBoxPlugin/BoxEntities.cs
Normal file
59
GreenshotBoxPlugin/BoxEntities.cs
Normal file
|
@ -0,0 +1,59 @@
|
|||
/*
|
||||
* Greenshot - a free and open source screenshot tool
|
||||
* Copyright (C) 2007-2013 Thomas Braun, Jens Klingen, Robin Krom, Francis Noel
|
||||
*
|
||||
* For more information see: http://getgreenshot.org/
|
||||
* The Greenshot project is hosted on Sourceforge: http://sourceforge.net/projects/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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
namespace GreenshotBoxPlugin {
|
||||
[DataContract]
|
||||
public class Authorization {
|
||||
[DataMember(Name = "access_token")]
|
||||
public string AccessToken { get; set; }
|
||||
[DataMember(Name = "expires_in")]
|
||||
public int ExpiresIn { get; set; }
|
||||
[DataMember(Name = "refresh_token")]
|
||||
public string RefreshToken { get; set; }
|
||||
[DataMember(Name = "token_type")]
|
||||
public string TokenType { get; set; }
|
||||
}
|
||||
[DataContract]
|
||||
public class SharedLink {
|
||||
[DataMember(Name = "url")]
|
||||
public string Url { get; set; }
|
||||
[DataMember(Name = "download_url")]
|
||||
public string DownloadUrl { get; set; }
|
||||
}
|
||||
|
||||
[DataContract]
|
||||
public class FileEntry {
|
||||
[DataMember(Name = "id")]
|
||||
public string Id { get; set; }
|
||||
[DataMember(Name = "name")]
|
||||
public string Name { get; set; }
|
||||
[DataMember(Name = "shared_link")]
|
||||
public SharedLink SharedLink { get; set; }
|
||||
}
|
||||
|
||||
[DataContract]
|
||||
public class Upload {
|
||||
[DataMember(Name = "entries")]
|
||||
public List<FileEntry> Entries { get; set; }
|
||||
}
|
||||
}
|
|
@ -144,7 +144,7 @@ namespace GreenshotBoxPlugin {
|
|||
return url;
|
||||
} catch (Exception ex) {
|
||||
LOG.Error("Error uploading.", ex);
|
||||
MessageBox.Show(Language.GetString("box", LangKey.upload_failure) + " " + ex.ToString());
|
||||
MessageBox.Show(Language.GetString("box", LangKey.upload_failure) + " " + ex.Message);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,111 +22,217 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Net;
|
||||
using System.Xml;
|
||||
using System.Text;
|
||||
using Greenshot.IniFile;
|
||||
using GreenshotPlugin.Controls;
|
||||
using GreenshotPlugin.Core;
|
||||
using System.Runtime.Serialization.Json;
|
||||
using System.IO;
|
||||
|
||||
namespace GreenshotBoxPlugin {
|
||||
|
||||
/// <summary>
|
||||
/// Description of ImgurUtils.
|
||||
/// </summary>
|
||||
public class BoxUtils {
|
||||
public static class BoxUtils {
|
||||
private static readonly log4net.ILog LOG = log4net.LogManager.GetLogger(typeof(BoxUtils));
|
||||
private static BoxConfiguration config = IniConfig.GetIniSection<BoxConfiguration>();
|
||||
|
||||
private BoxUtils() {
|
||||
}
|
||||
|
||||
private static string ParseTicket(string response) {
|
||||
try {
|
||||
XmlDocument doc = new XmlDocument();
|
||||
doc.LoadXml(response);
|
||||
XmlNodeList nodes = doc.GetElementsByTagName("ticket");
|
||||
if(nodes.Count > 0) {
|
||||
return nodes.Item(0).InnerText;
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
LOG.Error("Error parsing Box Response.", ex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private static readonly BoxConfiguration Config = IniConfig.GetIniSection<BoxConfiguration>();
|
||||
private const string RedirectUri = "https://app.box.com/home/";
|
||||
private const string UploadFileUri = "https://upload.box.com/api/2.0/files/content";
|
||||
private const string AuthorizeUri = "https://www.box.com/api/oauth2/authorize";
|
||||
private const string TokenUri = "https://www.box.com/api/oauth2/token";
|
||||
private const string FilesUri = "https://www.box.com/api/2.0/files/{0}";
|
||||
|
||||
private static bool Authorize() {
|
||||
string ticketUrl = string.Format("https://www.box.com/api/1.0/rest?action=get_ticket&api_key={0}", BoxCredentials.API_KEY);
|
||||
string ticketXML = NetworkHelper.GetAsString(new Uri(ticketUrl));
|
||||
string ticket = ParseTicket(ticketXML);
|
||||
string authorizeUrl = string.Format("https://www.box.com/api/1.0/auth/{0}", ticket);
|
||||
OAuthLoginForm loginForm = new OAuthLoginForm("Box Authorize", new Size(1060,600), authorizeUrl, "http://getgreenshot.org");
|
||||
string authorizeUrl = string.Format("{0}?client_id={1}&response_type=code&state=dropboxplugin&redirect_uri={2}", AuthorizeUri, BoxCredentials.ClientId, RedirectUri);
|
||||
|
||||
OAuthLoginForm loginForm = new OAuthLoginForm("Box Authorize", new Size(1060, 600), authorizeUrl, RedirectUri);
|
||||
loginForm.ShowDialog();
|
||||
if (loginForm.isOk) {
|
||||
if (loginForm.CallbackParameters != null && loginForm.CallbackParameters.ContainsKey("auth_token")) {
|
||||
config.BoxToken = loginForm.CallbackParameters["auth_token"];
|
||||
IniConfig.Save();
|
||||
return true;
|
||||
}
|
||||
if (!loginForm.isOk) {
|
||||
return false;
|
||||
}
|
||||
var callbackParameters = loginForm.CallbackParameters;
|
||||
if (callbackParameters == null || !callbackParameters.ContainsKey("code")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
string authorizationResponse = PostAndReturn(new Uri(TokenUri), string.Format("grant_type=authorization_code&code={0}&client_id={1}&client_secret={2}", callbackParameters["code"], BoxCredentials.ClientId, BoxCredentials.ClientSecret));
|
||||
var authorization = JSONSerializer.Deserialize<Authorization>(authorizationResponse);
|
||||
|
||||
Config.BoxToken = authorization.AccessToken;
|
||||
IniConfig.Save();
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Upload file by post
|
||||
/// Download a url response as string
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="parameters"></param>
|
||||
/// <returns>response</returns>
|
||||
public static string HttpUploadFile(string url, Dictionary<string, object> parameters) {
|
||||
/// <param name=url">An Uri to specify the download location</param>
|
||||
/// <returns>string with the file content</returns>
|
||||
public static string PostAndReturn(Uri url, string postMessage) {
|
||||
HttpWebRequest webRequest = (HttpWebRequest)NetworkHelper.CreateWebRequest(url);
|
||||
webRequest.Method = "POST";
|
||||
webRequest.KeepAlive = true;
|
||||
webRequest.Credentials = System.Net.CredentialCache.DefaultCredentials;
|
||||
webRequest.ContentType = "application/x-www-form-urlencoded";
|
||||
byte[] data = Encoding.UTF8.GetBytes(postMessage.ToString());
|
||||
using (var requestStream = webRequest.GetRequestStream()) {
|
||||
requestStream.Write(data, 0, data.Length);
|
||||
}
|
||||
return NetworkHelper.GetResponse(webRequest);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Upload parameters by post
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="parameters"></param>
|
||||
/// <returns>response</returns>
|
||||
public static string HttpPost(string url, IDictionary<string, object> parameters) {
|
||||
var webRequest = (HttpWebRequest)NetworkHelper.CreateWebRequest(url);
|
||||
webRequest.Method = "POST";
|
||||
webRequest.KeepAlive = true;
|
||||
webRequest.Credentials = CredentialCache.DefaultCredentials;
|
||||
webRequest.Headers.Add("Authorization", "Bearer " + Config.BoxToken);
|
||||
NetworkHelper.WriteMultipartFormData(webRequest, parameters);
|
||||
|
||||
return NetworkHelper.GetResponse(webRequest);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Upload file by PUT
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="content"></param>
|
||||
/// <returns>response</returns>
|
||||
public static string HttpPut(string url, string content) {
|
||||
var webRequest = (HttpWebRequest)NetworkHelper.CreateWebRequest(url);
|
||||
webRequest.Method = "PUT";
|
||||
webRequest.KeepAlive = true;
|
||||
webRequest.Credentials = CredentialCache.DefaultCredentials;
|
||||
webRequest.Headers.Add("Authorization", "Bearer " + Config.BoxToken);
|
||||
byte[] data = Encoding.UTF8.GetBytes(content);
|
||||
using (var requestStream = webRequest.GetRequestStream()) {
|
||||
requestStream.Write(data, 0, data.Length);
|
||||
}
|
||||
return NetworkHelper.GetResponse(webRequest);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Get REST request
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <returns>response</returns>
|
||||
public static string HttpGet(string url) {
|
||||
var webRequest = (HttpWebRequest)NetworkHelper.CreateWebRequest(url);
|
||||
webRequest.Method = "GET";
|
||||
webRequest.KeepAlive = true;
|
||||
webRequest.Credentials = CredentialCache.DefaultCredentials;
|
||||
webRequest.Headers.Add("Authorization", "Bearer " + Config.BoxToken);
|
||||
return NetworkHelper.GetResponse(webRequest);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Do the actual upload to Box
|
||||
/// For more details on the available parameters, see: http://developers.box.net/w/page/12923951/ApiFunction_Upload%20and%20Download
|
||||
/// </summary>
|
||||
/// <param name="imageData">byte[] with image data</param>
|
||||
/// <param name="image">Image for box upload</param>
|
||||
/// <param name="title">Title of box upload</param>
|
||||
/// <param name="filename">Filename of box upload</param>
|
||||
/// <returns>url to uploaded image</returns>
|
||||
public static string UploadToBox(SurfaceContainer image, string title, string filename) {
|
||||
string folderId = "0";
|
||||
if (string.IsNullOrEmpty(config.BoxToken)) {
|
||||
while (true) {
|
||||
const string folderId = "0";
|
||||
if (string.IsNullOrEmpty(Config.BoxToken)) {
|
||||
if (!Authorize()) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
string strUrl = string.Format("https://upload.box.net/api/1.0/upload/{0}/{1}?file_name={2}&new_copy=1", config.BoxToken, folderId, filename);
|
||||
IDictionary<string, object> parameters = new Dictionary<string, object>();
|
||||
parameters.Add("filename", image);
|
||||
parameters.Add("parent_id", folderId);
|
||||
|
||||
Dictionary<string, object> parameters = new Dictionary<string, object>();
|
||||
parameters.Add("share", "1");
|
||||
parameters.Add("new_file", image);
|
||||
var response = "";
|
||||
try {
|
||||
response = HttpPost(UploadFileUri, parameters);
|
||||
} catch (WebException ex) {
|
||||
if (ex.Status == WebExceptionStatus.ProtocolError) {
|
||||
Config.BoxToken = null;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
LOG.DebugFormat("Box response: {0}", response);
|
||||
|
||||
string response = HttpUploadFile(strUrl, parameters);
|
||||
// Check if the token is wrong
|
||||
if ("wrong auth token".Equals(response)) {
|
||||
config.BoxToken = null;
|
||||
Config.BoxToken = null;
|
||||
IniConfig.Save();
|
||||
return UploadToBox(image, title, filename);
|
||||
continue;
|
||||
}
|
||||
LOG.DebugFormat("Box response: {0}", response);
|
||||
XmlDocument doc = new XmlDocument();
|
||||
doc.LoadXml(response);
|
||||
XmlNodeList nodes = doc.GetElementsByTagName("status");
|
||||
if(nodes.Count > 0) {
|
||||
if ("upload_ok".Equals(nodes.Item(0).InnerText)) {
|
||||
nodes = doc.GetElementsByTagName("file");
|
||||
if (nodes.Count > 0) {
|
||||
long id = long.Parse(nodes.Item(0).Attributes["id"].Value);
|
||||
return string.Format("http://www.box.com/files/0/f/0/1/f_{0}", id);
|
||||
var upload = JSONSerializer.Deserialize<Upload>(response);
|
||||
if (upload == null || upload.Entries == null || upload.Entries.Count == 0) return null;
|
||||
|
||||
if (Config.UseSharedLink) {
|
||||
string filesResponse = HttpPut(string.Format(FilesUri, upload.Entries[0].Id), "{\"shared_link\": {\"access\": \"open\"}}");
|
||||
var file = JSONSerializer.Deserialize<FileEntry>(filesResponse);
|
||||
return file.SharedLink.Url;
|
||||
}
|
||||
return string.Format("http://www.box.com/files/0/f/0/1/f_{0}", upload.Entries[0].Id);
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
/// <summary>
|
||||
/// A simple helper class for the DataContractJsonSerializer
|
||||
/// </summary>
|
||||
public static class JSONSerializer {
|
||||
/// <summary>
|
||||
/// Helper method to serialize object to JSON
|
||||
/// </summary>
|
||||
/// <param name="jsonObject">JSON object</param>
|
||||
/// <returns>string</returns>
|
||||
public static string Serialize(object jsonObject) {
|
||||
var serializer = new DataContractJsonSerializer(jsonObject.GetType());
|
||||
using (MemoryStream stream = new MemoryStream()) {
|
||||
serializer.WriteObject(stream, jsonObject);
|
||||
return Encoding.UTF8.GetString(stream.ToArray());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper method to parse JSON to object
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="jsonString"></param>
|
||||
/// <returns></returns>
|
||||
public static T Deserialize<T>(string jsonString) {
|
||||
var deserializer = new DataContractJsonSerializer(typeof(T));
|
||||
using (MemoryStream stream = new MemoryStream()) {
|
||||
byte[] content = Encoding.UTF8.GetBytes(jsonString);
|
||||
stream.Write(content, 0, content.Length);
|
||||
stream.Seek(0, SeekOrigin.Begin);
|
||||
return (T)deserializer.ReadObject(stream);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper method to parse JSON to object
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="jsonString"></param>
|
||||
/// <returns></returns>
|
||||
public static T DeserializeWithDirectory<T>(string jsonString) {
|
||||
DataContractJsonSerializerSettings settings = new DataContractJsonSerializerSettings();
|
||||
settings.UseSimpleDictionaryFormat = true;
|
||||
var deserializer = new DataContractJsonSerializer(typeof(T), settings);
|
||||
using (MemoryStream stream = new MemoryStream()) {
|
||||
byte[] content = Encoding.UTF8.GetBytes(jsonString);
|
||||
stream.Write(content, 0, content.Length);
|
||||
stream.Seek(0, SeekOrigin.Begin);
|
||||
return (T)deserializer.ReadObject(stream);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
|
@ -30,6 +31,7 @@
|
|||
<Compile Include="BoxConfiguration.cs" />
|
||||
<Compile Include="BoxCredentials.cs" />
|
||||
<Compile Include="BoxDestination.cs" />
|
||||
<Compile Include="BoxEntities.cs" />
|
||||
<Compile Include="BoxPlugin.cs" />
|
||||
<Compile Include="BoxUtils.cs" />
|
||||
<Compile Include="Forms\BoxForm.cs">
|
||||
|
@ -73,8 +75,7 @@ copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)bin\$
|
|||
mkdir "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)"
|
||||
copy "$(ProjectDir)Languages\*.xml" "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)\"
|
||||
</PostBuildEvent>
|
||||
<PreBuildEvent>"$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
|
||||
|
||||
<PreBuildEvent>
|
||||
if exist "$(ProjectDir)BoxCredentials.private.cs" (
|
||||
rename "$(ProjectDir)BoxCredentials.cs" "BoxCredentials.orig.cs"
|
||||
rename "$(ProjectDir)BoxCredentials.private.cs" "BoxCredentials.cs"
|
||||
|
|
14
GreenshotBoxPlugin/Languages/language_Boxplugin-id-ID.xml
Normal file
14
GreenshotBoxPlugin/Languages/language_Boxplugin-id-ID.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<language description="Bahasa Indonesia" ietf="id-ID" version="1.0.0" languagegroup="">
|
||||
<resources>
|
||||
<resource name="communication_wait">Menyambungkan ke Box. Tunggu sebentar...</resource>
|
||||
<resource name="Configure">Konfigurasi Box</resource>
|
||||
<resource name="label_AfterUpload">Setelah Diunggah</resource>
|
||||
<resource name="label_AfterUploadLinkToClipBoard">Sambung ke papanklip</resource>
|
||||
<resource name="label_upload_format">Format gambar</resource>
|
||||
<resource name="settings_title">Setelan Box</resource>
|
||||
<resource name="upload_failure">Kesalahan terjadi ketika mengunggah ke Box:</resource>
|
||||
<resource name="upload_menu_item">Unggah ke Box</resource>
|
||||
<resource name="upload_success">Gambar telah berhasil diunggah ke Box!</resource>
|
||||
</resources>
|
||||
</language>
|
14
GreenshotBoxPlugin/Languages/language_Boxplugin-pl-PL.xml
Normal file
14
GreenshotBoxPlugin/Languages/language_Boxplugin-pl-PL.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<language description="Polski" ietf="pl-PL" version="1.1.4" languagegroup="2">
|
||||
<resources>
|
||||
<resource name="communication_wait">Trwa komunikacja z Box. Proszę czekać...</resource>
|
||||
<resource name="Configure">Konfiguruj Box</resource>
|
||||
<resource name="label_AfterUpload">Po wysłaniu</resource>
|
||||
<resource name="label_AfterUploadLinkToClipBoard">Link do schowka</resource>
|
||||
<resource name="label_upload_format">Format obrazu</resource>
|
||||
<resource name="settings_title">Ustawienia Box</resource>
|
||||
<resource name="upload_failure">Wystąpił błąd przy wysyłaniu do Box:</resource>
|
||||
<resource name="upload_menu_item">Wyślij do Box</resource>
|
||||
<resource name="upload_success">Wysyłanie obrazu do Box powiodło się!</resource>
|
||||
</resources>
|
||||
</language>
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<language description="Русский" ietf="ru-RU" version="1.1.0.2515" languagegroup="5">
|
||||
<language description="Русский" ietf="ru-RU" version="1.1.4.2622" languagegroup="5">
|
||||
<resources>
|
||||
<resource name="communication_wait">Обмен данными с Box. Подождите...</resource>
|
||||
<resource name="Configure">Настройка Box</resource>
|
||||
|
|
|
@ -51,4 +51,4 @@ using Greenshot.Plugin;
|
|||
//
|
||||
// You can specify all the values or you can use the default the Revision and
|
||||
// Build Numbers by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.1.4.$WCREV$")]
|
||||
[assembly: AssemblyVersion("1.1.6.$WCREV$")]
|
||||
|
|
|
@ -138,7 +138,6 @@
|
|||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<PreBuildEvent>"$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"</PreBuildEvent>
|
||||
<PostBuildEvent>mkdir "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)"
|
||||
copy "$(ProjectDir)bin\$(Configuration)\$(TargetFileName)" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\*.gsp"
|
||||
copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)bin\$(Configuration)\Plugins\$(ProjectName)\"
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<language description="Bahasa Indonesia" ietf="id-ID" version="1.0.0.0" languagegroup="">
|
||||
<resources>
|
||||
<resource name="browse_pages">Telusuri halaman</resource>
|
||||
<resource name="CANCEL">Batal</resource>
|
||||
<resource name="communication_wait">Mentransfer data ke Confluence, tunggu sebentar...</resource>
|
||||
<resource name="copy_wikimarkup">Kopi Wikimarkup ke papanklip</resource>
|
||||
<resource name="filename">Nama berkas</resource>
|
||||
<resource name="include_person_spaces">Sertakan personal space dalam pencarian dan penelusuran</resource>
|
||||
<resource name="label_password">Sandi</resource>
|
||||
<resource name="label_timeout">Waktu habis</resource>
|
||||
<resource name="label_url">Url</resource>
|
||||
<resource name="label_user">Pengguna</resource>
|
||||
<resource name="loading">Data Confluence sedang dimuat, tunggu sebentar...</resource>
|
||||
<resource name="login_error">Ada masalah ketika login: {0}</resource>
|
||||
<resource name="login_title">Harap masukkan login Confluence anda</resource>
|
||||
<resource name="OK">Oke</resource>
|
||||
<resource name="open_page_after_upload">Buka halaman setelah diunggah</resource>
|
||||
<resource name="open_pages">Buka halaman</resource>
|
||||
<resource name="plugin_settings">Setelan Confluence</resource>
|
||||
<resource name="search">Cari</resource>
|
||||
<resource name="search_pages">Cari halaman</resource>
|
||||
<resource name="search_text">Cari teks</resource>
|
||||
<resource name="upload">Unggah</resource>
|
||||
<resource name="upload_failure">Kesalahan terjadi ketika mengunggah ke Confluence:</resource>
|
||||
<resource name="upload_format">Format unggah</resource>
|
||||
<resource name="upload_menu_item">Unggah ke Confluence</resource>
|
||||
<resource name="upload_success">Gambar telah berhasil diunggah ke Confluence!</resource>
|
||||
</resources>
|
||||
</language>
|
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<language description="Polski" ietf="pl-PL" version="0.8.0" languagegroup="">
|
||||
<resources>
|
||||
<resource name="browse_pages">Przeglądaj strony</resource>
|
||||
<resource name="CANCEL">Anuluj</resource>
|
||||
<resource name="communication_wait">Trwa komunikacja z Confluence. Proszę czekać...</resource>
|
||||
<resource name="copy_wikimarkup">Kopiuj Wikimarkup do schowka</resource>
|
||||
<resource name="filename">Nazwa pliku</resource>
|
||||
<resource name="include_person_spaces">Dołącz własne spacje przy wyszukiwaniu i przeglądaniu</resource>
|
||||
<resource name="label_password">Hasło</resource>
|
||||
<resource name="label_timeout">Czas</resource>
|
||||
<resource name="label_url">URL</resource>
|
||||
<resource name="label_user">Użytkownik</resource>
|
||||
<resource name="loading">Informacje z Confluence są wczytywane, proszę czekać...</resource>
|
||||
<resource name="login_error">Wystąpił problem podczas logowania: {0}</resource>
|
||||
<resource name="login_title">Wprowadź swoje dane logowania</resource>
|
||||
<resource name="OK">OK</resource>
|
||||
<resource name="open_page_after_upload">Otwórz stronę po wysłaniu</resource>
|
||||
<resource name="open_pages">Otwórz strony</resource>
|
||||
<resource name="plugin_settings">Ustawienia Confluence
|
||||
</resource>
|
||||
<resource name="search">Szukaj</resource>
|
||||
<resource name="search_pages">Szukaj strony</resource>
|
||||
<resource name="search_text">Szukaj tekst</resource>
|
||||
<resource name="upload">Wyślij</resource>
|
||||
<resource name="upload_failure">Wystąpił błąd przy wysyłaniu do Confluence:</resource>
|
||||
<resource name="upload_format">Format wysyłania</resource>
|
||||
<resource name="upload_menu_item">Wyślij do Confluence</resource>
|
||||
<resource name="upload_success">Wysyłanie obrazu do Confluence powiodło się!</resource>
|
||||
</resources>
|
||||
</language>
|
|
@ -51,4 +51,4 @@ using Greenshot.Plugin;
|
|||
//
|
||||
// You can specify all the values or you can use the default the Revision and
|
||||
// Build Numbers by using the '*' as shown below:
|
||||
[assembly: AssemblyVersion("1.1.4.$WCREV$")]
|
||||
[assembly: AssemblyVersion("1.1.6.$WCREV$")]
|
|
@ -143,7 +143,7 @@ namespace GreenshotDropboxPlugin {
|
|||
return true;
|
||||
} catch (Exception e) {
|
||||
LOG.Error(e);
|
||||
MessageBox.Show(Language.GetString("dropbox", LangKey.upload_failure) + " " + e.ToString());
|
||||
MessageBox.Show(Language.GetString("dropbox", LangKey.upload_failure) + " " + e.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -69,8 +69,7 @@ copy "$(ProjectDir)bin\$(Configuration)\$(ProjectName).pdb" "$(SolutionDir)bin\$
|
|||
mkdir "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)"
|
||||
copy "$(ProjectDir)Languages\*.xml" "$(SolutionDir)bin\$(Configuration)\Languages\Plugins\$(ProjectName)\"
|
||||
</PostBuildEvent>
|
||||
<PreBuildEvent>"$(SolutionDir)\tools\TortoiseSVN\SubWCRev.exe" "$(ProjectDir)\" "$(ProjectDir)\Properties\AssemblyInfo.cs.template" "$(ProjectDir)\Properties\AssemblyInfo.cs"
|
||||
|
||||
<PreBuildEvent>
|
||||
if exist "$(ProjectDir)DropBoxCredentials.private.cs" (
|
||||
rename "$(ProjectDir)DropBoxCredentials.cs" "DropBoxCredentials.orig.cs"
|
||||
rename "$(ProjectDir)DropBoxCredentials.private.cs" "DropBoxCredentials.cs"
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<language description="Bahasa Indonesia" ietf="id-ID" version="1.0.0.0" languagegroup="">
|
||||
<resources>
|
||||
<resource name="communication_wait">Menyambungkan ke Dropbox. Tunggu sebentar...</resource>
|
||||
<resource name="Configure">Konfigurasi Dropbox</resource>
|
||||
<resource name="label_AfterUpload">Setelah mengunggah</resource>
|
||||
<resource name="label_AfterUploadLinkToClipBoard">Sambung ke papanklip</resource>
|
||||
<resource name="label_AfterUploadOpenHistory">Buka riwayat</resource>
|
||||
<resource name="label_upload_format">Format gambar</resource>
|
||||
<resource name="settings_title">Setelan Dropbox</resource>
|
||||
<resource name="upload_failure">Kesalahan terjadi ketik mengunggah ke Dropbox:</resource>
|
||||
<resource name="upload_menu_item">Unggah ke Dropbox</resource>
|
||||
<resource name="upload_success">Sukses mengunggah gambar ke Dropbox!</resource>
|
||||
</resources>
|
||||
</language>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue