mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-29 20:32:44 +08:00
修复windows下showsystemtextarea回车无法换行的bug
This commit is contained in:
parent
5f3806a797
commit
a54d528fb8
@ -26,7 +26,9 @@ const showSystemMessageBox = async function (content, title = "") {
|
|||||||
const script = `display dialog "${content}" with title "${title}" buttons {"确定"} default button "确定" with icon ${iconParam}`;
|
const script = `display dialog "${content}" with title "${title}" buttons {"确定"} default button "确定" with icon ${iconParam}`;
|
||||||
await this.runAppleScript(script);
|
await this.runAppleScript(script);
|
||||||
} else if (window.utools.isWindows()) {
|
} else if (window.utools.isWindows()) {
|
||||||
|
const escapedIconPath = iconPath ? iconPath.replace(/\\/g, "\\\\") : null;
|
||||||
const csharpScript = `
|
const csharpScript = `
|
||||||
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -34,8 +36,8 @@ const showSystemMessageBox = async function (content, title = "") {
|
|||||||
static void Main() {
|
static void Main() {
|
||||||
Form form = new Form();
|
Form form = new Form();
|
||||||
${
|
${
|
||||||
iconPath
|
escapedIconPath
|
||||||
? `using (var bmp = new Bitmap("${iconPath}"))
|
? `using (var bmp = new Bitmap("${escapedIconPath}"))
|
||||||
{
|
{
|
||||||
form.Icon = Icon.FromHandle(bmp.GetHicon());
|
form.Icon = Icon.FromHandle(bmp.GetHicon());
|
||||||
}`
|
}`
|
||||||
@ -81,7 +83,9 @@ const showSystemInputBox = async function (placeholders, title = "") {
|
|||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
} else if (window.utools.isWindows()) {
|
} else if (window.utools.isWindows()) {
|
||||||
|
const escapedIconPath = iconPath ? iconPath.replace(/\\/g, "\\\\") : null;
|
||||||
const csharpScript = `
|
const csharpScript = `
|
||||||
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -95,8 +99,8 @@ const showSystemInputBox = async function (placeholders, title = "") {
|
|||||||
form.MaximizeBox = false;
|
form.MaximizeBox = false;
|
||||||
form.MinimizeBox = false;
|
form.MinimizeBox = false;
|
||||||
${
|
${
|
||||||
iconPath
|
escapedIconPath
|
||||||
? `using (var bmp = new Bitmap("${iconPath}"))
|
? `using (var bmp = new Bitmap("${escapedIconPath}"))
|
||||||
{
|
{
|
||||||
form.Icon = Icon.FromHandle(bmp.GetHicon());
|
form.Icon = Icon.FromHandle(bmp.GetHicon());
|
||||||
}`
|
}`
|
||||||
@ -161,7 +165,9 @@ const showSystemConfirmBox = async function (content, title = "") {
|
|||||||
const result = await this.runAppleScript(script);
|
const result = await this.runAppleScript(script);
|
||||||
return result.includes("button returned:确定");
|
return result.includes("button returned:确定");
|
||||||
} else if (window.utools.isWindows()) {
|
} else if (window.utools.isWindows()) {
|
||||||
|
const escapedIconPath = iconPath ? iconPath.replace(/\\/g, "\\\\") : null;
|
||||||
const csharpScript = `
|
const csharpScript = `
|
||||||
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -169,8 +175,8 @@ const showSystemConfirmBox = async function (content, title = "") {
|
|||||||
static void Main() {
|
static void Main() {
|
||||||
Form form = new Form();
|
Form form = new Form();
|
||||||
${
|
${
|
||||||
iconPath
|
escapedIconPath
|
||||||
? `using (var bmp = new Bitmap("${iconPath}"))
|
? `using (var bmp = new Bitmap("${escapedIconPath}"))
|
||||||
{
|
{
|
||||||
form.Icon = Icon.FromHandle(bmp.GetHicon());
|
form.Icon = Icon.FromHandle(bmp.GetHicon());
|
||||||
}`
|
}`
|
||||||
@ -200,7 +206,9 @@ const showSystemSelectList = async function (items, title = "") {
|
|||||||
const id = items.findIndex((item) => item === text);
|
const id = items.findIndex((item) => item === text);
|
||||||
return { id, text };
|
return { id, text };
|
||||||
} else if (window.utools.isWindows()) {
|
} else if (window.utools.isWindows()) {
|
||||||
|
const escapedIconPath = iconPath ? iconPath.replace(/\\/g, "\\\\") : null;
|
||||||
const csharpScript = `
|
const csharpScript = `
|
||||||
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -218,8 +226,8 @@ const showSystemSelectList = async function (items, title = "") {
|
|||||||
form.MaximizeBox = false;
|
form.MaximizeBox = false;
|
||||||
form.MinimizeBox = false;
|
form.MinimizeBox = false;
|
||||||
${
|
${
|
||||||
iconPath
|
escapedIconPath
|
||||||
? `using (var bmp = new Bitmap("${iconPath}"))
|
? `using (var bmp = new Bitmap("${escapedIconPath}"))
|
||||||
{
|
{
|
||||||
form.Icon = Icon.FromHandle(bmp.GetHicon());
|
form.Icon = Icon.FromHandle(bmp.GetHicon());
|
||||||
}`
|
}`
|
||||||
@ -228,7 +236,7 @@ const showSystemSelectList = async function (items, title = "") {
|
|||||||
|
|
||||||
listBox.SetBounds(10, 10, 280, 180);
|
listBox.SetBounds(10, 10, 280, 180);
|
||||||
${items
|
${items
|
||||||
.map((item, index) => `listBox.Items.Add("${item}");`)
|
.map((item) => `listBox.Items.Add("${item}");`)
|
||||||
.join("\n ")}
|
.join("\n ")}
|
||||||
listBox.SelectedIndex = 0;
|
listBox.SelectedIndex = 0;
|
||||||
form.Controls.Add(listBox);
|
form.Controls.Add(listBox);
|
||||||
@ -244,14 +252,14 @@ const showSystemSelectList = async function (items, title = "") {
|
|||||||
form.Controls.Add(cancelButton);
|
form.Controls.Add(cancelButton);
|
||||||
|
|
||||||
if (form.ShowDialog() == DialogResult.OK && listBox.SelectedItem != null) {
|
if (form.ShowDialog() == DialogResult.OK && listBox.SelectedItem != null) {
|
||||||
Console.WriteLine($"{listBox.SelectedIndex}|{listBox.SelectedItem}");
|
Console.WriteLine(listBox.SelectedIndex.ToString() + "|||||" + listBox.SelectedItem.ToString());
|
||||||
}
|
}
|
||||||
form.Dispose();
|
form.Dispose();
|
||||||
}
|
}
|
||||||
}`;
|
}`;
|
||||||
const result = await this.runCsharp(csharpScript);
|
const result = await this.runCsharp(csharpScript);
|
||||||
if (result.trim()) {
|
if (result.trim()) {
|
||||||
const [id, text] = result.trim().split("|");
|
const [id, text] = result.trim().split("|||||");
|
||||||
return { id: parseInt(id), text };
|
return { id: parseInt(id), text };
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@ -278,7 +286,9 @@ const showSystemButtonBox = async function (buttons, content, title = "") {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
} else if (window.utools.isWindows()) {
|
} else if (window.utools.isWindows()) {
|
||||||
|
const escapedIconPath = iconPath ? iconPath.replace(/\\/g, "\\\\") : null;
|
||||||
const csharpScript = `
|
const csharpScript = `
|
||||||
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -295,8 +305,8 @@ const showSystemButtonBox = async function (buttons, content, title = "") {
|
|||||||
form.MaximizeBox = false;
|
form.MaximizeBox = false;
|
||||||
form.MinimizeBox = false;
|
form.MinimizeBox = false;
|
||||||
${
|
${
|
||||||
iconPath
|
escapedIconPath
|
||||||
? `using (var bmp = new Bitmap("${iconPath}"))
|
? `using (var bmp = new Bitmap("${escapedIconPath}"))
|
||||||
{
|
{
|
||||||
form.Icon = Icon.FromHandle(bmp.GetHicon());
|
form.Icon = Icon.FromHandle(bmp.GetHicon());
|
||||||
}`
|
}`
|
||||||
@ -329,7 +339,7 @@ const showSystemButtonBox = async function (buttons, content, title = "") {
|
|||||||
if (result == DialogResult.OK) {
|
if (result == DialogResult.OK) {
|
||||||
foreach (Button btn in buttonPanel.Controls) {
|
foreach (Button btn in buttonPanel.Controls) {
|
||||||
if (btn.DialogResult == result) {
|
if (btn.DialogResult == result) {
|
||||||
Console.WriteLine($"{btn.Tag}|{btn.Text}");
|
Console.WriteLine(btn.Tag.ToString() + "|||||" + btn.Text);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -339,7 +349,7 @@ const showSystemButtonBox = async function (buttons, content, title = "") {
|
|||||||
}`;
|
}`;
|
||||||
const result = await this.runCsharp(csharpScript);
|
const result = await this.runCsharp(csharpScript);
|
||||||
if (result.trim()) {
|
if (result.trim()) {
|
||||||
const [id, text] = result.trim().split("|");
|
const [id, text] = result.trim().split("|||||");
|
||||||
return { id: parseInt(id), text };
|
return { id: parseInt(id), text };
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@ -354,7 +364,9 @@ const showSystemTextArea = async function (
|
|||||||
) {
|
) {
|
||||||
const iconPath = getQuickcommandIconPath();
|
const iconPath = getQuickcommandIconPath();
|
||||||
if (window.utools.isWindows()) {
|
if (window.utools.isWindows()) {
|
||||||
|
const escapedIconPath = iconPath ? iconPath.replace(/\\/g, "\\\\") : null;
|
||||||
const csharpScript = `
|
const csharpScript = `
|
||||||
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -373,8 +385,8 @@ const showSystemTextArea = async function (
|
|||||||
form.MaximizeBox = false;
|
form.MaximizeBox = false;
|
||||||
form.MinimizeBox = false;
|
form.MinimizeBox = false;
|
||||||
${
|
${
|
||||||
iconPath
|
escapedIconPath
|
||||||
? `using (var bmp = new Bitmap("${iconPath}"))
|
? `using (var bmp = new Bitmap("${escapedIconPath}"))
|
||||||
{
|
{
|
||||||
form.Icon = Icon.FromHandle(bmp.GetHicon());
|
form.Icon = Icon.FromHandle(bmp.GetHicon());
|
||||||
}`
|
}`
|
||||||
@ -389,6 +401,7 @@ const showSystemTextArea = async function (
|
|||||||
textBox.ScrollBars = ScrollBars.Vertical;
|
textBox.ScrollBars = ScrollBars.Vertical;
|
||||||
textBox.SetBounds(10, 40, 380, 180);
|
textBox.SetBounds(10, 40, 380, 180);
|
||||||
textBox.Text = "${defaultText}";
|
textBox.Text = "${defaultText}";
|
||||||
|
textBox.AcceptsReturn = true;
|
||||||
form.Controls.Add(textBox);
|
form.Controls.Add(textBox);
|
||||||
|
|
||||||
okButton.Text = "确定";
|
okButton.Text = "确定";
|
||||||
@ -401,9 +414,19 @@ const showSystemTextArea = async function (
|
|||||||
cancelButton.SetBounds(310, 230, 75, 23);
|
cancelButton.SetBounds(310, 230, 75, 23);
|
||||||
form.Controls.Add(cancelButton);
|
form.Controls.Add(cancelButton);
|
||||||
|
|
||||||
form.AcceptButton = okButton;
|
// 移除默认的 Enter 键行为
|
||||||
|
form.AcceptButton = null;
|
||||||
form.CancelButton = cancelButton;
|
form.CancelButton = cancelButton;
|
||||||
|
|
||||||
|
// 添加快捷键处理
|
||||||
|
form.KeyPreview = true;
|
||||||
|
form.KeyDown += (sender, e) => {
|
||||||
|
if (e.KeyCode == Keys.Enter && e.Control) {
|
||||||
|
okButton.PerformClick();
|
||||||
|
e.Handled = true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
if (form.ShowDialog() == DialogResult.OK) {
|
if (form.ShowDialog() == DialogResult.OK) {
|
||||||
Console.WriteLine(textBox.Text);
|
Console.WriteLine(textBox.Text);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user