Как ссылаться на сборки Paint.NET напрямую с помощью C#
Я хотел обратиться к сборкам Paint.NET напрямую и использовать его функциональность таким образом. Я не знаю, как использовать.dll-файл PaintDotNet.Core.dll и использовать его функциональность в C# Visual Studio любой помогает. пожалуйста
хочу сослаться на эти сборки: C:\Program Files\Paint.NET\PaintDotNet.*.dll. Затем поэкспериментируйте с классами в этих пространствах имен.
Коды:-
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
string filename = "";
if (ofd.ShowDialog() == DialogResult.OK)
{
filename = System.IO.Path.GetFullPath(ofd.FileName);
}
// MessageBox.Show(filename, "file");
pictureBox1.ImageLocation = filename;
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
DialogResult result = MessageBox.Show("Do you wish to continue?", "Save Changes", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
System.Diagnostics.Process.Start(@"C:\Program Files\Paint.NET\PaintDotNet.exe");
// here i need to perform the function like
//Open + O`
//ctrl + Shift + L)` then `
//(ctrl + Shift + G)`. then save
//`ctrl + Shift + S`
}
else
{
return;
}
}
2 ответа
Просто следуйте инструкции, чтобы отправить ярлык в другое приложение
Добавьте это пространство имен в класс
using System.Runtime.InteropServices;
Тогда объявите SetForegroundWindow
функция с DllImport
заявление. это создаст объект этого метода, который был создан в User32.dll
[DllImport ("User32.dll")]
static extern int SetForegroundWindow(IntPtr point);
И добавьте следующий код к нажатию кнопки или в любом месте вашего проекта. Этот код будет перемещаться OpenFileDialog
открыть существующий файл в Paint.NET
приложение.
private void button1_Click(object sender, EventArgs e)
{
Process p = Process.GetProcessesByName("PaintDotNet").FirstOrDefault();
if (p != null)
{
SetForegroundWindow(p.MainWindowHandle); //Set the Paint.NET application at front
SendKeys.SendWait("^(o)"); //^(o) will sends the Ctrl+O key to the application.
}
}
большинство программистов допустили ошибку между Ctrl+O
а также Ctrl+o
похоже, но значение ascii для обоих ключей разное. Итак, убедитесь, что ключевой символ не в верхнем регистре. Вы также можете прочитать полную информацию о SendKey
метод на мсдн. Вы можете сделать любую комбинацию клавиш и отправить через SendWait()
метод.
Просто добавьте одну или несколько или все библиотеки в ваш проект. в качестве измерений состояний затем используйте проводник объекта.
ПРИМЕЧАНИЕ: не берите в голову материал.xaml или реальные проекты, которые я пытаюсь визуализировать SharpDX D3D11 в приложении wpf для создания редактора карт (и без инструментария (не спрашивайте меня, почему. Я сумасшедший)).
Клянусь, у меня есть код прошлой ночью, ты пытаешься автоматизировать paint.net? вам нужно будет создать плагин, который сделает процесс более упорядоченным, чем запуск второго приложения.