Jak sprawić by w mojej aplikacji znajdowały się pliki i jak można je potem otworzyć za pomocą innych programów ( najlepiej komendami z cmd ). Na przykład ktoś otwiera mój program a otwiera się notatnik lub przeglądarka fotografii z otwartym plikiem który jest w moim exe. Chciałbym też uwzględnić że ktoś może zmienić nazwę mojemu exe.
Exe jako folder
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Pomorskie (Stare Kabaty)
Może funkcja system()?
http://www.cplusplus.com/reference/cstdlib/system/
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Pomorskie (Stare Kabaty)
Z tego co zrozumiałem chcesz z programu wywoływać jakieś polecenia cmd.
system("dir") // wywołuje dir w powłoce systemowej
Wpisujesz w parametrze po prostu to, co chcesz aby zostalo przekazane do konsoli poleceń.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
Tak ale dzięki nim chcę otworzyć mój exe. Po prostu do exe podobno mażna pakować inne pliki. Chciałbym tak zrobić ale też móc otwierać te pliki
za pomocą domyślnego programu. Chcę to zrobić w cmd bo komend cmd mogę używać w wielu językach.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 21
Czekaj, czyli do exe chcesz wstawić np. obrazek i ten obrazek otworzyć za pomocą zewnętrznego programu?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
Było chyba coś takiego że żeby dostać się do środka to trzeba zrobić z ukośnikiem na początku "/nazwaplkiku.txt" ale jak go otwożyć za pomocą czegoś.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
No może być bez cmd byle był folder. Wiem jak korzystać z samego cmd w moim programie ale chodzi mi o to bym jeszcze mugł się dostać do wnętrza mojego exe. O to głównie.
- Rejestracja: dni
- Ostatnio: dni
Ty chyba nie rozumiesz jak działa plik exe. To nie jest kontener w którym są dane , które <ort>bez problemowo</ort> można wyciągać. Oczywiście istnieją programy do odzyskiwania zasobów aplikacji ale to się opiera o RE i trzeba na to więcej wiedzy niż same postawy.
Ale jeśli ma ktoś jakiś super pomysł to posłucham.
- Rejestracja: dni
- Ostatnio: dni
Możesz dołączyć plik do exeka jako tzw. zasób (resource), a podczas uruchomienia zapisać plik z zasobu do katalogu tymczasowego (%TEMP%) i odpalić program ze ścieżką do pliku jako parametrem. Potem wypadałoby plik usunąć z tempa.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
Ale przecież są programy do wypakowywania plików exe i sam nawet takiego używałem ( 7-ZIP).
A <ort>załużmy</ort> że chcę zrobić coś takiego jak launch4j. Zaraz wam podał link do <ort>wontku</ort> w którym ktoś powiedział że pliki jar można zapakować w exe.
- Rejestracja: dni
- Ostatnio: dni
no tak - plik .jar jest pakowany tam właśnie jako zasób, potem przy uruchomieniu aplikacja sama z siebie go rozpakowuje i uruchamia wirtualną maszynę javy podając ten plik jako parametr
nie sprawdzałem, ale możliwe że poszli po linii najmniejszego oporu czyli plik jest po prostu wypakowywany do tempa, chociaż możliwe że dzieje się to w pamięci (wyższa szkoła). Tak działają pakery takie jak na przykład upx - binarka jest pakowana jako zasób, a potem wypakowywana bezpośrednio do pamięci po czym tylko leci do niej skok
jako ciekawostkę powiem że w pliku .exe jak i każdym innym faktycznie można ukryć inne pliki jako alternatywne źródła (dotyczy tylko systemu plików NTFS)
załóżmy że masz plik tekstowy a.txt (równie dobrze to może być plik a.exe) oraz zdjęcie a.jpg które chcesz ukryć
w konsoli piszesz:
type a.jpg >a.txt:ukryty.jpg
i oto plik a.jpg zostaje zapisany jako alternatywny strumień w pliku a.txt
można go otworzyć na przykład w paincie poleceniem:
mspaint a.txt:ukryty.jpg
jeżeli ukryłeś plik .exe to możesz go uruchomić poleceniem:
start .\a.txt:ukryty.exe
strumienie będą się kopiować i przenosić razem z plikiem dopóki robisz to między partycjami w systemie plików NTFS
jeżeli spakujesz plik to strumienie nie zostaną zachowane, chyba że w kompresorze zaznaczysz odpowiednią opcję - w WinRarze jest to opcja Save file streams na zakładce Advanced
niestety nie każdy program obsługuje alternatywne strumienie i nie każdy ma partycję w systemie plików NTFS więc rozwiązanie jest mało powszechne
tak naprawdę jedyne realne zastosowanie alternatywnych strumieni to zapisanie w nich informacji przez przeglądarkę że plik został pobrany z Internetu - właśnie dzięki temu system przy próbie otworzenia .exe pobranego z sieci pyta się czy na pewno chcemy to zrobić
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
Dzięki. Chyba skorzystam z %TEMP% ale to o ukrywaniu plików też może się przydać.
- Rejestracja: dni
- Ostatnio: dni
Jakie IDE i jaki kompilator?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 231
No <ort>morze</ort> Borland.
Chodzi o to by <ort>morzna</ort> było podać jakiś folder i go tam w środku pozostawić.
- Rejestracja: dni
- Ostatnio: dni