Formas de iniciar um programa ao mesmo tempo que cmd

0

Eu estou em um dilema: quando eu quero iniciar um programa ao mesmo tempo que outro programa, meu MO normal é fazer um arquivo de lote que seja algo como isto:

@ echo off
start exe1.exe
start exe2.exe
exit

Eu compilo o arquivo em lote e renomeio o programa original para exe1.exe e o arquivo em lotes (compilado) para o nome do programa original (para manter os atalhos funcionando). Infelizmente, agora preciso iniciar um programa ao mesmo tempo que o cmd. Modificar o próprio cmd parece estar fora de questão, e eu não quero me prender a escrever um programa multi-thread para monitorar os processos atualmente em execução. Alguém tem algumas dicas? Eu estava pensando em usar o agendador de tarefas, mas não tenho certeza do que fazer com ele ... Obrigado! Estou usando o Win 7 e realmente não quero mais software de terceiros aqui do que preciso ....

Nota: Isso não pode ser apenas um programa que inicia o cmd e, em seguida, outro programa. CADA TIME cmd abre, este programa precisa abrir também. Mesmo entrando em C:\Windows\System32 e manualmente em execução, isso deve resultar na execução do meu outro programa.

    
por KnightOfNi 20.10.2014 / 23:23

4 respostas

1

Da ajuda do CMD.EXE:

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
    [[/S] [/C | /K] string]

...
/D      Disable execution of AutoRun commands from registry (see below)
...

If /D was NOT specified on the command line, then when CMD.EXE starts, it
looks for the following REG_SZ/REG_EXPAND_SZ registry variables, and if
either or both are present, they are executed first.

    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

        and/or

    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

Então você deve ser capaz de criar a entrada de registro com um comando para iniciar seu programa.

    
por 21.10.2014 / 23:22
0

Sim, adulterar %windir%\system32\cmd.exe é perigoso. Você se sente confortável com a modificação do (s) atalho (s) usado (s) para executar cmd ?

Se você digitar cmd /? , receberá uma mensagem de uso que inclui:

CMD [other options …] [[/S] [/C | /K] string]

/C      Carries out the command specified by string and then terminates
/K      Carries out the command specified by string but remains
/S      Modifies the treatment of string after /C or /K (see below)

(e mais abaixo fala sobre como /S modifica a interpretação de citações na string de comando).

Então, se você criar um atalho cuja caixa Destino diga algo como

%windir%\system32\cmd.exe /k "%ProgramFiles%\Windows NT\Accessories\wordpad.exe"

então, toda vez que você invocar esse atalho, ele iniciará um prompt de comando, e o cmd iniciará um processo do WordPad (e, em seguida, emitir um prompt e ler os comandos do terminal, como de costume). Como na sua pergunta, talvez seja necessário incluir start na sequência de comandos após cmd.exe /k .

    
por 20.10.2014 / 23:43
0

Por favor, tente usar o Agendador de Tarefas para conseguir isso. As etapas são dadas abaixo.

Abra o Agendador de tarefas > Guia Ações > Criar tarefa > Nomeie a tarefa > Ir para a guia Triggeres > clique em Novo > selecione "Em um evento" na lista suspensa Log down > Digite a Source e Event ID de cmd, quando for aberto > Ir para a guia Ação > Digite o caminho do outro programa que você deseja iniciar.

Espero que isso ajude.

    
por 20.10.2014 / 23:37
0

Eu posso não entender a pergunta, mas eu apenas mandei uma mensagem como um arquivo de lote padrão (não compilado) e funcionou.

@ echo off start exe1.exe start cmd exit

O que abriu uma nova janela cmd ao mesmo tempo que meu aplicativo de teste. (Eu usei algo diferente de exe1.exe).

Um shell cmd pode abrir um novo shell cmd.

    
por 22.10.2014 / 02:59