Παρασκευή, 3 Ιουνίου 2016

Αναθεώρηση 25 (αναγκαία και αυτή)

Λόγω της μετατροπής στο κώδικα για να δέχεται προαιρετικές παραμέτρους (optional), ένα "κόμμα" στο κώδικα για τα γεγονότα έκανε ζημιά σε ένα μέρος του συστήματος γεγονότων (όχι στα παράθυρα). Έκανα και ότι αναβαθμίσεις χρειάζονταν. Οπότε όλα καλά!

Θα επικεντρωθώ στο μικρό εγχειρίδιο της Μ2000 που γράφω παράλληλα.

Να και ένα μικρό δωράκι!
Μπορεί κανείς να χρησιμοποιήσει κλήσεις στο API των windows και να κάνει το εξής: Θα ανοίξουμε το Notepad των Windows μπροστά από την κονσόλα της Μ2000, και θα διαβάσουμε το τίτλο του παραθύρου του! Μετά θα φέρουμε τη κοσνόλα μπροστά από αυτό! Το hwnd σημαίνει Windows Handler και είναι ο αριθμός που χρειάζεται το σύστημα για να κινήσει το παράθυρο της κονσόλας (δεν τον αποθηκεύουμε αυτόν, και η μεταβλητή μόνο για ανάγνωση hWnd δίνει το τρέχον αριθμό)


Declare BringWindowToTop Lib "user32.BringWindowToTop" { Long hWnd }
Declare GetForegroundWindow Lib "user32.GetForegroundWindow" {}
Declare GetWindowTextLength Lib "user32.GetWindowTextLengthW" {LONG hwnd}
Declare GetWindowText Lib "user32.GetWindowTextW" { Long hWnd, &c$, long c }
AAA$=string$(chr$(0), 502)
cch=500
wait 2000
win {notepad.exe "c:\Hello1234.txt"}
wait 2000
refresh
M=GetForegroundWindow()
if GetWindowTextLength(M)>0 then {
kk= GetWindowTextLength(M)
try {
      zz= GetWindowText(M, &aaa$, cch)
      Print zz, cch, leftpart$(aaa$,0)
      Print "Exit ok"
      }
}
Print "ok1"
refresh
wait 500
Print BringWindowToTop(hwnd)
wait 500
print "back"
refresh
wait 500

print "ok"