1

オーケー。これが私がやりたいことです:

ユーザーが指定したフォルダーを並べ替えるWindowsアプリケーションがあります。並べ替える前にこのフォルダーのスクリーンショットを撮り、プログラムがフォルダーの並べ替えを終了したときにもう一度スクリーンショットを撮りたいと思います。

次のリンクを使用して、アクティブなウィンドウのスクリーンショットを撮る方法を知っています。

アクティブなウィンドウのスクリーンショットをキャプチャしますか?

ただし、未開封の場所のスクリーンショットを撮りたい場合はどうなりますか?

まったく開いていないフォルダのスクリーンショットを撮りたいということです。それも可能ですか?

はいの場合、これを達成するにはどうすればよいですか?

プログラムにフォルダを開く->スクリーンショットを撮る->閉じる->フォルダを並べ替える->フォルダを開く->新しいスクリーンショットを撮る->画面に表示する方法の1つだと思います

ただし、これはあまり洗練されたソリューションではありません。

誰かがこの問題に光を当てることができますか?お時間をいただきありがとうございます!

4

4 に答える 4

2

実際に何をしたいかにもよりますが、ソート操作の前後に「フォルダ」と「サブフォルダ」の内容を確認する場合は、コマンドプロンプトを使用して目次をテキストで生成することをお勧めします。ファイル。このためにdirコマンドを次のように使用できます。

DIR /S /B "Path\To\Folder" > "Path\to\text\File.txt"
于 2012-05-03T12:50:55.000 に答える
1

画面に表示されていないもののスナップショットを撮ることはできません。フォルダを開き、スナップショットを取り、フォルダを閉じる必要があります。

于 2012-05-03T12:36:56.960 に答える
1

まず、スクリーンショットの目的を考えてください。並べ替えの前後に、フォルダ内のオブジェクトの順序をログに記録できる場合があります。次に、ログデータを使用して、コンテンツが事前に並べ替えられた画像のようなフォルダを示すテキストまたはグラフィック出力を生成できます。

スクリーンショットを撮る場合、フォルダ内に収まらないオブジェクトをどのように処理しますか?上記のソリューションを使用すると、開いているフォルダに表示されていないファイルの情報も取得できます。

そうしないと、画面に表示されていないものの実際のスクリーンショットを取得する方法がありません。その場合、フォルダを開くのが最も簡単で唯一の方法です。

于 2012-05-03T12:48:22.860 に答える
1

あなたは彼/彼女のスクリーンの境界の外にフォルダウィンドウを置くことができました。次に、そのウィンドウ領域のスクリーンショットを撮ります。

次のコードを使用して、画面の幅、高さ、および位置を決定できます(2番目の画面をプライマリ画面の左側に配置すると、画面の開始位置が負になります)。

System.Windows.SystemParameters.VirtualScreenWidth;  //Total width of screen
System.Windows.SystemParameters.VirtualScreenHeight; //Total height of screen
System.Windows.SystemParameters.VirtualScreenLeft;   //Start x location of screen
System.Windows.SystemParameters.VirtualScreenTop;    //Start y location of screen

そして、この領域の外にフォルダウィンドウを配置し、そのフォルダのスクリーンショットを撮ることでうまくいくはずです。(テストされていないかどうかはわかりません)

System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(folderWidth, folderHeight);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
g.CopyFromScreen(folderX, folderY, 0, 0, folderSize);
bitmap.Save(aRandomFileStream, System.Drawing.Imaging.ImageFormat.Jpeg);

コードはそのまま提供されます...それが機能する場合、保証はありません。

于 2012-05-03T13:22:13.117 に答える