2009-11-06 5 views
0

vb.net을 사용하여 때때로 화면에 팝업되고 메시지를 표시하는 프로그램이 있습니다. 컴퓨터가 잠겨 있거나 아무도 로그온하지 않은 경우에도 실행 및 표시 할 수있는 방법이 있습니까? 감사.컴퓨터가 잠긴 상태에서도 프로그램 디스플레이가 가능합니까?

+0

기본적으로 다음 프로그램이 정말 어떤 형태의 디스플레이에 액세스 할 수 없습니다. –

+1

... 프로그램이 서비스로 실행될 수 있다고 가정하면 화면에 경고를 표시해야 할 경우 자체 시스템에 로그인 할 수 있습니다. –

+0

배경 화면을 변경하는 것은 어떻습니까? – recursive

답변

3

이 문제를 부분적으로 해결하는 한 가지 방법은 메시지 서비스를 폴링 할 수있는 화면 보호기를 작성하는 것입니다. 이 서비스는 부팅 할 때 실행해야합니다 (아직 로그인 한 사람이 없습니다. 아직 로그인하지 않은 사용자가있을 수 있습니다!).

화면 보호기는 사용자의 화면 보호기뿐만 아니라 로그인 화면 보호기로 설정되어야하며 로그인 화면에서 짧은 화면 보호기 시간 초과를 설정해야합니다.)입니다.

이렇게하면 로그인 화면에서 메시지가 표시되지 않지만 로그인 화면이 충분히 길지 않으면 화면 보호기가되어 화면 보호기에서 메시지를 표시 할 수 있습니다.

화면 보호기가 실행되는 환경에 익숙하지 않아 얼마나 많은 액세스 권한이 있는지 알 수 없습니다. 로컬 컴퓨터에서 파이프 또는 공유 메모리 세그먼트를 열 수 있다고 가정하고 작업을 완료하는 데 충분합니다.

1

간단히 말해서, 없습니다.

+1

그러면 로그인하기 전에 Cisco VPN Client와 CRYPTOCard Authenticator가 부팅 한 후 전체 응용 프로그램을 어떻게 실행합니까? 아니면 VB.NET에서는 불가능한가요? – HardCode

1

로그인하지 않았거나 기기가 화면 보호기 모드에 있지만 화면과 상호 작용할 수없는 경우 프로그램 (예 : 서비스)을 실행할 수 있습니다. 예를 들어 누군가에게 경고를 보내려는 경우 다른 장치에 전자 메일/SMS/HTTP POST를 보낼 수 있습니다.

3

응용 프로그램이 MB_SERVICENOTIFICATION 플래그로 MessageBox API를 호출하는 경우 UI가 로그온 화면에 팝업 될 수 있다는 것을 알 수있는 유일한 방법이 있습니다. 이 플래그는 시스템 크리티컬 메시지에서 콘솔에있는 사용자에게 경고 신호를 보내 무언가 잘못되어 콘솔이 잠겨 있어도 표시된다는 것을 나타냅니다.

이것은 대화 상자가 아니며 단지 메시지 상자이므로 메시지 상자와 관련된 실제 보안 위험은 없습니다.

Windows 95와 Windows NT가 두 플래그 (MB_TOPMOST와 MB_SERVICENOTIFICATION)에 동일한 값을 사용했기 때문에 복잡한 점이 있습니다. 따라서 Windows 95 용으로 설계된 프로그램을 실행하는 경우 Windows XP에서 실행될 때 MB_TOPMOST 플래그를 설정하고 예기치 않게 MB_SERVICENOTIFICATION 동작을 가져올 수 있습니다. 당신은 winuser.h에 MB_SERVICENOTIFICATION 플래그에 대한 정의에서 볼 수 있습니다 : 아무도 로그인하지 않은 경우

#define MB_TOPMOST      0x00040000L 
#ifdef _WIN32_WINNT 
#if (_WIN32_WINNT >= 0x0400) 
#define MB_SERVICE_NOTIFICATION   0x00200000L 
#else 
#define MB_SERVICE_NOTIFICATION   0x00040000L 
#endif 
#define MB_SERVICE_NOTIFICATION_NT3X  0x00040000L 
#endif 
+0

이 창에서 사용할 수있는 사용자 정의 크기는 어느 정도입니까? – Shawn

+0

MessageBox입니다.아이콘, 캡션 텍스트, 창 텍스트를 설정하고 표시되는 단추를 제어 할 수 있습니다. 해당 창을 보안 된 바탕 화면에 두는 것이 안전 한 이유는 해당 창에서 수행 할 수있는 제한된 사용자 지정 집합이 있기 때문입니다. –

관련 문제