Questione : Annullare AutoPlay in Windows (XP e dopo) con C++

O.S. : Windows Xp e up
Language: Tipi di C++

Hey, sto facendo una domanda che sarà spedetta su un insieme multiplo di DVD. Tutto il DVDs avrà loro propria lima di autorun.inf (non può cambiare questo) ed una volta che il programma è iniziato, richiede DVDs differente di essere inserito. Ciò propone il disturbo inaccettabile di avere il funzionamento autoplay per ogni DVD. So che Windows fornisce un senso annullare questo (target= " _blank " " di http://msdn.microsoft.com/en-us/library/cc144204%28VS.85%29.aspx " del href= di /en-us/library/cc144204%28VS.85%29.aspx di http://msdn.microsoft.com) ma sono incerto come usare questo (non ho una conoscenza di troppo con C++).

Just che copia la prima parte circa il registro il uMessage del messages
delle finestre = del RegisterWindowMessage (TEXT (“QueryCancelAutoPlay„));
provides un errore della compilazione di mancanza del tipo. Sono incerto che cosa il tipo sarebbe, o se stia mancando un certo #include o biblioteca collegata. Inoltre, la parte seguente del codice fornito:

UINT = 0 g_uQueryCancelAutoPlay;
del

BOOL DialogProc (hwnd di HWND, uMsg di UINT, wParam di WPARAM, lParam di LPARAM) {
{difetto dell'interruttore del
(uMsg) del
del
…:
se (! )
{
g_uQueryCancelAutoPlay = RegisterWindowMessage (TEXT (“QueryCancelAutoPlay„));
del
} se (== del uMsg g_uQueryCancelAutoPlay)
{
SetWindowLong (hDlg, DWL_MSGRESULT, ALLINEA);          ritorno 1 del
;               lavoro del

does del
del
del
}}} non con„… “ed i suggerimenti undefined del

Any “del hDlg " su come realizzare questo in un progetto (o in altre idee, cambiare la registrazione non è esattamente la mia migliore opzione, con la probabilità sempre presente di non potere assicurare ha cambiato la chiave indietro)? Le mie scuse per il mio ineptitude.

Thanks in anticipo!
class= del

Risposta : Annullare AutoPlay in Windows (XP e dopo) con C++

Ciao j_willy,

in quale genere di applicazione avete bisogno di questo? Con il MFC o senza? Se MFC, un dialogo, SDI o MDI?

I.e. se è per un'applicazione di dialogo di MFC è abbastanza facile. Aggiungere appena una linea come questo vicino la parte superiore (ma almeno sotto “il #include “stdafx.h„ ") della lima di esecuzione del dialogo:

    UINT g_uQueryCancelAutoPlay = RegisterWindowMessage (TESTO (“QueryCancelAutoPlay„));

Allora aggiungere un alimentatore di messaggio per questo messaggio aggiungendo un'entrata al programma del messaggio di dialoghi, cioè aggiungono questo in qualche luogo fra “BEGIN_MESSAGE_MAP„ e “END_MESSAGE_MAP„:

    ON_REGISTERED_MESSAGE (g_uQueryCancelAutoPlay, OnQueryCancelAutoPlay)

Aggiungere un declararation di funzione per questo alimentatore di messaggio nella dichiarazione del codice categoria di dialogo come questo:

    afx_msg OnQueryCancelAutoPlay LUNGO (wParam di WPARAM, lParam di LPARAM);

e realizzarlo in qualche modo come questo nel vostro dialogo (qui presuppongo che il nome del codice categoria di dialoghi è CTestDlg, lo sostituisce con il vostro nome di codici categoria di dialogo):

    CTestDlg LUNGO:: OnQueryCancelAutoPlay (wParam di WPARAM, lParam di LPARAM)
    {
     ritorno 1;
    }


Sperare che aiuti,

ZOPPO
    }




Altre soluzioni  
 
programming4us programming4us