Автор | Сообщение |
|
| |
Пост N: 34
Зарегистрирован: 24.09.13
|
|
Отправлено: 18.10.13 20:00. Заголовок: Закрытие Харб крестиком
Следует ли расчитывать, что при закрытии окна программы крестиком (харб 3.2.0) в любой момент не приведет к краху DBF ? Т.е.они все автоматом закроются ? А если в данный момент выполнен flock() и идут операции записи в БД, что произойдет ? Можно как-то блокировать из харба закрытие крестом на это время ? Или какое-нибудь предупреждение повесить ? харб 3,2,0 + BCC 55
|
|
|
Ответов - 41
, стр:
1
2
3
All
[только новые]
|
|
|
| |
Пост N: 3638
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.10.13 20:21. Заголовок: http://clipper.borda..
|
|
|
|
| |
Пост N: 37
Зарегистрирован: 24.09.13
|
|
Отправлено: 19.10.13 09:36. Заголовок: спасибо, HB_gtInfo( ..
спасибо, HB_gtInfo( HB_GTI_CLOSABLE, .F. ) работает Но возник другой вопрос, чтобы получить доступ и к другим функциям HB_gtInfo, я исследовал пример из TESTS wvtext. В программе должен быть PROCEDURE hb_GTSYS() REQUEST HB_GT_WVT_DEFAULT REQUEST HB_GT_WIN RETURN Но при этом возникает паразитное окно. Причем при запуске из FAR лишнего окна не возникает, по-видимому Far как-то по умному это обходит. А если пример wvtext запускать ярлыком- то 2 окна (Win 7 32 разр Харб 3.2.0 + BCC 55). Как с этим бороться ?
|
|
|
|
| |
Пост N: 38
Зарегистрирован: 24.09.13
|
|
Отправлено: 19.10.13 13:43. Заголовок: Частично проблема ре..
Частично проблема решается, если вместо REQUEST, как в примере wvtext, использовать опцию hbmk2 -gtwvt. Тогда при создании ярлыка непосредственно на exe работает нормально. НО мне надо exe запускать из bat-ника ! А при создании ярлыка на батник он получается "Тип объекта- Пакетный файл Windows". И тогда появлется лишнее "родительское" окно, а уже потом окно самой программы. Как решить проблему ???
|
|
|
|
| |
Пост N: 3639
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.10.13 13:59. Заголовок: and3081 пишет: испо..
and3081 пишет: цитата: | использовать опцию hbmk2 -gtwvt |
| попробуй hbmk2 -gtwvt -gui
|
|
|
|
| |
Пост N: 65
Зарегистрирован: 21.04.13
|
|
Отправлено: 19.10.13 14:31. Заголовок: Лишнее окно
and3081 пишет: цитата: | НО мне надо exe запускать из bat-ника |
| Если в батнике после вызова EXE не нужно ожидание завершения EXE, вызов EXE можно сделать через START тогда первое окно (батника) закроется, окно TEST.exe будет жить =====TEST.BAT=== rem TEST.EXE start TEST.EXE ... EXIT
|
|
|
|
| |
Пост N: 39
Зарегистрирован: 24.09.13
|
|
Отправлено: 19.10.13 15:55. Заголовок: попробовал на редакт..
попробовал совет petr на редакторе мультиедит, давно меня лишнее окно достает (в WinXP так не было) Не работает ни start "C:\Program Files\Multi-Edit Lite 2008\MeLite.exe -SR" exit ни start "C:\Program Files\Multi-Edit Lite 2008\MeLite.exe" -SR exit В смысле редактор даже не запускается. Ну это моей проблемы и не решило бы, просто попробовал. Опция -gui к видимым результатам не привела. А батник у меня используется для обновления, т.е. замены exe-шника. т.е. X.BAT: astr.exe @if errorlevel 44 obnov.bat Т.е.программа создает obnov.bat и выходит с возвратом errorlevel=44. А как еще заменить exe-шник, не выйдя из него? Т.е. и батник не завершить до выхода из проги. От батника не отказаться, замкнутый круг. Есть идеи ?
|
|
|
|
| |
Пост N: 3641
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.10.13 16:08. Заголовок: start "заголовок..
start "твой заголовок" "C:\Program Files\FlashFXP\FlashFXP.exe" или start /b "твой заголовок" "C:\Program Files\FlashFXP\FlashFXP.exe"
|
|
|
|
| |
Пост N: 40
Зарегистрирован: 24.09.13
|
|
Отправлено: 19.10.13 16:12. Заголовок: ну с мультиедитом ра..
ну с мультиедитом разобрался, оказывается первые кавычки у start - это заголовок окна. Работает: start "1" "C:\Program Files\Multi-Edit Lite 2008\MeLite.exe" -SR exit а по основной проблеме- как из проги запустить батник, но чтобы прога при этом завершилась ? Чтобы ее можно было перезаписать ?
|
|
|
|
| |
Пост N: 3642
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.10.13 16:15. Заголовок: мне кажется что до з..
мне кажется что до запуска проги из батника нужно средствами языка батника проверить обновление и если оно есть менять EXE и после этого его запускать. то есть прогу всегда запускать через батник.
|
|
|
|
| |
Пост N: 3643
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.10.13 16:20. Заголовок: можно еще тему полис..
|
|
|
|
| |
Пост N: 41
Зарегистрирован: 24.09.13
|
|
Отправлено: 19.10.13 16:23. Заголовок: Точно ! Будем кроить..
Точно ! Будем кроить
|
|
|
|
|
| постоянный участник
|
Пост N: 3022
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.10.13 16:34. Заголовок: and3081 пишет: А ка..
and3081 пишет: цитата: | А как еще заменить exe-шник, не выйдя из него? |
| Стандартными средствами НИКАК !
|
|
|
|
| |
Пост N: 66
Зарегистрирован: 21.04.13
|
|
Отправлено: 19.10.13 17:49. Заголовок: А что такое "..заменить ","..стандартными" и для кого ?
Andrey пишет: цитата: | Стандартными средствами НИКАК ! |
| Прошу попробовать Можно в отдельном окне, например по <Shift+Enter> из под Far В контексте пользователя - отлично меняется ИМЯ исполняемого файла, освобождая основное имя для размещения нового файла. Выполняемая задача НЕ ВИДИТ замены имени исполняемого файла hbmk2.exe test.prg -lhbct ========test.prg===== proc main ? exename() Inkey(100) hb_run("rename test.exe test_old.exe") ? exename() Inkey(100) hb_run("dir >a.txt") Inkey(100) ? filestr("a.txt") return
|
|
|
|
| |
Пост N: 3644
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.10.13 17:52. Заголовок: petr707 Интересный ..
petr707 Интересный подход По ходу в Clipper можно было даже писать в запущенный EXE , с Harbour такой фокус не проходит Имею в виду fopen(exename(),2) (fseek(),fwrite(),fclose())
|
|
|
|
| |
Пост N: 353
Зарегистрирован: 08.07.06
|
|
Отправлено: 19.10.13 20:57. Заголовок: А нужно-ли запускать..
А нужно-ли запускать обновление прямо во время работы задачи ? У меня происходит все при автозагрузке. Подключаются сетевые диски, проверяется версия, если есть различие - обновление. Юзеры работают днем, программа обновляется в основном, ночью. В редких случаях - можно вывести окно с требованием завершить работу и запустить update.bat ярлыком автозагрузки. Версии работающих программ видны - при необходимости самыми упертыми админ занимается лично.
|
|
|
|
| постоянный участник
|
Пост N: 3025
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.10.13 22:43. Заголовок: Sergy пишет: при не..
Sergy пишет: цитата: | при необходимости самыми упертыми админ занимается лично. |
| +1 и какие такие упертые ?
|
|
|
|
| постоянный участник
|
Пост N: 3026
Зарегистрирован: 12.09.06
|
|
Отправлено: 19.10.13 22:58. Заголовок: Dima пишет: с Harb..
Dima пишет: цитата: | с Harbour такой фокус не проходит Имею в виду fopen(exename(),2) (fseek(),fwrite(),fclose()) |
| Проходит. Берешь, делаешь в своей программе RENAME("test.exe","test_old.exe") а уж потом fopen("test.exe",2) (fseek(),fwrite(),fclose())`
|
|
|
|
| |
Пост N: 3645
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.10.13 09:29. Заголовок: Andrey пишет: а уж ..
Andrey пишет: цитата: | а уж потом fopen("test.exe",2) (fseek(),fwrite(),fclose()) |
| скорее уж так ;) fopen("test_old.exe",2)
|
|
|
|
| |
Пост N: 42
Зарегистрирован: 24.09.13
|
|
Отправлено: 20.10.13 15:43. Заголовок: с этим решилось, даж..
с этим решилось, даже переделывать обновление не пришлось, только добавил start и тот же батник и так отработал: start astr.exe @if errorlevel 44 obnov.bat Теперь другая проблема обнаружилась. Раньше (без gtwvt) вызов внешнего приложения, например, explorer, сразу открывало его в новом окне. swpruncmd() А теперь тоже открывается лишнее окно с заголовком C:\windows\system 32\cmd.exe. А поверх него окно с приложением (блокнот,explorer и т.п.). Отказываться от swpruncmd() ? UPDATE Если сделать swpruncmd("start приложение"), то лишнего окна нет. НО ! Тогда моя программа работает параллельно с открытым приложением. А надо, чтобы программа не работала, пока не завершишь приложение. Иначе клиент такого наворотит :)
|
|
|
|
| |
Пост N: 3647
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.10.13 15:45. Заголовок: and3081 пишет: swpr..
|
|
|
|
| |
Пост N: 43
Зарегистрирован: 24.09.13
|
|
Отправлено: 20.10.13 15:51. Заголовок: как же нет, когда вс..
как же нет, когда все работает. #include blinker.ch и библу подключить contrib\hbblink\hbblink.hbc
|
|
|
|
|
| |
Пост N: 3648
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.10.13 15:52. Заголовок: and3081 пишет: как ..
and3081 пишет: цитата: | как же нет, когда все работает |
| Жесть , не знал Фактически там юзается Hb_run
|
|
|
|
| |
Пост N: 3649
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.10.13 15:54. Заголовок: and3081 пишет: А на..
and3081 пишет: цитата: | А надо, чтобы программа не работала, пока не завершишь приложение |
| EXECANDWAIT тебе нужен
|
|
|
|
| |
Пост N: 67
Зарегистрирован: 21.04.13
|
|
Отправлено: 20.10.13 15:55. Заголовок: Ждать или не ждать - вот в чем вопрос
and3081 пишет: цитата: | start astr.exe @if errorlevel 44 obnov.bat |
| Вряд ли теперь вторая строка батника (errorlevel) отработает, как ожидалось, поскольку не ждет завершения astr.exe
|
|
|
|
| |
Пост N: 44
Зарегистрирован: 24.09.13
|
|
Отправлено: 20.10.13 16:14. Заголовок: блин, почему у меня ..
блин, почему у меня цитирование не работает :( to petr707 я же проверил, стаботало. Значит bat не закрылся. Щас еще раз проверю
|
|
|
|
| |
Пост N: 45
Зарегистрирован: 24.09.13
|
|
Отправлено: 20.10.13 16:21. Заголовок: Да, не работает, ну ..
Да, не работает, ну переделать не проблема
|
|
|
|
| |
Пост N: 355
Зарегистрирован: 08.07.06
|
|
Отправлено: 20.10.13 18:09. Заголовок: and3081 пишет: UPDA..
and3081 пишет: цитата: | UPDATE Если сделать swpruncmd("start приложение"), то лишнего окна нет. НО ! Тогда моя программа работает параллельно с открытым приложением. А надо, чтобы программа не работала, пока не завершишь приложение. Иначе клиент такого наворотит :) |
| сделай RUN("start /w приложение") - будет ждать.
|
|
|
|
| |
Пост N: 46
Зарегистрирован: 24.09.13
|
|
Отправлено: 20.10.13 18:28. Заголовок: так тогда и окно лиш..
так тогда и окно лишнее открывается
|
|
|
|
| постоянный участник
|
Пост N: 3028
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.10.13 21:01. Заголовок: Функция с ожиданием:..
Функция с ожиданием: /////////////////////////////////////////////////////// FUNCTION WAITRUN( cRun ) Local hIn, hOut, nRet, hProc // "Launching process", cProc hProc := HB_OpenProcess( cRun , @hIn, @hOut, @hOut ) // "Reading output" // "Waiting for process termination" nRet := HB_ProcessValue( hProc ) FClose( hProc ) FClose( hIn ) FClose( hOut ) Return nRet
|
|
|
|
| |
Пост N: 47
Зарегистрирован: 24.09.13
|
|
Отправлено: 20.10.13 21:22. Заголовок: Экспериментирую EXE..
Экспериментирую EXECANDWAIT- для внешнего редактора работает. А для запуска "Explorer.exe файл.xml" - не ждет. И код возврата не 0, хотя сам explorer отрабатывает. Наверное, из-за того, что explorer передает файл другому приложению iexplore ? WAITRUN - тоже самое. Интересно, если возможен такой простой код, то зачем народ наворачивал на С EXECANDWAIT ? Кроме того в WAITRUN нет защиты от ошибки HB_OpenProcess( ). Если hProc вернул -1 (например не найден файл), то HB_ProcessValue( hProc ) упадет.
|
|
|
|
| постоянный участник
|
Пост N: 3029
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.10.13 21:57. Заголовок: and3081 пишет: Эксп..
and3081 пишет: Вот еще так можно попробовать ! FUNCTION MAIN() LOCAL cFile SETCOLOR("15/1") CLEAR SCREEN cFile := CurDrive()+":"+DirName()+"\NOTEPAD.bat" ? "Запуск с ОЖИДАНИЕМ: EXECANDWAIT(", cFile,")" ? EXECANDWAIT(cFile) ? ? ? ? "Это сообщение не должно появится до завершения Notepad !" ? ? wait RETURN NIL ---------------notepad.BAT ------------------ @echo OFF echo . echo . echo =============== Вызов NOTEPAD.EXE ============================ echo . echo . notepad.exe echo . echo . echo =============== Вызов WinWord.EXE ============================ echo . echo . "C:\Program Files\Microsoft Office\OFFICE11\winword.exe" И еще попробуй функцию WAITRUNTERM() - поищи здесь на форуме....
|
|
|
|
|
| |
Пост N: 49
Зарегистрирован: 24.09.13
|
|
Отправлено: 20.10.13 23:52. Заголовок: Так это ничего не ме..
Так это ничего не меняет. И без bat все запускается и ждет. Только explorer такой особенный. Придется смириться.
|
|
|
|
| |
Пост N: 50
Зарегистрирован: 24.09.13
|
|
Отправлено: 21.10.13 10:13. Заголовок: блииин, поставил кли..
блииин, поставил клиентам вызов через start, ругается bad command... А что нужно ? Пути настроить ?
|
|
|
|
| |
Пост N: 3650
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.10.13 11:15. Заголовок: and3081 В Clipper я..
and3081 В Clipper я делал так swpruncmd(GetEnv("SYSTEMROOT")+"\system32\cmd.exe /c start " +TMMP+sysname+".htm") поковыряй ;)
|
|
|
|
| |
Пост N: 51
Зарегистрирован: 24.09.13
|
|
Отправлено: 21.10.13 11:28. Заголовок: нет, тут о другом. Д..
нет, тут о другом. Для запуска программы, чтобы не было лишнего окна, мне посоветовали в батнике делать не astr.exe, а start astr.exe. У меня все работало, клиентам обновил батник- и часть клиентов пишут, что не запускается. Ужас
|
|
|
|
| постоянный участник
|
Пост N: 951
Зарегистрирован: 27.01.07
|
|
Отправлено: 21.10.13 12:05. Заголовок: and3081 пишет: и ча..
and3081 пишет: цитата: | и часть клиентов пишут, что не запускается |
| Ну подключись к ним TeamViewer-ом, посмотри.
|
|
|
|
| |
Пост N: 53
Зарегистрирован: 24.09.13
|
|
Отправлено: 22.10.13 16:38. Заголовок: причина оказалась в ..
причина оказалась в ярлыках. Пока ярлык на батник заново не создашь, он команду start не запускал.
|
|
|
|
| |
Пост N: 408
Зарегистрирован: 08.07.06
|
|
Отправлено: 11.09.14 16:53. Заголовок: Использую для термин..
Использую для терминала GTWIN такую конструкцию: DeleteCloseButton(GetConsoleWindow()) где #pragma BEGINDUMP HB_FUNC( GETCONSOLEWINDOW ) { hb_retnl( (LONG)GetConsoleWindow( ) ) ; } HB_FUNC( DELETECLOSEBUTTON ) { DeleteMenu(GetSystemMenu( (HWND)hb_parnl( 1 ), FALSE), SC_CLOSE,MF_BYCOMMAND ) ; DrawMenuBar( (HWND)hb_parnl( 1 ) ); } #pragma ENDDUMP Под Win XP - вопросов не было. Убить приложение можно было только через диспетчер задач. С переходом на семерку - крестик окна серый, правой кнопкой мыши на заголовке окна - нет пункта "закрыть меню". НО!!! Не убирается пункт меню "закрыть окно" при нажатии в TaskBar правой кнопкой мыши... Где нужно подкрутить ?
|
|
|
|
| |
Пост N: 76
Зарегистрирован: 24.04.13
|
|
Отправлено: 16.09.14 08:05. Заголовок: Sergy, я использую к..
Sergy, я использую команду: HB_gtInfo( 50, .F. ) Крестик не активен, пункт контекстного меню тоже не активен.
|
|
|
|
| |
Пост N: 411
Зарегистрирован: 08.07.06
|
|
Отправлено: 16.09.14 11:07. Заголовок: azoo пишет: я испол..
azoo пишет: цитата: | я использую команду: HB_gtInfo( 50, .F. ) Крестик не активен, пункт контекстного меню тоже не активен. |
| #define HB_GTI_CLOSABLE 50 /* toggles ability to close window (supported by: GTWVT) */ Sergy пишет: цитата: | Использую для терминала GTWIN такую конструкцию: DeleteCloseButton(GetConsoleWindow()) где |
| Перешел уже на GTWVT. Разгребаю...
|
|
|
|
| |
Пост N: 4600
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.03.15 22:27. Заголовок: and3081 пишет: спа..
and3081 пишет: цитата: | спасибо, HB_gtInfo( HB_GTI_CLOSABLE, .F. ) работает |
| В последней версии с SVN Harbour , работало норм. В последних с Github не работает зараза. Пишу про WVT и WVG. Не понятно чего там могли сломать. Hbeditor тоже сломали по ходу. PS При чем HB_gtInfo(HB_GTI_RESIZABLE , .F.) работает
|
|
|
Ответов - 41
, стр:
1
2
3
All
[только новые]
|
|