Текущий архив: 2003.08.25;
Скачать: CL | DM;
Вниз
---|Ветка была без названия|--- Найти похожие ветки
← →
DVM © (2003-01-20 17:28) [80]у меня окна нормально сворачиваются. Я для этого ничего и не делал специально.
> DeadMeat
Вы их как сворачиваете то?
> msts
А куда они по вашему должны деваться?. Они вообще по идее исчезать должны (это же не Win31). Или они и потом при восстановлении оказываются сзади? Тогда значит вы неправильно реализовали свой "рабочий стол". Не держится он у вас на заднем плане.
Я еще думаю, что многие ваши проблемы из-за того, что вы заменили эксплорер, а не закрыли его при старте своей оболочки.
← →
DeadMeat © (2003-01-20 20:38) [81]> DVM
> у меня окна нормально сворачиваются. Я для этого ничего и не делал специально.
А ты попробуй загрузится, запустить FAR (или что-нибудь подобное, где есть список всех процессов), убить EXPLORER.EXE и INTERNAT.EXE. А потом запустить например калькулятор и свернуть...
← →
DVM © (2003-01-20 20:48) [82]Да ладно, это у Вас глюк какой-то. Не знаю, может это действие фара, но моя шелл как раз это и делает - при старте убивает експлорер и всю байду с ним связанную и после программы сворачиваются нормально. Експлорер убивается с помощью TerminateProcess несколько раз по таймеру до полной смерти.
← →
DVM © (2003-01-20 20:52) [83]У меня программы сворачиваясь совсем "уходят", т.е. их не видно.
И потом нормально разворачиваются.
Пробовал во всех виндах: 98/nt/2000/xp
← →
DVM © (2003-01-20 21:00) [84]А чем INTERNAT то мешал - чего вы его мочите:). Это же переключатель клавиатуры.
← →
DeadMeat © (2003-01-20 21:29) [85]> DVM
> Да ладно, это у Вас глюк какой-то. Не знаю, может это...
Вообще-то это пройденый вариант. Если в нужный момент при загрузке нажать три весёлых клавиши (ALT+CTRL+DEL) то твой шел мона заблагополучно убить до того как он убьёт EXPLORER, именно так мы в нашем игровом клубе и снимали подобные проги...
> DVM
> А чем INTERNAT то мешал - чего вы его мочите:)...
А ты попробуй его вместе с EXPLORER-ом забить, как я до этого советовал и увидишь. Только я это проверял в 98 винде.
← →
DVM © (2003-01-20 22:21) [86]> DeadMeat
> Вообще-то это пройденый вариант. Если в нужный момент при
> загрузке нажать три весёлых клавиши (ALT+CTRL+DEL) то твой
> шел мона заблагополучно убить до того как он убьёт EXPLORER,
> именно так мы в нашем игровом клубе и снимали подобные проги...
Ясное дело снять можно. Любую другую защиту в Вин98 сломать тоже можно.
> А ты попробуй его вместе с EXPLORER-ом забить, как я до
> этого советовал и увидишь. Только я это проверял в 98 винде.
Попробовать не могу нет у меня сейчас 98. Ну не снимать INTERNAT - и все нормально сворачивается.
← →
DeadMeat © (2003-01-20 22:51) [87]> DVM
> Ясное дело снять можно...
А если тотально заменить EXPLORER то нельзя. т.е. физически можно, но это ничего не даст.
> Попробовать не могу нет...
Он грузится вместе с EXPLORER, т.е. он та и загружает INTERNAT, а так просто, без EXPLORER он не идёт, т.к. ему нужен Tray. Другое дело если этот Tray каким нибудь эмулировать, но как...??
← →
DVM © (2003-01-20 22:57) [88]А если на время уже из своей проги запустить эксплорер в свернутом состоянии и закрыть сразу же?
← →
msts (2003-01-21 09:10) [89]На счет минимизации - ничего исчезать не должно.
Сам подумай нет никакой оболочки, нет панели задач,
свернул окно и потерял его?
в W3X окна сворачивались в значек а теперь просто устанавливается стандартный, минимальный размер
а эксплорер чтоб не засорять рабочий стол просто прячет свернутые окна.
ща дему налобаю
Пора заводить тему Shell2
← →
DVM © (2003-01-21 11:28) [90]> msts
А кто прячет у меня окна, когда эксплорер выгружен из памяти???
← →
DeadMeat © (2003-01-21 17:25) [91]> DVM
> А кто прячет у меня окна, когда эксплорер выгружен из памяти???...
Я сам в это долго не мог поверить, но это делает INTERNAT
> msts
> а эксплорер чтоб не засорять рабочий стол просто прячет свернутые окна...
Я почти так и сделал в своём shell-е, но я не минимизирую их а потом прячу, а просто прячу и показываю.
← →
DVM © (2003-01-21 17:38) [92]> DeadMeat
> Я сам в это долго не мог поверить, но это делает INTERNAT
Надо же, а я и не знал. Во извращение то.
Хорошо хоть, что это только в вин98
← →
DeadMeat © (2003-01-21 18:25) [93]> DVM
> Надо же, а я и не знал. Во...
Абсолютно с вами солидарен дорогой товарищ... Так чё насчёт эмуляции трэя, идеи есть?...
← →
DVM © (2003-01-21 20:29) [94]Ну трей то сделать можно - самый примитив, чтобы INTERNAT запустить. Только опознает он его как трей? Пример трея на королевстве Делфи был где то.
Но может лучше сделать так, чтобы окна сворачивались нормально:
1. Ловим сообщения о минимизации главных окон.
2. В догонку, узнав хэндл окна, скрываем их.
3. Ловим сообщения о восстановлении окон - показываем окна.
← →
DeadMeat © (2003-01-22 21:14) [95]> DVM
А hook будет ловить WM_MINIMIZE и т.п. И кстати как вытащить системный popup окна и воткнуть его куда надо?...
← →
DVM © (2003-01-23 12:05) [96]Здесь Handle - хендл того окна от которого системное меню.
Handle2 - твоя программа. По крайней мере у иеня так работает.
procedure TForm1.Button1Click(Sender: TObject);
var
LItem : LongWord;
LMenu : HMENU;
begin
LMenu := GetSystemMenu(Handle,false);
LItem := LongWord(Windows.TrackPopupMenu(LMenu, TPM_LEFTBUTTON or
TPM_RIGHTBUTTON or TPM_RETURNCMD,
( Handle,WM_SYSCOMMAND,LItem,0) Здесь Handle - хендл того окна от которого системное меню.
Handle2 - твоя программа. По крайней мере у иеня так работает.
procedure TForm1.Button1Click(Sender: TObject);
var
LItem : LongWord;
LMenu : HMENU;
begin
LMenu := GetSystemMenu(Handle,false);
LItem := LongWord(Windows.TrackPopupMenu(LMenu, TPM_LEFTBUTTON or
TPM_RIGHTBUTTON or TPM_RETURNCMD,
100, 100, 0 , Handle2, nil));
if LItem>0 then SendMessage(Handle,WM_SYSCOMMAND,LItem,0);
end;
Коотрдинаты появления ставишь сам.
← →
DVM © (2003-01-23 12:07) [97]>DeadMeat
Тут нарыл исходники LiteStep - там много интересного, но на C.
← →
DeadMeat © (2003-01-23 14:59) [98]> DVM
> Тут нарыл...
Например...
← →
DeadMeat © (2003-01-24 00:29) [99]> DVM
А ты случаем не в курсе дел мерзких, как теперь это системное меню приткнуть к ToolButton...??
← →
DVM © (2003-01-24 18:11) [100]
> DeadMeat
см. Shell II
← →
S.P.I.R.I.T © (2003-01-25 01:19) [101]Удалено модератором
← →
crazyprogman © (2003-01-25 06:23) [102]
> S.P.I.R.I.T ©
Я с тобой полностью согласен...
Вобщем были у мя 2 шелки, одна сетевая другая не сетевая... разные постановки задач были... В итоге я на их доработку до полной работоспособности забил, но я думаю тебе почитать исходники полезно будет... 95% всего работает без багов... тока строго не судите по поводу некоторых криво сделанных вещей, это были мои одни из первых программ, опыта было маловато...
Скачать мона с http://www.soft.silus.ru/files/shell.exe
Будут какие нить вопросы пишите на мыло: ghost@silus.ru
← →
Antosya © (2003-01-25 19:45) [103]Дайте мне пожалуйста, те кому не жаль исходнички shel"ов! Плиз!!! Оч. надо! Намыльте! Кому не жаль! Тоже мог че-нибудь намылить!!!! Шлите!!! Ещё раз говорю, оч. надо!!!
← →
KoHe4Ho }|{e 6ot (2003-01-25 19:53) [104]Бирёш TServerSocet и TClientSocket ,
и кидайся между ними сообщениями , а потом с ними работай.
← →
gsu © (2003-01-26 00:48) [105]>> DeadMeat © (20.01.03 14:35)
>> > DVM
>> > защита от убийства главного процесса shell-а;
>> Где угодно...
Очень бы хотел посмотреть на данное чудо. Если Вы можете, вышлите кусочек кода на мыло или идею.
← →
DeadMeat © (2003-01-28 23:50) [106]> DVM
А зачем тебе хуки на клаву и мышу...??
← →
DVM © (2003-01-29 11:43) [107]
> DeadMeat
Ты про что про MyShell.rar что ли?
Хуки на клаву и мышь там про запас. Там вообще все виды хуков.
А конкретно на клаву, чтобы язык переключать и индицировать.
Я кстати уже многое в том коде переделал. В том что у тебя глюков много.
Меня один вопрос волнует: как перехватить создание окон консольных приложений в XP???
← →
DeadMeat © (2003-01-30 20:57) [108]> DVM
Пришли на мыло *.EXE-шник... плииз...!!
← →
FIj (2003-01-31 05:43) [109]>но у меня возник побочный эффект
>свернутые окна ложатся под поверхность рабочего стола (моей >формы) и их не видно
У формы свойство FormStyle выставь в fsNormal и только когда надо ставь FsStayOntop не забыв потом поменять назад....
Я написал такую прогу для одного клуба...Начну с такого
Во первых ненадо никаких таскбаров....Все что сворачиваеться сворачиваеться в окошки узкие вниз екрана...развернуть можно можно закрыть...нафиг извращения с ТаскБаром?Чтоб красиво было? Где это пользователи запускают милион игр? Что то я не видел...Тем более ихние траблы...Едем дальше..в 2000\ХП убираеться контрол альт дел....и прогу выгрузить ну никак нельзя если есть доступ только к играм...Дальше....В реестредефалт броузер устанавливаем в c:\fuck.exe теперь ни одна игра не откроет експлорер как бы не хотелось...Дальше....Пишем прогу на масме просто ExitProcess регистрируем ее для расширения...*.htm *.html *.hlp *.txt Этого волне достаточно....Дальше....отключаем сейф моде...А в самом шеле....при вводе пароля включаеться експлорер....Это все у меня уже пол года как работает...И за это время ни разу не глюкнуло...На форме попапменю...Игры>Подкатегория> Counter-Strike молодец играй кантру....Как время заканчиваться начинает мигает лампочка скрол лок...за 2 минуты...Потом когда 0 минут....Enable false у попапменю....Все игры киляем...все проги киляем...Отключаем альт таб...короче все блокируем (клаву мышь не надо проверено)...Дальше..для музыки свой плеер (для видео тот же) в котором...нельзя НИКАК лазить по дискам...есть пару плей листов и всё.....Виедо можно только плей\пауза стоп....и мотать....Выбираються фильмы музика....в этом шелле...Шел их читает из папок разных....В шелле активно только одно меню...из которого можно выключить\логофф\перегруз компа..по ф12 всплывает окно для ввода только пароля...
Все пашет через клиентсокет......Настройки сейвяться в реест....за него я не переживаю...туда хрен без пароля доберешься проверено..... Вобщем если что надо куском кода поделиться могу НО не всем исходником....Или помочь чем...так же могу дать ехешку для оценки...как сделано....Аська 111397611
← →
DVM © (2003-01-31 11:15) [110]
> Где это пользователи запускают милион игр?
Не игр. Internet Explorer. Всем я думаю ясно.
А то что окна сворачиваются в узкие полоски внизу экрана - это недостаток, а не достоинство.
← →
Antosya © (2003-01-31 16:18) [111]Мнееееееееееееееееееееее! Плиз! Скиньте на мыло! Пример. который заменит explorer.exe, т.е окно проги на весь экран, и с пуском и т.д, ну т.е. и с трэем если можно, и кнопочками на TaskBar"e. В общем чтобы был почти такой же как в винде TaskBar! Очень надо!!!
← →
DeadMeat © (2003-01-31 22:58) [112]> FIj
> DVM
*.EXE-шник на мыло (в хорошем смысле) пазаста...
← →
Freedom (2003-02-08 22:33) [113]Смотрю тут вы начали интересную тему а потом закинули А довести дело до конца слабо? Я вот тоже Shell пишу, за два дня многое пререпробовал много чего сделал. А вот неубиваемость проги сделать не знаю как. Может кто нибуть что нибудь посоветует. Если есть идеи напишите пожалуста :)
← →
DVM © (2003-02-09 01:34) [114]А почему ты думаешь, что до конца дело не довели?
Неубиваемость проги состоит в том, что нельзя давать челам запускать разные нехорошие программы, которыми можно убить шелл.
← →
DVM © (2003-02-10 08:12) [115]вот этот код заставит окна сворачиваться нормально в отсутствии эксплорера:
var
mm:TMINIMIZEDMETRICS;
begin
mm.cbSize := sizeof(MINIMIZEDMETRICS);
SystemParametersInfo(SPI_GETMINIMIZEDMETRICS, mm.cbSize, @mm, 0);
mm.iArrange := ARW_HIDE;
SystemParametersInfo(SPI_SETMINIMIZEDMETRICS, mm.cbSize, @mm, 0);
end;
← →
FREEDOM (2003-02-10 21:58) [116]>> DVM Понимаешь неубиваемость в том смысле, что когда запущен какой то процесс, то иногда программа просто зависает. А закрывать все левые процессы иногда не помогает. Просто надо заставить программу перезагружатся автоматически, если она зависнет.
← →
DeadMeat © (2003-02-11 23:46) [117]> FREEDOM
>Просто надо заставить программу перезагружатся автоматически, если она зависнет...
Я сделал почти так, но немного по другому... Когда кто-то (или что-то) патыется убить "меня", то комп перезагружается...
← →
CjCrazy © (2003-02-12 08:06) [118]2 Freedom, вот код, под 9х окно само стаёт "неубиваемым" (по Ctrl+Alt+Del).
то есть при попытке закрыть программу она закрывается, но предварительно запускает себя ещё разок. (шоб мало не казалось).
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure WndProc(var Msg : TMessage);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WndProc(var Msg : TMessage);
var si : TSTARTUPINFO;
pi : TPROCESSINFORMATION;
begin
case Msg.Msg of
wm_destroy : Begin
// Создадим другой процесс, а этот благополучно завершим.
// memset(&si, 0, sizeof(STARTUPINFO));
//зануляем память
ZeroMemory(@si,sizeof(TSTARTUPINFO));
si.cb := sizeof(TSTARTUPINFO);
//создаем новый процесс
//обратите внимание, что я использовал встроенную переменную cmdLine, т.к она
//содержит командную строку при помощи которой было вызвано приложение. В начале
//этой строки стоит имя нашего приложения, поэтому программа будет корректно рботать,
//даже если сменить имя .exe файла
CreateProcess(nil, cmdLine, nil, nil,FALSE, NORMAL_PRIORITY_CLASS, nil, nil, si, pi);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
//Завершаем приложение
PostQuitMessage(0);
End;
end;
inherited;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
self.WindowProc:=wndproc;
end;
end.
← →
Freedom (2003-02-12 18:43) [119]=> CjCrazy © Код не проверял, но идея замечательная. СПАСИБО !!!
← →
Cosmic © (2003-02-13 11:22) [120]Удалено модератором
Примечание: Не по теме
Страницы: 1 2 3 4 вся ветка
Текущий архив: 2003.08.25;
Скачать: CL | DM;
Память: 0.71 MB
Время: 0.044 c