On-line: PSP, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 5821
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.04.18 20:40. Заголовок: MessageBox после выхода из программы.


Всем привет !
Можно ли повесить MessageBox на экране примерно с таким содержанием
"Аварийный выход из программы для обновления!", и чтобы он остался после выхода из программы ?
Хотелось бы обойтись без внешнего дополнительного софта.
Хочу сделать всем аварийное покидание программы ! Достали тупизмом при обновление программы.



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 11 [только новые]


постоянный участник


Пост N: 1403
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 18.04.18 20:48. Заголовок: Может и можно. Но, п..


Может и можно. Но, по-моему, это окно станет неуправляемым. Но это - по-моему...))

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5822
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.04.18 21:04. Заголовок: PSP пишет: Но, по-м..


PSP пишет:

 цитата:
Но, по-моему, это окно станет неуправляемым.


Да закрыть его потом и всех делов !
Я встречал такое окно в системе - там было типа перезагрузка системы и таймер...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1805
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 18.04.18 21:08. Заголовок: Andrey Запусти IE с..


Andrey
Запусти IE с нужным текстом и оформлением на html странице

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5823
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.04.18 21:15. Заголовок: Вот нагуглил http://..


Вот нагуглил http://developer.alexanderklimov.ru/articles/pinvoke.php
Из книги C#. Советы программистам (в сокращении) 

Программный код, который выполняется под управлением CLR (Common Language Runtime, т. е. общая среда выполнения языков),
называется управляемым (managed) кодом. Программный код, выполняющийся вне среды выполнения CLR, называется
неуправляемым (unmanaged) кодом. Примером неуправляемого программного кода служат функции Win32 API, компоненты COM,
интерфейсы ActiveX. Несмотря на большое количество классов .NET Framework, содержащих множество методов, программисту
все равно приходится иногда прибегать к неуправляемому коду. Надо сказать, что число вызовов неуправляемого кода
уменьшается с выходом каждой новой версии .NET Framework. Microsoft надеется, что наступит такое время, когда весь код
можно будет сделать управляемым и безопасным. Но пока реальность такова, что без вызовов функций Windows API нам пока
не обойтись. Но сначала немного теории.

Управляемый код .NET Framework может вызывать неуправляемую функцию из DLL (функцию Windows API) при помощи
специального механизма Platform Invoke (сокр. P/Invoke). Для того чтобы обратиться к какой-нибудь неуправлямой библиотеке
DLL, вы должны преобразовать .NET-объекты в наборы struct, char* и указателей на функции, как того требует язык C.
Как сказали бы программисты на своем жаргоне — вам нужно маршалировать параметры. Более подробно о маршалинге
(Marshalling) вам следует почитать в документации. Чтобы вызвать DLL-функцию из C#, сначала ее необходимо объявить
(программисты, имеющие опыт работы с Visual Basic 6.0, уже знакомы с этим способом).
Для этого используется атрибут DllImport:

using System.Runtime.InteropServices;

public class Win32
{
[DllImport("User32.Dll")]
public static extern void SetWindowText(IntPtr hwnd,
String lpString);
}


Т.е. получается мне нужно из Харбора вызывать неуправляемую функцию из DLL (функцию Windows API) !
Кто нибудь делал такое ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5824
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.04.18 21:20. Заголовок: SergKis пишет: Запу..


SergKis пишет:

 цитата:
Запусти IE с нужным текстом и оформлением на html странице


Хороший вариант !
Воспользуюсь если не получиться !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5825
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.04.18 22:21. Заголовок: Можно наверное обойт..


Можно наверное обойтись через:
 
cParam := "User32.Dll ????"
ShellExecute( 0, "Open", "rundll32.exe", cParam,, 3 )

Только вот не нашёл как сделать параметры правильно...
Может кто подскажет как, или нельзя так сделать ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6807
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.04.18 22:24. Заголовок: Andrey Прога сетева..


Andrey
Прога сетевая ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5826
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.04.18 22:32. Заголовок: Dima пишет: Прога с..


Dima пишет:

 цитата:
Прога сетевая ?


И сетевая и для сервер-терминалов !
Юзера уходят от компа, а кто обновляет - тупит, обновляет при открытых базах.
Если бы только у одного заказчика...
Выкинуть всех могу, а сообщения на экране не будет... Юзера тогда будут в Ауте !

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6808
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.04.18 09:29. Заголовок: Andrey Может это че..


Andrey
Может это чем то поможет
C:\MiniGUI\SAMPLES\BASIC\MsgBoxEx\

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6809
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.04.18 13:08. Заголовок: Похоже из командной ..


Похоже из командной строки не получится нормально запустить MessageBoxA
cParam := "User32.Dll,MessageBoxA 111 222 333"

А вот через DllCall можно , но этот вариант я так понял не подходит
DllCall( "user32.dll", DLL_OSAPI, "MessageBoxA", 0, "Hello world!", "Harbour sez", hb_bitOr( MB_OKCANCEL, MB_ICONEXCLAMATION, MB_HELP ) )

Можно через msg повесить месагу
Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5828
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.04.18 15:16. Заголовок: Dima пишет: А вот ч..


Dima пишет:

 цитата:
А вот через DllCall можно , но этот вариант я так понял не подходит


Если сообщение остаётся после выхода из программы, то подходит !

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 187
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет