Ottenere un ID di Windows da dentro / esterni uno script NSIS
Domanda
Come posso ottenere la finestra "ID" - Numero univoco associato a una finestra Win32?
Posso ottenere l'ID all'interno di uno script NSIS (file .nsi)?Se non quale programma esterno posso usare?Reshacker non mi mostra i dialoghi corretti quando eseguo il mio installatore per qualche motivo.Ho sentito parlare di Gdispy o qualcosa con un nome simile a quello.
Quello che sto cercando di fare è cambiare l'indice Z di alcune finestre all'interno di pagine MUI2 e per impostare gli sfondi di controllo caselle in modo trasparente all'interno di una pagina personalizzata.
Qual è il tuo metodo più semplice per scoprire un ID univoco di Windows?
Modifica Scusa, non ho familiarità con il termine corretto è per quello di cui sto parlando.Non sto parlando della variabile HWND / handle che sto parlando di quell'ID Window Windows ID Windows che è un numero intero.
# In NSIS
GetDlgItem $R0 ${parentHWND} 1012 # the 1012 is what I am referring to as the window ID
. Soluzione
Gli ID per una finestra di dialogo Controlli figlio possono essere trovati con uno strumento spia come winspy ++ (Questo strumento lo visualizza in esagono in modo che converti con calc.exe o prefisso il numero con 0x in the .nsi)
NSIS ha due finestre di dialogo nidificate, la finestra di dialogo esterna ospita i pulsanti successivi, retro e annulla.La finestra di dialogo interiore ospita i comandi per la pagina corrente.
Per ottenere la maniglia su un pulsante nella finestra di dialogo esterna:
GetDlgItem $1 $hwndparent 1
.
E per la finestra di dialogo interiore:
FindWindow $0 "#32770" "" $HWNDPARENT ;Find inner dialog first
GetDlgItem $1 $0 0x666
.
Per una pagina personalizzata, l'ID (e Z-Order) dipende dall'ordine in cui crei i controlli in ...