Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Три вопроса, Билдер 
:(
    Опции темы
Klin
  Дата 9.11.2002, 03:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: нет
Всего: 25



Как сделать, чтобы:
1)когда в винд входишь запускалась программа и пока она не закроется работу не начнёшь.
2)программу нельза было закрыть через Ctrl+Alt+Del.
3)программу можно было закрыть только кнопкой на форме.

Заранее спасибо!


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Vit
Дата 9.11.2002, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



Moderator: пожалуйста 1 вопрос для 1 топика.

2)Какая ось? (На NT практически невозможно)
3)обрабатывай onCloseQuery событие формы


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Klin
  Дата 9.11.2002, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: нет
Всего: 25



1) Насчёт вопросов понял - на будущее запомню
2)Windows 98
3)Ты всмысле в кнопку событие пихнуть?


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Dexter
Дата 9.11.2002, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1562
Регистрация: 2.7.2002
Где: Москва, Бирюлево

Репутация: нет
Всего: 4



На форме событие onCloseQuery.
Когда юзер попытается выйти из проги произойдет то что ты там написал


--------------------
The only thing you really know about me is...
...that's all you'll ever know
PM MAIL ICQ   Вверх
Klin
  Дата 10.11.2002, 03:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: нет
Всего: 25



Спасибо Daxter!
Но это в смыле вообще нельзя выйти?


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Vit
Дата 10.11.2002, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



Что значит вообще? TaskManager конечно может убить твой процесс невзирая ни на какие извороты внутри программы, особенно трудно сделать неубиенной программу для NT/2000/XP. Здесь реально выходов 3 -

1) Запускать программу как сервис (так же как драйвер например диска)
2) Сделать 2 программы, которые будут с достаточно высокой частотой проверять в памяти наличие друг друга и при убиении одной задачи другая будет немедленно ее запускать снова - это т.н. принцип "Робин Гуд и отец Тук"
3) Запускать программу из батника в бесконечном цикле

OnCloseQuery способен предотвратить стандартное закрытие программы по нажатию крестика на заголовке или Alt-F4




--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Klin
  Дата 10.11.2002, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: нет
Всего: 25



Странно onCloseQuery - не работает!


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Dexter
Дата 10.11.2002, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1562
Регистрация: 2.7.2002
Где: Москва, Бирюлево

Репутация: нет
Всего: 4



А че ты там написал?


--------------------
The only thing you really know about me is...
...that's all you'll ever know
PM MAIL ICQ   Вверх
HexoGenus
  Дата 12.11.2002, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Цитата(Klin @ 10.11.2002, 10:55)
Странно onCloseQuery - не работает!

Для того что бы самому решить когда пользователю можно закрыть форму а когда нет можно обрабатывать событие формы:
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
bool clos;
…
// Выполняем вычисления и в зависимости от того хотим мы
// разрешить закрыть форму или ну его нафиг этого наглого пользователя :D
// присваиваем clos значение или true или false
Action=TCloseAction(clos);
}
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
Baa
Дата 13.11.2002, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: 8
Всего: 12



1. Возьми и переправь в win.ini (кажется) значение оболочки с explorer.exe на твою прогу. Во завершению себя запускай explorer.exe
2. Самое надежное - это вытащить эти клавиши из клавиатуры и спрятать их подальше.
3. Убрать все лишнии кнопки с формы (крестик и систем меню), а еще можно заоодно с контролом альтом и делом и ф4 вытащить.
Никак шелл для клуба пишешь? :D


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
HexoGenus
  Дата 13.11.2002, 18:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Klin @ 08.11.2002, 19:09)
Как сделать, чтобы:
2)программу нельза было закрыть через Ctrl+Alt+Del.

В Project1.cpp или как там у тебя называется главный файл проекта...
пишешь функцию :
typedef DWORD (WINAPI *PREGISTERSERVICEPROCESS)(DWORD,DWORD);
bool RSP(double p1, double p2)
{
 PREGISTERSERVICEPROCESS rsp;
 HINSTANCE hK32;
 bool Rc=false;
 hK32=GetModuleHandle("kernel32.dll");
 if(hK32!=NULL) {
   rsp=(PREGISTERSERVICEPROCESS) GetProcAddress(hK32, "RegisterServiceProcess");
   if(rsp!=NULL) {
     Rc=true;
     rsp(p1,p2);
   }
   FreeLibrary(hK32);
 }
 return Rc;
}
Потом вставляешь в
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
//************************
// Вот эту строчку
//*************VVVVVVVVVVVVVVVVVVVV
                         if (!RSP(NULL,1)) return 0;
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
Если все правильно скопировал из своего файла и доходчиво объяснил куда все это лепится то твоя прога после запуска просто исчезнет из списка задач в списке Ctrl+Alt+Del
Кстати в списке иконок для сообщения не хватает растопыренных пальцев :D
  Вверх
Klin
  Дата 22.11.2002, 02:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: нет
Всего: 25



Спосибо, проверю!


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Klin
  Дата 22.11.2002, 05:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: нет
Всего: 25



Не катит, даже после изменений не катит!
До изменений куча ошибок, а после дохимичелся, вообще форма изчезает!


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Klin
  Дата 23.11.2002, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: нет
Всего: 25



Сделал!
Код
typedef DWORD (WINAPI *LPREGISTERSERVICEPROCESS) (DWORD, DWORD);
   HINSTANCE h_i;
   LPREGISTERSERVICEPROCESS lpRegProc;
   h_i = LoadLibrary("KERNEL32.DLL");

   if (h_i)
   {
       lpRegProc = (LPREGISTERSERVICEPROCESS)GetProcAddress(h_i, "RegisterServiceProcess");
       if (lpRegProc)
       {
           lpRegProc(NULL, 1);
       }
       FreeLibrary(h_i);
   }



--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Klin
  Дата 23.11.2002, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: нет
Всего: 25



1) HexoGenus (программу можно было закрыть только кнопкой на форме) так форму вообще не могу закрыть!
----
2)Baa
-
1) я пробовал, но просто запускает (тоже самое, что и через автозагузку).
3)надеюсь не будет отвлечение от темы, если я спрошу "Как?"


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0592 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.