Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Вниз

ШАРИТЬ ПО ДИСКАМ ЗАПРЕЩЕНО 


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 конечно :)




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.033 c
3-94306           Seri                  2002-04-05 07:02  2002.04.29  
Не полная(целая) строка в DBGrid


14-94541          Knight                2002-03-21 13:21  2002.04.29  
вопросик имеется... типа


7-94582           Back                  2002-02-01 01:06  2002.04.29  
H_E_L_P_!


1-94484           Чел - программер      2002-04-16 14:56  2002.04.29  
НАРОД! Кто-нибудь знает, как обратиться к строке в memo, не ...


1-94463           Дмитрий_Ч             2002-04-16 11:38  2002.04.29  
А может ктото знает как оживить форму фоном.