내 프로그램에서 다른 응용 프로그램을 실행하고 양식을 숨겨야합니다. Windows XP에서 그것은 쉬웠다 :Delphi : SW_HIDE가 더 이상 작동하지 않습니까?
ShellExecute(Handle, 'open', 'foo.exe', nil, nil,SW_HIDE);
그러나 Vista와 win7에서는 더 이상 작동하지 않는 것으로 보인다.
내 프로그램에서 다른 응용 프로그램을 실행하고 양식을 숨겨야합니다. Windows XP에서 그것은 쉬웠다 :Delphi : SW_HIDE가 더 이상 작동하지 않습니까?
ShellExecute(Handle, 'open', 'foo.exe', nil, nil,SW_HIDE);
그러나 Vista와 win7에서는 더 이상 작동하지 않는 것으로 보인다.
음,
ShellExecute(Handle, nil, 'C:\WINDOWS\notepad.exe', nil, nil, SW_SHOWMINIMIZED);
적어도
하나가 예상대로 작동 나타납니다. Windows XP 컴퓨터를 사용할 수 없지만 XP에서 정확히 무슨 일이 있었습니까? Windows 7에서ShellExecute(Handle, nil, 'C:\WINDOWS\notepad.exe', nil, nil, SW_HIDE);
을 실행하면 notepad.exe 프로세스가 생성되지만 창이 표시되지 않습니다. 나는 창문이 만들어졌지만 이제는 실제로 무엇을 기대할 수 있는지를 보여줍니다. 나중에 FindWindow 및 ShowWindow 함수를 사용하여 창을 표시 할 수 있습니다.
업데이트 : 난 그냥 내 가설을 확인
:
var
h: hWnd;
ShellExecute(Handle, nil, 'C:\WINDOWS\notepad.exe', nil, nil, SW_HIDE);
sleep(100);
h := FindWindow(nil, 'Namnlös - Anteckningar');
if IsWindow(h) then
ShowWindow(h, SW_SHOW)
표시 새로 만든 창 (제목 "Namnlös - Anteckningar", 즉 "새 파일 - 메모장"스웨덴어을).
업데이트 2 :
공지 사항 나는 동사 대신 전무로 '개방'사용할 수도
예 Windows 7에서 작동 중임 이 작업도 마찬가지입니다. ShellExecute (핸들, 'open', 'foo.exe', nil, nil, SW_HIDE); –
모든 응용 프로그램이 시작 정보에서 SW _... 플래그를 올바르게 준수하는 것은 아닙니다.
"작동하지 않음"이란 무엇을 의미합니까? 전혀 실행되지 않거나 실행되지만 숨겨지지는 않습니까? –