Преобразование .bat в .exe независимо от cmd.exe

У меня есть летучая мышь для выполнения всех файлов в папке каждые 15 секунд. Мне нужно сделать его .exe, чтобы запустить его как скрытое приложение. Я преобразовал его в .exe с помощью конвертера bat в exe и других программ, и я вижу, что во всех них, когда я запускаю .exe, например, Load.exe, автоматически запускается cmd.exe в то же время. Если я убью Load.exe, он все равно продолжит работать, пока я не убью cmd.exe.

Итак, могу ли я сделать .exe из .bat, не завися от cmd.exe?


person Isdera    schedule 19.08.2013    source источник
comment
Я вижу, вы пометили это как C++. Если вы знаете этот язык, используйте его для переноса командного файла в exe. #include <iostream> и вперед.   -  person Bathsheba    schedule 19.08.2013
comment
Вы можете создать программу на C++, которая вызывает систему, используя функцию system. Я не знаю, зависит ли это от cmd.exe или нет.   -  person Neil Kirk    schedule 19.08.2013
comment
Что делает командный файл? Что бы определить, насколько легко (или сложно) его так перевести. Но его, безусловно, можно написать на C или C++.   -  person Mats Petersson    schedule 19.08.2013
comment
Пакет выполняет все файлы в определенной папке каждые 15 секунд. Я использую это для удаленной отправки заказов на другие компьютеры, а затем они выполняют эти заказы локально, с помощью этой летучей мыши. Я плохо разбираюсь в С++, поэтому я спросил, возможно ли это, потому что у меня есть другие процессы, которые постоянно убивают cmd.exe, поэтому мне нужно сделать его .exe   -  person Isdera    schedule 19.08.2013
comment
Операционная среда ваших компьютеров звучит ужасающе. Тем не менее, то, что вы хотите, выполнимо на C++, но вам придется изучить C++ и немного API Windows, чтобы выполнить эту работу. Не используйте system(), так как это просто вызывает cmd.exe. Вам придется использовать все, что Windows дает вам, что соответствует fork и execv.   -  person Joe Z    schedule 19.08.2013
comment
Вы можете использовать CMDOW, чтобы скрыть пакетное окно. Некоторые AV-программы классифицируют его как хакерский инструмент, но он должен выполнять свою работу.   -  person foxidrive    schedule 19.08.2013


Ответы (2)


Короткий, но правильный ответ: нет, нельзя.

person Endoro    schedule 19.08.2013

Я не знаю, зависит ли это от CMD или нет (вероятно, нет), но вы можете использовать систему функций C++ для выполнения каждой строки вашего .bat-файла.

Сделайте что-то вроде:

#include <stdlib.h>

int main()
{
  system("<batch command goes here>");
  return 0;
}

Одновременно вы можете добавить каждую строку файла .bat в системную функцию и выполнить ее как программу CPP/C.

person Chetan Bhasin    schedule 19.08.2013
comment
Спасибо за помощь. Но я пробовал, и он также запускает cmd.exe - person Isdera; 20.08.2013
comment
Если это не сработает, то я боюсь, что единственный способ сделать это - узнать, что делает каждая пакетная команда, которую вы хотите внедрить, и написать для нее отдельный код C. - person Chetan Bhasin; 20.10.2013
comment
Спасибо. Наконец то, что я сделал. - person Isdera; 12.11.2013