Hirdetés

2024. május 1., szerda

Gyorskeresés

Útvonal

Fórumok  »  OS, alkalmazások  »  AutoHotKey

Hozzászólások

(#51) Hege1234


Hege1234
addikt

Sziasztok!

afk módot szeretném kicsit praktikusabbá tenni

megoldható hogy egy háttérben futó játék/program-ba pl 5 percenként leüssön egy bill-t?
ha igen
le lehet "korlátozni" hogy csak abban az egy játékban/programban végezze el a leütést amig nekem egy másik program van elötérbe?

köszönöm előre is!

(#52) Hege1234


Hege1234
addikt

eddig jutottam :B
de ez csak akkor működik ha előtérbe van a játék
tálcára lerakva már nem
valakinek ötlete rá?

#Persistent
SetTimer, SendKey1, 300000 ; Time in miliseconds.
return

SendKey1:
ControlSend, , {L}, Grand Theft Auto V  ; Sends L to the window
return

(#53) energomatt válasza Hege1234 (#52) üzenetére


energomatt
senior tag

Gondolom, előtérbe kellene hozni a parancs idejére, majd a korábban előtérben lévőt visszavenni. Az AHK ugyanis alapvetően a Windowst kezeli, nem pedig a futó programokat. Emellett persze saját nyelven írt programjait is kezeli, ha azok éppen futnak.

[ Szerkesztve ]

(#54) Hege1234 válasza energomatt (#53) üzenetére


Hege1234
addikt

arra gondolsz hogy pl böngészek és 5 perc múlva bejönne az adott ablak lenyomja az L -billt
majd visszavált a böngészőre?

a ControlSend nem pont az lenne hogy egy már előtérben lévő ablakból
"hozzáférne" egy háttérben lévőhöz?

(#55) energomatt válasza Hege1234 (#54) üzenetére


energomatt
senior tag

Igen. Ez így megoldható, ha a Windows engedi a váltásokat.

(#56) Hege1234 válasza energomatt (#55) üzenetére


Hege1234
addikt

azt nem tudom hogy mit enged a win

annak mi lenne a parancsa vagy mivel egészülne ki a kód
hogy egy háttérben lévő ablak előtérbe kerüljön leüsse a bill-t
majd egyből háttérbe is legyen téve és visszaváltson arra az ablakra amin voltam?

(#57) energomatt válasza Hege1234 (#56) üzenetére


energomatt
senior tag

Holnap készítek egy mintakódot erre.

(#58) energomatt


energomatt
senior tag

De itt a séma hozzá:

Időmérő ciklus

Winactivate, ablaknév A
Winwait, ablaknév A

billentyűparancs

Winactivate, ablaknév B

Vagyis az "A" ablakban futó program, amiben vére kell hajtani a billentyű parancsot.

[ Szerkesztve ]

(#59) Hege1234


Hege1234
addikt

(#57) köszönöm :R

(#58)
mi történik akkor ha a kódban a B helyett
nekem egy olyan program lesz éppen előtérbe ami nem A vagy B?

amire most rájöttem hogy a böngésző(chrome) nem lehet nálam majd "A"
mert annak minden lapnál megváltozik az ablakneve
persze lehet csak én bonyolítom túl...

(#60) energomatt válasza Hege1234 (#59) üzenetére


energomatt
senior tag

Le kell kérdezni az aktuális ablaknevet azt egy változóba betenni és azután arra lehet hivatkozni.
A böngésző vagy más ablakok ahk_class nevét érdemes használni, az nem változik.
Az AHK helpben ezeknek mind utánanézhetsz. Tény, hogy egy ilyen egyszerűbb program megírásához is elég sokat kell tanulni. De csak akkor érdemes egy ilyet megírni ha kicsit komolyabban és később is akarsz ezzel foglalkozni.

(#61) Hege1234 válasza energomatt (#60) üzenetére


Hege1234
addikt

ez igaz
neki is állnék komolyabban ha nem
csak erre az egy dologra kellene az ahk

ahk-ra is csak azért találtam rá mert elvileg tudta volna azt hogy egy háttérben levő
ablakba leüssön egy billt
(próbáltam keresni hátha van más nyelv is amibe megoldható lenne de arra a google nem adott találatot)

(#62) DrojDtroll válasza Hege1234 (#61) üzenetére


DrojDtroll
addikt

Tudja azt amit akarsz,

háttérben lévő spotify-t, vlct sikeresen tudtam irányítani.

Controlsend talán, kedden leszek gep előtt akkor pontosabban meg tudom mondani

(#63) Hege1234


Hege1234
addikt

(#62) okés köszi!

nektek ez mond valamit?
GTAV uses a lowlevel hook

(#64) Landro666


Landro666
csendes tag

Sziasztok!

Segítséget szeretnék kérni, nem hinném, hogy nehéz feladat lenne csak én nem értek eléggé hozzá 😅 viszon

(#65) energomatt válasza Landro666 (#64) üzenetére


energomatt
senior tag

Ezt mások is megpróbálták már, nekik sikerült. :)

(#66) Landro666 válasza energomatt (#65) üzenetére


Landro666
csendes tag


Ezt szeretném automatizálni első körben, hogy ne kelljen egyesével kattintani hanem csak nyomok egy gombot és végig pörgetné szépen magának, ha egyesével kéne se lenne nagy probléma, de már akkor is kényelmesebb lenne. 200-300 hirdetésnél már érdemleges időt tudnék spórolni :) Ezen kívül , lenne még kicsit bonyolultabb, de azt későbbre hagynám, ha ez sikerülne :)

(#67) DrojDtroll válasza Landro666 (#66) üzenetére


DrojDtroll
addikt

webre szerintem nem a legjobb eszköz az ahk

(#68) energomatt


energomatt
senior tag

Miután nálad, a te beállításaiddal jelennek meg ezek az ablakok, csak arra az esetre lehet a programot illeszteni, tehát neked kellene ezt megírni, de ez alapfokú ismeretek és gyakorlat hiányában ez elég nehezen fog menni.
A sablonos megoldása ez lenne:
Az adott ablak aktívvá tétele,
Az egérpozíció meghatározott helyre mozgatása, majd klikkelés.
Majd újabb ablak és így tovább.
Csak akkor van értelme, ha meg akarod ismerni az AHK-t.

(#69) Landro666 válasza energomatt (#68) üzenetére


Landro666
csendes tag

Értem és egy ilyen működő sablont kérhetnék, csak annyi kellene, hogy tutira működjön. A pozíciót meg ki kísérletezem szerintem, de 1920*1080 ba van a felbontás, ha más nem számít.
Meg olyan kérdés lenne, hogy adott szövegből ami vágólapon van ki tudná e szedni majd rögtön be is illeszteni?
Előre is köszönöm!!!
Ha csak pár másodpercet nyerek ezek által már azzal is előrébb vagyok. Jelenleg kombóba használom egy vágólap programmal (clipx) és így is sokat segített az AHK.

Így néz ki a jelenlegi:

+v::
Send, {LButton}
Sleep, 100
Send, {Tab}
Sleep, 100
Send, ^q
Sleep, 150
Send, {2}
Sleep, 300
Send, {Tab}
Sleep, 100
Send ^q
Sleep, 150
Send, {2}
Sleep, 100
Send, {WheelDown}{WheelDown}
return

Ez által a két vágólapon lévő szöveget rögtön teszi is a helyére, de felgyorsítaná a dolgot, ha még sikerülne a szövegből kiszednie az árat és tenné is be szépen azt is :D

[ Szerkesztve ]

(#70) energomatt válasza Landro666 (#69) üzenetére


energomatt
senior tag

A vágólap a memóriában van, azzal nem lehet közvetlen dolgozni. Ha beilleszted egy notepadba, akkor kezelheted mindenféle függvénnyel, vagy máshogy.

(#71) DrojDtroll válasza energomatt (#70) üzenetére


DrojDtroll
addikt

A vágólapot eléri az ahk. Nekem van script-em ami legépeli a vágólap tartalmát pl.:

SetKeyDelay 40
::azzz::
Send, %Clipboard%
Return

Innentől kezdve hogy van %Clipboard% változó,
olyan vele dolgozni mint bármilyen más változóval.

[ Szerkesztve ]

(#72) energomatt válasza DrojDtroll (#71) üzenetére


energomatt
senior tag

Igen, már emlékszem, használtam is valamikor. Persze a help-ben mindent meg lehet találni, de egy ilyen kisebb programot is munkaigényes megírni, főleg, ha valaki nem napi szinten használja a programírást.

[ Szerkesztve ]

(#73) DrojDtroll


DrojDtroll
addikt

Egy jó ideje próbálok az ékezet írásra valamilyen megoldást keresni. Az volna az elképzelés, hogy az o,,-> ó lesz az o,,, -> ő

:*?:o,,,::
SendAndLog("ő", "ő")
return

:*?:o,,::
SendAndLog("ó", "ó")
return

Bármit csinálok mindig csak az ó-hoz tartozó hotstring-et sikerül triggerelni. Van ötletetek hogyan tudnám megoldani?

(#74) energomatt válasza DrojDtroll (#73) üzenetére


energomatt
senior tag

:*:o,,::ő
:*:o..::ó

Csak most jutottam hozzá, hogy megnézzem. Egyszerűség kedvéért két pont és két vessző hozzáadásával próbáltam ki.

(#75) DrojDtroll válasza energomatt (#74) üzenetére


DrojDtroll
addikt

o.. => ö már nálam

(#76) energomatt válasza DrojDtroll (#75) üzenetére


energomatt
senior tag

Értelemszerűen nem lehet ugyanazokkal a kiegészítő karakterekkel kétfélét definiálni úgy, hogy az egyiknél kettő van belőle a másiknál meg 3, mert a második leütésekor már értelmezi a váltást.

(#77) MrChris


MrChris
nagyúr

Sziasztok, lenne egy olyan kérdésem..., alap esetben ha nyomva tarok egy billentyűt annak az első ismétlése ~0,5s körül történik, utána már sorozatban kiíródik. Viszont nekem arra lenne szükségem, hogy ez a késleltetés ne legyen. A SetKeyDelay-el próbálkoztam, de azzal csak a második ismétlés utánira tudtam hatni. Ezt hogyan lehet megcsinálni?

(#78) MrChris válasza MrChris (#77) üzenetére


MrChris
nagyúr

Megoldottam.

(#79) PociAti válasza MrChris (#78) üzenetére


PociAti
senior tag

Azt is írhattad volna:
Megoldottam, be-beee, de nem árulom el hogyan!

(#80) MrChris válasza PociAti (#79) üzenetére


MrChris
nagyúr

:D
Az alábbi lett a megoldás, ez a script a numpad jobbra nyilával (azaz numlock off!) azonnal viszi az egérmutatót megállás nélkül jobbra:

NumpadRight::
Loop
{
Sleep, 10
MouseMove, 1, 0, 0, R
if !GetKeyState("NumpadRight", "P")
break
}
return

De ahogy láttam ez fapados megoldás, a igazi vér programozók kicsivel másképp csinálják.

[ Szerkesztve ]

(#81) milu


milu
aktív tag

Véleményetek szerint képernyőmentésre hol lehet jó AHK sriptet találni?
A képernyőn lévő x,y pozíciókat és a kinyert kép méretét lehessen manuálisan beállítani!
Erre alkalmas lehet az AHK?

(#82) vgyuri válasza milu (#81) üzenetére


vgyuri
őstag

[link] Autohotkey + Nircmd-vel oldanám meg, utóbbit az autohotkey könyvtárába kell bemásolni, az F5 megnyomására az aktuális dátum és idő néven elmenti a megadott képernyő részletet:

F5::
{
    FormatTime, TimeString, , yyyy.MM.dd HH.mm.ss    
    Run "nircmd.exe" savescreenshot "%TimeString%.png" 50 50 300 200
}

(#83) milu válasza vgyuri (#82) üzenetére


milu
aktív tag

vgyuri!
Köszönöm a válaszodat!
Annyi a kérdésem még, hogy egyszerűen hogy lehet megtudni, egy konkrét képrészletnek (amire szükségem van és nem a teljes képernyőnek) mik az x és y koordinátája?

(#84) DrojDtroll válasza milu (#83) üzenetére


DrojDtroll
addikt

Window Spy. Az ahk eszköze/feltelepül vele.

(#85) milu válasza DrojDtroll (#84) üzenetére


milu
aktív tag

DrojDtroll, vgyuri!
Köszönöm a válaszaitokat, sokat segítettetek!
Így már szerintem menni fog.

(#86) BigBadPlaYeR


BigBadPlaYeR
senior tag

Üdvözlet!
Szeretnék mappákat megnyitni, de az ékezetes betűkkel problémába ütközik:
path:="D:\Ajtó"
OutputDebug, % path
Run, Explorer /n`,/e`,%path% , , Max
Output-ként azt kapom vissza, hogy " D:\AjtĂł ". Ilyen nevű mappa persze nem létezik, így nem is tuja megnyitni. Ez csak egy példa, mindenféle magyar nyelvű karakterek előfordulhatnak.
Próbálkoztam a 'FileEncoding' paranccsal, de sikertelenül. Valakinek lenne esetleg ötlete, hogy merre indulhatnék?
AHK Version 1.1.33.10 (Unicode)

"Furcsa, hogy az ember milyen keveset ér el, ha nem is próbálkozik."

(#87) vgyuri válasza BigBadPlaYeR (#86) üzenetére


vgyuri
őstag

Az ahk fájl karakterkódolását állítsd át pl. notepad++-ban:
- Kódolás -> Ansi (UTF-8 nem jó)
- Kódolás -> Karakterkódolás -> Közép-európai -> Windows-1250

Most próbáltam magyar windows 10-en és rendben megnyitja nálam a "C:\Árvíztűrő Ütvefúrógép" könyvtárat is.

(#88) PociAti válasza vgyuri (#87) üzenetére


PociAti
senior tag

OFF
"Árvíztűrő Ütvefúrógép"
helyesen:
Árvíztűrő Tükörfúrógép
Nem csak találomra vannak benne a magyar mássalhangzók, hanem (az ö-t nem kihagyva) mindegyik pontosan egyszer szerepel.

(#89) BigBadPlaYeR válasza vgyuri (#87) üzenetére


BigBadPlaYeR
senior tag

Köszönöm, ez volt a gond :)
Eredetileg VS Code-ban hoztam létre a fájlt, és az alapból UTF-8 -ban mentette. Kipróbáltam, hogy ha intézőben, jobb klikk menüből hozok létre új .ahk fájlt, akkor azt 'UTF-8 BOM' -ban menti; és azzal működött a kódrészlet. Átállítottam az eredeti fájl kódolását és így már tökéletesen megy. Köszönöm!

"Furcsa, hogy az ember milyen keveset ér el, ha nem is próbálkozik."

(#90) Casanova*


Casanova*
veterán

srácok! egér bal gombjára lehet kódolni dpi váltó szkriptet? pl. mikor megnyomom a fire gombot ,akkor csökkenti a dpi-t. Mikor elengedem a gombot,akkor visszavált. fps játékokra kellene! :D

[ Szerkesztve ]

"Ha bírálnak téged,akkor valamit jól csinálsz. Hiszen csak azt támadják,akinél a labda van." ( BRUCE LEE ) ヅ ҳ̸Ҳ̸ҳҳ̸Ҳ̸ҳҳ̸Ҳ̸ҳҳ̸Ҳ̸ҳҳ̸Ҳ̸ҳ

(#91) energomatt válasza Casanova* (#90) üzenetére


energomatt
senior tag

Kellene hozzá egy dpi váltó script, ami futtatható. Akkor, ha az egér bal gombját nem akarod másra használni, akkor elképzelhető, hogy lehet. Legalábbis, szerintem.

(#92) BigBadPlaYeR válasza Casanova* (#90) üzenetére


BigBadPlaYeR
senior tag

Az egér DPI beállítást jellemzően az egér saját szoftvere végzi. Ha van hozzá valami saját script-nyelv, amivel önállóan futtatható script fájlt lehet készíteni, akkor azt csak hozzá kell rendelni egy gyorsbillentyűhöz AHK-ban.
Ha ilyen nincs, akkor csak egy lehetőségről tudok: kideríteni, hogy milyen rendszerszintű üzenetet küldd a szoftver DPI állításkor, és azt lehet szimulálni: SendMessage
Egyszer már próbálkoztam ilyesmivel, nem sok sikerrel. Windows Detective -el elvileg lehet monitorozni az üzeneteket.

"Furcsa, hogy az ember milyen keveset ér el, ha nem is próbálkozik."

(#93) Casanova* válasza BigBadPlaYeR (#92) üzenetére


Casanova*
veterán

köszönöm srácok! :R

"Ha bírálnak téged,akkor valamit jól csinálsz. Hiszen csak azt támadják,akinél a labda van." ( BRUCE LEE ) ヅ ҳ̸Ҳ̸ҳҳ̸Ҳ̸ҳҳ̸Ҳ̸ҳҳ̸Ҳ̸ҳҳ̸Ҳ̸ҳ

(#94) drklas


drklas
csendes tag

adott három kép, az elérési utjai:path1,path2,path3 az F1 gomb megnyomásával rendre megjeleníti sorban a képeket, az utolsó kép után ciklikusan az elso kép ismétlodik. ahk script? :R

drk

(#95) DrojDtroll válasza drklas (#94) üzenetére


DrojDtroll
addikt

Nem lehet őket berakni egy mappába?
Az sokat egyszerűsíteni a dolgon szerintem.
Az infraview command line paraméterit érdemes megnézned szerintem.
https://www.etcwiki.org/wiki/IrfanView_Command_Line_Options
ahk oldalon ez egy sima run lesz

(#96) drklas


drklas
csendes tag

ez működik:
!F12:: Run "c:\INFOSTORE\KEPEK\ahkeys.jpg"
ez nem:
!F12::
path1 := "c:\INFOSTORE\KEPEK\ahkeys.jpg"
imagePath := path1
Run, "c:\Program Files (x86)\IrfanView\i_view32.exe" %imagePath% ;ez az előző sorhoz tartozik
Sleep, 500
return

Miért?

drk

(#97) DrojDtroll válasza drklas (#96) üzenetére


DrojDtroll
addikt

F1::
Run, C:\Program Files\IrfanView\i_view64.exe /slideshow=f:\pictures.txt /reloadonloop
Return

Nálam ez működik.
Annyi trükkje volt, hogy előtte az ifranview-n be kellett kapcsolni a loop-ot a slideshow-nál. Később már command line is működött.

(#98) drklas válasza DrojDtroll (#97) üzenetére


drklas
csendes tag

Nagyon köszönöm a választ, nekem is így működik, és legalább újat tanultam az irfanview-ról. Itt az én megoldásom:
path1 := "c:\INFOSTORE\KEPEK\ahkeys.jpg"
path2 := "c:\INFOSTORE\KEPEK\vivike.jpg"
path3 := "c:\INFOSTORE\KEPEK\alair_zso.jpg"
; Kezdetben az első képet mutatjuk meg
imagePath := path1
; Függvény az aktuális kép megjelenítésére
ShowImage(imagePath) {
; Close the specific window of the image viewer (replace 'Image Viewer' with the actual window title)
WinClose, Image Viewer

; Itt írd meg, hogy hogyan jelenítsd meg a képet
Run, %imagePath%
}
^F1 Up::
; F1 felengedésekor leellenőrizzük, hogy melyik képet kell megjeleníteni
if (imagePath = path1) {
; Ha az első képet mutattuk, akkor a másodikat mutatjuk meg
imagePath := path2
} else if (imagePath = path2) {
; Ha a másodikat mutattuk, akkor a harmadikat mutatjuk meg
imagePath := path3
} else {
; Ha a harmadikat mutattuk, akkor újra az elsőt mutatjuk meg
imagePath := path1
}
; Kép megjelenítése
ShowImage(imagePath)
sleep 500
return
Az a baj vele, hogy a scriptet futtatva működik, de ha egy másik bővitendő scriptbe beillesztem, akkor nem. A megoldás: két script futtatása. A scriptet a Copilot irta, és az Imageviewer az Irfanview, bár nem kellett megadni, mert biztos default.
Sajnos amikor a másik képet megjeleníti, az előzőt nem tűnteti el.

drk

Útvonal

Fórumok  »  OS, alkalmazások  »  AutoHotKey
Copyright © 2000-2024 PROHARDVER Informatikai Kft.