2011-08-15 5 views
2

Windows 단축키 매개 변수를 감지하여 무시하는 방법이 있습니까? 바로 가기가 최소화 된 프로그램을 시작하고 싶다면 나중에 최소화/최대화/보통 크기 조정을 처리하고 싶습니다. 기본 폼은 내가 파괴 표시된 후응용 프로그램이 최소화 된 상태에서 시작 프로그램

는 나중에

Application.CreateForm(TForm_main, Form_main); 

를 사용하여 내가

Form_Splash := TForm_Splash.Create(Application); 

내가 기본 양식을 만들 사용하여 만든 초기 화면을 가지고있는 form_Splash 그 시간에 나는 최소화/최대화/일반 크기 form_main 원하는 Windows 바로 가기를 기반으로 싶어요.

도움 주셔서 감사합니다. 스티브 ...

답변

5

API 호출을 사용하여 STARTUPINFO을 생성 할 때 (TStartupInfo, 델파이에서는) STARTUPINFO을 사용할 수 있습니다. wShowWindow 구성원에 원하는 초기 표시 상태가 포함되어 있습니다. 항상 알고하는 것이 좋다 무엇

은 다음과 같습니다 GUI 프로세스에 대한

, 처음이 ShowWindow를 호출, 그 nCmdShow 매개 변수는 wShowWindow 기본 값을 지정 무시됩니다. 이후에 ShowWindow에 대한 호출에서 ShowWindow의 nCmdShow 매개 변수가 SW_SHOWDEFAULT로 설정된 경우 wShowWindow 멤버가 사용됩니다.

어떤 창에 대해서도 ShowWindow이 처음 호출되면 시작 정보 레코드에 지정된 값이 사용됩니다. 이로 인해 스플래시 화면이 영향을받을 수 있습니다.

그러나 어쨌든 STARTUPINFO의 값을 사용하면 기본 양식을 적절하게 사용할 수 있습니다.

개인적으로 나는 최소화 된 시작을 원할 때 시작 화면을 보여주는 응용 프로그램을 개인적으로 싫어할 것입니다. 보통 이러한 응용 프로그램은 나에게 화를 내게하는 필자의 입력 포커스를 훔칩니다.

+0

하인리히가 정말로 도움을 주셔서 감사합니다. 한 가지 더 묻습니다. 어떻게하면 StartInfo.wShowWindow = SW_SHOWMINNOACTIVE를 재정의하여 더 이상 최소화 될지 알 수 있습니다. – Steve

+0

@ 스티브 도움이되어 기쁩니다! 윈도우가 올라 오지 못하도록하려면 WM_SHOWWINDOW 메시지를 받았는지 확인하고 메시지가 가로 채기를 시도하면됩니다. 이것이 작동하지 않으면 새로운 첫 번째 창이 될 세 번째 (더미) 창을 만들 수 있습니다. Windows에서이 문제를 최소화 한 경우 다음을 유의하십시오. –

+0

시작시 프로그램이 최소화되지 않도록하기 위해 CmdShow : = 1; Application.Initialize 줄 앞에; 내 프로젝트 파일에서. ws_ShowNormal 대신 1을 사용하여 다른 '용도'를 추가 할 필요가 없었습니다. 스티브 ... – Steve

관련 문제