Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.29;
Скачать: CL | DM;

Вниз

ШАРИТЬ ПО ДИСКАМ ЗАПРЕЩЕНО   Найти похожие ветки 

 
ATLANTIDO ©   (2002-02-02 23:58) [0]

Всем всего доброго ! Товарищи программисты, вопрос
творческий и не конкретный. Ситуация такова : myprog
запускаеться как shell и больше ее никак не выпрешь,
а цель ее такова, что-бы пользователь никак не мог
полазить по дискам. Короче, я пишу что-то типа
проги для комп.клубов. Из моей проги можно открыть
только Инт.Експлорер, пару игр, и всякие бейсики и паскали.
Все прекрасно знают, как на диск через броузер зайти,
или открыть окно открытия файла в винампе и т.д.
Возможна ли такая штука ?


 
ATLANTIDO ©   (2002-02-03 00:41) [1]

Уточню вопрос :) - как узнать путь в строке адреса Експлорера
(не интернет а обычного).


 
ATLANTIDO ©   (2002-02-03 19:17) [2]

Вот вариант, только почемуто не работает :


procedure TForm1.Timer2Timer(Sender: TObject);
var
Wnd : hWnd;
buff: ARRAY [0..127] OF Char;
List1 : TStringList;
i : integer;
begin
if Copy(Get_URL("IExplore"),2,4)="file" then
begin
ShowMessage("file");
List1:=TStringList.Create;
List1.Clear;
WHILE Wnd <> 0 DO BEGIN
IF (Wnd <> Application.Handle) AND
IsWindowVisible(Wnd) AND
(GetWindow(Wnd, gw_Owner) = 0) AND
(GetWindowText(Wnd, buff, sizeof(buff)) <> 0)
THEN BEGIN
GetWindowText(Wnd, buff, sizeof(buff));
List1.Add(StrPas(buff));
END;
Wnd := GetWindow(Wnd, gw_hWndNext);
END;
for i:=0 to (List1.Count-1) do
begin
If Pos("Microsoft Internet Explorer", List1.Strings[i])<>0 then
PostMessage(FindWindow(Nil, PChar(List1.Strings[i])), WM_QUIT, 0, 0);
end;
end;

end;

...........................

function TForm1.Get_URL(Servicio: string): String;
var
Cliente_DDE: TDDEClientConv;
temp:PChar; //<<-------------------------This is new
begin
Result := "";
Cliente_DDE:= TDDEClientConv.Create( nil );
with Cliente_DDE do
begin
SetLink( Servicio,"WWW_GetWindowInfo");
temp := RequestData("0xFFFFFFFF");
Result := StrPas(temp);
StrDispose(temp); //<<-Предотвращаем утечку памяти
CloseLink;
end;
Cliente_DDE.Free;
end;


Может кто знает, в чем дело ?


 
Victor ©   (2002-02-04 05:29) [3]

а не проще будет отловить уже открытое окно?
допустим чтобы через браузер залесть надо в строке написать, например C:\windows и откроется окно с заголовком windows, а уже его мы легко закроем вот этой строкой
sendmessage(findwindow(nil"Имя окна "),wm_syscommand,sc_close,0);


 
Victor ©   (2002-02-04 05:35) [4]

извини после nil запятую забыл


 
Rem ©   (2002-02-04 10:17) [5]

Установить Win2k с NTFS, и указать права доступа к каждому дисковому ресурсу


 
ATLANTIDO ©   (2002-02-04 13:59) [6]

to Rem :
К сожалению Win2k никак не катит :( ...


 
ATLANTIDO ©   (2002-02-04 14:05) [7]

to Vicror:
Согласен, отслеживать путь в строке броузера
не всегда удаеться (если несколько окон), и тормозит
систему.
--------------------
Вопрос в другом:
А какой точно будет caption (имя окна) ?
Ведь пользователь может написать c:\windows а может
и c:\program files ?


 
ATLANTIDO ©   (2002-02-05 00:34) [8]

Сам отвечу на свой вопрос :
GetWindowTextLength, проверить Pos"ом на наличие
"Microsoft Internet Exlorer".



 
ATLANTIDO ©   (2002-02-05 00:36) [9]

P.S : + GetWindowText конечно :)



Страницы: 1 вся ветка

Текущий архив: 2002.04.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
7-94596
ураган
2002-02-04 22:38
2002.04.29
помогите написать дрова


3-94317
AndreyP
2002-04-09 13:23
2002.04.29
Показ результата выборки


3-94269
Reporter*
2002-04-07 21:59
2002.04.29
Вопросы, связанные с Fast Report


4-94608
Королев
2002-02-14 11:24
2002.04.29
при импортировании функций из DLL с помощью Tdump ...


4-94625
alexey1
2002-02-23 20:06
2002.04.29
хуки и shellproc