2012-04-15 11 views
0

Ich habe mein natives Programm für Windows gemacht.Windows-Registrierung, wie Sie Ihr Native-Programm für boot-executing hinzufügen?

(die ich mit #pragma comment(linker, "/SUBSYSTEM:NATIVE" kompiliert habe)).

Ich möchte mein Programm zur automatischen Ausführung Liste hinzufügen, wie kann ich es tun?

Meine genauen Fragen sind:

1). Wie kann ich es in der Windows-Registrierung (Ich habe über BootExecute/SetupExecute Tabelle gegooglet, aber Setup ist leer und BootExecute hat nur: autocheck autochk *). So war ich von leeren Tabellen verwirrt (Ursache, wenn es leer ist, wo sind andere Auto-Exec-Programme in Windows, die ntdll.dll lädt?)

2). Ist es wichtig, was ist die Version des ausführbaren Programms: für 32/64 Bit-System?

Ich habe es in % windir% \ system32 setzen, aber es gibt auch % windir% \ WOW64 Ordner.

Sollte ich dieses Detail in der Registrierung oder Windows hervorheben lädt jeden Treiber aus beiden Ordnern und einfach highliht sie als * 32 oder 64-Bit-Programm in Taskmgr?

3). Gibt es andere Möglichkeiten, das zu tun?

Danke,

Mit freundlichen Grüßen!

+0

Ich habe noch nie von jemandem gehört, der vorher ein Programm booten wollte. Was ist dein Zweck dafür? – Gabe

+1

@Gabe native-Windows-Entwicklung auf Ntdll.dll-Ebene, Win32 ist nur eines der Module, die Ntdll lädt, google es! http://technet.microsoft.com/en-us/sysinternals/bb897447 oder http://hex.pp.ua/nt-native-applications-shell-eng.php –

+1

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager –

Antwort

2

1) Sie müssen es auf BootExecute Registrierungswert legen. Es ist ein mehrstringiger Wert, und Sie müssen die bereits vorhandenen Zeichenfolgen beibehalten (normalerweise nur "autocheck autochk *") und einfach Ihren Programmnamen ohne Erweiterung anhängen.

2) Sie sollten 32-Bit-Binär für 32-Bit-Betriebssystem und 64-Bit-Binär für 64-Bit-Betriebssystem kompilieren. Binary sollte so weit

3) Das ist der einzige Weg in% windir% \ system32 platziert wird, wie ich

PS wissen - für ein Beispiel jeden Dateisystem oder Registry-Defragmentierer installieren, die Boot-Defrag-Funktion hat, ermöglicht es, und sehen, wie es BootExecute ändert.

+0

Ich habe versucht, hinzuzufügen, aber kein Erfolg :(Ich füge nur einen Namen des Programms in der zweiten Zeile von "autocheck autochk *" - nicht funktioniert, auch nur mit Platz - hat nicht funktioniert auch! Versuchen mit Vollständiger Pfad zum Programm oder nur der Name ohne Erweiterung.Alle Varianten funktionieren nicht :( –

+0

Es bedeutet, dass das Programm wahrscheinlich falsch kompiliert wird. Stellen Sie sicher, dass es zu keiner anderen Bibliothek als ntdll.dll (Verwendung Abhängiger Viewer zu überprüfen Sie es, auch, dass es die OS-Architektur (32/64 Bit) entspricht. – Isso

+0

Sie müssen auch sicherstellen, dass #pragma Kommentar (Linker, "/ BASE: 0x00010000"), #pragma Kommentar (Linker, "/ ENTRY : your_entry_function_name "), deaktivieren Sie die Buffer Security Check (/ GS-) – Isso