2011-02-23 175 views
3

某些安裝應用程序停止(或似乎停止)正常的Windows引導。計算機啓動後,用戶登錄,然後在其他人(如Windows資源管理器)之前啓動安裝程序。在Windows資源管理器之前啓動應用程序

如何在我自己的程序中複製此行爲?

例如

  • OS引導
  • 登錄
  • 程序運行時,更新等
  • 運行的程序的其餘部分(如Windows資源管理器,並不斷在啓動時運行的)
+1

你想讓這個應用程序在瀏覽器啓動之前做些什麼? – 2011-02-23 13:36:13

+0

該應用程序將檢查更新,安裝一些文件,提示用戶輸入信息,然後繼續操作系統啓動。 – jSherz 2011-02-23 14:22:34

+2

這是**而不是**這些安裝程序的功能。如果你告訴我們你想要完成的任務,肯定有人會告訴你一個更好的方法,而不是試圖搶佔Windows資源管理器。 – 2011-02-23 14:23:34

回答

0

你可能會包裝windows批處理文件.batexplorer.exe

@echo off 
something.exe 
explorer.exe 

但不會真正確保它總是explorer.exe的

開始之前你可能改變一些註冊表值來選擇另一個「殼」,而不是探險家爲。 。

如果這是你真正想要的。

8

如果要在shell啓動之前啓動應用程序,可以將值添加到註冊表中的Userinit值。在這個關鍵:

HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的Windows NT \ CURRENTVERSION \ Winlogon中

有一個名爲Userinit值。更改它,以便您的程序在userinit.exe之前運行。例如,外殼/一切初始化之前啓動記事本:

C:\ WINDOWS \ SYSTEM32 \ NOTEPAD.EXE,C:\ WINDOWS \ SYSTEM32 \的userinit.exe

使用逗號分開應該開始的程序。

這適用於Windows XP,Vista和7

+0

您通常會得到「拒絕訪問」,所有的防病毒軟件將禁止該應用程序。 – noober 2015-04-02 11:51:47

+0

根據[tutorial](http://www.tenouk.com/ModuleP1.html),explorer run key在userinit之前設置。然而[這篇古文章](https://support.microsoft.com/en-us/kb/142905)陳述USERINIT負責啓動資源管理器shell。在較新的系統上,這仍然是[案例](https://technet.microsoft.com/en-us/library/cc939862.aspx)。 – 2015-10-20 08:51:38

+0

實際上嘗試過這種方法,但它[在W7上無法工作](https://social.msdn.microsoft.com/Forums/vstudio/en-US/c810e785-894e-4b4f-be72-a12e35397126/running-a-程序在起動時?論壇= windowsgeneraldevelopmentissues&教授爲必填)。但是,這裏有人知道它是否適用於Vista之前? – 2015-12-07 10:04:11

0

你應該看一看的Windows Task Scheduler。任務可以計劃在用戶(特定或任何)登錄時執行。 Windows開箱即用的UI說明了使用此標準Windows功能可以實現的功能。

另一種解決方案是編寫一個Windows service(.msi Windows Installer實際上是一項服務)。

我不確定你將能夠儘管Windows資源管理器...

3

我還沒有嘗試過,但我認爲這是由註冊表項進行

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup 

還有更多的註冊表項 - 看到完整的清單記錄在這裏: Definition of the RunOnce Keys in the Registry

要不是你使用案例我建議開始您的應用程序作爲桌面外殼類似於「vcsjones」提出的解決方案。當程序結束時,您可以撥打explorer.exe開始加載常規桌面。

相關問題