[OT] [AHK] zaklady prace s AHK

Moderated forum for Slovak and Czech users

Moderator: Hacker

Terka
Senior Member
Senior Member
Posts: 326
Joined: 2006-05-24, 09:04 UTC

[OT] [AHK] zaklady prace s AHK

Post by *Terka »

^#!a::
Send, {HOME}{SHIFTDOWN}{END}{SHIFTUP}{CTRLDOWN}c{CTRLUP} ;zkopirovani radku do schranky
Send, {TAB}%clipboard% ;vypsani schranky
obsah = To je zkouska
FoundPos := RegExMatch(%clipboard%, %obsah%)
MsgBox, %FoundPos%
;sem chci pridat case

Priklad:
mam v textovem editoru text "toto je cervena" a spustim skriptik vyse
nejde mi porovnat promenna obsahujici mezeru, pise mi to:
the following variable name contains an illegal character: "toto je cervena"

chtela bych, aby mi skriptik delal nasledujici:
1. zkopiruj radku do schranky
2. kdyz radka obsahuje "toto je modra", napis nekam jinam (napr. na konec textu) "this is blue"
3. kdyz radka obsahuje "toto je cervena", napis nekam jinam (napr. na konec textu) "this is red"


diky Terka
Last edited by Terka on 2007-08-23, 08:04 UTC, edited 1 time in total.
User avatar
Hacker
Moderator
Moderator
Posts: 13052
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

nejde mi porovnat promenna obsahujici mezeru, pise mi to:
the following variable name contains an illegal character: "toto je cervena"
No, s expressionami (vyrazmi) sa pracuje trochu inac, nez povodne v AHK. Expressions su vyrazy, pri ktorych sa pouziva ":=" namiesto "=". Ked pouzijes ":=", tak premenne pises bez percent okolo, a cisty text pises v uvodzovkach, takze:

Code: Select all

Premenna1 = Ja som obsah premennej 1
Premenna2 := "Ja som obsah premennej 2"

Premenna3 = %Premenna1%%Premenna2%
Premenna4 := Premenna1 . Premenna2
Mrkni sekciu "Variables and Expressions" v Helpe, deviata zhora.


Ohladom toho skriptu:
- Ak ti netreba RegEx, nepouzivaj, zbytocne zlozite.
- Case AHK zatial nepodporuje.

Code: Select all

$^#!a::
	Send, {Home}+{End}^c

	IfEqual, Clipboard, Toto je cervena   ; prve musi byt nazov premennej, druhe obsah
	{
		MsgBox, This is red
	}

	IfEqual, Clipboard, Toto je modra
	{
		MsgBox, This is blue
	}

Return
Nazval by som ten skript Univerzalny prekladac. ;)

HTH
Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
User avatar
totcmd
Senior Member
Senior Member
Posts: 223
Joined: 2006-11-06, 00:07 UTC
Location: Praha
Contact:

Post by *totcmd »

Sic je to mimo téma, ale neodolám...

už dlouho jsem se tak od srdce nezasmál :D

díky...

Tento univerzální překladač jsem měl mít před půl rokem, než jsem se pustil do nápovědy... :D

Martin
Jeden soubor vladne vsem, jeden jim vsem kaze, jeden vsechny ovladne... totalcmd.exe
Terka
Senior Member
Senior Member
Posts: 326
Joined: 2006-05-24, 09:04 UTC

Post by *Terka »

Hacker>diky!
s tim reg.expr. - zkousela jsem
IfInString - coz by mi vyhovovalo nejvic, ale nejak mi to neslo,
az pak jsem zkusila RegExMatch() a StringGetPos
Terka
Senior Member
Senior Member
Posts: 326
Joined: 2006-05-24, 09:04 UTC

Post by *Terka »

$^#!a::
string := "aa"
IfInString, string, a
;IfInString, ^nesmi byt procenta %string% , a
{
MsgBox, Schranka obsahuje %string%
} ;napise Schranka obsahuje aa ok
Proooc tam nesmi byt procenta kolem promenne?
User avatar
Hacker
Moderator
Moderator
Posts: 13052
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

Nie som si isty, ci rozumiem - pytas sa, ze preco sa pise

Code: Select all

IfInString, string, a
a nie

Code: Select all

IfInString, %string%, a
?

Neviem, tak to je. Asi by bolo zbytocne porovnavat konstantu s konstantou.

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
Terka
Senior Member
Senior Member
Posts: 326
Joined: 2006-05-24, 09:04 UTC

Post by *Terka »

proste mi to je divne ale budiz. dik, budu vas o svych prekladatelskych aktivitach informovat :))
Terka
Senior Member
Senior Member
Posts: 326
Joined: 2006-05-24, 09:04 UTC

Post by *Terka »

at neotviram novy topic:
lze napsat vic prikazu na radku, musi byt {} na samotnem radku?
napr. toto chci zkratit
Loop 3
{
Send, ahoj
Sleep, 1000
}
na neco takoveho
Loop 3 {Send, ahoj ,Sleep, 1000}
User avatar
Hacker
Moderator
Moderator
Posts: 13052
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

Ahoj,
Nie, len takto:

Code: Select all

Loop, 3 {
	Send, ahoj
	Sleep, 1000
}
alebo takto:

Code: Select all

Loop, 3
{	Send, ahoj
	Sleep, 1000
}
Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
Terka
Senior Member
Senior Member
Posts: 326
Joined: 2006-05-24, 09:04 UTC

Post by *Terka »

diky!
Terka
Senior Member
Senior Member
Posts: 326
Joined: 2006-05-24, 09:04 UTC

Post by *Terka »

pri pouziti ahk windows spy, lze videt:
>>>>>>>>>>>( Visible Window Text )<<<<<<<<<<<
tady neco je
...
...
--------------------
lze nejak tato data dat do promenne? Neco jsem na netu nasla na ahk foru, ale nic z toho mi neslo krome

WinGetText, TohleTamJe, outlook
MsgBox %TohleTamJe%
ale nebylo tam vsechno, co spy pod ( Visible Window Text ) ukazuje
User avatar
Hacker
Moderator
Moderator
Posts: 13052
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

Hm, zaujimave, mne to vypise vsetko. Skus ine okna, a prikaz

Code: Select all

WinGetText, TohleTamJe, A
(A = active window).

HTH
Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
Terka
Senior Member
Senior Member
Posts: 326
Joined: 2006-05-24, 09:04 UTC

Post by *Terka »

Tak nevim co je blbe, ale ted jsem to spustila a je tam vsechno. Jedine co jsem menila je myslim $ na zacatku klaves. zkratky.
K cemu ze je ten $ na zacatku dobry?
A nez jsem tuto odpoved stacila poslat, uz mi to opet nejde aniz bych udelala nejakou zmenu ve skriptu :((
tak to je ve funkcich winwait, winwaitactive atd. chybu brzy najdu..
tak jsem to vyresila jinak - pres CLICK
jde dat do ahk prikazy linuxu jako head tail grep ?
User avatar
Hacker
Moderator
Moderator
Posts: 13052
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

$ instaluje keyboard hook, coz jest po slovensky taky maly programcek, taka brana, kontrolor, dozorca, ktoremu prejdu pod ruky vsetky klavesy, ktore stlacis, a potom je na nom, ci na ich zaklade nieco urobi a ci ich preposle dalej Windowsu. Ked tam ten $ nie je, tak Windows zobudi AHK ked nieco stlacis, ale AHK uz nema vplyv na to, ci sa ta klavesa preposle dalej, alebo nie. V prvom pripade je teda "panom" AHK, v druhom Windows. Osobne vsade davam $, ak to vyslovene niecomu neskodi.

Head, tail ani grep AHK vlastne nema, jedine ze by si ich spustala cez Run, atd. Pripadne naprogramovala sama. Head je vyslovene lahky, podobne aj grep. Tail by bol trosku zlositejsi.

Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
Terka
Senior Member
Senior Member
Posts: 326
Joined: 2006-05-24, 09:04 UTC

Post by *Terka »

1. jasne.
2. dobre, kdyz to budu potrebovat tak to zkusim. Nebo pokud budes tak hodny napis mi treba grep, predpokladam ze se to dela jako funkce.
zkusim:
Head cislo: StringSplit - Enter jako delimiter a cyklus ktery to tiskne a pridava za kazdou polozkou Enter. Podminka bude index pole<=cislo

Grep:to same jen porovnat polozku pole s tim co chci tisknout.

Tail: zjistit cislo posledni polozky pole a cyklus dat obracene.
Jinak diky!
tady neco k grepu:
http://www.autohotkey.com/forum/topic16164.html
Post Reply