2016-04-13 28 views
5

Per il mio programma di disinstallazione NSIS, voglio verificare se un processo è in esecuzione. FindProcDLL non funziona con Windows 7 x64, quindi ho provato nsProcess.NSIS - verificare se il processo esiste (nsProcess non funziona)

ho scaricato la versione 1.6 dal sito web: http://nsis.sourceforge.net/NsProcess_plugin

Se inizio la nsProcessTest.nsi nella cartella Esempio, ottengo i seguenti errori:

Section: "Find process" ->(FindProcess) 
!insertmacro: nsProcess::FindProcess 
Invalid command: nsProcess::_FindProcess 
Error in macro nsProcess::FindProcess on macroline 1 
Error in script "C:\Users\Sebastian\Desktop\nsProcess_1_6\Example\nsProcessTest.nsi" on line 14 -- aborting creation process 

Questa è la riga 14 del lo script di esempio:

${nsProcess::FindProcess} "Calc.exe" $R0 

Qualcuno sa cosa c'è che non va? Come posso verificare se un processo è in esecuzione con NSIS?

+0

Per l'errore di compilazione hai inserito nsProcess.nsh nella directory include della cartella NSIS installata? Lo stesso per il file nsProcess.dll? Sto usando nsProcess FindProcess e KIllProcess sotto Win7 x64 senza problemi. – hypheni

risposta

6

NSIS non trova il plug-in, quindi assicurati di aver copiato i suoi file nella cartella corretta.

NSIS 2.x:

NSIS/ 
├── Include/ 
│ └── nsProcess.nsh 
└── Plugins/ 
    └── nsProcess.dll 

NSIS 3.x:

NSIS/ 
├── Include/ 
│ └── nsProcess.nsh 
└── Plugins/ 
    ├── x86-ansi/ 
    │ └── nsProcess.dll 
    └── x86-unicode/ 
     └── nsProcess.dll 

Il file all'interno Plugins\x86-unicode è nsProcessW.dll rinominato nsProcess.dll (colpa l'autore per aver reso troppo complicato !)

Più in generale, fare riferimento a o How can I install a plugin? sul Wiki NSIS.

+0

Non dovrebbe essere 'Include', non' Include'? – ivokosir

+1

@ivokosir Grazie, risolto la mia risposta – idleberg