使用c#.net从剪贴板显示图像到窗口的defalut imageviewer

Dr.*_*len 2 vb.net clipboard image

我正在使用下面的函数来制作当前表单的图像并将其设置在剪贴板中

Image bit = new Bitmap(this.Width, this.Height);
Graphics gs = Graphics.FromImage(bit);
gs.CopyFromScreen(this.Location, new Point(0, 0), bit.Size);
Guid guid = System.Guid.NewGuid();
string FileName = guid.ToString();
//Copy that image in the clipbaord.
Image imgToCopy = Image.FromFile(Path.Combine(Environment.CurrentDirectory, 
    FileName + ".jpg"));
Clipboard.SetImage(imgToCopy);
Run Code Online (Sandbox Code Playgroud)

现在我的图像在剪贴板中,我可以使用下面的代码在其他表单上的图片框中显示它:

mypicturebox.Image = Clipboard.GetImage();
Run Code Online (Sandbox Code Playgroud)

现在的问题是我想在该系统的默认imageviewer中显示它.所以我认为使用"System.Diagnostics.Process.Start"我们可以做到这一点..但我不知道,如何找到默认的imageviewer以及如何设置剪贴板的图像 ...请帮助我...如果我发现解决方案比那更好,否则我想将该文件从剪贴板保存到硬盘然后在窗口的默认imageviewer中查看...请帮我解决我的问题..我正在使用c#.net

Mus*_*sis 5

您最好的方法是将映像保存到某个位置的磁盘,然后运行该文件Process.Start.这将导致默认查看器应用程序打开文件,如您所愿.

可以找出是哪个程序设置为默认浏览器,然后直接启动该程序(而不是开始的文件),但你必须与运行的应用程序通信,并通过你的形象它以某种方式的问题.对于许多查看器应用程序来说这可能是不可能的(并且记住有数千个可能的查看器应用程序可以设置为默认值),因为通常您只能通过其命令行参数与查看器应用程序通信.

唯一可靠,可靠的方法是将映像保存到磁盘,然后使用Process.Start进行shell启动.