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




Пост N: 855
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.08.08 17:57. Заголовок: Как запретить запуск одной проги несколько раз ?


Есть какая то функция в Xharbour ?

PS
Вроде был такой вопрос , но пока не найду........

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





Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 05.08.08 18:12. Заголовок: Checks if a given EX..


Checks if a given EXE is already running.

Syntax:


IsExeRunning( <cExeName> ) --> lRunning


Спасибо: 0 
администратор




Пост N: 856
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.08.08 18:16. Заголовок: Не вижу такой функци..


Не вижу такой функции в xharbour...

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 05.08.08 18:20. Заголовок: Нда ?! А где ты ее н..


Нда ?! А где ты ее не видишь, я ее из харборовского хелпа и взял

Спасибо: 0 
администратор




Пост N: 857
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.08.08 18:23. Заголовок: В сырцах не вижу да ..


В сырцах не вижу да и не собирается , в виду того что нет такой функции

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 05.08.08 18:25. Заголовок: А, извиняюсь, это я ..


А, извиняюсь, это я по FWH 8.4 Но ты же вроде FWH и использовал

Спасибо: 0 
администратор




Пост N: 858
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.08.08 18:27. Заголовок: Нет не FWH , а чисто..


Нет не FWH , а чисто Xharbour реализация нужна.

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 05.08.08 18:35. Заголовок: ну FindWindow() то в..


ну FindWindow() то в харборе небось есть, ну и найди по заголовку

Спасибо: 0 
модератор




Пост N: 824
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 05.08.08 18:35. Заголовок: fil пишет: IsExeRun..


fil пишет:

 цитата:
IsExeRunning( <cExeName> ) --> lRunning





HB_FUNC( ISEXERUNNING ) // ( cExeNameCaseSensitive ) --> lResult
{
HANDLE hMutex = CreateMutex( NULL, TRUE, (LPTSTR) hb_parc(1) );

hb_retl( GetLastError() == ERROR_ALREADY_EXISTS );

ReleaseMutex( hMutex );
}



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




Пост N: 860
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.08.08 18:54. Заголовок: gfilatov Спасибо !!..


gfilatov
Спасибо !!!!!!!


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




Пост N: 861
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.08.08 19:56. Заголовок: gfilatov Русской до..


gfilatov
Русской доки не появилось случайно ?
С ней было бы вопросов на много меньше у всех.

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




Пост N: 825
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 05.08.08 21:10. Заголовок: Dima пишет: Русской..


Dima пишет:

 цитата:
Русской доки не появилось случайно ?


Здесь требуется не дока по Харбору, а - по использованию WinAPI

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




Пост N: 862
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.08.08 11:05. Заголовок: gfilatov Где взять ..


gfilatov
Где взять доку по WINAPI на русском ?

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




Пост N: 39
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 06.08.08 16:10. Заголовок: Я сейчас как раз зан..


Я сейчас как раз занимаюсь переводом-оформлением MINIGUI.CHM (HMG ver.1.53 - но для 1.54, думаю, добавок-переделок будет немного). Сильно быстро ("вчера!") не гарантирую - но постараюсь побыстрее (самому нужно, чтобы не париться каждый раз с переводом "в мозгах"!)... Кто может посмотреть "на корректность перевода терминологии"? (например, "implicit" как "по-русски" перевести? "имплицитная"? не всякий - да и я "с устатку" - поймет...).

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


Пост N: 470
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 06.08.08 17:47. Заголовок: gustow пишет: напри..


gustow пишет:

 цитата:
например, "implicit" как "по-русски" перевести? "имплицитная"?


лучше "неявная"
выкладывайте - посмотрим



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




Пост N: 41
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 07.08.08 17:33. Заголовок: Бросил тройку страни..


Бросил тройку страничек (заглавная, "Ваша первая программа" [как пример статьи] и "Action" [как пример описания команды]) - просто "на поглядеть-поругать-похвалить".

Оно тут:
http://upi-rock.narod.ru/MiniGUI_help/index.htm

Комменты можно (кроме как сюда) и на < gustow33 at mail.ru >

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




Пост N: 863
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.08.08 09:54. Заголовок: gustow Что то нет т..


gustow
Что то нет там ни чего..

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


Пост N: 472
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 08.08.08 10:50. Заголовок: Dima пишет: Что то ..


Dima пишет:

 цитата:
Что то нет там ни чего..


Кнопка зеленая с стрелочкой - напротив "Всем привет"

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


Пост N: 473
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 08.08.08 13:36. Заголовок: gustow пишет: прост..


gustow пишет:

 цитата:
просто "на поглядеть-поругать-похвалить"



Я бы определился с стилем написания - или это "для чайников" и тогда выражения типа - пусть она вякнет "Здравствуйте, люди добрые!"; 'Жамкни по мне - бибикну!' могут быть уместны (правда писать в таком стиле тоже уметь нужно ) или..



 цитата:
Ну, про PROCEDURE и RETURN говорить нечего (или вы никогда не программировали? ладно...


Спрашивать у чайников о программировании, ну еще ладно..


 цитата:
это начало и конец процедуры Main - и в каждой (x)Harbour-программе должна быть процедура [и только одна!] c таким именем; с нее начинается выполнение всей программы


It's not true. Т.е. не совсем правда.
Как вы думаете, что будет выведено на консоль в результате выполнения этой программы


 цитата:
--- start file ---
PROCEDURE MyMain()
? "Hello from MyMain()"
RETURN

PROCEDURE _AppMain()
? "Hello from _AppMain()"
RETURN

PROCEDURE Main()
? "Hello from Main()"
RETURN
--- end file---



В моем понимании эта фраза - "выполняемое при клике мышью на контроле" должна была бы звучать как "выполняемое при щелчке мышью на элементе управления"


 цитата:
@ 20, 20 LABEL L1 ;
VALUE "Стереть всё нафиг" ;
ACTION { || dal:=DeleteAllNafig(), ;
iif( dal=.T.,
MsgInfo("Всё нафиг стёрто, мой господин!"), ;
MsgInfo("Ни фига не стёрто, мой господин!") ) }



Аккуратнее с примерами. Я понимаю, что примеры тоже надо уметь писать, но не забывайте, что на них учатся другие.

 цитата:
@ 20, 20 LABEL L1 ;
VALUE "Стереть всё нафиг" ;
ACTION { || MsgInfo( iif( DeleteAllNafig(), "Всё нафиг стёрто, мой господин!", "Ни фига не стёрто, мой господин!" ) }





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




Пост N: 42
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 11.08.08 00:59. Заголовок: По стилю - понял... ..


По стилю - понял... Буду строже (и ТОЧНО копировать примеры [без "самодеятельности"]). Устраивает ли "общий вид"? Нужны ли мои "добавки" - например, скриншоты получающегося в приведенном (в читаемой статье) примере?

Насчет
 цитата:
(правда писать в таком стиле тоже уметь нужно )

- конечно, не собираюсь писать "(x)Harbour+MiniGUI" для чайников" :) ... но судя по (достаточно большому) количеству вопросов, задаваемых в форуме, "гУрам" иногда приходится объяснять начинающим для них ("для "гур") _очевидное_ и _элементарное_ "на пальцах" (я без всякого наезда и на вас, Петр, и на остальных "более разбирающихся" - но припомните, _что_ иногда спрашивают!)...

Хотелось бы, чтобы для "новичка" (перед которым стоит банальная задача: есть старая прога, сделанная на Клиппере; Клиппер я немного знаю, исходники есть [или EXEшка декомпилирована]; как из нее сделать что-то "современное" - с кнопочками, рюшечками и пр.? о! есть какой-то "харбор", к нему какая-то "мини-гуЯ"... ммммм... и как этим пользоваться [не особенно-то разбираясь и в самом-то Клиппере]???)...

Пиша эти примерчики, ориентировался на уровень "познаний" теток-программерш из своей "минздравовской" конторы (где приходится поддерживать еще n-ное кол-во "древних" разработок, которые "писать с нуля" и некому и некогда): им - видя мои "пробы пера" с ГУЯми - и хочется, и колется (язык-то знакомый - только кой-чему "без особого напряга" подучиться; и будет она писать проги "прямо как на Вижал Се")... Да еще ориентировался на то, как объясняю "основы" своей 13-летней дочке - и она уже вполне "программит"!..

Конечно, это не аргументы для превращения _справочника_ в "цирк"... так что постараюсь быть "построже".

В общем, кину на днях еще - и буду ждать "правок" (я не обижаюсь на _обоснованную_ критику - все-таки никакой я не "тех.пис."; но... что-то никто из "умеющих писать" почему-то до сих пор не "отважился" - что, кстати, скажется и на кол-ве желающих попользоваться МиниГУИ... да и Харбором как таковым [а зачем тогда Григорий со товарищи всё это "лудят"?? для пары-тройки гиков?]).

Да! еще напоследок (опять же без желания "открывать дискуссию") - в приведенном Петром примере имеется три процедуры с РАЗНЫМИ именами... Петр, просто из теоретического интереса попробуйте в _одном_ .PRG создать _две_ функции MAIN() (именно с _одинаковыми_ - абсолютно - именами; и без всяких придумок - а просто)... Я, как ни старался, так и не смог скормить _такое_ компилятору (он, придурок, почему-то "ругался")... Но вдруг у вас получится?

Кстати, Петр, спасибо (без стёба - большое!) за критику и поправки (насколько я понимаю - остальным либо влом, либо нафиг не интересно). И не перенести ли вопрос "о русской доке" в отдельную ветку?

Товарищи! Еще раз подчеркиваю - я ЧАЙНИК!!! (во всяком случае, таковым себя считаю - поскольку знаю достаточно много программистов, по сравнению с которыми я действительно не знаю практически НИЧЕГО). Однако же достаточно много и таких, которые "завтра узнают то, что я уже давно забыл"... :)

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


Пост N: 474
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 11.08.08 17:42. Заголовок: gustow пишет: Нужны..


gustow пишет:

 цитата:
Нужны ли мои "добавки" - например, скриншоты


Нужны, и примеры нужны. Справка MiniGUI уж очень спартанская.


 цитата:
что-то никто из "умеющих писать" почему-то до сих пор не "отважился" - что, кстати, скажется и на кол-ве желающих попользоваться МиниГУИ... да и Харбором как таковым [а зачем тогда Григорий со товарищи всё это "лудят"??


Это к Григорию, особенно вторая часть вопроса.
По первой позволю себе заметить, что грамотно написать документацию может не каждый программист.

gustow пишет:

 цитата:
Да! еще напоследок (опять же без желания "открывать дискуссию") - в приведенном Петром примере имеется три процедуры с РАЗНЫМИ именами... Петр, просто из теоретического интереса попробуйте


Боюсь дискуссии не получится
Да действительно обьявить две функции с одинаковыми именами (и не только Main) не получится. Но ведь я об этом и не говорил: если вы описываете Main - вы должны обязательно упомянуть _AppMain и ключ компилятора -n, хотя это к MiniGUI и никакого отношения не имеет.



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




Пост N: 43
Зарегистрирован: 06.02.07
ссылка на сообщение  Отправлено: 12.08.08 00:18. Заголовок: Понял. Напишу, как п..


Понял. Напишу, как получится. "Кто любит более тебя - напишет более меня" :)

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 17.08.08 07:48. Заголовок: gustow пишет: Понял..


gustow пишет:

 цитата:
Понял. Напишу


В связке харбор+FWH многие используют UEStudio
По ссылке ниже пример описпния , как ее использовать.
Может натолкнет на нвые мысли или чем поможет :))

http://www.atzwanger.com/FWHRAD/FWHRAD.html



Спасибо: 0 
постоянный участник




Пост N: 645
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.08.08 10:04. Заголовок: Dima пишет: Где взя..


Dima пишет:

 цитата:
Где взять доку по WINAPI на русском ?


Могу выслать на ящик.

Спасибо: 0 
Профиль



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 18.08.08 10:28. Заголовок: Andrey пишет: Могу ..


Andrey пишет:

 цитата:
Могу выслать на ящик


Благодарность не будет знать границ .... :))))
mkizev////mail.ru

Спасибо: 0 
администратор




Пост N: 867
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 18.08.08 11:12. Заголовок: Andrey пишет: Могу ..


Andrey пишет:

 цитата:
Могу выслать на ящик


Буду ждать
тёрк-тёрк////тёрк.ru ;)

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




Пост N: 646
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.08.08 16:24. Заголовок: Dima А кинь пожалу..


Dima

А кинь пожалуйста примером который ты сделал на чистом хХарборе !



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




Пост N: 868
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.08.08 10:06. Заголовок: Andrey пишет: А кин..


Andrey пишет:

 цитата:
А кинь пожалуйста примером который ты сделал на чистом хХарборе !


Примером чего Андрей ?

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




Пост N: 647
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.08 10:20. Заголовок: Dima пишет: Примеро..


Dima пишет:

 цитата:
Примером чего Андрей ?


Примером: "Как запретить запуск одной проги несколько раз ?"
или ты его не сделал ?


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




Пост N: 869
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.08.08 11:05. Заголовок: if isexerunnin..





 цитата:

Proc Main
if isexerunning("test")
? "Прога уже запущена"
quit
endif
return nil

#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>
#include <shlobj.h>
HB_FUNC( ISEXERUNNING ) // ( cExeNameCaseSensitive ) --> lResult
{
HANDLE hMutex = CreateMutex( NULL, TRUE, (LPTSTR) hb_parc(1) );
hb_retl( GetLastError() == ERROR_ALREADY_EXISTS );
ReleaseMutex( hMutex );
}
#pragma ENDDUMP





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




Пост N: 648
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.08 12:28. Заголовок: Спасибо Дима ! :sm3..


Спасибо Дима !

А как автоматически определять имя проги ?
Если она будет не "test" ?

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




Пост N: 870
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.08.08 12:43. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как автоматически определять имя проги ?
Если она будет не "test" ?


Ну ты ведь знаешь заранее как ты обзовешь EXE шник ;)
Хотя возможно есть такая функция в CT EXENAME()

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




Пост N: 871
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 20.08.08 12:44. Заголовок: Andrey По ходу в пр..


Andrey
По ходу в присланной тобой докуметации я так и не нашел функции CreateMutex()

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




Пост N: 649
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 20.08.08 23:05. Заголовок: А что это за функция..


А что это за функция ?
Что ты хочешь сделать ?

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




Пост N: 654
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.09.08 13:21. Заголовок: Сделал прогу, только..


Сделал прогу, только не могу поднять "запущенную ранее программу" !
Как получить "хендл" запущенной ранее программы ?

===========================================================
#define MYPROGRAM " Программа проверки запуска ! "

Procedure Main
LOCAL nI:=0, nKey, hWnd := GetForegroundWindow()
LOCAL cNameWin, cExeRun := SUBSTR(EXENAME(), RAT("\",EXENAME())+1 )

IF hb_gt_version() == "WVT"
// Если используется граф.терминал GTWVT.LIB
cNameWin := HB_OEMTOANSI( MYPROGRAM )
ELSE
cNameWin := MYPROGRAM
ENDIF
GTInfo( 26, cNameWin )

SETCOLOR("15/2")
CLEAR SCREEN
? "Номер окна:", hWnd
? "Имя ЕХЕ-файла: ", cExeRun

if isexerunning(cExeRun)
ALERT("Прога уже запущена !")
// Как сделать переключение на ренее запущенную программу ?
MAXIMIZE( hWnd ) // - не работает
tone(400,2)
quit
endif

DO WHILE .T.
nKey := INKEY(1)
IF nKey == 27 // K_ESC
EXIT
ENDIF
@ 4,2 SAY "ESC-выход Режим ожидания:"
?? nI++
ENDDO

return

#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>
#include <shlobj.h>

HB_FUNC( ISEXERUNNING ) // ( cExeNameCaseSensitive ) --> lResult

HANDLE hMutex = CreateMutex( NULL, TRUE, (LPTSTR) hb_parc(1) );
hb_retl( GetLastError() == ERROR_ALREADY_EXISTS );
ReleaseMutex( hMutex );


HB_FUNC( GETFOREGROUNDWINDOW )

hb_retnl( (LONG) GetForegroundWindow() );


HB_FUNC( MINIMIZE )

ShowWindow( (HWND) hb_parnl(1), SW_MINIMIZE );


HB_FUNC( MAXIMIZE )

ShowWindow( (HWND) hb_parnl(1), SW_RESTORE );


#pragma ENDDUMP
==================================================


Спасибо: 0 
Профиль
Ответов - 34 , стр: 1 2 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 252
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет