Windows 응용 프로그램의 일반적인 대화 상자를 프로그래밍 방식으로 조작하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/125710

  •  02-07-2019
  •  | 
  •  

문제

여기서 나의 궁극적 인 목표는 폴더를 신속하게 설정할 수있는 유틸리티를 작성하는 것입니다. 어느 '즐겨 찾기'의 사전 설정 목록에서 선택하는 대화 상자. 나는 프로가 아닌 애호가 일 뿐이므로 .net을 내가 가장 잘 아는 것입니다. 나는이 물건 중 일부가 C#에서 할 수있는 것보다 더 많은 것을 요구할 수 있다는 것을 알고 있습니다.

툴바에 버튼을 추가하여 공통 대화 상자 (특히 저장 AS .. 및 파일 열기)를 확장 할 수있는 일부 응용 프로그램을 보았습니다 (예 : 대화 상자 어시스턴트) 또는 최소화, 최대화 및/또는 닫기 버튼 옆에 제목 표시 줄에 추가 버튼을 넣어. 어디서부터 시작 해야하는지 가장 안개가있는 아이디어는 없지만 좋은 옵션이 될 것입니다.

내가 시도한 한 가지 방법 중 하나는 대화 상자의 파일 이름 텍스트 상자에 쓴 앱에서 폴더 이름을 '드래그'하는 것입니다. Hawkeye 런타임 객체 편집기, WM_SETTEXT를 사용하여 sendMessage를 PINVOKING으로 경로 이름을 선물하십시오. 그것은 (일종의) 작동하지만 약간 klunky를 느낍니다.

이에 대한 기술 또는 구현에 대한 조언은 대단히 감사 할 것입니다. 또는 이미이 작업을 수행하는 기존 유틸리티가 있다면 알려주십시오!

업데이트: 모든 것이 말하고 끝났을 때, 나는 아마도 기존 유틸리티를 가지고있을 것이라고 생각합니다. 그러나 나는 거기에 있는지 알고 싶습니다 ~이다 이 작업을 프로그래밍 방식으로 수행하는 방법.

도움이 되었습니까?

해결책

이와 같은 것을 위해 아마도 당신은 아마도 Win32 API 호출에 무겁게 될 것입니다. .NET에서 작업한다는 것은 많은 Pinvokes를 만드는 것을 의미합니다. 많이 도울 수 없어야하지만 책이 있다는 것을 기억합니다. "비주얼 기본과의 서브 클래싱 및 훅" 도움이 될 수 있습니다. 그것은 주로 VB 6을 위해 작성되었지만 VB.NET 물건이 몇 개 있다고 생각합니다.

또한, pinvoke.net 도움이 될 수있는 많은 핀뷰 서명이있는 위키입니다.

그것에 관한 경우, 목표를 달성하기 위해 Windows가 내부적으로 작동하는 방식 (메시지 전달 등)에 대해 더 많이 배워야 할 것입니다.

스파이 ++는 아마도 당신의 친구 일 것입니다.

다른 팁

직업처럼 들립니다 Autohotkey 나에게.

나는 "Pro"(적어도 프로그램에 대한 지불을받습니다)이지만, 먼저 AutoHotkeys의 많은 잘 테스트 된 기능을 사용하여 Windows에 액세스하는 것을보고 C#/. Net을 파고 핀발을 통해 Winapi를 가장 좋아합니다.

AutoHotkey는 심지어 몇 가지 기본 사용자 인터페이스 컨트롤을 제공하며 무료입니다.

여기에 있습니다 Autohotkey 스크립트 그것은 당신이 요구하는 것과 매우 유사합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top