Wywołanie pliku zewnętrznego z pewnymi właściwościami

0

Wiem że pliki zewnętrzne otwiera się w konsoli najprościej z funkcją:

system("start [...]");

Chciałbym jednak, aby PLIK URUCHAMIAŁ SIĘ W TLE.
Czy jest sposób, aby to wykonać? Czy system() obsługuje jakieś dodatkowe parametry funkcji?

Z góry dziękuję.

0

CreateProcess

0

Cóż, powiem że informacje na MSDN nieco mnie przytłoczyły i nawet przykład od nich mi tego nie rozjaśnił. Wiem że CreateProcess ma 10 parametrów, tylko nie wiem też który odpowiada za sposób jego uruchamiania (może ProcessAttributes?).

0

A od czego masz słownik?

Pierwsze zdanie opisu argumentu, który przytoczyłeś: "A pointer to a SECURITY_ATTRIBUTES structure that determines whether the returned handle to the new process object can be inherited by child processes."

Co w ogóle oznacza "uruchomienie pliku w tle"? Uruchomienie procesu bez widocznych okien?

Jeżeli aplikacja, którą chcesz uruchomić jest aplikacją konsolową i nie chcesz, żeby pojawiło się okno konsoli to ustawiasz argument dwCreationFlags na flagę CREATE_NO_WINDOW.
Jeżeli jest to zwykła aplikacja okienkowa korzystasz z argumentu lpStartupInfo, pola dwFlags struktury STARTUPINFO i flagi STARTF_USESHOWWINDOW, która pozwala na ustawienie pola wShowWindow struktury STARTUPINFO na SW_HIDE.

W tym drugim przypadku nie masz tak naprawdę pewności czy okno się nie pojawi. W teorii powinno tak być, tj. aplikacja powinna wziąć pod uwagę parametr nCmdShow, który zostanie przekazany w funkcji WinMain i użyć go podczas tworzenia głównego okna programu. W praktyce nie zawsze się tak dzieje. Jeżeli tak będzie w przypadku aplikacji, którą używasz, będziesz musiał zastosować inne metody, z którymi i tak najprawdopodobniej sobie nie poradzisz, jeżeli nie potrafisz korzystać z dokumentacji :(.

0

Chodziło mi oto, że mój program w konsoli będzie wyżej w hierarchii okien od pliku zewnętrznego. Tzn. że domyślnie zaznaczonym obszarem pracy dalej będzie konsola.

Udało mi się wykminić takie coś, jednak się nie kompiluje (załączyłem windows.h i WIN32_LEAK_AND_MEAN).

WINAPI CreateProcess ("C:\ilnicki_studios\dlc\rumun_combat_data\combat_music.mp3",
                          NULL,
                          NULL,
                          NULL,
                          FALSE,
                          BELOW_NORMAL_PRIORITY_CLASS,
                          NULL,
                          NULL,
                          STARTUPINFO.wShowWindow->SW_HIDE,
                          &pi
    );
0

Wytłumacz mi co to znaczy "wyżej w hierarchii okien od pliku zewnętrznego". Narysuj najlepiej.

0

Jadeszek ci to wytłumaczył. Mój program ma być ciągle na wierzchu, bo po uruchomieniu pliku zewnętrznego okno zostaje przysłonięte i nieaktywne.

0

Białe okno to mój program. Szare to plik zewn. Tak ma być:
user image

0

Rysunek rozjaśnił sprawę?

1 użytkowników online, w tym zalogowanych: 0, gości: 1