Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    156

    [batch dos] impartire comandi a shell esterna

    salve,
    volevo provare a fare uno script in dos per semplificarmi il lavoro in ufficio. mi si è posto questo problema:
    ho un programma che quando va in esecuzione apre una nuova shell e di posiziona su una particolare dir, in dovrei riuscire tramite dei comandi in batch a passare comandi alla shell che si apre grazie al programma che utilizzo.

    grazie
    Matteo

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,301

    Re: [batch dos] impartire comandi a shell esterna

    Originariamente inviato da Maxa12
    dovrei riuscire tramite dei comandi in batch a passare comandi alla shell che si apre grazie al programma che utilizzo.
    Credo proprio che non dovresti riuscirci. :gren:

    Attraverso file BATCH è possibile eseguire in sequenza comandi DOS, non puoi certo reperire l'handler della finestra della nuova shell che si apre e inviarle dei comandi... Queste cose si fanno in C/C++.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di Corwin
    Registrato dal
    Jan 2002
    Messaggi
    584
    <job>
    <script language="VBScript">
    set WshShell = WScript.CreateObject("WScript.Shell")
    x = WshShell.Run("cmd /k")
    WScript.Sleep 200
    WshShell.SendKeys "d"
    WScript.Sleep 100
    WshShell.SendKeys "i"
    WScript.Sleep 100
    WshShell.SendKeys "r"
    WScript.Sleep 100
    WshShell.SendKeys "{ENTER}"
    </script>
    </job>

    Salva il file come test.wsf e prova a farlo partire... magari riesci ad adattarlo al tuo script...

    PS: se hai Win98 invece di cmd devi usare command...
    I don't wanna have to shout it out / I don't want my hair to fall out
    I don't wanna be filled with doubt / I don't wanna be a good boy scout
    I don't wanna have to learn to count / I don't wanna have the biggest amount
    I don't wanna grow up

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    156
    a me non fa differenza usare c++ o vbscript, so solo che lo devo far eseguire ad un utente non privilegiato su win2000

    cmq ora provo la soluzione di corwin
    ma per impartire comandi alla nuova shell basta che scriva
    codice:
    WshShell.SendKeys "comando -parametri"
    WshShell.SendKeys "{ENTER}"
    grazie
    Matteo

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    156
    non sono riuscito bene a capire come si usa lo script non è che nessuno può spiegarmi la soluzione in c/c++ almeno riesco a smanettarci qualcosa anche da solo..


    grazie
    Matteo

  6. #6
    Utente di HTML.it L'avatar di Corwin
    Registrato dal
    Jan 2002
    Messaggi
    584
    codice:
    <job>
    <script language="VBScript">
    
    function SendCommand(C)
    WScript.Sleep 100
    For x = 1 to Len(C)
    WshShell.SendKeys Mid(C,x,1)
    WScript.Sleep 100
    Next
    WshShell.SendKeys "{ENTER}"
    WScript.Sleep 100
    end function
    
    set WshShell = WScript.CreateObject("WScript.Shell")
    x = WshShell.Run("cmd /k")
    SendCommand "Dir > test.txt"
    
    </script>
    </job>
    Così ti è più chiaro ?
    I don't wanna have to shout it out / I don't want my hair to fall out
    I don't wanna be filled with doubt / I don't wanna be a good boy scout
    I don't wanna have to learn to count / I don't wanna have the biggest amount
    I don't wanna grow up

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.