2013-04-18 4 views
-2

여기에 문제가 있습니다. 우리 프로그램에는 고객이 직접 편집 할 수있는 애드온 (머신 비전)이 있습니다. 우리는 VB.NET 2010에서이 부가 기능을위한 템플릿을 제공합니다. 그런 다음이 템플릿을 복사하고 원하는 이름으로 변경하고 몇 가지 사항을 수정합니다. 문제는 고객을 한 번에이 템플리트의 복사본을 두 개 이상 엽니 다.한 번에 여러 프로그램 실행 중지 중

분명히 나는 ​​단일 인스턴스를 선택했으나 실제로는 서로 다른 프로그램이기 때문에 동일한 템플릿을 두 번 열지 못하게됩니다. 내 첫 번째 생각은 프로세스 이름을 변경하고 어셈블리 이름 앞에 일반 (myCompany -)을 배치 할 수 있다는 것이지만 가능하다고는 생각하지 않습니다. 누군가이 프로그램이 열려 있는지 확인하는 또 다른 방법을 알고 있는지 궁금 해서요. 분명히 우리는 템플리트를 편집하여 템플리트의 모든 사본에 (체크 할 수있는) 무언가를 배치 할 수 있지만 사용할 수있는 것을 생각할 수는 없습니다.

+0

왜 costumer가 템플릿 복사본을 두 개 이상 열지 못하게하려고합니까? – jsedano

+0

이 기능은 Microsoft Office 용 추가 기능입니까? 아니면 Visual Studio? 또는 다른 것? 나는 당신이 "템플렛"에 의하여 의미하는 무슨을 진짜로 모른다. 사용자는 어떻게 여는 중입니까? 실행시 실행되는 코드가 포함되어 있습니까? 세마포어 또는 다른 유형의 잠금 장치를 사용하는 것이 좋습니다. –

답변

1

템플릿을 두 번 이상 표시하지 않으려는 이유를 이해할 수 없습니다. 이런 식으로 시도한 적이 없지만 System.Diagnostics.Process.Kill을 사용하고 프로그램의 새 인스턴스를 제거하려고합니다. 따라서 프로세스 이름이 두 번 이상 실행되는지 여부를 모니터하고 모든 실행을 종료하지만 첫 번째로 종료해야하는 프로그램이 필요합니다.

0

모든 댓글 주셔서 감사합니다. 오늘 아침에 일하고있어. 그것은 혼란스러운 일입니다. 비전 프로그램 (템플릿)은 하드웨어 카메라에 연결됩니다. 해당 카메라는 한 번만 연결할 수 있으므로 두 번째 템플릿이 열리면 오류와 함께 열립니다.

필자가 생각해 낸 문제는 고객이 Vision 폴더 내에 이러한 모든 폴더를 넣고 폴더에 어셈블리 또는 프로세스 이름과 동일한 이름을 지정하도록 지시했기 때문에 폴더를 검색 한 후 이미 폴더 이름이 열려있는 프로그램이있는 경우 양식 시작을 중지하십시오. 어쩌면 좀 지저분 할 수도 있지만, 효과가 있습니다.

관련 문제