Exe jako folder

0

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.

0

Nie ogarniam tego. Jak tego użyć ?

0

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ń.

0

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.

0

A ort! że może być bez cmd.

0

Czekaj, czyli do exe chcesz wstawić np. obrazek i ten obrazek otworzyć za pomocą zewnętrznego programu?

0

Tak. Np txt za pomocą notatnika.

0

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ś.

1

Może funkcja WinAPI typu ShellExecute? Więcej na MSDN.

0

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.

0

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.

5

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.

0

Ale przecież są programy do wypakowywania plików exe i sam nawet takiego używałem ( 7-ZIP).
A ort! że chcę zrobić coś takiego jak launch4j. Zaraz wam podał link do ort! w którym ktoś powiedział że pliki jar można zapakować w exe.

Oto on:
Domyślne ustawienie jara dla *.txt

4

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ć

0

Dzięki. Chyba skorzystam z %TEMP% ale to o ukrywaniu plików też może się przydać.

0

Ale jak coś skopiować do resources ( na stałe ).

0

Jakie IDE i jaki kompilator?

0

No ort! Borland.
Chodzi o to by ort! było podać jakiś folder i go tam w środku pozostawić.

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