Ich habe einen Registrierungseintrag im Ausführungsschlüssel wie folgt:
Typ = REG_SZ, Wert = Test, Daten =% temp% \ test.exe
Wenn ich meinen Rechner neu starte, wird test.exe nicht ausgeführt, aber wenn ich den vollständigen Pfad des temporären Ordners (etwa "C: \ Dokumente und Einstellungen \ XPMUser \ Lokale Einstellungen \ Temp") befolge, wird er beim Neustart ausgeführt.
Was ist damit los?
Ich habe auch REG_EXPAND_SZ ausprobiert, aber es hat immer noch nicht funktioniert.
windows
windows-registry
Brian T. Hannan
quelle
quelle
REG_EXPAND_SZ
sollte für die Run-Taste funktionieren. Versuchen Sie, eine Eingabeaufforderung zu öffnen und den Befehl auszuführenset temp
. Zeigt es die Variable erweitert? Versuchen Sie, eine Eingabeaufforderung mit erhöhten Rechten zu öffnen, und wiederholen Sie den Vorgang. Erweitert es jetzt die Variable?Antworten:
Was ist mit den Daten in Anführungszeichen?
quelle
ShellExecute
startet die "Run
" Einträge, erlaubt Befehlsargumente usw .; es ist möglich, dass esC:\Documents
in diesem Fall versuchen würde zu starten .temp
Variable verwendet, die das temporäre Systemverzeichnis ist, in dem sich normalerweise befindetC:\Windows\Temp
(das weder Leerzeichen noch lange Namen hat). Das lokale temporäre Verzeichnis der Benutzer wird in dertmp
Variablen gespeichert . Daher sollten Leerzeichen kein Problem darstellen, es sei denn, er hat die Systemvariable temp-directory so geändert, dass sie auf ein Verzeichnis in seinem eigenen Ordner verweist.%TEMP%
und%TMP%
auf den Punkt des Benutzers temporäres Verzeichnis.TEMP
undTMP
definiert sind pro Benutzer (HKCU\Environment
zeigt auf Benutzerprofil - Unterverzeichnis) und systemweit (HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
zeigt auf%SystemRoot%\Temp
).Die Registrierung ist nur eine Datenbank mit Informationen - es ist keine Anwendung, die ihren eigenen Inhalt interpretieren kann.
Ich sehe keinen Grund, warum das nicht möglich sein sollte. Vielleicht könnten Sie eine kleine Batch-Datei erstellen, die% TEMP% beim Booten in eine Datei umwandelt, um zu sehen, was, wenn überhaupt, dort enthalten ist?
quelle
Schließen Sie Ihre Variable% temp% in Anführungszeichen ein. Der Platz auf dem Weg wirft möglicherweise etwas ab.
data = "% temp%" \ test.exe
quelle
%temp%
Stellen Sie sicher, dass auch auf den Ordner zeigt, von dem Sie glauben, dass er es tut.quelle