J'ai créé une application qui copie les fichiers du disque dur vers le lecteur de disquette à l'aide de l'API CopyFile(). Au milieu du processus de copie pour un fichier volumineux, si la disquette est retirée du lecteur, le message d'erreur apparaît.Comment supprimer le message système Windows
Je souhaite supprimer ce message d'erreur apparaissant sur le système. J'ai googlé et lu à propos de SetErrorMode() API utilisé par de nombreuses applications pour résoudre des problèmes similaires et essayé de l'utiliser avec toutes les options possibles de l'indicateur, mais il échoue. Exemple de code -
UINT uOldErrorMode = SetErrorMode (SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX); :: CopyFile ("C: \ text.dat", "A: \ text.dat", FALSE); SetErrorMode (uOldErrorMode);
L'erreur de SetErrorMode() API ne parvient pas à supprimer le message d'erreur. Quelqu'un peut-il m'aider à comprendre pourquoi cela ne fonctionne pas avec pour mon application?
alors je suis tombé sur le lien ci-dessous: http://support.microsoft.com/kb/128642 qui parle de la clé
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Windows \ ErrorMode
dont la valeur peut être réglée à 0,1 ou 2 pour supprimer ou affichez les messages d'erreur. Cette solution fonctionne pour mon application mais je pense que
a. Ce n'est pas une bonne pratique de programmation pour accéder directement à la clé du système? il devrait y avoir une API qui devrait le faire. b. Un tel code doit échouer l'UAC lorsqu'il est exécuté sur Windows Vista ou Windows 7.
Quelqu'un peut-il s'il vous plaît fournir de l'aide avec le problème ci-dessus.
Cordialement, Felix