Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Nascondere PROMPT da Batch

    Ciao a tutti...
    avrei un piccolo dilemma per voi..
    ho creato un batch per il backup, funziona alla grande grazie soprattutto ai vostri contributi, ma ora mi ritrovo a dover nascondere tutte le schermate del prompt che mi appaiono durante le varie operazioni che lo script esegue.
    Ho trovato googlando questo http://www.hwupgrade.it/forum/showpo...&postcount=280 ma anche seguendo passo a passo questa miniguida, non sono riuscita a far funzionare questo exe. Temo che questa soluzioni a me non funzioni in quanto il mio batch Backup.bat durante la sua esecuzione, lancia un altro batch, ScriptBackup.bat...
    Qualcuno ha qualche idea?
    Devo praticamente nascondere tutti i messaggi visualizzati dalla shell di DOS, e mantenere solamente un messaggio finale di corretta o meno esecuzione del backup.
    Grazie anticipatamente a chi mi risponderà!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469

    Re: Nascondere PROMPT da Batch

    Originariamente inviato da soniettabrasile
    Devo praticamente nascondere tutti i messaggi visualizzati dalla shell di DOS, e mantenere solamente un messaggio finale di corretta o meno esecuzione del backup.
    Grazie anticipatamente a chi mi risponderà!
    non è chiarissimo se vuoi nascondere i messaggi, o l'intera finestra
    nel primo caso ti basta, tipicamente, redirezionare l'output dei comandi con >
    brutale, ma funzionale

    il secondo è fattibile, ma bisogna usare un mini-programmino che faccia la shellexecute "nascosta" (in pratica lanci un file batch senza che nessuno... lo sappia)

  3. #3
    mi scuso per la non chiarezza..
    comunque è la seconda, vorrei nascondere le intere finestre che mostrano le varie esecuzioni dei comandi..per fare il secondo, sai dirmi qualcosa di più preciso?

  4. #4

    Re: Re: Nascondere PROMPT da Batch

    Originariamente inviato da franzauker
    il secondo è fattibile, ma bisogna usare un mini-programmino che faccia la shellexecute "nascosta" (in pratica lanci un file batch senza che nessuno... lo sappia)
    L'unico modo è nascondere la finestra come t'ha detto franzauker.

    Il batch è un linguaggio che è stato creato per DOS, e con il DOS esiste solo la riga di comando, quindi se programmi in Batch è perchè per principio hai bisogno della linea di comando

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da soniettabrasile
    mi scuso per la non chiarezza..
    comunque è la seconda, vorrei nascondere le intere finestre che mostrano le varie esecuzioni dei comandi..per fare il secondo, sai dirmi qualcosa di più preciso?
    sì (o almeno credo), ti serve un programmello eseguibile.
    ora ho appuntamenti, se non hai frettissima massimo domani te lo posto

  6. #6
    ok, grazie mille! attendo senza problemi..anzi grazie ancora!

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    Altrimenti puoi scaricare un programma tipo bat torce che come opzione include anche quella di nascondere la finestra,l'unica cosa è che non avrai più un .bat,ma un .exe,se ti serve puoi aggiungere anche un decompilatore...

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Prova questo (banale) programmello che ho appena compilato
    http://www.franzauker.com/lanciabat.exe

    l'uso è semplice

    lanciabat nome_del_file.bat

    è un po'... rustico, ho dei clienti cui fare teleassistenza.
    vediamo se risolve

    codice:
    program lanciabat;
    {$APPTYPE CONSOLE}
    uses     shellapi,forms,sysutils,WinTypes;
    function WaitExecute(i_filedaeseguire:string;i_parametri:string;i_flagEsecuzione:cardinal):integer;
    
    var
       SEInfo: TShellExecuteInfo;
       ExitCode: DWORD;
       ParamString, StartInString: string;
    begin
       result:=-1;
    
       if i_filedaeseguire='' then exit;
       if not fileexists(i_filedaeseguire) then exit;
       FillChar(SEInfo, SizeOf(SEInfo), 0);
       SEInfo.cbSize := SizeOf(TShellExecuteInfo);
       with SEInfo do
       begin
         fMask := SEE_MASK_NOCLOSEPROCESS;
         Wnd := Application.Handle;
         lpFile := PChar(i_filedaeseguire) ;
         lpParameters :=pchar(i_parametri);
         nShow := i_flagEsecuzione // SW_HIDE;
       end;
       if ShellExecuteEx(@SEInfo) then
         repeat
           Application.ProcessMessages;
           GetExitCodeProcess(SEInfo.hProcess, ExitCode) ;
         until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
       result:=ExitCode;
    end;
    
    begin
       if paramcount=1 then
           WaitExecute(paramstr(1),'',SW_HIDE);
    end.

  9. #9
    grazie mille! ora lo provo...molto gentile!!

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.