Added "Scroll method" option to scrolling capture

This commit is contained in:
Jaex 2025-06-09 01:25:49 +03:00
parent a83eecbd40
commit 01617b3c8d
8 changed files with 185 additions and 29 deletions

View File

@ -2966,6 +2966,42 @@ namespace ShareX.HelpersLib.Properties {
} }
} }
/// <summary>
/// Looks up a localized string similar to Down arrow.
/// </summary>
internal static string ScrollMethod_DownArrow {
get {
return ResourceManager.GetString("ScrollMethod_DownArrow", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Mouse wheel.
/// </summary>
internal static string ScrollMethod_MouseWheel {
get {
return ResourceManager.GetString("ScrollMethod_MouseWheel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Page down.
/// </summary>
internal static string ScrollMethod_PageDown {
get {
return ResourceManager.GetString("ScrollMethod_PageDown", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Scroll message.
/// </summary>
internal static string ScrollMethod_ScrollMessage {
get {
return ResourceManager.GetString("ScrollMethod_ScrollMessage", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Arrow (A). /// Looks up a localized string similar to Arrow (A).
/// </summary> /// </summary>

View File

@ -1302,4 +1302,16 @@ Would you like to download and install it?</value>
<data name="HotkeyType_QRCodeScanRegion" xml:space="preserve"> <data name="HotkeyType_QRCodeScanRegion" xml:space="preserve">
<value>QR code (Scan region)</value> <value>QR code (Scan region)</value>
</data> </data>
<data name="ScrollMethod_DownArrow" xml:space="preserve">
<value>Down arrow</value>
</data>
<data name="ScrollMethod_MouseWheel" xml:space="preserve">
<value>Mouse wheel</value>
</data>
<data name="ScrollMethod_PageDown" xml:space="preserve">
<value>Page down</value>
</data>
<data name="ScrollMethod_ScrollMessage" xml:space="preserve">
<value>Scroll message</value>
</data>
</root> </root>

View File

@ -371,4 +371,12 @@ namespace ShareX.ScreenCaptureLib
PartiallySuccessful, PartiallySuccessful,
Successful Successful
} }
public enum ScrollMethod // Localized
{
MouseWheel,
DownArrow,
PageDown,
ScrollMessage
}
} }

View File

@ -44,6 +44,8 @@
this.btnCancel = new System.Windows.Forms.Button(); this.btnCancel = new System.Windows.Forms.Button();
this.cbShowRegion = new System.Windows.Forms.CheckBox(); this.cbShowRegion = new System.Windows.Forms.CheckBox();
this.cbAutoIgnoreBottomEdge = new System.Windows.Forms.CheckBox(); this.cbAutoIgnoreBottomEdge = new System.Windows.Forms.CheckBox();
this.cbScrollMethod = new System.Windows.Forms.ComboBox();
this.lblScrollMethod = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.nudStartDelay)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudStartDelay)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudScrollDelay)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudScrollDelay)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nudScrollAmount)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nudScrollAmount)).BeginInit();
@ -124,7 +126,7 @@
// //
resources.ApplyResources(this.nudScrollAmount, "nudScrollAmount"); resources.ApplyResources(this.nudScrollAmount, "nudScrollAmount");
this.nudScrollAmount.Maximum = new decimal(new int[] { this.nudScrollAmount.Maximum = new decimal(new int[] {
5, 6,
0, 0,
0, 0,
0}); 0});
@ -187,10 +189,25 @@
this.cbAutoIgnoreBottomEdge.Name = "cbAutoIgnoreBottomEdge"; this.cbAutoIgnoreBottomEdge.Name = "cbAutoIgnoreBottomEdge";
this.cbAutoIgnoreBottomEdge.UseVisualStyleBackColor = true; this.cbAutoIgnoreBottomEdge.UseVisualStyleBackColor = true;
// //
// cbScrollMethod
//
this.cbScrollMethod.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbScrollMethod.FormattingEnabled = true;
resources.ApplyResources(this.cbScrollMethod, "cbScrollMethod");
this.cbScrollMethod.Name = "cbScrollMethod";
this.cbScrollMethod.SelectedIndexChanged += new System.EventHandler(this.cbScrollMethod_SelectedIndexChanged);
//
// lblScrollMethod
//
resources.ApplyResources(this.lblScrollMethod, "lblScrollMethod");
this.lblScrollMethod.Name = "lblScrollMethod";
//
// ScrollingCaptureOptionsForm // ScrollingCaptureOptionsForm
// //
resources.ApplyResources(this, "$this"); resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.lblScrollMethod);
this.Controls.Add(this.cbScrollMethod);
this.Controls.Add(this.cbAutoIgnoreBottomEdge); this.Controls.Add(this.cbAutoIgnoreBottomEdge);
this.Controls.Add(this.cbShowRegion); this.Controls.Add(this.cbShowRegion);
this.Controls.Add(this.btnCancel); this.Controls.Add(this.btnCancel);
@ -234,5 +251,7 @@
private System.Windows.Forms.Button btnCancel; private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.CheckBox cbShowRegion; private System.Windows.Forms.CheckBox cbShowRegion;
private System.Windows.Forms.CheckBox cbAutoIgnoreBottomEdge; private System.Windows.Forms.CheckBox cbAutoIgnoreBottomEdge;
private System.Windows.Forms.ComboBox cbScrollMethod;
private System.Windows.Forms.Label lblScrollMethod;
} }
} }

View File

@ -39,6 +39,7 @@ namespace ShareX.ScreenCaptureLib
InitializeComponent(); InitializeComponent();
ShareXResources.ApplyTheme(this, true); ShareXResources.ApplyTheme(this, true);
cbScrollMethod.Items.AddRange(Helpers.GetLocalizedEnumDescriptions<ScrollMethod>());
LoadOptions(); LoadOptions();
} }
@ -48,6 +49,7 @@ namespace ShareX.ScreenCaptureLib
nudStartDelay.SetValue(Options.StartDelay); nudStartDelay.SetValue(Options.StartDelay);
cbAutoScrollTop.Checked = Options.AutoScrollTop; cbAutoScrollTop.Checked = Options.AutoScrollTop;
nudScrollDelay.SetValue(Options.ScrollDelay); nudScrollDelay.SetValue(Options.ScrollDelay);
cbScrollMethod.SelectedIndex = (int)Options.ScrollMethod;
nudScrollAmount.SetValue(Options.ScrollAmount); nudScrollAmount.SetValue(Options.ScrollAmount);
cbAutoUpload.Checked = Options.AutoUpload; cbAutoUpload.Checked = Options.AutoUpload;
cbShowRegion.Checked = Options.ShowRegion; cbShowRegion.Checked = Options.ShowRegion;
@ -59,12 +61,22 @@ namespace ShareX.ScreenCaptureLib
Options.StartDelay = (int)nudStartDelay.Value; Options.StartDelay = (int)nudStartDelay.Value;
Options.AutoScrollTop = cbAutoScrollTop.Checked; Options.AutoScrollTop = cbAutoScrollTop.Checked;
Options.ScrollDelay = (int)nudScrollDelay.Value; Options.ScrollDelay = (int)nudScrollDelay.Value;
Options.ScrollMethod = (ScrollMethod)cbScrollMethod.SelectedIndex;
Options.ScrollAmount = (int)nudScrollAmount.Value; Options.ScrollAmount = (int)nudScrollAmount.Value;
Options.AutoUpload = cbAutoUpload.Checked; Options.AutoUpload = cbAutoUpload.Checked;
Options.ShowRegion = cbShowRegion.Checked; Options.ShowRegion = cbShowRegion.Checked;
Options.AutoIgnoreBottomEdge = cbAutoIgnoreBottomEdge.Checked; Options.AutoIgnoreBottomEdge = cbAutoIgnoreBottomEdge.Checked;
} }
private void cbScrollMethod_SelectedIndexChanged(object sender, EventArgs e)
{
bool hideScrollAmount = (ScrollMethod)cbScrollMethod.SelectedIndex == ScrollMethod.PageDown;
lblScrollAmount.Visible = !hideScrollAmount;
nudScrollAmount.Visible = !hideScrollAmount;
lblScrollAmountHint.Visible = !hideScrollAmount;
}
private void btnOK_Click(object sender, EventArgs e) private void btnOK_Click(object sender, EventArgs e)
{ {
SaveOptions(); SaveOptions();

View File

@ -144,7 +144,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblStartDelay.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblStartDelay.ZOrder" xml:space="preserve">
<value>14</value> <value>16</value>
</data> </data>
<data name="nudStartDelay.Location" type="System.Drawing.Point, System.Drawing"> <data name="nudStartDelay.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 40</value> <value>16, 40</value>
@ -169,7 +169,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;nudStartDelay.ZOrder" xml:space="preserve"> <data name="&gt;&gt;nudStartDelay.ZOrder" xml:space="preserve">
<value>13</value> <value>15</value>
</data> </data>
<data name="lblScrollDelay.AutoSize" type="System.Boolean, mscorlib"> <data name="lblScrollDelay.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -196,7 +196,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblScrollDelay.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblScrollDelay.ZOrder" xml:space="preserve">
<value>12</value> <value>14</value>
</data> </data>
<data name="nudScrollDelay.Location" type="System.Drawing.Point, System.Drawing"> <data name="nudScrollDelay.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 136</value> <value>16, 136</value>
@ -220,7 +220,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;nudScrollDelay.ZOrder" xml:space="preserve"> <data name="&gt;&gt;nudScrollDelay.ZOrder" xml:space="preserve">
<value>11</value> <value>13</value>
</data> </data>
<data name="cbAutoScrollTop.AutoSize" type="System.Boolean, mscorlib"> <data name="cbAutoScrollTop.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -247,19 +247,19 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;cbAutoScrollTop.ZOrder" xml:space="preserve"> <data name="&gt;&gt;cbAutoScrollTop.ZOrder" xml:space="preserve">
<value>10</value> <value>12</value>
</data> </data>
<data name="lblScrollAmount.AutoSize" type="System.Boolean, mscorlib"> <data name="lblScrollAmount.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </data>
<data name="lblScrollAmount.Location" type="System.Drawing.Point, System.Drawing"> <data name="lblScrollAmount.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 176</value> <value>165, 176</value>
</data> </data>
<data name="lblScrollAmount.Size" type="System.Drawing.Size, System.Drawing"> <data name="lblScrollAmount.Size" type="System.Drawing.Size, System.Drawing">
<value>91, 16</value> <value>91, 16</value>
</data> </data>
<data name="lblScrollAmount.TabIndex" type="System.Int32, mscorlib"> <data name="lblScrollAmount.TabIndex" type="System.Int32, mscorlib">
<value>7</value> <value>9</value>
</data> </data>
<data name="lblScrollAmount.Text" xml:space="preserve"> <data name="lblScrollAmount.Text" xml:space="preserve">
<value>Scroll amount:</value> <value>Scroll amount:</value>
@ -274,16 +274,16 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblScrollAmount.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblScrollAmount.ZOrder" xml:space="preserve">
<value>9</value> <value>11</value>
</data> </data>
<data name="nudScrollAmount.Location" type="System.Drawing.Point, System.Drawing"> <data name="nudScrollAmount.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 200</value> <value>168, 201</value>
</data> </data>
<data name="nudScrollAmount.Size" type="System.Drawing.Size, System.Drawing"> <data name="nudScrollAmount.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 22</value> <value>64, 22</value>
</data> </data>
<data name="nudScrollAmount.TabIndex" type="System.Int32, mscorlib"> <data name="nudScrollAmount.TabIndex" type="System.Int32, mscorlib">
<value>8</value> <value>10</value>
</data> </data>
<data name="nudScrollAmount.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms"> <data name="nudScrollAmount.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
<value>Center</value> <value>Center</value>
@ -298,19 +298,19 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;nudScrollAmount.ZOrder" xml:space="preserve"> <data name="&gt;&gt;nudScrollAmount.ZOrder" xml:space="preserve">
<value>8</value> <value>10</value>
</data> </data>
<data name="cbAutoUpload.AutoSize" type="System.Boolean, mscorlib"> <data name="cbAutoUpload.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </data>
<data name="cbAutoUpload.Location" type="System.Drawing.Point, System.Drawing"> <data name="cbAutoUpload.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 240</value> <value>16, 304</value>
</data> </data>
<data name="cbAutoUpload.Size" type="System.Drawing.Size, System.Drawing"> <data name="cbAutoUpload.Size" type="System.Drawing.Size, System.Drawing">
<value>191, 20</value> <value>191, 20</value>
</data> </data>
<data name="cbAutoUpload.TabIndex" type="System.Int32, mscorlib"> <data name="cbAutoUpload.TabIndex" type="System.Int32, mscorlib">
<value>10</value> <value>14</value>
</data> </data>
<data name="cbAutoUpload.Text" xml:space="preserve"> <data name="cbAutoUpload.Text" xml:space="preserve">
<value>Automatically upload / save</value> <value>Automatically upload / save</value>
@ -325,7 +325,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;cbAutoUpload.ZOrder" xml:space="preserve"> <data name="&gt;&gt;cbAutoUpload.ZOrder" xml:space="preserve">
<value>7</value> <value>9</value>
</data> </data>
<data name="lblStartDelayHint.AutoSize" type="System.Boolean, mscorlib"> <data name="lblStartDelayHint.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -352,7 +352,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblStartDelayHint.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblStartDelayHint.ZOrder" xml:space="preserve">
<value>6</value> <value>8</value>
</data> </data>
<data name="lblScrollDelayHint.AutoSize" type="System.Boolean, mscorlib"> <data name="lblScrollDelayHint.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -379,19 +379,19 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblScrollDelayHint.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblScrollDelayHint.ZOrder" xml:space="preserve">
<value>5</value> <value>7</value>
</data> </data>
<data name="lblScrollAmountHint.AutoSize" type="System.Boolean, mscorlib"> <data name="lblScrollAmountHint.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </data>
<data name="lblScrollAmountHint.Location" type="System.Drawing.Point, System.Drawing"> <data name="lblScrollAmountHint.Location" type="System.Drawing.Point, System.Drawing">
<value>101, 203</value> <value>237, 204</value>
</data> </data>
<data name="lblScrollAmountHint.Size" type="System.Drawing.Size, System.Drawing"> <data name="lblScrollAmountHint.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 16</value> <value>39, 16</value>
</data> </data>
<data name="lblScrollAmountHint.TabIndex" type="System.Int32, mscorlib"> <data name="lblScrollAmountHint.TabIndex" type="System.Int32, mscorlib">
<value>9</value> <value>11</value>
</data> </data>
<data name="lblScrollAmountHint.Text" xml:space="preserve"> <data name="lblScrollAmountHint.Text" xml:space="preserve">
<value>times</value> <value>times</value>
@ -406,7 +406,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;lblScrollAmountHint.ZOrder" xml:space="preserve"> <data name="&gt;&gt;lblScrollAmountHint.ZOrder" xml:space="preserve">
<value>4</value> <value>6</value>
</data> </data>
<data name="btnOK.Location" type="System.Drawing.Point, System.Drawing"> <data name="btnOK.Location" type="System.Drawing.Point, System.Drawing">
<value>152, 336</value> <value>152, 336</value>
@ -415,7 +415,7 @@
<value>104, 32</value> <value>104, 32</value>
</data> </data>
<data name="btnOK.TabIndex" type="System.Int32, mscorlib"> <data name="btnOK.TabIndex" type="System.Int32, mscorlib">
<value>13</value> <value>15</value>
</data> </data>
<data name="btnOK.Text" xml:space="preserve"> <data name="btnOK.Text" xml:space="preserve">
<value>OK</value> <value>OK</value>
@ -430,7 +430,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;btnOK.ZOrder" xml:space="preserve"> <data name="&gt;&gt;btnOK.ZOrder" xml:space="preserve">
<value>3</value> <value>5</value>
</data> </data>
<data name="btnCancel.Location" type="System.Drawing.Point, System.Drawing"> <data name="btnCancel.Location" type="System.Drawing.Point, System.Drawing">
<value>264, 336</value> <value>264, 336</value>
@ -439,7 +439,7 @@
<value>104, 32</value> <value>104, 32</value>
</data> </data>
<data name="btnCancel.TabIndex" type="System.Int32, mscorlib"> <data name="btnCancel.TabIndex" type="System.Int32, mscorlib">
<value>14</value> <value>16</value>
</data> </data>
<data name="btnCancel.Text" xml:space="preserve"> <data name="btnCancel.Text" xml:space="preserve">
<value>Cancel</value> <value>Cancel</value>
@ -454,7 +454,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;btnCancel.ZOrder" xml:space="preserve"> <data name="&gt;&gt;btnCancel.ZOrder" xml:space="preserve">
<value>2</value> <value>4</value>
</data> </data>
<data name="cbShowRegion.AutoSize" type="System.Boolean, mscorlib"> <data name="cbShowRegion.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
@ -466,7 +466,7 @@
<value>201, 20</value> <value>201, 20</value>
</data> </data>
<data name="cbShowRegion.TabIndex" type="System.Int32, mscorlib"> <data name="cbShowRegion.TabIndex" type="System.Int32, mscorlib">
<value>11</value> <value>13</value>
</data> </data>
<data name="cbShowRegion.Text" xml:space="preserve"> <data name="cbShowRegion.Text" xml:space="preserve">
<value>Show scrolling capture region</value> <value>Show scrolling capture region</value>
@ -481,13 +481,13 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;cbShowRegion.ZOrder" xml:space="preserve"> <data name="&gt;&gt;cbShowRegion.ZOrder" xml:space="preserve">
<value>1</value> <value>3</value>
</data> </data>
<data name="cbAutoIgnoreBottomEdge.AutoSize" type="System.Boolean, mscorlib"> <data name="cbAutoIgnoreBottomEdge.AutoSize" type="System.Boolean, mscorlib">
<value>True</value> <value>True</value>
</data> </data>
<data name="cbAutoIgnoreBottomEdge.Location" type="System.Drawing.Point, System.Drawing"> <data name="cbAutoIgnoreBottomEdge.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 304</value> <value>16, 240</value>
</data> </data>
<data name="cbAutoIgnoreBottomEdge.Size" type="System.Drawing.Size, System.Drawing"> <data name="cbAutoIgnoreBottomEdge.Size" type="System.Drawing.Size, System.Drawing">
<value>173, 20</value> <value>173, 20</value>
@ -508,6 +508,54 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;cbAutoIgnoreBottomEdge.ZOrder" xml:space="preserve"> <data name="&gt;&gt;cbAutoIgnoreBottomEdge.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="cbScrollMethod.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 200</value>
</data>
<data name="cbScrollMethod.Size" type="System.Drawing.Size, System.Drawing">
<value>144, 24</value>
</data>
<data name="cbScrollMethod.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="&gt;&gt;cbScrollMethod.Name" xml:space="preserve">
<value>cbScrollMethod</value>
</data>
<data name="&gt;&gt;cbScrollMethod.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbScrollMethod.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;cbScrollMethod.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="lblScrollMethod.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblScrollMethod.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 176</value>
</data>
<data name="lblScrollMethod.Size" type="System.Drawing.Size, System.Drawing">
<value>92, 16</value>
</data>
<data name="lblScrollMethod.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="lblScrollMethod.Text" xml:space="preserve">
<value>Scroll method:</value>
</data>
<data name="&gt;&gt;lblScrollMethod.Name" xml:space="preserve">
<value>lblScrollMethod</value>
</data>
<data name="&gt;&gt;lblScrollMethod.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblScrollMethod.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;lblScrollMethod.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
</data> </data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

View File

@ -127,7 +127,27 @@ namespace ShareX.ScreenCaptureLib
break; break;
} }
InputHelpers.SendMouseWheel(-120 * Options.ScrollAmount); switch (Options.ScrollMethod)
{
case ScrollMethod.MouseWheel:
InputHelpers.SendMouseWheel(-120 * Options.ScrollAmount);
break;
case ScrollMethod.DownArrow:
for (int i = 0; i < Options.ScrollAmount; i++)
{
InputHelpers.SendKeyPress(VirtualKeyCode.DOWN);
}
break;
case ScrollMethod.PageDown:
InputHelpers.SendKeyPress(VirtualKeyCode.NEXT);
break;
case ScrollMethod.ScrollMessage:
for (int i = 0; i < Options.ScrollAmount; i++)
{
NativeMethods.SendMessage(selectedWindow.Handle, (int)WindowsMessages.VSCROLL, (int)ScrollBarCommands.SB_LINEDOWN, 0);
}
break;
}
Stopwatch timer = Stopwatch.StartNew(); Stopwatch timer = Stopwatch.StartNew();

View File

@ -30,6 +30,7 @@ namespace ShareX.ScreenCaptureLib
public int StartDelay { get; set; } = 300; public int StartDelay { get; set; } = 300;
public bool AutoScrollTop { get; set; } = false; public bool AutoScrollTop { get; set; } = false;
public int ScrollDelay { get; set; } = 300; public int ScrollDelay { get; set; } = 300;
public ScrollMethod ScrollMethod { get; set; } = ScrollMethod.MouseWheel;
public int ScrollAmount { get; set; } = 2; public int ScrollAmount { get; set; } = 2;
public bool AutoIgnoreBottomEdge { get; set; } = true; public bool AutoIgnoreBottomEdge { get; set; } = true;
public bool AutoUpload { get; set; } = false; public bool AutoUpload { get; set; } = false;