7
今天我可以得到應用程序最小化窗口的截圖。 例如,如果我打開Paint,即使Paint最小化,我也會看到Paint主窗口的屏幕截圖。當進程最小化時,是否有任何方法可以從進程獲取屏幕截圖?
這是獲得WindowsSnap這是一個有點長代碼的類,所以我加入它pastebin.com WindowSnap.cs
和類WindowSnapCollection還增加了它pastebin.com WindowSnapCollection.cs
而且在Form1頂部和構造我做: 變量:
private Graphics g;
private Image img;
private Image imgClone;
然後在構造函數中:
img = new Bitmap(pictureBoxSnap.Width, pictureBoxSnap.Height);
imgClone = new Bitmap(pictureBoxSnap.Width, pictureBoxSnap.Height);
Graphics g;
using (g = Graphics.FromImage(img))
{
g.Clear(Color.White);
}
pictureBoxSnap.Image = img;
this.listBoxSnap.Items.AddRange(WindowSnap.GetAllWindows(true, true).ToArray());
for (int i = listBoxSnap.Items.Count - 1; i >= 0; i--)
{
string tt = listBoxSnap.Items[i].ToString();
if (tt.Contains(" ,"))
{
listBoxSnap.Items.RemoveAt(i);
}
}
buttonSnap.Enabled = true;
string[] myList = new string[listBoxSnap.Items.Count];
for (int i = 0; i < listBoxSnap.Items.Count; i++)
{
string tt = listBoxSnap.Items[i].ToString();
int index = tt.LastIndexOf(",");
myList[i] = tt.Substring(0, index);
}
最終,我得到最小化應用
而且我現在已經運行65個進程打開的應用程序窗口的截圖名單我不知道我的問題是,如果我能得到某種方式也最小化過程的截圖?而不是所有的應用程序。
這是一個截圖,顯示我的程序運行時的狀態。現在我可以得到所有最小化的應用程序的Windows截圖。但我想知道是否以及如何獲得所有進程,例如我現在有65個正在運行的進程,以便獲得這65個進程的屏幕截圖或至少那些帶有圖形界面的屏幕截圖。 http://postimg.org/image/r1hz40v8d/ –
你可以枚舉使用Process.GetProcesses();的進程,並且只列出那些主窗口句柄爲非零的進程,例如'p.MainWindowHandle!= IntPtr.Zero'? – Loathing
厭惡是的,我做到了我得到24個intptrs –