Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.19;
Скачать: CL | DM;

Вниз

выключить+включить устройство   Найти похожие ветки 

 
Ньюб2   (2005-12-27 13:48) [0]

не подскажет кто-нибудь как выключить+включить устройство, а именно USB модем из сотового телефона


 
WondeRu ©   (2005-12-27 14:21) [1]

перезапусти драйвер USB шнурка
net stop <drivername>
net start <drivername>


 
Ньюб2   (2005-12-27 14:27) [2]

а как узнать drivername ?


 
Rouse_ ©   (2005-12-27 14:39) [3]

Ну вот так примерно ищуться драйвера:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, WinSvc, ComCtrls, StdCtrls, ExtCtrls, Types, CommCtrl;

type
 TfrmMain = class(TForm)
   lvReport: TListView;
   rgServiceState: TRadioGroup;
   sbCount: TStatusBar;
   Button1: TButton;
   procedure FormCreate(Sender: TObject);
   procedure rgServiceStateClick(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   procedure EnumDrivers(const State: DWORD);
 end;

var
 frmMain: TfrmMain;

implementation

{$R *.dfm}

procedure TfrmMain.EnumDrivers(const State: DWORD);
var
 hSCObject, hService: SC_HANDLE;
 lpServices, TmpEnum: PEnumServiceStatus;
 lpServiceConfig: PQueryServiceConfig;
 I, cbBuffSize, pcbBytesNeeded,
 lpServicesReturned, lpResumeHandle: DWORD;
begin
 lvReport.Items.BeginUpdate;
 try
   lvReport.Items.Clear;
   hSCObject := OpenSCManager(nil, nil, SC_MANAGER_ENUMERATE_SERVICE);
   if hSCObject <> 0 then
   try
     lpResumeHandle := 0;
     lpServices := nil;
     EnumServicesStatus(hSCObject, SERVICE_DRIVER, State,
       lpServices^, 0, pcbBytesNeeded, lpServicesReturned, lpResumeHandle);
     if GetLastError = ERROR_MORE_DATA then
     begin
       GetMem(lpServices, pcbBytesNeeded);
       try
         cbBuffSize := pcbBytesNeeded;
         if EnumServicesStatus(hSCObject, SERVICE_DRIVER, State,
           lpServices^, cbBuffSize, pcbBytesNeeded, lpServicesReturned, lpResumeHandle) then
         begin
           TmpEnum := lpServices;
           for I := 0 to lpServicesReturned - 1 do
           begin
             with lvReport.Items.Add do
             begin
               Caption := TmpEnum^.lpServiceName;
               SubItems.Add(TmpEnum^.lpDisplayName);
               case TmpEnum^.ServiceStatus.dwCurrentState of
                 SERVICE_RUNNING: SubItems.Add("Работает");
                 SERVICE_STOPPED: SubItems.Add("Остановлен");
               else
                 SubItems.Add("Неизвестно");
               end;
               hService := OpenService(hSCObject, TmpEnum^.lpServiceName,
                 SERVICE_QUERY_CONFIG);
               if hService <> 0 then
               try
                 QueryServiceConfig(hService, nil, 0, pcbBytesNeeded);
                 if GetLastError = ERROR_INSUFFICIENT_BUFFER then
                 begin
                   cbBuffSize := pcbBytesNeeded;
                   GetMem(lpServiceConfig, pcbBytesNeeded);
                   try
                     if QueryServiceConfig(hService, lpServiceConfig,
                       cbBuffSize, pcbBytesNeeded) then
                     begin
                       SubItems.Add(lpServiceConfig^.lpBinaryPathName);
                       case lpServiceConfig^.dwServiceType of
                         SERVICE_FILE_SYSTEM_DRIVER:
                           SubItems.Add("Драйвер файловой системы");
                         SERVICE_KERNEL_DRIVER:
                           SubItems.Add("Драйвер режима ядра");
                       else
                         SubItems.Add("Неизвестный тип драйвера");
                       end;
                       SubItems.Add(lpServiceConfig^.lpLoadOrderGroup);
                     end;
                   finally
                     FreeMem(lpServiceConfig);
                   end;
                 end;
               finally
                 CloseServiceHandle(hService);
               end;
             end;
             Inc(TmpEnum);
           end;
         end;
       finally
         FreeMem(lpServices);
       end;
     end;
   finally
     CloseServiceHandle(hSCObject);
   end;
 finally
   lvReport.Items.EndUpdate;
   sbCount.Panels.Items[0].Text := " Общее количество: " +
     IntToStr(lvReport.Items.Count);
 end;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
 rgServiceState.OnClick(nil);
end;

procedure TfrmMain.rgServiceStateClick(Sender: TObject);
begin
 if rgServiceState.ItemIndex = 0 then
   EnumDrivers(3)
 else
   EnumDrivers(rgServiceState.ItemIndex);
end;

end.


 
BiN ©   (2005-12-28 10:01) [4]


> WondeRu ©   (27.12.05 14:21) [1]


Не всякие драйвера,и уж точно не драйвер USB-устройства, можно остановить с помощью диспетчера служб.


> Ньюб2   (27.12.05 13:48)  
>
> не подскажет кто-нибудь как выключить+включить устройство,
>  а именно USB модем из сотового телефона


С помощью SetupDiSetClassInstallParams.
Пример вроде есть на http://www.yeahware.com/


 
Orinoko   (2005-12-30 12:40) [5]

Если быстро и по простому то с помощью программы DEVCON (made in MS)
С её помощью можно увидеть VendorID устройства и зная его включать/выключать разные устройства. вся работа из командной строки



Страницы: 1 вся ветка

Текущий архив: 2006.03.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.045 c
2-1141048509
49 Cent
2006-02-27 16:55
2006.03.19
Какой компонент поможет отобразить график?


2-1141398802
Flint-1983
2006-03-03 18:13
2006.03.19
Дата


3-1138471115
einstein
2006-01-28 20:58
2006.03.19
Преобразование значения ячейки (PAnsiChar в String)


15-1140795075
Piter
2006-02-24 18:31
2006.03.19
Как вытащить данные с CD-RW, которой сделали "Быструю очистку"?


2-1141250151
K_Lock
2006-03-02 00:55
2006.03.19
Вопрос для --> Ega23