2008-10-29 6 views
2

난 그냥 곧 출시 될 윈도우 7 (http://www.gizmodo.com.au/2008/10/windows_7_walkthrough_boot_video_and_impressions-2.html를 방문하여 새 창의 슈퍼 과학 비디오 크기 조정 기능이라는 제목의 비디오로 스크롤)후킹 윈도우 7의 새로운 기능

의 정말 유용한 UI 기능을 보았다 생산 간단히 말해 제목 표시 줄을 창 상단으로 드래그하여 최대화하고 다시 아래로 드래그하여 복원하거나 화면의 왼쪽 가장자리 또는 오른쪽 가장자리로 드래그하여 원하는 위치로 스냅 할 수 있습니다. 가장자리에 대해 드래그 한 다음 크기를 조정하여 화면 절반을 차지합니다.

"비슷한"일을하는 키보드 기반 응용 프로그램이 많이 있지만 단순하고 유용하며 더 이상 마우스 기반 프로그램을 보지 못했습니다.

경우 : 하나 알고 (또는 1을 기록 할 정도로 똑똑) 경우 내가 노력하고 내가 질문이이 작업을 수행하는 작은 응용 프로그램을 작성하고자한다면, 어쨌든 URL :

을 게시하시기 바랍니다 이 작업을 수행하기 위해 작은 응용 프로그램을 작성하고 싶었습니다. .NET 응용 프로그램으로 작성할 수 있습니까? Windows의 윈도우 드래그/드롭 처리에 연결하는 것이 꽤 저수준이고 C# .NET에서 수행 할 수있는 작업이 아닐 수도 있습니다.

점심 시간에 이런 작은 앱을 노크 할 수있는 스마트 타입 사용자는 누구입니까? ;) 필자는 Windows 7 기능을 모방하는 것이 Windows 7 이전 출시에서 매우 인기가있을 것이라고 확신합니다.

편집 : AeroSnap들 (http://www.aerosnap.de/index_eng.htm)이이 기능을 구현하고 다운로드의 숫자로 판단하는의 좋은 일을했다, 그것은 인기있는 기능이었다!

+0

아마도 Windows 7의 출시도 게시 할 수 있습니다. P – Luke

답변

-1

예, PInvoke를 통해 C#에서이 작업을 수행 할 수 있습니다. Tbh 같은 API를 배우는 가장 좋은 방법은 Bblean과 같은 소스를 살펴 보는 것입니다. 이것은 당신이 알아야 할 것을 보여주고 PInvoke에 노출시키는 것은 아주 사소한 일입니다.

+0

아니요, 관리 코드로 작성된 후크를 추가하지 마십시오. 런타임이 시스템의 모든 응용 프로그램에로드됩니다. 더 나쁜 것은, 다른 앱도 관리한다면, 당신은 당신의 훅이나 다른 앱을 위해 틀린 버전의 런타임으로 끝날 수 있습니다. – erikkallen

0

pinvoke.net

이 .NET 응용 프로그램 내에서 PInvoke를 통해 윈도우 API를 사용하기위한 좋은 참고 웹 사이트입니다.

+0

pinvoke.net에 대한 링크 주셔서 감사합니다. 많은 API 정보가 여기 저기에 파 묻히다! – Sprogz

0

시간을내어 답변 해 주셔서 감사합니다. 나는 PInvoke를 사용하여 체크 아웃 할 것이다. 나는 Windows API를 두 윈도우 모두에 맞춰야 할뿐만 아니라 드래그 된 윈도우의 이동/크기 조정을 실제로 수행해야한다고 가정합니다.

+0

예 -이 자료를 배우는 가장 좋은 방법은 내 경험에 따라 bblean을 살펴 보는 것입니다. 친구가 Beman의 항구에서 Nemerle (또 다른 .NET 언어)로 일하고 있었다. 만약 당신이 구글을 사용한다면 소스를 찾을 수있을 것이다. –

1

모든 응용 프로그램과 바탕 화면의 모든 창에서 작동하는 후크를 만드는 것이 목표 인 경우 관리 코드 어셈블리를 사용할 수 없습니다. C++와 같은 전통적인 DLL을 생성하는 언어로 작성해야합니다.

실행중인 모든 응용 프로그램에 연결되는 시스템 수준에서 연결하려면 실행중인 모든 AP의 주소 공간에 배치 할 수있는 dll을 제공해야합니다. 나는 대부분의 사람들의 일일 AP들 중 많은 부분이 .net 프레임 워크 응용 프로그램으로 관리되지 않는다고 말하려고 노력할 것입니다.

+0

이것은 [C# .NET의 Windows 후크에 관한 MSDN 문서]의 맨 아래에서 읽은 것을 두려워했습니다. "http://support.microsoft.com/kb/318804/)"Global 후크는 .NET Framework에서 지원되지 않습니다. " MSDN 기사에서 글로벌 후크와 후크 사이의 차이점은 무엇입니까? – Sprogz

+0

MSDN 기사에서 응용 프로그램 로컬 후크를 설정 중입니다. Whe 코드 샘플은 SetWindowsHookEx를 AppDomain.GetCurrentThreadId()로 호출하여 dwThreadId 매개 변수에 대해 로컬로 연결합니다. 이 매개 변수를 0으로 변경하면 전역 훅이 생기고 - net에서 실행하지 마십시오. – Bill

+0

또한 Nick이 지정한대로 http://www.codeproject.com/KB/system/WilsonSystemGlobalHooks.aspx 문서를 권장합니다. 우리는 VB 애플리케이션이 글로벌 입력 활동의 수신자가 될 수 있도록 비슷한 작업을 수행했습니다. 우리는 VB app의 윈도우에 custom win msgs를 반환하는 C++ DLL을 만들었습니다. – Bill

6

offical 한 방법이있다 : Windows API Code Pack

은 Windows® API 코드 .NET 프레임 워크가 새로운 윈도우 7 기능에 액세스하는 데 사용할 수있는 소스 코드 라이브러리를 제공 마이크로 소프트를위한 ​​팩 (일부 이전 버전의 Windows 운영 체제의 기존 기능)을 관리 코드에서 가져옵니다. 이러한 Windows 기능은 현재 .NET Framework의 개발자가 사용할 수 없습니다. 라이브러리의 버전 (1.0 버전)에서 지원

각각의 기능은 다음과 같습니다

윈도우 7 작업 표시 줄 점프 목록, 아이콘 오버레이, 진행률 표시 줄, 탭 썸네일 및 미리보기 도구 모음. Windows 7 라이브러리, 알려진 폴더, 비 파일 시스템 컨테이너. Windows 셸 검색 API 지원, 셸 네임 스페이스 엔터티의 계층 구조 및 셸 개체의 끌어서 놓기 기능 탐색기 브라우저 제어. 셸 속성 시스템입니다. Windows Vista 및 Windows 7 사용자 지정 컨트롤을 포함한 공용 파일 대화 상자. Windows Vista 및 Windows 7 작업 대화 상자.

+0

이것은 답변입니다. – Will