|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
GetWizGlob(lWhich As Long) ? PS на сегодня все - пошел спать ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2004, 18:08 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Хорошее дело, я тоже пытался составить документацию по WizHook, но запала не хватило. И информации в инете нашел меньше. Надо бы это все систематизировать и в FAQ вынести. Victosha может совершите подвиг? Еще бы отдельный документ по полезным скрытым функциям, таким как Application.AppLoadString(id As Long) (может не самый удачный пример, но я это использую) и функциям самого Access, таким как Declare Function MSAU_OfficeGetFileName Lib "msaccess.exe" Alias "#56" ( _ gfni As WLIB_OFFICEGETFILENAMEINFO, ByVal fOpen As Integer) As Long Declare Sub CloseHscr Lib "msaccess.exe" Alias "#20" ( _ ByVal hScr As Long) Declare Function FNextHscr Lib "msaccess.exe" Alias "#22" ( _ ByVal hScr As Long, _ ByVal fSkipBlank As Long, _ pfEndOfScript As Long) As Long Declare Function ActidOfHscr Lib "msaccess.exe" Alias "#29" ( _ ByVal hScr As Long) As Long Declare Function CargsOfActid Lib "msaccess.exe" Alias "#30" ( _ ByVal actid As Long) As Long Declare Function IdsArgNameOfActidIarg Lib "msaccess.exe" Alias "#33" ( _ ByVal actid As Long, _ ByVal iArg As Long) As Long (привел некоторые из тех, которые использовал, полный список можно просмотреть в Dependecy Walker) Из функций WizHook еще обратил бы внимание на такие, как (навскидку): 'сортировка массива Sub SortStringArray(Array() As String) 'проверка на наличие процедуры с заданным именем Function GlobalProcExists(Name As String) As Boolean 'пароль на VBA Function SetVbaPassword(bstrDbName As String, bstrConnect As String, bstrPasswd As String) As Boolean авторВ действительности (кажется) не требует ключа инициализации. Увы, требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2004, 23:09 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
2 Sergey Gavrilov авторApplication.AppLoadString(id As Long) (может не самый удачный пример, но я это использую вот и показал бы - как :)) ... по поводу использования нумерованных точек входа. я их не пользую, практически никогда, по двум причинам. 1) (главная) - безграмотен и ленив 2) никто не обещал совместимости при смене версий. Возникает "привязанный" код. То, что вниз не пойдет - не важно. Важно, что знак вопроса всегда с перемещением "вверх". Кроме того, лично я придерживаюсь в общем случае ложной мысли, что VBA код Акцесса - это, с одной стороны кандидат на перенос в VBS, с другой - в VB. В обоих случаях я косо смотрю на нумерованные точки входа именно в Акцесс-ные функции. С визхук-ом ситуация выглядит принципиально иначе в том отношении, что надежды на стабильность интерфейса класса, пусть и "скрытого" , - много выше. Тем не менее почти все упомянутые функции либо окажеутся рассмотренными "естественным путем", либо имеют эквиваленты в визхуке. ЗЫ заодно приношу извинения за задержки второй день "болею" - здоровье потихоньку подводить начинает. не радость... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:45 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
GlobalProcExists Возвращает истину, если запрошенная процедура или функция существует в базе данных. Рибера делает специальную оговорку, что вызов не работает с процедурами и функциями того же модуля, из которого производится вызов GlobalProcExists. В Акцесс 2002 я этого не могу подтвердить. У меня «все работает». Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:46 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
WizHook.HideDates ? У меня вернула истину. Что сие значит и как управлять – не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:47 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
IsMatchToDbcConnectString(bstrConnectionString As String) As Boolean Возвращает истину или ложь, в зависимости от того, является ли полученная строка правильной строкой подключения к текущей базе данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:48 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Function IsValidIdent(Identifier As String) As Boolean Проверяет полученную строку, на допустимость ее содержимого как имени переменной. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:50 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
KeyboardLangID Возвращает идентификатор «языка клавиатуры». ИМХО – скорее идентификатор языка системы. У меня 1049 – вне зависимости от текущей раскладки ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:51 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Sub KnownWizLeaks(fStart As Boolean) Похоже, натурально подчищает (освобождает) память. В режиме отладки эффект выглядит следующим образом – очистка наступает сразу при нажатии F8 с целью исполнения процедуры. Далее – при прохождении отладчиком по коду «дополнений» не происходит. Объясняю это тем, что при нажатии F8 происходит не только компиляция, но и «тестовое выполнение» процедуры. Не ясно – «чей» сборщик мусора при этом запускается. Назначение fStart - ? Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:51 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Sub LoadImexSpecSolution(bstrFilename As String) -? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:52 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
LocalFont Похоже, возвращает фонт, установленный в базе данных по умолчанию для нового контрола. Обычно – Tahoma. Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:53 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Function NameFromActid(Actid As Long) As String Actid – идентификатор действия. Возвращает пустую строку или имя действия. Смотри примеры для ArgsOfActid и GetScriptString ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:54 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Function ObjTypOfRecordSource(RecordSource As String) As Integer Возвращает «тип источника данных», относясь к полученной строке как к «строке источника данных». Возврат 0 – текст, представляющий собой SQL-выражение (запрос). 1 – таблица 2 – запрос (сохраненный в бд) -1 – тип объекта не определен. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:55 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Function OfficeAddInDir() As String Выдает каталог расположения «дополнений» (AddIns) офис Код: plaintext 1. 2. 3. 4. 5.
C:\Documents and Settings\CurrentUserName\Application Data\Microsoft\AddIns\ ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:56 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Function OpenPictureFile(File As String, Cancelled As Boolean) As Boolean Открывает предварительно конфигурированный для работы с «картинками» диалог типа OpenFile. Смысл диалога – Insert Picture. При выходе из диалога нажатием на кнопку cancel или клавишей Esc – параметр Cancelled принимает значение True. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:56 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Function OpenScript(Script As String, Label As String, OpenMode As Long, _ Extra As Long, Version As Long) As Long Открывает макрос на чтение или запись. Возвращает целое, представляющее собой идентификатор макроса. Параметры Script – Имя макроса, который необходимо открыть. Label – при расширенном виде конструктора макросов (включены столбцы «имя макроса» и «условие») должно быть имя из столбца «Имя макроса» OpenMode – режим открытия макроса 0 – на чтение, 2 – на запись. Если макроса с указанным именем не существует, создает новый с таким именемю Если существует – блокирует существующий и создает новый пустой. Extra - ? Version – Версия макроса. Дополнительной к данной функции является Код: plaintext 1. 2.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Код: plaintext 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:59 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Sub ReportLeaksToFile(fRptToFile As Boolean, bstrFileOut As String) ? Как разумно с ней обратиться – не сообразил. В том смысле, что результата в виде файла не получил. Это безусловно не означает, что у меня «чистый» код, не приводящий к memory leak. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 15:59 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Sub SaveObject(bstrName As String, objtyp As Integer) Наверно, ее или то, что под ней вызывает DOCMD.Close с параметрами сохранения. Работа не проверена. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 16:00 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Function SaveScriptString(HScr As Long, ScriptColumn As Long, _ Value As String) As Boolean Метод записи значения в макрос. Возвращает истину, если завершен успешно. Дежурная отсылка к V-Tools. Параметры Hscr – идентификатор макроса. ScriptColumn – столбец макроса; 0 – столбец имени, 1 – комментарий, 2 – условие, 3-12 аргументы. Value – значение для записи в макрос. Код: plaintext 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 16:02 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Sub SetDpBlockKeyInput(fBlockKeys As Boolean) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 16:02 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Function SetVbaPassword(bstrDbName As String, bstrConnect As String, _ bstrPasswd As String) As Boolean JasonM говорит, что не сумел заставить заработать этот метод. Рибера уточняет, что метод не работает на текущей базе данных. Устанавливает пароль на VBA проекте. Возвращает истину, если завершился успешно. Параметры bstrName – полный путь к базе. bstrConnect – похоже, не используется при правильном bstrName. Может оказаться необходимым при ранее установленном пароле на mdb. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 16:03 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Sub SetWizGlob(lWhich As Long, vValue) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 16:04 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
Sub SortStringArray(Array() As String) Метод сортирует одномерный массив строк в алфавитном порядке. Проваливается при получении неинициализированного массива. Всегда доступен (не требует ключа) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
----------------------------------- PS снова перерыв, но уже немного осталось:)) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 16:08 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
если говорить об удобстве и совместимости то лучше всего использовать docmd.runcommand вместо функций визарда, где конечно можно. а для работы с файлами папками разбором строки path более удобны: Set oFso = CreateObject("Scripting.FileSystemObject") Set oShell = CreateObject("WScript.Shell") ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 17:31 |
|
WizHook - перевод "документации"
|
|||
---|---|---|---|
#18+
авторТем не менее почти все упомянутые функции либо окажеутся рассмотренными "естественным путем", либо имеют эквиваленты в визхуке. К сожалению нет. В msa 97 библиотеки WZMAIN80.MDE и WZTOOL80.MDE используют "нумерованные точки входа." Посмотрите исходники, они доступны на microsoft. C msa 2000 MS создали WizHook, но перенесли туда только часть подрбных функций. Посмотрите, ведь даже в приведенном вами примере на GetScriptString используются подобные функции. Ну нет в WizHook, например, функции закрытия макроса и многих других. Я писал приложение для работы с макросами, поэтому знаю эту ситуацию, а вот чем мотивировано подобное решение MS я не понимаю. Немного о работе с макросами есть здесь http://am.rusimport.ru/MsAccess/f2.aspx?type=1&id=16577&find=hscr А по поводу AppLoadString(id As Long) - она позволяет грузить строки по их идентификатору (своего рода аналог LoadResString). Например функция Private Declare Function IdsArgNameOfActidIarg Lib "msaccess.exe" Alias "#33" _ (ByVal actid As Long, _ ByVal iArg As Long) As Long Возвращает идентификатор строки имени аргумента макроса. Выдав этод идентификатор функции AppLoadString, получим строку имени аргумета на языке локализованного Access Возмем макрокоманду MsgBox, имя первого аргумента Message (в русском Access - Сообщение), второго Beep (Сигнал) и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2004, 19:55 |
|
|
start [/forum/topic.php?fid=45&msg=32559805&tid=1612345]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 312ms |
total: | 467ms |
0 / 0 |