Страница: 1 |
u emnja takaja problema pomogite kto mozet plz pi6u ja programu dla diska nu tipo vstovljaje6 disk v cd-rom nu i zagruzaetsja moja proga v kotoroj ssilki na drugie progi nahodja6iesja na etom diske!!! nu eto vigljadit tak: If Option1.Value = True Then Shell "c:\WINDOWS\Рабочий стол\software\auxsetup", vbNormalFocus End If 'nu i td koro4e no problema v tom 4to koogda ja zapi6u na cd on budet ne c (a "d" "e" "f" i td) kak sedlatj 4tob opredelalo cd-rom kakoj bukvoj i podstavljalo tuda etu bukvu????????? na6el ja API funkciju no 4o to u menja ne puilu4aetsja ni4ego!! Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" _ (ByVal nDrive As String) As Long Const DRIVE_CDROM = 5 pomogite plz o4enj nuzno!!!!!!!!!!!!!!!!!!
Что никто неможет ответить? Это в модуль: Option Explicit Public Type DriveInfo Public Const DRIVE_REMOVABLE = 2 Public Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long Sub GetDrives(drvInfo() As DriveInfo) Это в форму: Private Sub Form_Load() GetDrives drvInfo Теперь drvInfo содержит все твои диски и их тип. Посмотри эту переменную в Watch Window. Удачи . hmm 4o to u emnja ne polu4aetsja!!vstavil ja eto v modulj i v form_load vstavil no kak sdelatj 4tob bukva podstovljalasj vmesto c: ta kotoraja nuzna 4o to ja ne ponjal nemnogo (( daz ne nemnogo ja nehrena ne ponjal If Option1.Value = True Then Shell "c:\WINDOWS\Рабочий стол\software\auxsetup", vbNormalFocus End If Попробуй переделать этот код: Const DRIVE_REMOVABLE = 2 Private Sub Form_Click() hmmm For i = 1 To 26 strD = Chr(i + 64) & ":\" lngDrive = GetDriveType(strD) Select Case lngDrive Case DRIVE_REMOVABLE Print "Drive " & strD & " is removable." Case DRIVE_FIXED Print "Drive " & strD & " is fixed." Case DRIVE_REMOTE Print "Drive " & strD & " is remote." Case DRIVE_CDROM Print "Drive " & strD & " is Cd-Rom." Case DRIVE_RAMDISK Print "Drive " & strD & " is RAM disk." Case Else End Select Next i delaju posle etogo nu proverjaju msgbox strD i tama pi6et z:/ )) a u menja sovsem ne z a c: !! i es4o voprosik nu vot etot kod eslib naprimer i da val on pravilnuju bukvu kak mne postavitj nado tak?: Shell "strD WINDOWS\Рабочий стол\software\auxsetup", vbNormalFocus ili kak to podrugomu?? For i = 1 To 26 strD = Chr(i + 64) & ":\" lngDrive = GetDriveType(strD) If lngDrive = DRIVE_CDROM then Shell strD & "WINDOWS\Рабочий стол\software\auxsetup", vbNormalFocus Next i :susel: 4o to u emnja ne rabotaet neho4et (( esli mozete pri6lite mne ishodnik esli ne tjazelo!!! ili mozet kka ozno bez api f-ij! s if..else??????? Страница: 1 |
Вопрос: GetDriveType????????????????
Добавлено: 31.01.03 01:29
Автор вопроса: AGR
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
AGR
Вопросов: 2
Ответов: 7
Профиль | | #1
Добавлено: 31.01.03 12:32
Номер ответа: 2
Автор ответа:
Иван
Администратор
ICQ: 147688925
Вопросов: 24
Ответов: 708
Web-сайт:
Профиль | | #2
Добавлено: 31.01.03 22:04
strDrive As String
strType As String
End Type
Public Const DRIVE_FIXED = 3
Public Const DRIVE_REMOTE = 4
Public Const DRIVE_CDROM = 5
Public Const DRIVE_RAMDISK = 6
Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Dim strDrives As String * 255
Dim strDriveLetter As String
Dim lngDriveType As String
Dim lngStrLen As Long
Dim lngFound As Long
Dim lngPos As Long
Dim i As Integer
Dim h As Long
lngStrLen = GetLogicalDriveStrings(254, strDrives)
strDrives = Left(strDrives, lngStrLen)
lngFound = InStr(strDrives, vbNullChar)
Do
strDriveLetter = Mid(strDrives, lngPos + 1, lngFound - lngPos - 1)
If strDriveLetter <> "" Then
lngPos = lngFound
ReDim Preserve drvInfo(i)
drvInfo(UBound(drvInfo)).strDrive = strDriveLetter
'прочитать информацию о дисках
drvInfo(i).strDrive = strDriveLetter
'тип диска
lngDriveType = GetDriveType(strDriveLetter)
Select Case lngDriveType
Case DRIVE_REMOVABLE
drvInfo(i).strType = "Гибкий диск"
Case DRIVE_FIXED
drvInfo(i).strType = "Локальный диск"
Case DRIVE_RAMDISK
drvInfo(i).strType = "Электронный диск"
Case DRIVE_CDROM
drvInfo(i).strType = "Компакт-диск"
End Select
lngFound = InStr(lngFound + 1, strDrives, vbNullChar)
Else
lngFound = 0
End If
i = i + 1
Loop Until lngFound = 0
End Sub
Dim drvInfo() As DriveInfo
End Sub
Номер ответа: 3
Автор ответа:
AGR
Вопросов: 2
Ответов: 7
Профиль | | #3
Добавлено: 07.02.03 17:09
Номер ответа: 4
Автор ответа:
Лёха
Вопросов: 18
Ответов: 34
Web-сайт:
Профиль | | #4
Добавлено: 09.02.03 14:35
Const DRIVE_FIXED = 3
Const DRIVE_REMOTE = 4
Const DRIVE_CDROM = 5
Const DRIVE_RAMDISK = 6
Private Declare Function GetDriveType _
Lib "kernel32" Alias "GetDriveTypeA" ( _
ByVal nDrive As String _
) As Long
Dim i As Integer, lngDrive As Long, strD As String
For i = 1 To 26
strD = Chr(i + 64) & ":\"
lngDrive = GetDriveType(strD)
Select Case lngDrive
Case DRIVE_REMOVABLE
Print "Drive " & strD & " is removable."
Case DRIVE_FIXED
Print "Drive " & strD & " is fixed."
Case DRIVE_REMOTE
Print "Drive " & strD & " is remote."
Case DRIVE_CDROM
Print "Drive " & strD & " is Cd-Rom."
Case DRIVE_RAMDISK
Print "Drive " & strD & " is RAM disk."
Case Else
End Select
Next i
End Sub
Номер ответа: 5
Автор ответа:
AGR
Вопросов: 2
Ответов: 7
Профиль | | #5
Добавлено: 10.02.03 00:27
Номер ответа: 6
Автор ответа:
Лёха
Вопросов: 18
Ответов: 34
Web-сайт:
Профиль | | #6
Добавлено: 10.02.03 18:18
Номер ответа: 7
Автор ответа:
AGR
Вопросов: 2
Ответов: 7
Профиль | | #7
Добавлено: 11.02.03 00:03