VBA A Finestra DOS

Anonimo
2016-09-05T14:22:59+00:00

Salve a tutti.

Da una applicazione Access 2010 che utilizzo come monitor, lancio quasi in contemporanea dei salvataggi di file con il comodissimo "Robocopy", utilizzando la possibilità di aspettare "n" minuti prima di verificare le ulteriori modifiche e indirizzando l'output del log verso un file txt.

In questo modo mi rimangono aperte contemporaneamente 3 o 4 finestre "DOS" e non so mai a quale comando si riferiscono.

Non è possibile modificare il "Titolo" della finestra a nostro piacimento?

Grazie e ciao

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2016-09-07T12:55:28+00:00

Ciao Fulvio,

<cit>

Ho tentato ma ho visto documentazione solo per VB, io sono in access.

</cit>

Questa non l'ho capita. Tu sei in Access ma stai programmando in VBA. Inoltre il comando Title appartiene alla finestra Dos che nulla a che vedere con VB o VBA ...

A mio avviso potresti semplificare il tutto utilizzando un file batch in cui inserire tutte le istruzioni che ti servono.

Il file potrebbe creato al volo, eseguito e poi eliminato al termine.

Ad ogni modo, al solo scopo dimostrativo, ho semplificato la tua funzione in modo da mostrare come sia possibile aprire una finestra DOS, impostare il titolo ed eseguire un comando


Function Avvia_BackupEmbarghi()

    Dim CopiaSource As String

    Dim TaskIdSource

    CopiaSource = "CMD /k Title = Pluto & Robocopy"

    TaskIdSource = Shell(CopiaSource, vbNormalFocus)

End Function

--

David

La risposta è stata utile?

0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2016-09-12T20:47:29+00:00

    Ciao Fulvio,

    <cit>

    Ho tentato ma ho visto documentazione solo per VB, io sono in access.

    </cit>

    Questa non l'ho capita. Tu sei in Access ma stai programmando in VBA. Inoltre il comando Title appartiene alla finestra Dos che nulla a che vedere con VB o VBA ...

    A mio avviso potresti semplificare il tutto utilizzando un file batch in cui inserire tutte le istruzioni che ti servono.

    Il file potrebbe creato al volo, eseguito e poi eliminato al termine.

    Ad ogni modo, al solo scopo dimostrativo, ho semplificato la tua funzione in modo da mostrare come sia possibile aprire una finestra DOS, impostare il titolo ed eseguire un comando


            

    Function Avvia_BackupEmbarghi()

        Dim CopiaSource As String

        Dim TaskIdSource

        CopiaSource = "CMD /k Title = Pluto & Robocopy"

        TaskIdSource = Shell(CopiaSource, vbNormalFocus)

    End Function

    --

    David

    Mi hai dato l'idea del file cmd.

    Eseguo una ope di un file in output

    scrivo i comndi:

    Title = "pippo"

    robocopy .......

    lo chiudo e lo lancio tramite shell e come desideravo visualizzo la finestra "CMD" con il titolo e all'interno il comando eseguito.

    Grazie 1000

    Ciao

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-09-07T10:48:10+00:00

    Grazie per la risposta. Ho tentato ma ho visto documentazione solo per VB, io sono in access. Inserisco un semplice esempio di come ho usato "Title" ma non funziona.

    Function Avvia_BackupEmbarghi()

    Dim MyCommand As String

    Dim TaskId As Integer

    Giorno = Format(Date, "DD MM YYYY")

    DoEvents

    Macchina = "\W01087881M"

    PathBase = Macchina & "\ApplicazioniEW"

    Ufficio = "MioUfficio"

    Applicazione = "BackUP"

    Cartella = "Source"

    'Call VerDir(PathBase, Ufficio, Applicazione, Cartella)

    Output = """" & PathBase & "" & Ufficio & "" & Applicazione & "" & Cartella & """"

    SetTitle = "CMD Title = ""Pippo"""

    TaskIdTitle = Shell(SetTitle, 1)

    CopiaSource = "CMD Title = ""Pluto"" /C robocopy D:\Temp\ " & Output & " /E /MON:1 >d:\LogBackup\Source\Log_""" & Giorno & """.txt"

    TaskIdSource = Shell(CopiaSource, 1)

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    End Function

    Grazie e Ciao

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-09-05T16:43:20+00:00

    Ciao Fulvio,

    prova a vedere se il commando "title" di MSDOS, lanciato prima di robocopy, può esserti di aiuto: Microsoft DOS title command

    David

    La risposta è stata utile?

    0 commenti Nessun commento