» Poradna » Programy

Int i = system(program.exe) ...nechcem aby otvaral CMD

 |   | 

ako to mam spravit, neviete mi niekto poradit ? Robim aplikaciu v Visual Studiu. Skusal somCreate proces, z toho vsak neviem v tom pripade hodnotu i(je hodnota ktoru vrati to execko, neni ani v errno, ...nikde ) Poradte PLS. Dakujem.

Odpovědi na otázku

 |   | 

Ve VisualBasicu je funkce "shell", kterou volám takhle:

i=shell("program.exe parametry_k_programu",vbHide)

netuším, jak je to u tebe, ale zkus se mrknout po doplňkových parametrech příkazu "system"

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

no system praveye nema ani moc doplnkove parametre ...praveye .. :(

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

CreateProcess je ok, a potom pouzi GetExitCodeProcess..
.. nejaky vhodny exampel najdes na webe

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

STARTUPINFO siStartupInfo;
PROCESS_INFORMATION piProcessInfo;
DWORD *Result;
Result = new DWORD;
*Result = 0;
memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));
siStartupInfo.cb = sizeof(siStartupInfo);
LPTSTR parametre = "..\\out\\program.exe";
LPTSTR parametre2 = "PARAMETRE1 PARAMETRE2";
if(CreateProcess(parametre, parametre2, 0, 0, FALSE, CREATE_DEFAULT_ERROR_MODE, 0, 0, &siStartupInfo, &piProcessInfo) == FALSE)
::AfxMessageBox("nepodarilo sa pustit to execko");
int e_errno_i = errno;
WaitForSingleObject(piProcessInfo.hProcess, INFINITE);
CString e_errno = strerror(errno);
int e_doserrno = _doserrno;
int e_sys_nerr = _sys_nerr;
CloseHandle(piProcessInfo.hThread);
CloseHandle(piProcessInfo.hProcess);
GetExitCodeProcess(piProcessInfo.hProcess, Result);

no takto nejako to aj pouzivam, no vrati to stale nulu(co by teda urcite nemalo, system("program.exe") vrati to co ma ...akorat to cmd ma stve ...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

No iste, kedze zavolas CloseHandle() na proces pred zistenim jeho exit-code, je hProcess handle uz, potom, neplatna. Ved si mkrni na GetLastError() po tvojom volani GetExitCodeProcess() a zistis, ze ti vrati invalid_handle_value a GetExitCodeProcess() urcite vracia FALSE.

Souhlasím  |  Nesouhlasím  |  Odpovědět




Určitě si přečtěte

15 věcí, které umí Windows 10, ale možná o nich vůbec nevíte

15 věcí, které umí Windows 10, ale možná o nich vůbec nevíte

** Systém Windows 10 umí spoustu užitečných drobností ** O mnoha praktických funkcích pravděpodobně ani nevíte ** Poznejte užitečné tipy, které se vám mohou hodit každý den

Vladislav Kluska | 33

Našli jsme 22 schopných internetových prohlížečů: Vyberte si, který vám nejvíc sedne

Našli jsme 22 schopných internetových prohlížečů: Vyberte si, který vám nejvíc sedne

** Není jen Chrome, Firefox, Edge či Opera. Na výběr máte mnohem více! ** Internetové prohlížeče se liší funkcemi, zaměřením i designem. Našli jsme 22 použitelných prohlížečů pro Windows ** Vyberte si prohlížeč, který vám bude nejvíce vyhovovat

Karel Kilián | 30

Rekordy počasí: V Česku to ještě jde, skutečné extrémy zažívají jinde

Rekordy počasí: V Česku to ještě jde, skutečné extrémy zažívají jinde

** Teplotní extrémy dokážou překvapit. Seznamte se s rekordy v Česku i ve světě ** Rekordní hodnoty jsou mnohdy až k neuvěření ** Zjistěte, kdy ke bylo největší horko, zima, déšť či vítr

Karel Kilián | 7

Alan Turing: Genius, který matematicky stvořil počítač

Alan Turing: Genius, který matematicky stvořil počítač

Řešením matematického problému se dostal k modelu teoretického stroje, který nese jeho jméno a je základem logiky univerzálních počítačů.

Pavel Tronner | 56


Aktuální číslo časopisu Computer

Kdy necháme řídit chytrá auta?

6 Wi-Fi Mesh systémů ve velkém testu

Srovnali jsme 7 sportovních kamer

Znáte pravidla pro létání s drony?