Dobrý den, při vytváření programu (viz.níže) se mi vyskytl problém, že mi program nechce pokračovat dále po spuštění Notepadu (první podmínku mi to vyhodnotí dobře je-li spuštěný -větev else, není-li větev- if ). Moje vize je taková, že bych chtěl po spuštění znovu načíst handle okna, které už by bylo nenulové a pomocí příkazu goto skočit zpět nad podmínku if, která už by ale neplatila, a pokračovat ve větvi else. Budu rád za každou radu nebo návrh na jiné řešení... Předem děkuji za odpověď
Fórum › C / C++
Znovunačtení handle Notepadu
Příkaz system() je blokující - tzn. čeká, než se volaný příkaz dokončí - v tvém případě čeká, až ukončíš notepad. Řešením je notepad spouštět pomocí funkce CreateProcess, která neblokuje.http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx
a ještě bych doporučil předělat kód na do-while místo používání goto :)
#3 yaqwsx
Tu funkci CreateProcess jsem zkoušel, ale nefunguje mi to (pořádně nevím jaké parametry doplnit).Když jsem zkoušel trochu googlit výraz "CreateProcess example" tak skoro u každého příkladu byly 2 konecne parametry nejake struktury kterym nerozumím co přesně delají a jestli jsou tam vůbec důležité (myslím v mém případě).Mohl byste mi poradi co přesně mám doplnit a proč?? Popřípadě nějakou českou stránku...
#5 Jurda_I
Tady posílám ukázkový kód (který by měl přesně pasovat do tvé aplikace)
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
LPWSTR p = LPWSTR(prikaz.c_str());
if(!CreateProcess(NULL, // No module name (use command line)
TEXT("notepad.exe"), //Příkaz pro příkazovou řádku
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi )) // Pointer to PROCESS_INFORMATION structure
{
//Nastala chyba
cout << "Nastala chyba: " << GetLastError();
}
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Spustenie notepadu — založil qwerty
TXT otevření v notepadu — založil Zdenek
Odkaz na TXT ale spusteny v Notepadu — založil ReyMisterio
Co je HANDLE ? — založil Martin
Příkaz Handle — založil Paulí
Moderátoři diskuze