[delphi] USB problem

0

witajcie,
mam problem z portem USB, zamierzam napisac prostą aplikacje ktora zresetuje port USB np.
mam myszke na usb i zacieła sie i chce zresetowac port - po czym myszka zadziała (recznie to dziala) -kto mzoe pomóc ?
jakies propozycje co do portu USB , mzoe komponent (d7personal)

0

kurcze , nikt nie wie szkoda ;/

0

cóż.. też mam podobny problem tyle że z myszą na port PS/2 .. nie wiele znalazłem o tym.. jedyne co znalazłem to:
http://www.delphifr.com/infomsg_RESET-USB-DEVICE_662108.aspx

i taki kod:

program DevRes;

uses
  Windows;

{******************************************************************************
        ScanForHardwareChanges
        by Brian Layman at TheCodeCave.com
      ******************************************************************************}
  function ScanForHardwareChanges: Boolean;
      const
        CFGMGR32_DLL                 = 'cfgmgr32.dll';
        CM_LOCATE_DEVNODE_NAME       = 'CM_Locate_DevNodeA';
        CM_REENUMERATE_DEVNODE_NAME  = 'CM_Reenumerate_DevNode';
        CM_LOCATE_DEVNODE_NORMAL     = $00000000;
        CR_SUCCESS                   = $00000000;
      var
         DeviceNode: DWord;
         HCfgMgr: THandle;
         CM_Locate_DevNode: function(var dnDevInst: DWord; pDeviceID: PAnsiChar;
                                     ulFlags: ULONG): DWord; stdcall;
         CM_Reenumerate_DevNode: function(dnDevInst: DWord; ulFlags: ULong): DWord; stdcall;
      begin // ScanForHardwareChanges
        Result := FALSE;
        HCfgMgr := LoadLibrary(CFGMGR32_DLL);
        if (HCfgMgr <32)
        then MessageBox(0,'Error: could not find Configuration Manager DLL','',MB_OK+MB_ICONERROR)
        else begin
          try
            CM_Locate_DevNode := GetProcAddress(HCfgMgr, CM_LOCATE_DEVNODE_NAME);
            CM_Reenumerate_DevNode := GetProcAddress(HCfgMgr, CM_REENUMERATE_DEVNODE_NAME);
            if (CM_Locate_DevNode(DeviceNode, NIL, CM_LOCATE_DEVNODE_NORMAL) = CR_SUCCESS)
            then Result := (CM_Reenumerate_DevNode(DeviceNode, 0) = CR_SUCCESS);
          finally // wrap up
            FreeLibrary(HCfgMgr);
          end;    // try/finally
        end;
 end;  // ScanForHardwareChanges

begin
  ScanForHardwareChanges;
end.

ale nie mogę znaleźć bezpośredniego linku do niego. U mnie ten kod niestety nie działa jak należy :P może Ci się poszczęści ;)

0

dobre checi ziom, ale niestety nie działa;/
ktos ma jeszcze jakispomysl jak zresetowac USB lub wylaczyc i wlaczyc ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1