我想直接引用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;
}
}
答案 0 :(得分:1)
只需将一个或部分或全部库添加到项目中即可。作为测量状态然后使用对象资源管理器。
注意:不要介意.xaml的东西或我试图在wpf应用程序中渲染SharpDX D3D11的实际项目来制作地图编辑器(并且没有工具包(不要问我为什么。我很疯狂) )。
我发誓我昨晚有代码你试图自动化paint.net吗? 你必须制作一个插件,这样可以使流程更加简化,而不必启动第二个应用程序。
答案 1 :(得分:1)
只需按照说明将快捷键发送到另一个应用程序
将此命名空间添加到类
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值都不同。因此,请确保关键字符不是大写字母。您还可以在msdn上阅读有关SendKey
方法的完整信息。您可以进行任何组合键并通过SendWait()
方法发送。