문제

Windows 사용자 로그인 후 Windows 데스크탑이 나타나기 전에 C# 응용 프로그램을로드하고 싶습니다. 현재 레지스트리 실행 키에 응용 프로그램 시작 경로를 추가했습니다. 응용 프로그램이 올바르게로드되지만 Windows Windows 데스크톱이 나타납니다 [2 초] 내 응용 프로그램이 실행됩니다.

메모:

내 응용 프로그램은 Winapi를 사용하여 별도의 데스크톱을 생성하는 반면 응용 프로그램은 데스크탑을 일시적으로 숨 깁니다.

올바른 솔루션이 없습니다

다른 팁

이것은 실제로 할 수 없습니다. Windows는 사용자가 로그인 한 직후 데스크탑 및 Explorer Responsive를 확보하기 위해 매우 열심히 작동합니다. 이는 사용자에게 가장 중요한 것입니다.

당신의 목표는 고귀 할 수 있지만 사용자가 원하는 것과 상충됩니다. 따라서 일반적으로 그들은 Windows의 작동 방식과 상충됩니다 (특히 Win-7).

사용자와 상호 작용할 필요가없는 일찍 실행 해야하는 소프트웨어가있는 경우 서비스가 진행됩니다. Vista 및 이후 Windows 시스템에서는 서비스가 사용자와 상호 작용할 수있는 방법이 없다는 점에 유의해야합니다. 예를 들어 자체 그래픽 사용자 인터페이스를 가질 수 없습니다. UI가있는 서비스는 본질적으로 안전하지 않습니다.

소프트웨어를 분할하는 한 가지 방법은 서비스에 몇 가지 물건을 넣고 생각 UI 계층을 생각하는 것입니다. COM과 로컬 RPC는 서비스와 UI 계층 간의 커뮤니케이션을위한 좋은 선택입니다.

구성 요소가 부팅 속도를 늦추지 않도록 여기에서 작업해야합니다. 작동하지 않는 응용 프로그램은 부팅 경로에서 가장 큰 문제 중 하나입니다. 당신은 이것을 사용하여 이것을 연구 할 수 있습니다 Windows 성능 툴킷

그것은이다 내가 생각할 가능성이 있지만, 당신은 정말 많은 추가 작업을 위해 있습니다. 당신이 할 수있는 일은 Windows 쉘을 자신의 코드로 바꾸는 것입니다. 그러나 그 시점에서 당신은 사용자가 상호 작용하는 UI에 대해서만 책임을집니다.

코드가 '올바른'것이 아니라면 사용할 수없는 Windows 설치로 끝날 수 있으며 사용자가 그렇게 많이 감사 할 것이라고 확신 할 수 없습니다.

또한 더 이상 액세스 할 수없는 쉘의 일부인 Windows 시스템에서 직관적으로 직관적으로 사용할 수있는 기능이있을 수 있습니다. 자세한 내용은 시도하십시오 http://en.wikipedia.org/wiki/windows_shell_replacement 출발점으로.

부록:
나는 실제로 기술적으로 관련된 것에 대해 가장 모호한 지식 만 가지고 있지만 http://dustyant.com/articles/deeshell/ 기본에 대한 괜찮은 설명 인 것 같습니다. 다시 ... 여기 드래곤입니다 메인 윈도우 설치를 채우지 않도록 VM 또는 무언가 로이 작업을 수행해야합니다.

'쉘 교체'가 의미하는 바를 간단히 말해 : 로그인 한 후 Windows는 'Explorer'라는 응용 프로그램을 시작합니다 (Vista / Win 7에 여전히 보유하고 있는지 확실하지 않습니다 ... 모호한 기억이있어 최근에 조금 더 관여했습니다). 기본적으로 데스크탑, 작업 표시 줄 등을 그립니다. 기본 그래픽 쉘 대신 다른 애플리케이션을 시작하도록 Windows에 알려줄 수 있습니다. 그 시점에서 당신은 창의 주요 UI를 제어하고 있습니다. Windows가 일반적으로 쉘에서하는 모든 일에 책임이 있습니다. ... 많은 통제력과 유연성과 아마도 많은 두통을 제공합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top