Pagina 9 din 10

Scris: 23 Dec 2012, 00:48
de Manu
Ma refeream atunci la persoane interesate de un astfel de curs din perspectiva profesorului, nu a cursantului...
Cursanti s-ar mai gasi, dar profesori mai greu...
Poate o sa ma mobilizez eu sa fac ceva despre JAWS, lucruri generale, in primul rand setari de baza.
Existau niste cursuri imprimate de Iulian Lesneanu la FCC, le-am ascultat acum multi ani si mi-au clarificat foarte bine anumite lucruri. De asemenea era si o carte citita si audio, Windows explicat pentru nevazatori sau asa ceva.
Daca nu le gasesti, o sa le pun pe undeva si fac link si aici.

Scris: 23 Dec 2012, 13:02
de Shady
Eu am gasit emisiunea jaws pe net ralizata de tine Manu dar mi-a fost de ajutor mai in limita.Nu am gasit tot ce s-a imprimat pe casete din emisiune.Te rog fa un efort si creeaza un topic sau posteaza in acest topic ceea ce ai spus.M-ar ajuta mult.Cat despre ceea ce ai spus de domnul Iulian Lesneanu....nu am gasit nimic de dansul.A venit o singura data la mine dar dupa aceea nu am mai avut timp sa-l mai chem.

Re: Programare in Jaws Scripting, aplicatii practice

Scris: 04 Ian 2013, 10:06
de Vlad_Ciotescu
Manu scrie:Practic sugestia a fost demonstrarea modului de realizare a unui joc. Cum Pontes Casino era deja facut, am zis sa incepem cu Pontes Trucker in mod treptat cu codurile expuse.
ok dar unde pot gasi pontes trucker

Scris: 04 Ian 2013, 17:12
de Manu
Pana la urma acest joc nu a mai fost finalizat.
Sunt cateva coduri, inclusiv un traseu Londra - Bucuresti, dar a ramas cam la acel stadiu. Cauta in mesajele anterioare ale acestui topic si vei gasi tot ce s-a facut la acea vreme.

Scris: 08 Ian 2013, 13:43
de Shady
Salutare.Manu voiam sa te-ntreb ce ai facut cu acele materiale ajutatoare pentru jaws.Le-ai postat?Nu gasesc ceea ce mi-ai spus.

Scris: 26 Ian 2013, 15:59
de BosGrigore
DexOnline 1.10 cu ResearchIt tool
Fisierul LRL_Dexonline.rul

Cod: Selectaţi tot

[Details]
FriendlyName=DexOnline
Description=Scrieti cuvantul fara diacritice, selectati DexOnline din lista si apasati enter. Cod pentru jaws 14 si jaws 13.
Timeout=15000
Version=1.10
Fisierul LRL_Dexonline.qry

Cod: Selectaţi tot

(: NAMESPACES :)
(: declare default element namespace "http://www.w3.org/1999/xhtml"; :)
(: IMPORTS :)
import module namespace fsi = "http://freedomscientific.com/ResearchItImports" at "ResearchItLibrary.jri";

(: FUNCTIONS :)

declare function local:get-search-term () as xs:string*
{
	(: Se afiseaza search term doar daca definitia este gasita :)
	let $str := if (count($results/*[name()='p'][*]/*[name()='span'])) then
	(normalize-space ( fsi:strip-trailing-punct (lower-case ("|ARG_1...ARG_n|"))))
	else ('')
	return $str
};

declare function local:definitii ($list as node()*) as node()*
{<ol>
{	let $definitions := for $detail at $count in $list/*
	return if (name ($detail) = 'p') then
<li>{fn:substring-before (fsi:output-clean-lines($detail), "| Semnaleaz")}</li>
	else ()
return ($definitions)
}
</ol>
};

declare function local:main ($listing as node()*)
{
let $content := local:definitii ($listing)
return if (empty ($content)) then
<p>Definitia nu a fost gasita pentru {$search_term}.</p>
else
<p>{$content}</p>
};

(: VARIABLES :)

declare variable $search-string := encode-for-uri ("|ARG_1...ARG_n|");
declare variable $search_term := fsi:strip-trailing-punct(normalize-space(lower-case ($search-string)));
(: Se acceseaza pagina direct :)
declare variable $URL := concat ('http://dexonline.ro/definitie/', $search_term);
declare variable $doc := xqilla:parse-html(unparsed-text ($URL));
declare variable $results := ($doc
/*[name()='html']/*[name()='body']
/*[name()='div'][@id="Container"]
/*[name()='div'][@id="contentProper"]
/*[name()='div'][@class="txt"]);

(: QUERY BODY :)

(<html>{fsi:add-head ($search_term)}<body>{local:main ($results)}</body></html>)
In NotePad sau EdSharp se copiaza primul cod si se salveaza cu numele LRL_Dexonline.rul, dupa care se salveaza urmatoru cod intr-un fisier cu numele LRL_Dexonline.qry.
Cele doua fisiere se pun in folderul RuleSets pe urmatoarea cale:
Start Menu > Programs > Jaws 14.0 > Explore Jaws > Explore my settings > RuleSets
Cu combinatia de taste insert + spacebar, r se deschide Research it dialog si din options setam DexOnline(primary). Apasam ok. In edit se scrie cuvantul dorit si din list view selectam DexOnline si se apasa enter. In doua trei secunde apar definitiile pentru cuvantul dorit.

Scris: 26 Ian 2013, 21:57
de Manu
Multumim si felicitari pentru realizarea acestor reguli, functioneaza perfect acum cu Jaws 14.
Am scris un cuvant si au aparut imediat rezultatele sub forma de lista.
Este util inca un mod de accesare DexOnline, si inca unul foarte aproape de utilizatorii de JAWS. Folosim cu totii MaestroDex, dar uneori poate in graba vrem sa nu mai deschidem inca un program.

Am pus un zip pe server cu cele doua fisiere si cu instructiunile intr-un text. E mai usor pentru altii sa copieze doar fisierele la locul potrivit, fara sa se mai chinuie sa le creeze cu Notepad.

Descarcare reguli Jaws Research It pentru DexOnline
DexOnlineJawsResearchIt.zip

Mai jos sunt instructiunile continute in fisierul text din arhiva, fisier care se afla langa cele doua necesare pentru Research It:
Reguli create de BosGrigore.
Versiune 1.1

A se copia cele doua fisiere din folderul in care se afla si acest fisier cu instructiuni.
Numele celor doua fisiere:
LRL_Dexonline.rul
LRL_Dexonline.qry

Se da paste la cele doua fisiere in folderul RuleSets, gasibil pe urmatoarea cale:
Start Menu > Programs > Jaws 14.0 > Explore Jaws > Explore my settings > RuleSets

Pentru utilizare:
Apasand Insert + Space, urmat de un r, se deschide Research it dialog.
In edit se scrie cuvantul dorit si se da un tab.
Din list view-ul pe care ajunge cursorul, selectam DexOnline si se apasa enter.
In doua trei secunde apar definitiile pentru cuvantul dorit.
Inca o data multumiri, mai asteptam si alte reguli.

Scris: 31 Ian 2013, 17:01
de BosGrigore
Multumesc! Manu. Chiar am vrut sa te rog sa postezi codurile sub forma de fisiere.

Scris: 23 Apr 2013, 18:09
de BosGrigore
TemperaturaPontesInClujNapoca cu ResearchIt tool
Fisierul lrl_TPontes.rul
Cod,
[Details]
FriendlyName=TemperaturaPontesInClujNapoca
Description=Stergeti tot din edit si selectati TemperaturaPontesInClujNapoca din lista. Apasati enter si temperatura in Cluj-Napoca apare in results viewer
Timeout=15000
Version=1.0.0
Sfarsit cod

Fisierul lrl_TPontes.qry
Cod,
(: NAMESPACES :)
declare default element namespace "http://www.w3.org/1999/xhtml";
(: IMPORTS :)
import module namespace fsi = "http://freedomscientific.com/ResearchItImports" at "ResearchItLibrary.jri";

(:Function:)

declare function local:main ($listing as node()*) as xs:string
{
let $content := $listing
return if (empty ($content)) then
<p>Verificati pe portal.</p>
else
<p>{fn:substring-before (fsi:output-clean-lines($content), "| Alege localitatea")}</p>
};

(: VARIABLES :)

declare variable $doc :=xqilla:parse-html(fn:unparsed-text
("http://www.pontes.ro/portal/index.php"));
declare variable $meteo := $doc/html/body
/div[@id="header"]
/p[@align="right"];

(:query body:)

(<html>{local:main($meteo)}</html>)
Sfarsit cod
Cele doua fisiere se pun in folderul Rul Sets.
Cititi si DexOnline cu research it tool postat anterior.

Scris: 11 Sep 2013, 20:25
de BosGrigore
Acest cod afiseaza in mod automat evenimentele scrise de fiecare dintre noi in fisierul AgendaMea.ini pe care il vom pune in folderul enu.
Totul se intimpla pe baza datei din pc. Pentru ca evenimentele sa fie spuse automat la deschiderea NotePad de exemplu procedam astfel:
- se deschide NotePad
- cu insert + 0 deschidem NotePad.jss si copieam codul
- se compileaza cu ctrl + s
- la revenire in NotePad se vor auzi evenimentele zilei scrise in AgendaMea.ini

Fisierul AgendaMea.ini se va completa prin editare in NotePad astfel:
[Agenda]
11.09 = Albu Paul
[Agenda1]
Albu Paul = 2003
[Emisiuni]
Monday
Tuesday
Wednesday = Ora 16.00 - A doua sansa - Radio renasterea
Thursday
Friday = Ora 15:30- Oameni ca noi- TVR 1, ora 20:00 - Oameni aproape invizibili - TV H2.0, ora 20:30 - Ochiul interior - Radio Romania actualitati
Saturday
Sunday
[Sarbatori]
08.09 = Nasterea Maici Domnului (Sfanta Maria Mica)

Cod: Selectaţi tot

Globals
string sData,
String sDataNastere,
String sPersoane,
string sZiua,
string sEmisiuneCanal,
string sDataSarbatoare,
string sSarbatoare,
string sAnNastere

Function AutoStartEvent ()
Delay (30)
SpuneOra()
Delay (20)
SayString ("Eveniment")
Delay (10)
SpuneAgenda()
SpuneVarsta ()
Delay (20)
SayString ("Emisiune")
Delay (10)
SpuneEmisiune()
Delay (20)
SayString ("Sarbatoare")
Delay (10)
SpuneSarbatori()
EndFunction

Function SpuneOra ()
Var
string sOra
let sOra = SysGetTime ()
sayString("Este ora" + sOra)
EndFunction

Function SpuneAgenda ()
let sData = SysGetDate ("dd.MM")
let sPersoane = InireadString("Agenda", sData, "Azi nu exista sarbatorit.", "AgendaMea.ini")
SayString(sPersoane)
EndFunction

Function SpuneEmisiune ()
let sZiua = stringSegment (SysGetDate(), ",", 1)
let sEmisiuneCanal = InireadString("Emisiuni", sZiua, "Azi nu exista emisiune.", "AgendaMea.ini")
SayString(sEmisiuneCanal)
EndFunction

Function SpuneSarbatori ()
let sSarbatoare = InireadString("Sarbatori", sData, "Azi nu este sarbatoare.", "AgendaMea.ini")
SayString(sSarbatoare)
EndFunction

Function SpuneVarsta ()
let sAnNastere = IniReadString("Agenda1", sPersoane, "", "AgendaMea.ini")
sayString (sysGetDate("yyyy") - sAnNastere)
EndFunction

Script InterogareAgenda ()
; ctrl + a
InputBox("Scrie data nasterii(ziua.luna)", "Cautare", sDataNastere)
Delay(5)
Let sPersoane=InireadString("Agenda", sDataNastere, "Nu exista in sectiunea agenda", "AgendaMea.ini")
SayString(sPersoane)
SpuneVarsta ()
EndScript

Script InterogareEmisiuni ()
; ctrl + e
InputBox("Scrie ziua cand se transmite emisiunea(ziua-Monday)", "Cautare", sZiua)
Delay(5)
Let sEmisiuneCanal = InireadString("Emisiuni", sZiua, "Nu exista in sectiunea emisiuni", "AgendaMea.ini")
SayString(sEmisiuneCanal)
EndScript

Script InterogareSarbatori ()
; ctrl + s
InputBox("Scrie data sarbatorii(ziua.luna)", "Cautare sarbatoare", sDataSarbatoare)
Delay(5)
Let sSarbatoare = IniReadString("Sarbatori", sDataSarbatoare, "Nu exista in sectiunea sarbatori", "AgendaMea.ini")
SayString(sSarbatoare)
EndScript

Script VerificareAgenda ()
; shift + a
let sPersoane = InireadString("Agenda", sData, "Azi nu exista sarbatorit.", "AgendaMea.ini")
SayString(sPersoane) 
SpuneVarsta()
EndScript

Script VerificareEmisiuni ()
; shift + e
let sEmisiuneCanal = InireadString("Emisiuni", sZiua, "Azi nu exista emisiune.", "AgendaMea.ini")
SayString(sEmisiuneCanal)
EndScript

Script VerificareSarbatoari ()
; shift + s
let sSarbatoare = InireadString("Sarbatori", sData, "Azi nu este sarbatoare.", "AgendaMea.ini")
SayString(sSarbatoare)
EndScript

Script SpuneZiua ()
; shift + z
let sZiua = stringSegment (SysGetDate(), ",", 1)
SayString (sZiua)
EndScript
Sfarsit cod

Cum as putea calcula varsta fara sectiunea [Agenda1]? As dori sa fie inclus anul nasterii in sectiunea [Agenda].

Scris: 11 Sep 2013, 21:31
de Manu
Pai ar fi trebuit sa contina si anul, la ceea ce e acum inca un punct si anul.
Incerci apoi sa preiei doar anul folosind functia StringSegment().
Aceasta functie imparte un string in bucati in functie de un delimitator, si returneaza segmentul dorit.
Asadar, daca ai prelua pentru Ion Ionescu din INI stringul 26.05.1983, pentru a avea doar acel 1983 scrii:
StringSegment (sData, ".", 3)
acel sData contine stringul de preluat, data si anul nasterii.
StringSegment returneaza string, asa ca trebuie sa il convertesti la int:
String sAn = StringSegment (sData, ".", 3)
Int iAn = StringToInt (sAn)
Pentru a economisi un rand si pentru a nu mai crea sAn daca nu e nevoie si in alt aparte, poti scrie direct:
iAn = StringToInt(StringSegment(sData, ".", 3))
Al treilea parametru e 3 pentru ca e vorba de al treilea segment avand in vedere delimitatorül punct, in JAWS Scripting se numara de la 1, nu de la 0 cum e in majoritatea limbajelor.

Daca nu am inteles bine intrebarea, revin dupa o reformulare.

Scris: 05 Dec 2013, 23:22
de Bordanc_Nicu
Salutare tuturor!
In Jaws Scripting as avea nevoie de doua functii, si anume:
Vreau sa fac operatiuni cu fisiere, si am nevoie sa stiu daca exista vre-o functie care sa returneze numarul de fisiere dintr-un folder, iar a doua functie de care am nevoie, este o functie prin care sa stiu daca itemul selectat e folder sau fisier.

Scris: 06 Dec 2013, 08:02
de IonPop
Poate te ajuta putin functiile:
FileExists
FileNameList

Dar sigur trebuie sa existe si alte variante mai bune...

Scris: 31 Ian 2014, 18:58
de Shady
Salutare!Manu jaws se poate accesibiliza astfel incat sa citeasca toate caracterele pentru creearea scripturilor?AM inteles ca pentru creearea scripturilor nu utilizati jaws ci NVDA.Adevarat?

Scris: 02 Feb 2014, 12:49
de Manu
Nu am inteles prima intrebare, cum adica sa citeasca toate caracterele, despre care caractere e vorba.
Nu vad de ce as utiliza NVDA in loc de JAWS.
Eu utilizez NVDA doar atunci cand nu pot utiliza JAWS, adica atunci cand il instalez sau il dezinstalez, ori incerc sa il pornesc daca imi crapa JAWS, asadar pentru mine e un cititor de rezerva.