Windows에서 스크린샷을 파일에 직접 저장하려면 어떻게 해야 합니까?
Windows에서 스크린샷을 파일에 직접 저장할 수 있는 버튼 하나가 있습니까?
TheSoftwareJedi accurately answered above question for Windows 8 and 10. Below original extra material remains for posterity.
이는 2021년 현재 316K 뷰에서 알 수 있듯이 매우 중요한 질문입니다.2008년에 질문을 받은 SO는 이 질문을 2015년 경에 주제에서 벗어난 것으로 종결했습니다. 아마도 아래 마지막 질문 때문일 것입니다.
Windows XP에서는 Alt-PrintScreen을 눌러 활성 창의 이미지를 복사하거나 Ctrl+PrintScreen을 눌러 전체 데스크톱 이미지를 복사할 수 있습니다.
그런 다음 이미지를 받아들이는 응용 프로그램에 붙여넣을 수 있습니다.포토샵, Microsoft Word 등
궁금해요.스크린샷을 파일에 직접 저장할 수 있는 방법이 있나요?Paint.net이나 Photoshop과 같은 이미지 프로그램을 열어 이미지를 붙여넣고 저장해야 합니까?
Windows 8 이전 버전에서는 서드파티 툴이 없는 파일에 직접 저장할 수 없습니다.다음은 제가 개인적으로 좋아하는 타사 툴 솔루션입니다.
Windows 8 이후의 경우
+ 스크린샷을 다음 폴더에 저장합니다.<user>/Pictures/Screenshots
Windows 7의 경우
Windows 7에서는 캡처 툴을 사용합니다.시작을 누른 다음 "sni"(입력)를 입력하면 가장 쉽게 액세스할 수 있습니다.또는 그 다음에
이전 버전의 Windows
다음 키보드 조합을 사용하여 캡처한 후 mspaint를 사용하여 저장합니다.몇 번 실행해도 2~3초밖에 걸리지 않습니다.
- Alt+PrintScreen
- Win+("R실행")
- "mspaint" 라고 입력합니다.
- Ctrl-V (표준)
- Ctrl-S (저장)
- 파일 대화 상자 사용
- Alt(F4밀착형 오염)
게다가 Cropper는 훌륭합니다(오픈 소스도 있습니다).파일 또는 클립보드에 직사각형 캡처를 수행하며 물론 무료입니다.
PrintScreen을 잠그고 캡처를 파일에 저장하는 매우 간단한 코드를 만들 수 있습니다.
여기에서는, 캡쳐를 개시해 파일에 보존합니다."Print screen" 키를 걸기만 하면 됩니다.
using System;
using System.Drawing;
using System.IO;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
public class CaptureScreen
{
static public void Main(string[] args)
{
try
{
Bitmap capture = CaptureScreen.GetDesktopImage();
string file = Path.Combine(Environment.CurrentDirectory, "screen.gif");
ImageFormat format = ImageFormat.Gif;
capture.Save(file, format);
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
public static Bitmap GetDesktopImage()
{
WIN32_API.SIZE size;
IntPtr hDC = WIN32_API.GetDC(WIN32_API.GetDesktopWindow());
IntPtr hMemDC = WIN32_API.CreateCompatibleDC(hDC);
size.cx = WIN32_API.GetSystemMetrics(WIN32_API.SM_CXSCREEN);
size.cy = WIN32_API.GetSystemMetrics(WIN32_API.SM_CYSCREEN);
m_HBitmap = WIN32_API.CreateCompatibleBitmap(hDC, size.cx, size.cy);
if (m_HBitmap!=IntPtr.Zero)
{
IntPtr hOld = (IntPtr) WIN32_API.SelectObject(hMemDC, m_HBitmap);
WIN32_API.BitBlt(hMemDC, 0, 0,size.cx,size.cy, hDC, 0, 0, WIN32_API.SRCCOPY);
WIN32_API.SelectObject(hMemDC, hOld);
WIN32_API.DeleteDC(hMemDC);
WIN32_API.ReleaseDC(WIN32_API.GetDesktopWindow(), hDC);
return System.Drawing.Image.FromHbitmap(m_HBitmap);
}
return null;
}
protected static IntPtr m_HBitmap;
}
public class WIN32_API
{
public struct SIZE
{
public int cx;
public int cy;
}
public const int SRCCOPY = 13369376;
public const int SM_CXSCREEN=0;
public const int SM_CYSCREEN=1;
[DllImport("gdi32.dll",EntryPoint="DeleteDC")]
public static extern IntPtr DeleteDC(IntPtr hDc);
[DllImport("gdi32.dll",EntryPoint="DeleteObject")]
public static extern IntPtr DeleteObject(IntPtr hDc);
[DllImport("gdi32.dll",EntryPoint="BitBlt")]
public static extern bool BitBlt(IntPtr hdcDest,int xDest,int yDest,int wDest,int hDest,IntPtr hdcSource,int xSrc,int ySrc,int RasterOp);
[DllImport ("gdi32.dll",EntryPoint="CreateCompatibleBitmap")]
public static extern IntPtr CreateCompatibleBitmap(IntPtr hdc, int nWidth, int nHeight);
[DllImport ("gdi32.dll",EntryPoint="CreateCompatibleDC")]
public static extern IntPtr CreateCompatibleDC(IntPtr hdc);
[DllImport ("gdi32.dll",EntryPoint="SelectObject")]
public static extern IntPtr SelectObject(IntPtr hdc,IntPtr bmp);
[DllImport("user32.dll", EntryPoint="GetDesktopWindow")]
public static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll",EntryPoint="GetDC")]
public static extern IntPtr GetDC(IntPtr ptr);
[DllImport("user32.dll",EntryPoint="GetSystemMetrics")]
public static extern int GetSystemMetrics(int abc);
[DllImport("user32.dll",EntryPoint="GetWindowDC")]
public static extern IntPtr GetWindowDC(Int32 ptr);
[DllImport("user32.dll",EntryPoint="ReleaseDC")]
public static extern IntPtr ReleaseDC(IntPtr hWnd,IntPtr hDc);
}
업데이트 C#에서 PrintScreen(및 기타 키)을 후크하는 코드는 다음과 같습니다.
거의 알려지지 않은 사실: 대부분의 표준 Windows(XP) 대화 상자에서 Ctrl+C 키를 눌러 대화 상자의 내용을 텍스트로 복사할 수 있습니다.
예: 메모장에서 파일을 열고 공간을 누른 다음 창을 닫은 다음 종료 확인 대화상자에서 Ctrl+C를 누르고 취소한 후 메모장에 대화상자의 텍스트를 붙여넣습니다.
당신의 직접적인 질문과는 무관하지만, 이 스레드에서 언급하는 것이 좋을 것 같습니다.
게다가 실제로 스크린샷을 하기 위해서는 서드파티 소프트웨어가 필요하지만, 이를 위해 큰 포토샵을 실행할 필요는 없습니다.IrfanWiew나 XnView와 같은 자유롭고 가벼운 것으로 작업을 수행할 수 있습니다.MWSnap을 사용하여 화면의 임의의 부분을 복사합니다.스크린샷을 하기 위해 GDI+ 함수를 호출하는 AutoHotkey 스크립트를 작성했습니다.기타.
소스코드와 코멘트를 주셔서 감사합니다.그 덕분에 드디어 제가 원하는 앱이 생겼습니다.
몇 가지 예를 정리했습니다.소스와 실행 파일은 모두 다음 URL에서 찾을 수 있습니다.
http://sdaaubckp.svn.sourceforge.net/viewvc/sdaaubckp/xp-take-screenshot/
Intercept Capture Screen.exe를 사용합니다.단순히 명령 프롬프트 단말기에서 실행하고 스크린샷(실행 파일이 있는 디렉토리와 같은 디렉토리 내에 타임 스탬프가 있는 파일명, png)을 캡처할 때 [Insert]를 누릅니다.단말기의 포커스가 맞지 않아도 키가 캡처됩니다.
(예를 들어 Print Screen보다 VNC를 통해 전파하는 데 시간이 더 걸리기 때문에 삽입 키를 사용합니다.노트북에서는 Fn 키를 눌러야 하며 VNC를 통해 전파되지 않습니다.물론, 소스코드에서 실제로 사용되는 키를 변경하는 것은 간단합니다).
이게 도움이 되길 바래, 건배!
아주 오래된 게시물인 건 알지만, 윈도우는 그 과정이 얼마나 무의미했는지 깨달았어요.
Windows 8.1에서는 (검증 완료, Windows 7에서는 동작하지 않음(tnx @bobobobo))
windows key
+prnt screen
에 저장합니다.<user>/Pictures/Screenshots
출처 - http://windows.microsoft.com/en-in/windows/take-screen-capture-print-screen#take-screen-capture-print-screen=windows-8
WinSnap http://www.ntwind.com/software/winsnap/download-free-version.html을 추천합니다.자동 저장 옵션을 제공하고 Alt+인쇄 화면 및 기타 키 조합을 캡처하여 화면, 창, 대화 상자 등을 캡처합니다.
이제 Dropbox는 이를 자동으로 수행할 수 있는 후크를 제공합니다.무료 드롭박스 계정을 가지고 노트북 앱을 설치하는 경우 PrtScr Dropbox를 누르면 모든 스크린샷을 자동으로 드롭박스 폴더에 저장할 수 있는 옵션이 나타납니다.
XP에서 이 기능을 사용하려면 서드파티제의 화면 캡처 유틸리티가 필요합니다.Scott Hanselman의 멋진 도구에 대한 광범위한 블로그가 마음에 들고, 보통 거기서 그런 유용성을 찾습니다. 아니나 다를까, 그는 여기서 커플에 대해 블로그를 하고 있습니다.
이걸로 델파이에 갈 수 있을 거야BitBlt 함수의 사용에 주의해 주세요.이것은 Windows API 호출이며, 델파이 고유의 것이 아닙니다.
편집: 사용 예제가 추가되었습니다.
function TForm1.GetScreenShot(OnlyActiveWindow: boolean) : TBitmap;
var
w,h : integer;
DC : HDC;
hWin : Cardinal;
r : TRect;
begin
//take a screenshot and return it as a TBitmap.
//if they specify "OnlyActiveWindow", then restrict the screenshot to the
//currently focused window (same as alt-prtscrn)
//Otherwise, get a normal screenshot (same as prtscrn)
Result := TBitmap.Create;
if OnlyActiveWindow then begin
hWin := GetForegroundWindow;
dc := GetWindowDC(hWin);
GetWindowRect(hWin,r);
w := r.Right - r.Left;
h := r.Bottom - r.Top;
end //if active window only
else begin
hWin := GetDesktopWindow;
dc := GetDC(hWin);
w := GetDeviceCaps(DC,HORZRES);
h := GetDeviceCaps(DC,VERTRES);
end; //else entire desktop
try
Result.Width := w;
Result.Height := h;
BitBlt(Result.Canvas.Handle,0,0,Result.Width,Result.Height,DC,0,0,SRCCOPY);
finally
ReleaseDC(hWin, DC) ;
end; //try-finally
end;
procedure TForm1.btnSaveScreenshotClick(Sender: TObject);
var
bmp : TBitmap;
savdlg : TSaveDialog;
begin
//take a screenshot, prompt for where to save it
savdlg := TSaveDialog.Create(Self);
bmp := GetScreenshot(False);
try
if savdlg.Execute then begin
bmp.SaveToFile(savdlg.FileName);
end;
finally
FreeAndNil(bmp);
FreeAndNil(savdlg);
end; //try-finally
end;
http://www.screenshot-utility.com/ 를 사용해 보세요.
홈페이지:
단축키를 누르면 화면의 스냅샷이 캡처되어 JPG, GIF 또는 BMP 파일에 저장됩니다.
스크린샷 자동 저장 유틸리티를 설치하지 않고 설치할 수 있습니다.이렇게 하면 몇 가지 유틸리티를 찾을 수 있습니다.
예: http://www.screenshot-utility.com/
물론 클립보드를 감시하고 클립보드의 모든 이미지에 대해 성가신 SaveAs-dialog를 표시하는 프로그램을 작성할 수도 있습니다.잘못된 긍정의 수를 제한하기 위해 마지막으로 누른 키가 PrintScreen이었는지도 알 수 있습니다.
내가 그것에 대해 생각하는 동안..이미 그렇게 한 사람을 구글로 검색할 수도 있습니다.
편집: ..혹은 방금 전에 일어난 일처럼 누군가가 소스를 여기에 게시할 때까지 기다립니다:-)
스내깃...많은 기술자들이 그것을 사용합니다.
화면 캡처 프로그램을 설치하는 것 외에 권장되는 가장 좋은 방법은 표준 인쇄 화면 방법을 사용하여 Microsoft Office Picture Manager를 열고 원하는 디렉토리의 흰색 영역에 스크린샷을 붙여넣는 것입니다.편집하거나 다른 형식으로 저장할 수 있는 비트맵이 생성됩니다.
The Software Jedi가 Windows 7의 스냅 도구에 대한 유용한 정보를 제공해 주셔서 감사합니다.바로가기 [Snipping Tool]를 엽니다.시작으로 이동하고 sni를 입력합니다.이름은 [Snipping Tool]목록에 있습니다.
Picasa를 백그라운드에서 계속 실행하고 "Print Screen" 키를 클릭하기만 하면 됩니다.
XP에서는 다른 앱을 사용하여 저장해야 하는 것으로 알고 있습니다.
Vista에는 스니핑 툴이 부속되어 있어 처리가 다소 심플합니다.
Google Picasa(무료)에서 이 작업을 수행할 수 있습니다.열려 있는 경우 누르면 스크린샷이 파일에 저장되고 Picasa에 로드됩니다.내 경험상, 그것은 잘 작동한다!
다음과 같은 것이 필요할 수 있습니다.http://addons.mozilla.org/en-US/firefox/addon/5648
IE 버전도 있고 Explorer Integration 버전도 있는 것 같아요.꽤 좋은 소프트웨어네요.
이것이 가능합니까?
- Alt Print Screen을 누릅니다.
- 폴더 열기
- 오른쪽 클릭 -> 스크린샷 붙여넣기
예:
벤치마크 결과 창이 열리면 스크린샷을 찍습니다.C 열기:\Benchmarks 오른쪽 클릭 -> 스크린샷 붙여넣기 Screensshot00x.jpg라는 이름의 파일이 텍스트 스크린샷00x 를 선택한 상태로 표시됩니다.타입 오버클럭5
바로 그거야.아무것도 열 필요가 없습니다.아무것도 쓰지 않으면 기본 이름은 그대로 유지됩니다.
언급URL : https://stackoverflow.com/questions/158151/how-can-i-save-a-screenshot-directly-to-a-file-in-windows
'programing' 카테고리의 다른 글
Windows 명령어프롬프트에서 환경변수를 갱신하는 명령어가 있습니까? (0) | 2023.04.10 |
---|---|
Windows 및 Linux에서의 C++ 컴파일: ifdef 스위치 (0) | 2023.04.10 |
Echo newline in Bash prints 리터럴 \n (0) | 2023.04.10 |
C#에서 현재 사용자의 데스크톱 경로를 얻는 방법 (0) | 2023.04.10 |
Python: ImportError를 제공하는 Panda pd.read_excel:Excel 지원을 받으려면 xlrd > = 0.9.0 설치 (0) | 2023.04.10 |