Ukrycie belki innego programu na pasku zadań

Odpowiedz Nowy wątek
2011-09-20 19:07
0

Chodzi o problem jak w temacie. Czy coś takiego jest w ogóle możliwe w Delphi?
Spokojnie - nie piszę wirusa, trojana czy innego paskudztwa. Mam pewien programik "konsolowy" (obsługiwany z poziomu linii komend), i chcę napisać do niego GUI (czyli interface graficzny). Chciałbym koniecznie ukryć moment gdy korzystam z tego programu, tak by nie otwierało się nowe okno (klasyczny CMD). Wiem jak pozbyć się samego okienka, ale mimo wszystko podczas wywoływania zewnętrznego programu, wyświetla się belka na pasku zadań - a tego chciałbym uniknąć.
Da się to zrobić? A może jest jakiś inny sposób, by okno w ogóle się nie wyświetlało? (ani na belce, ani na pulpicie).

edytowany 2x, ostatnio: olesio, 2011-09-20 19:44

Pozostało 580 znaków

2011-09-20 19:31
1

A próbowałeś skorzystać z komponentu TDosCmmand? Wtedy operujesz programem i żadne okno konsolowe się nie pokazuje. Ja tego komponentu użyłem tylko raz w swoim programie, w celu wywołania konsolowego rar.exe spakowanie nim pliku i pobierania cyfr postepu z konsoli, a nastepnie przekonwertowania ich na Integer i pokazania jako postęp na ProgressBarze. Może jest też inny sposób, ale widze, że wywoływanie procesu nawet z flagą SW_HIDE nic nie daje. Jeżeli ktoś zna inny sposób i dotrze do tego tematu to pewnie Tobie takowy wskaże.


Pozostało 580 znaków

2011-09-20 19:48
0

Działa, dzięki :). Może niezbyt "eleganckie" rozwiązanie (wszak ambitny programista nie ucieka się do takich metod ;P) ale zawsze coś.
Żeby nie zakładać nowego tematu, czy ten komponent potrafi też przechwytywać jakieś informacje z linii komend? Np. To co normalnie wyświetliło by się w CMD, wyświetlić w memo? To był by dobry sposób na "komunikację" pomiędzy moją aplikacją, a tym programikiem.

EDIT:
Nie jestem orłem w sprawach linii komend, więc mam problem. Mogę odpalić program, który znajduje się w tym samym folderze co exe do mojej aplikacji. A jak odpalić coś z innego folderu? Wpisuję tam: "C:\program\start.exe" a potem execute, ale nie działa. Jak to załatwić?

EDIT2:
Już mam, ten komponent sprawia, że mój program staje się jakby tamtym programem zewnętrznym (przejmuje jego parametry) Super ;)

edytowany 2x, ostatnio: Crow, 2011-09-20 20:37

Pozostało 580 znaków

2011-09-20 19:48
0

Albo jak Ci się chce klepać to poszukaj na temat funkcji CreatePipe (zresztą wspomniany TDosCommand prawdopodobnie też tego używa).


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
Dokładnie, wspomniany komponent korzysta z owej funkcji. - olesio 2011-09-20 20:42

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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