» Poradna » Programy

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

Odpovědět  |  Zobrazit bez stromu  |  Upozornit redakci  |  nových odpovědí: 5/5
 |   |   |  [62.197.192.---]

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

 |   |   |  [217.197.156.---]

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
 |   |   |  [217.119.117.---]

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
 |   |   |  [62.197.192.---]

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
 |   |   |  [195.28.87.---]

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


Dnes je Black Friday: Přehled slev na elektroniku a počítače

Dnes je Black Friday: Přehled slev na elektroniku a počítače

** Začala slevová mánie zvaná Black Friday ** Pozor, ne všechny slevy jsou opravdu výhodné ** Průběžně sledujeme slevové akce v počítačových e-shopech

22.  11.  2017 | David Polesný | 37

Google Mapy mají nový design. Líbí se vám víc než předchozí? Tady je srovnání

Google Mapy mají nový design. Líbí se vám víc než předchozí? Tady je srovnání

** Nový design Google Map přijde na počítače i mobilní telefony. ** Zaměřuje se na zvýraznění konkrétních míst, mapové podklady jsou mnohdy upozaděné. ** Lépe pracuje s chráněnými oblastmi a parky.

20.  11.  2017 | Vladislav Kluska | 30

Microsoftu se invaze na Android daří, jeho launcher aktivně používá přes milion lidí

Microsoftu se invaze na Android daří, jeho launcher aktivně používá přes milion lidí

** Microsoft se zabydluje na platformě Android ** Nedávno představený launcher už používá milion uživatelů ** Je to stále jen zanedbatelný zlomek uživatelů Androidu, ale slibný růst

22.  11.  2017 | Vladislav Kluska | 35

Co je to láska? Milujeme se pouze kvůli chemickým látkám, nebo je v tom něco víc?

Co je to láska? Milujeme se pouze kvůli chemickým látkám, nebo je v tom něco víc?

** Co je to vlastně láska? Dá se vysvětlit vědecky? ** Výzkum ukázal, že zamilovaní jedinci mají mj. zvýšenou hladinu fenyletylaminu a množství testosteronu ** Je ale rozdíl mezi zamilovaností a láskou

21.  11.  2017 | Vojtěch Malý | 22


Aktuální číslo časopisu Computer

Otestovali jsme 5 HDR 4K televizorů

Jak natáčet video zrcadlovkou

Vytvořte si chytrou domácnost

Radíme s koupí počítačového zdroje