Newsgroup: it.comp.appl.access
Titolo: Shell per Command.com

Ragassuoli, vorrei lanciare un'operazione DOS da A97.
alla pressione di un tasto vorrei attivare 
command.com
 per eseguire il
comando Deltree C:\Pippo.
Dato che command risiede in dir diverse a seconda che sia in uso W9x o NT,
sapete suggerirmi un modo per indicare al programma di trovare e lanciare a
colpo sicuro?
E inoltre la sintassi corretta come dovrebbe essere? (Alcune prove mi sono
risultate infruttuose...!
Saludos

 ha scritto:...

Sai che non debbi usare DOS per questo? Basta VBA con
RmDir "C:\Pippo"
Se vuoi usare DOS assolutamente prova con:
Dim strOp As String
strOp = "Deltree C:\Pippo"
Shell Environ("COMSPEC") & " /C " & strOp, 0
--
HTH
Karl
*********
Access-FAQ (tedesco): 
http://www.donkarl.com

 ha scritto nel messaggio
news:ac2ukq$mf5uu$1...@ID-46617.news.dfncis.de...

RmDir? Mai sentita! Ora provo, grazie per ora

 ha scritto nel messaggio
news:ac2ukq$mf5uu$1...@ID-46617.news.dfncis.de...

Purtroppo RmDir non funge, la cartella deve essere vuota

Purtroppo nessuno dei due metodi funge...

 Purtroppo nessuno dei due metodi funge...
Normalmente per questo si usa una combinazione di Kill e RmDir
o il FileSystemObject. Ma come non mi piaciono e questa domanda
viene spesso adesso ho addatato un codice di Dev.
Fai un coppia/incolla da "Start" a "End" in un modulo standard.
Dopo puoi chiamare il sub con: MyDelTree "c:\pippo"
È un lavoro di qualche minuto, per questo assolutamente niente
garanzia. ;-) Dimmi se ci sono problemi.
'***START***
' good lines of code by Dev Ashish, rest by Karl Donaubauer
Private Declare Function SHFileOperation Lib "shell32.dll" _
        Alias "SHFileOperationA" (lpFileOp As Any) As Long
Private Type SHFILEOPSTRUCT
        hwnd As Long
        wFunc As Long
        pFrom As String
        pTo As String
        fFlags As Integer
        fAnyOperationsAborted As Long
        hNameMappings As Long
        lpszProgressTitle As String
End Type
Private Const FO_DELETE = &H3
Private Const FO_NOCONFIRM = &H10
Private Const FOF_ALLOWUNDO = &H40
Sub MyDelTree(strSource As String)
    Dim WhatToDo As SHFILEOPSTRUCT
    strSource = strSource & vbNullChar
    With WhatToDo
            .wFunc = C_DELETE
            .pFrom = strSource
            .fFlags = C_NOCONFIRM '_ ' ask for confirmation
                'Or C_ALLOWUNDO ' copy to paperbin
    End With
    If SHFileOperation(WhatToDo) <> 0 Then MsgBox "SayFuBar"
End Sub
'***END***


 Purtroppo nessuno dei due metodi funge...
Normalmente per questo si usa una combinazione di Kill e RmDir
o il FileSystemObject. Ma come non mi piaciono e questa domanda
viene spesso adesso ho addatato un codice di Dev.
Fai un coppia/incolla da "Start" a "End" in un modulo standard.
Dopo puoi chiamare il sub con: MyDelTree "c:\pippo"
È un lavoro di qualche minuto, per questo assolutamente niente
garanzia. ;-) Dimmi se ci sono problemi.
'***** START *****
' good lines of code by Dev Ashish, rest by Karl Donaubauer
Private Declare Function SHFileOperation Lib "shell32.dll" _
        Alias "SHFileOperationA" (lpFileOp As Any) As Long
Private Type SHFILEOPSTRUCT
        hwnd As Long
        wFunc As Long
        pFrom As String
        pTo As String
        fFlags As Integer
        fAnyOperationsAborted As Long
        hNameMappings As Long
        lpszProgressTitle As String
End Type
Private Const FO_DELETE = &H3
Private Const FO_NOCONFIRM = &H10
Private Const FOF_ALLOWUNDO = &H40
Sub MyDelTree(strSource As String)
    Dim WhatToDo As SHFILEOPSTRUCT
    strSource = strSource & vbNullChar
    With WhatToDo
            .wFunc = FO_DELETE
            .pFrom = strSource
            .fFlags = FO_NOCONFIRM '_ ' ask for confirmation
                'Or FOF_ALLOWUNDO ' copy to paperbin
    End With
    If SHFileOperation(WhatToDo) <> 0 Then MsgBox "SayFuBar"
End Sub
'***** END *****


cut
Karl sei grande, funge!
Mi resta sconosciuto buona parte del codice, ma tant'è!
Riesci mica a darmi una mano anche col mio post sulla "Data in formato non
data"?
Ovviamente, non voglio approfittarne!
Saluti