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
![](img/forum_vlakno_help_vyreseno.png)
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();
}
![](img/forum_nove_psp_new.png)
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
![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/32.gif)
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