Jak zamknac folder nie znajac nazwy, ani sciezki ?

0

w jaki sposob zamknac folder w ktorym jest program ? Chodzi o to, ze gdy ktos wejdzie do folderu w ktorym jest program to sie od razu zamknie... nie znajac nazwy, ani sciezki... mozna takie cos zrobic ?

0

Eee "zamknąć folder"? :|

Hint: ExtractFilePath(Application.ExeName) - ścieżka, w której znajduje się program

0

hmmm wymacilem takie cos, ale nie chodzi... :(

h := FindWindow(nil, Pchar(ExtractFilePath(Application.ExeName)));
if IsWindowVisible(h) then
    PostMessage(h, WM_CLOSE, 0, 0)
    else if IsWindowVisible(ham) then
    PostMessage(h, WM_QUIT, 0, 0) else;

w czym tkwi problem ?

0

W tym, że okno nie jest programem?

0

nie nie... program jest tylko w folderze w ktorym sa jakies pliki... podczas proby wejscia folder od razu sie zamyka...

wiec w jaki sposob to zrobic ? :>

moze by tam znajac sciezke wyciagnac CAPTION okna i zamknac okno poprzez uchwyt ?

0

idea piękna, ukrycia własnego programu, aczkolwiek nie każda aplikacja pokazuje na pasku tytułu nazwę ścieżki w której jesteś. Kto się domyśli wejdzie do tego folderu z jakiegoś Windows Commandera albo innego takiego programu.
Uparci mogą to nawet z Notatnika zrobić. Wystarczy posłużyć się Open dialog box-em jak explorerem. ale nie klikać 2x ;P

jak chcesz zabronić dostęp do folderów to masz partycje NTFS i jej cudowne właściwości folderów prywatnych, są też odpowiednie programy do ukrywania folderów. możesz też zrobić niewidzialny folder ;P
przeźroczysta ikonka i nazwa złożona ze znaku ASCII 255 albo kilku takich

0

co, znów ukrywanie trojanów? To się robi prost0 - hook na odpowiednie api i filtrowanie tego co przez nie przechodzi...

0

zaden trojan :) to ma byc programik ochronny danych w folderze... ja nie chce ukryc program... ja chce zabronic dostepu do folderu w ktorym jest program (bo tam sa dane)... mam NTFS ale ta opcja jest dla mnie niedostepna... :( wiec najprosciej bylo by zamykac ten folder z programem... :) tylko problem z wykonanienm :P brak pomyslu :P

0

Ale ktoś nie wejdzie przez explorera i nic nie zrobisz - a nie będziesz implementował zamykanie wszystkich managerów plików przecież :)

0

nie wszyscy sa tak bardzo blyskotliwi :P dlatego sam Explorer wystarczy mi zamykac :) tylko jak jak jak ? :>

0

ta ochrona danych przypomina mi zabezpieczenia Internet Explorera...

skorzystaj ze sprawdzonych rozwiazan - szyfrowanie nie robi niespodzianek, jezeli nikt nie zlamal jakiegos algorytmu np. od 94 roku, to jest prawie niemozliwe zlamanie tego bez wykladania ogromnych (na prawde ogromnych) pieniedzy

0

no tak :) ale jak bedzie z tym zamykaniem folderka z programem ? najbardziej mi na tym zalezy :) aby wlasnorecznie to w delphi wymacic :)

0
deus napisał(a)

To się robi prosto - hook na odpowiednie api i filtrowanie tego co przez nie przechodzi...
</quote>

0
rokumulach napisał(a)

aby wlasnorecznie to w delphi wymacic :)

Skoro własno ręcznie, to napisz to własnoręcznie, a nie własnoręcznie skopiować kod, który Ci ktoś ma podać :) deus dał już wskazówki.

0

a mozesz cos wiecej powiedziec deus ? nigdzie nie napisalem, ze chce kod... potrzebuje tylko wiecej informacji, aby móc to napisac, bo mam problem z zlapaniem...

0

ładujesz swój kod w proces explorera - polecam dll'kę - kiedyś podawałem nawet prockę do ładowania dll'ki do otwartego procesu. Potem jedziesz po IAT procesu i wyszukujesz po adresach interesujące Cię funkcje - w ich miejsce wstawiasz własne, filtrujące. 'Ciekawe' funkcje to SetCurentDirectory, FindFirstFile, FindNextFile, kilka shell'api. Jeżeli w danym wywołaniu funckji chodzi o 'chroniony' folder to albo zwracasz błąd albo - jak w przypadku FindNextFile - wywołujesz oryginalny kod jeszcze raz. Ale takie działanie ma jedną wadę - jest jest lokalne, tylko dla jednego procesu. Lepszym wyjściem będzie jakiś globalny hook powodujący mapowanie dll'ki we wszystkich procesach. Potem nadpisanie początku funkcji z danych bibliotek i tyle. Gdzieś to chyba kiedyś na forum było nawet omawiane.

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