2010-06-11 6 views
0

Windows 클립 보드의 요구 사항 인 전체 클래스 맵을 직렬화 할 수 없기 때문에 사용자 지정 클립 보드를 만들었습니다.디자인 타임에 고유 한 세션 ID를 찾을 위치 .Net WinForms

그러나 고유 ID를 통해 내 클립 보드를 사용하는 사용자를 구별해야합니다. 기본적으로 한 대의 PC에 앉아서 한 명 이상의 Visual Studio (또는 비슷한) 사본을 열어 놓은 사람을 식별 할 수 있기를 원합니다.

어떻게하면됩니까?

ps : 이것은 디자인 타임에 있습니다.

pps : Visual Studio의 복사본간에 작동해야하는 것은 중요하지 않습니다. 하나의 사본이 좋을 수도 있고, 하나의 디자인 표면 일 수도 있습니다.

+2

범위를 더 잘 설명하십시오. 클립 보드는 복사 된 객체를 보관할 것이며 (한 대의 PC, 한 대의 PC에서 한 명의 사용자, 한 개의 응용 프로그램 인스턴스) 이들이 어디에 복사되고 무엇을 통해 전송됩니까? –

+0

데이터는 한 대의 PC에서 Visual Studio 인스턴스로 복사되고 동일한 PC에서 Visual Studio 인스턴스 (동일한 인스턴스 또는 다른 인스턴스)로 복사됩니다. PC에 여러 로그온이있는 경우 로그온 한 번에 고유해야합니다. – Jules

+0

VS의 여러 인스턴스에 대해 실제로이를 제거하십시오. 내 클립 보드에는 클래스 복사본에 대한 참조가 포함되어 있으므로 분명 VS의 동일한 인스턴스에 있어야합니다. – Jules

답변

0

USERNAMESESSIONNAME 환경 변수를 결합 할 수 있습니다. 이렇게하면 로그온 한 세션마다 고유 한 ID가 제공됩니다.

두 사람이 콘솔에 로그인되어있는 경우에 대비하여 이들을 결합해야합니다. 반면 SESSIONNAME은 두 사용자 모두 "콘솔"이됩니다.

Visual Studio를 구별하기 위해 VS의 프로세스 ID도 추가 할 수 있습니다.

VS 만 질문하는 경우 두 사용자가 프로세스를 공유 할 수 없기 때문에 프로세스 ID가 충분해야합니다.

관련 문제