2013-07-08 2 views
0

큰 PDF를 페이지가 수직 또는 수평으로 정렬되는지 여부에 따라 더 작은 PDF로 분리하는 프로그램을 작성 중입니다. 때로는 프로그램이 페이지의 방향을 결정할 수없는 경우가 있는데, 사용자의 기본 사진 뷰어 (Windows 사진 뷰어)에서 이미지로 PDF를 열고 사용자에게 방향을 선택하도록 요청합니다. 그림을 불러오는 코드는 다음과 같습니다.자바에서 프로그래밍 방식으로 창 닫기 (스윙이 아님)

Desktop dt = Desktop.getDesktop(); 
File picture = new File(pic.getFileName()); 
Object[] options = { "Vertical", "Horizontal", "Cancel" }; 
dt.open(picture); 
int n = JOptionPane.showOptionDialog(null, 
     "This PDF orientation could not be determined.\n" + 
     "Select your desired orientation below.", 
     "PDF Orientation Error", JOptionPane.YES_NO_CANCEL_OPTION, 
     JOptionPane.QUESTION_MESSAGE, null, options, options[2]); 

if (n == JOptionPane.YES_OPTION) {orientation = 0;} 
if (n == JOptionPane.NO_OPTION) {orientation = 1;} 
if (n == JOptionPane.CANCEL_OPTION || n == JOptionPane.CLOSED_OPTION) {System.exit(0);} 

사용자가 방향을 선택하면 프로그램이 기본 뷰어에서 그림을 계속 열어 놓습니다. 때로 PDF에 20 ~ 30 개의 미확인 페이지가있을 수 있습니다. 이는 사용자가 처리하기에 실망 스러울 수 있습니다. 사용자가 방향을 선택하면 Windows 사진 뷰어 창을 닫거나 Windows 사진 뷰어 프로그램을 종료 할 수있는 방법이 있는지 궁금합니다. 어떤 도움이라도 대단히 감사합니다.

답변

1

가에서 taskkill 명령 예제를 사용해보십시오 :
taskkill /IM notepad.exe
이 사이트는 그 용도의 일부를 가지고, 어쩌면 도움이됩니다! :)
http://www.tech-recipes.com/rx/446/xp_kill_windows_process_command_line_taskkill/

try{ 
    Process process = runtime.exec("taskkill /IM notepad.exe"); 
} catch (IOException ioe){ 
    JFrame alertFrame = new JFrame(); 
    JOptionPane.showMessageDialog(alertFrame, "Error closing notepad."); 
} 

난에서 taskkill 명령을 시험하지 않았다 그러나 이것은이 동작하는 예제에서 내가 얼마나 catch 블록의 코드가 단지했다

+0

다시 작동 예에서입니다 내 오류 알림을 처리 ... 나는 이것이 도움이되기를 바랍니다! – booleanCube

+0

감사합니다. 정확히 내가 무엇을 찾고 있었는지. – user2484253

+0

향후 독자를 위해 런타임은 어딘가에 선언되어야합니다. 런타임 런타임 = Runtime.getRuntime(); – booleanCube

관련 문제