purebasic.info

PureBasic forum
Текущее время: Ср сен 19, 2018 10:03 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Работа с оффлайн реестром - offreg.dll
СообщениеДобавлено: Пн фев 19, 2018 8:44 am 
Не в сети
ассистент

Зарегистрирован: Пн фев 19, 2018 8:40 am
Сообщений: 17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
У ребят с майкрософта, имеется замечательная длл_ка offreg.dll для работы с оффлайн реестром.
Много где используется и удобнее, медленного reg.exe (монтирования реестра и размонтирование)
Используется, например в WinNTSetup
Если нужно, могу выложить часть кода на AutoIT
На вид, код не сложный... Загрузка длл по посыл ей команды.
Поискав на просторах интернета, к сожалению не нашел реализации обвеса на PureBasic.
Люди добрые, помогите новичку. Я в WinAPI не бум-бум.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн фев 19, 2018 6:32 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1694
Откуда: Алматы
Благодарил (а): 15 раз.
Поблагодарили: 46 раз.
Пункты репутации: 5
так жеж по твоей ссылке как раз все описания команд. посмотри примеры импорта библиотеки в свой проект в хелпе к PB.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн фев 19, 2018 8:56 pm 
Не в сети
ассистент

Зарегистрирован: Пн фев 19, 2018 8:40 am
Сообщений: 17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Да новичок, помогите если так просто...


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пн фев 19, 2018 9:29 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1694
Откуда: Алматы
Благодарил (а): 15 раз.
Поблагодарили: 46 раз.
Пункты репутации: 5
хорошо. давай с самого начала. ты смотрел примеры в хелпе как библиотеки импортировать? кидай код с указанием пути до этой оффрег. дальше скажу чо делать :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт фев 20, 2018 7:13 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6382
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
Там все просто, главное найти эту DLL. Потом прогоняешь её через утилиту DLLHelper и она автоматически делает шаблон с прототипами:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
; https://msdn.microsoft.com/en-us/library/ee210756?f=255&MSPPError=-2147217396
Prototype  ORCloseHive(Handle)
Prototype  ORCloseKey(Handle)
Prototype  ORCreateHive(*phkResult)
Prototype  ORCreateKey(a, b, c, d, e, f, g)
Prototype  ORDeleteKey(a, b)
Prototype  ORDeleteValue(a, b)
Prototype  OREnumKey(a, b, c, d, e, f, g)
Prototype  OREnumValue(a, b, c, d, e, f, g)
Prototype  ORGetKeySecurity(a, b, c, d)
Prototype  ORGetValue(a, b, c, d, e, f)
Prototype  ORGetVersion(*pdwMajorVersion, *pdwMinorVersion)
Prototype  ORGetVirtualFlags(a, b)
Prototype  OROpenHive(a, b)
Prototype  OROpenKey(Handle, lpSubKeyName.s, *phkResult)
Prototype  ORQueryInfoKey(a, b, c, d, e, f, g, h, i, j, k)
Prototype  ORSaveHive(a, b, c, d)
Prototype  ORSetKeySecurity(a, b, c)
Prototype  ORSetValue(a, b, c, d, e)
Prototype  ORSetVirtualFlags(a, b)
 
Global ORCloseHive.ORCloseHive
Global ORCloseKey.ORCloseKey
Global ORCreateHive.ORCreateHive
Global ORCreateKey.ORCreateKey
Global ORDeleteKey.ORDeleteKey
Global ORDeleteValue.ORDeleteValue
Global OREnumKey.OREnumKey
Global OREnumValue.OREnumValue
Global ORGetKeySecurity.ORGetKeySecurity
Global ORGetValue.ORGetValue
Global ORGetVersion.ORGetVersion
Global ORGetVirtualFlags.ORGetVirtualFlags
Global OROpenHive.OROpenHive
Global OROpenKey.OROpenKey
Global ORQueryInfoKey.ORQueryInfoKey
Global ORSaveHive.ORSaveHive
Global ORSetKeySecurity.ORSetKeySecurity
Global ORSetValue.ORSetValue
Global ORSetVirtualFlags.ORSetVirtualFlags
 
Procedure.i offreg_LoadDLL()
  Protected hDLL.i
 
  hDLL = OpenLibrary(#PB_Any, "offreg.dll")
  If hDLL <> 0
    ORCloseHive = GetFunction(hDLL, "ORCloseHive")
    ORCloseKey = GetFunction(hDLL, "ORCloseKey")
    ORCreateHive = GetFunction(hDLL, "ORCreateHive")
    ORCreateKey = GetFunction(hDLL, "ORCreateKey")
    ORDeleteKey = GetFunction(hDLL, "ORDeleteKey")
    ORDeleteValue = GetFunction(hDLL, "ORDeleteValue")
    OREnumKey = GetFunction(hDLL, "OREnumKey")
    OREnumValue = GetFunction(hDLL, "OREnumValue")
    ORGetKeySecurity = GetFunction(hDLL, "ORGetKeySecurity")
    ORGetValue = GetFunction(hDLL, "ORGetValue")
    ORGetVersion = GetFunction(hDLL, "ORGetVersion")
    ORGetVirtualFlags = GetFunction(hDLL, "ORGetVirtualFlags")
    OROpenHive = GetFunction(hDLL, "OROpenHive")
    OROpenKey = GetFunction(hDLL, "OROpenKey")
    ORQueryInfoKey = GetFunction(hDLL, "ORQueryInfoKey")
    ORSaveHive = GetFunction(hDLL, "ORSaveHive")
    ORSetKeySecurity = GetFunction(hDLL, "ORSetKeySecurity")
    ORSetValue = GetFunction(hDLL, "ORSetValue")
    ORSetVirtualFlags = GetFunction(hDLL, "ORSetVirtualFlags")
 
    ProcedureReturn hDLL
  EndIf
 
  ProcedureReturn #False
EndProcedure
 
If offreg_LoadDLL()
  ORGetVersion(@maj,@min);  для проверки работы DLL
  Debug maj
  Debug min
 
 
EndIf
 


Мне сильно лень заполнять все прототипы, но сверху оставил ссылку на MSDN, надо все буковки
где ORХХХХХХХХ(a, b, c, d, e, f, g) заменить на реальные названия (что бы не путаться, работать то будет и с буковками) из MSDN и главное типы переменных должны соответствовать реальным типам.

Я несколько штук привел к действительности, чисто для проверки, например
Prototype ORGetVersion(*pdwMajorVersion, *pdwMinorVersion) + проверил работу - выдает как и написано 1 и 0
Остальная работа за ТС.
И неплохо бы результат выложить на всеобщее обозрение, дабы тему завершить.

_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт фев 20, 2018 1:49 pm 
Не в сети
ассистент

Зарегистрирован: Пн фев 19, 2018 8:40 am
Сообщений: 17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Чуть попозже смогу начать разбираться и тестировать...

То что написано на сайте майкрософта, не в моих силах понять...


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт фев 20, 2018 3:35 pm 
Не в сети
ассистент

Зарегистрирован: Пн фев 19, 2018 8:40 am
Сообщений: 17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Я не понимаю что должен сделать...
Цитата:
Остальная работа за ТС

По хорошему, бы сделать что то типо подключаемого модуля
OfflineRegistry.pbi
А команды нужны как и в Droopy работа с реестром, только указываем месторасположение файла реестра вручную...


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт фев 20, 2018 6:04 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6382
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
CryptoNickSoft писал(а):
Я не понимаю что должен сделать...
.

Вроде понятно объяснил. ну давай ещё раз. Есть адрес в MSDN, там описаны все функции этой библиотеки.
Например :
Цитата:
ORGetVersion function

This function retrieves the version of the offline registry library.
Syntax
C++


VOID ORGetVersion(
_Out_ PDWORD pdwMajorVersion,
_Out_ PDWORD pdwMinorVersion
);

Parameters

pdwMajorVersion [out]

A pointer to a variable to receive the major version of the offline registry library. For the initial release of the library, the value is 1.
pdwMinorVersion [out]

A pointer to a variable to receive the minor version of the offline registry library. For the initial release of the library, the value is 0.


В том коде, что я написал эта функция описана так
Prototype ORGetVersion(a, b)

Чтобы она работала, как надо, надо привести её в соответсвии с MSDN к виду:
Prototype ORGetVersion(*pdwMajorVersion, *pdwMinorVersion)
Эту функцию я сделал. Осталось сделать так же все остальные.

CryptoNickSoft писал(а):
По хорошему, бы сделать что то типо подключаемого модуля OfflineRegistry.pbi

Не вижу препятствий! Заполните все функции как надо, сохраните файл в виде OfflineRegistry.pbi.

_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср фев 21, 2018 11:17 pm 
Не в сети
ассистент

Зарегистрирован: Пн фев 19, 2018 8:40 am
Сообщений: 17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Вот что я смог сделать: (только типы переменных не указал)
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
; https://msdn.microsoft.com/en-us/library/ee210756?f=255&MSPPError=-2147217396
Prototype  ORCloseHive(Handle)
Prototype  ORCloseKey(Handle)
Prototype  ORCreateHive(*phkResult)
Prototype  ORCreateKey(Handle, lpSubKey, lpClass, dwOptions, pSecurityDescriptor, phkResult, pdwDisposition)
Prototype  ORDeleteKey(Handle, lpSubKey)
Prototype  ORDeleteValue(Handle, lpValueName)
Prototype  OREnumKey(Handle, dwIndex, lpName, lpcName, lpClass, lpcClass, lpftLastWriteTime)
Prototype  OREnumValue(Handle, dwIndex, lpValueName, lpcValueName, lpType, lpData, lpcbData)
Prototype  ORGetKeySecurity(Handle, SecurityInformation, pSecurityDescriptor, lpcbSecurityDescriptor)
Prototype  ORGetValue(Handle, lpSubKey, lpValue, pdwType, pvData, pcbData)
Prototype  ORGetVersion(*pdwMajorVersion, *pdwMinorVersion)
Prototype  ORGetVirtualFlags(Handle, pdwFlags)
Prototype  OROpenHive(lpHivePath, phkResult)
Prototype  OROpenKey(Handle, lpSubKeyName.s, *phkResult)
Prototype  ORQueryInfoKey(Handle, lpClass, lpcClass, lpcSubKeys, lpcMaxSubKeyLen, lpcMaxClassLen, lpcValues, lpcMaxValueNameLen, lpcMaxValueLen, lpcbSecurityDescriptor, lpftLastWriteTime)
Prototype  ORSaveHive(Handle, lpHivePath, dwOsMajorVersion, dwOsMinorVersion)
Prototype  ORSetKeySecurity(Handle, SecurityInformation, pSecurityDescriptor)
Prototype  ORSetValue(Handle, lpValueName, dwType, lpData, cbData)
Prototype  ORSetVirtualFlags(Handle, dwFlags)
 
Global ORCloseHive.ORCloseHive
Global ORCloseKey.ORCloseKey
Global ORCreateHive.ORCreateHive
Global ORCreateKey.ORCreateKey
Global ORDeleteKey.ORDeleteKey
Global ORDeleteValue.ORDeleteValue
Global OREnumKey.OREnumKey
Global OREnumValue.OREnumValue
Global ORGetKeySecurity.ORGetKeySecurity
Global ORGetValue.ORGetValue
Global ORGetVersion.ORGetVersion
Global ORGetVirtualFlags.ORGetVirtualFlags
Global OROpenHive.OROpenHive
Global OROpenKey.OROpenKey
Global ORQueryInfoKey.ORQueryInfoKey
Global ORSaveHive.ORSaveHive
Global ORSetKeySecurity.ORSetKeySecurity
Global ORSetValue.ORSetValue
Global ORSetVirtualFlags.ORSetVirtualFlags
 
Procedure.i offreg_LoadDLL()
  Protected hDLL.i
 
  hDLL = OpenLibrary(#PB_Any, "offreg.dll")
  If hDLL <> 0
    ORCloseHive = GetFunction(hDLL, "ORCloseHive")
    ORCloseKey = GetFunction(hDLL, "ORCloseKey")
    ORCreateHive = GetFunction(hDLL, "ORCreateHive")
    ORCreateKey = GetFunction(hDLL, "ORCreateKey")
    ORDeleteKey = GetFunction(hDLL, "ORDeleteKey")
    ORDeleteValue = GetFunction(hDLL, "ORDeleteValue")
    OREnumKey = GetFunction(hDLL, "OREnumKey")
    OREnumValue = GetFunction(hDLL, "OREnumValue")
    ORGetKeySecurity = GetFunction(hDLL, "ORGetKeySecurity")
    ORGetValue = GetFunction(hDLL, "ORGetValue")
    ORGetVersion = GetFunction(hDLL, "ORGetVersion")
    ORGetVirtualFlags = GetFunction(hDLL, "ORGetVirtualFlags")
    OROpenHive = GetFunction(hDLL, "OROpenHive")
    OROpenKey = GetFunction(hDLL, "OROpenKey")
    ORQueryInfoKey = GetFunction(hDLL, "ORQueryInfoKey")
    ORSaveHive = GetFunction(hDLL, "ORSaveHive")
    ORSetKeySecurity = GetFunction(hDLL, "ORSetKeySecurity")
    ORSetValue = GetFunction(hDLL, "ORSetValue")
    ORSetVirtualFlags = GetFunction(hDLL, "ORSetVirtualFlags")
 
    ProcedureReturn hDLL
  EndIf
 
  ProcedureReturn #False
EndProcedure
 
If offreg_LoadDLL()
  ORGetVersion(@maj,@min);  для проверки работы DLL
  Debug maj
  Debug min
 
 
EndIf


Помогите, пожалуйста с типами.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт фев 22, 2018 12:40 am 
Не в сети
профессор

Зарегистрирован: Пн янв 03, 2011 4:27 pm
Сообщений: 410
Благодарил (а): 5 раз.
Поблагодарили: 17 раз.
Пункты репутации: 0
Вот в помощь.
http://www.purebasic.fr/french/viewtopic.php?t=6451
http://forums.purebasic.com/english/viewtopic.php?t=4435


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт фев 22, 2018 6:46 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6382
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
CryptoNickSoft писал(а):
Вот что я смог сделать: (только типы переменных не указал)

Самое главное осталось :D
Там можно упрощённо, если _Out_ и в описании "pointer to a variable", то перед переменной ставь *, типа указатель.
А если соответствует строке, типа такого _In_ PCWSTR, то после переменной .s, типа строка.
Остальное можно не трогать пока, пусть везде будет Long по умолчанию, обычно прокатывает.
При тестах, если что вылезет, какой косяк, то уже подобрать тип можно строже.

_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт фев 22, 2018 8:48 am 
Не в сети
ассистент

Зарегистрирован: Пн фев 19, 2018 8:40 am
Сообщений: 17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
К сожалению, это выше моего понимания...
Да и как потом использовать, я особо не знаю....
Примеров у них нет и в сети не нашел... (хотя есть исходник на AutoIT)
Cам еще не дорос, поэтому и прошу помощи...


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт фев 22, 2018 9:40 am 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 271
Благодарил (а): 14 раз.
Поблагодарили: 32 раз.
Пункты репутации: 0
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
; https://msdn.microsoft.com/en-us/library/ee210756?f=255&MSPPError=-2147217396
Global ORCloseHive
Global ORCloseKey
Global ORCreateHive
Global ORCreateKey
Global ORDeleteKey
Global ORDeleteValue
Global OREnumKey
Global OREnumValue
Global ORGetKeySecurity
Global ORGetValue
Global ORGetVersion
Global ORGetVirtualFlags
Global OROpenHive
Global OROpenKey
Global ORQueryInfoKey
Global ORSaveHive
Global ORSetKeySecurity
Global ORSetValue
Global ORSetVirtualFlags
 
Prototype  ORCloseHive(Handle.i)
Prototype  ORCloseKey(Handle.i)
Prototype  ORCreateHive(*phkResult)
Prototype  ORCreateKey(Handle.i, *lpSubKey, lpClass.s, dwOptions.i, *pSecurityDescriptor, *phkResult, *pdwDisposition)
Prototype  ORDeleteKey(Handle.i, lpSubKey.s)
Prototype  ORDeleteValue(Handle.i, lpValueName.s)
Prototype  OREnumKey(Handle.i, dwIndex.i, *lpName, *lpcName, *lpClass, *lpcClass, *lpftLastWriteTime)
Prototype  OREnumValue(Handle.i, dwIndex.i, *lpValueName, *lpcValueName, *lpType, *lpData, *lpcbData)
Prototype  ORGetKeySecurity(Handle.i, SecurityInformation.i, *pSecurityDescriptor, *lpcbSecurityDescriptor)
Prototype  ORGetValue(Handle.i, lpSubKey.s, lpValue.s, *pdwType, *pvData, *pcbData)
Prototype  ORGetVersion(*pdwMajorVersion, *pdwMinorVersion)
Prototype  ORGetVirtualFlags(Handle.i, *pdwFlags)
Prototype  OROpenHive(*lpHivePath, *phkResult)
Prototype  OROpenKey(Handle.i, *lpSubKeyName.s, *phkResult)
Prototype  ORQueryInfoKey(Handle.i, *lpClass, *lpcClass, *lpcSubKeys, *lpcMaxSubKeyLen, *lpcMaxClassLen, *lpcValues, *lpcMaxValueNameLen, *lpcMaxValueLen, *lpcbSecurityDescriptor, *lpftLastWriteTime)
Prototype  ORSaveHive(Handle.i, *lpHivePath, dwOsMajorVersion.i, dwOsMinorVersion.i)
Prototype  ORSetKeySecurity(Handle.i, SecurityInformation.i, *pSecurityDescriptor)
Prototype  ORSetValue(Handle.i, lpValueName.s, dwType.i, lpData.i, cbData.i)
Prototype  ORSetVirtualFlags(Handle.i, dwFlags.i)
 
Procedure.i offreg_LoadDLL()
  Protected hDLL.i
  hDLL = OpenLibrary(#PB_Any, "offreg.dll")
  If hDLL <> 0
    ORCloseHive.ORCloseHive = GetFunction(hDLL, "ORCloseHive")
    ORCloseKey.ORCloseKey = GetFunction(hDLL, "ORCloseKey")
    ORCreateHive.ORCreateHive = GetFunction(hDLL, "ORCreateHive")
    ORCreateKey.ORCreateKey = GetFunction(hDLL, "ORCreateKey")
    ORDeleteKey.ORDeleteKey = GetFunction(hDLL, "ORDeleteKey")
    ORDeleteValue.ORDeleteValue = GetFunction(hDLL, "ORDeleteValue")
    OREnumKey.OREnumKey = GetFunction(hDLL, "OREnumKey")
    OREnumValue.OREnumValue = GetFunction(hDLL, "OREnumValue")
    ORGetKeySecurity.ORGetKeySecurity = GetFunction(hDLL, "ORGetKeySecurity")
    ORGetValue.ORGetValue = GetFunction(hDLL, "ORGetValue")
    ORGetVersion.ORGetVersion = GetFunction(hDLL, "ORGetVersion")
    ORGetVirtualFlags.ORGetVirtualFlags = GetFunction(hDLL, "ORGetVirtualFlags")
    OROpenHive.OROpenHive = GetFunction(hDLL, "OROpenHive")
    OROpenKey.OROpenKey = GetFunction(hDLL, "OROpenKey")
    ORQueryInfoKey.ORQueryInfoKey = GetFunction(hDLL, "ORQueryInfoKey")
    ORSaveHive.ORSaveHive = GetFunction(hDLL, "ORSaveHive")
    ORSetKeySecurity.ORSetKeySecurity = GetFunction(hDLL, "ORSetKeySecurity")
    ORSetValue.ORSetValue = GetFunction(hDLL, "ORSetValue")
    ORSetVirtualFlags.ORSetVirtualFlags = GetFunction(hDLL, "ORSetVirtualFlags")
    ProcedureReturn hDLL
  EndIf
  ProcedureReturn #False
EndProcedure
 
If offreg_LoadDLL()
  ORGetVersion(@maj,@min);  для проверки работы DLL
  Debug maj
  Debug min
EndIf
 



Работает?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт фев 22, 2018 10:32 am 
Не в сети
ассистент

Зарегистрирован: Пн фев 19, 2018 8:40 am
Сообщений: 17
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
ругается на 35 строку...
Код:
1
*lpSubKeyName.s



Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт фев 22, 2018 10:37 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6382
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
CryptoNickSoft писал(а):
ругается на 35 строку...
Код:
1
*lpSubKeyName.s


Оставь только *lpSubKeyName, указатель не может иметь тип.
А зачем вообще эта либа нужна? Вроде с реестром и так можно работать не плохо, без дополнительных прицепов?
Что там хоть за код в Автоит, как её применяют, скинь посмотреть.

_________________
read-only


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB