Exe jako folder

XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
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.

PR
  • Rejestracja:około 11 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Pomorskie (Stare Kabaty)
0
edytowany 3x, ostatnio: Proxima
XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
0

Nie ogarniam tego. Jak tego użyć ?

PR
  • Rejestracja:około 11 lat
  • Ostatnio:4 miesiące
  • Lokalizacja:Pomorskie (Stare Kabaty)
0

Z tego co zrozumiałem chcesz z programu wywoływać jakieś polecenia cmd.

Kopiuj
system("dir") // wywołuje dir w powłoce systemowej

Wpisujesz w parametrze po prostu to, co chcesz aby zostalo przekazane do konsoli poleceń.

edytowany 3x, ostatnio: Proxima
XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
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.

XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
0

A <ort>załużmy</ort> że może być bez cmd.

edytowany 1x, ostatnio: flowCRANE
ProCasher
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 10 lat
  • Postów:21
0

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

XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
0

Tak. Np txt za pomocą notatnika.

XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
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.

XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
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.

Westen
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 5 lat
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.

edytowany 1x, ostatnio: flowCRANE
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 2 godziny
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.

XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
0

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.

Oto on:
http://4programmers.net/Forum/Java/246532-domyslne_ustawienie_jara_dla_*txt?p=1109011#id1109011

edytowany 5x, ostatnio: ŁF
Westen
Poczytaj o plikach PE przestań pisać głupoty.
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ć

Azarien
tak, pomyślałem o tym podczas pisania powyższego posta, ale nie wspomniałem bo to się nie nadaje. zbyt łatwo w niewidoczny sposób stracić tak "przyczepione" dane.
XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
0

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

XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
0

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

edytowany 2x, ostatnio: Xix
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 2 godziny
0

Jakie IDE i jaki kompilator?

XI
  • Rejestracja:około 10 lat
  • Ostatnio:około 9 lat
  • Postów:231
0

No <ort>morze</ort> Borland.
Chodzi o to by <ort>morzna</ort> było podać jakiś folder i go tam w środku pozostawić.

edytowany 1x, ostatnio: msm
Westen
"morze" - jest głębokie i szerokie
Westen
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 5 lat

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.