2013-02-18 1 views
0

gmsh이라는 명령 행 바이너리 용 간단한 GUI Cocoa-Applescript 응용 프로그램을 만들고 싶습니다. GUI를 통해 지정하고 싶은 여러 가지 인수로 시작할 수 있습니다. 실행이 시작되면 X11 창이 열립니다.Cocoa-Applescript 응용 프로그램에서 명령 행 바이너리를 시작하는 방법은 무엇입니까?

복잡한 GUI를 만들기 전에 하나의 텍스트 필드와 하나의 버튼으로 간단한 인터페이스를 만들었습니다. 텍스트 필드 정보가 바이너리로 전달 된 하나의 인자가되고, 인수로 시작하는 바이너리 버튼을 클릭하면됩니다.

표시 경고를 사용하여이 작업을 수행 할 수 있습니다. 버튼을 누를 때 경보가 텍스트 필드 입력을 표시합니다. 그러나 표시 경고를 do shell 스크립트로 대체하려고 할 때 응용 프로그램이 멈추고 아무 일도 일어나지 않습니다.

적절한 장소가 gmsh 바이너리를 추가하는 곳이 어디인지 알지 못하므로 보조 파일에 넣었습니다.

이 내가 X11 응용 프로그램이 시작되면 코코아 - AppleScript를 그냥 GUI를 실행 그대로 열려 앱이 필요하지 않습니다

script AppDelegate 
property parent : class "NSObject" 

property argOne : "" 

on buttonClicked_(sender) 
    -- display alert "Argument one is " & argOne 
    do shell script "gmsh " & argOne 
end buttonClicked_ 

on applicationWillFinishLaunching_(aNotification) 
    -- Insert code here to initialize your application before any files are opened 
end applicationWillFinishLaunching_ 

on applicationShouldTerminate_(sender) 
    -- Insert code here to do any housekeeping before your application quits 
    return current application's NSTerminateNow 
end applicationShouldTerminate_ 

end script 

내 비 작업 AppDelegate.applscript입니다.

답변

0

do 쉘 스크립트를 수행 할 때 쉘 스크립트가 실행중인 동안에는 GUI가 멈 춥니 다. 프로그램이 멈 추면 do shell script가 걸려 있음을 의미합니다. 내가 보는 첫번째 것은 쉘 스크립트를하기 위해 보내는 명령과 인수 사이의 공간을 놓친다는 것입니다.

  1. 는 배경
  2. 사용에 쉘 명령을 실행 즉, 세 가지 옵션이 AppleScriptObjC에 거기에 응답하는 GUI를 유지하려는 경우,이

    do shell script "gmsh " & argOne 
    

    과 같이해야한다 아마 당신의 첫 번째 문제입니다 performSelectorInBackground_withObject _ ("NameOfHandler :"인수)

  3. 내가 수정 NSTask
+0

만들기 내 오타 그러나 그것은 도움이되지 않습니다. X11 윈도우를 실행하는 바이너리의 GUI 실행기 일 뿐이므로 버튼을 클릭하면 앱을 열어 둘 필요가 없습니다. – joshu

+0

사용 : 'do shell script "gmsh"& argOne & "/>/dev/null &"'의 인용 형식으로 쉘 명령을 백그라운드에서 실행합니다. –

+0

콘솔 출력에서 ​​명령을 찾을 수 없습니다. 프로젝트 지원 파일 폴더에있는 바이너리를 어떻게 참조합니까? – joshu

관련 문제