On-line: Andrey, гостей 0. Всего: 1 [подробнее..]
АвторСообщение



Пост N: 34
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 18.10.13 20:00. Заголовок: Закрытие Харб крестиком


Следует ли расчитывать, что при закрытии окна программы крестиком (харб 3.2.0) в любой момент не приведет к краху DBF ? Т.е.они все автоматом закроются ?

А если в данный момент выполнен flock() и идут операции записи в БД, что произойдет ?
Можно как-то блокировать из харба закрытие крестом на это время ? Или какое-нибудь предупреждение повесить ? харб 3,2,0 + BCC 55



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 41 , стр: 1 2 3 All [только новые]


администратор




Пост N: 3638
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.10.13 20:21. Заголовок: http://clipper.borda..


http://clipper.borda.ru/?1-4-0-00000824-000-0-0-1377875287
Для начала можно просто заблочить крестик HB_gtInfo( HB_GTI_CLOSABLE, .F. )

Спасибо: 1 
ПрофильЦитата Ответить



Пост 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). Как с этим бороться ?

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



Пост N: 38
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 19.10.13 13:43. Заголовок: Частично проблема ре..


Частично проблема решается, если вместо REQUEST, как в примере wvtext, использовать опцию hbmk2 -gtwvt. Тогда при создании ярлыка непосредственно на exe работает нормально.

НО мне надо exe запускать из bat-ника ! А при создании ярлыка на батник он получается "Тип объекта- Пакетный файл Windows". И тогда появлется лишнее "родительское" окно, а уже потом окно самой программы. Как решить проблему ???

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




Пост N: 3639
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.10.13 13:59. Заголовок: and3081 пишет: испо..


and3081 пишет:

 цитата:
использовать опцию hbmk2 -gtwvt


попробуй hbmk2 -gtwvt -gui

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



Пост 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


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



Пост 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-шник, не выйдя из него? Т.е. и батник не завершить до выхода из проги. От батника не отказаться, замкнутый круг. Есть идеи ?

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




Пост 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"

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



Пост N: 40
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 19.10.13 16:12. Заголовок: ну с мультиедитом ра..


ну с мультиедитом разобрался, оказывается первые кавычки у start - это заголовок окна. Работает:

start "1" "C:\Program Files\Multi-Edit Lite 2008\MeLite.exe" -SR
exit

а по основной проблеме- как из проги запустить батник, но чтобы прога при этом завершилась ? Чтобы ее можно было перезаписать ?

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




Пост N: 3642
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.10.13 16:15. Заголовок: мне кажется что до з..


мне кажется что до запуска проги из батника нужно средствами языка батника проверить обновление и если
оно есть менять EXE и после этого его запускать.
то есть прогу всегда запускать через батник.

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




Пост N: 3643
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.10.13 16:20. Заголовок: можно еще тему полис..


можно еще тему полистать
http://clipper.borda.ru/?1-4-0-00000741-000-0-0-1335519340

Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 41
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 19.10.13 16:23. Заголовок: Точно ! Будем кроить..


Точно ! Будем кроить

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




Пост N: 3022
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.10.13 16:34. Заголовок: and3081 пишет: А ка..


and3081 пишет:

 цитата:
А как еще заменить exe-шник, не выйдя из него?


Стандартными средствами НИКАК !

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



Пост 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


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




Пост N: 3644
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.10.13 17:52. Заголовок: petr707 Интересный ..


petr707
Интересный подход
По ходу в Clipper можно было даже писать в запущенный EXE , с Harbour такой фокус не проходит
Имею в виду fopen(exename(),2) (fseek(),fwrite(),fclose())

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





Пост N: 353
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 19.10.13 20:57. Заголовок: А нужно-ли запускать..


А нужно-ли запускать обновление прямо во время работы задачи ?
У меня происходит все при автозагрузке. Подключаются сетевые диски, проверяется версия, если есть различие - обновление.
Юзеры работают днем, программа обновляется в основном, ночью. В редких случаях - можно вывести окно с требованием завершить работу и запустить update.bat ярлыком автозагрузки.
Версии работающих программ видны - при необходимости самыми упертыми админ занимается лично.

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




Пост N: 3025
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.10.13 22:43. Заголовок: Sergy пишет: при не..


Sergy пишет:

 цитата:
при необходимости самыми упертыми админ занимается лично.


+1
и какие такие упертые ?

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




Пост 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())`

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




Пост N: 3645
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.10.13 09:29. Заголовок: Andrey пишет: а уж ..


Andrey пишет:

 цитата:
а уж потом fopen("test.exe",2) (fseek(),fwrite(),fclose())


скорее уж так ;) fopen("test_old.exe",2)

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



Пост 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 приложение"), то лишнего окна нет. НО ! Тогда моя программа работает параллельно с открытым приложением. А надо, чтобы программа не работала, пока не завершишь приложение. Иначе клиент такого наворотит :)

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




Пост N: 3647
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.10.13 15:45. Заголовок: and3081 пишет: swpr..


and3081 пишет:

 цитата:
swpruncmd()


В Harbour её нет.
Смотри тему http://clipper.borda.ru/?1-4-0-00000327-000-0-0-1365089161

я бы советовал (если нужно ждать окончания работы запущенного приложения) EXECANDWAIT
если ждать не нужно hb_processrun , WAPI_ShellExecute

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



Пост N: 43
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 20.10.13 15:51. Заголовок: как же нет, когда вс..


как же нет, когда все работает.
#include blinker.ch

и библу подключить contrib\hbblink\hbblink.hbc

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




Пост N: 3648
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.10.13 15:52. Заголовок: and3081 пишет: как ..


and3081 пишет:

 цитата:
как же нет, когда все работает


Жесть , не знал
Фактически там юзается Hb_run

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




Пост N: 3649
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.10.13 15:54. Заголовок: and3081 пишет: А на..


and3081 пишет:

 цитата:
А надо, чтобы программа не работала, пока не завершишь приложение


EXECANDWAIT тебе нужен

Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 67
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 20.10.13 15:55. Заголовок: Ждать или не ждать - вот в чем вопрос


and3081 пишет:

 цитата:

start astr.exe
@if errorlevel 44 obnov.bat


Вряд ли теперь вторая строка батника (errorlevel) отработает, как ожидалось, поскольку не ждет завершения astr.exe



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



Пост N: 44
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 20.10.13 16:14. Заголовок: блин, почему у меня ..


блин, почему у меня цитирование не работает :(

to petr707
я же проверил, стаботало. Значит bat не закрылся. Щас еще раз проверю


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



Пост N: 45
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 20.10.13 16:21. Заголовок: Да, не работает, ну ..


Да, не работает, ну переделать не проблема

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





Пост N: 355
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 20.10.13 18:09. Заголовок: and3081 пишет: UPDA..


and3081 пишет:

 цитата:
UPDATE Если сделать swpruncmd("start приложение"), то лишнего окна нет. НО ! Тогда моя программа работает параллельно с открытым приложением. А надо, чтобы программа не работала, пока не завершишь приложение. Иначе клиент такого наворотит :)



сделай RUN("start /w приложение") - будет ждать.

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



Пост N: 46
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 20.10.13 18:28. Заголовок: так тогда и окно лиш..


так тогда и окно лишнее открывается

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




Пост 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



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



Пост 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 ) упадет.

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




Пост 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() - поищи здесь на форуме....

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



Пост N: 49
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 20.10.13 23:52. Заголовок: Так это ничего не ме..


Так это ничего не меняет. И без bat все запускается и ждет. Только explorer такой особенный. Придется смириться.

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



Пост N: 50
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 21.10.13 10:13. Заголовок: блииин, поставил кли..


блииин, поставил клиентам вызов через start, ругается bad command...
А что нужно ? Пути настроить ?

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




Пост 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")

поковыряй ;)

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



Пост N: 51
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 21.10.13 11:28. Заголовок: нет, тут о другом. Д..


нет, тут о другом. Для запуска программы, чтобы не было лишнего окна, мне посоветовали в батнике делать не astr.exe, а start astr.exe. У меня все работало, клиентам обновил батник- и часть клиентов пишут, что не запускается. Ужас

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


Пост N: 951
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 21.10.13 12:05. Заголовок: and3081 пишет: и ча..


and3081 пишет:

 цитата:
и часть клиентов пишут, что не запускается


Ну подключись к ним TeamViewer-ом, посмотри.

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



Пост N: 53
Зарегистрирован: 24.09.13
ссылка на сообщение  Отправлено: 22.10.13 16:38. Заголовок: причина оказалась в ..


причина оказалась в ярлыках. Пока ярлык на батник заново не создашь, он команду start не запускал.

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





Пост 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 правой кнопкой мыши...

Где нужно подкрутить ?

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



Пост N: 76
Зарегистрирован: 24.04.13
ссылка на сообщение  Отправлено: 16.09.14 08:05. Заголовок: Sergy, я использую к..


Sergy, я использую команду: HB_gtInfo( 50, .F. )
Крестик не активен, пункт контекстного меню тоже не активен.


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





Пост 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. Разгребаю...

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




Пост 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.) работает

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

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