|
|
|
Как программно найти и установить стандартные файлы принтера?
|
|||
|---|---|---|---|
|
#18+
При установке некоего принтера требуются стандартные файлы. unidrv.hlp unidrv.dll unidrvui.dll unires.dll stdnames.gpd Где они лежат, на пальцах понятно. C:\WINDOWS\Driver Cache\i386\driver.cab либо на диске виндов. С ф-циями winspool.dll AddMonitor/Port/PrinterDriver/Printer я разобрался, все замечательно. Если вышеуказанные файлы в системе есть, проблем тоже не возникает, но если они не установлены, то надо найти архив/предложить вставить диск и из понятной папки устанавливать драйвер принтера. Как подойти к вопросу? Один из вариантов тупо бухнуть все это хозяйство в дистрибутив программы, тогда надо думать проблем не возникнет, но это сдается мне, дурной тон, ибо файлы стандартные и по определению присутствуют на диске виндоус. Как быть? Или есть стандартные API на тему поиска в системе и извлечения из CAB? Дабы не быть голословным и не производить впечатление, что я тупой, вот код VB, кот.устанавливает у меня дравер принтера. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 19:58 |
|
||
|
Как программно найти и установить стандартные файлы принтера?
|
|||
|---|---|---|---|
|
#18+
Скажем так, я нашел лог программы, кот. это делает и с кот. я это делаю по образу и подобию: Код: 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. Отсюда следует ряд ответов и вытекает ряд вопросов. 1)DriverCachePath -как найти через API? 2) Как найти нужный файл в cab-архиве и по какому принципу перебирать sp3.cab, sp2.cab и driver.cab? Понятно, что в sp3 сидит более новый драйвер, кот.прога и хочет оприходовать... 3)ServicePackSourcePath -что-то я там драйверов не вижу..Зачем это ей? 4) Как распаковать... Ну ответ на блюдечке в лог файле. Код: plaintext Попробую еще через HEX посмотреть какие dll прога пользует, м.б. удастся найти API, Нашелтут универсальный метод искать ф-ции в dll-ах Код: plaintext некот. ф-ции можно сразу через rundll32.exe тупо запускать, но это если без параметров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 22:46 |
|
||
|
Как программно найти и установить стандартные файлы принтера?
|
|||
|---|---|---|---|
|
#18+
Отсюда следует ряд ответов и вытекает ряд вопросов. 1) DriverCachePath -как найти через API? Код: plaintext 2) Как найти нужный файл в cab-архиве и по какому принципу перебирать sp3.cab, sp2.cab и driver.cab? Понятно, что в sp3 сидит более новый драйвер, кот.прога и хочет оприходовать... Класс CABfile -мудрено, но прилично,разобрался. http://www.thescarms.com/vbasic/cabexplorer.aspx Но можно использовать extrac.exe из комплекта Win98 , он читает содержимое архивов и может вернуть результат в текстовой файл. С учетом сложности реализации класса, м.б. это и не хуже. Тупо ищем все файлы в папках и архивах в заданном месте, сортируем по дате, выбираем свежий 3) ServicePackSourcePath ... То же что и пп.1 4) Как распаковать... Ну ответ на блюдечке в лог файле. Код: plaintext 5) Как дальше требовать CD-шник? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2009, 16:22 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35820136&tid=2161340]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 317ms |

| 0 / 0 |
