purebasic.info

PureBasic forum
Текущее время: Вт ноя 20, 2018 6:51 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
СообщениеДобавлено: Вт май 26, 2009 9:32 pm 
Не в сети
студент

Зарегистрирован: Вт май 26, 2009 8:55 pm
Сообщений: 6
Откуда: Россия
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Что такое перехват и отправка сообщений Windows и "с чем их едят"?

На днях подготовлю свои исходники и выложу, А ВСЕХ ЗАИНТЕРЕСОВАННЫХ ПРОШУ МЕНЯ ПОДДЕРЖАТЬ В ЭТОЙ ТЕМЕ.

_________________
РИСПЕКТ И УВАЖУХА НАСТОЯЩИМ ХАККЕРАМ :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 27, 2009 5:24 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6399
Благодарил (а): 21 раз.
Поблагодарили: 200 раз.
Пункты репутации: 52
lem писал(а):
Что такое перехват и отправка сообщений Windows и "с чем их едят"?

Это вопрос или ты хочешь поделиться с нами своими наработками в этой области?

Если вопрос, то вот тут ( на буржуйском) но с примерами, как ставить глобальный хук на перехват сообщений:
http://www.purebasic.fr/english/viewtop ... getmessage

Посылать сообщения вообще элементарно, и на форуме у нас есть.

А если хочешь поделиться своим, то с этого и надо было начинать, а не создавать пустую тему!

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт июн 02, 2009 2:54 pm 
Не в сети
студент

Зарегистрирован: Вт май 26, 2009 8:55 pm
Сообщений: 6
Откуда: Россия
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Хотелось бы поделиться своими наработками и спросить совета...
Сейчас интересует доступ к USB-накопителям, то есть к обычным флэшкам. Цель - их пррограммное отключение для обеспечиня безопасности сети организации, в которой работаю. Иногда приносят флэшки с вирусами, появилась идея создать программулю по их учету и ведению базы данных номеров флэшек, которые были вставлены в компы сети, занесению их в список доверия, так некоторые сотрудники пользуются ими только на работе. Тут масса нюансов. Но задача с точки зрения программирования пока стоит следующая: отключить USB-накопитель программно, а не вручную или из сис-трэя.

Так вот появилось предположение о том, что можно попытаться отключить Flash-носитель, перехватив сообщение о том, что только что был подключен USB-накопитель.

Но вот исходничек, который сильно меня удивил... :


Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
;----------------------------------------------------------------------------------
; German forum: http://www.purebasic.fr/german/viewtopic.php?t=7893
; Author: mk-soft
; Date: 15. April 2006
; OS: Windows
; Demo: No
 
 
; Open and close CD drive (also compatible with Windows 98)
 
;------------------------------------------------------------------------------
 
#VWIN32_DIOC_DOS_IOCTL     = 1 ; DOS IOCTL commands
#VWIN32_DIOC_DOS_INT25     = 2 ; absolute disk Read
#VWIN32_DIOC_DOS_INT26     = 3 ; absolute disk write
#VWIN32_DIOC_DOS_INT13     = 4 ; INT 13
#VWIN32_DIOC_DOS_DRIVEINFO = 6 ; Win95B Or later
 
;#IOCTL_STORAGE_BASE               = %FILE_DEVICE_MASS_STORAGE
#IOCTL_STORAGE_GET_MEDIA_TYPES    = $002D0C00
#IOCTL_STORAGE_GET_MEDIA_TYPES_EX = $002D0C04
#IOCTL_STORAGE_CHECK_VERIFY       = $002D4800
#IOCTL_STORAGE_MEDIA_REMOVAL      = $002D4801
#IOCTL_STORAGE_EJECT_MEDIA        = $002D4808
#IOCTL_STORAGE_LOAD_MEDIA         = $002D480C
#IOCTL_STORAGE_RESERVE            = $002D4810
#IOCTL_STORAGE_RELEASE            = $002D4814
#IOCTL_STORAGE_FIND_NEW_DEVICES   = $002D4818
#IOCTL_STORAGE_RESET_BUS          = $002D5000
#IOCTL_STORAGE_RESET_DEVICE       = $002D5004
 
 
 
Structure DIOC_REGISTERS
  regEBX.l
  regEDX.l
  regECX.l
  regEAX.l
  regEDI.l
  regESI.l
  regFlags.l
EndStructure
 
;------------------------------------------------------------------------------
 
Procedure.l LoadMedia(drive.s)
 
  Protected hDisk.l
  Protected fResult.l
  Protected cb.l
  Protected Regs.DIOC_REGISTERS
  Protected bDisk.l
  Protected *Pointer
 
  *Pointer = 0
 
  OS = OSVersion()
  If OS = #PB_OS_Windows_95 Or OS = #PB_OS_Windows_98 Or OS = #PB_OS_Windows_ME
    bDisk = (Asc(UCase(drive)) - 65) + 1
    hDisk = CreateFile_("\\.\vwin32", 0, 0, *n1, 0, #FILE_FLAG_DELETE_ON_CLOSE, 0)
   
    If hDisk = #INVALID_HANDLE_VALUE
      Debug "WIN95 #INVALID_HANDLE_VALUE"
      ProcedureReturn 0
    EndIf
 
    Regs\regEAX = $440D  ;eject media
    Regs\regEBX = bDisk
    Regs\regECX = $0849
 
    fResult = DeviceIoControl_(hDisk, #VWIN32_DIOC_DOS_IOCTL, Regs, SizeOf(DIOC_REGISTERS), Regs, SizeOf(DIOC_REGISTERS), @cb, 0)
 
    If (regs\regFlags And 1) = 1
      fResult = 0
    EndIf
  Else
    hDisk = CreateFile_("\\.\"+drive, #GENERIC_READ, 0, *n1, #OPEN_EXISTING, 0, @handle)
   
    If hDisk = #INVALID_HANDLE_VALUE
      Debug "WINNT #INVALID_HANDLE_VALUE"
      ProcedureReturn 0
    EndIf
 
    fResult = DeviceIoControl_(hDisk, #IOCTL_STORAGE_LOAD_MEDIA, 0, 0, 0, 0, @cb, 0)
  EndIf
 
  CloseHandle_(hDisk)
 
  ProcedureReturn fResult
 
EndProcedure
 
;------------------------------------------------------------------------------
 
Procedure.l EjectMedia(drive.s)
 
  Protected hDisk.l
  Protected fResult.l
  Protected cb.l
  Protected Regs.DIOC_REGISTERS
  Protected bDisk.l
 
  *Pointer = 0
 
  OS = OSVersion()
  If OS = #PB_OS_Windows_95 Or OS = #PB_OS_Windows_98 Or OS = #PB_OS_Windows_ME
    bDisk = (Asc(UCase(drive)) - 65) + 1
    hDisk = CreateFile_("\\.\vwin32", 0, 0, *n1, 0, #FILE_FLAG_DELETE_ON_CLOSE, 0)
   
    If hDisk = #INVALID_HANDLE_VALUE
      Debug "WIN95 #INVALID_HANDLE_VALUE"
      ProcedureReturn 0
    EndIf
 
    Regs\regEAX = $440D  ;eject media
    Regs\regEBX = bDisk
    Regs\regECX = $0849
 
    fResult = DeviceIoControl_(hDisk, #VWIN32_DIOC_DOS_IOCTL, Regs, SizeOf(DIOC_REGISTERS), Regs, SizeOf(DIOC_REGISTERS), @cb, 0)
 
    If (regs\regFlags And 1) = 1
      fResult = 0
    EndIf
  Else
    hDisk = CreateFile_("\\.\"+drive, #GENERIC_READ, 0, *n1, #OPEN_EXISTING, 0, @handle)
   
    If hDisk = #INVALID_HANDLE_VALUE
      Debug "WINNT #INVALID_HANDLE_VALUE"
      ProcedureReturn 0
    EndIf
 
    fResult = DeviceIoControl_(hDisk, #IOCTL_STORAGE_EJECT_MEDIA, 0, 0, 0, 0, @cb, 0)
  EndIf
 
  CloseHandle_(hDisk)
 
  ProcedureReturn fResult
 
EndProcedure
 
 
Debug EjectMedia("F:") ; Вот тут поменяйте том "F" на тот, который
; закреплен за флэшкой
 
Delay(2000)
 
Debug LoadMedia("F:") ; и здесь то же самое надо изменить
 
; IDE Options = PureBasic v4.02 (Windows - x86)
; Folding = -
;----------------------------------------------------------------------------------



Интересно вот что... обратите внимание на 5 и 9 строчку с конца, где я вставил комментарии... изапустите на исполнение... и о чудо! теперь доступ к флэшке заблокирован! понимаю, что некоторых это ничуть не удивит, но я подобными вещами не занимался ранее, а сейчас вот понадобилось... но это только цветочки! попробуйте перенести откомпиленный exe-шник на другую Windows, точнее на другой комп с такой же осью (Windows XP) и не факт, что Flash-накопитель там будет отключен! Вопрос: почему? И заранее просьба: не судите строго, понимаю, что некоторым вопрос может показаться тупым.

Данный исходник наверно мало имеет отношения к перехвату сообщений Windows, лишь только косвенно, если, например, перехватить сообщение о подключившейся флэшке и заблокировать ее процедурой из данного исходника. Есть подозрение, что, если грамотно перехватиить такое сообщение, то можно сделать так, чтобы windows вообще его не получила на обработку...

Кто знает, подскажите, пожалуйста, как быть?

_________________
РИСПЕКТ И УВАЖУХА НАСТОЯЩИМ ХАККЕРАМ :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт июн 02, 2009 3:55 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11325
Благодарил (а): 4 раз.
Поблагодарили: 441 раз.
Думаю что надо периодически сканировать все буквы обозначающие диски и находить флешки и пробовать их отключать.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
#VWIN32_DIOC_DOS_IOCTL     = 1 ; DOS IOCTL commands 
#VWIN32_DIOC_DOS_INT25     = 2 ; absolute disk Read
#VWIN32_DIOC_DOS_INT26     = 3 ; absolute disk write
#VWIN32_DIOC_DOS_INT13     = 4 ; INT 13
#VWIN32_DIOC_DOS_DRIVEINFO = 6 ; Win95B Or later
 
;#IOCTL_STORAGE_BASE               = %FILE_DEVICE_MASS_STORAGE
#IOCTL_STORAGE_GET_MEDIA_TYPES    = $002D0C00
#IOCTL_STORAGE_GET_MEDIA_TYPES_EX = $002D0C04
#IOCTL_STORAGE_CHECK_VERIFY       = $002D4800
#IOCTL_STORAGE_MEDIA_REMOVAL      = $002D4801
#IOCTL_STORAGE_EJECT_MEDIA        = $002D4808
#IOCTL_STORAGE_LOAD_MEDIA         = $002D480C
#IOCTL_STORAGE_RESERVE            = $002D4810
#IOCTL_STORAGE_RELEASE            = $002D4814
#IOCTL_STORAGE_FIND_NEW_DEVICES   = $002D4818
#IOCTL_STORAGE_RESET_BUS          = $002D5000
#IOCTL_STORAGE_RESET_DEVICE       = $002D5004
 
 
 
Structure DIOC_REGISTERS
  regEBX.l
  regEDX.l
  regECX.l
  regEAX.l
  regEDI.l
  regESI.l
  regFlags.l
EndStructure
 
;------------------------------------------------------------------------------
 
Procedure.l LoadMedia(drive.s)
 
  Protected hDisk.l
  Protected fResult.l
  Protected cb.l
  Protected Regs.DIOC_REGISTERS
  Protected bDisk.l
  Protected *Pointer
 
  *Pointer = 0
 
  OS = OSVersion()
  If OS = #PB_OS_Windows_95 Or OS = #PB_OS_Windows_98 Or OS = #PB_OS_Windows_ME
    bDisk = (Asc(UCase(drive)) - 65) + 1
    hDisk = CreateFile_("\\.\vwin32", 0, 0, *n1, 0, #FILE_FLAG_DELETE_ON_CLOSE, 0)
   
    If hDisk = #INVALID_HANDLE_VALUE
      Debug "WIN95 #INVALID_HANDLE_VALUE"
      ProcedureReturn 0
    EndIf
 
    Regs\regEAX = $440D  ;eject media
    Regs\regEBX = bDisk
    Regs\regECX = $0849
 
    fResult = DeviceIoControl_(hDisk, #VWIN32_DIOC_DOS_IOCTL, Regs, SizeOf(DIOC_REGISTERS), Regs, SizeOf(DIOC_REGISTERS), @cb, 0)
 
    If (regs\regFlags And 1) = 1
      fResult = 0
    EndIf
  Else
    hDisk = CreateFile_("\\.\"+drive, #GENERIC_READ, 0, *n1, #OPEN_EXISTING, 0, @handle)
   
    If hDisk = #INVALID_HANDLE_VALUE
      Debug "WINNT #INVALID_HANDLE_VALUE"
      ProcedureReturn 0
    EndIf
 
    fResult = DeviceIoControl_(hDisk, #IOCTL_STORAGE_LOAD_MEDIA, 0, 0, 0, 0, @cb, 0)
  EndIf
 
  CloseHandle_(hDisk)
 
  ProcedureReturn fResult
 
EndProcedure
 
;------------------------------------------------------------------------------
 
Procedure.l EjectMedia(drive.s)
 
  Protected hDisk.l
  Protected fResult.l
  Protected cb.l
  Protected Regs.DIOC_REGISTERS
  Protected bDisk.l
 
  *Pointer = 0
 
  OS = OSVersion()
  If OS = #PB_OS_Windows_95 Or OS = #PB_OS_Windows_98 Or OS = #PB_OS_Windows_ME
    bDisk = (Asc(UCase(drive)) - 65) + 1
    hDisk = CreateFile_("\\.\vwin32", 0, 0, *n1, 0, #FILE_FLAG_DELETE_ON_CLOSE, 0)
   
    If hDisk = #INVALID_HANDLE_VALUE
      Debug "WIN95 #INVALID_HANDLE_VALUE"
      ProcedureReturn 0
    EndIf
 
    Regs\regEAX = $440D  ;eject media
    Regs\regEBX = bDisk
    Regs\regECX = $0849
 
    fResult = DeviceIoControl_(hDisk, #VWIN32_DIOC_DOS_IOCTL, Regs, SizeOf(DIOC_REGISTERS), Regs, SizeOf(DIOC_REGISTERS), @cb, 0)
 
    If (regs\regFlags And 1) = 1
      fResult = 0
    EndIf
  Else
    hDisk = CreateFile_("\\.\"+drive, #GENERIC_READ, 0, *n1, #OPEN_EXISTING, 0, @handle)
   
    If hDisk = #INVALID_HANDLE_VALUE
      Debug "WINNT #INVALID_HANDLE_VALUE"
      ProcedureReturn 0
    EndIf
 
    fResult = DeviceIoControl_(hDisk, #IOCTL_STORAGE_EJECT_MEDIA, 0, 0, 0, 0, @cb, 0)
  EndIf
 
  CloseHandle_(hDisk)
 
  ProcedureReturn fResult
 
EndProcedure
 
 
; Debug EjectMedia("G:") ; Вот тут поменяйте том "F" на тот, который
; ; закреплен за флэшкой
;
; Delay(2000)
;
; Debug LoadMedia("G:") ; и здесь то же самое надо изменить
 
 
NewList Disc.c()
 
Procedure CheckDrive(Drive.s) ; Узнаём есть ли диск. 1 - есть; 0 - нет
  Drive=Left(Drive,1)+":\"
 
  VNB.s=Space(100)     ; Volume Name Buffer
  VNS=100             ; Volume Name Size
  VSN=0               ; Volume Serial Number (Hex)
  MCL=0               ; Max.File Name Len
  FSF=0               ; File System Flags
  FSNB.s=Space(100)    ; File System Name Buffer (FAT/NTFS usw)
  FSNS=100            ; File System Name BufferSize
 
  GetVolumeInformation_(Drive,@VNB,VNS,@VSN,@MCL,@FSF,@FSNB,FSNS)
  If VSN<>0 : VSN=1 : EndIf
  ProcedureReturn VSN
EndProcedure
 
 
Procedure TestDrive(n) ; Проверяем чтобы диск был фешкой или картой памяти
    If RealDriveType_(n,0)=#DRIVE_REMOVABLE
      If CheckDrive(Chr(65+n)+":")
         ProcedureReturn 1
      EndIf
    EndIf
 ProcedureReturn 0
EndProcedure
 
Procedure FindDrive(n, Del) ; Ищем диск в списке
Shared Disc()
 ForEach Disc()
   If Disc()=n
     If Del=1
       DeleteElement(Disc()) ; Если флешка зарагестрирована в проге, но не обнаружена - удаляем регистрацию
       Debug "Удаление регистарции флешки с буквой "+Chr(65+n)+":"
     EndIf
     ProcedureReturn 1
   EndIf
 Next
 
 ProcedureReturn 0
EndProcedure
 
Repeat
 
 For n=2 To 26
   If TestDrive(n)=1 ; Флешка найдена
     If FindDrive(n, 0)=0 ; Она не зарегестрирована
       Debug "Вставлена флешка с буквой "+Chr(65+n)+":"
       AddElement(Disc())
       Disc()=n ; Регистрируем
       EjectMedia(Chr(65+n)+":")
       Delay(200)
       LoadMedia(Chr(65+n)+":")
     EndIf
   Else ; Флешки с такой буквой нет
     FindDrive(n, 1)
   EndIf
 Next n
 Delay(100)
ForEver


У меня одна флешка отключается на ура, а вторая не хочет! :(

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт июн 02, 2009 4:25 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6399
Благодарил (а): 21 раз.
Поблагодарили: 200 раз.
Пункты репутации: 52
lem писал(а):
не факт, что Flash-накопитель там будет отключен! Вопрос: почему?


Может ответ скрывается за этой фразой:
lem писал(а):
Вот тут поменяйте том "F" на тот, который
; закреплен за флэшкой


Т.е. надо автоматом определять букву накопителя, т.к. для разных компов она может быть разной.
Примерно вот так можно определить:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Global USBLett$
Procedure DetectUSBKey()
  For n=2 To 26
    If RealDriveType_(n,0)=  #DRIVE_REMOVABLE
    USBLett$=Chr(65+n)
      ProcedureReturn 1
    EndIf
  Next
 
EndProcedure
 
;/ Test
If DetectUSBKey()
 
  MessageRequester("Removable Drive","На диске  "+USBLett$+":",#MB_ICONINFORMATION)
Else
  MessageRequester("Removable Drive","Absent",#MB_ICONERROR )
EndIf



Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт июн 02, 2009 4:37 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6399
Благодарил (а): 21 раз.
Поблагодарили: 200 раз.
Пункты репутации: 52
Пётр писал(а):
Думаю что надо периодически сканировать все буквы обозначающие диски и находить флешки и пробовать их отключать.


Раз уж Петр меня опередил :D , то вот ещё один код, который позволяет отследить момент подключения и отключения флешки к компу:

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
;GENERAL PROCEDURES
 
#WM_DEVICECHANGE=$219
#DBT_DEVICEARRIVAL=$8000 ;A device has been inserted
#DBT_DEVICEREMOVECOMPLETE=$8004 ;A device has been removed.
 
 
Procedure GetDeviceEvent(WindowID,Message,wParam,lParam)
  ;Callback procedure to catch a removable device event
  result = #PB_ProcessPureBasicEvents
  If Message=#WM_DEVICECHANGE
    result = #True
    Select wParam
      Case #DBT_DEVICEARRIVAL
        MessageRequester("","Inserted",#PB_MessageRequester_Ok)
      Case #DBT_DEVICEREMOVECOMPLETE
        MessageRequester("","Removed",#PB_MessageRequester_Ok)
    EndSelect
  EndIf
  ProcedureReturn result
EndProcedure
 
 
;MAIN WINDOW AND CONTROLS
;Main window flags
Flags=#PB_Window_SystemMenu|#PB_Window_ScreenCentered
Flags=Flags|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget
 
 
;Open the main window
If OpenWindow(0,0,0,600,400,"Removable device test",Flags)=0
  MessageRequester("","Error",#PB_MessageRequester_Ok)
  End
EndIf
 
 
;Set the callback to catch a removable device event
SetWindowCallback(@GetDeviceEvent())
 
 
;MAIN WINDOW EVENT LOOP
Repeat
  event=WaitWindowEvent()
  Select event
    Case #PB_Event_CloseWindow
      ;Program closed
      Exit=1
  EndSelect
Until Exit



Вот вам уже реальный перехват!

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июн 03, 2009 8:47 am 
Не в сети
студент

Зарегистрирован: Вт май 26, 2009 8:55 pm
Сообщений: 6
Откуда: Россия
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
kvitaliy писал(а):
Может ответ скрывается за этой фразой:
lem писал(а):
Вот тут поменяйте том "F" на тот, который
; закреплен за флэшкой

Жесткое использование конкретной буквы флешки задано для теста, автоматику планировал прикрутить чуть позже, т.к. с определением состояния подключения flash-носителей уже справился, все протестировал и работает.
Сейчас же стоит задача следующая: отключить конкретный USB носитель, зная букву его тома. У себя на ноуте, где установлен PureBasic 4.00 все работет прекрасно - запускаем программу и флешка перестает работать (см. скриншот). Запускаю данную программу на стационарных компах(изменяя метку тома флешки) и никакой реакции...
Подскажите, в чем может заключаться данная проблема?


Вложения:
Комментарий к файлу: результат работы программы на ноуте
screen.png [7.56 KiB]
Скачиваний: 157

_________________
РИСПЕКТ И УВАЖУХА НАСТОЯЩИМ ХАККЕРАМ :)
Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июн 03, 2009 9:51 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6399
Благодарил (а): 21 раз.
Поблагодарили: 200 раз.
Пункты репутации: 52
Возможно это связано с разными настройками системы. Включен ли автозапуск? Обычно если устройство уже используется системой то оно не отключается.

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июн 03, 2009 10:05 am 
Не в сети
студент

Зарегистрирован: Вт май 26, 2009 8:55 pm
Сообщений: 6
Откуда: Россия
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
kvitaliy писал(а):
Возможно это связано с разными настройками системы. Включен ли автозапуск? Обычно если устройство уже используется системой то оно не отключается.

Возможно, но тут загвоздка в том, что и на ноуте и на компе настройки системы дефолтовые... Автозапуск с флешек включен и там и там. Разница между компами только в установленном софте и железе.
Пробовал запускать данную программу и на других компах - нигде не работает. Появилась мысль о том, что, возможно, данная программа использует какие-либо библиотеки установленного на ноуте PureBasic. Возможно ли такое?

_________________
РИСПЕКТ И УВАЖУХА НАСТОЯЩИМ ХАККЕРАМ :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июн 03, 2009 10:51 am 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11325
Благодарил (а): 4 раз.
Поблагодарили: 441 раз.
lem писал(а):
Появилась мысль о том, что, возможно, данная программа использует какие-либо библиотеки установленного на ноуте PureBasic. Возможно ли такое?
Нет. Это исключено! Весь требуемый код находится в исполняемом файле.

Я выше писал что на одном и том-же компе эта прога одну флешку 100% отключает, а вторую вообще не хочет!
Видимо проблема в самом коде.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср июн 03, 2009 11:19 am 
Не в сети
студент

Зарегистрирован: Вт май 26, 2009 8:55 pm
Сообщений: 6
Откуда: Россия
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
если же проблема в коде, то что можете посоветовать для реализации отключения флешки от компьютера под XP?

_________________
РИСПЕКТ И УВАЖУХА НАСТОЯЩИМ ХАККЕРАМ :)


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB