download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

WORD да чете до като Вие пишете.

Автор
Съобщение
dreven
Съб, 08.07.17, 21:24
Хрумна ми идеята да накарам Word да чете до като се пише, така че да не се налага да се гледа към монитора. Възникна въпроса кога точно да чете. Оказа се, че прочитане при изписване на всяка дума е неудачно, защото разкъсва мисълта на човека и вместо да облекчава процеса го усложнява. Тогава реших, че е по-добре да накарам Word да чете след завършване на дадено изречение. Тоест пишем дадено изречение, поставяме някакъв знак за край на изречението и при натискане на шпация или Ентер програмата прочита последното изречение от дадения пасаж. Освен това добавих събитие при селектиране на дадена фраза, Word автоматично да прочете селектираната фраза. Заложих самото четене да се извършва Google, за да са независими макросите от разни други говорящи сайтове. С други думи имплантирах браузер в Word и ги свързах да работят заедно. Едва ли програмката има кой знае какво предназначение, но е интересна като реализиция на самите решения. Макросите не са защитени с пароли и всеки може да разгледа сорса, който превръща прост Word документ във функционираща програма. За онези, които са любопитни да изпробват файла, трябва да напомня, че всичко работи с макроси и те трябва да се разрешат при отваряне на документа.
Свободен линк за изтегляне: http://portal.bivaood.com/Programi/Doc300.zip
anonymous
Нед, 09.07.17, 07:24
Действително това е добра , дори много добра идея. При мен нещата стоят така: Много време си загубих да се науча да пиша с 10 пръсти без да гледам какво натискам. Да обаче възникна проблем, аз се учих едно време на клавиатура , а сега като пиша на лаптоп , поради по-малката клавиатура допускам ужасно много грешки със съседни буква , много тъпо,такава програма би ми помогнала според мен!. Малко идеи/въпроси, ако е възможно : 1 Често се налага да се вмъкне нещо на английски , да не се получава объркване на програмата? 2. На Линукс какво става ,когато пиша WORD документ?
  ПС От близо две години ползвам в повечето случай ЛИНУКС,много по-удобен е по-лек е . Компютрите ми са слаби , свикнал съм с тях и не ми се сменяват .
          Независимо от всичко , приветствам тази идея и се възхищавам от ентусиазма ти!
редактиран от anonymous на 09.07.17 07:27
dreven
Нед, 09.07.17, 12:15

RE: WORD да чете до като Вие пишете.

” Малко идеи/въпроси, ако е възможно : 1 Често се налага да се вмъкне нещо на английски , да не се получава объркване на програмата? 2. На Линукс какво става ,когато пиша WORD документ?
Ако в текста има английски думи, те ще бъдат изговорени, но едва ли ще прозвучат вярно. А що се отнася до Линукс, просто нямам отговор. Не го ползвам и не знам макросите дали се изпълняват под Линукс.

В първия пост дадох пример на чист doc документ с макроси, но той използва говора на Google, а там няма български. За да се случват същите неща и на български разработих ехе, което работи съвместно с doc документ. Тази версия обаче изисква инсталирана версия на Internet Explorer по-висока от 8, което автоматично означава, че няма да работи на Windows XP, но на Windows -7,8,10 трябва да работи нормално.
Тук стартираме ехе-то, което автоматично ще си отвори doc документа и ще заработи съвместно с него. Тук смяната на езиците става от панела на exe-то. Имаме избор за много езици, но българските са два - Kostadin и Irina.
Ето свободен линк за българската версия: http://portal.bivaood.com/Programi/korektorBG.zip

iceman_
Вто, 11.07.17, 12:38
Офис 2013 64бита ми дава -

dreven
Вто, 11.07.17, 16:30
Да, тези Апи функции са декларирани за 32 битов Word и искат да се декларират за 64 битов. Лично аз ползвам 32 битов и за това изобщо не ми е направило впечатление. Е трябва да се потърси в Google как изглежда декларацията за 64 бита.
dreven
Сря, 12.07.17, 10:46
32-bit:

Public Declare Function SendMessageA Lib "user32" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

64 bit:

Public Declare PtrSafe Function SendMessageA Lib "user32" (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPtr

Ето какво намерих за разликата между декларацията на една и съща АПИ функцията при 32 bit и 64 bit. Това което виждам, е че след ключовата дума Declare се добавя PtrSafe и накрая вместо As Long имаме As LongPtr

Ако някой има инсталиран 64 bit офис, може да пробва да предакларира 3-те АПИ функции с които започва модула NewMacros и да сподели, дали ще заработи програмката с 64 битов Word.

iceman_
Чет, 13.07.17, 00:19

RE: WORD да чете до като Вие пишете.

” 32-bit:

Public Declare Function SendMessageA Lib "user32" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

64 bit:

Public Declare PtrSafe Function SendMessageA Lib "user32" (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPtr

Ето какво намерих за разликата между декларацията на една и съща АПИ функцията при 32 bit и 64 bit. Това което виждам, е че след ключовата дума Declare се добавя PtrSafe и накрая вместо As Long имаме As LongPtr

Ако някой има инсталиран 64 bit офис, може да пробва да предакларира 3-те АПИ функции с които започва модула NewMacros и да сподели, дали ще заработи програмката с 64 битов Word. „

Може ли да копираш тук предекларирания сорс? И да кажеш къде да го сложа ...

редактиран от iceman_ на 13.07.17 00:19
dreven
Чет, 13.07.17, 12:12

RE: RE: WORD да чете до като Вие пишете.

” Може ли да копираш тук предекларирания сорс? И да кажеш къде да го сложа ... „
Декларациите на трите функции показани на картинката:

Заменяме със следното:

Public Declare PtrSafe Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As LongPtr
Public Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Public Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPtr

Редакторът на VBA при 32 битовият офис се отваря най-лесно с ALT+F11, там в Project(1) отваряш модула NewMacros и заменяш трите най-горни реда. Вероятността да се получи е 50 %. Тоест или ще стане или не.

редактиран от dreven на 13.07.17 12:17
редактиран от dreven на 05.01.18 21:38
редактиран от dreven на 05.01.18 21:56
редактиран от dreven на 05.01.18 22:02

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.