2014-07-16 2 views
2

나는 특정 응용 프로그램을 시작하기위한 메뉴를 사용자에게 제공하는 시작시 실행되는 Windows에 간단한 배치 파일을 가지고 있습니다. 그러나 기본적으로 이러한 응용 프로그램 중 하나를 열 때마다 초점은 해당 창으로 이동하고 배치 파일에서 벗어납니다. 배치 윈도우로 포커스를 유지하거나 다시 전환하는 방법이 있습니까?배치 파일에 초점 고정

감사합니다.

편집 : 원하는대로 할 수 있습니다. 사용 된 foxidrives 제안은 최소화하기 시작했지만 여전히 초점을 맞추고있었습니다. 그래서 짧은 VBScript를 만들어 각 호출 후에 cmd 창을 활성 창으로 만들고이 둘의 조합이 작동했습니다. 감사!

+0

[프로그램과 사용자 간의 군비 경쟁] (http://blogs.msdn.com/b/oldnewthing/archive/2004/02/16/73780.aspx) –

+0

그건 의미가 있습니다. 해결 방법이있을 수 있습니다. – user3768274

답변

2

포커스를 훔치는 명령이 없습니다. Bill_Stewart가 게시 했으므로 프로그램을 사용자에게 너무 많은 권한을 부여하는 위험한 기능입니다. 당신은 그러나 당신의 배치 윈도우 활성 창 만들기 위해 (그들은 여전히 ​​활성 창 예정)을 최소화 응용 프로그램을 시작하고 구축하고 VBScript를 호출 할 수 있습니다 :

start "" /MIN "application.exe" 
cscript /nologo myVBScript.vbs 

myVBScript.vbs을

Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.AppActivate "myBatchFile" 
WScript.Sleep 2000 
WshShell.AppActiavte "myBatchFile" 

필자는 Windows 7에서 AppActivate를 사용하는 데 어려움을 겪고있는 사람들이 여러 명 있다는 것을 읽었습니다. 실제로 작동하지 않고 대상 창을 전경으로 가져 오는 대신 작업 표시 줄에서 깜박입니다. 그러나 두 번째로 그것을 호출하면, 어떤 이유로, 그것을 전경으로 가져 와서 그것을 내가 원하는 것 인 활성 윈도우로 만들었습니다. 희망이 비슷한 문제로 다른 사람을 도울 수 있기를 바랍니다.

0

명령 프롬프트 창에 포커스를 잠글 수 없습니다. 하지만 명령 프롬프트 창에서 TopMost 플래그를 설정하면됩니다. SetWindowPos이라는 Win32 함수가 있습니다. 어쩌면 당신을 위해 이것을하고있는 커맨드 라인 툴을 사용할 준비가되어있을 수도 있습니다. 당신은 비주얼 스튜디오가 설치된 경우 또는, 여기를 컴파일하려고 : How to set a console application window to be the top most window (C#)?

+0

감사합니다. 기회가 생겼을 때 그 점을 확인해야합니다. – user3768274

0

당신은 계속 표시해야 다음 응용 프로그램이 최소화 될 것입니다/분 스위치와 배치 파일로 시작 명령을 사용하는 경우 :

@echo off 
pause 
echo launching notepad 
start "" /min notepad 
echo notepad is active 
pause 
+0

감사. 그러나 최소화 된 상태로 시작하면 여전히 활성 창이 만들어집니다. 내 일괄 처리를 활성 창으로 만들기위한 짧은 VBScript를 만들었지 만/MIN에서만 작동하므로 고맙습니다. – user3768274

+0

메모장을 사용하여 테스트 한 내용이 Windows 8.1에서 작동하므로 응용 프로그램에 따라 다릅니다. – foxidrive

관련 문제