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




Пост N: 1724
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.03.11 10:45. Заголовок: Парадокс проверки... или кривой код ?


Всем привет.
Столкнулся с пробемой запуска программы месяца 2 назад. Небольшое пояснение: в фирме стоит моя сетевая программа.
В качестве антивируса официальный DRWEB на всех компах, обновлется через инет. Проверку моей папки ВООБЩЕ отключили.
На 2 компах (98 и ХР) моя прога запускается сразу (меньше минуты),
а на других 3 (ХР) - тормоза, запуск примерно минут через 20 !!!
Грешил на сеть, свич и т.д.
А ларчик просто открылся. Сделал трасировку задачи (написал запись в лог-файл время выполнения всех функций при запуске).
И выяснил, что единственный тормоз это функция - Проверки запуска предыдущей копии программы !!!
Время ее выполнения 20 мнут в среднем... Почему, непонятно ?
Код программы хХарбор 1.0+BCC привожу :http://zalil.ru/30765956

Кто подскажет как исправить систему или код ?
Переставлять систему не могу, стоит банк-клиент, бухгалтерская прога и т.д. Все компы рабочие, не тормозят...

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





Пост N: 91
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 30.03.11 11:26. Заголовок: Сделать эту проверку..


Сделать эту проверку не через мутекс, а через findwindow или taskbar. Всяко моно..

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


Пост N: 510
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.03.11 11:44. Заголовок: ... да и мютекс рабо..


... да и мютекс работает...

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


Пост N: 511
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 30.03.11 12:09. Заголовок: Andrey пишет: И выя..


Andrey пишет:

 цитата:
И выяснил, что единственный тормоз это функция - Проверки запуска предыдущей копии программы


Ну, теперь таким же образом выясни, в каком месте этой функции затык происходит.

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




Пост N: 1725
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.03.11 13:15. Заголовок: fil пишет: Сделать ..


fil пишет:

 цитата:
Сделать эту проверку не через мутекс, а через findwindow или taskbar. Всяко моно..



А как ? Приведи пример пожалуйста...


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



Пост N: 92
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 30.03.11 13:45. Заголовок: Ну как - по findwind..


Ну как - по findwindow ищем главное окно твоей проги с заголовком (см. на форуме)
Ежели в MiniGui моно получить список задач/процессов, то по имени exe-шника

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




Пост N: 1807
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.06.11 22:05. Заголовок: Добрался я наконец т..


Добрался я наконец то до тормознутых компов в сетке.
Сделал отдельную прогу проверки запуска. Исходник здесь: http://files.mail.ru/OU0J16


На 2-х компах в сетке проверяестя примерно за 8 сек.
Лог-файл: Скрытый текст


На других (уже 4 штуки) компах минут по 20 !!!
Картинку привожу:
Увеличить

Кусок лог-файла привожу (целиком не дождался): Скрытый текст


Почему такая разница ? В чем может быть проблема ?
Стоит официальный DRWEB, обновления скачивает свежие с инета.
Даже отключал его, все равно медленно грузится программа !
Правдо чуток подтормаживает WORD на них, остальное быстро вроде запускаются.
Кто поможет решить эту проблему ?

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




Пост N: 1808
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.06.11 22:16. Заголовок: Добрался я наконец т..


Добрался я наконец то до тормознутых компов в сетке.
Сделал отдельную прогу проверки запуска. Исходник здесь: http://files.mail.ru/OU0J16

На 2-х компах в сетке проверяестя примерно за 8 сек.
Лог-файл: Скрытый текст


На других (уже 4 штуки) компах минут по 20 !!!
Картинку привожу:
Увеличить

Кусок лог-файла привожу (целиком не дождался): Скрытый текст


Почему такая разница ? В чем может быть проблема ?
Стоит официальный DRWEB, обновления скачивает свежие с инета.
Даже отключал его, все равно медленно грузится программа !
Правдо чуток подтормаживает WORD на них, остальное быстро вроде запускаются.
Кто поможет решить эту проблему ?

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




Пост N: 2083
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.06.11 08:19. Заголовок: Andrey пишет: Кто п..


Andrey пишет:

 цитата:
Кто поможет решить эту проблему ?



Пробовал Malwarebytes' Anti-Malware ?

PS
Можно полистать и эту тему ;)
http://clipper.b.qip.ru/?1-3-0-00000119-000-0-0-1281103837

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


Пост N: 551
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 29.06.11 10:02. Заголовок: Андрей, скачай прогр..


Андрей, скачай программу HijackThis, сохрани лог и выложи его здесь.
Вот краткая справка по работе с этой программой: http://www.saule-spb.ru/articles/hijackthis.html

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




Пост N: 1966
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.12.11 13:36. Заголовок: PSP пишет: Андрей, ..


PSP пишет:

 цитата:
Андрей, скачай программу HijackThis, сохрани лог и выложи его здесь.



Выложил.
Скрытый текст


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


Пост N: 636
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 13.12.11 13:55. Заголовок: Andrey пишет: C:&#..


Andrey пишет:

 цитата:

C:\WINDOWS\switchit.exe
O4 - HKLM\..\Run: [switchit.exe] switchit.exe


Что такое switchit.exe?

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




Пост N: 2229
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.12.11 13:58. Заголовок: PSP пишет: Что тако..


PSP пишет:

 цитата:
Что такое switchit.exe?


http://www.switchit.ru/rus/default.htm

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


Пост N: 637
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 13.12.11 14:07. Заголовок: Dima, ясно. :)..


Dima, ясно. :)

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




Пост N: 1967
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.12.11 14:47. Заголовок: PSP пишет: Что тако..


PSP пишет:

 цитата:
Что такое switchit.exe?



В свойствах программы:
Переключатель раскладок клавиатуры Switch It!
Michael Gromov, 191123, p/o box 83, St.Petersburg, Russia. E-Mail: mgromov@usa.net

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




Пост N: 1968
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.12.11 17:12. Заголовок: Сегодня запустил про..


Сегодня запустил программу (см. выше), так она через 2 час. 48 мин. стартанула.....
Лог-файл запуска: Скрытый текст



На других компах, кроме этой конторы у меня НИГДЕ так не получается....

Сам исходник и программа здесь: http://zalil.ru/32266076

У кого будут предложения как вылечить 6-8 компов....
Пиво за мной...

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




Пост N: 2230
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.12.11 18:08. Заголовок: Andrey Был у меня п..


Andrey
Был у меня похожий случай. Прога запускалась не через 2 часа конечно , но тормоза при ее
работе были жуткие , в то время как другие компы в той же сети и в той же проге (сетовой) вели
себя нормально. Дело было в сетевом принтере и драйверах на него. Принтер был HP , модель не помню

Andrey пишет:

 цитата:
66008 BluetoothNotificationAreaIconWindowClass


А попробуй временно отключить Bluetooth

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


Пост N: 638
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 13.12.11 19:00. Заголовок: Andrey, прога запуск..


Andrey, прога запускается с сетевого ресурса? Ты пробовал запускать ее локально?

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


Пост N: 639
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 13.12.11 19:45. Заголовок: Мой предыдущий вопро..


Мой предыдущий вопрос снимается, можно не отвечать.
Андрей, ты просто хочешь выяснить, есть ли окно с определенным именем?
Нечто подобное когда-то работало:
 
#include "hbgtinfo.ch"
#include "inkey.ch"
#include "common.ch"


FUNCTION Main()

REQUEST HB_GT_WVT_DEFAULT
REQUEST HB_GT_WVT

? "Searching window by name 'Temp'"
hb_gtInfo( HB_GTI_WINTITLE , "Temp" )

WHILE ( n := FindWindow( "Temp" ) ) == 0
IF Inkey() == K_ESC
EXIT
END // IF
HB_ReleaseCPU()
END // WHILE

? "Window number is " + Str( n )
WAIT

RETURN NIL



#PRAGMA BEGINDUMP

#include "hbapi.h"
#include "windows.h"

HB_FUNC( FINDWINDOW )
{
hb_retnl( (LONG)FindWindow( NULL, hb_parc( 1 ) ) ) ;
}

#pragma ENDDUMP


Как видишь, все намного проще... :)

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


Пост N: 640
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 13.12.11 20:36. Заголовок: Вот такой пример, д..


Вот такой пример, думаю, будет более подходящим:
 
FUNCTION Main()

REQUEST HB_GT_WVT_DEFAULT
REQUEST HB_GT_WVT

? "Searching window by name 'Proga'"

IF ( n := FindWindow( "Proga" ) ) <> 0
? "Program is already running. It is window No " + Str( n )
ELSE
hb_gtInfo( HB_GTI_WINTITLE , "Proga" )
? "This is first copy of 'Proga'"
END // IF

WAIT

RETURN NIL


Важно, чтобы название exe-шника не совпадало с названием окна.
Если название окна - по-русски, оно должно быть в win-кодировке.

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


Пост N: 1038
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 14.12.11 03:22. Заголовок: Andrey пишет: Кто п..


Andrey пишет:

 цитата:
Кто поможет решить эту проблему ?


Читать до просветления 'http://www.rsdn.ru/?article/?baseserv/avins.xml'

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


Пост N: 641
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 14.12.11 09:21. Заголовок: Петр пишет: Читать ..


Петр пишет:

 цитата:
Читать до просветления


Мда... ФайндВиндоу несколько не то, как оказалось... Читаем дальше. Спасибо, Петр!

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


Пост N: 642
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 14.12.11 11:47. Заголовок: Петр, где можно проч..


Петр, где можно прочитать о функциях работы с мютексами в Харборе (hb_mutexCreate() и связанные с ней...)?

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


Пост N: 1039
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 14.12.11 16:05. Заголовок: PSP пишет: где можн..


PSP пишет:

 цитата:
где можно прочитать о функциях работы с мютексами в Харборе


Даже и не знаю, что написать.
Если мне не изменяет память, была в почтовой рассылке harbour-dev переписка между Пржемеком (Przemyslaw Czerpak) и Миндаугасом (Mindaugas Kavaliauskas) на эту тему. Но у меня ссылки нет.

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


Пост N: 276
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 14.12.11 16:59. Заголовок: Решить проблему запу..


Решить проблему запуска не более одного экземпляра программы можно по-другому, без поиска окон. Запускаемый экземпляр программы открывает монопольно на компе ( при чем не важно где находится exe в сети или на рабочей станции) сигнальную таблицу, к примеру ...\temp\start.dbf. Если ее нет - создает.Второй экземпляр программы то же повторить не сможет. Естестственно, надо предусмотреть в подобных случаях обработку ошибок, выдачу сообщений и т.п. , чтобы пользователю было ясно, что он неправильно сделал. Подобным образом можно контролировать и вход по одному ЛОГИНУ не более одного человека.

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




Пост N: 2231
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.12.11 17:46. Заголовок: PSP http://clipper...

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


Пост N: 643
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 14.12.11 18:33. Заголовок: Дима, спасибо за ссы..


Петр, спасибо!
Дима, спасибо за ссылку!
Я подразумевал некий мануал... Понимаю, что далеко не всегда он имеется.

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




Пост N: 1971
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.12.11 20:14. Заголовок: Vlad04 пишет: Реши..


Vlad04 пишет:

 цитата:

Решить проблему запуска не более одного экземпляра программы можно по-другому, без поиска окон. Запускаемый экземпляр программы открывает монопольно на компе ( при чем не важно где находится exe в сети или на рабочей станции) сигнальную таблицу, к примеру ...\temp\start.dbf. Если ее нет - создает.Второй экземпляр программы то же повторить не сможет.



Такое же я делал на Клипере. Иногда сбоит. При слете программы на некоторых системах, включая ХР база остается блокированной.
Юзера не знали что делать... Помогала только перезагрузка компа.
Переделал на другой вариант, который представлен выше.
Разные программы с таким вариантом "определения повторного запуска" работает на более 100 компов в различных городах.
И только в ОДНОМ месте у меня такой "затык" !!!

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


Пост N: 277
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 15.12.11 07:18. Заголовок: И только в ОДНОМ мес..



 цитата:
И только в ОДНОМ месте у меня такой "затык" !!!


Значит в операционке "косяки". Переустановить

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


Пост N: 644
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 15.12.11 07:56. Заголовок: Vlad04 пишет: Значи..


Vlad04 пишет:

 цитата:
Значит в операционке "косяки". Переустановить


Это не на одном компе, как я понял. Это - "в ОДНОМ месте" на нескольких компах.

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




Пост N: 1972
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.12.11 08:54. Заголовок: PSP пишет: Это не н..


PSP пишет:

 цитата:
Это не на одном компе, как я понял. Это - "в ОДНОМ месте" на нескольких компах.



Да, правильно. В одно месте на 6-ти компах.
Планирую привезти туда свой ноутбук (акция - "подцепи себе трояна" ) и посмотреть как будет работать программа на чистой операционке.

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


Пост N: 645
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 15.12.11 08:55. Заголовок: А вот все-таки, Андр..


А вот все-таки, Андрей, ты локально запускаешь прогу или из сети?

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




Пост N: 1973
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.12.11 09:38. Заголовок: PSP пишет: А вот вс..


PSP пишет:

 цитата:
А вот все-таки, Андрей, ты локально запускаешь прогу или из сети?



Прога сетевая. Клиентское место (ехе-ник) запускаю локально.



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



Пост N: 50
Зарегистрирован: 18.02.11
ссылка на сообщение  Отправлено: 15.12.11 12:55. Заголовок: Андрей, воспользуйся..


Андрей, воспользуйся CreateFile из Win API с атрибутом FILE_ATTRIBUTE_TEMPORARY. Файл существкет пока есть его handler, т.е. пока работает приложение (или сам не закроешь handler).

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


Пост N: 1040
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 15.12.11 13:54. Заголовок: Andrey пишет: Плани..


Andrey пишет:

 цитата:
Планирую привезти туда свой ноутбук


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

Очень интересно, у них там на каждом рабочем месте запускают FireBird и MySQL, сервер лицензий FineReader, Radmin и TeamViewer, плюс ко всему Skype и ISQ?


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




Пост N: 1974
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 15.12.11 16:09. Заголовок: Петр пишет: Очень и..


Петр пишет:

 цитата:
Очень интересно, у них там на каждом рабочем месте запускают FireBird и MySQL, сервер лицензий FineReader, Radmin и TeamViewer, плюс ко всему Skype и ISQ?



FireBird и MySQL - только на этом удаленном компе, удалил уже их.
Radmin - на всех компах
TeamViewer + Skype - только на этом компе, чтоб через инет доступ был, по очистке.
ISQ - только на нем.


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


Пост N: 279
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 16.12.11 05:28. Заголовок: SergejKis воспользу..


SergejKis

 цитата:
воспользуйся CreateFile из Win API с атрибутом FILE_ATTRIBUTE_TEMPORARY.


А в коде Харбор как это будет выглядеть?

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


Пост N: 1041
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 16.12.11 11:06. Заголовок: Vlad04 пишет: А в к..


Vlad04 пишет:

 цитата:
А в коде Харбор как это будет выглядеть?


А в Harbour есть функция hb_dbCreateTemp()

hb_dbCreateTemp() - create temporary table which are automatically deleted on close. All indexes and
memo files for such tables are also in temporary files and automatically deleted on close.
Please remember that Harbour uses OS functions to create temporary files so it's installation dependent
how much disk space is available for them.
Some RDDs may also do not create temporary files but keep everything in memory if they
decide it's more efficient.


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


Пост N: 280
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 16.12.11 12:58. Заголовок: ок. Спасибо, учтем..


ок. Спасибо, учтем

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


Пост N: 646
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 16.12.11 14:26. Заголовок: Петр пишет: А в Har..


Петр пишет:

 цитата:
А в Harbour есть функция hb_dbCreateTemp()


Она вряд ли подойдет для целей, обсуждаемых в этой теме. Файл создается со случайным именем, узнать которое невозможно.
hb_dbCreateTemp( <cAlias>, <aStruct>, <cRDD>, <cCodePage>, <nConnection> ) -> <lSuccess>


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


Пост N: 1044
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 16.12.11 17:55. Заголовок: PSP пишет: Она вряд..


PSP пишет:

 цитата:
Она вряд ли подойдет для целей, обсуждаемых в этой теме. Файл создается со случайным именем, узнать которое невозможно.


Если сильно хочется, то почему нет?

hb_dbCreateTemp, hb_FTempCreate, hb_FTempCreateEx + куча функций для роботы с файлами, добавленных в Harbour - используйте, как душа пожелает

Возвращаясь к

 цитата:
воспользуйся CreateFile из Win API с атрибутом FILE_ATTRIBUTE_TEMPORARY.


атрибут FILE_ATTRIBUTE_TEMPORARY можно установить так.
#include "fileio.ch" 

FUNCTION test()
LOCAL hFile, cName, nAttr := 20

cName := hb_dirBase() + "~semaphore"
FErase( cName )

hFile := hb_FCreate( cName, FC_HIDDEN, FO_EXCL + FO_EXCLUSIVE )
IF hFile != F_ERROR
FWrite( hFile, "RkN" + hb_eol(), 5 )
wapi_SetFileAttributes( cName, HB_FA_NOTINDEXED + HB_FA_TEMPORARY )

hb_FGetAttr( cName, @nAttr )
IF nAttr != 0x2120
? "Sorry again.."
RETURN .F.
ENDIF

RETURN .T.
ENDIF

RETURN .F.

#pragma BEGINDUMP

#include "hbapi.h"
#include "hbvm.h"
#include "hbapifs.h"

#if defined( HB_OS_WIN )
#include "windows.h"

HB_FUNC( WAPI_SETFILEATTRIBUTES )
{
const char * pszFileName = hb_parcx( 1 );
HB_FATTR ulAttr = hb_parnl( 2 );
HB_BOOL fResult;
char * pszFree;

HB_TRACE(HB_TR_DEBUG, ("wapi_SetFileAttributes(%s, %u)", pszFileName, ulAttr));

pszFileName = hb_fsNameConv( pszFileName, &pszFree );

hb_vmUnlock();

{
LPTSTR lpFilename = HB_TCHAR_CONVTO( pszFileName );
DWORD dwFlags = FILE_ATTRIBUTE_ARCHIVE;

if( ulAttr & HB_FA_HIDDEN )
dwFlags |= FILE_ATTRIBUTE_HIDDEN;
if( ulAttr & HB_FA_NORMAL )
dwFlags |= FILE_ATTRIBUTE_NORMAL;
if( ulAttr & HB_FA_NOTINDEXED )
dwFlags |= FILE_ATTRIBUTE_NOT_CONTENT_INDEXED;
if( ulAttr & HB_FA_OFFLINE )
dwFlags |= FILE_ATTRIBUTE_OFFLINE;
if( ulAttr & HB_FA_READONLY )
dwFlags |= FILE_ATTRIBUTE_READONLY;
if( ulAttr & HB_FA_SYSTEM )
dwFlags |= FILE_ATTRIBUTE_SYSTEM;
if( ulAttr & HB_FA_TEMPORARY )
dwFlags |= FILE_ATTRIBUTE_TEMPORARY;

fResult = SetFileAttributes( lpFilename, dwFlags ) != 0;
hb_fsSetIOError( fResult, 0 );

HB_TCHAR_FREE( lpFilename );
}

hb_vmLock();

if( pszFree )
hb_xfree( pszFree );

hb_retl( fResult );
}
#endif

#pragma ENDDUMP

Из-за кросплатформенности hb_FSetAttr просто игнорирует некоторые специфичные файловые атрибуты, по этому пришлось написать обертку к SetFileAttributes().
Результат дополнительно можно перепроверить так (XP и выше)
fsutil usn readdata ~semaphore
или в Far-e Файлы->Атрибуты файлов
или другим доступным вам методом
Почитать о атрибутах файла можна здесь click here

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

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


Пост N: 647
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 16.12.11 19:18. Заголовок: Петр пишет: что де..


Петр пишет:

 цитата:
что делает hbDrop() - уже меньше народу сможет (сказать)


А что она делает? :)

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




Пост N: 2232
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 16.12.11 19:36. Заголовок: DbDrop вижу , HbDrop..


DbDrop вижу , HbDrop - нет ;)

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


Пост N: 1045
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 16.12.11 19:45. Заголовок: PSP пишет: А что он..


PSP пишет:

 цитата:
А что она делает? :)


Пока еще ничего, не написали
Dima пишет:

 цитата:
DbDrop вижу , HbDrop - нет ;)


Все правильно DbDrop() или hb_dbDrop() - удаляет таблицу и связанные с ней файлы (мемо, индексы).


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


Пост N: 648
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 16.12.11 19:49. Заголовок: Петр :sm12: ..


Петр

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


Пост N: 1046
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 16.12.11 19:55. Заголовок: PSP пишет: Файл соз..


PSP пишет:

 цитата:
Файл создается со случайным именем, узнать которое невозможно.


Можно с помощью dbInfo( DBI_FILEHANDLE ) узнать хэндл файла, а потом с помощью Api и имя

Дописано 10 лет спустя
Хотя можно сразу dbInfo( DBI_FULLPATH ) воспользоваться (всегда почему-то думал, что DBI_FULLPATH возвращает только путь к таблице..)

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




Пост N: 2428
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.11.12 12:00. Заголовок: Опять возвращаюсь к ..


Опять возвращаюсь к данной теме ! См. выше...
Теперь засада на ДВУХ новых, чистых компах с Win7 Home....
Т.е. опять программа грузиться примерно 20 минут.
Функция ISEXERUNNING( cExeRun ) из МиниГуи работает очень быстро.
Все дело в функции
aStart := GetWindowList() // Считать ХЕНДЛ окна и ИМЯ окна - взята из МиниГуи !
которая используется для чтения всех ХЕНДЛОВ окон в системе HB_FUNC( GETWINDOWTEXT )
Она тормозит на таких "особых" компах !

Т.е. мне нужно отказаться от этой функции и все заработает.
А эту функцию я использую для определения НОМЕРА ХЕНДЛА уже запущенной моей программы,
для переключения её на передний план - MAXIMIZE( nStartHendl ).
Для этого встает простая задача найти функцию, которая
возвращает НОМЕР ХЕНДЛА окна по НАЗВАНИЮ окна.
Есть ли такая функция на хХарборе или МиниГуи?

Исходник здесь: http://files.mail.ru/40X51U

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




Пост N: 3035
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.10.13 21:20. Заголовок: Добился я нормальной..


Добился я нормальной проверки запуска ВТОРОЙ копии программы для хХарбора.
В МиниГуи и то проще...
Программа проверки запуска второй копии программы ! - Verification Program run a second copy of the program !
Вот мой исходник, кому интересно.
http://files.mail.ru/CAFC3DED6EF647599D009563E9C6DF71
Исправления приветствуются !
Очень аккуратно нужно разбираться с титулом окна, если используешь 866 кодировку и терминал GTWVT.


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




Пост N: 3658
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.10.13 21:24. Заголовок: Andrey пишет: Добил..


Andrey пишет:

 цитата:
Добился я нормальной проверки запуска ВТОРОЙ копии программы для хХарбора.


А что проблемы были ?
На Harbour проблемы не увидел у себя , все четко.

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




Пост N: 3037
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.10.13 21:52. Заголовок: Dima пишет: А что п..


Dima пишет:

 цитата:
А что проблемы были ?


Еще какие... ... МиниГуи и Григорий помог....

Дима, а как считать "титул окна задачи" для Харбора ?

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




Пост N: 3659
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.10.13 22:08. Заголовок: Andrey пишет: Дима,..


Andrey пишет:

 цитата:
Дима, а как считать "титул окна задачи" для Харбора ?


для чего ?

ps
ISEXERUNNING написанный с использованием Mutex замечательно работает.

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




Пост N: 3038
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.10.13 22:18. Заголовок: Dima пишет: для чег..


Dima пишет:

 цитата:
для чего ?


Для вывода в переменную. Просто для себя.

Dima пишет:

 цитата:
ISEXERUNNING написанный с использованием Mutex замечательно работает.



Я и не спорю.

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

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