Finns det någon kod man kan använda Hej! Du kan ju lägga tilo felhantering. Som skickar upp ett felmedelande. Så kommer inte applikationen att avsluta. Lyckades bra när jag testade Andreas lösning.Diskettstation
för att känna av om en diskett sitter i
diskettenheten?
När man fått felmeddelande av den
orsaken, stängs ju programmet av.
Det vill man heldst undvika.Sv: Diskettstation
<code>
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * 260
cAlternate As String * 14
End Type
Private Declare Function FindFirstFile Lib "kernel32" _
Alias "FindFirstFileA" (ByVal lpFileName As String, _
lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long
Private Sub Command1_Click()
Dim lHandle As Long
Dim WFD As WIN32_FIND_DATA
lHandle = FindFirstFile("A:\nul", WFD)
If lHandle < 1 Then
MsgBox "Ingen diskett"
Else
MsgBox "Diskett finns!"
End If
Call FindClose(lHandle)
End Sub
</code>
Edit: Skulle vara Private istället för Public, har ändrat det nu...
/MickeSv: Diskettstation
<code>
Private Sub Command1_Click()
Dim FileName As String
On Error GoTo Command1_Click_Err
FileName = Dir$("a:\*.*")
Do While Len(FileName)
Debug.Print FileName
FileName = Dir$()
Loop
Command1_Click_Exit:
Exit Sub
Command1_Click_Err:
Select Case Err.Number
Case 52
Select Case MsgBox("Det fins ingen disket i diskettstationen.", vbExclamation Or vbRetryCancel)
Case vbRetry
Resume
Case Else
Resume Command1_Click_Exit
End Select
Case Else
MsgBox Err.Description, vbCritical, Err.Source
End Select
End Sub
</code>Sv: Diskettstation
I Mickes lösning vet jag ej var man lägger
deklarationen Public Type. I en .bas -modul kanske?
Men tack båda två. Hjälpen man får här på forumet
är guld värd.