logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Delphi: Jak skopiować plik po zakończeniu pracy aplikacji DOS?

MCbx 30 Maj 2006 14:54 1011 3
REKLAMA
  • #1 2679181
    MCbx
    Poziom 28  
    Posty: 1541
    Pomógł: 14
    Ocena: 26
    Mam program w Delphi, któy odpala DOsową aplikacj.e Aplikacja tworzy plik i zapisuje do niego dośc długo.
    Chodzi mi o to, żeby po zapisywaniu ten plik został gdzieś skopiowany. Jak uruchomię kopiowanie gdy plik zaistnieje, nie skopiuję, gdyż nie będzie się mógł dobrac do pliku, w którym program zapisuje dane.
    Jak to rozwiązać? Może byc tak, że kiedy program nazwa.exe zakończy prace.

    Druga sprawa - czy można z poziomu programu w Delphi przejąc kontrolę nad programem konsolowym i wyświetlać jego komunikaty gdzieś w oknie programu, czy automatycznie wprowadzać do niego dane (jak z klawiatury)?

    Jeszcze jedno - jak wywołać dialog wyboru katalogu? ale katalogu, ten z drzewem, nie otwierania pliku.
  • REKLAMA
  • #2 2680341
    havoc666
    Poziom 12  
    Posty: 26
    Pomógł: 1
    Ocena: 2
    jesli dobrze zrozumialem pytanie, to nie starczy zamkniecie pliku przed kompiowaniem? (na chwile tylko)
  • REKLAMA
  • #3 2681385
    MCbx
    Poziom 28  
    Posty: 1541
    Pomógł: 14
    Ocena: 26
    A jak ja zamknę plik, skoro go nie otworzyłem?
    Plik robi inny program. własciwie moja robótka w Delphi to Windowsowa "powłoka" konsolowego programu, który w dodatku nie działa jak nazwa pliku ma więcej niż 8 znaków.

    Więc konwersja z pliku a do b odbywa się tak:
    1. Użytkownik wskazuje miejsce i pliki a (źródłowy) i b - docelowy.
    2. Na wypadek gdyby pliku a nie połknął DOsowiec (nazwa a >8znaków), plik kopiowany jest do katalogu programu pod nazwą temp.xxx
    3. Program wywoływany jest na plik temp.xxx, i jako plik wynikowy na sztywno zapisane jest temp.wyn, bo jak nazwa "b" będzie >8znaków nie połknie.
    4. Plik temp.wyn jest kopiowany do ścieżki b - zapisu już pod podaną nazwą.

    I na czwórce mam ten problem - Delphi musi poczekać z kopiowaniem, aż ten DOSowiec skończy.
  • #4 2697180
    MCbx
    Poziom 28  
    Posty: 1541
    Pomógł: 14
    Ocena: 26
    Załatwiłem sprawe badając co 4 sekundy (Timer) aktywne procesy, i czy jest NTVDM (WinXP) albo WINOA386 (Win98).

    Macie jakieś pomysły z przejęciem kontroli nad programem DOS? Ma to wyglądać tak:
    - program jest uruchamiany
    - wbijana jest jak z kalwiatury odpowiednia kombinacja znaków w odpowiedniej kolejności, coś w stylu "N, enter, y, enter, 1, enter".

    Ponadto, czy jest możliwe, żeby zawartośc okienka pokazywana była w oknie programu "na żywo"?
REKLAMA