e-son Postad Februari 23, 2012 Dela Postad Februari 23, 2012 Jag försöker förbättra mina installers för de registerhack som kräver ett litet script, för att fungera (se "Starta om Utforskaren" som exempel). För att undvika elevation, vill jag nu placera filerna i användarprofilen, istället för nuvarande C:\root. Problemet är då att körkommandot i registret inte verkar fungera med systemvariabler... så länge jag använder absoluta sökvägar fungerar det, men det är ju oanvändbart i en allmän installer. INF-filen jag använder för att skapa installern ser ut som följer, och problemet är alltså kommandot under [Add.Context3]. Jag har provat systemvariablerna %AppData% och %UserProfile%... inget fungerar, utom absolut sökväg. Någon som kan hjälpa mig runt detta? [version] signature="$Windows NT$" [DefaultInstall] CopyFiles=Context.Files3 AddReg=Add.Context1,Add.Context2,Add.Context3 [DestinationDirs] Context.Files3=53,AppData/Roaming/Context/RestartExplorer [Context.Files3] restartexplorer.bat uninstall3.reg [Add.Context1] HKCU,Software\Classes\Directory\Background\shell\restartexplorer,HasLUAShield,0x00000000 [Add.Context2] HKCU,Software\Classes\Directory\Background\shell\restartexplorer,MUIVerb,0x00000000,Starta om Utforskaren [Add.Context3] HKCU,Software\Classes\Directory\Background\shell\restartexplorer\command,,0x00000000,%AppData%\Context\RestartExplorer\restartexplorer.bat Citera Länk till kommentar Dela på andra webbplatser Fler delningsalternativ...
jarru Postad Februari 23, 2012 Dela Postad Februari 23, 2012 %AppData% --- %SystemDrive%\Users\%UserName% - %UserProfile%\AppData\Roaming\Context\RestartExplorer Moment 22 ? Citera Länk till kommentar Dela på andra webbplatser Fler delningsalternativ...
e-son Postad Februari 23, 2012 Författare Dela Postad Februari 23, 2012 Nu fattar jag inte riktigt vad du menar, men både %AppData% (som leder direkt till Roaming) och %UserProfile% är testat utan framgång. Faktum är att jag inte lyckas med några systemvariabler överhuvudtaget... endast absolut sökväg fungerar. Jag behöver alltså ett annat sätt att anropa "restartexplorer.bat". Citera Länk till kommentar Dela på andra webbplatser Fler delningsalternativ...
Gäst opensource Postad Februari 24, 2012 Dela Postad Februari 24, 2012 Windows register är bara en databas. Det är upp till programmen som läser datan hur den ska tolkas och eventuellt utvärderas. Om programmet i fråga inte utvärderar systemvariabler utan direkt använder strängen är det inte något att göra åt saken. Du kan göra ett script som skapar en registerfil med redan utvärderade systemvariabler: echo %AppData% >> filnamn Ovanstående utvärderar systemvariabeln och skriver ut resultatet i slutet av filen. Citera Länk till kommentar Dela på andra webbplatser Fler delningsalternativ...
gsb Postad Februari 24, 2012 Dela Postad Februari 24, 2012 Använd dos-kommandot "reg query" för att läsa ut reg.värden. Citera Länk till kommentar Dela på andra webbplatser Fler delningsalternativ...
e-son Postad Februari 24, 2012 Författare Dela Postad Februari 24, 2012 Tack, men nu blev det för avancerat för mig, jag är inte programmerare. Det hela var bara ett försök att undvika förhöjda rättigheter vid installationen av ett simpelt högerklickskommando, i utforskaren. Jag får väl bara acceptera att jag går bet på det. Citera Länk till kommentar Dela på andra webbplatser Fler delningsalternativ...
Opptokoppter Postad Februari 24, 2012 Dela Postad Februari 24, 2012 Registret må vara bara en databas, men än löjligare om det inte skulle kunna gå att lösa problemet. Utgår från "elevation" - popup rutan från UAC. Skulle gissa på delar av detta har skärpts upp i hur enkelt det kan administreras ur säkerhetsynpunkt. Bl.a har man ju försvårat möjligheterna för användare i att starta program & körningar via genvägar som laddas via schemaläggaren i windows, så då har säkert fler närliggande områden till UAC och behörighet också gjorts om. Skulle inte va otänkbart. Vad händer om allt istället körs via VB skript när värdena skrivs till registret? Man skulle iof få fråga om köra skriptet men försvinner inte UAC prompten? Beror kanske på fall till fall http://www.activexperts.com/activmonitor/windowsmanagement/adminscripts/registry/ Citera Länk till kommentar Dela på andra webbplatser Fler delningsalternativ...
e-son Postad Februari 24, 2012 Författare Dela Postad Februari 24, 2012 (redigerade) Alltså... det ursprungliga "hacket" består av 5 filer... 1 reg-fil som skapar högerklicksmenyn + 1 som tar bort den, 1 ikon för menyn, 1 scriptfil (vbs) som verkställer själva kommandot och en kommandoradsfil (cmd) som installerar allt och placerar filerna i en mapp på C:/root. Ganska krångligt att hantera för normalanvändaren alltså. Nu råkade jag hitta ett gamalt Windows-verktyg (iexpress.exe) varmed jag lyckades skapa en enda installationsfil (exe) av dom 5 filerna. Allt fungerar utmärkt, med det undantaget att exe-filen måste köras som administratör för att fungera, eftersom den dels skriver till HKEY_CLASSES_ROOT i registret, dels kopierar filer till %systemroot%. Jag fick då idéen att man kanske kunde undvika elevationen genom att dels skriva registernycklarna till HKEY_CURRENT_USER, dels kopiera nödvändiga filer till %UserProfile% istället... och ta mig tusan, det fungerade också utmärkt. Problemet är bara att explorer.exe inte läser sökvägen i registret, när jag skriver den med systemvariabler... skriver jag den däremot som absolut sökväg, fungerar det fortfarande lika bra. Absolut sökväg är dock oanvändbart för alla utom för mig själv... och det var ju inte riktigt det som var meningen. En normalbegåvad programmerare löser naturligtvis detta genom att skapa en ny installerare, förmodligen på något helt annat sätt än den jag skapat. Programmerare är jag INTE, om än normalbegåvad, så jag nöjer mig alltså med den installerare jag redan har... Redigerad Februari 24, 2012 av e-son Citera Länk till kommentar Dela på andra webbplatser Fler delningsalternativ...
jarru Postad Februari 25, 2012 Dela Postad Februari 25, 2012 Jo, läste någonstans och som "opensource" påpekar att Windows ibland helt enkelt struntar i att läsa in variabler. Du har förmodligen testat med Miljövariabler/Användare ? http://support.microsoft.com/kb/104011 Citera Länk till kommentar Dela på andra webbplatser Fler delningsalternativ...
e-son Postad Februari 25, 2012 Författare Dela Postad Februari 25, 2012 (redigerade) Tack jarru! Din länk talade om för mig vad problemet var. Jag hade helt enkelt satt fel flagga på det 3:e registervärdet, det skapades som vanligt strängvärde när det i själva verket måste vara expanderbart. Nu återstår ett kosmetiskt fel. Installationen, och funktionen, fungerar perfekt, men installationsförloppet säger att den misslyckades... vilket alltså inte stämmer. Har just nu inte den blekaste om vad jag nu gjort för fel. Installationsdialogen ser ut som följer... Det skall förresten stå "i Utforskarens högerklickmeny"... inte "skrivbordets". Redigerad Februari 25, 2012 av e-son Citera Länk till kommentar Dela på andra webbplatser Fler delningsalternativ...
Recommended Posts
Delta i dialogen
Du kan skriva svaret nu och registrera dig senare, Om du har ett konto, logga in nu för att svara på inlägget.