J'essaie de détecter un événement d'arrivée USB. J'ai essayé de remplacer wndproc()
pour obtenir mes messages. Mais je suis confronté à une erreur par les messages Windows.Le nom 'WM_DEVICECHANGE' n'existe pas dans le contexte actuel
L'erreur est:
The name 'WM_DEVICECHANGE' does not exist in the current context
The name 'DBT_DEVICEARRIVAL' does not exist in the current context
Aussi c'est le code que je suis essayé.
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Microsoft.Win32.SafeHandles;
namespace USBCheckerApp
{
public partial class Form1 : Form
{
bool bDeviceFound = false;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
if (!bDeviceFound)
{
button1.Enabled = false;
}
}
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")]
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_DEVICECHANGE:
if (m.WParam == DBT_DEVICEARRIVAL)
{
MessageBox.Show("MEDIA FOUND");
}
}
}
}
}
Ajouté afin que vous puissiez suggérer des mises à jour dans le même. Merci
Montrez votre code ici. Les gens ne peuvent pas lire dans ton esprit. –
@ SonerGönül Je viens de lire le vôtre .. Je éditais – Zigma
copie possible de [Comment détecter une clé USB a été branché?] (Http://stackoverflow.com/questions/6003822/how-to-detect-a- usb-drive-has-been-plug-in) - vous avez oublié de copier dans les constantes qui sont mentionnées dans la réponse de Onsightfree – Petesh