הגישה בתכנה כזאת לאוצר מתבצע ע"י התהליך הבא
יצירת קובץ הוראות ושמירתו.
פנייה לתכנה באמצעות sendmessage של WINDOWS API
קריאת קובץ התשובות.
הדבר יכול להעשות גם מתכנה חיצונית לגמרי שלא הופעלה ע"י ההרחבה. במקרה כזה התכנה הזאת צריכה לזהות בעצמה את מספר החלון של הOTZAR כדי לשלוח לו הודעות אתחיל בדוגמה לתכנה כזאתכדי שיהיה קל להבין אני מעתיק כאן דוגמה לכמה שורות שכתבתי ב VB בתוך WORD כך שאפשר להריץ את זה בוורד ולראות איך זה עובד
כדי לראות היטב כדאי כמובן ללחוץ CTRL+SHIFT שמאלי בשורות הראשונות יש הגדרות של ההפניות ל WINDOWS השורה בהערה היא ל 32BIT והשנייה היא ל 64BIT שזו המערכת שבה ניסיתי את זה אם החלונות הן בגירסת 32BIT יש להפוך את המצב.
כדי לנסות את זה צריך להוריד את הגירסה הלא רשמית של התכנה
כמו שהוסבר כאן
http://www.otzar.org/forums/viewtopic.php?f=5&t=12629&p=120190#p120100כל הפקודות שם ניתנות להפעלה חלקן עשיתי כהערה כיוון שאי אפשר להפעילן בו זמנית
'Public Declare Function SendMessageA Lib "user32" (ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Public Declare PtrSafe Function SendMessageA Lib "user32" (ByVal hWnd As LongPtr, ByVal wMsg As Long, _
ByVal wParam As LongPtr, lParam As Any) As LongPtr
'Private Declare Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private Sub writeq()
Dim sFileText As String
Dim iFileNo As Integer
iFileNo = FreeFile
'open the file for writing
Open "C:\otzar\PQ0.TXT" For Output As #iFileNo
'write some example text to the file
Print #iFileNo, "getcurlistcount=""
Print #iFileNo, "getcurlistrow="
Print #iFileNo, "getcurlistrowbookid(5)="
Print #iFileNo, "getbookname(10)="
Print #iFileNo, "getbookauthor(10)="
Print #iFileNo, "getfulltextsearchstring="
Print #iFileNo, "getbooksearchstring="
Print #iFileNo, "getauthorsearchstring="
Print #iFileNo, "setcurlistrow=12;"
Print #iFileNo, "setfulltextsearchstring=test"
Print #iFileNo, "setbooksearchstring=test"
Print #iFileNo, "setauthorsearchstring=test"
' Print #iFileNo, "dofulltextsearch="
' Print #iFileNo, "openbook=2"
' Print #iFileNo, "getsearchresultcount="
' Print #iFileNo, "getsearchresulttrow="
' Print #iFileNo, "getsearchresultbookid(1)="
' Print #iFileNo, "setsearchresultrow=3"
' Print #iFileNo, "opensearchresultrow=1"
'close the file (if you dont do this, you wont be able to open it again!)
Close #iFileNo
End Sub
Private Sub Readrslt()
Dim sFileText As String
Dim iFileNo As Integer
iFileNo = FreeFile
'open the file for reading
Open "C:\otzar\PQR0.TXT" For Input As #iFileNo
'change this filename to an existing file!
'read the file until we reach the end
Do While Not EOF(iFileNo)
Input #iFileNo, sFileText
Selection.TypeText Text:=sFileText
Selection.TypeParagraph
Loop
'close the file (if you dont do this, you wont be able to open it again!)
Close #iFileNo
End Sub
Sub Macro5()
Dim n As LongPtr
Dim r As LongPtr
n = FindWindow("TOtzarMainForm", vbNullString)
If n > 0 Then
writeq
r = SendMessageA(n, 2048, 0, 0)
Readrslt
End If
End Sub