Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Как убрать кнопку выхода у программы?

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

exMIB



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть программа с обычным Windows интерфейсом и две кнопки в верхнем правом углу:
 
МИНИМИЗАЦИЯ - "_"
ВЫХОД - "x"
 
Исходников нет, только EXE-файл.
Так как у программы не предусмотрена минимизация при нажатии на "x", то при случайном нажатии на эту кнопку она выгружается из памяти, это конечно правильно, но для моих нужд совсем не удобно.
Кто подскажет как эту кнопку "x" убрать или хотя бы изменить её функцию или сделать ее НЕ функциональной, чтобы при нажатии на неё ничего бы не происходило.
 
Я пробовал через Restorator, но измененный экзешник потом не запускается

Всего записей: 3381 | Зарегистр. 27-09-2001 | Отправлено: 01:03 22-06-2003 | Исправлено: exMIB, 01:05 22-06-2003
Sleepwalker



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну... это так.. навскидку, сам не пробовал...
пишешь хук на системные сообщения. Зная имя программы, перехватываешь WM_CLOSE на нее и блокируешь. все
Куда в код залезть - пока не знаю...

----------
...или я ничего не понимаю в этой жизни... или понимаю слишком хорошо...

Всего записей: 1957 | Зарегистр. 19-10-2002 | Отправлено: 13:44 22-06-2003
sashado

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function DeleteMenu Lib "user32.dll" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function GetSystemMenu Lib "user32.dll" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
 
 
Private Sub Command1_Click()
    Dim hWnd As Long
     
    hWnd = FindWindow(vbNullString, "Untitled - Notepad")
    DeleteMenu GetSystemMenu(hWnd, 0), &HF060, 0
     
     
End Sub

Всего записей: 66 | Зарегистр. 07-04-2002 | Отправлено: 18:11 22-06-2003
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
exMIB
В конце концов получилось или нет?

Всего записей: 7855 | Зарегистр. 15-07-2003 | Отправлено: 14:34 17-10-2003
exMIB



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mihas83
Проблема осталась, просто уже устал искать решение.
Я попробовал поправить exe-шник, но прога запускаться перестает.
Может кто-то сможет?
 
Добавлено
sashado
А это я так понял ты для Delphi строки дал. Что-то не соображу как работает.
Может кто подскажет из программеров как эти строки можно использовать, я сам в программировании слабенько соображаю.

Всего записей: 3381 | Зарегистр. 27-09-2001 | Отправлено: 23:43 17-10-2003
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
exMIB Sashado дал строки на VB, а не на Дельфи.
Да подобный сабж уже проскакивал. Вот поподробнее. Если ты хоть немного программишь.
 
Создаешь в Дельфи проект. Кидаешь на форму кнопку. У нее в OnClick пишешь следующее.
 
var
 hWnd:integer;
begin
  hWnd:=FindWindow(nil,'Мое окно'); // где 'мое окно' это текст на заголовке твоей проги.
  DeleteMenu(GetSystemMenu(hWnd),SC_CLOSE,MF_BYCOMMAND); //данная строка задизейбливает кнопку закрытия окна.  
end;
 
Запускаешь проект запускаешь прогу, нажимаешь баттон и все ОК. Кнопка Х не работает.
Кстати используй фильтр в следующий раз.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 00:49 18-10-2003
MetroidZ



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
exMIB
придётся делать запускатель для твоей проги, который будет деактивировать кнопку X. Если не трудно можешь поискать здесь аналогичную тему. Там всё было.
Как у твоей проги окно главное называется , могу такой запускатель написать.

Цитата:
Я попробовал поправить exe-шник, но прога запускаться перестает.

а что ты там менял?

Всего записей: 1795 | Зарегистр. 12-07-2003 | Отправлено: 01:09 18-10-2003
exMIB



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я вот ещё не понял, эта запускающая прога всё время должна в памяти висеть?
 
MetroidZ
А можешь написать прогу на Delphi или VB:  
чтобы можно было её использовать для запуска из командной строки, т.е.
proga.exe что_запускать.exe имя_окна

Всего записей: 3381 | Зарегистр. 27-09-2001 | Отправлено: 01:20 18-10-2003 | Исправлено: exMIB, 01:21 18-10-2003
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
та запускающая прога всё время должна в пам

Нет. Как только кнопка задизейблилась, можно сделать так что прога сама завершится.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 00:38 20-10-2003
MetroidZ



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Delphi
пример отключает кнопку закрытия и пункт "закрыть" ситсемного меню заданного окна.             procedure TForm1.Button1Click(Sender: TObject);  
             var  
               hwndHandle : THANDLE;  
               hMenuHandle : HMENU;  
             begin  
               hwndHandle := FindWindow(nil, 'Untitled - Notepad');  
               if (hwndHandle <> 0) then begin  
                 hMenuHandle := GetSystemMenu(hwndHandle, FALSE);  
                 if (hMenuHandle <> 0) then  
                   DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);  
               end;  
             end;
 
пока некогда прогу делать. Но вот ведь готовая процедура. И тем более тема поднималась такая с этим же примером.

Всего записей: 1795 | Зарегистр. 12-07-2003 | Отправлено: 00:14 23-10-2003
exMIB



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MetroidZ

Цитата:
пока некогда прогу делать. Но вот ведь готовая процедура. И тем более тема поднималась такая с этим же примером.

А как тема называлась?
 
И ещё можешь глянуть в этот топик http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=9854#1 (Название: Пришла новая почта - мигают Num Caps Scroll ), я его только вроде не в тот раздел поместил

Всего записей: 3381 | Зарегистр. 27-09-2001 | Отправлено: 07:11 23-10-2003
MetroidZ



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А как тема называлась?

Нашёл
Перехват закрытия приложения
http://forum.ru-board.com/topic.cgi?forum=33&topic=2114#1
 
А в "Пришла новая почта - мигают Num Caps Scroll" слишком навороченная тема. Надо было постепенно продвигаться к цели, поэтому все и молчат.
сервисы
http://forum.ru-board.com/topic.cgi?forum=33&topic=1837#1

Всего записей: 1795 | Зарегистр. 12-07-2003 | Отправлено: 09:59 23-10-2003 | Исправлено: MetroidZ, 10:05 23-10-2003
alexei111



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Так точно не захватиш закрытие приложение.....

----------
Чемпион РБП 2007, 2009, КХЛ 08/09, 09/10, NHL 08/09, призер многих других турниров.

Всего записей: 5013 | Зарегистр. 22-07-2002 | Отправлено: 08:31 24-10-2003
MetroidZ



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Так точно не захватиш закрытие приложение.....

да это и не нужно было, как оказалось
просто кнопку отключить.

Всего записей: 1795 | Зарегистр. 12-07-2003 | Отправлено: 15:34 24-10-2003
mcs



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
exMIB
ты, может, выкинь куда-нибудь в инет,
а я посмотрю, что можно сделать

Всего записей: 453 | Зарегистр. 30-01-2003 | Отправлено: 17:05 29-10-2003
exMIB



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mcs
Это ты программу где X надо убрать или про Num Caps Scroll ?
 
Добавлено
Вот программа, где надо убрать кнопку X (ВЫХОД): http://xweb3.narod.ru/ICQCorp_client.exe (~1,1 Мб)

Всего записей: 3381 | Зарегистр. 27-09-2001 | Отправлено: 23:00 30-10-2003
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
exMIB
Слушай скопируй в буфер заголовок формы и помести в тему(или главню часть заголовка). В понедельник будет готова прога. Солью на мыло или заберешь с моего сайта.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:14 31-10-2003
exMIB



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
А если на делфи будешь делать сможешь поставить поле куда можно будет заголовок окна вписать, чтобы каждый раз для других прог новый EXE-шник не лепить или проще -возможность считывания заголовка из txt, который будет в той же папке с EXE-шником лежать

Всего записей: 3381 | Зарегистр. 27-09-2001 | Отправлено: 01:33 31-10-2003
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я сделаю проще. Делаешь окно активным нажимаешь горячую клавишу и кнопка Х не6 работает. часа через два будет на сайте www.shivasak.narod.ru
 
Добавлено
Можешь забирать. Называется CloseDisabler

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 04:20 31-10-2003
exMIB



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
Я её пока не скачивал, но хотел бы уточнить что она должна запускаться вместе с той прогой где надо крестик убрать, ну вообщем сразу после неё скрытно из автозапуска.
Потому что она будет ставиться на много компов, а меня за ними не будет
 
Добавлено
ShIvADeSt
А не знаешь случайно ещё решение этого вопроса: http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=9854#1 ?

Всего записей: 3381 | Зарегистр. 27-09-2001 | Отправлено: 18:29 31-10-2003
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Как убрать кнопку выхода у программы?


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru