/*
License
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software, to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish and distribute
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
This permission notice shall be included in all copies
or substantial portions of the Software. Except as
contained in this notice, the name(s) of the above
copyright holders shall not be used in advertising
or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
*/
SendMode Input ;make it fast
CoordMode, ToolTip, Screen ;ToolTips are used to inform user and needs to be Screen relative
#SingleInstance force
#UseHook ;As Input is used it will be installed anyway
#MaxThreadsPerHotkey 1 ;Hotkeys will be run only once (They will be run after relasing of the keys)
;#HotkeyModifierTimeout -1 ;Not necessary because of Hook and SendInput
#NoEnv ;Environment variables will not be checked
;#KeyHistory 15
;#SingleInstance
#InstallKeybdHook
;#HotkeyModifierTimeout 100
;Process, Priority, , High
StringTrimRight, SCRIPTNAME_VAR, A_ScriptName, 4 ;Name of Gui's
mwt_MaxWindows = 50 ;Maximal windows to hide (WINDOWHIDER)
mwt_StandardMenu = Y ;Use Standard Tray Menu, e.g. Pause Script
;SetWinDelay 100 ;Not Used
;SetKeyDelay -1
config = config.ini ;configuration file including all keywords, settings and macros
StringCaseSense, On ;will be turned off after Password was checked
eingabestarttooltip = - ESC = CANCEL`n- ALT+M = OPTIONS ;standard text of main gui when launching anything CAPSLOCK+TAB
outleertooltip := eingabestarttooltip ;needed to display more options and display standard text again
;Install hiedit for editing macros
FileInstall, HiEdit.dll, HiEdit.dll, 0
FileGetTime, filetime, A_ScriptName
FileGetTime, kwfiletime, KeyWords.hes
If (filetime != kwfiletime)
FileInstall, KeyWords.hes, KeyWords.hes, 1
; HOTKEYs FOR CAPS/NUM/SCROLLLOCK
;Supported Hotkeys for CAPSLOCK, SCROLLLOCK and NUMLOCK
hotkeykeys = a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.0.1.2.3.4.5.6.7.8.9
;Supported HOTKEYS for HOTKEY**
hotkeys = 01.02.03.04.05.06.07.08.09.0a.0b.0c.0d.0e.0f.0g.0h.0i.0j.0k.0l.0m.0n.0o.0p.0q.0r.0s.0t.0u.0v.0w.0x.0y.0z.10.12.13.14.15.16.17.18.19.1a.1b.1c.1d.1e.1f.1g.1h.1i.1j.1k.1l.1m.1n.1o.1p.1q.1r.1s.1t.1u.1v.1w.1x.1y.1z.20.21.23.24.25.26.27.28.29.2a.2b.2c.2d.2e.2f.2g.2h.2i.2j.2k.2l.2m.2n.2o.2p.2q.2r.2s.2t.2u.2v.2w.2x.2y.2z.30.31.32.34.35.36.37.38.39.3a.3b.3c.3d.3e.3f.3g.3h.3i.3j.3k.3l.3m.3n.3o.3p.3q.3r.3s.3t.3u.3v.3w.3x.3y.3z.40.41.42.43.45.46.47.48.49.4a.4b.4c.4d.4e.4f.4g.4h.4i.4j.4k.4l.4m.4n.4o.4p.4q.4r.4s.4t.4u.4v.4w.4x.4y.4z.50.51.52.53.54.56.57.58.59.5a.5b.5c.5d.5e.5f.5g.5h.5i.5j.5k.5l.5m.5n.5o.5p.5q.5r.5s.5t.5u.5v.5w.5x.5y.5z.60.61.62.63.64.65.67.68.69.6a.6b.6c.6d.6e.6f.6g.6h.6i.6j.6k.6l.6m.6n.6o.6p.6q.6r.6s.6t.6u.6v.6w.6x.6y.6z.70.71.72.73.74.75.76.78.79.7a.7b.7c.7d.7e.7f.7g.7h.7i.7j.7k.7l.7m.7n.7o.7p.7q.7r.7s.7t.7u.7v.7w.7x.7y.7z.80.81.82.83.84.85.86.87.89.8a.8b.8c.8d.8e.8f.8g.8h.8i.8j.8k.8l.8m.8n.8o.8p.8q.8r.8s.8t.8u.8v.8w.8x.8y.8z.90.91.92.93.94.95.96.97.98.9a.9b.9c.9d.9e.9f.9g.9h.9i.9j.9k.9l.9m.9n.9o.9p.9q.9r.9s.9t.9u.9v.9w.9x.9y.9z.a0.a1.a2.a3.a4.a5.a6.a7.a8.a9.ab.ac.ad.ae.af.ag.ah.ai.aj.ak.al.am.an.ao.ap.aq.ar.as.at.au.av.aw.ax.ay.az.b0.b1.b2.b3.b4.b5.b6.b7.b8.b9.ba.bc.bd.be.bf.bg.bh.bi.bj.bk.bl.bm.bn.bo.bp.bq.br.bs.bt.bu.bv.bw.bx.by.bz.c0.c1.c2.c3.c4.c5.c6.c7.c8.c9.ca.cb.cd.ce.cf.cg.ch.ci.cj.ck.cl.cm.cn.co.cp.cq.cr.cs.ct.cu.cv.cw.cx.cy.cz.d0.d1.d2.d3.d4.d5.d6.d7.d8.d9.da.db.dc.de.df.dg.dh.di.dj.dk.dl.dm.dn.do.dp.dq.dr.ds.dt.du.dv.dw.dx.dy.dz.e0.e1.e2.e3.e4.e5.e6.e7.e8.e9.ea.eb.ec.ed.ef.eg.eh.ei.ej.ek.el.em.en.eo.ep.eq.er.es.et.eu.ev.ew.ex.ey.ez.f0.f1.f2.f3.f4.f5.f6.f7.f8.f9.fa.fb.fc.fd.fe.fg.fh.fi.fj.fk.fl.fm.fn.fo.fp.fq.fr.fs.ft.fu.fv.fw.fx.fy.fz.g0.g1.g2.g3.g4.g5.g6.g7.g8.g9.ga.gb.gc.gd.ge.gf.gh.gi.gj.gk.gl.gm.gn.go.gp.gq.gr.gs.gt.gu.gv.gw.gx.gy.gz.h0.h1.h2.h3.h4.h5.h6.h7.h8.h9.ha.hb.hc.hd.he.hf.hg.hi.hj.hk.hl.hm.hn.ho.hp.hq.hr.hs.ht.hu.hv.hw.hx.hy.hz.i0.i1.i2.i3.i4.i5.i6.i7.i8.i9.ia.ib.ic.id.ie.if.ig.ih.ij.ik.il.im.in.io.ip.iq.ir.is.it.iu.iv.iw.ix.iy.iz.j0.j1.j2.j3.j4.j5.j6.j7.j8.j9.ja.jb.jc.jd.je.jf.jg.jh.ji.jk.jl.jm.jn.jo.jp.jq.jr.js.jt.ju.jv.jw.jx.jy.jz.k0.k1.k2.k3.k4.k5.k6.k7.k8.k9.ka.kb.kc.kd.ke.kf.kg.kh.ki.kj.kl.km.kn.ko.kp.kq.kr.ks.kt.ku.kv.kw.kx.ky.kz.l0.l1.l2.l3.l4.l5.l6.l7.l8.l9.la.lb.lc.ld.le.lf.lg.lh.li.lj.lk.lm.ln.lo.lp.lq.lr.ls.lt.lu.lv.lw.lx.ly.lz.m0.m1.m2.m3.m4.m5.m6.m7.m8.m9.ma.mb.mc.md.me.mf.mg.mh.mi.mj.mk.ml.mn.mo.mp.mq.mr.ms.mt.mu.mv.mw.mx.my.mz.n0.n1.n2.n3.n4.n5.n6.n7.n8.n9.na.nb.nc.nd.ne.nf.ng.nh.ni.nj.nk.nl.nm.no.np.nq.nr.ns.nt.nu.nv.nw.nx.ny.nz.o0.o1.o2.o3.o4.o5.o6.o7.o8.o9.oa.ob.oc.od.oe.of.og.oh.oi.oj.ok.ol.om.on.op.oq.or.os.ot.ou.ov.ow.ox.oy.oz.p0.p1.p2.p3.p4.p5.p6.p7.p8.p9.pa.pb.pc.pd.pe.pf.pg.ph.pi.pj.pk.pl.pm.pn.po.pq.pr.ps.pt.pu.pv.pw.px.py.pz.q0.q1.q2.q3.q4.q5.q6.q7.q8.q9.qa.qb.qc.qd.qe.qf.qg.qh.qi.qj.qk.ql.qm.qn.qo.qp.qr.qs.qt.qu.qv.qw.qx.qy.qz.r0.r1.r2.r3.r4.r5.r6.r7.r8.r9.ra.rb.rc.rd.re.rf.rg.rh.ri.rj.rk.rl.rm.rn.ro.rp.rq.rs.rt.ru.rv.rw.rx.ry.rz.s0.s1.s2.s3.s4.s5.s6.s7.s8.s9.sa.sb.sc.sd.se.sf.sg.sh.si.sj.sk.sl.sm.sn.so.sp.sq.sr.st.su.sv.sw.sx.sy.sz.t0.t1.t2.t3.t4.t5.t6.t7.t8.t9.ta.tb.tc.td.te.tf.tg.th.ti.tj.tk.tl.tm.tn.to.tp.tq.tr.ts.tu.tv.tw.tx.ty.tz.u0.u1.u2.u3.u4.u5.u6.u7.u8.u9.ua.ub.uc.ud.ue.uf.ug.uh.ui.uj.uk.ul.um.un.uo.up.uq.ur.us.ut.uv.uw.ux.uy.uz.v0.v1.v2.v3.v4.v5.v6.v7.v8.v9.va.vb.vc.vd.ve.vf.vg.vh.vi.vj.vk.vl.vm.vn.vo.vp.vq.vr.vs.vt.vu.vw.vx.vy.vz.w0.w1.w2.w3.w4.w5.w6.w7.w8.w9.wa.wb.wc.wd.we.wf.wg.wh.wi.wj.wk.wl.wm.wn.wo.wp.wq.wr.ws.wt.wu.wv.wx.wy.wz.x0.x1.x2.x3.x4.x5.x6.x7.x8.x9.xa.xb.xc.xd.xe.xf.xg.xh.xi.xj.xk.xl.xm.xn.xo.xp.xq.xr.xs.xt.xu.xv.xw.xy.xz.y0.y1.y2.y3.y4.y5.y6.y7.y8.y9.ya.yb.yc.yd.ye.yf.yg.yh.yi.yj.yk.yl.ym.yn.yo.yp.yq.yr.ys.yt.yu.yv.yw.yx.yz.z0.z1.z2.z3.z4.z5.z6.z7.z8.z9.za.zb.zc.zd.ze.zf.zg.zh.zi.zj.zk.zl.zm.zn.zo.zp.zq.zr.zs.zt.zu.zv.zw.zx.zy
;SUPPORTED NUMPAD HOTKEYS
numkeys = 01.02.03.04.05.06.07.08.09.10.12.13.14.15.16.17.18.19.20.21.23.24.25.26.27.28.29.30.31.32.34.35.36.37.38.39.40.41.42.43.45.46.47.48.49.50.51.52.53.54.56.57.58.59.60.61.62.63.64.65.67.68.69.70.71.72.73.74.75.76.78.79.80.81.82.83.84.85.86.87.89.90.91.92.93.94.95.96.97.98
StringSplit, hotkeykeys, hotkeykeys, ., . ;Stores each possible hotkey CAPS/SCROLL/NUMLOCK in Array to create them later
StringSplit, numkeys, numkeys, ., . ;Stores each possible hotkey for Numkeys only
StringSplit, hotkeys, hotkeys, ., . ;Stores each possible hotkey for HOTKEY**(SPEEDHOTKEY)
;KEYS FOR RECORDING
recordmodkeys = AppsKey|!|#|+|CapsLock|Scrolllock|NumLock|LControl|LAlt|LShift|Tab|Backspace|Enter|Left|Right|Up|Down|Delete|Insert|Escape|Home|End|PgUp|PgDn|Numpad0|Numpad1|Numpad2|Numpad3|Numpad4|Numpad5|Numpad6|Numpad7|Numpad8|Numpad9|NumpadDot|NumpadDiv|NumpadMult|NumpadAdd|NumpadSub|NumpadEnter|NumpadIns|NumpadEnd|NumpadDown|NumpadPgDn|NumpadLeft|NumpadClear|NumpadRight|NumpadHome|NumpadUp|NumpadPgUp|NumpadDel|NumpadDiv|NumpadMult|NumpadAdd|NumpadSub|NumpadEnter|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|F13|F14|F15|F16|F17|F18|F19|F20|F21|F22|F23|F24|Pause|Break|PrintScreen|LWin|RWin|RControl|RAlt|RShift|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|0|1|2|3|4|5|6|7|8|9|Space
recordmodshort = {AppsKey}|{!}|{#}|{+}||||^|!|+|{TAB}|{BS}|{ENTER}|{LEFT}|{RIGHT}|{UP}|{DOWN}|{DEL}|{INS}|{ESC}|{HOME}|{END}|{PGUP}|{PGDN}|{Numpad0}|{Numpad1}|{Numpad2}|{Numpad3}|{Numpad4}|{Numpad5}|{Numpad6}|{Numpad7}|{Numpad8}|{Numpad9}|{NumpadDot}|{NumpadDiv}|{NumpadMult}|{NumpadAdd}|{NumpadSub}|{NumpadEnter}|{NumpadIns}|{NumpadEnd}|{NumpadDown}|{NumpadPgDn}|{NumpadLeft}|{NumpadClear}|{NumpadRight}|{NumpadHome}|{NumpadUp}|{NumpadPgUp}|{NumpadDel}|{NumpadDiv}|{NumpadMult}|{NumpadAdd}|{NumpadSub}|{NumpadEnter}|{F1}|{F2}|{F3}|{F4}|{F5}|{F6}|{F7}|{F8}|{F9}|{F10}|{F11}|{F12}|{F13}|{F14}|{F15}|{F16}|{F17}|{F18}|{F19}|{F20}|{F21}|{F22}|{F23}|{F24}|{PAUSE}|{BREAK}|{PRINTSCREEN}|#|#|^|!|+|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|0|1|2|3|4|5|6|7|8|9|{Space}
StringSplit, recordmodkeys, recordmodkeys, |
StringSplit, recordmodshort, recordmodshort, |
;needed to check if DLLCALL parameters have "", not requiered here to use them
Transform, quotationmark, Chr, 34
;needed to separate macros also if and loop
Transform, macroseparator, Chr, 3
macroifloopblock := "{" . macroseparator
macroifloopblockend := macroseparator . "}"
Transform, programseparator, Chr, 2
;Used to determine if the command exists before running it, second is for information in MACRO MANAGEMENT and shows short commands, so use [S, 1000] instead of [Sleep, 1000]
workingcommands = AutoTrim|AT|BlockInput|BI|Break|Click|C|ClipWait|Continue|CW|Control|CTRL|ControlClick|CC|ControlFocus|CF|ControlGet|CG|ControlGetFocus|CGF|ControlGetPos|CGP|ControlGetText|CGT|ControlMove|CMO|ControlSend|CS|ControlSendRAW|CSR|ControlSetText|CST|CoordMode|CM|Critical|CR|DetectHiddenText|DHT|DetectHiddenWindows|DHW|DllCall|DC|Drive|D|DriveGet|DG|DriveSpaceFree|DSF|EnvAdd|EA|EnvDiv|ED|EnvGet|EG|EnvMult|EM|EnvSet|ES|EnvSub|ESU|EnvUpdate|EU|Exit|E|ExitApp|EAP|FileAppend|FA|FileCopy|FC|FileCopyDir|FCD|FileCreateDir|FCDIR|FileCreateShortcut|FCS|FileDelete|FD|FileGetAttrib|FGA|FileGetShortcut|FGSH|FileGetSize|FGS|FileGetTime|FGT|FileGetVersion|FGV|FileMove|FM|FileMoveDir|FMD|FileRead|FR|FileReadLine|FRL|FileRecycle|FRC|FileRecycleEmpty|FRE|FileRemoveDir|FRD|FileSelectFile|FSD|FileSelectFolder|FSF|FileSetAttrib|FSA|FileSetTime|FST|FormatTime|FT|GetKeyState|GKS|Gosub|GS|Goto|GT|GroupActivate|GA|GroupAdd|GADD|GroupClose|GCL|GroupDeactivate|GD|Gui|G|GuiControl|GC|GuiControlGet|GCG|Hotkey|H|If|IfEqual|IEQ|IfExist|IE|IfGreater|IG|IfGreaterOrEqual|IGOE|IfInString|IIS|IfLess|IL|IfLessOrEqual|ILOE|IfMsgBox|IMB|IfNotEqual|INEQ|IfNotExist|INE|IfNotInString|INIS|IfWinActive|IWA|IfWinExist|IWE|IfWinNotActive|IWNA|IfWinNotExist|IWNE|ImageSearch|IS|IniDelete|ID|IniRead|IR|IniWrite|IW|Input|I|InputBox|IB|KeyHistory|KH|KeyWait|KW|ListHotkeys|LH|ListVars|LV|Menu|M|MouseClick|MC|MouseClickDrag|MCD|MouseGetPos|MGP|MouseMove|MM|MsgBox|MB|OnExit|OE|OutputDebug|OD|Pause|P|PixelGetColor|PGC|PixelSearch|PS|PixelWaitColor|PWC|PostMessage|PM|Process|PR|Progress|PRG|Random|RND|RegDelete|RD|RegExMatch|REM|RegExReplace|RER|RegisterCallback|RC|RegRead|RR|RegWrite|RWR|Reload|RL|Run|R|RunAs|RA|RunWait|RW|Send|SN|SendEvent|SEV|SendInput|SI|SendMessage|SMSG|SendMode|SMOD|SendPlay|SP|SendRaw|SRAW|SetBatchLines|SBL|SetCapsLockState|SCLS|SetControlDelay|SCD|SetDefaultMouseSpeed|SDMS|SetEnv|SE|SetFormat|SF|SetKeyDelay|SKD|SetMouseDelay|SMD|SetNumLockState|SNLS|SetScrollLockState|SSLS|SetStoreCapslockMode|SSCM|SetTimer|ST|SetTitleMatchMode|STMM|SetWinDelay|SWD|SetWorkingDir|SWDIR|Shutdown|SD|Sleep|S|Sort|SO|SoundBeep|SB|SoundGet|SOG|SoundGetWaveVolume|SGWV|SoundPlay|SPL|SoundSet|SOS|SoundSetWaveVolume|SSWV|SplashImage|SIM|SplashTextOff|STOF|SplashTextOn|STON|SplitPath|SPTH|StatusBarGetText|SBGT|StatusBarWait|SBW|StringCaseSense|SCS|StringGetPos|SGP|StringLeft|SL|StringLen|SLEN|StringLower|SLOW|StringMid|SM|StringReplace|SRPL|StringRight|SR|StringSplit|SS|StringTrimLeft|STL|StringTrimRight|STR|StringUpper|SUP|Suspend|SU|SysGet|SG|Thread|T|ToolTip|TT|Transform|TR|TrayTip|TRT|URLDownloadToFile|UDTF|VarSetCapacity|VSC|WinActivate|WA|WinActivateBottom|WAB|WinClose|WC|WinGet|WG|WinGetActiveStats|WGAS|WinGetActiveTitle|WGAT|WinGetClass|WGC|WinGetPos|WGP|WinGetText|WGT|WinGetTitle|WGTT|WinHide|WH|WinKill|WK|WinMaximize|WMAX|WinMenuSelectItem|WMSI|WinMinimize|WMIN|WinMinimizeAll|WMA|WinMinimizeAllUndo|WMAU|WinMove|WM|WinRestore|WR|WinSet|WS|WinSetTitle|WST|WinShow|WSH|WinWait|WW|WinWaitActive|WWA|WinWaitClose|WWC|WinWaitNotActive|WWNA|
workingcommandsinfo = AutoTrim (AT)|BlockInput (BI)|Click (C)|ClipWait (CW)|Control (CTRL)|ControlClick (CC)|ControlFocus (CF)|ControlGet (CG)|ControlGetFocus (CGF)|ControlGetPos (CGP)|ControlGetText (CGT)|ControlMove (CMO)|ControlSend (CS)|ControlSendRAW (CSR)|ControlSetText (CST)|CoordMode (CM)|Critical (CR)|DetectHiddenText (DHT)|DetectHiddenWindows (DHW)|DllCall (DC)|Drive (D)|DriveGet (DG)|DriveSpaceFree (DSF)|EnvAdd (EA)|EnvDiv (ED)|EnvGet (EG)|EnvMult (EM)|EnvSet (ES)|EnvSub (ESU)|EnvUpdate (EU)|Exit (E)|ExitApp (EAP)|FileAppend (FA)|FileCopy (FC)|FileCopyDir (FCD)|FileCreateDir (FCDIR)|FileCreateShortcut (FCS)|FileDelete (FD)|FileGetAttrib (FGA)|FileGetShortcut (FGSH)|FileGetSize (FGS)|FileGetTime (FGT)|FileGetVersion (FGV)|FileMove (FM)|FileMoveDir (FMD)|FileRead (FR)|FileReadLine (FRL)|FileRecycle (FRC)|FileRecycleEmpty (FRE)|FileRemoveDir (FRD)|FileSelectFile (FSD)|FileSelectFolder (FSF)|FileSetAttrib (FSA)|FileSetTime (FST)|FormatTime (FT)|GetKeyState (GKS)|Gosub (GS)|Goto (GT)|GroupActivate (GA)|GroupAdd (GADD)|GroupClose (GCL)|GroupDeactivate (GD)|Gui (G)|GuiControl (GC)|GuiControlGet (GCG)|Hotkey (H)|If (If)|IfEqual (IEQ)|IfExist (IE)|IfGreater (IG)|IfGreaterOrEqual (IGOE)|IfInString (IIS)|IfLess (IL)|IfLessOrEqual (ILOE)|IfMsgBox (IMB)|IfNotEqual (INEQ)|IfNotExist (INE)|IfNotInString (INIS)|IfWinActive (IWA)|IfWinExist (IWE)|IfWinNotActive (IWNA)|IfWinNotExist (IWNE)|ImageSearch (IS)|IniDelete (ID)|IniRead (IR)|IniWrite (IW)|Input (I)|InputBox (IB)|KeyHistory (KH)|KeyWait (KW)|ListHotkeys (LH)|ListVars (LV)|Menu (M)|MouseClick (MC)|MouseClickDrag (MCD)|MouseGetPos (MGP)|MouseMove (MM)|MsgBox (MB)|OnExit (OE)|OutputDebug (OD)|Pause (P)|PixelGetColor (PGC)|PixelSearch (PS)|PixelWaitColor (PWC)|PostMessage (PM)|Process (PR)|Progress (PRG)|Random (RND)|RegDelete (RD)|RegExMatch (REM)|RegExReplace (RER)|RegisterCallback (RC)|RegRead (RR)|RegWrite (RWR)|Reload (RL)|Run (R)|RunAs (RA)|RunWait (RW)|Send (SN)|SendEvent (SEV)|SendInput (SI)|SendMessage (SMSG)|SendMode (SMOD)|SendPlay (SP)|SendRaw (SRAW)|SetBatchLines (SBL)|SetCapsLockState (SCLS)|SetControlDelay (SCD)|SetDefaultMouseSpeed (SDMS)|SetEnv (SE)|SetFormat (SF)|SetKeyDelay (SKD)|SetMouseDelay (SMD)|SetNumLockState (SNLS)|SetScrollLockState (SSLS)|SetStoreCapslockMode (SSCM)|SetTimer (ST)|SetTitleMatchMode (STMM)|SetWinDelay (SWD)|SetWorkingDir (SWDIR)|Shutdown (SD)|Sleep (S)|Sort (SO)|SoundBeep (SB)|SoundGet (SOG)|SoundGetWaveVolume (SGWV)|SoundPlay (SPL)|SoundSet (SOS)|SoundSetWaveVolume (SSWV)|SplashImage (SIM)|SplashTextOff (STOF)|SplashTextOn (STON)|SplitPath (SPTH)|StatusBarGetText (SBGT)|StatusBarWait (SBW)|StringCaseSense (SCS)|StringGetPos (SGP)|StringLeft (SL)|StringLen (SLEN)|StringLower (SLOW)|StringMid (SM)|StringReplace (SRPL)|StringRight (SR)|StringSplit (SS)|StringTrimLeft (STL)|StringTrimRight (STR)|StringUpper (SUP)|Suspend (SU)|SysGet (SG)|Thread (T)|ToolTip (TT)|Transform (TR)|TrayTip (TRT)|URLDownloadToFile (UDTF)|VarSetCapacity (VSC)|WinActivate (WA)|WinActivateBottom (WAB)|WinClose (WC)|WinGet (WG)|WinGetActiveStats (WGAS)|WinGetActiveTitle (WGAT)|WinGetClass (WGC)|WinGetPos (WGP)|WinGetText (WGT)|WinGetTitle (WGTT)|WinHide (WH)|WinKill (WK)|WinMaximize (WMAX)|WinMenuSelectItem (WMSI)|WinMinimize (WMIN)|WinMinimizeAll (WMA)|WinMinimizeAllUndo (WMAU)|WinMove (WM)|WinRestore (WR)|WinSet (WS)|WinSetTitle (WST)|WinShow (WSH)|WinWait (WW)|WinWaitActive (WWA)|WinWaitClose (WWC)|WinWaitNotActive (WWNA)
;SETINGS:
accellerationspeed = 1.6
standardspeed = 3
winwatcherspeed = 1
autostarton = ASK
webbrowserfile = %A_ProgramFiles%\Internet Explorer\iexplore
speedhotkeyon =
debuggerison =
debuggerslowdown = 0
OnExit, mwt_RestoreAllThenExit
;Other
;tempvartempvar=
;programparamvar2=tempvartempvar
;programparamvar1=tempvartempvar
;Commands help in Macro Management CAPSLOCK & F5
Autohotkeyhelp =(AutoTrim, On|Off.AutoTrim [AT]`nDetermines whether "Var1 = %Var2%" statements omit spaces and tabs from the beginning and end of Var2)(BlockInput, Mode.BlockInput [BI]`nDisables or enables the user's ability to interact with the computer via keyboard and mouse)(Click OR Click, right, 10, 39 OR Click, down.Click [C]`nClicks a mouse button at the specified coordinatesIt can also hold down a mouse button, turn the mouse wheel, or move the mouse)(ClipWait [, SecondsToWait, 1].ClipWait [CW]`nWaits until the clipboard contains data)(Control, Cmd [, Value, Control, WinTitle, WinText, ExcludeTitle, ExcludeText].Control [CTRL]`nMakes a variety of changes to a control)(ControlClick [, Control-or-Pos, WinTitle, WinText, WhichButton, ClickCount, Options, ExcludeTitle, ExcludeText].ControlClick [CC]`nSends a mouse button or mouse wheel event to a control)(ControlFocus [, Control, WinTitle, WinText, ExcludeTitle, ExcludeText].ControlFocus [CF]`nSets input focus to a given control on a window)(ControlGet, OutputVar, Cmd [, Value, Control, WinTitle, WinText, ExcludeTitle, ExcludeText].ControlGet [CG]`nRetrieves various types of information about a control)(ControlGetFocus, OutputVar [, WinTitle, WinText, ExcludeTitle, ExcludeText].ControlGetFocus [CGF]`nRetrieves which control of the target window has input focus, if any)(ControlGetPos [, X, Y, Width, Height, Control, WinTitle, WinText, ExcludeTitle, ExcludeText].ControlGetPos [CGP]`nRetrieves the position and size of a control)(ControlGetText, OutputVar [, Control, WinTitle, WinText, ExcludeTitle, ExcludeText].ControlGetText [CGT]`nRetrieves text from a control)(ControlMove, Control, X, Y, Width, Height [, WinTitle, WinText, ExcludeTitle, ExcludeText].ControlMove [CMO]`nMoves or resizes a control)(ControlSend [, Control, Keys, WinTitle, WinText, ExcludeTitle, ExcludeText].ControlSend [CS]`nSends simulated keystrokes to a window or control)(ControlSendRaw [, Control, Keys, WinTitle, WinText, ExcludeTitle, ExcludeText].ControlSendRAW [CSR]`nSends simulated keystrokes to a window or control)(ControlSetText [, Control, NewText, WinTitle, WinText, ExcludeTitle, ExcludeText].ControlSetText [CST]`nChanges the text of a control)(CoordMode, ToolTip|Pixel|Mouse|Caret|Menu [, Screen|Relative].CoordMode [CM]`nSets coordinate mode for various commands to be relative to either the active window or the screen)(Critical [, ON|Off] OR Critical, 50.Critical [CR]`nPrevents the current thread from being interrupted by other threads)(DetectHiddenText, On|Off.DetectHiddenText [DHT]`nDetermines whether invisible text in a window is "seen" for the purpose of finding the windowThis affects commands such as IfWinExist and WinActivate)(DetectHiddenWindows, On|Off.DetectHiddenWindows [DHW]`nDetermines whether invisible windows are "seen" by the script)(DllCall,"[DllFile\]Function" [, Type1, Arg1, Type2, Arg2, "Cdecl ReturnType"].DllCall [DC]`nCalls a function inside a DLL, such as a standard Windows API function)(Drive, Sub-command [, Drive , Value].Drive [D]`nEjects/retracts the tray in a CD or DVD drive, or sets a drive's volume label)(DriveGet, OutputVar, Cmd [, Value].DriveGet [DG]`nRetrieves various types of information about the computer's drive[s])(DriveSpaceFree, OutputVar, Path.DriveSpaceFree [DSF]`nRetrieves the free disk space of a drive, in Megabytes)(EnvAdd, Var, Value [, TimeUnits].EnvAdd [EA]`nSets a variable to the sum of itself plus the given value [can also add or subtract time from a date-time value]Synonymous with: var += value)(EnvDiv, Var, Value.EnvDiv [ED]`nSets a variable to itself divided by the given valueSynonymous with: var /= value)(EnvGet, OutputVar, EnvVarName.EnvGet [EG]`nRetrieves an environment variable)(EnvMult, Var, Value.EnvMult [EM]`nSets a variable to itself times the given valueSynonymous with: var *= value)(EnvSet, EnvVar, Value.EnvSet [ES]`nWrites a value to a variable contained in the environment)(EnvSub, Var, Value [, TimeUnits].EnvSub [ESU]`nSets a variable to itself minus the given value [can also compare date-time values]Synonymous with: var -= value)(EnvUpdate.EnvUpdate [EU]`nNotifies the OS and all running applications that environment variable[s] have changed)(Exit [, ExitCode].Exit [E]`nExits the current thread or [if the script is not persistent contains no hotkeys] the entire script)(ExitApp [, ExitCode].ExitApp [EAP]`nTerminates the script unconditionally)(FileAppend [, Text, Filename].FileAppend [FA]`nWrites text to the end of a file [first creating the file, if necessary])(FileCopy, SourcePattern, DestPattern [, Flag].FileCopy [FC]`nCopies one or more files)(FileCopyDir, Source, Dest [, Flag].FileCopyDir [FCD]`nCopies a folder along with all its sub-folders and files [similar to xcopy])(FileCreateDir, DirName.FileCreateDir [FCDIR]`nCreates a directory/folder)(FileCreateShortcut, Target, LinkFile [, WorkingDir, Args, Description, IconFile, ShortcutKey, IconNumber, RunState].FileCreateShortcut [FCS]`nCreates a shortcut [lnk] file)(FileDelete, FilePattern.FileDelete [FD]`nDeletes one or more files)(FileGetAttrib, OutputVar [, Filename].FileGetAttrib [FGA]`nReports whether a file or folder is read-only, hidden, etc)(FileGetShortcut, LinkFile [, OutTarget, OutDir, OutArgs, OutDescription, OutIcon, OutIconNum, OutRunState].FileGetShortcut [FGSH]`nRetrieves information about a shortcut [lnk] file, such as its target file)(FileGetSize, OutputVar [, Filename, Units].FileGetSize [FGS]`nRetrieves the size of a file)(FileGetTime, OutputVar [, Filename, WhichTime].FileGetTime [FGT]`nRetrieves the datetime stamp of a file or folder)(FileGetVersion, OutputVar [, Filename].FileGetVersion [FGV]`nRetrieves the version of a file)(FileMove, SourcePattern, DestPattern [, Flag].FileMove [FM]`nMoves or renames one or more files)(FileMoveDir, Source, Dest [, Flag].FileMoveDir [FMD]`nMoves a folder along with all its sub-folders and filesIt can also rename a folder)(FileRead, OutputVar, Filename.FileRead [FR]`nReads a file's text into a variable)(FileReadLine, OutputVar, Filename, LineNum.FileReadLine [FRL]`nReads the specified line from a file and stores the text in a variable)(FileRecycle, FilePattern.FileRecycle [FRC]`nSends a file or directory to the recycle bin, if possible)(FileRecycleEmpty [, DriveLetter].FileRecycleEmpty [FRE]`nEmpties the recycle bin)(FileRemoveDir, DirName [, Recurse?].FileRemoveDir [FRD]`nDeletes a folder)(FileSelectFile, OutputVar [, Options, RootDir\Filename, Prompt, Filter].FileSelectFile [FSD]`nDisplays a standard dialog that allows the user to open or save file[s])(FileSelectFolder, OutputVar [, StartingFolder, Options, Prompt].FileSelectFolder [FSF]`nDisplays a standard dialog that allows the user to select a folder)(FileSetAttrib, Attributes [, FilePattern, OperateOnFolders?, Recurse?].FileSetAttrib [FSA]`nChanges the attributes of one or more files or foldersWildcards are supported)(FileSetTime [, YYYYMMDDHH24MISS, FilePattern, WhichTime, OperateOnFolders?, Recurse?].FileSetTime [FST]`nChanges the datetime stamp of one or more files or foldersWildcards are supported)(FormatTime, OutputVar [, YYYYMMDDHH24MISS, Format].FormatTime [FT]`nTransforms a YYYYMMDDHH24MISS timestamp into the specified date/time format)(GetKeyState, OutputVar, KeyName [, Mode].GetKeyState [GKS]`nChecks if a keyboard key or mouse/joystick button is down or upAlso retrieves joystick status)(Gosub, Label.Gosub [GS]`nJumps to the specified label and continues execution until Return is encountered)(Goto, Label.Goto [GT]`nJumps to the specified label and continues execution)(GroupActivate, GroupName [, R].GroupActivate [GA]`nActivates the next window in a window group that was defined with GroupAdd)(GroupAdd, GroupName [, WinTitle, WinText, Label, ExcludeTitle, ExcludeText].GroupAdd [GADD]`nAdds a window specification to a window group, creating the group if necessary)(GroupClose, GroupName [, A|R].GroupClose [GCL]`nCloses the active window if it was just activated by GroupActivate or GroupDeactivateIt then activates the next window in the seriesIt can also close all windows in a group)(GroupDeactivate, GroupName [, R].GroupDeactivate [GD]`nSimilar to GroupActivate except activates the next window not in the group)(Gui, sub-command [, Param2, Param3, Param4].Gui [G]`nCreates and manages windows and controlsSuch windows can be used as data entry forms or custom user interfaces)(GuiControl, Sub-command, ControlID [, Param3].GuiControl [GC]`nMakes a variety of changes to a control in a GUI window)(GuiControlGet, OutputVar [, Sub-command, ControlID, Param4].GuiControlGet [GCG]`nRetrieves various types of information about a control in a GUI window)(Hotkey, KeyName [, Label, Options] OR Hotkey, IfWinActive/Exist [, WinTitle, WinText].Hotkey [H]`nCreates, modifies, enables, or disables a hotkey while the script is running)(if, Var, in, MatchList OR if, Var, not in, MatchList OR if, Var, contains, MatchList OR if, Var, not contains, MatchList OR if, Var, between, LowerBound, UpperBound OR if, Var not between, LowerBound, UpperBound OR if, var, is, type OR if, var, is not, type.If [If]`nChecks whether a variable's contents match one of the items in a list)(IfEqual, var, value [same: if var = value].IfEqual [IEQ]`nSpecifies the command[s] to perform if the comparison of a variable to a value evalutes to TRUEWhen more than one command is present, enclose them in a block [braces])(IfExist, FilePattern.IfExist [IE]`nChecks for the existence of a file or folder)(IfGreater, var, value.IfGreater [IG]`nSpecifies the command to perform if the comparison of a variable to a value evalutes to TRUE)(IfGreaterOrEqual, var, value.IfGreaterOrEqual [IGOE]`nSpecifies the command to perform if the comparison of a variable to a value evalutes to TRUE)(IfInString, var, SearchString.IfInString [IIS]`nChecks if a variable contains the specified string)(IfLess, var, value.IfLess [IL]`nSpecifies the command to perform if the comparison of a variable to a value evalutes to TRUE)(IfLessOrEqual, var, value.IfLessOrEqual [ILOE]`nSpecifies the command to perform if the comparison of a variable to a value evalutes to TRUE)(IfMsgBox, ButtonName.IfMsgBox [IMB]`nChecks which button was pushed by the user during the most recent MsgBox command)(IfNotEqual, var, value.IFNotEqual [INEQ]`nSpecifies the command to perform if the comparison of a variable to a value evalutes to TRUE)(IfNotExist, FilePattern.IfNotExist [INE]`nChecks for the existence of a file or folder)(IfNotInString, var, value.IfNotInString [INIS]`nSpecifies the command to perform if the comparison of a variable to a value evalutes to TRUE)(IfWinActive [, WinTitle, WinText, ExcludeTitle, ExcludeText].IfWinActive [IWA]`nChecks if the specified window exists and is currently active [foremost])(IfWinExist [, WinTitle, WinText, ExcludeTitle, ExcludeText].IfWinExist [IWE]`nChecks if the specified window exists)(IfWinNotActive [, WinTitle, WinText, ExcludeTitle, ExcludeText].IfWinNotActive [IWNA]`nChecks if the specified window exists and is currently active [foremost])(IfWinNotExist [, WinTitle, WinText, ExcludeTitle, ExcludeText].IfWinNotExist [IWNE]`nChecks if the specified window exists)(ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile.ImageSearch [IS]`nSearches a region of the screen for an image)(IniDelete, Filename, Section [, Key].IniDelete [ID]`nDeletes a value from a standard format ini file)(IniRead, OutputVar, Filename, Section, Key [, Default].IniRead [IR]`nReads a value from a standard format ini file)(IniWrite, Value, Filename, Section, Key.IniWrite [IW]`nWrites a value to a standard format ini file)(Input [, OutputVar, Options, EndKeys, MatchList].Input [I]`nWaits for the user to type a string [not supported on Windows 9x: it does nothing])(InputBox, OutputVar [, Title, Prompt, HIDE, Width, Height, X, Y, Font, Timeout, Default].InputBox [IB]`nDisplays an input box to ask the user to enter a string)(KeyHistory.KeyHistory [KH]`nDisplays script info and a history of the most recent keystrokes and mouse clicks)(KeyWait, KeyName [, Options].KeyWait [KW]`nWaits for a key or mouse/joystick button to be released or pressed down)(ListHotkeys.ListHotkeys [LH]`nDisplays the hotkeys in use by the current script, whether their subroutines are currently running, and whether or not they use the keyboard or mouse hook)(ListVars.ListVars [LV]`nDisplays the script's variables: their names and current contents)(Menu, MenuName, Cmd [, P3, P4, P5].Menu [M]`nCreates, deletes, modifies and displays menus and menu itemsChanges the tray icon and its tooltipControls whether the main window of a compiled script can be opened)(MouseClick [, WhichButton , X, Y, ClickCount, Speed, D|U, R].MouseClick [MC]`nClicks or holds down a mouse button, or turns the mouse wheelNOTE: The Click command is generally more flexible and easier to use)(MouseClickDrag, WhichButton, X1, Y1, X2, Y2 [, Speed, R].MouseClickDrag [MCD]`nClicks and holds the specified mouse button, moves the mouse to the destination coordinates, then releases the button)(MouseGetPos, [OutputVarX, OutputVarY, OutputVarWin, OutputVarControl, 1|2|3].MouseGetPos [MGP]`nRetrieves the current position of the mouse cursor, and optionally which window and control it is hovering over)(MouseMove, X, Y [, Speed, R].MouseMove [MM]`nMoves the mouse cursor)(MsgBox, Text OR MsgBox [, Options, Title, Text, Timeout].MsgBox [MB]`nDisplays the specified text in a small window containing one or more buttons [such as Yes and No])(OnExit [, Label].OnExit [OE]`nSpecifies a subroutine to run automatically when the script exits)(OutputDebug, Text.OutputDebug [OD]`nSends a string to the debugger [if any] for display)(Pause [, On|Off|Toggle, OperateOnUnderlyingThread?].Pause [P]`nPauses the script's current thread)
Autohotkeyhelp = %autohotkeyhelp%(PixelGetColor, OutputVar, X, Y [, Alt|Slow|RGB].PixelGetColor [PGC]`nRetrieves the color of the pixel at the specified x,y screen coordinates)(PixelSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ColorID [, Variation, Fast|RGB].PixelSearch [PS]`nSearches a region of the screen for a pixel of the specified color)(PixelWaitColor, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ColorID [, Variation, Fast|RGB, Seconds, Interval].PixelWaitColor [PWC]`nWaits in a region of the screen for a pixel of the specified color)(PostMessage, Msg [, wParam, lParam, Control, WinTitle, WinText, ExcludeTitle, ExcludeText].PostMessage [PM]`nSends a message to a window or control)(Process, Cmd, PID-or-Name [, Param3].Process [PR]`nPerforms one of the following operations on a process: checks if it exists, changes its priority, closes it, waits for it to close)(Progress, Off OR Progress, ProgressParam1 [, SubText, MainText, WinTitle, FontName].Progress [PRG]`nCreates or updates a window containing a progress bar or an image)(Random, OutputVar [, Min, Max] OR Random, , NewSeed.Random [RND]`nGenerates a pseudo-random number)(RegDelete, RootKey, SubKey [, ValueName].RegDelete [RD]`nDeletes a subkey or value from the registry)(RegExMatch, Haystack, NeedleRegEx [, UnquotedOutputVar = "", StartingPosition = 1].RegExMatch [REM]`nDetermines whether a string contains a pattern [regular expression])(RegExReplace, Haystack, NeedleRegEx [, Replacement = "", OutputVarCount = "", Limit = -1, StartingPosition = 1].RegExReplace [RER]`nReplaces occurrences of a pattern [regular expression] inside a string)(RegisterCallback,"FunctionName" [, Options = "", ParamCount = FormalCount, EventInfo = Address].RegisterCallback [RC]`nCreates a machine-code address that when called, redirects the call to a function in the script)(RegRead, OutputVar, RootKey, SubKey [, ValueName].RegRead [RR]`nReads a value from the registry)(RegWrite, ValueType, RootKey, SubKey [, ValueName, Value].RegWrite [RWR]`nWrites a value to the registry)(Reload.Reload [RL]`nReplaces the currently running instance of the script with a new one)(Run, Target [, WorkingDir, Max|Min|Hide|UseErrorLevel, OutputVarPID].Run [R]`nRuns an external programUnlike Run, RunWait will wait until the program finishes before continuing)(RunAs [, User, Password, Domain].RunAs [RA]`nRuns an external programUnlike Run, RunWait will wait until the program finishes before continuing)(RunWait, Target [, WorkingDir, Max|Min|Hide|UseErrorLevel, OutputVarPID].RunWait [RW]`nRuns an external programUnlike Run, RunWait will wait until the program finishes before continuing)(Send, Keys.Send [SN]`nSends simulated keystrokes and mouse clicks to the active window)(SendEvent, Keys.SendEvent [SEV]`nSends simulated keystrokes and mouse clicks to the active window)(SendInput, Keys.SendInput [SI]`nSends simulated keystrokes and mouse clicks to the active window)(SendMessage, Msg [, wParam, lParam, Control, WinTitle, WinText, ExcludeTitle, ExcludeText].SendMessage [SMSG]`nSends a message to a window or control and additionally waits for acknowledgement)(SendMode, Input|Play|Event|InputThenPlay.SendMode [SMOD]`nMakes Send synonymous with SendInput or SendPlay rather than the default [SendEvent]Also makes Click and MouseMove/Click/Drag use the specified method)(SendPlay, Keys.SendPlay [SP]`nSends simulated keystrokes and mouse clicks to the active window)(SendRaw, Keys.SendRaw [SRAW]`nSends simulated keystrokes and mouse clicks to the active window)(SetBatchLines, 20ms OR SetBatchLines, LineCount.SetBatchLines [SBL]`nDetermines how fast a script will run [affects CPU utilization])(SetCapsLockState [, State].SetCapsLockState [SCLS]`nSets the state of the CapslockCan also force the key to stay on or off)(SetControlDelay, Delay.SetControlDelay [SCD]`nSets the delay that will occur after each control-modifying command)(SetDefaultMouseSpeed, Speed.SetDefaultMouseSpeed [SDMS]`nSets the mouse speed that will be used if unspecified in Click and MouseMove/Click/Drag)(SetEnv, Var, Value OR Var=Value.SetEnv [SE]`nAssigns the specified value to a variable)(SetFormat, NumberType, Format.SetFormat [SF]`nSets the format of integers and floating point numbers generated by math operations)(SetKeyDelay [, Delay, PressDuration, Play].SetKeyDelay [SKD]`nSets the delay that will occur after each keystroke sent by Send and ControlSend)(SetMouseDelay, Delay [, Play].SetMouseDelay [SMD]`nSets the delay that will occur after each mouse movement or click)(SetNumLockState [, State].SetNumLockState [SNLS]`nSets the state of the NumLock keyCan also force the key to stay on or off)(SetScrollLockState [, State].SetScrollLockState [SSLS]`nSets the state of the ScrollLock keyCan also force the key to stay on or off)(SetStoreCapslockMode, On|Off.SetStoreCapslockMode [SSCM]`nWhether to restore the state of CapsLock after a Send)(SetTimer, Label [, Period|On|Off, Priority].SetTimer [ST]`nCauses a subroutine to be launched automatically and repeatedly at a specified time interval)(SetTitleMatchMode, MatchMode OR SetTitleMatchMode, Fast|Slow.SetTitleMatchMode [STMM]`nSets the matching behavior of the WinTitle parameter in commands such as WinWait)(SetWinDelay, Delay.SetWinDelay [SWD]`nSets the delay that will occur after each windowing command, such as WinActivate)(SetWorkingDir, DirName.SetWorkingDir [SWDIR]`nChanges the script's current working directory)(Shutdown, Code.Shutdown [SD]`nShuts down, restarts, or logs off the system)(Sleep, DelayInMilliseconds.Sleep [S]`nWaits the specified amount of time before continuing)(Sort, VarName [, Options].Sort [SO]`nArranges a variable's contents in alphabetical, numerical, or random order [optionally removing duplicates])(SoundBeep [, Frequency, Duration].SoundBeep [SB]`nEmits a tone from the PC speaker)(SoundGet, OutputVar [, ComponentType, ControlType, DeviceNumber].SoundGet [SOG]`nRetrieves various settings from a sound device [master mute, master volume, etc])(SoundGetWaveVolume, OutputVar [, DeviceNumber].SoundGetWaveVolume [SGWV]`nRetrieves the wave output volume for a sound device)(SoundPlay, Filename [, wait].SoundPlay [SPL]`nPlays a sound, video, or other supported file type)(SoundSet, NewSetting [, ComponentType, ControlType, DeviceNumber].SoundSet [SOS]`nChanges various settings of a sound device [master mute, master volume, etc])(SoundSetWaveVolume, Percent [, DeviceNumber].SoundSetWaveVolume [SSWV]`nChanges the wave output volume for a sound device)(SplashImage, Off OR SplashImage [, ImageFile, Options, SubText, MainText, WinTitle, FontName].SplashImage [SIM]`nCreates or updates a window containing a progress bar or an image)(SplashTextOff.SplashTextOff [STOF]`nCreates a customizable text popup window)(SplashTextOn [, Width, Height, Title, Text].SplashTextOn [STON]`nCreates a customizable text popup window)(SplitPath, InputVar [, OutFileName, OutDir, OutExtension, OutNameNoExt, OutDrive].SplitPath [SPTH]`nSeparates a file name or URL into its name, directory, extension, and drive)(StatusBarGetText, OutputVar [, Part#, WinTitle, WinText, ExcludeTitle, ExcludeText].StatusBarGetText [SBGT]`nRetrieves the text from a standard status bar control)(StatusBarWait [, BarText, Seconds, Part#, WinTitle, WinText, Interval, ExcludeTitle, ExcludeText].StatusBarWait [SBW]`nWaits until a window's status bar contains the specified string)(StringCaseSense, On|Off|Locale.StringCaseSense [SCS]`nDetermines whether string comparisons are case sensitive [default is "not case sensitive"])(StringGetPos, OutputVar, InputVar, SearchText [, L#|R#, Offset].StringGetPos [SGP]`nRetrieves the position of the specified substring within a string)(StringLeft, OutputVar, InputVar, Count.StringLeft [SL]`nRetrieves a number of characters from the left-hand side of a string)(StringLen, OutputVar, InputVar.StringLen [SLEN]`nRetrieves the count of how many characters are in a string)(StringLower, OutputVar, InputVar [, T].StringLower [SLOW]`nConverts a string to lowercase)(StringMid, OutputVar, InputVar, StartChar [, Count , L].StringMid [SM]`nRetrieves one or more characters from the specified position in a string)(StringReplace, OutputVar, InputVar, SearchText [, ReplaceText, ReplaceAll?].StringReplace [SRPL]`nReplaces the specified substring with a new string)(StringRight, OutputVar, InputVar, Count.StringRight [SR]`nRetrieves a number of characters from the right-hand side of a string)(StringSplit, OutputArray, InputVar [, Delimiters, OmitChars].StringSplit [SS]`nSeparates a string into an array of substrings using the specified delimiters)(StringTrimLeft, OutputVar, InputVar, Count.StringTrimLeft [STL]`nRemoves a number of characters from the left-hand side of a string)(StringTrimRight, OutputVar, InputVar, Count.StringTrimRight [STR]`nRemoves a number of characters from the right-hand side of a string)(StringUpper, OutputVar, InputVar [, T].StringUpper [SUP]`nConverts a string to uppercase)(Suspend [, Mode].Suspend [SU]`nDisables or enables all or selected hotkeys)(SysGet, OutputVar, Sub-command [, Param3].SysGet [SG]`nRetrieves screen resolution, multi-monitor info, dimensions of system objects, and other system properties)(Thread, NoTimers [, false] OR Thread, Priority, n.Thread [T]`nSets the priority or interruptibility of threadsIt can also temporarily disable all timers)(ToolTip [, Text, X, Y, WhichToolTip].ToolTip [TT]`nCreates an always-on-top window anywhere on the screen)(Transform, OutputVar, Cmd, Value1 [, Value2].Transform [TR]`nPerforms miscellaneous math functions, bitwise operations, and tasks such as ASCII/Unicode conversion)(TrayTip [, Title, Text, Seconds, Options].TrayTip [TRT]`nCreates a balloon message window near the tray iconRequires Windows 2000/XP or later)(UrlDownloadToFile, URL, Filename.URLDownloadToFile [UDTF]`nDownloads a file from the Internet)(VarSetCapacity,UnquotedVarName [, RequestedCapacity, FillByte].VarSetCapacity [VSC]`nEnlarges a variable's holding capacity or frees its memoryNormally, this is necessary only for unusual circumstances such as DllCall)(WinActivate [, WinTitle, WinText, ExcludeTitle, ExcludeText].WinActivate [WA]`nActivates the specified window [makes it foremost])(WinActivateBottom [, WinTitle, WinText, ExcludeTitle, ExcludeText].WinActivateBottom [WAB]`nSame as WinActivate except that it activates the bottommost [least recently active] matching window rather than the topmost)(WinClose [, WinTitle, WinText, SecondsToWait, ExcludeTitle, ExcludeText].WinClose [WC]`nCloses the specified window)(WinGet, OutputVar [, Cmd, WinTitle, WinText, ExcludeTitle, ExcludeText].WinGet [WG]`nRetrieves the specified window's unique ID, process ID, process name, or a list of its controlsIt can also retrieve a list of all windows matching the specified criteria)(WinGetActiveStats, Title, Width, Height, X, Y.WinGetActiveStats [WGAS]`nCombines the functions of WinGetActiveTitle and WinGetPos into one command)(WinGetActiveTitle, OutputVar.WinGetActiveTitle [WGAT]`nRetrieves the title of the active window)(WinGetClass, OutputVar [, WinTitle, WinText, ExcludeTitle, ExcludeText].WinGetClass [WGC]`nRetrieves the specified window's class name)(WinGetPos [, X, Y, Width, Height, WinTitle, WinText, ExcludeTitle, ExcludeText].WinGetPos [WGP]`nRetrieves the position and size of the specified window)(WinGetText, OutputVar [, WinTitle, WinText, ExcludeTitle, ExcludeText].WinGetText [WGT]`nRetrieves the text from the specified window)(WinGetTitle, OutputVar [, WinTitle, WinText, ExcludeTitle, ExcludeText].WinGetTitle [WGTT]`nRetrieves the title of the specified window)(WinHide [, WinTitle, WinText, ExcludeTitle, ExcludeText].WinHide [WH]`nHides the specified window)(WinKill [, WinTitle, WinText, SecondsToWait, ExcludeTitle, ExcludeText].WinKill [WK]`nForces the specified window to close)(WinMaximize [, WinTitle, WinText, ExcludeTitle, ExcludeText].WinMaximize [WMAX]`nEnlarges the specified window to its maximum size)(WinMenuSelectItem, WinTitle, WinText, Menu [, SubMenu1, SubMenu2, SubMenu3, SubMenu4, SubMenu5, SubMenu6, ExcludeTitle, ExcludeText].WinMenuSelectItem [WMSI]`nInvokes a menu item from the menu bar of the specified window)(WinMinimize [, WinTitle, WinText, ExcludeTitle, ExcludeText].WinMinimize [WMIN]`nCollapses the specified window into a button on the task bar)(WinMinimizeAll.WinMinimizeAll [WMA]`nMinimizes all windows)(WinMinimizeAllUndo.WinMinimizeAllUndo [WMAU]`nUnminimizes all window)(WinMove, X, Y OR WinMove, WinTitle, WinText, X, Y [, Width, Height, ExcludeTitle, ExcludeText].WinMove [WM]`nChanges the position and/or size of the specified window)(WinRestore [, WinTitle, WinText, ExcludeTitle, ExcludeText].WinRestore [WR]`nUnminimizes or unmaximizes the specified window if it is minimized or maximized)(WinSet, Attribute, Value [, WinTitle, WinText, ExcludeTitle, ExcludeText].WinSet [WS]`nMakes a variety of changes to the specified window, such as "always on top" and transparency)(WinSetTitle, NewTitle OR WinSetTitle, WinTitle, WinText, NewTitle [, ExcludeTitle, ExcludeText].WinSetTitle [WST]`nChanges the title of the specified window)(WinShow [, WinTitle, WinText, ExcludeTitle, ExcludeText].WinShow [WSH]`nUnhides the specified window)(WinWait [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText].WinWait [WW]`nWaits until the specified window exists)(WinWaitActive [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText].WinWaitActive [WWA]`nWaits until the specified window is active)(WinWaitClose [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText].WinWaitClose [WWC]`nWaits until the specified window does not exist)(WinWaitNotActive [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText].WinWaitNotActive [WWNA]`nWaits until the specified window is not active)
;Loop, 10 ;Creates clipboard variables 1 - 10
; clipboard%A_Index% =
;TrayTip, , WIRD GESTARTET ..., 10 , 1
ToolTip, `n %SCRIPTNAME_VAR% wird gestartet... `n,0,50, 20
;KeyWait, CAPSLOCK, T5
;SetCapslockState, Off
;Will keep window for passwort in front
SetTimer, alwaysontopwindow, 500
Neuespassword: ;Password will be checked and reseted if so wanted
{
IniRead, pwchkcounted, %config%, DEFAULT, F93DHH98E08776AC, ERROR
If pwchkcounted = ERROR
{
InputBox, passwordchecking, New Password:, , HIDE, 160, 100, , , , 120
If (Errorlevel = "1" or Errorlevel = "2")
ExitApp
Encrypt(passwordchecking, config)
VarSetCapacity(passwordchecking, 0)
}
else
{
FileRead, pwchkcountedchk, %pwchkcounted%
If (pwchkcountedchk !="")
{
InputBox, passwordcheckingin, Password:,, HIDE, 160, 100, , , , 120
If (Errorlevel = "1" or Errorlevel = "2")
ExitApp
else
{
passwordchecking = %passwordcheckingin%
}
Decrypt(passwordchecking, config)
If (passwordcheckingin <> passwordchecking)
ExitApp
VarSetCapacity(passwordcheckingin,0)
VarSetCapacity(passwordchecking,0)
}
}
Sleep, 100
SetFormat, FLOAT, 0.16
}
StringCaseSense, Off
SetCapsLockState, Off
;HOTKEYS
Hotkey, ^<, Runvariable
Hotkey, CTRL & RETURN, Runvariable
Hotkey, CTRL & CAPSLOCK, Speedhotkey
;Hotkey, ALT & SPACE, Eingabe_Starten
Hotkey, CAPSLOCK & F1, Changeprofile
Hotkey, CAPSLOCK & F2, Runvar
Hotkey, CAPSLOCK & CTRL, Runvar
Hotkey, CAPSLOCK & F3, mwt_UnMinimize
Hotkey, CAPSLOCK & F4, mwt_Minimize
Hotkey, CAPSLOCK & F5, Macrokeys
Hotkey, CAPSLOCK & F7, Listhotkeys
Hotkey, CAPSLOCK & F8, SETUPMACRO
Hotkey, CAPSLOCK & F9, HilfeBox
Hotkey, CAPSLOCK & F11, StopMacro
Hotkey, CAPSLOCK & F12, RestartProgram
Hotkey, CAPSLOCK & ENTER, Speedhotkey
Hotkey, CAPSLOCK & ESC, Speedhotkey
Hotkey, CAPSLOCK & BACKSPACE, Speedhotkey
Hotkey, SCROLLLOCK & BACKSPACE, Speedhotkey
Hotkey, NUMLOCK & BACKSPACE, Speedhotkey
Hotkey, CAPSLOCK & SHIFT, FILEEXPLORER
Hotkey, CAPSLOCK & TAB, Eingabe_Starten
Hotkey, CAPSLOCK & SPACE, WINWATCHER
Hotkey, CAPSLOCK & PAUSE, EDITOR
Hotkey, CAPSLOCK & SC01B, AddWatch, Off
Hotkey, CAPSLOCK & -, RemoveWatch, Off
Hotkey, CAPSLOCK & ALT, ShowHideGui, Off
Hotkey, ^+LButton , define_region, Off
Hotkey, ~LButton, RecordMouse, Off
Hotkey, ~RButton, RecordMouse, Off
;Hotkey, CAPSLOCK & UP, Mouse
;Hotkey, CAPSLOCK & DOWN, Mouse
;Hotkey, CAPSLOCK & LEFT, Mouse
;Hotkey, CAPSLOCK & RIGHT, Mouse
Hotkey, ~LEFT & UP, Mouse
Hotkey, ~LEFT & DOWN, Mouse
Hotkey, ~RIGHT & UP, Mouse
Hotkey, ~RIGHT & DOWN, Mouse
Hotkey, ~UP & LEFT, Mouse
Hotkey, ~UP & RIGHT, Mouse
Hotkey, ~DOWN & LEFT, Mouse
Hotkey, ~DOWN & RIGHT, Mouse
Hotkey, ~DOWN & UP, Mouse
Hotkey, ~UP & DOWN, Mouse
Hotkey, ~LEFT & RIGHT, Mouse
Hotkey, ~RIGHT & LEFT, Mouse
Hotkey, ~DOWN & CAPSLOCK, MouseSpeed
Hotkey, ~UP & CAPSLOCK, MouseSpeed
Hotkey, ~LEFT & CAPSLOCK, MouseSpeed
Hotkey, ~RIGHT & CAPSLOCK, MouseSpeed
Hotkey, NUMLOCK & NUMPAD1, RunNumLock
Hotkey, NUMLOCK & NUMPAD2, RunNumLock
Hotkey, NUMLOCK & NUMPAD3, RunNumLock
Hotkey, NUMLOCK & NUMPAD4, RunNumLock
Hotkey, NUMLOCK & NUMPAD5, RunNumLock
Hotkey, NUMLOCK & NUMPAD6, RunNumLock
Hotkey, NUMLOCK & NUMPAD7, RunNumLock
Hotkey, NUMLOCK & NUMPAD8, RunNumLock
Hotkey, NUMLOCK & NUMPAD9, RunNumLock
Hotkey, NUMLOCK & NUMPAD0, RunNumLock
Hotkey, NUMLOCK & NUMPADINS, RunNumLock
Hotkey, NUMLOCK & NUMPADRIGHT, RunNumLock
Hotkey, NUMLOCK & NUMPADEND, RunNumLock
Hotkey, NUMLOCK & NUMPADDOWN, RunNumLock
Hotkey, NUMLOCK & NUMPADPGDN, RunNumLock
Hotkey, NUMLOCK & NUMPADLEFT, RunNumLock
Hotkey, NUMLOCK & NUMPADCLEAR, RunNumLock
Hotkey, NUMLOCK & NUMPADHOME, RunNumLock
Hotkey, NUMLOCK & NUMPADUP, RunNumLock
Hotkey, NUMLOCK & NUMPADPGUP, RunNumLock
Hotkey, NUMLOCK & NUMPADDOT, RunNumLock
Hotkey, NUMLOCK & NUMPADDEL, RunNumLock
Hotkey, NUMLOCK & NUMPADDIV, RunNumLock
Hotkey, NUMLOCK & NUMPADMULT, RunNumLock
Hotkey, NUMLOCK & NUMPADADD, RunNumLock
Hotkey, NUMLOCK & NUMPADSUB, RunNumLock
Hotkey, NUMLOCK & NUMPADENTER, RunNumLock
;Numpad hotkeys
Loop %numkeys0%
{
StringSplit, numkeyshotkey, numkeys%A_Index%
Hotkey, NUMPAD%numkeyshotkey1% & NUMPAD%numkeyshotkey2%, RunHotkey, Off
}
;TRAYMENU
Menu, MySubmenu, add, &MACRO MANAGEMENT, Macrokeys
Menu, MySubmenu, add, &FILE EXPLORER, fileexplorer
Menu, MySubmenu, add, &CHANGE PROFILE, Changeprofile
Menu, MySubmenu, add, MONITOR &WINDOWS, WINWATCHER
Menu, MySubMenu, add, &SET UP NEW KEYWORD/MACRO, SETUPMACRO
Menu, tray, add
Menu, tray, add, &COMMANDS, :MySubmenu
Menu, tray, add
Menu, Tray, Add, &Unhide All Hidden Windows, mwt_RestoreAll
Menu, Tray, Add ; Another separator line to make the above more special.
Menu, Tray, Tip, %SCRIPTNAME_VAR%
mwt_MaxLength = 260 ; Reduce this to restrict the width of the menu.
Gosub, Restartini
;QWERTY TASTATUR
RegRead KLang, HKEY_CURRENT_USER, Keyboard Layout\Preload, 1
StringRight KLang, KLang, 4
If (!KLang)
KLang := A_Language
If (KLang = "0407") {
; 0407 DE_de QWERTZ mirror set
original := "^12345qwertasdfgyxcvb"
mirrored := "ß09876poiuzölkjh-.,mn"
} Else If (KLang = "040c" || KLang = "040C") {
; 040c FR_fr AZERTY mirror set
original := "²&é" . """" . "'(azertqsdfgwxcvb" ; split up string for better
mirrored := ")àç" . "_" . "è-poiuymlkjh!:;,n" ; human readability
} Else {
; 0409 US_us QWERTY mirror set
original := "``" . "12345qwertasdfgzxcvb" ; split up string for better
mirrored := "'" . "09876poiuy;lkjh/.,mn" ; human readability
}
; Now define all hotkeys
Loop % StrLen(original){
onehandc1 := SubStr(original, A_Index, 1)
onehandc2 := SubStr(mirrored, A_Index, 1)
Hotkey Space & %onehandc1%, DoHotkey
Hotkey Space & %onehandc2%, DoHotkey
Hotkey Space & %onehandc1%, Off
Hotkey Space & %onehandc2%, Off
}
Hotkey, Space, Off
Hotkey, Space & CapsLock, Off
Hotkey, Space & Tab, Off
Hotkey, +Space, Off
ToolTip, -------------`n%SCRIPTNAME_VAR%`n-------------`nTO START `t`t- CAPSLOCK + TAB`nFOR HELP `t`t- CAPSLOCK + F9`nMACROMANAGEMENT `t- CAPSLOCK + F5`nCANCEL `t`t- ESC,0,50, 20
SetTimer, RemoveToolTip, 10000
return
; QWERTY ADDITIONAL. Not exactly mirror but as close as we can get, Capslock enter, Tab backspace.
Space & CapsLock::Send {Enter}
Space & Tab::Send {Backspace}
Space::Send {Space}
+Space::Send +{Space}
~Control & Space::Send ^{Space}
;WILL ASK YOU WETHER TO STOP MACRO
~Pause::
{
MsgBox, 4, %SCRIPTNAME_VAR% STOP MACRO, DO YOU WANT TO STOP CURRENTLY RUNNING MACRO
IfMsgBox Yes
{
scriptfirstrun = NO
breaksendkeys = 1
}
else
breaksendkeys =
Return
}
;HIDE STARTUP DISPLAY
~ESCAPE::
{
ToolTip,,,,20
Return
}
; Keyboard Mouse
CAPSLOCK & LEFT::CLICK L
CAPSLOCK & RIGHT::CLICK R
;Click and hold down Left mouse, click again to release
CAPSLOCK & UP::
{
GetKeyState, mouseisdown, LBUTTON, P
If mouseisdown = U
Click down
else
Click up
Return
}
;Click and hold down Right mouse, click again to release
CAPSLOCK & DOWN::
{
GetKeyState, mouseisdown, RBUTTON, P
If mouseisdown = D
Click up right
else
Click down right
Return
}
;Auto replace [ with [], { with {} and % with %% in macro management.
;CTRL & S will save macro
#IfWinActive HotKeyIt MACRO MANAGEMENT - TO SORT A COLUMN CLICK HEADLINE AHK_class AutoHotkeyGUI
^s::GoSub ChangeMacrokeysfile
!O::
ControlFocus, HiEdit1, %SCRIPTNAME_VAR% MACRO MANAGEMENT - TO SORT A COLUMN CLICK HEADLINE AHK_class AutoHotkeyGUI
Send ^{HOME}
Return
SHIFT & 5::Send `%`%{LEFT}
RALT & 7::
SendRaw {}
Send {Left}
Return
#IfWinActive
#IfWinActive HiEdit AHK_class AutoHotkeyGUI
F3:: FindNext(hedit)
^F:: CmnDlg_Find( hwnd, "OnFind" )
^G:: GoToLine()
^O:: GoTo Open_File
^S:: Goto Save_File
^N:: Goto New_File
^W:: Goto Close_File
#IfWinActive
#IfWinActive AHK EDITOR AHK_class AutoHotkeyGUI
F3:: FindNext(hedit)
^F:: CmnDlg_Find( hwnd, "OnFind" )
^G:: GoToLine()
^O:: GoTo Open_File
^S:: Goto Save_File
^N:: Goto New_File
^W:: Goto Close_File
#IfWinActive
CAPSLOCK & F10::Suspend
;Start main GUI
~LCONTROL::
{
KeyWait, LControl, T0.2
If Errolevel = 1
return
Sleep, 30
KeyWait, LShift, D T0.4
If Errorlevel = 1
return
Sleep, 10
KeyWait, LShift, T0.2
If Errorlevel = 0
{
Goto, Eingabe_Starten
}
return
}
;Pause Macro
StopMacro:
Pause, Toggle, 1
Return
;Keep enter password window on top
Alwaysontopwindow:
SetTimer, alwaysontopwindow, Off
WinWait, Password: ahk_class #32770, , 1
If Errorlevel = 1
Return
WinSet, AlwaysOnTop, On, Password:
Loop
{
IfWinNotExist, Password:
break
WinActivate, Password:
Sleep, 50
}
Return
;Speedhotkeys ON/OFF like A & B, D & 9, P & R...
Speedhotkey:
{
ToolTip,,,,20
KeyWait, CAPSLOCK
KeyWait, CONTROL
KeyWait, ESCAPE
If speedhotkeyon = EIN
{
ToolTip, TURNING SPEEDKEYS OFF..., , , 19
Loop %numkeys0%
{
StringSplit, numkeyshotkey, numkeys%A_Index%
Hotkey, NUMPAD%numkeyshotkey1% & NUMPAD%numkeyshotkey2%, Off
}
Loop %hotkeyslist0%
{
StringLeft, hotkeya, hotkeyslist%A_Index%, 1
StringRight, hotkeyb, hotkeyslist%A_Index%, 1
Hotkey, %hotkeya% & %hotkeyb%, Off
}
speedhotkeyon = AUS
Hotkey, CAPSLOCK & TAB, ON
Hotkey, ~LCONTROL, ON
Hotkey, CAPSLOCK & SHIFT, ON
ToolTip, , , , 19
}
else
{
ToolTip, TURNING SPEEDKEYS ON..., , , 19
Loop %numkeys0%
{
StringSplit, numkeyshotkey, numkeys%A_Index%
Hotkey, NUMPAD%numkeyshotkey1% & NUMPAD%numkeyshotkey2%, On
}
Loop %hotkeyslist0%
{
StringLeft, hotkeya, hotkeyslist%A_Index%, 1
StringRight, hotkeyb, hotkeyslist%A_Index%, 1
Hotkey, %hotkeya% & %hotkeyb%, On
}
speedhotkeyon = EIN
Hotkey, CAPSLOCK & TAB, OFF
Hotkey, ~LCONTROL, OFF
Hotkey, CAPSLOCK & SHIFT, OFF
ToolTip, SPEEDHOTKEY ON, , , 19
}
BlockInput, Off
Return
}
;CAPSLOCK & F12 to restart program
RestartProgram:
{
KeyWait, CAPSLOCK
SetCapsLockState, Off
Reload
Return
}
;Enter an environment variable in any explorer address bar and press CTRL & ENTER
RUNVARIABLE:
{
Send, {DEL}{SHIFTDOWN}5{SHIFTUP}{HOME}{SHIFTDOWN}5{SHIFTUP}{ENTER}
return
}
REMOVETOOLTIP:
{
ToolTip,,,,20
SetTimer, RemoveToolTip, Off
EmptyMem()
Return
}
;Emptys Memory
EmptyMem(PID="AHK Rocks"){
pid:=(pid="AHK Rocks") ? DllCall("GetCurrentProcessId") : pid
h:=DllCall("OpenProcess", "UInt", 0x001F0FFF, "Int", 0, "Int", pid)
DllCall("SetProcessWorkingSetSize", "UInt", h, "Int", -1, "Int", -1)
DllCall("CloseHandle", "Int", h)
}
;__________________________________________________________
;#Include settings.txt
1Include_settings:
SETUPMACRO:
{
ToolTip,,,,20
SetTimer, RemoveToolTip, Off
setupnew =
setupkey =
setupname =
setupprogramm =
inputoptions = L1
ToolTip, SETTINGS/MACROS:`tCANCEL WITH ESC`n`nPRESS:`n - I TO SET UP A WEBSEITE`n - P TO SET UP A PROGRAM & FILES`n - O TO SET UP A FOLDER`n - M TO SET UP A MACRO`n - S TO BACKUP`n - R TO RESTORE
Input, setupnew, L1, {ESC}
If Errorlevel = EndKey:Escape
{
ToolTip,
Exit
}
If (setupnew = "s" or setupnew = "r" or setupnew = "i" or setupnew = "p" or setupnew = "o" or setupnew = "m")
ToolTip, %setupnew%
else
{
ToolTip,
Exit
}
savedirfile =
If setupnew = s
{
ToolTip,
FileRead, savedirfilecontent, %config%
FileDelete, %SCRIPTNAME_VAR%config.bak
FileAppend, %savedirfilecontent%, %SCRIPTNAME_VAR%config.bak
MsgBox, 0, BACKUP, %SCRIPTNAME_VAR%config.bak was saved in %A_WorkingDir%, 5
Return
}
else if setupnew = r
{
GoTo, Restoreini
}
count = 1
setupparam =
setupparamv =
setupsave =
setupparamvleer =
Loop
{
;MsgBox, %count%
If StrLen(setupparamv) < 101
ToolTip, %setupparamv%
else
{
If StrLen(setupparamv) < 201
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-101)*-1)
else if StrLen(setupparamv) < 301
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-201)*-1)
else if StrLen(setupparamv) < 401
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-301)*-1)
else if StrLen(setupparamv) < 501
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-401)*-1)
else if StrLen(setupparamv) < 601
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-501)*-1)
else if StrLen(setupparamv) < 701
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-601)*-1)
else if StrLen(setupparamv) < 801
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-701)*-1)
else if StrLen(setupparamv) < 901
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-801)*-1)
else if StrLen(setupparamv) < 1001
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-901)*-1)
else if StrLen(setupparamv) < 1101
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-1001)*-1)
else if StrLen(setupparamv) < 1201
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-1101)*-1)
else if StrLen(setupparamv) < 1301
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-1201)*-1)
else if StrLen(setupparamv) < 1401
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-1301)*-1)
else if StrLen(setupparamv) < 1501
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-1401)*-1)
else if StrLen(setupparamv) < 1601
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-1501)*-1)
else if StrLen(setupparamv) < 1701
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-1601)*-1)
else if StrLen(setupparamv) < 1801
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-1701)*-1)
else if StrLen(setupparamv) < 1901
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-1801)*-1)
else if StrLen(setupparamv) < 2001
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-1901)*-1)
else if StrLen(setupparamv) < 2101
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-2001)*-1)
else if StrLen(setupparamv) < 2201
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-2101)*-1)
else if StrLen(setupparamv) < 2301
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-2201)*-1)
else if StrLen(setupparamv) < 2401
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-2301)*-1)
else if StrLen(setupparamv) < 2501
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-2401)*-1)
else if StrLen(setupparamv) < 2601
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-2501)*-1)
else if StrLen(setupparamv) < 2701
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-2601)*-1)
else if StrLen(setupparamv) < 2801
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, 2601, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-2701)*-1)
else if StrLen(setupparamv) < 2901
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, 2601, 100) . "`n" . SubStr(setupparamv, 2701, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-2801)*-1)
else if StrLen(setupparamv) < 3001
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, 2601, 100) . "`n" . SubStr(setupparamv, 2701, 100) . "`n" . SubStr(setupparamv, 2801, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-2901)*-1)
else if StrLen(setupparamv) < 3101
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, 2601, 100) . "`n" . SubStr(setupparamv, 2701, 100) . "`n" . SubStr(setupparamv, 2801, 100) . "`n" . SubStr(setupparamv, 2901, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-3001)*-1)
else if StrLen(setupparamv) < 3201
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, 2601, 100) . "`n" . SubStr(setupparamv, 2701, 100) . "`n" . SubStr(setupparamv, 2801, 100) . "`n" . SubStr(setupparamv, 2901, 100) . "`n" . SubStr(setupparamv, 3001, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-3101)*-1)
else if StrLen(setupparamv) < 3301
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, 2601, 100) . "`n" . SubStr(setupparamv, 2701, 100) . "`n" . SubStr(setupparamv, 2801, 100) . "`n" . SubStr(setupparamv, 2901, 100) . "`n" . SubStr(setupparamv, 3001, 100) . "`n" . SubStr(setupparamv, 3101, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-3201)*-1)
else if StrLen(setupparamv) < 3401
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, 2601, 100) . "`n" . SubStr(setupparamv, 2701, 100) . "`n" . SubStr(setupparamv, 2801, 100) . "`n" . SubStr(setupparamv, 2901, 100) . "`n" . SubStr(setupparamv, 3001, 100) . "`n" . SubStr(setupparamv, 3101, 100) . "`n" . SubStr(setupparamv, 3201, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-3301)*-1)
else if StrLen(setupparamv) < 3501
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, 2601, 100) . "`n" . SubStr(setupparamv, 2701, 100) . "`n" . SubStr(setupparamv, 2801, 100) . "`n" . SubStr(setupparamv, 2901, 100) . "`n" . SubStr(setupparamv, 3001, 100) . "`n" . SubStr(setupparamv, 3101, 100) . "`n" . SubStr(setupparamv, 3201, 100) . "`n" . SubStr(setupparamv, 3301, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-3401)*-1)
else if StrLen(setupparamv) < 3601
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, 2601, 100) . "`n" . SubStr(setupparamv, 2701, 100) . "`n" . SubStr(setupparamv, 2801, 100) . "`n" . SubStr(setupparamv, 2901, 100) . "`n" . SubStr(setupparamv, 3001, 100) . "`n" . SubStr(setupparamv, 3101, 100) . "`n" . SubStr(setupparamv, 3201, 100) . "`n" . SubStr(setupparamv, 3301, 100) . "`n" . SubStr(setupparamv, 3401, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-3501)*-1)
else if StrLen(setupparamv) < 3701
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, 2601, 100) . "`n" . SubStr(setupparamv, 2701, 100) . "`n" . SubStr(setupparamv, 2801, 100) . "`n" . SubStr(setupparamv, 2901, 100) . "`n" . SubStr(setupparamv, 3001, 100) . "`n" . SubStr(setupparamv, 3101, 100) . "`n" . SubStr(setupparamv, 3201, 100) . "`n" . SubStr(setupparamv, 3301, 100) . "`n" . SubStr(setupparamv, 3401, 100) . "`n" . SubStr(setupparamv, 3501, 100) . "`n" . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-3601)*-1)
else if StrLen(setupparamv) < 3801
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, 2601, 100) . "`n" . SubStr(setupparamv, 2701, 100) . "`n" . SubStr(setupparamv, 2801, 100) . "`n" . SubStr(setupparamv, 2901, 100) . "`n" . SubStr(setupparamv, 3001, 100) . "`n" . SubStr(setupparamv, 3101, 100) . "`n" . SubStr(setupparamv, 3201, 100) . "`n" . SubStr(setupparamv, 3301, 100) . "`n" . SubStr(setupparamv, 3401, 100) . "`n" . SubStr(setupparamv, 3501, 100) . "`n" . SubStr(setupparamv, 3601, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-3701)*-1)
else if StrLen(setupparamv) < 3901
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, 2601, 100) . "`n" . SubStr(setupparamv, 2701, 100) . "`n" . SubStr(setupparamv, 2801, 100) . "`n" . SubStr(setupparamv, 2901, 100) . "`n" . SubStr(setupparamv, 3001, 100) . "`n" . SubStr(setupparamv, 3101, 100) . "`n" . SubStr(setupparamv, 3201, 100) . "`n" . SubStr(setupparamv, 3301, 100) . "`n" . SubStr(setupparamv, 3401, 100) . "`n" . SubStr(setupparamv, 3501, 100) . "`n" . SubStr(setupparamv, 3601, 100) . "`n" . SubStr(setupparamv, 3701, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-3801)*-1)
else if StrLen(setupparamv) < 4001
ToolTip % SubStr(setupparamv, 1, 100) . "`n" . SubStr(setupparamv, 101, 100) . "`n" . SubStr(setupparamv, 201, 100) . "`n" . SubStr(setupparamv, 301, 100) . "`n" . SubStr(setupparamv, 401, 100) . "`n" . SubStr(setupparamv, 501, 100) . "`n" . SubStr(setupparamv, 601, 100) . "`n" . SubStr(setupparamv, 701, 100) . "`n" . SubStr(setupparamv, 801, 100) . "`n" . SubStr(setupparamv, 901, 100) . "`n" . SubStr(setupparamv, 1001, 100) . "`n" . SubStr(setupparamv, 1101, 100) . "`n" . SubStr(setupparamv, 1201, 100) . "`n" . SubStr(setupparamv, 1301, 100) . "`n" . SubStr(setupparamv, 1401, 100) . "`n" . SubStr(setupparamv, 1501, 100) . "`n" . SubStr(setupparamv, 1601, 100) . "`n" . SubStr(setupparamv, 1701, 100) . "`n" . SubStr(setupparamv, 1801, 100) . "`n" . SubStr(setupparamv, 1901, 100) . "`n" . SubStr(setupparamv, 2001, 100) . "`n" . SubStr(setupparamv, 2101, 100) . "`n" . SubStr(setupparamv, 2201, 100) . "`n" . SubStr(setupparamv, 2301, 100) . "`n" . SubStr(setupparamv, 2401, 100) . "`n" . SubStr(setupparamv, 2501, 100) . "`n" . SubStr(setupparamv, 2601, 100) . "`n" . SubStr(setupparamv, 2701, 100) . "`n" . SubStr(setupparamv, 2801, 100) . "`n" . SubStr(setupparamv, 2901, 100) . "`n" . SubStr(setupparamv, 3001, 100) . "`n" . SubStr(setupparamv, 3101, 100) . "`n" . SubStr(setupparamv, 3201, 100) . "`n" . SubStr(setupparamv, 3301, 100) . "`n" . SubStr(setupparamv, 3401, 100) . "`n" . SubStr(setupparamv, 3501, 100) . "`n" . SubStr(setupparamv, 3601, 100) . "`n" . SubStr(setupparamv, 3701, 100) . "`n" . SubStr(setupparamv, 3801, 100) . "`n" . SubStr(setupparamv, (StrLen(setupparamv)-3901)*-1)
else
ToolTip % "..." . SubStr(setupparamv, -100)
}
If setupparam = 1
{
If setupparamvleer = 1
ToolTip, %setupparamv%%A_Space%
If setupparamv =
{
If setupnew = i
ToolTip, ENTER WEBSITE AND PRESS ENTER`n`nCANCEL WITH ESC`nALT+V = PASTE FROM CLIPBOARD
else if setupnew = m
ToolTip, ENTER YOR MACRO (PRESS ESC TO CANCEL)`n - PRESS ENTER TO FINISH`n - PRESS ALT & E TO ADD NEW LINE`n - PRESS ALT+S BEFORE FINISH TO ENCRYPT`n - PRESS ALT+V TO PASTE`n - PRESS ALT+I TO INSERT A FILE OR FOLDER`n`nTO RECORD A MACRO PRESS ALT+R`n - (FINISH RECORDING WITH KEY PAUSE)`n`nTO PAUSE PROGRAMM USE CAPSLOCK & F11
}
}
else if count = 1
{
ToolTip, PLEASE ENTER YOUR KEYWORD AND PRESS ENTER`n`nCANCEL WITH ESC`nALT+V = PASTE FROM CLIPBOARD
}
else if count = 2
{
ToolTip, ENTER DESCRIPTION AND PRESS ENTER`n`nCANCEL WITH ESC`nALT+V = PASTE FROM CLIPBOARD
}
else if count = 3
{
If setupnew = i
ToolTip, ENTER WEBSITE AND PRESS ENTER`n`nCANCEL WITH ESC`nALT+V = PASTE FROM CLIPBOARD
else if setupnew = p
{
ToolTip,
FileSelectFile, setupprogramm, , , , *.exe
MsgBox % setupprogramm
/*
If (RegExMatch(setupprogramm, "\.\w$") = 0)
break
else
{
StringSplit, setupprogramm, setupprogramm, %A_Space%
setupprogramm := setupprogramm1 . programseparator . setupprogramm2
}
*/
break
}
else if setupnew = o
{
FileSelectFolder, setupprogramm
break
}
else if setupnew = m
{
Encryption =
ToolTip, ENTER YOR MACRO (PRESS ESC TO CANCEL)`n - PRESS ALT & E TO ADD NEW LINE`n - PRESS ENTER TO FINISH`n - PRESS ALT+S BEFORE FINISH TO ENCRYPT`n - PRESS ALT+V TO PASTE`n - PRESS ALT+I TO INSERT A FILE OR FOLDER`n `nTO RECORD A MACRO PRESS ALT+R`n - (FINISH RECORDING WITH KEY PAUSE)
}
}
else
{
ToolTip, !!!PRESS ENTER TO DELETE MACRO!!!`nANY OTHER KEY TO CANCEL
Input, deletevar, L1, {ENTER}{ESC}{LALT}{RALT}{LCONTROL}{RCONTROL}{LSHIFT}{RSHIFT}{UP}{DOWN}{LEFT}{RIGHT}
ToolTip,
If Errorlevel = EndKey:Enter
{
IniDelete, %config%, %DEFAULT%, %setupkey%
%setupkey%0 =
%setupkey%1 =
%setupkey%2 =
%setupkey%3 =
%setupkey% =
GoSub, restartini
}
Exit
}
Input, setupsave, %inputoptions%, {ENTER}{ESC}{BS}{LAlt}
If Errorlevel = Max
{
AutoTrim, Off
setupparamv = %setupparamv%%setupsave%
AutoTrim, On
setupparam = 1
}
else if Errorlevel = EndKey:Escape
{
ToolTip,
Exit
}
else if (Errorlevel = "EndKey:LAlt" or Errorlevel = "EndKey:RAlt")
{
Input, setuppaste, L1, {ESC}
If Errorlevel = EndKey:Escape
continue
else if setuppaste = v
{
If setupparamvleer = 1
{
setupparamv = %setupparamv%%A_Space%%clipboard%
setupparamvleer =
}
else
{
setupparamv = %setupparamv%%clipboard%
}
setupparam = 1
}
else if setuppaste = e
{
If setupparamvleer = 1
{
setupparamv .= A_Space . macroseparator
setupparamvleer =
}
else
{
setupparamv .= macroseparator
}
setupparam = 1
}
else if setuppaste = s
{
If count = 3
{
encryptmakrokeys = %setupparamv%
Encryptmakro(encryptmakrokeys, config)
setupprogramm = %encryptmakrokeys%
break
}
}
else if setuppaste = r
{
GoSub, Record
setupparam = 1
continue
}
else if setuppaste = i
{
MsgBox, 4, %SCRIPTNAME_VAR% FILE/FOLDER, PLEASE SELECT`n`n YES TO SELECT A FILE`n NO TO SELECT A FOLDER
IfMsgBox Yes
FileSelectFile, tempfileinput,,, %SCRIPTNAME_VAR% SELECT A FILE
else
FileSelectFolder, tempfileinput,,3, %SCRIPTNAME_VAR% SELECT A FOLDER
setupparamv .= tempfileinput
tempfileinput := ""
}
}
else if Errorlevel = EndKey:Backspace
{
If setupparamvleer = 1
{
setupparamvleer =
}
else
{
StringTrimRight, setupparamv, setupparamv, 1
}
}
else if Errorlevel = EndKey:Enter
{
If setupparamv =
{
If (count = "1" and setupsave = "")
{
ToolTip,
Exit
}
else if count = 2
{
setupname = Default
}
count++
continue
}
else if count = 1
{
setupkey = %setupparamv%
setupparamv =
}
else if count = 2
{
setupname = %setupparamv%
setupparamv =
}
else if count = 3
{
If setupnew = i
setupprogramm = webbrowserfile . programseparator . setupparamv
else if setupnew = m
{
setupprogramm = %setupparamv%
}
break
}
Count++
setupparam =
}
}
If (setupname = "" and setupprogramm = "" and setupkey = "")
Goto, Cleareingabe
ToolTip, PRESS ENTER TO SAVE OR ANY OTHER KEY TO CANCEL`n`nKEYWORD:`t%setupkey%`nDESCRIPTION:`t%setupname%`nPROGRAMM:`t%setupprogramm%
Input, setupabbrechen, L1, {ENTER}{ESC}
ToolTip,
If Errorlevel = EndKey:Enter
{
RegExMatch(setupkey, "^\w+$", setupkeycheck)
If (setupkey != setupkeycheck) ;is not alnum
{
MsgBox, 0, NOT ALLOWED, ONLY ALPHANUMERIC CHARACTERS ARE ALLOWED
Goto, Cleareingabe
}
IniWrite, %setupname%%programseparator%%setupprogramm%, %config%, %DEFAULT%, %setupkey%
Goto, restartini
}
else if Errorlevel = EndKey:Escape
{
Goto, Cleareingabe
}
Return
}
Restoreini:
{
FileCopy, %config%, %SCRIPTNAME_VAR%configbakup.bak, 1
ToolTip,
FileSelectFile, savedirfile, , , Restore INI - Select File, BACKUP AND INI FILES (*.ini; *.bak)
;MsgBox, %savedirfile%
FileRead, savedirfilecontent, %savedirfile%
;MsgBox, %savedirfile%
IfNotInString, savedirfilecontent, F93DHH98E08776AC
{
MsgBox, 0, INCORRECT FILE, SELECTED FILE IS NOT VALID
Return
}
MsgBox, 4, APPLY NEW CONFIG FILE, PRESS YES IF YOU WANT TO REPLACE ALL YOUR EXISTING MACROS WITH IMPORTED FILE
IfMsgBox No
Return
IniRead, key, %config%, DEFAULT, F93DHH98E08776AC, ERROR
;MsgBox % key
FileDelete, %config%
;MsgBox, Deleted
FileCopy, %savedirfile%, config.ini, 1
;MsgBox, key: %key% to write
IniWrite, %key%, %config%, DEFAULT, F93DHH98E08776AC
Reload
Return
}
;____________________________________
;#Include mouse.txt
1Include_Mouse:
Mousespeed:
{
SetFormat, FLOAT, 0.1
StringSplit, mousespeed, A_ThisHotkey, &, %A_Space% ~
If mousespeed1 = RIGHT
standardspeed += 1
If mousespeed1 = LEFT
standardspeed -= 1
If mousespeed1 = DOWN
accellerationspeed -= 0.1
If mousespeed1 = UP
accellerationspeed += 0.1
ToolTip, MOUSESPEED: %standardspeed%`nACCELERATION: %accellerationspeed%,,,20
SetFormat, FLOAT, 0.16
SetTimer, RemoveToolTip, 800
Return
}
Mouse:
{
speedtoadjust = %standardspeed%
accelleration = %accellerationspeed%
StringSplit, mousedirection, A_ThisHotkey, &, %A_Space% ~
xcurrposmouse = 0
ycurrposmouse = 0
Loop
{
If ((mousedirection1 = "LEFT" and mousedirection2 = "RIGHT") or (mousedirection1 = "RIGHT" and mousedirection2 = "LEFT") or (mousedirection1 = "DOWN" and mousedirection2 = "UP") or (mousedirection1 = "UP" and mousedirection2 = "DOWN"))
{
If mousedirection1 = LEFT
xcurrposmouse += %speedtoadjust%
else if mousedirection1 = UP
ycurrposmouse += %speedtoadjust%
else if mousedirection1 = RIGHT
xcurrposmouse -= %speedtoadjust%
else if mousedirection1 = DOWN
ycurrposmouse -= %speedtoadjust%
}
else
{
If (mousedirection2 = "LEFT" or mousedirection1 = "LEFT")
xcurrposmouse -= %speedtoadjust%
If (mousedirection2 = "RIGHT" or mousedirection1 = "RIGHT")
xcurrposmouse += %speedtoadjust%
If (mousedirection2 = "UP" or mousedirection1 = "UP")
ycurrposmouse -= %speedtoadjust%
If (mousedirection2 = "DOWN" or mousedirection1 = "DOWN")
ycurrposmouse += %speedtoadjust%
}
KeyWait, %mousedirection2%, T0.001
If Errorlevel = 0
break
MouseMove, %xcurrposmouse%, %ycurrposmouse%, , R
speedtoadjust *=%accelleration%
EnvAdd, accelleration, 0.03
IfLess, accelleration, 1.5, Sleep, 100
}
Return
}
;________________________________
;#Include gui.profilemanager.txt
1Include_gui_profilemanager:
Changeprofile:
{
ToolTip,,,,20
IfWinExist, %SCRIPTNAME_VAR% CHANGE PROFILE
{
WinActivate, %SCRIPTNAME_VAR% CHANGE PROFILE
Return
}
SetTimer, RemoveToolTip, Off
;allprofiles =
StringSplit, allprofiles, allprofiles, |
IniRead, defaultprofile, %config%, DEFAULT, defaultprofile, ERROR
IfWinNotActive, %SCRIPTNAME_VAR%
{
ToolTip, CURRENTLY LOADED: %defaultprofile%`n`nPRESS NUMBER TO APPLY`nESC TO EXIT`n`n1: %allprofiles1%`n2: %allprofiles2%`n3: %allprofiles3%`n4: %allprofiles4%`n5: %allprofiles5%`n6: %allprofiles6%`n7: %allprofiles7%`n8: %allprofiles8%`n9: %allprofiles9%,,,20
KeyWait, CAPSLOCK
SetCapsLockState, Off
Input, profiletoapply, L1 T1.5, {ESC}{ENTER}
ToolTip,,,,20
;MsgBox % GetKeyState("CAPSLOCK", "P")
If Errorlevel = Max
{
If profiletoapply is digit
{
;MsgBox, %allprofiles%
Gui, Destroy
choosenprofile := allprofiles%profiletoapply%
If choosenprofile =
{
MsgBox, NO PROFILE SELECTED
Return
}
IfNotInString, allprofiles, %choosenprofile%|
{
MsgBox, PROFILE DOES NOT EXIST
Return
}
IniWrite, %choosenprofile%, %config%, DEFAULT, defaultprofile
Loop, Read, %config%
{
linevalue := A_LoopReadLine
;FileReadLine, linevalue, %config%, %A_Index%
;If Errorlevel
; break
StringLeft, linevaluefirst, linevalue, 1
Stringsplit, linevalue, linevalue, `=, %A_Space%
If (linevaluefirst = "[" or linevalue1 = "F93DHH98E08776AC" or linevalue = "" or linevalue1 = "defaultprofile")
continue
;MsgBox % %linevalue1%1
SetEnv, %linevalue1%,
IfNotEqual, %linevalue1%1,
SetEnv, %linevalue1%1,
IfNotEqual, %linevalue1%2,
SetEnv, %linevalue1%2,
IfNotEqual, %linevalue1%3,
SetEnv, %linevalue1%3,
IfNotEqual, %linevalue1%4,
SetEnv, %linevalue1%4,
}
WinClose, %SCRIPTNAME_VAR% MACRO MANAGEMENT,
;Gui, 3:Show
;Gui, 3:Destroy
GoSub, Restartini
ToolTip, SELECTED: %choosenprofile%,,,20
SetTimer, RemoveToolTip, 800
}
Return
}
}
Gui, 1:Destroy
Gui, 3:Default
Gui, 3:Add, Text, , CurrentProfile: %DEFAULT%`n
Gui, 3:Add, Edit, , ENTER NEW PROFILE
Gui, 3:Add, Button, x+1 Default gNewprofile, &CREATE
Gui, 3:Add, Button, x+1 gDeleteprofile, &DELETE
Gui, 3:Add, ListView, xs r15 w250 Count50 NoSortHdr +ReadOnly AltSubmit Grid Multi gProfilechange, CLICK TO CHOOSE PROFILE
Loop %allprofiles0%
{
If allprofiles%A_Index% =
break
LV_ADD("", allprofiles%A_Index%)
}
Gui, 3:Show,,%SCRIPTNAME_VAR% CHANGE PROFILE
;WinSetTitle, %SCRIPTNAME_VAR%,, %SCRIPTNAME_VAR% CHANGE PROFILE
;WinWaitClose, %SCRIPTNAME_VAR% CHANGE PROFILE,,
Return
}
Deleteprofile:
{
MsgBox, 4, DELETE PROFILE, ALL KEYS/MACROS OF THIS PROFILE(IF ANY EXISTING)`nWILL BE APPLIED TO PREVIOUS PROFILE, 5
IfMsgBox Yes
{
}
else
{
Return
}
GuiControlGet, deleteprofile, , Edit1
If (deleteprofile = "" or deleteprofile = DEFAULT)
{
MsgBox, CANNOT DELETE %deleteprofile%`nCHECK IF IT IS NOT DEFAULT OR EMPTY
Return
}
FileCopy, %config%, %config%.bak, 1
FileRead, filecontent, %config%
StringReplace, filecontent, filecontent, `n`n, `n, All
StringReplace, filecontent, filecontent, [%deleteprofile%], , UseErrorLevel
If Errorlevel = 0
{
MsgBox, PROFILE DOES NOT EXIST
Return
}
trytodeletefileagain:
FileDelete, %config%
If Errorlevel = 1
{
MsgBox, COULD NOT DELETE FILE`n`nCLOSE ALL PROGRAMMS THAT USE FILE: %config%
Goto, trytodeletefileagain
}
trytoappendfileagain:
FileAppend, %filecontent%, %config%
If Errorlevel = 1
{
MsgBox, COULD NOT CREATE FILE
Goto, trytoappendfileagain
}
Gui, 1:Destroy
Gui, 3:Destroy
GoSub, Restartini
Return
}
Newprofile:
{
GuiControlGet, newprofile, , Edit1
If newprofile =
Return
IfInString, newprofile, %A_Space%
Return
If newprofile is alnum
{
;FileRead, filecontent, %config%
IfNotInString, allprofiles, %newprofile%.
{
Gui, 1:Destroy
FileAppend, `n[%newprofile%], %config%
allprofiles = %allprofiles%%newprofile%|
LV_ADD("", newprofile)
}
}
Return
}
Profilechange:
{
;MsgBox, event: %A_GuiEvent% info: %A_EventInfo% error: %Errorlevel%
If A_GuiEvent = I
{
;MsgBox, event: %A_GuiEvent% info: %A_EventInfo% error: %Errorlevel%
IfInString, Errorlevel, S
{
LV_GetText(choosenprofile, A_EventInfo)
;FileRead, filecontent, %config%
;MsgBox, %choosenprofile% `n%allprofiles%
IfNotInString, allprofiles, %choosenprofile%|
{
MsgBox, PROFILE DOES NOT EXIST
Return
}
IniWrite, %choosenprofile%, %config%, DEFAULT, defaultprofile
Loop, Read, %config%
{
linevalue := A_LoopReadLine
;FileReadLine, linevalue, %config%, %A_Index%
;If Errorlevel
; break
StringLeft, linevaluefirst, linevalue, 1
Stringsplit, linevalue, linevalue, `=, %A_Space%
If (linevaluefirst = "[" or linevalue1 = "F93DHH98E08776AC" or linevalue = "" or linevalue1 = "defaultprofile")
continue
;MsgBox % %linevalue1%1
SetEnv, %linevalue1%,
IfNotEqual, %linevalue1%1,
SetEnv, %linevalue1%1,
IfNotEqual, %linevalue1%2,
SetEnv, %linevalue1%2,
IfNotEqual, %linevalue1%3,
SetEnv, %linevalue1%3,
IfNotEqual, %linevalue1%4,
SetEnv, %linevalue1%4,
}
;WinClose, %SCRIPTNAME_VAR% MAKROVERWALTUNG,
Gui, 3:Destroy
GoSub, Restartini
ToolTip, SELECTED: %choosenprofile%,,,20
SetTimer, RemoveToolTip, 800
}
}
Return
}
3GuiClose:
Gui, 3:Destroy
GoSub, Restartini
Gui, Default
Return
3GuiEscape:
Gui, 3:Destroy
GoSub, Restartini
Gui, Default
Return
;____________________________________
;#Include qwerty.txt
1Include_qwerty:
DoHotkey:
{
StringRight ThisKey, A_ThisHotkey, 1
i1 := InStr(original, ThisKey)
i2 := InStr(mirrored, ThisKey)
If (i1+i2 = 0) {
MirrorKey := ThisKey
} Else If (i1 > 0) {
MirrorKey := SubStr(mirrored, i1, 1)
} Else {
MirrorKey := SubStr(original, i2, 1)
}
Modifiers := ""
If (GetKeyState("LWin") || GetKeyState("RWin")) {
Modifiers .= "#"
}
If (GetKeyState("Control")) {
Modifiers .= "^"
}
If (GetKeyState("Alt")) {
Modifiers .= "!"
}
If (GetKeyState("Shift") + GetKeyState("CapsLock", "T") = 1) {
; only add if Shift is held OR CapsLock is on (XOR) (both held down would result in value of 2)
Modifiers .= "+"
}
Send %Modifiers%{%MirrorKey%}
return
}
QWERTYonoff:
{
If qwertyonoff = 1
{
Loop % StrLen(original)
{
onehandc1 := SubStr(original, A_Index, 1)
onehandc2 := SubStr(mirrored, A_Index, 1)
Hotkey Space & %onehandc1%, ,Off
Hotkey Space & %onehandc2%, ,Off
}
Hotkey, Space, Off
Hotkey, Space & CapsLock, Off
Hotkey, Space & Tab, Off
Hotkey, +Space, Off
qwertyonoff =
ToolTip, QWERTY KEYBOARD IS OFF,,,20
SetTimer, RemoveToolTip, 2000
}
else
{
Loop % StrLen(original)
{
onehandc1 := SubStr(original, A_Index, 1)
onehandc2 := SubStr(mirrored, A_Index, 1)
Hotkey Space & %onehandc1%, On
Hotkey Space & %onehandc2%, On
}
Hotkey, Space & CapsLock, On
Hotkey, Space & Tab, On
Hotkey, Space, On
Hotkey, +Space, On
qwertyonoff = 1
ToolTip, QWERTY KEYBOARD IS ON,,,20
SetTimer, RemoveToolTip, 2000
}
Return
}
;_________________________________
;#Include restartini.txt
1Include_restartini:
RESTARTINI:
{
;MsgBox % autostarton
Suspend, On
allprofiles =
hotkeyslist =
Loop %hotkeykeys0%
{
A_KeyIndex := hotkeykeys%A_Index%
capslockvar%A_KeyIndex% =
scrolllockvar%A_KeyIndex% =
numlockvar%A_KeyIndex% =
}
Loop %hotkeys0%
{
A_KeyIndex := hotkeys%A_Index%
hotkeyvar%A_KeyIndex% =
}
Loop, Read, %config%
{
linevalue := A_LoopReadLine
If A_LoopReadLine =
continue
StringLeft, linevaluefirst, linevalue, 1
Stringsplit, linevalue, linevalue, `=, %A_Space%
If linevalue1 = setwebbrowser
{
StringSplit, changewebbrowser, linevalue, %programseparator%
webbrowserfile = %changewebbrowser2%
}
If linevalue1 = setmouse
{
StringSplit, changewebbrowser, linevalue, %programseparator%
StringSplit, setmousesettings, changewebbrowser2, |
standardspeed = %setmousesettings1%
accellerationspeed = %setmousesettings2%
}
If linevalue1 = setwinwatcher
{
StringSplit, changewebbrowser, linevalue, %programseparator%
changewebbrowser2 *= 1000
winwatcherspeed = %changewebbrowser2%
}
If linevalue1 = setdebugger
{
StringSplit, changedebugger, linevalue, %programseparator%
debuggerison = %changedebugger2%
debuggerslowdown = %changedebugger3%
}
If linevalue1 = setautostart
{
StringSplit, changeautostart, linevalue, %programseparator%
autostarton = %changeautostart2%
}
If (linevaluefirst = "[")
{
StringTrimLeft, linevalue, linevalue, 1
StringTrimRight, linevalue, linevalue, 1
;MsgBox % linevalue
allprofiles = %allprofiles%%linevalue%|
currentprofile = %linevalue%
continue
}
If linevalue1 = defaultprofile
{
DEFAULT = %linevalue2%
continue
}
IfNotEqual, currentprofile, %DEFAULT%
continue
If (linevaluefirst = "[" or linevalue1 = "F93DHH98E08776AC" or linevalue1 = "" or linevalue1 = "defaultprofile" or linevalue1 = "setautostart" or linevalue1 = "setdebugger" or linevalue1 = "setwinwatcher" or linevalue1 = "setmouse" or linevalue1 = "setwebbrowser")
continue
key := linevalue1
Loop 4
{
key%A_Index% =
}
IniRead, %key%, %config%, %DEFAULT%, %key%, %key%
;VarSetCapacity(%key%2, 5120)
Stringsplit, %key%, %key%, %programseparator%, %A_Space%%A_Tab%
autostartvar := %key%
checkifvarisautostart = %autostartvar%1
StringLower, checkifvarisautostart, checkifvarisautostart
StringReplace, checkifvarisautostart, checkifvarisautostart, %A_Space%,
If scriptsfirstrun =
{
If autostarton = ASK
{
IfInString, checkifvarisautostart, autostart
{
MsgBox, 262148, AUTOSTART, , 3
IfMsgBox Yes
{
autostarton = ON
autostartparameter = %autostartparameter%%key%|
}
else
{
autostarton = Off
}
autostartvar =
}
}
else if autostarton = ON
{
IfInString, checkifvarisautostart, autostart
{
autostartparameter = %autostartparameter%%key%|
autostartvar =
}
}
}
IfInString, checkifvarisautostart, capslock
{
StringMid, favnumber, checkifvarisautostart, InStr(checkifvarisautostart, "capslock", CaseSensitive = false)+8, 1
IfInString, hotkeykeys, %favnumber%
capslockvar%favnumber% = %key%
}
IfInString, checkifvarisautostart, scrolllock
{
StringMid, favnumber, checkifvarisautostart, InStr(checkifvarisautostart, "scrolllock", CaseSensitive = false)+10, 1
IfInString, hotkeykeys, %favnumber%
scrolllockvar%favnumber% = %key%
}
IfInString, checkifvarisautostart, numlock
{
StringMid, favnumber, checkifvarisautostart, InStr(checkifvarisautostart, "numlock", CaseSensitive = false)+7, 1
IfInString, hotkeykeys, %favnumber%
numlockvar%favnumber% = %key%
}
IfInString, checkifvarisautostart, hotkey
{
StringMid, favnumber2, checkifvarisautostart, InStr(checkifvarisautostart, "hotkey", CaseSensitive = false)+6, 2
IfInString, hotkeys, %favnumber2%
{
hotkeyvar%favnumber2% = %key%
hotkeyslist = %hotkeyslist%%favnumber2%.
}
}
linevalue1 =
}
Loop %hotkeykeys0%
{
capslockhotkey := hotkeykeys%A_Index%
Hotkey, CAPSLOCK & %capslockhotkey%, RunCapsLock
}
Loop %hotkeykeys0%
{
scrolllockhotkey := hotkeykeys%A_Index%
Hotkey, SCROLLLOCK & %scrolllockhotkey%, RunScrollLock
}
Loop %hotkeykeys0%
{
numlockhotkey := hotkeykeys%A_Index%
Hotkey, NUMLOCK & %numlockhotkey%, RunNumLock
}
StringSplit, hotkeyslist, hotkeyslist, `.
hotkeyslist0 -= 1
Loop %hotkeyslist0%
{
StringLeft, hotkeya, hotkeyslist%A_Index%, 1
StringRight, hotkeyb, hotkeyslist%A_Index%, 1
Hotkey, %hotkeya% & %hotkeyb%, RunHotkey, Off
}
StringSplit, autostartparameter, autostartparameter, |
autostartparameter0--
Suspend, Off
If autostartparameter > 0
ToolTip
If scriptfirstrun =
{
Loop %autostartparameter0%
{
out := autostartparameter%A_Index%
RunVar()
}
}
autostarton = OFF
autostartparameter =
scriptsfirstrun = NO
EmptyMem()
Return
}
;_______________________________
;#Include runhotkeys.txt
1Include_runhotkeys:
RunCapsLock:
{
ToolTip,,,,20
runningcapslock++
StringRight, hotkeyvartorun, A_ThisHotkey, 1
If capslockvar%hotkeyvartorun% =
{
runningcapslock--
Return
}
If runningcapslock > 1
{
runningcapslock--
Return
}
KeyWait, %hotkeyvartorun%
KeyWait, CAPSLOCK
Send, {%hotkeyvartorun% UP}
SetCapsLockState, Off
out := capslockvar%hotkeyvartorun%
runningcapslock =
hotkeyvartorun =
RunVar()
Return
}
RunScrollLock:
{
ToolTip,,,,20
runningscrolllock++
StringRight, hotkeyvartorun, A_ThisHotkey, 1
If scrolllockvar%hotkeyvartorun% =
{
runningscrolllock--
Return
}
If runningscrolllock > 1
{
runningscrolllock--
Return
}
KeyWait, %hotkeyvartorun%
KeyWait, SCROLLLOCK
Send, {%hotkeyvartorun% UP}
SetScrollLockState, Off
out := scrolllockvar%hotkeyvartorun%
runningscrolllock =
hotkeyvartorun =
RunVar()
Return
}
RunNumLock:
{
ToolTip,,,,20
runningnumlock++
StringRight, hotkeyvartorun, A_ThisHotkey, 1
KeyWait, %hotkeyvartorun2%
KeyWait, NUMLOCK
Send, {%hotkeyvartorun2% UP}
SetNumLockState, On
IfInString, A_ThisHotkey, NUMPAD
{
StringSplit, hotkeyvartorunreplace, A_ThisHotkey, &, %A_Space%
If hotkeyvartorunreplace2 = NUMPADINS
hotkeyvartorun = 0
If hotkeyvartorunreplace2 = NUMPADEND
hotkeyvartorun = 1
If hotkeyvartorunreplace2 = NUMPADDOWN
hotkeyvartorun = 2
If hotkeyvartorunreplace2 = NUMPADPGDN
hotkeyvartorun = 3
If hotkeyvartorunreplace2 = NUMPADLEFT
hotkeyvartorun = 4
If hotkeyvartorunreplace2 = NUMPADCLEAR
hotkeyvartorun = 5
If hotkeyvartorunreplace2 = NUMPADRIGHT
hotkeyvartorun = 6
If hotkeyvartorunreplace2 = NUMPADHOME
hotkeyvartorun = 7
If hotkeyvartorunreplace2 = NUMPADUP
hotkeyvartorun = 8
If hotkeyvartorunreplace2 = NUMPADPGUP
hotkeyvartorun = 9
If hotkeyvartorunreplace2 = NUMPADDEL
hotkeyvartorun = d
If hotkeyvartorunreplace2 = NUMPADDIV
hotkeyvartorun = v
If hotkeyvartorunreplace2 = NUMPADMULT
hotkeyvartorun = m
If hotkeyvartorunreplace2 = NUMPADADD
hotkeyvartorun = a
If hotkeyvartorunreplace2 = NUMPADSUB
hotkeyvartorun = s
If hotkeyvartorunreplace2 = NUMPADENTER
hotkeyvartorun = e
;MsgBox, %hotkeyvartorun%
}
If numlockvar%hotkeyvartorun% =
{
runningnumlock--
Return
}
If runningnumlock > 1
{
runningnumlock--
Return
}
out := numlockvar%hotkeyvartorun%
runningnumlock =
hotkeyvartorun =
RunVar()
Return
}
RunHotkey:
{
ToolTip,,,,20
runninghotkey++
StringSplit, hotkeytorun, A_ThisHotkey, &, %A_Space%
StringRight, hotkeyvartorun1, hotkeytorun1, 1
StringRight, hotkeyvartorun2, hotkeytorun2, 1
hotkeytorun = %hotkeyvartorun1%%hotkeyvartorun2%
If hotkeyvar%hotkeytorun% =
{
runninghotkey--
Return
}
If runninghotkey > 1
{
runninghotkey--
Return
}
KeyWait, %hotkeytorun2%
KeyWait, %hotkeytorun1%
Send, {%hotkeytorun2% UP}{%hotkeytorun1% UP}
;ToolTip % A_ThisHotkey, 0, 60, 4
out := hotkeyvar%hotkeytorun%
runninghotkey =
hotkeytorun =
RunVar()
Return
}
;____________________________________________
;#Include maingui.txt
1Include_maingui:
Eingabe_Starten:
{
KeyWait, CAPSLOCK
SetCapsLockState, Off
SetTimer, RemoveToolTip, Off
Suspend, On
Loop
{
outfunc =
;accvarstart = ;`n----`n
If out =
ToolTip % outleertooltip, , , 20
;test := GetKeyState("CAPSLOCK", "T")
Input, output, L1, {ENTER}{LALT}{ESC}{BS}{SPACE}{F4}
If Errorlevel = Max
{
If outputspace =
out =%out%%output%
}
else if Errorlevel = EndKey:F4
{
saved += 1
out := savedout%saved%
If savedout%saved% =
saved =
}
else if Errorlevel = EndKey:Enter
{
saved =
ToolTip,,,,20
If out =
{
BlockInput, Off
Suspend, Off
Return
}
If out = %savedout1%
{
}
else
{
countsave = 30
countsave2 = 29
Loop 29
{
savedout%countsave% := savedout%countsave2%
countsave -= 1
countsave2 -= 1
}
savedout1 = %out%
}
If out =
{
BlockInput, Off
Suspend, Off
Return
}
Suspend, Off
RunVar()
Return
}
else if Errorlevel = EndKey:Backspace
{
Stringlen, elength, out
If outputspace = 1
{
outputspace =
ToolTip, %out%%accvarstart%%accvarend%,,,20
continue
}
Stringright, eoutend, out, 3
StringGetPos, eleerpos, eoutend, %A_Space%
If eleerpos = 1
{
elength -= 2
StringLeft, out, out, %elength%
ToolTip, %out%%A_Space%%accvarstart%%accvarend%,,,20
outputspace = 1
continue
}
else
{
StringTrimRight, out, out, 1
}
}
else if Errorlevel = EndKey:Escape
{
ToolTip, CANCEL...,,,20
Sleep, 200
Gosub, Cleareingabe
Suspend, Off
Return
}
else if Errorlevel = EndKey:Space
{
outputspace = 1
ToolTip, %out%%A_Space%%accvarstart%%accvarend%,,,20
continue
}
else if Errorlevel = EndKey:LAlt
{
Loop
{
Input, outfunc, L1 T1 M
If Errorlevel = Timeout
{
GetKeyState, altispressed, LALT, P
If (altispressed = "D" and outfunc = "")
continue
else
break
}
else
break
}
If outfunc =
continue
else if outfunc = v
{
If outputspace = 1
{
out = %out%%A_Space%%clipboard%
outputspace =
}
else
{
out = %out%%clipboard%
}
ToolTip, %out%,,,20
continue
}
else if outfunc = a
{
ExitApp
}
else if outfunc = m
{
If moreoptions = yes
{
outleertooltip := eingabestarttooltip
moreoptions =
}
else
{
outleertooltip = %SCRIPTNAME_VAR% IS READY. TYPE TO START`n--------------------------------------------------`n - ESC = CANCEL`n - ENTER = - WEBSEITE(no www..com)`n`t - `? TRANSLATE`n`t - `. GOOGLE SEARCH`n`t - `- EBAY SEARCH`n`t - : HARDWAREECKE SEARCH`n`t - `=5+5 `= CALCULATE`n`t - e.g.: .google`n - ALT+X = FOLDER and FILE SEARCH(CAPSLOCK+SHIFT)`n - ALT+E = SETTINGS(CAPSLOCK+F8)`n - ALT+A = %SCRIPTNAME_VAR% EXIT`n - ALT+N = NEW PASSWORD`n - ALT+H = HIDE WINDOW(CAPSLOCK+F4)`n - ALT+U = UNHIDE WINDOW(CAPSLOCK+F3)`n - ALT+Q = HELP(CAPSLOCK+F9)`n - ALT+C = MACRO MANAGEMENT(CAPSLOCK+F5 überall)`n - ALT+V = PASTE`n - ALT+Y = QWERTY KEYBOARD ON/OFF(type with one hand)`n - ALT+R oder CAPSLOCK+F12 = RESTART`n - CAPSLOCK+TAB = START ENTRY(or CTRL then SHIFT)`n - CAPSLOCK+F2 = REPEAT LAST COMMAND/PROGRAM`n - CAPSLOCK+F7 = SHOW ALL HOTKEYS ;`n - COPY/PASTE > CTRL+C then SHIFT then CTRL`n - ALT+C = PASTE CUSTOM
moreoptions = yes
}
}
else if outfunc = c_aus
{
cliptooltip =
count = 0
Loop, 10
{
StringLeft, cliptooltipvar, clipboard%count%, 50
StringReplace, cliptooltipvar, cliptooltipvar, `r`n, %A_Space%, All
cliptooltip = %cliptooltip%`n%count%: %cliptooltipvar%
count++
}
ToolTip, PRESS NUMBER TO PASTE(e.g. 1)`n TO COPY NEW TEXT`n after CTRL+C (Copy) press and hold CTRL`n%cliptooltip%,,,20
Input, clpvar, L1, {ESC}
If Errorlevel = Max
{
If (clpvar = "0" or clpvar = "1" or clpvar = "2" or clpvar = "3" or clpvar = "4" or clpvar = "5" or clpvar = "6" or clpvar = "7" or clpvar = "8" or clpvar = "9")
{
Keywait, %clpvar%
ToolTip,,,,20
ClipSaved := ClipboardAll
;Msgbox % clipboard
Clipboard =
Clipboard := clipboard%clpvar%
ClipWait
Sleep, 10
;msgBox % clipboard
Send, ^v
Sleep, 10
Clipboard =
Clipboard := ClipSaved
ClipSaved =
Gosub, Cleareingabe
Suspend, Off
Return
}
}
else if Errorlevel = EndKey:Escape
{
Gosub, Cleareingabe
Suspend, Off
Return
}
}
else if outfunc = n
{
ToolTip,,,,20
MsgBox, 291, NEW PASSWORD, !!!ARE YOU SURE?!!!`n!!!ALL SETTINGS AND MACROS WILL BE DELETED!!!, 30
IfMsgBox YES
{
IniRead, filename, %config%, DEFAULT, F93DHH98E08776AC
FileSetAttrib, -RHS, %filename%
FileSetAttrib, -RHS, %config%
FileDelete, %filename%
Sleep, 50
FileDelete, %config%
Suspend, Off
Goto, Neuespassword
}
}
else if outfunc = x
{
Suspend, Off
Goto, FileExplorer
}
else if outfunc = h
{
Gosub, mwt_Minimize
}
else if outfunc = q
{
ToolTip,,,,20
Suspend, Off
Goto, HilfeBox
}
else if outfunc = u
{
Gosub, mwt_UnMinimize
}
else if outfunc = c
{
ToolTip,,,,20
Suspend, Off
Goto, Macrokeys
}
else if outfunc = e
{
ToolTip, ,,,20
Suspend, Off
GoTo, SETUPMACRO
}
else if outfunc = r
{
ToolTip,,,,20
Suspend, Off
GoTo, RestartProgram
}
else if outfunc = y
{
ToolTip,,,,20
Suspend, Off
GoTo, QWERTYonoff
}
continue
}
If outputspace = 1
{
outputspace =
out = %out%%A_Space%%output%
}
ToolTip, %out%%accvarstart%%accvarend%,,,20
IfNotInString, out, %A_Space%
{
RegExMatch(out, "^\w+$", out_checkifcanbevar)
If (out = out_checkifcanbevar) ;If out is alnum
{
If %out%0 > 0
{
ToolTip % out A_TAB %out%1,,,20
}
}
}
}
Suspend, Off
Goto, Cleareingabe
}
Cleareingabe:
{
ToolTip,,,,20
outleertooltip := eingabestarttooltip
out =
outputspace =
saved =
Return
}
;_________________________________________
;#Include go.txt
1Include_go:
GO:
{
StringSplit, ip, outrunvar, ., .
StringLeft, first, outrunvar, 1
StringRight, last, outrunvar, 1
EnvGet, GoVariable, %outrunvar%
StringLeft, ziel, outrunvar, 2
StringRight, ziel1, ziel, 1
StringLeft, vgoogle, outrunvar, 1
StringTrimLeft, vgoogle2, outrunvar, 1
StringLeft, iswebsite, outrunvar, 4
If GoVariable =
{
If outrunvar = intranet
{
Run %webbrowserfile% http://intranet/
}
else if ziel1 = :
{
Run explorer /e`, %outrunvar%
}
else if vgoogle = .
{
Run %webbrowserfile% "http://www.google.de/search?hl=de&q=%vgoogle2%&meta="
}
else if vgoogle = ?
{
Run %webbrowserfile% "http://dict.leo.org/ende?lp=ende&lang=de&searchLoc=0&cmpType=relaxed§Hdr=on&spellToler=on&search=%vgoogle2%&relink=on"
}
else if vgoogle = =
{
Goto, Calculate
}
else if vgoogle = -
{
Run %webbrowserfile% "http://search-desc.ebay.de/search/search.dll?satitle=%vgoogle2%&fts=2"
}
else if vgoogle = :
{
Run %webbrowserfile% "http://www.hardwareecke.de/preisvergleich/index.php?site=search.jsp&name=%vgoogle2%&Submit=suchen&navCategoryID=11&priceRangeFrom=&priceRangeTo="
}
else if ziel = \\
{
Run explorer %outrunvar%
}
else if ip0 = 4
{
Run %webbrowserfile% %outrunvar%
}
else if iswebsite = http
{
Run %webbrowserfile% %outrunvar%
}
else
{
Run %webbrowserfile% "http://www.google.de/search?hl=de&q=%outrunvar%&btnI=Auf+gut+Glck&meta="
}
}
else
{
StringLeft, iswebsite, GoVariable, 4
If iswebsite = http
{
Run %webbrowserfile% %GoVariable%
}
else
{
Run explorer /e`, %GoVariable%
}
}
Sleep, 300
ToolTip,
return
}
;____________________________________________
;#Include calculator.txt
1Include_calculator:
Calculate:
{
delvalue = 0
Loop, 20
{
ZAHL%delvalue% = 0
ZEICHEN%delvalue% = 0
delvalue += 1
}
StringSplit, ZAHL, vgoogle2, "+" "*" "/" "-",
StringSplit, ZEICHEN, vgoogle2, , 1 2 3 4 5 6 7 8 9 0 `. `, `%
;MsgBox, Zahlen: %ZAHL0%, Zeichen: %ZEICHEN0%
n = 1
c = 0
lastpos = 0
Save = 0
If ZAHL1 contains `,
StringReplace, ZAHL1, ZAHL1, `,, .,
If ZAHL1 contains `%
{
StringTrimRight, percent1, ZAHL1, 1
percent1 *= 0.01
ZAHL1 := percent1
}
If ZAHL1 is not float
ZAHL1 *= 1.00
E := ZAHL1
Loop, %ZEICHEN0%
{
n += 1
c += 1
If ZAHL%c% contains `,
StringReplace, ZAHL%c%, ZAHL%c%, `,, .,
If ZAHL%n% contains `,
StringReplace, ZAHL%n%, ZAHL%n%, `,, .,
If ZAHL%n% contains `%
{
StringTrimRight, percent, ZAHL%n%, 1
percent *= 0.01
ZAHL%n% := percent
}
If ZAHL%c% is not float
ZAHL%c% *= 1.00
If ZAHL%n% is not float
ZAHL%n% *= 1.00
if ZEICHEN%n% contains *,/
{
if ZEICHEN%c% contains *,/
{
if ZEICHEN%c% = *
{
E *= ZAHL%n%
}
else
{
E /= ZAHL%n%
}
}
else
{
Save += %E%
lastpos = %c%
E := ZAHL%n%
Continue
}
}
else if ZEICHEN%n% contains +,-
{
if ZEICHEN%c% = +
{
E += ZAHL%n%
}
else if ZEICHEN%c% = -
{
E -= ZAHL%n%
}
else if ZEICHEN%c% = *
{
E *= ZAHL%n%
If ZEICHEN%lastpos% = +
E += %Save%
else if ZEICHEN%lastpos% = -
{
E *= -1
}
E += %Save%
Save = 0
}
else if ZEICHEN%c% = /
{
E /= ZAHL%n%
If ZEICHEN%lastpos% = +
E += %Save%
else if ZEICHEN%lastpos% = -
{
E *= -1
}
E += %Save%
Save = 0
}
}
If ZEICHEN%n% = 0
{
if ZEICHEN%c% = *
{
;MsgBox, %E%
E *= ZAHL%n%
;MsgBox, %E%
If ZEICHEN%lastpos% = +
E += %Save%
else if ZEICHEN%lastpos% = -
{
E *= -1
}
;E += %Save%
Save = 0
}
else if ZEICHEN%c% = /
{
E /= ZAHL%n%
If ZEICHEN%lastpos% = +
E += %Save%
else if ZEICHEN%lastpos% = -
{
E := %Save% - %E%
}
Save = 0
}
else if ZEICHEN%c% = -
{
E -= ZAHL%n%
}
else if ZEICHEN%c% = +
{
E += ZAHL%n%
}
}
}
Loop
{
StringRight, zahlr, E, 1
If zahlr = 0
StringTrimRight, E, E, 1
If zahlr = 0
{
continue
}
else
{
If zahlr = .
StringTrimRight, E, E, 1
break
}
}
If E contains `.
StringReplace, E, E, `., `,,
MsgBox, %E%
return
}
;____________________________________
;#Include fileexplorer.txt
1Include_fileexplorer:
FILEEXPLORER:
{
KeyWait, SHIFT
KeyWait, CAPSLOCK
SetTimer, RemoveToolTip, Off
count = 0
explorervar =
explorersearchagain =
explorersearchsubfolders = 0
explorersearchfile = 2
explorerpressedspace =
Loop
{
If explorervar =
{
ToolTip, FILE- AND FOLDER STARTER`n-------------------------`nENTER DRIVE & FOLDER`nPRESS F1 TO ENTER A VARIABLE,,,18
}
else
{
ToolTip, %explorervar%`n--------------------`nTAB = TAKE OVER PATH`nENTER = OPEN FILE/FOLDER`nF12(%explorersearchfile%): 0=FILES | 2=FOLDERS`nF11(%explorersearchsubfolders%): SEARCH SUBFOLDERS,,,18
}
If explorersearchagain =
{
Input, explorerstring, L1, {ENTER}{ESC}{BS}{F12}{F11}{F4}{F1}{Space}{DOWN}{LEFT}
}
else if explorersearchagain = 1
{
Errorlevel = Max
}
If Errorlevel = EndKey:Space
explorerpressedspace = 1
;MsgBox, %Errorlevel%
If Errorlevel = Max
{
If explorervar =
{
If explorerstring = \
{
explorervar = \\
}
else
{
explorervar = %explorerstring%`:`\
}
}
else if explorersearchagain =
{
If explorerpressedspace =
{
explorervar = %explorervar%%explorerstring%
}
else
{
explorervar = %explorervar%%A_Space%%explorerstring%
explorerpressedspace =
}
}
explorerloopagain:
explorersearchagain =
ToolTip, SEARCHING....`nPLEASE WAIT...,,,18
Loop, %explorervar%*.*, %explorersearchfile%, %explorersearchsubfolders%
{
If A_LoopFileSize > 0
{
ToolTip, %explorervar%`n--------------------`n%A_LoopFileLongPath%`n--------------------`nTAB = TAKE OVER PATH`nENTER = OPEN FILE/FOLDER`nF12(%explorersearchfile%): 0=FILES | 2=FOLDERS`nF11(%explorersearchsubfolders%): SEARCH IN SUBFOLDERS,,,18
}
else
{
ToolTip, %explorervar%`n--------------------`n%A_LoopFileLongPath%`\`n--------------------`nTAB = TAKE OVER PATH`nENTER = OPEN FILE/FOLDER`nF12(%explorersearchfile%): 0=FILES | 2=FOLDERS`nF11(%explorersearchsubfolders%): SEARCH SUBFOLDERS,,,18
}
Input, loopfileweiter, L1, {ENTER}{BS}{ESC}{TAB}{DOWN}{UP}{F12}{F11}{Space}{LEFT}
If Errorlevel = EndKey:Tab
{
If A_LoopFileSize > 0
{
explorervar = %A_LoopFileLongPath%
}
else
{
explorervar = %A_LoopFileLongPath%\
}
explorersearchagain = 1
break
}
else if Errorlevel = EndKey:Space
{
explorerpressedspace = 1
}
else if Errorlevel = EndKey:Down
{
ToolTip, SEARCHING....`nPLEASE WAIT...,,,18
continue
}
else if Errorlevel = EndKey:Up
{
explorersearchagain = 1
break
}
else if Errorlevel = EndKey:F11
{
If explorersearchsubfolders = 0
{
explorersearchsubfolders = 1
}
else
{
explorersearchsubfolders = 0
}
explorersearchagain = 1
break
}
else if Errorlevel = EndKey:F12
{
If explorersearchfile = 0
explorersearchfile = 2
else
{
explorersearchfile = 0
}
;else if explorersearchfile = 1
;{
;explorersearchfile = 2
;}
explorersearchagain = 1
break
}
else if Errorlevel = EndKey:Left
{
StringTrimRight, explorervar, explorervar, 1
explorersearchagain = 1
break
}
else if Errorlevel = EndKey:Backspace
{
StringRight, explorervarcutoff, ecplorervar, 1
If explorervarcutoff = \
{
StringGetPos, explorervarcutoff, explorervar, \, R2, 1
}
else
{
StringGetPos, explorervarcutoff, explorervar, \, R, 1
}
explorervarcutoff += 1
StringLeft, explorervar, explorervar, %explorervarcutoff%
;Stringtrimright, explorervar, explorervar, 1
If explorervar =
{
explorersearchagain =
}
else if explorervar = :\
{
explorervar =
explorersearchagain =
}
else
{
explorersearchagain = 1
}
explorerpressedspace =
break
}
else if Errorlevel = Max
{
If explorerpressedspace = 1
{
explorervar = %explorervar%%A_Space%%loopfileweiter%
}
else
{
explorervar = %explorervar%%loopfileweiter%
}
explorerpressedspace =
explorersearchagain = 1
break
}
else if Errorlevel = EndKey:Enter
{
If A_LoopFileSize = 0
{
ToolTip,,,,18
StringRight, whichfoldertorun, explorervar, 1
If whichfoldertorun = \
{
saveexprorervar = %explorervar%
saveexplorersearchfile = 2
Run %A_windir%\explorer.exe /e`, %explorervar%
}
else
{
saveexplorervar = %A_LoopFileLongPath%
saveexplorersearchfile = 2
Run %A_windir%\explorer.exe /e`, %A_LoopFileLongPath%
}
Return
}
else if A_LoopFileSize > 0
{
saveexplorervar = %A_LoopFileLongPath%
saveexplorersearchfile = 0
ToolTip,,,,18
Run %A_LoopFileLongPath%
Return
}
explorersearchagain = 1
Break
}
else if Errorlevel = EndKey:Escape
{
ToolTip,,,,18
Return
}
}
}
else if ErrorLevel = EndKey:F1
{
Loop
{
IfEqual, environmentvariablevar, , ToolTip, ENTER A VARIABLE - THEN ENTER OR TAB AND PATH WILL BE CHOOSEN,,,18
IfNotEqual, environmentvariablevar, , ToolTip, %environmentvariablevar%,,,18
Input, environmentvariable, L1, {ENTER}{ESC}{BACKSPACE}{TAB}
If Errorlevel = Max
{
environmentvariablevar = %environmentvariablevar%%environmentvariable%
continue
}
else if (Errorlevel = "EndKey:Enter" or Errorlevel = "EndKey:Tab")
{
EnvGet, explorervar, %environmentvariablevar%
If explorervar =
{
If environmentvariablevar is alnum
{
environmentvariablevarislocal := %environmentvariablevar%
IfNotExist, %environmentvariablevarislocal%
{
environmentvariablevarislocal := %environmentvariablevar%2
IfExist, %environmentvariablevarislocal%
explorervar = %environmentvariablevarislocal%
}
else
{
If environmentvariablevar is alnum
explorervar := %environmentvariablevar%
}
}
}
If (InStr(explorervar, ".") = "0" and RegExMatch(explorervar, "\\$") = "0")
explorervar = %explorervar%\
else
explorersearchfile = 0
environmentvariablevar =
explorersearchagain = 1
break
}
else if Errorlevel = EndKey:Escape
{
explorersearchagain =
environmentvariablevar =
break
}
else if Errorlevel = EndKey:Backspace
{
environmentvariablevar =
}
}
}
else if Errorlevel = EndKey:F4
{
explorervar = %saveexplorervar%
explorersearchfile = %saveexplorersearchfile%
explorersearchagain = 1
}
else if Errorlevel = EndKey:Down
{
ToolTip, SEARCHING....`nPLEASE WAIT...,,,18
explorersearchagain = 1
continue
}
else if Errorlevel = EndKey:Left
{
StringTrimRight, explorervar, explorervar, 1
explorersearchagain = 1
continue
}
else if Errorlevel = EndKey:Backspace
{
StringRight, explorervarcutoff, ecplorervar, 1
If explorervarcutoff = \
{
StringGetPos, explorervarcutoff, explorervar, \, R2, 1
}
else
{
StringGetPos, explorervarcutoff, explorervar, \, R, 1
}
explorervarcutoff += 1
StringLeft, explorervar, explorervar, %explorervarcutoff%
;Stringtrimright, explorervar, explorervar, 1
If explorervar =
{
explorersearchagain =
}
else if explorervar = :\
{
explorervar =
explorersearchagain =
}
else
{
explorersearchagain = 1
}
explorerpressedspace =
}
else if Errorlevel = EndKey:F11
{
If explorersearchsubfolders = 0
{
explorersearchsubfolders = 1
}
else
{
explorersearchsubfolders = 0
}
explorersearchagain = 1
}
else if Errorlevel = EndKey:F12
{
If explorersearchfile = 0
explorersearchfile = 2
else ;if explorersearchfile = 1
{
explorersearchfile = 0
}
;else
;{
;explorersearchfile = 0
;}
explorersearchagain = 1
}
else if Errorlevel = EndKey:Escape
{
ToolTip,,,,18
Return
}
else if Errorlevel = EndKey:Enter
{
StringRight, explorervarpath, explorervar, 1
If explorervarpath = `\
{
saveexplorervar = %explorervar%
ToolTip,,,,18
Run %A_windir%\explorer.exe /e`, %explorervar%
Return
}
explorersearchagain = 1
}
}
ToolTip,,,,18
Return
}
;_________________________________
;#Include gui.help.txt
1Include_gui_help:
HilfeBox:
{
ToolTip,,,,20
IfWinExist, %SCRIPTNAME_VAR% HELP - SELECT TOPIC TO DISPLAY HELP
{
WinActivate, %SCRIPTNAME_VAR% HELP - SELECT TOPIC TO DISPLAY HELP
Return
}
Gui, 2:Default
;Gui, 2:Add, ListView, r20 w50 -WantF2, Topic
Gui, 2:Add, ListView, r30 w150 Count50 NoSortHdr AltSubmit +ReadOnly Grid Multi gHelpchange, TOPIC
Gui, 2:Add, Text, x+1, Description
Gui, 2:Add, Edit, y+6 ReadOnly r32 w700 -Wrap, VERSION 1`.003`nWRITER`: ESC`nCOPYRIGHTED © BY ESC
LV_Add("", "GENERAL")
LV_Add("", "HOTKEYS")
LV_Add("", "MACROS")
LV_Add("", "FILE/FOLDER STARTER")
LV_Add("", "WINDOWHIDER")
LV_Add("", "PROFILECHANGER")
LV_Add("", "KEYBOARD MOUSE")
LV_Add("", "WIN INFO")
LV_Add("", "MONITOR WINDOWS")
Gui, 2:Show, , %SCRIPTNAME_VAR% HELP - SELECT TOPIC TO DISPLAY HELP
;WinSetTitle, %SCRIPTNAME_VAR%, , %SCRIPTNAME_VAR% HELP - SELECT TOPIC TO DISPLAY HELP
;WinWaitClose, %SCRIPTNAME_VAR%
Return
}
Helpchange:
{
;MsgBox, %Errorlevel%
If A_GuiEvent = I
IfInString, Errorlevel, S
{
If A_EventInfo = 1
GuiControl, , Edit1, VERSION 1`.003`nWRITER`: ESC`nCOPYRIGHTED © BY ESC`n`nWITH %SCRIPTNAME_VAR% AND AUTOHOTKEY, YOUR WOKR WILL GET EASIER AND FASTER`n`n - NO BOTHERING SEARCHING FOR YOUR FILES AND FOLDERS`n - SAVE YOUR WEBSITES AND START THESE WITH A KEYWORD IN %SCRIPTNAME_VAR% MAIN GUI OR WITH A HOTKEY`n - WITH AUTOHOTKEY CODE YOU CAN EVEN AUTOMATE NEARLY EVERYTHING. WRITE YOUR MACROS AND START WITH A HOTKEY OR IN %SCRIPTNAME_VAR%`n - E.g. [WinWait,Explorer,,3], [MsgBox,0,TEST,this is a message box, 4], [InputBox,outputvar,more options...]`n [StringTrimLeft,outputvar,inputvar,10], [Run, c:\Windows\explorer.exe]`n [Send, Sends text and keys{ENTER}], [DllCall,see online help for options]...`n - AND MANY MORE`n `nYOU CAN LEARN MANY USEFULL PROGRAMS AND SPEED UP YOUR WORK WITH COMPUTER INCREDIBLE`n`nTRY IT AND WONDER
else if A_EventInfo = 2
{
GuiControl, , Edit1, START %SCRIPTNAME_VAR% INTERFACE`t`tCAPSLOCK & TAB`n`nFILE AND FOLDER FINDER`t`tCAPSLOCK & SHIFT`n`nRESTART %SCRIPTNAME_VAR%`t`t`tCAPSLOCK & F12`n`nMACRO MANAGEMENT`t`tCAPSLOCK & F5`n`nCREATE NEW MACRO`t`tCAPSLOCK & F8`n`nREPEAD COMMAND`t`tCAPSLOCK & F2`n`nSHOW/HIDE WINDOWS`t`tCAPSLOCK & F4(HIDE), CAPSLOCK & F3(UNHIDE)`n`nPROFILEMANAGER`t`tCAPSLOCK & F1`n`nCANCEL RUNNING MACRO`t`tPRESS KEY "PAUSE/BREAK" WHILE MACRO IS RUNNING`n_______________________________________________________________`n`n`nCAPSLOCK & SHIFT = FILE AND FOLDER FINDER`nCAPSLOCK & TAB = %SCRIPTNAME_VAR% ON(START %SCRIPTNAME_VAR% INTERFACE)`nLCONTROL = LEFT CTRL, RELEASE AND PRESS SHORTLY SHIFT = %SCRIPTNAME_VAR% ON(start %SCRIPTNAME_VAR% GUI INTERFACE)`nCONTROL & < = e.g. in EXPLORER ADRESSBAR type temp and press CONTROL & <`nCTRL & ENTER = SAME AS CONTROL & <`nCAPSLOCK & F1 = PROFILEMANAGER`nCAPSLOCK & F12 = RESTART %SCRIPTNAME_VAR%`nCAPSLOCK & F2 = REPEAT LAST COMMAND`nCAPSLOCK & CTRL = REPEAT LAST COMMAND`nCAPSLOCK & F5 = MACRO MANAGEMENT`nCAPSLOCK & F4 = HIDE WINDOW`nCAPSLOCK & F3 = UNHIDE WINDOW`nCAPSLOCK+F6 = WIN SPY`nCAPSLOCK & F8 = NEW MACRO/PROGRAM(FILE)/FOLDER`nCAPSLOCK & F11 = PAUSE(RUNNING SKRIPT WILL PAUSE PRESS AGAIN TO CONTINUE)`nCAPSLOCK & F9 = HELP`nCONTROL & CAPSLOCK = SPEEDHOTKEYS ON/OFF`nCTRL & CAPSLOCK = SPEEDHOTKEYS ON/OFF`nCAPSLOCK & ENTER = SPEEDHOTKEYS ON`/OFF`nCAPSLOCK & ESC = SPEEDHOTKEYS ON/OFF`nCAPSLOCK & BACKSPACE = SPEEDHOTKEYS ON/OFF`nSCROLLLOCK & BACKSPACE = SPEEDHOTKEYS ON/OFF`nNUMLOCK & BACKSPACE = SPEEDHOTKEYS ON/OFF`nCAPSLOCK & F7 = SHOW ALL HOTKEYS`nCAPSLOCK & F10 = SUSPEND HOTKEYS`n`n_____________________________________`n`nQWERTY KEYBOARD ON: IN %SCRIPTNAME_VAR% INTERFACE PRESS ALT & Y`n`n - THIS WILL ENABLE QWERTY KEYBORD, YOU CAN TYPE WITH ONE HAND`n - THE KEYBOARD WILL BE MIRRORED BY PRESSING SPACE & LETTER`n`n - SPACE & CAPSLOCK ENTER`n`n - SPACE & TAB BACKSPACE`n`n - SHIFT & SPACE SPACE`n`n - ~CONTROL & SPACE SPACE
}
else if A_EventInfo = 3
{
GuiControl, , Edit1, WEBSEITE/FOLDER/PROGRAM/MACRO`n`n`nWITH CAPSLOCK+F8 YOU CAN ADD NEW PROGRAM, FOLDER, WEBSITE, MACRO (FASTER THAN IN MACROMANAGEMENT`n`n - HIER YOU CAN SET UP YOUR VARIABLES THAT START A WEBSITE, FOLDER, PROGRAM OR MINI SCRIPTS`,`n `n - E`.G`. YOU TYPE G IN %SCRIPTNAME_VAR% INTERFACE AND PRESS ENTER TO OPEN HTTP`://WWW`.GOOGLE`.DE`n `n - YOU CAN OPEN A FILE OR FOLDER E.G. TYPE PROGS FOR C`:\PROGRAM FILES`n`n (AFTER THIS YOU WILL BE ABLE TO TYPE YOUR KEY IN %SCRIPTNAME_VAR% TO START YOUR PROGRAM/WEBSEITE/FOLDER/MACRO)`n`n`n`nADVANCED USER CAN WRITE MACROS WITH AUTOHOTKEY CODE.`n`n - TO CREATE NEW MACRO`, CAPSLOCK+F8 OR ALT+E IN %SCRIPTNAME_VAR% INTERFACE AND THEN M`, THEN VARIABLE AND SO ON`.`.`.`n - OR PRESS CAPSLOCK+F5 TO OPEN MACRO MANAGER`n`n - YOU WILL FIND ALL COMMAND THAT ARE SUPPORTED AT THE BOTTOM OF MACRO MANAGEMENT(CAPSLOCK+F5)`n`n - WITH CAPSLOCK+F2 OR CAPSLOCK+CTRL YOU CAN REPEAT LAST COMMAND`n `n - YOU CAN PAUSE MACRO WITH CAPSLOCK & F11`n `n - TO STOP RUNNING MACRO, PRESS PAUSE/BREAK.`n`n - AUTOSTART OF YOUR PROGRAMS:`n - FOR AUTOSTART ENTER WORD AUTOSTART in NAME`n - FOR HOTKEYS(ONLY CAPSLOCK/NUMLOCK/SCROLLLOCK + 0-z)`n e.g. CAPSLOCKa for CAPSLOCK & A NUMLOCKa for NUMLOCK & A`n`n - YOU CAN ENTER SEND TEXT INTO THE LINE WITHOUT SEND COMMAND e.g. {TAB}!a^f...`n`n INSTEAD ErrorLevel use Error_Level`n `n`nSPEEDHOTKEYS: (BEFORE YOU CAN USE THIS, YOU NEED TO TURN ON SPEEDHOTKEYS BY PRESSING STRG & CAPSLOCK OR CAPSLOCK & ENTER)`n`n - IF YOU ENTER HOTKEY** IN NAME YOU CAN RUN A PROGRAM PRESSING KEY & KEY`n - e.g. HOTKEYas WOULD START YOUR PROGRAM BY PRESSING A & S`n `n - ONLY ALNUM(0-z) ARE POSSIBLE
}
else if A_EventInfo = 4
{
GuiControl, , Edit1, FILE/FOLDER STARTER`n`n START WITH - ALT+X - IN %SCRIPTNAME_VAR% OR - CAPSLOCK+SHIFT -`n`n - HERE YOU CAN ACCESS FILES AND FOLDERS VERY FAST.`n `n - FIRST TYPE DRIVE LETTER, e.g. c (:\ WILL BE ADDED AUTOMATICALLY)`n - TYPE THE FOLDER OR FILE NAME AND TAKE OVER WITH TAB.`n - WITH F12 YOU CAN CHANGE WHAT YOU ARE SEARCHING FOR(FILE/FOLDER) FOLDERS CAN BE FOUND MUCH FASTER`n - WITH F11 YOU CAN SEARCH TROUGH SUBFOLDERS`n - TO DELETE LAST LETTER/CHARACTER PRESS - LEFT - INSTEAD OF - BACKSPACE -`n - PRESSING KEY "DOWN" WILL SHOW NEXT HIT`n - PRESSING KEY "UP" WILL RESET AND SEARCH FROM START`n - USE * AS WILDCARD(FOR EXAMPLE *.exe)
}
else if A_EventInfo = 5
{
GuiControl, , Edit1, WINDOW MANAGER`n`n - YOU CAN HIDE AND UNHIDE ANY WINDOWS WITH CAPSLOCK & F4 AND CAPSLOCK & F3`n - YOU CAN ALSO UNHIDE THESE WINDOWs WITH RIGHT MOUSECLICK ON %SCRIPTNAME_VAR% IN YOUR TRAY.
}
else if A_EventInfo = 6
{
GuiControl, , Edit1, PRESS CAPSLOCK & F1 TO OPEN PROFILECHANGER`n`n - CLICK ON THE NAME IN THE PROFILELIST TO SELECT PROFILE`n`nTO DELETE OR CREATE A PROFILE`nENTER THE PROFILE INTO THE BOX AND CLICK DELETE/CREATE
}
else if A_EventInfo = 7
{
GuiControl, , Edit1, MOVING MOUSE`n`n PRESS ARROW KEYS TO MOVE MOUSE UP DOWN LEFT and RIGHT AS A HOTKEY`n - E.g. TO MOVE LEFT - PRESS FIRST RIGHT AND HOLD - THEN PRESS LEFT`n SAME FOR UP - PRESS FIRST DOWN AND HOLD - THEN PRESS UP`n TO MOVE LEFTDOWN, LEFTUP, RIGHTDOWN OR RIGHTUP`n - PRESS ARROW KEYS LEFT & DOWN(same is DOWN & LEFT), LEFT & UP... AS A HOTKEY`n`nMOUSECLICK`n`n TO CLICK LEFT MOUSE`n - PRESS AND HOLD CAPSLOCK THEN PRESS LEFT(PRESS LEFT TWICE TO DOUBLE CLICK)`n`n TO CLICK RIGHT MOUSE`n - PRESS AND HOLD CAPSLOCK THEN PRESS RIGHT(PRESS RIGHT TWICE TO DOUBLE CLICK)`n`n TO CLICK AND HOLD/RELEASE LEFT MOUSE(DRAG AND DROP)`n - PRESS AND HOLD CAPSLOCK THEN PRESS UP(PRESS UP AGAIN TO RELEASE MOUSE)`n`n TO CLICK AND HOLD/RELEASE RIGHT MOUSE(DRAG AND DROP)`n - PRESS AND HOLD CAPSLOCK THEN PRESS DOWN(PRESS DOWN AGAIN TO RELEASE MOUSE)`n`n`nMOUSE SPEED`n`n TO INCREASE MOUSE SPEED `n - PRESS RIGHT & CAPSLOCK AS HOTKEY `n - TO DECREASE LEFT & CAPSLOCK AS HOTKEY`n`n TO INCREASE ACCELERATION SPEED(THIS IS WHEN YOU HOLD e.g. LEFT & DOWN) `n - PRESS UP & CAPSLOCK AS HOTKEY`n - TO DECREASE DOWN & CAPSLOCK
}
else if A_EventInfo = 8
{
GuiControl, , Edit1, WIN SPY`n`nTO START, MOVE MOUSE to the WINDOW/CONTROL/POSITION AND PRESS CAPSLOCK & F6`n`nTO COPY A VALUE, NAVIGATE TO IT AND PRESS ENTER OR CLICK ON IT
}
else if A_EventInfo = 9
{
GuiControl, , Edit1, WINWATCHER`n`nPRESS CAPSLOCK & SPACE TO START/CLOSE`n`nPRESS CAPSLOCK & + TO ADD A WINDOW TO WINWATCHER(CAPSLOCK & - TO REMOVE)`n`nPRESS CAPSLOCK + ALT TO HIDE/SHOW WINWATCHER`n`nUSE CONTROL & SHIFT & LEFTMOUSE TO MARK A REGION THAT YOU WANT TO MONITOR
}
else if A_EventInfo = 10
{
GuiControl, , Edit1, hallo wie gehts
}
}
Return
}
2GuiClose:
Gui, 2:Destroy
Gui, Default
Return
2GuiEscape:
Gui, 2:Destroy
Gui, Default
Return
;__________________________________
;#Include gui.macromanagement.txt
1Include_gui_macromanagement:
Macrokeys:
{
ToolTip,,,,20
IfWinExist, %SCRIPTNAME_VAR% MACRO MANAGEMENT - TO SORT A COLUMN CLICK HEADLINE
{
WinActivate, %SCRIPTNAME_VAR% MACRO MANAGEMENT - TO SORT A COLUMN CLICK HEADLINE
Return
}
StringLeft, currentisdefault, allprofiles, InStr(allprofiles, "|")-1
allprofilestoload = %allprofiles%
IfNotEqual, currentisdefault, %DEFAULT%
{
StringReplace, allprofilestoload, allprofilestoload, |%DEFAULT%,
allprofilestoload = %default%|%allprofilestoload%
}
Stringsplit, allprofilestoload, allprofilestoload, |
Gui +OwnDialogs +LastFound
Gui, 8:+owner1 ; Make #2 window owned by #1 window.
Gui, 8:+owner ; Make #2 window owned by script's main window to prevent display of a taskbar button.To
Gui, font, bold
Menu, MacroMenu, Add, &Save Macro, ChangeMacrokeysfile ; See remarks below about Ctrl+O.
Menu, MacroMenu, Add, Edit &Macro, HiEdit
Menu, MacroMenu, Add, &Delete Macro, DeleteMacro
Menu, MacroMenu, Add, De/&Encrypt Macro, Encryptbutton
Menu, MacroMenu, Add, &Clear Fields, Clearmacrokeys
Menu, MacroMenu, Add, E&xit MacroManagement, GuiClose
Menu, InsertMenu, Add, &Copy File To Clipboard, Insertfile
Menu, InsertMenu, Add, Copy &Folder To Clipboard, Insertfolder
Menu, ProfileMenu, Add, &ProfileManager, Changeprofile
Menu, ImportMenu, Add, Imp&ort Macro, Import
Menu, ImportMenu, Add, &Apply new Config File, Restoreini
Menu, ImportMenu, Add, &Export macros to html, Exporttohtml
Menu, ImportMenu, Add, &Display config file, displayconfigfile
Menu, HelpMenu, Add, &Help, HilfeBox
Menu, HelpMenu, Add, &AutoHotkey Online, Morehelponline
Menu, MyMenuBar, Add, &Macro, :MacroMenu ; Attach the two sub-menus that were created above.
Menu, MyMenuBar, Add, &Insert, :InsertMenu
Menu, MyMenuBar, Add, &Profilemanager, :ProfileMenu
Menu, MyMenuBar, Add, Imp&ort/Export, :ImportMenu
Menu, MyMenuBar, Add, &Help, :HelpMenu
Gui, Menu, MyMenuBar
Gui, Add, Button, w675 gChangecurrentprofileinmacro, CURRENT PROFILE: - %DEFAULT% - CLICK TO &APPLY SELECTED TAB TO BE DEFAULT PROFILE
Gui, font, norm
Gui, Add, Tab, xs Buttons w675 vActiveTab, %allprofilestoload%
StringLeft, currenttabprofile, allprofilestoload, InStr(allprofilestoload, "|")-1
Loop, Read, %config%
{
Loop 4
helpvalue%A_Index% =
helpvaluefirst =
helpvalue := A_LoopReadLine
StringLeft, helpvaluefirst, helpvalue, 1
If helpvaluefirst = [
{
StringTrimLeft, helpvalue, helpvalue, 1
StringTrimRight, helpvalue, helpvalue, 1
currentprofile = %helpvalue%
Gui, Tab, %helpvalue%,, Exact
Gui, Add, ListView, r12 w660 Count300 AltSubmit +ReadOnly Grid Multi gMacrokeyschange vList%currentprofile%, MACRO KEYWORD|NAME/AUTOSTART/CAPSLOCK/HOTEKEY|MACRO COMMANDS|PARAMETERS
continue
}
Stringsplit, helpvaluecheck, helpvalue, `=, %A_Space%
helpvaluecheck = %helpvaluecheck%
If (helpvaluecheck1 = "F93DHH98E08776AC" or helpvalue = "" or helpvaluecheck1 = "defaultprofile")
continue
StringReplace, helpvalue, helpvalue, `=, `°,
Stringsplit, helpvalue, helpvalue, `°%programseparator%, %A_Space%
;MsgBox % helpvalue3
helpend := LV_Add("",helpvalue1, helpvalue2,helpvalue3,helpvalue4)
If helpend = 0
break
}
Loop 4
helpvalue%A_Index% =
helpvaluefirst =
Gui, Tab
Gui, font, bold
Gui, Add, Button, xs Default gChangeMacrokeysfile, _ &S A V E _`nM A C R O
Gui, Add, Button, x+0 gENCRYPTBUTTON, - &ENCRYPT`/DECRYPT MACRO -`n!!! TO DECRYPT LAST 3 KEYS OF YOR MACRO WILL BE REQUIRED`, PLEASE REMEMBER !!!
Gui, Add, Text, xs, KEY&WORD :
Gui, font, norm
Gui, Add, Edit, x+1 -WantTab -WantReturn w120, EXAMPLE: g
Gui, font, bold
Gui, Add, Button, x+1 gCLEARMACROKEYS, C&LEAR
Gui, Add, Button, x+1 gHilfeBox, &HELP
Gui, Add, Button, x+1 gChangeprofile, &PROFILEMANAGER
Gui, Add, Edit, x+1 vFiltermacrotext -WantTab, FILTERTERM
Gui, Add, DropDownList, x+1 vFiltermacro gFiltermacronow w116, SET FILTER ON||ALL|KEY|NAME|MACRO|PARAMETERS
Gui, Add, Text, xs, NA&ME :
Gui, font, norm
Gui, Add, Edit, x+1 -WantTab -WantReturn w550, YOU MUST ENTER NAME AND|OR OPTIONS FOR EXAMPLE: GOOGLE CAPSLOCKg
Gui, font, bold
Gui, Add, Text, xs, PA&RAMS :
Gui, font, norm
Gui, Add, Edit, x+1 -WantTab -WantReturn w550, ENTER PARAMETERS HERE. FOR EXAMPLE http://www.web.de
Gui, font, bold
Gui, Add, Text, xs, MACR&O :
;Gui, font, norm
;Gui, Add, Edit, x+1 +WantTab r17 w550, [HERE YOU NEED TO ENTER YOUR MACRO, FOLDER OR INTERNET EXLORER]`n`nE.G.: C:\Program Files\Internet Explorer\iexplore.exe`n`n(WHEN MACRO IS A PROGRAM LIKE WEBBROWSER, PARAMS CAN BE A WEBSITE, FOLDER OR START PARAMETERS. For EXAMPLE: /e or c:\ for C:\Windows\explorer.exe)`n`nIF YOU WANT TO USE AUTOHOTKEY MACRO, PARAMS MUST BE EMPTY, ENTER FOR EXAMPLE:`nRun, C:\Program Files\Internet Explorer\iexplore.exe www.google.de`n`nOR`n`n!a`nSleep, 500`n!s`nLoop 2`n{`nMsgBox, test`n}
hwnd := WinExist()
;CreateMenu()
hEdit := HE_Add(hwnd,131,390,550,229, "HSCROLL VSCROLL HILIGHT")
fStyle := "s8" , fFace := "Courier New"
HE_SetFont( hEdit, fStyle "," fFace)
SetColors(hEdit)
;msgbox % HE_GetColors(hEdit)
HE_SetTabWidth(hEdit, 4)
HE_LineNumbersBar(hEdit, "automaxsize"), lineNumbers := true
HE_AutoIndent(hedit, true), autoIndent := true
HE_SetKeywordFile( A_ScriptDir "\Keywords.hes")
Gui, font, bold
Gui, Add, Button, xs y460 gINSERTFOLDER, COPY FOLDER`nTO CL&IPBOARD
Gui, Add, Button, xs y420 gINSERTFILE, COPY &FILE`nTO CLIPBOARD
Gui, Add, Button, xs y500 gHiEdit, E &D I T`nM A C R O`nI N`nE D I T O R
Gui, Add, Button, xs y570 gMorehelponline, &GET HELP`nONLINE ON`n.AUTOHOTKEY.
Gui, Add, DropDownList, vProgramChoise gChooseprogram w162 xs y625, COMMANDS||%workingcommandsinfo%
Gui, font, norm
Gui, Add, Edit, x+1 r3 -WantTab -WantReturn w508 Readonly
Gui, font, bold
Gui, Add, Edit, xs y650 -WantTab -WantReturn w161 gGetHelp,
Gui, Add, Button, xs gCopyfromhelp, © TO CLIPBOARD ->
Gui, font, norm
Gui, Add, Edit, x+1 -WantTab -WantReturn w507 Readonly,
Gui, Show,, %SCRIPTNAME_VAR% MACRO MANAGEMENT - TO SORT A COLUMN CLICK HEADLINE
ControlSetText, HiEdit1, % "here you need to enter your macro, folder/file or your internet exlorer`nfor example: C:\Program Files\Internet Explorer\iexplore.exe`nwhen macro(entry here) is a program like webbrowser, `n - params can be a website`n - folder or start parameters.`n - e.g.: /e or c:\ (PARAMS) for C:\Windows\explorer.exe(in MACRO)`n`nif you want to use ahk code, params must be empty,`nfor example:`nRun, C:\Program Files\Internet Explorer\iexplore.exe www.google.de`nWinWaitActive, Google"
Gui, Submit, Nohide
GuiControl, Focus, List%ActiveTab%
Return
}
GuiClose:
{
Gui, Destroy
Exit
}
GuiEscape:
{
MsgBox, 4, EXIT?, DO YOU WANT TO CLOSE?, 3
IfMsgBox Yes
Gui, Destroy
Exit
}
Filtermacronow:
{
Gui, Submit, NoHide
If Filtermacro = SET FILTER ON
{
Return
}
rowstofilter := LV_GetCount()
MsgBox, 4, FILTER MACROS?, DO YOU WANT TO APPLY FILTER`nFILTER ON: %Filtermacro%`nFILTER: %Filtermacrotext%, 5
IfMsgBox No
Return
If Filtermacro = ALL
{
Loop % LV_GetCount()
{
LV_GetText(texttofilter1, rowstofilter, 1)
LV_GetText(texttofilter2, rowstofilter, 2)
LV_GetText(texttofilter3, rowstofilter, 3)
LV_GetText(texttofilter4, rowstofilter, 4)
IfNotInString, texttofilter1, %filtermacrotext%
{
IfNotInString, texttofilter2, %filtermacrotext%
{
IfNotInString, texttofilter3, %filtermacrotext%
{
IfNotInString, texttofilter4, %filtermacrotext%
{
LV_Delete(rowstofilter)
}
}
}
}
rowstofilter--
}
}
else if Filtermacro = KEY
{
Loop % LV_GetCount()
{
LV_GetText(texttofilter, rowstofilter, 1)
IfNotInString, texttofilter, %filtermacrotext%
{
LV_Delete(rowstofilter)
}
rowstofilter--
}
}
else if Filtermacro = NAME
{
Loop % LV_GetCount()
{
LV_GetText(texttofilter, rowstofilter, 2)
IfNotInString, texttofilter, %filtermacrotext%
{
LV_Delete(rowstofilter)
}
rowstofilter--
}
}
else if Filtermacro = MACRO
{
Loop % LV_GetCount()
{
LV_GetText(texttofilter, rowstofilter, 3)
IfNotInString, texttofilter, %filtermacrotext%
{
LV_Delete(rowstofilter)
}
rowstofilter--
}
}
else if Filtermacro = PARAMETERS
{
Loop % LV_GetCount()
{
LV_GetText(texttofilter, rowstofilter, 4)
IfNotInString, texttofilter, %filtermacrotext%
{
LV_Delete(rowstofilter)
}
rowstofilter--
}
}
Return
}
ChooseProgram:
Gui, Submit, NoHide
GuiControl, , Edit6, %programchoise%
Return
Changecurrentprofileinmacro:
{
Gui, Submit, NoHide
Gui, Destroy
IniWrite, %ActiveTab%, %config%, DEFAULT, defaultprofile
Loop, Read, %config%
{
linevalue := A_LoopReadLine
;FileReadLine, linevalue, %config%, %A_Index%
;If Errorlevel
; break
StringLeft, linevaluefirst, linevalue, 1
Stringsplit, linevalue, linevalue, `=, %A_Space%
If (linevaluefirst = "[" or linevalue1 = "F93DHH98E08776AC" or linevalue = "" or linevalue1 = "defaultprofile")
continue
;MsgBox % %linevalue1%1
SetEnv, %linevalue1%,
IfNotEqual, %linevalue1%1,
SetEnv, %linevalue1%1,
IfNotEqual, %linevalue1%2,
SetEnv, %linevalue1%2,
IfNotEqual, %linevalue1%3,
SetEnv, %linevalue1%3,
IfNotEqual, %linevalue1%4,
SetEnv, %linevalue1%4,
}
GoSub, Restartini
;Return
Goto, Macrokeys
}
CLEARMACROKEYS:
{
;GuiControl, , Edit1,
GuiControl, , Edit3,
GuiControl, , Edit4,
ControlSetText, HiEdit1,
Return
}
Insertfolder:
{
FileSelectFolder, Foldertoinsert
Clipboard := Foldertoinsert
return
}
Insertfile:
{
FileSelectFile, Filetoinsert
Clipboard := Filetoinsert
return
}
Copyfromhelp:
{
Clipboard = [%helpfoundword%]
Return
}
Morehelponline:
{
Stringleft, onlinehelpfor, helpfoundword, InStr(helpfoundfrom, ",", CaseSensitive = true)
StringTrimRight, onlinehelpfor, onlinehelpfor, 1
StringReplace, onlinehelpfor, onlinehelpfor, %A_Space%,,A
StringReplace, onlinehelpfor, onlinehelpfor, [,,A
If onlinehelpfor =
{
Run %webbrowserfile% http://www.autohotkey.com/docs/commands.htm
}
else
{
Run %webbrowserfile% http://www.autohotkey.com/docs/commands/%onlinehelpfor%.htm
}
Return
}
ENCRYPTBUTTON:
{
Gui, Submit,NoHide
ControlGetText, helpvaluenew, HiEdit1
If helpvaluenew =
{
Return
}
If helpvaluenew is digit
{
MsgBox 4, DECRYPT, MACRO IS ALREADY ENCRYPTED.`n(YOU CANNOT ENCRYPT FIGURES - ADD TEXT TO YOUR MACRO)`n`nDO YOU WANT TO DECRYPT MACRO?
IfMsgBox YES
{
decryptmakrokeys = %helpvaluenew%
StringReplace, decryptmakrokeys, decryptmakrokeys, `n, %macroseparator%, A
Decryptmakro(decryptmakrokeys, config)
StringReplace, decryptmakrokeys, decryptmakrokeys, %macroseparator%, `n, A
ControlSetText, HiEdit1, %decryptmakrokeys%
}
Return
}
MsgBox, 4, ENCRYPT?, !!!REMEMBER LAST 3 CHARACTERS!!!`n`nENCRYPT?
IfMsgBox Yes
{
encryptmakrokeys = %helpvaluenew%
StringReplace, encryptmakrokeys, encryptmakrokeys, `n, %macroseparator%, A
Encryptmakro(encryptmakrokeys, config)
StringReplace, encryptmakrokeys, encryptmakrokeys, %macroseparator%, `n, A
ControlSetText, HiEdit1, %encryptmakrokeys%
}
Return
}
GetHelp:
{
GuiControlGet, helpsearch, , Edit6
;MsgBox, %helpsearch%
IfInString, helpsearch, (
StringLeft, helpsearch, helpsearch, InStr(helpsearch, "(")-2
helpsearch = %helpsearch%
StringTrimLeft, helpfoundfrom, autohotkeyhelp, InStr(autohotkeyhelp, "("helpsearch, CaseSensitive = true)
;MsgBox % helpfoundfrom
StringLeft, helpfoundword, helpfoundfrom, InStr(helpfoundfrom, ")", CaseSensitive = true)
StringTrimRight, helpfoundword, helpfoundword, 1
StringSplit, helpfoundword, helpfoundword, .
GuiControl, , Edit7, %helpfoundword1%
GuiControl, , Edit5, %helpfoundword2%
Return
}
Macrokeyschange:
{
Gui, Submit, NoHide
Gui, 1:ListView, List%ActiveTab%
If (A_GuiEvent = "Normal" or A_GuiEvent = "I")
{
If A_GuiEvent = I
{
IfNotInString, Errorlevel, S
Return
}
If A_EventInfo > 0
{
GuiControl, , Edit1,
GuiControl, , Edit3,
GuiControl, , Edit4,
ControlSetText, HiEdit1,
LV_GetText(helpvaluechangekey, A_EventInfo, 1)
selectedrow = %A_EventInfo%
selectedkey := helpvaluechangekey
If (%helpvaluechangekey%2 = "" || ActiveTab != DEFAULT)
{
LV_GetText(helpvaluenew, A_EventInfo, 3)
LV_GetText(helpvaluenamenew, A_EventInfo, 2)
LV_GetText(helpvalueparam, A_EventInfo, 4)
StringLen, helpvaluenewlength, helpvaluenew
If helpvaluenewlength = 8190
{
MsgBox, 4, MACRO TOO LONG, PROFILE: %ActiveTab% MUST BE DEFAULT PROFILE IF YOU WANT TO EDIT THIS MACRO`n (as this macro is longer than 8190 characters`n it must be existing in the environment, so profile must be changed)`nCONSIDER USING FILEREAD OR INIREAD TO READ INTO A VARIABLE`n`nAPPLY PROFILE: %ActiveTab%?
IfMsgBox Yes
{
GoSub, Changecurrentprofileinmacro
GoTo, Macrokeys
}
else
{
Return
}
}
}
else
{
helpvaluenamenew := %helpvaluechangekey%1
helpvaluenew := %helpvaluechangekey%2
helpvalueparam := %helpvaluechangekey%3
}
StringReplace, helpvaluenew, helpvaluenew, %macroseparator%, `n, A
;MsgBox % helpvaluechangekey
GuiControl, , Edit1, %helpvaluechangekey%
GuiControl, , Edit3, %helpvaluenamenew%
GuiControl, , Edit4, %helpvalueparam%
ControlSetText, HiEdit1, %helpvaluenew%
}
}
Return
}
ChangeMacrokeysfile:
{
IfWinNotExist, %SCRIPTNAME_VAR% MACRO MANAGEMENT
Return
Gui, Submit, NoHide
Gui, 1:ListView, List%ActiveTab%
Sleep, 100
GuiControlGet, helpvaluechangekey, , Edit1
If helpvaluechangekey =
{
Return
}
RegExMatch(helpvaluechangekey, "^\w+$", setupkeycheck)
If (helpvaluechangekey != setupkeycheck) ;If helpvaluechangekey is not alnum
{
MsgBox, 0, FORBIDDEN CHARACTER IN NAME, ONLY ALPHANUMERIC CHARACTERS ARE ALLOWED
Return
}
GuiControlGet, helpvaluenamenew, , Edit3
GuiControlGet, helpvalueparam, , Edit4
ControlGetText, helpvaluenew, HiEdit1
StringReplace, helpvaluenew, helpvaluenew, `r, , A
StringReplace, helpvaluenew, helpvaluenew, `n, %macroseparator%, A
;MsgBox, a %A_EventInfo% s %selectedrow%
helpnewvalue := helpvaluenamenew . programseparator . helpvaluenew . programseparator . helpvalueparam
;MsgBox % helpnewvalue
If helpnewvalue = %programseparator%%programseparator%
{
MsgBox, 4, DELETE MACRO, DO YOU WANT TO DELETE MACRO: %helpvaluechangekey% IN PROFILE %ActiveTab%?
IfMsgBox Yes
{
IniDelete, %config%, %ActiveTab%, %helpvaluechangekey%
SetEnv, %helpvaluechangekey%,
LV_Delete(selectedrow)
Gosub, RESTARTINI
}
Return
}
StringLeft, helpnewvaluename, helpnewvalue, InStr(helpnewvalue, programseparator)
MsgBox, 4, CHANGE MACRO, DO YOU WANT TO CHANGE MACRO?`n`nPROFILE: `t%ActiveTab%`nKEYWORD: `t%helpvaluechangekey%`nNAME: `t`t%helpnewvaluename%
IfMsgBox Yes
{
If helpvaluechangekey = setwebbrowser
{
webbrowserfile = %helpvaluenew%
}
If helpvaluechangekey = setmouse
{
StringSplit, setmousesettings, helpvaluenew, |
standardspeed = %setmousesettings1%
accellerationspeed = %setmousesettings2%
}
If helpvaluechangekey = setwinwatcher
{
winwatcherspeed = %helpvaluenew%
winwatcherspeed *= 1000
}
If helpvaluechangekey = setdebugger
{
debuggerison = %helpvaluenew%
debuggerslowdown = %helpvalueparam%
}
If linevalue1 = setautostart
{
StringSplit, changeautostart, linevalue, %programseparator%
autostarton = %changeautostart2%
}
checkifvarisautostart := %helpvaluechangekey%
checkifvarisautostart = %checkifvarisautostart%
;MsgBox % checkifvarisautostart
StringLower, checkifvarisautostart, checkifvarisautostart
IfInString, checkifvarisautostart, capslock
{
StringMid, favnumber, checkifvarisautostart, InStr(checkifvarisautostart, "capslock", CaseSensitive = false)+8, 1
;Msgbox % favnumber helpvaluechangekey
IfInString, hotkeykeys, %favnumber%
capslockvar%favnumber% =
}
IfInString, checkifvarisautostart, scrolllock
{
StringMid, favnumber, checkifvarisautostart, InStr(checkifvarisautostart, "scrolllock", CaseSensitive = false)+10, 1
;Msgbox % favnumber helpvaluechangekey
IfInString, hotkeykeys, %favnumber%
scrolllockvar%favnumber% =
}
IfInString, checkifvarisautostart, numlock
{
StringMid, favnumber, checkifvarisautostart, InStr(checkifvarisautostart, "numlock", CaseSensitive = false)+7, 1
;Msgbox % favnumber helpvaluechangekey
IfInString, hotkeykeys, %favnumber%
numlockvar%favnumber% =
}
IfInString, checkifvarisautostart, hotkey
{
StringMid, favnumber2, checkifvarisautostart, InStr(checkifvarisautostart, "hotkey", CaseSensitive = false)+6, 2
IfInString, hotkeys, %favnumber2%
{
hotkeyvar%favnumber2% =
StringLeft, hotkeya, favnumber2, 1
StringRight, hotkeyb, favnumber2, 1
hotkey, %hotkeya% & %hotkeyb%, Off
StringReplace, hotkeyslist, hotkeyslist, %favnumber2%.,
StringSplit, hotkeyslist, hotkeyslist, .
hotkeyslist0 -= 1
}
}
;MsgBox % helpnewvalue config helpvaluechangekey
FileRead, filecontent, %config%
IfInString, filecontent, %helpvaluechangekey%=
{
newkey =
}
else
{
newkey = 1
}
IniWrite, %helpnewvalue%, %config%, %ActiveTab%, %helpvaluechangekey%
If (helpvaluechangekey = selectedkey)
{
LV_Modify(selectedrow, "", helpvaluechangekey, helpvaluenamenew, helpvaluenew, helpvalueparam)
}
else if helpvaluechangekey =
{
Return
}
else
{
LV_Add("", helpvaluechangekey, helpvaluenamenew, helpvaluenew, helpvalueparam)
}
Sleep, 50
LV_GetText(helpvaluenewcheck, selectedrow, 3)
If ActiveTab = %DEFAULT%
{
}
else
{
IfNotEqual, helpvaluenewcheck, %helpvaluenew%
{
If newkey =
{
Gui, 1:Destroy
GoTo, Macrokeys
}
}
Return
}
IniRead, %helpvaluechangekey%, %config%, %ActiveTab%, %helpvaluechangekey%, %helpvaluechangekey%
;Sleep, 50
Stringsplit, %helpvaluechangekey%, %helpvaluechangekey%, %programseparator%, %A_Space%%A_Tab%
checkifvarisautostart := %helpvaluechangekey%
checkifvarisautostart = %checkifvarisautostart%
;MsgBox % checkifvarisautostart
StringLower, checkifvarisautostart, checkifvarisautostart
IfInString, checkifvarisautostart, capslock
{
StringMid, favnumber, checkifvarisautostart, InStr(checkifvarisautostart, "capslock", CaseSensitive = false)+8, 1
;Msgbox % favnumber helpvaluechangekey
IfInString, hotkeykeys, %favnumber%
capslockvar%favnumber% = %helpvaluechangekey%
}
IfInString, checkifvarisautostart, scrolllock
{
StringMid, favnumber, checkifvarisautostart, InStr(checkifvarisautostart, "scrolllock", CaseSensitive = false)+10, 1
;Msgbox % favnumber helpvaluechangekey
IfInString, hotkeykeys, %favnumber%
scrolllockvar%favnumber% = %helpvaluechangekey%
}
IfInString, checkifvarisautostart, numlock
{
StringMid, favnumber, checkifvarisautostart, InStr(checkifvarisautostart, "numlock", CaseSensitive = false)+7, 1
;Msgbox % favnumber helpvaluechangekey
IfInString, hotkeykeys, %favnumber%
numlockvar%favnumber% = %helpvaluechangekey%
}
IfInString, checkifvarisautostart, hotkey
{
StringMid, favnumber2, checkifvarisautostart, InStr(checkifvarisautostart, "hotkey", CaseSensitive = false)+6, 2
IfInString, hotkeys, %favnumber2%
hotkeyvar%favnumber2% = %helpvaluechangekey%
StringLeft, hotkeya, favnumber2, 1
StringRight, hotkeyb, favnumber2, 1
If (InStr(hotkeys, favnumber2 ".") or InStr(hotkeys, favnumber2 "."))
{
Hotkey, %hotkeya% & %hotkeyb%, RunHotkey, Off
hotkeyslist = %hotkeyslist%%favnumber2%.
StringSplit, hotkeyslist, hotkeyslist, .
hotkeyslist0 -= 1
}
}
}
else
{
Return
}
IfNotEqual, helpvaluenewcheck, %helpvaluenew%
{
Gui, 1:Destroy
GoTo, Macrokeys
}
Return
}
DeleteMacro:
{
Gui, Submit, NoHide
MsgBox, 4, DELETE MACRO, DO YOU WANT TO DELETE MACRO: %helpvaluechangekey% IN PROFILE %ActiveTab%?
IfMsgBox Yes
{
IniDelete, %config%, %ActiveTab%, %helpvaluechangekey%
SetEnv, %helpvaluechangekey%,
LV_Delete(selectedrow)
Gosub, RESTARTINI
}
Return
}
displayconfigfile:
Run, %config%
Return
Exporttohtml:
{
exporthotkeyed =
MsgBox, 4, EXPORT ALL?, PRESS YES IF YOU WANT TO EXPORT ALL MACROS`nPRESS NO IF YOU WANT TE EXPORT ONLY HOTKEYED MACROS`nFOR EXAMPLE CAPSLOCKa
IfMsgBox No
exporthotkeyed = 1
FileDelete, %SCRIPTNAME_VAR%_html_export.html
htmlexport = `n
`n%SCRIPTNAME_VAR%_html_export`n`n`n
Loop, Read, %config%
{
linevalue := A_LoopReadLine
If linevalue =
continue
StringLeft, linevaluefirst, linevalue, 1
Stringsplit, linevalue, linevalue, `=, %A_Space%
If (linevaluefirst = "[")
{
StringTrimLeft, linevalue, linevalue, 1
StringTrimRight, linevalue, linevalue, 1
htmlexport .= "`nPROFILE: " . linevalue . "
`n`n"
exportprofile = %linevalue%
continue
}
If (linevaluefirst = "[" or linevalue1 = "F93DHH98E08776AC" or linevalue1 = "" or linevalue1 = "defaultprofile" or linevalue1 = "setautostart" or linevalue1 = "setdebugger" or linevalue1 = "setwinwatcher" or linevalue1 = "setmouse" or linevalue1 = "setwebbrowser")
continue
exportkey := linevalue1
Loop 4
{
key%A_Index% =
}
IniRead, %exportkey%, %config%, %exportprofile%, %exportkey%, %exportkey%
;VarSetCapacity(%key%2, 5120)
Stringsplit, %exportkey%, %exportkey%, %programseparator%, %A_Space%%A_Tab%
autostartvar := %exportkey%
exportname := %exportkey%1
If exporthotkeyed = 1
{
If exportname not contains CAPSLOCK,SCROLLLOCK,NUMLOCK,HOTKEY
continue
}
htmlexport .= "`n| " . exportkey . " | `n" . exportname . " | `n" . exportprofile . " | `n
`n"
}
FileAppend, %htmlexport%, %SCRIPTNAME_VAR%_html_export.html
Run, %SCRIPTNAME_VAR%_html_export.html
Return
}
DISPinWEB_AUS:
{
Gui, Submit, NoHide
Gui, 1:ListView, List%ActiveTab%
ControlGetText, exportmacro, HiEdit1
FileDelete, %SCRIPTNAME_VAR%_html_export.html
htmlexport = `n`n%SCRIPTNAME_VAR%_html_export`n`n`n
Loop, Parse, exportmacro, `n
{
If A_Index = 1
htmlexport .= "`n"
If A_LoopField =
continue
htmlexport .= "`n| " . A_LoopField . " | `n
`n"
}
htmlexport .= "
`n"
FileAppend, %htmlexport%, %SCRIPTNAME_VAR%_html_export.html
Run, %SCRIPTNAME_VAR%_html_export.html
Return
}
1Include_hiedit:
;HiEdit
EDITOR:
{
Gui, 9:+LastFound +Resize
hwnd := WinExist()
hEdit := HE_Add(hwnd,0,0,800,600, "HSCROLL VSCROLL TABBED HILIGHT")
fStyle := "s8" , fFace := "Courier New"
HE_SetFont( hEdit, fStyle "," fFace)
SetColors(hEdit)
HE_SetTabWidth(hEdit, 4)
HE_LineNumbersBar(hEdit, "automaxsize"), lineNumbers := true
HE_AutoIndent(hedit, true), autoIndent := true
HE_SetKeywordFile( A_ScriptDir "\Keywords.hes")
Gui, 9:Show, w800 h600, AHK EDITOR
GoSub, Open_File
return
}
9GuiClose:
{
Gui, 9:Destroy
EmptyMem()
return
}
HiEdit:
{
Hotkey, CAPSLOCK & F5, Off
ControlGetText, texttoedit, HiEdit1, %SCRIPTNAME_VAR% MACRO MANAGEMENT - TO SORT A COLUMN CLICK HEADLINE
WinHide, %SCRIPTNAME_VAR% MACRO MANAGEMENT - TO SORT A COLUMN CLICK HEADLINE AHK_class AutoHotkeyGUI
Gui, 8:+LastFound +Resize
hwnd := WinExist()
;CreateMenu()
hEdit := HE_Add(hwnd,0,0,800,600, "HSCROLL VSCROLL TABBED HILIGHT")
fStyle := "s8" , fFace := "Courier New"
HE_SetFont( hEdit, fStyle "," fFace)
SetColors(hEdit)
;msgbox % HE_GetColors(hEdit)
HE_SetTabWidth(hEdit, 4)
HE_LineNumbersBar(hEdit, "automaxsize"), lineNumbers := true
HE_AutoIndent(hedit, true), autoIndent := true
HE_SetKeywordFile( A_ScriptDir "\Keywords.hes")
;IfNotExist, editor.ahk
;FileAppend, , editor.ahk
;HE_OpenFile( hEdit, "editor.ahk" )
Gui, 8:Show, w800 h600, HiEdit
ControlSetText, HiEdit1, %texttoedit%, HiEdit AHK_class AutoHotkeyGUI
Send ^{HOME}
return
}
8GuiEscape:
8GuiClose:
{
ControlGetText, texttoedit, HiEdit1, HiEdit AHK_class AutoHotkeyGUI
Gui, 8:Destroy
WinShow, %SCRIPTNAME_VAR% MACRO MANAGEMENT - TO SORT A COLUMN CLICK HEADLINE AHK_class AutoHotkeyGUI
WinActivate, %SCRIPTNAME_VAR% MACRO MANAGEMENT - TO SORT A COLUMN CLICK HEADLINE AHK_class AutoHotkeyGUI
ControlSetText, HiEdit1, %texttoedit%, %SCRIPTNAME_VAR% MACRO MANAGEMENT - TO SORT A COLUMN CLICK HEADLINE
Hotkey, CAPSLOCK & F5, On
EmptyMem()
return
}
Open_File:
{
FileSelectFile, fn
if Errorlevel
return
HE_OpenFile(hEdit, fn)
Return
}
Close_file:
HE_CloseFile(hEdit, -1)
Return
New_File:
{
HE_NewFile(hEdit)
Return
}
Save_File:
{
FileSelectFile, fn, S 16
if (Errorlevel)
return
HE_SaveFile(hEdit, fn, -1)
return
}
CmnDlg_Find( hGui, lbl, flags="d", deff="") {
static FINDMSGSTRING = "commdlg_FindReplace"
static FR_DOWN=1, FR_MATCHCASE=4, FR_WHOLEWORD=2, FR_HIDEMATCHCASE=0x8000, FR_NOWHOLEWORD=0x10000, FR_HIDEUPDOWN=0x4000
static buf, FR, len := 256
if !Islabel(lbl)
return "Invalid Label"
f := 0
f |= InStr(flags, "d") ? FR_DOWN : 0
f |= InStr(flags, "c") ? FR_MATCHCASE : 0
f |= InStr(flags, "w") ? FR_WHOLEWORD : 0
f |= InStr(flags, "-d") ? FR_HIDEUPDOWN : 0
f |= InStr(flags, "-w") ? FR_HIDEWHOLEWORD :0
f |= InStr(flags, "-c") ? FR_HIDEMATCHCASE :0
if FR =
VarSetCapacity(FR, 40, 0), VarSetCapacity(buf, len)
if deff !=
buf := deff
NumPut( 40, FR, 0) ;size
NumPut( hGui, FR, 4) ;hwndOwner
NumPut( f, FR, 12) ;Flags
NumPut( &buf, FR, 16) ;lpstrFindWhat
NumPut( len, FR, 24) ;wFindWhatLen
CmnDlg_callback(lbl,"","","")
OnMessage( DllCall("RegisterWindowMessage", "str", FINDMSGSTRING), "CmnDlg_callback" )
return DllCall("comdlg32\FindTextA", "str", FR)
}
CmnDlg_callback(wparam, lparam, msg, hwnd) {
global CmnDlg_Event, CmnDlg_Flags, CmnDlg_FindWhat, CmnDlg_ReplaceWith
static FR_DIALOGTERM = 0x40, FR_DOWN=1, FR_MATCHCASE=4, FR_WHOLEWORD=2, FR_HIDEMATCHCASE=0x8000, FR_HIDEWHOLEWORD=0x10000, FR_HIDEUPDOWN=0x4000, FR_REPLACE=0x10, FR_REPLACEALL=0x20, FR_FINDNEXT=8
static fun
if (hwnd = "")
return fun := wparam
flags := NumGet(lparam+0, 12), CmnDlg_Flags := ""
if (flags & FR_DIALOGTERM) {
CmnDlg_Event := "close"
gosub %fun%
return
}
CmnDlg_Flags .= (Flags & FR_MATCHCASE) && !(Flags & FR_HIDEMATCHCASE)? "c" :
CmnDlg_Flags .= (Flags & FR_WHOLEWORD) && !(Flags & FR_HIDEWHOLEWORD) ? "w" :
CmnDlg_FindWhat := DllCall("MulDiv", "Int", NumGet(lparam+0, 16), "Int",1, "Int",1, "str")
if (flags & FR_FINDNEXT) {
CmnDlg_Event := "find"
CmnDlg_Flags .= (Flags & FR_DOWN) && !(Flags & FR_HIDEUPDOWN) ? "d" :
gosub %fun%
return
}
if (flags & FR_REPLACE) or (flags & FR_REPLACEALL) {
CmnDlg_Event := (flags & FR_REPLACEALL) ? "replace_all" : "replace"
CmnDlg_ReplaceWith := DllCall("MulDiv", "Int", NumGet(lparam+0, 20), "Int",1, "Int",1, "str")
gosub %fun%
return
}
}
SetColors(hEdit) {
colors=
(
Text = 0
Back = 0xFFFFFF
SelText = 0xFFFFFF
ActSelBack = 0xc56a31
InSelBack = 0xAAAAAA
LineNumber = 0x0
SelBarBack = 0xFFCCCC
NonPrintableBack = 0xFFFFFF
Number = 0x0000FF
)
HE_SetColors(hEdit, colors )
}
OnHiEdit:
OutputDebug % HE_EVENT " | " HE_INFO
return
GoToLine() {
global hEdit
cnt := HE_GetLineCount(hEdit)
InputBox, line, Go To Line, Enter line (1 - %cnt%), , 200, 120
if ErrorLevel
return
if line > cnt
line := cnt
line_idx := HE_LineIndex(hEdit, line-1)
HE_SetSel( hEdit, line_idx, line_idx)
HE_ScrollCaret(hEdit )
}
FindNext( hEdit ){
global CmnDlg_FindWhat
if (CmnDlg_FindWhat = "")
return
gosub OnFind
}
OnFind:
{
StringReplace, CmnDlg_Flags, CmnDlg_Flags, d,
StringReplace, CmnDlg_Flags, CmnDlg_Flags, c, MATCHCASE%A_SPACE%
StringReplace, CmnDlg_Flags, CmnDlg_Flags, w, WHOLEWORD%A_SPACE%
res := HE_FindText(hEdit, CmnDlg_FindWhat, HE_GetSel(hEdit)+ (res!="")*1, -1, CmnDlg_Flags)
HE_SetSel(hEdit, res, res + StrLen(CmnDlg_FindWhat))
HE_ScrollCaret(hEdit)
return
}
Anchor(c, a = "", r = false) { ; v3.6 - Titan
static d
GuiControlGet, p, Pos, %c%
If ex := ErrorLevel {
Gui, %A_Gui%:+LastFound
ControlGetPos, px, py, pw, ph, %c%
}
If !(A_Gui or px) and a
Return
i = x.w.y.h./.7.%A_GuiWidth%.%A_GuiHeight%.`n%A_Gui%:%c%=
StringSplit, i, i, .
d := a ? d . ((n := !InStr(d, i9)) ? i9 : "")
: RegExReplace(d, "\n\d+:" . c . "=[\-\.\d\/]+")
Loop, 4
x := A_Index, j := i%x%, i6 += x = 3
, k := !RegExMatch(a, j . "([\d.]+)", v) + (v1 ? v1 : 0)
, e := p%j% - i%i6% * k, d .= n ? e . i5 : ""
, RegExMatch(d, "\Q" . i9 . "\E(?:([\d.\-]+)/){" . x . "}", v)
, l .= p%j% := InStr(a, j) ? (ex ? "" : j) . v1 + i%i6% * k : ""
If r
rx = Draw
If ex
ControlMove, %c%, px, py, pw, ph
Else GuiControl, Move%rx%, %c%, %l%
}
9GuiSize:
8GuiSize:
Anchor("HiEdit1", "wh")
return
HE_Add(hwnd, x, y, w, h, style="HSCROLL VSCROLL", dllPath="HiEdit.dll"){
global HE_MODULEID
static WS_CLIPCHILDREN=0x2000000, WS_VISIBLE=0x10000000, WS_CHILD=0x40000000
static HSCROLL=0x8 ,VSCROLL=0x10, TABBED=4, HILIGHT=0x20, TABBEDBTOP=0x1, TABBEDHRZSB=0x2 ,TABBEDBOTTOM=0x4, SINGLELINE=0x40, FILECHANGEALERT=0x80
hStyle := 0
loop, parse, style, %A_Tab%%A_Space%
{
IfEqual, A_LoopField, , continue
hStyle |= %A_LOOPFIELD%
}
if !init {
HE_MODULEID := 1020
DllCall("LoadLibrary", "str", dllPath)
init := true
}
hCtrl := DllCall("CreateWindowEx"
, "Uint", 0x200 ; WS_EX_CLIENTEDGE
, "str", "HiEdit" ; ClassName
, "str", szAppName ; WindowName
, "Uint", WS_CLIPCHILDREN | WS_CHILD | WS_VISIBLE | hStyle
, "int", x ; Left
, "int", y ; Top
, "int", w ; Width
, "int", h ; Height
, "Uint", hwnd ; hWndParent
, "Uint", HE_MODULEID ; hMenu
, "Uint", 0 ; hInstance
, "Uint", 0)
HE_SetTabsImageList(hCtrl)
return hCtrl
}
HE_AutoIndent(hEdit, pState ) {
static HEM_AUTOINDENT := 2042 ;wParam=0, lParam=fAutoIndent:TRUE/FALSE
SendMessage, HEM_AUTOINDENT, 0, pState,, ahk_id %hEdit%
return errorlevel
}
HE_CloseFile(hEdit, idx=-1){
static HEM_CLOSEFILE := 2026 ;wParam=0,
SendMessage, HEM_CLOSEFILE, 0, idx,, ahk_id %hEdit%
return errorlevel
}
HE_ConvertCase(hEdit, case="toggle") {
static HEM_CONVERTCASE=2046 ;EQU WM_USER+1022 ;wParam=CC_UPPERCASE/CC_LOWERCASE/CC_TOGGLECASE,lParam = -1 :Returns TRUE if successful/FALSE otherwise
static cc_upper=0, cc_lower=1, cc_toggle=2, cc_capitalize=3
SendMessage, HEM_CONVERTCASE, cc_%case%, -1,, ahk_id %hEdit%
Return ErrorLevel
}
HE_FindText(hEdit, sText, cpMin=0, cpMax=-1, flags="") {
static EM_FINDTEXT=1080,WHOLEWORD=2,MATCHCASE=4 ;WM_USER + 56
hFlags := 0
loop, parse, flags, %A_Tab%%A_Space%,%A_Space%%A_Tab%
if (A_LoopField != "")
hFlags |= %A_LOOPFIELD%
VarSetCapacity(FT, 12)
NumPut(cpMin, FT, 0)
NumPut(cpMax, FT, 4)
NumPut(&sText, FT, 8)
SendMessage, EM_FINDTEXT, hFlags, &FT,, ahk_id %hEdit%
Return ErrorLevel
}
HE_GetColors(hEdit){
static HEM_GETCOLORS := 2038
static names := "Text,Back,SelText,ActSelBack,InSelBack,LineNumber,SelBarBack,NonPrintableBack,Number"
VarSetCapacity(COLORS, 48, 0)
SendMessage,HEM_GETCOLORS,0,&COLORS,,ahk_id %hEdit%
ifEqual,ErrorLevel,FAIL, return FAIL
fmt := A_FormatInteger
SetFormat, integer, hex
Loop, Parse, names, `,
res .= A_LoopField "=" NumGet(COLORS, 4*(A_Index-1)) "`n"
SetFormat, integer, %fmt%
return SubStr(res, 1, -1)
}
HE_GetCurrentFile(hEdit){
static HEM_GETCURRENTFILE := 2032 ;wParam=0, lParam = 0
SendMessage, HEM_GETCURRENTFILE, 0, 0,, ahk_id %hEdit%
return errorlevel
}
HE_GetFileCount(hEdit){
static HEM_GETFILECOUNT := 2029 ;wParam=0, lParam=0
SendMessage, HEM_GETFILECOUNT, 0, 0,, ahk_id %hEdit%
return errorlevel
}
HE_GetFileName(hEdit, idx=-1){
static HEM_GETFILENAME := 2030 ;wParam = lpszFileName, lParam = -1 for current file or dwFileIndex :Returns TRUE if successful/FALSE otherwise
VarSetCapacity(fileName, 512)
SendMessage, HEM_GETFILENAME, &fileName, idx,, ahk_id %hEdit%
return fileName
}
HE_GetFirstVisibleLine(hEdit){
static EM_GETFIRSTVISIBLELINE=206
SendMessage, EM_GETFIRSTVISIBLELINE, 0, 0,, ahk_id %hEdit%
Return ErrorLevel
}
HE_GetLine(hEdit, idx=-1){
static EM_GETLINE=196 ;The return value is the number of characters copied. The return value is zero if the line number specified by the line parameter is greater than the number of lines in the HiEdit control
if (idx = -1)
idx := HE_LineFromChar(hEdit, HE_LineIndex(hEdit))
len := HE_LineLength(hEdit, idx)
VarSetCapacity(txt, len), NumPut(len, txt)
SendMessage, EM_GETLINE, idx, &txt,, ahk_id %hEdit%
if ErrorLevel = 0
return
VarSetCapacity(txt, -1)
Return SubStr(txt, 1, ErrorLevel)
}
HE_GetLineCount(hEdit){
static EM_GETLINECOUNT=186
SendMessage, EM_GETLINECOUNT, 0, 0,, ahk_id %hEdit%
Return ErrorLevel
}
HE_GetRedoData(hEdit, level){
static HEM_GETREDODATA=2040 ;wParam=Undo level (1 based), lParam=lpUNDODATA :Returns type of undo (UNDONAMEID)
static UID_0="UNKNOWN",UID_1="TYPING",UID_2="DELETE",UID_3="DRAGDROP",UID_4="CUT",UID_5="PASTE",UID_6="SETTEXT",UID_7="REPLACESEL",UID_8="CLEAR",UID_9="BACKSPACE",UID_10="INDENT",UID_11="OUTDENT",UID_12="CODEPAGE",UID_13="CASE"
static size = 128
VarSetCapacity( RD, 8, 0), VarSetCapacity( buf, size ), NumPut(&buf, RD), NumPut(size, RD, 4)
SendMessage, HEM_GETREDODATA, level, &RD,, ahk_id %hEdit%
VarSetCapacity(buf, -1)
Return % UID_%ErrorLevel%
}
HE_GetSel(hEdit, ByRef start_pos="@",ByRef end_pos="@"){
static EM_GETSEL=176
VarSetCapacity(s, 4), VarSetCapacity(e, 4)
SendMessage, EM_GETSEL, &s, &e,, ahk_id %hEdit%
s := NumGet(s), e := NumGet(e)
if (start_pos != "@")
start_pos := s
if (end_pos != "@")
end_pos := e
Return s
}
HE_GetSelText(hEdit){
static EM_GETSELTEXT = 1086 ;Returns: the number of characters copied, not including the terminating null character.
HE_GetSel(hEdit, s, e), VarSetCapacity(buf, e-s+2)
SendMessage, EM_GETSELTEXT, 0, &buf,, ahk_id %hEdit%
VarSetCapacity(buf, -1)
Return buf
}
HE_GetTextLenght(hEdit) {
static WM_GETTEXTLENGTH=14
SendMessage, WM_GETTEXTLENGTH, 0, 0,, ahk_id %hEdit%
Return ErrorLevel
}
HE_GetTextRange(hEdit, min=0, max=-1){
static EM_GETTEXTRANGE=1099 ;Returns: The number of characters copied, not including the terminating null character.
if (max=-1)
max := HE_GetTextLenght(hEdit)
VarSetCapacity(buf, max-min+2)
VarSetCapacity(RNG, 12), NumPut(min, RNG), NumPut(max, RNG, 4), NumPut(&buf, RNG, 8)
SendMessage, EM_GETTEXTRANGE, 0, &RNG,, ahk_id %hEdit%
VarSetCapacity(buf, -1)
Return buf
}
HE_GetUndoData(hEdit, level){
static HEM_GETUNDODATA=2039 ;wParam=Undo level (1 based), lParam=lpUNDODATA :Returns type of undo (UNDONAMEID)
static UID_0="UNKNOWN",UID_1="TYPING",UID_2="DELETE",UID_3="DRAGDROP",UID_4="CUT",UID_5="PASTE",UID_6="SETTEXT",UID_7="REPLACESEL",UID_8="CLEAR",UID_9="BACKSPACE",UID_10="INDENT",UID_11="OUTDENT",UID_12="CODEPAGE",UID_13="CASE"
static size = 128
VarSetCapacity( UD, 8, 0), VarSetCapacity( buf, size ), NumPut(&buf, UD), NumPut(size, UD, 4)
SendMessage, HEM_GETUNDODATA, level, &UD,, ahk_id %hEdit%
VarSetCapacity(buf, -1)
Return % UID_%ErrorLevel%
}
HE_LineFromChar(hEdit, ich) {
static EM_LINEFROMCHAR=201
SendMessage, EM_LINEFROMCHAR, ich, 0,, ahk_id %hEdit%
Return ErrorLevel
}
HE_LineIndex(hedit, idx=-1) {
static EM_LINEINDEX=187
SendMessage, EM_LINEINDEX, idx, 0,, ahk_id %hEdit%
Return ErrorLevel
}
HE_LineLength(hEdit, idx=-1) {
static EM_LINELENGTH=193
SendMessage, EM_LINELENGTH, He_LineIndex(hEdit, idx) , 0,, ahk_id %hEdit%
Return ErrorLevel
}
HE_LineNumbersBar( hEdit, state="show", linw=40, selw=10 ) {
static HEM_LINENUMBERSBAR := 2036 ;EQU WM_USER+1012 ;wParam=LNB_HIDE/LNB_SHOW/LNB_AUTOSIZE, lParam=HIWORD:Selection bar width , LOWWORD:Line numbers width
static LNB_HIDE=0, LNB_SHOW=1, LNB_AUTOMAXSIZE=2, LNB_AUTOSIZE=4
if state is not Integer
state := LNB_%state%
SendMessage, HEM_LINENUMBERSBAR,state,selw<<16 | linw,,ahk_id %hEdit%
return errorlevel
}
HE_NewFile(hEdit){
static HEM_NEWFILE := 2024 ;wParam=0, lParam=0
SendMessage, HEM_NEWFILE, 0, 0,, ahk_id %hEdit%
return errorlevel
}
HE_OpenFile(hEdit, pFileName, flag=0){
static HEM_OPENFILE := 2025 ;wParam=0, lParam=lpszFileName Returns TRUE if successful/FALSE otherwise
SendMessage, HEM_OPENFILE, flag, &pFileName,, ahk_id %hEdit%
return errorlevel
}
HE_Redo(hEdit) {
static EM_REDO := 1108
SendMessage, EM_REDO,,,, ahk_id %hEdit%
return ErrorLevel
}
HE_ReloadFile(hEdit, idx=-1) {
static HEM_RELOADFILE=2027 ;EQU WM_USER+1003 ;wParam=0, lParam = -1 for current file
SendMessage, HEM_RELOADFILE, 0, idx,, ahk_id %hEdit%
Return ErrorLevel
}
HE_ReplaceSel(hEdit, text=""){
static EM_REPLACESEL=194
SendMessage, EM_REPLACESEL, 0, &text,, ahk_id %hEdit%
Return ErrorLevel
}
HE_SaveFile(hEdit, pFileName, idx=-1){
static HEM_SAVEFILE := 2028 ;wParam=lpszFileName, lParam = -1 for current file or dwFileIndex :Returns
SendMessage, HEM_SAVEFILE, &pFileName, idx,, ahk_id %hEdit%
return errorlevel
}
HE_ScrollCaret(hEdit){
static EM_SCROLLCARET=183
SendMessage, EM_SCROLLCARET, 0, 0,, ahk_id %hEdit%
Return ErrorLevel
}
HE_SetColors(hEdit, colors, fRedraw=true){
static HEM_SETCOLORS := 2037
static names := "Text,Back,SelText,ActSelBack,InSelBack,LineNumber,SelBarBack,NonPrintableBack,Operator,Number,Comment,String"
at := A_AutoTrim
AutoTrim, on
Loop, Parse, colors, `n, `n
{
name := SubStr(A_LoopField, 1, i:=InStr(A_LoopField, "=")-1), val := SubStr(A_LoopField, i+2)
name = %name%
val = %val%
if name not in %names%
return "Invalid color name: '" name "'"
if val is not Integer
return "Invalid color value: '" val "'"
n%name% := val
}
AutoTrim, %at%
VarSetCapacity(COLORS, 36, 0)
NumPut(nText , COLORS, 0) ;NormalTextColor
NumPut(nBack , COLORS, 4) ;EditorBkColor
NumPut(nSelText , COLORS, 8) ;SelectionForeColor
NumPut(nActSelBack , COLORS, 12) ;ActiveSelectionBkColor
NumPut(nInSelBack , COLORS, 16) ;InactiveSelectionBkColor
NumPut(nLineNumber , COLORS, 20) ;LineNumberColor
NumPut(nSelBarBack , COLORS, 24) ;SelBarBkColor
NumPut(nNonPrintableBack, COLORS, 28) ;NonPrintableBackColor
NumPut(nNumber , COLORS, 32) ;NumberColor
SendMessage,HEM_SETCOLORS, &COLORS, fRedraw,,ahk_id %hEdit%
return ErrorLevel
}
HE_SetCurrentFile(hEdit, idx){
static HEM_SETCURRENTFILE := 2033 ;wParam=0, lParam = dwFileIndex
SendMessage, HEM_SETCURRENTFILE, 0, idx,, ahk_id %hEdit%
return errorlevel
}
HE_SetEvents(hEdit, func, e="selchange"){
local old, hmask
static ENM_KEYEVENTS = 0x10000, ENM_MOUSEEVENTS = 0x20000, ENM_SCROLLEVENTS = 0x8, ENM_SELCHANGEEVENTS = 0x80000, ENM_CONTEXTMENUEVENTS=0x20
static EM_SETEVENTMASK = 1093, events="key,mouse,scroll,selchange,contextmenu"
if !IsLabel(func)
return "Err: label doesn't exist`n`n" func
hmask := 0
loop, parse, e, %A_Tab%%A_Space%
{
IfEqual, A_LoopField, , continue
if A_LoopField not in %events%
return "Err: unknown event - '" A_LoopField "'"
hmask |= ENM_%A_LOOPFIELD%EVENTS
}
SendMessage, EM_SETEVENTMASK, 0, hMask,, ahk_id %hEdit%
old := OnMessage(0x4E, "HE_onNotify")
if (old != "HE_onNotify")
HE_oldNotify := RegisterCallback(old)
hEdit += 0
HE_%hEdit%_func := func
return "OK"
}
HE_onNotify(wparam, lparam, msg, hwnd) {
local code, hw, idFrom, m, l, w
static EN_TABMCLICK=0x1000, EN_FILECHANGE=0x1001, EN_SELCHANGE = 0x702, EN_MSGFILTER = 0x700
idFrom := NumGet(lparam+4) ; and its ID
if (idFrom != HE_MODULEID)
return HE_oldNotify ? DllCall(HE_oldNotify, "uint", wparam, "uint", lparam, "uint", msg, "uint", hwnd) : ""
hw := NumGet(lparam+0) ;control sending the message - this HiEdit
code := NumGet(lparam+8) ;- 4294967296
HE_HWND := hw
HE_EVENT := HE_INFO := ""
if (code = EN_TABMCLICK) {
HE_EVENT := "tabmclick"
GoSub % HE_%hw%_func
return
}
if (code = EN_FILECHANGE) {
HE_EVENT := "filechange", HE_INFO := NumGet(lparam+12)
GoSub % HE_%hw%_func
return
}
if (code = EN_SELCHANGE) {
HE_EVENT := "selchange", m := NumGet(lparam+20, 0, "Short")=16, l := NumGet(lparam+30) && !m
HE_INFO := "S" NumGet(lparam+12) " E" NumGet(lparam+16) " L" NumGet(lparam+22) (m ? " t" : "") (l ? " *" : "")
GoSub % HE_%hw%_func
return
}
if (code=EN_MSGFILTER) {
m := NumGet(lparam+12), w := NumGet(lparam+16), l := NumGet(lparam+20)
if m between 0x201 AND 0x209 ;mouse messges, don't report WM_MOUSEMOVE=0x200
HE_EVENT := "mouse", HE_INFO := "x" l & 0xFFFF " y" (l >> 16) " v" w
else if m = 0x102 ;WM_CHAR
HE_EVENT := "key", HE_INFO := chr(w)
else if m = 0x7B ; WM_CONTEXTMENU
HE_EVENT := "contextmenu"
else if m = 0x20A ;WM_MOUSEWHEEL
HE_EVENT := "scroll"
if HE_EVENT
GoSub % HE_%hw%_func
return
}
}
HE_SetFont(hEdit, pFont="") {
local height, weight, italic, underline, strikeout , nCharSet
local hFont, LogPixels
static WM_SETFONT := 0x30
italic := InStr(pFont, "italic") ? 1 : 0
underline := InStr(pFont, "underline") ? 1 : 0
strikeout := InStr(pFont, "strikeout") ? 1 : 0
weight := InStr(pFont, "bold") ? 700 : 400
RegExMatch(pFont, "(?<=[S|s])(\d{1,2})(?=[ ,])", height)
if (height = "")
height := 10
RegRead, LogPixels, HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI, LogPixels
height := -DllCall("MulDiv", "int", Height, "int", LogPixels, "int", 72)
RegExMatch(pFont, "(?<=,).+", fontFace)
if (fontFace != "")
fontFace := RegExReplace( fontFace, "(^\s*)|(\s*$)") ;trim
else fontFace := "MS Sans Serif"
hFont := DllCall("CreateFont", "int", height, "int", 0, "int", 0, "int", 0
,"int", weight, "Uint", italic, "Uint", underline
,"uint", strikeOut, "Uint", nCharSet, "Uint", 0, "Uint", 0, "Uint", 0, "Uint", 0, "str", fontFace)
SendMessage,WM_SETFONT,hFont,TRUE,,ahk_id %hEdit%
return ErrorLevel
}
HE_SetKeywordFile( pFile ){
return DllCall("HiEdit.dll\SetKeywordFile", "str", pFile)
}
HE_SetSel(hEdit, nStart=0, nEnd=-1) {
static EM_SETSEL=0x0B1
SendMessage, EM_SETSEL, nStart, nEnd,, ahk_id %hEdit%
Return ErrorLevel
}
HE_SetTabWidth(hEdit, pWidth, pRedraw=true){
static HEM_SETTABWIDTH := 2041 ;wParam=nChars, lParam=fRedraw:TRUE/FALSE
SendMessage, HEM_SETTABWIDTH, pWidth, pRedraw,, ahk_id %hEdit%
return errorlevel
}
HE_SetTabsImageList(hEdit, pImg="") {
static LR_LOADFROMFILE := 0x10
, LR_CREATEDIBSECTION := 0x2000
, HEM_SETTABSIMAGELIST := 2043
, toolbarBMP := "424de60000000000000076000000280000001c00000007000000010004000000000070000000000000000000000010000000000000000000000000008000008000000080800080000000800080008080000080808000c0c0c0000000ff0000ff000000ffff00ff000000ff00ff00ffff0000ffffff00fddddfdddddfdddfdddddfddddfd0000fdddffddddffdddffddddffdddfd0000fddfffdddfffdddfffdddfffddfd0000fdffffddffffdddffffddffffdfd0000fddfffdddfffdddfffdddfffddfd0000fdddffddddffdddffddddffdddfd0000fddddfdddddfdddfdddddfddddfd0000"
if (pImg = "") {
deleteFile := true
pImg := "___he_bar.bmp"
WriteFile(pImg, toolbarBMP)
}
hImlTabs := DllCall("comctl32.dll\ImageList_LoadImage", "uint", 0
, "str", pImg
, "int", 7, "int", 4
, "uint", 0x0FF00FF
, "uint", IMAGE_BITMAP
, "uint", LR_CREATEDIBSECTION | LR_LOADFROMFILE )
if (deleteFile)
FileDelete, %pImg%
SendMessage,HEM_SETTABSIMAGELIST,0,hImlTabs,,ahk_id %hEdit%
}
HE_ShowFileList(hEdit, x=0, y=0){
static HEM_SHOWFILELIST := 2044 ;EQU WM_USER+1020 ;wParam=X pos, lParam=Y pos
SendMessage, HEM_SHOWFILELIST, x, y,, ahk_id %hEdit%
}
HE_Undo(hEdit) {
static WM_UNDO := 772
SendMessage, WM_UNDO,,,, ahk_id %hEdit%
return ErrorLevel
}
WriteFile(file,data) {
Handle := DllCall("CreateFile","str",file,"Uint",0x40000000 ,"Uint",0,"UInt",0,"UInt",4,"Uint",0,"UInt",0)
Loop{
if strlen(data) = 0
break
StringLeft, Hex, data, 2
StringTrimLeft, data, data, 2
Hex = 0x%Hex%
DllCall("WriteFile","UInt", Handle,"UChar *", Hex ,"UInt",1,"UInt *",UnusedVariable,"UInt",0)
}
DllCall("CloseHandle", "Uint", Handle)
return
}
;______________________________________
;#Include en.decryption.txt
1Include_en_decryption:
Return
Encrypt(ByRef passwordchecking, ByRef config){
Transform, ms, Chr, 3
Transform, ps, Chr, 2
SetFormat, Float, 0
Stringlen, encryptvarinlength , passwordchecking
;MsgBox, länge %encryptvarinlength%
count = 0
Loop
{
If count > %encryptvarinlength%
{
StringTrimRight, FileName, FileName, 3
FileName = %FileName%`.%currentrandomencryptnumber%
break
}
Random, randomnumber%count%, 0, 99999999
If (randomnumber%count% < 99999999 and randomnumber%count% > 9999999)
{
currentrandomencryptnumber := randomnumber%count%
Filename = %filename%%currentrandomencryptnumber%
count++
}
}
FileDelete, %Filename%
StringSplit, pwcount, passwordchecking
;count -= 1
randomnumberspecial = %currentrandomencryptnumber%
;MsgBox, pwcount %pwcount0% currentrandomnumber %randomnumberspecial% fileend: %currentrandomencryptnumber%
pwcounted =
count = 1
count2 = 0
passwordchecking =
Loop, %pwcount0%
{
pwcounting =
pwtocount := pwcount%count%
Transform, pwcounting, Asc, %pwtocount%
;MsgBox, Buchstabennummer:%pwcounting%`nbuchstabe: %pwtocount%
randomnumbercount := randomnumber%count2%
pwcounting *= randomnumbercount
;MsgBox, buchstabennumer: %pwcounting% `nmal`n Randomnumber: %randomnumbercount%
pwcounting *= %randomnumberspecial%
;MsgBox, buchstabennumer neu: %pwcounting% `nmal`n Randomnumber: %randomnumberspecial%
Stringlen, pwcountinglength, pwcounting
pwcountinglength -= 19
StringTrimLeft, pwcountinglength, pwcountinglength, 1
;MsgBox, wert + length %pwcounting% %pwcountinglength%
Loop, %pwcountinglength%
{
pwcounting = 0%pwcounting%
}
;MsgBox, %pwcounting%
encryptvarout = %encryptvarout%%pwcounting%
;MsgBox, %encryptvarout%
count++
count2++
}
FileAppend, %encryptvarout%, %Filename%
Sleep, 10
FileDelete, %config%
FileAppend, `[DEFAULT`]`nF93DHH98E08776AC=%Filename%`ndefaultprofile =DEFAULT`nsetdebugger=TO USE DEBUGGER ENTER ON ELSE OFF|USE PARAMETERS TO ENTER SLEEP SPEED IN MILISECONDS%ps%OFF%ps%0`nsetautostart=TO USE AUTO START PLEASE ENTER ON | OFF | ASK%ps%ASK`nsetwebbrowser =Internet Explorer ! DO NOT DELETE THIS KEY !ENTER HERE YOUR STANDART BROWSER!%ps%%A_ProgramFiles%\Internet Explorer\iexplore.exe`nsetmouse=ENTER KEYsMOUSE SPEED|ACCELLERATIONSPEED - E.G. 5|2.5%ps%5|2`nsetwinwatcher=ENTER SPEED IN SECONDS HOW OFTEN TO UPDATE WINWATCHER%ps%2`np=OPEN FOLDER PROGRAMS CAPSLOCKp HOTKEYpr%ps%C:\Program Files\`nnotepad=NOTEPAD CAPSLOCKn%ps%%A_WinDir%\Notepad.exe`ndemo=DEMO AUTOSTART%ps%ToolTip`,`,`,`,20%ms%MsgBox`, 4`, DEMO`, SHOW DEMO%ms%IfMsgBox`, No`, Return%ms%InputBox`, username`, NAME`, WHAT IS YOUR NAME`, `,200`, 150`,`,`,`,`,%A_USERNAME%%ms%BlockInput`, On%ms%Run`, %A_windir%\notepad.exe%ms%WinWaitActive`, AHK_class Notepad%ms%Sleep`, 500%ms%[Hallo ]%ms%Send`, `%username`%%ms%[{ENTER 2}]%ms%Sleep`, 500%ms%[WELCOME TO ]%ms%Send`,`%SCRIPTNAME_VAR`%%ms%[`.{ENTER 2}]%ms%Sleep`, 1000%ms%[DO YOU FEEL IT IS OFTEN TO COMPLEX TO USE COMPUTER{ENTER 2}]%ms%Sleep`, 3000%ms%[NOW YOU CAN SPEED UP YOUR WORK INCREDIBLE{ENTER 2}]%ms%Sleep`, 3000%ms%[WITH ]%ms%Send`, `%SCRIPTNAME_VAR`%%ms%[ YOU HAVE 2 WAYS TO START YOUR PROGRAM`, WEBSITE OR COMMAND{ENTER 2}]%ms%Sleep`, 3000%ms%[ IT IS VERY EASY TO SET UP A NEW COMMAND AND ALSO INCREADIBLE FAST{ENTER 2}]%ms%Sleep`, 3000%ms%[TRY IT{ENTER} - FIRST YOU CAN TRY THE MASTER FUNCTIONS LIKE OPENING A WEBSITE{ENTER}]%ms%Sleep`, 4000%ms%[ - OPEN THE ]%ms%Send`, `%SCRIPTNAME_VAR`%%ms%[ BY PRESSING CAPSLOCK & TAB (A tooltip message will be displayed)]%ms%Sleep`, 4000%ms%[{ENTER} - ENTER YOUR WEBSITE EXCLUDING www.*.com`, FOR EXAMPLE google TYPE NOW{ENTER 2}]%ms%Sleep`, 1000%ms%BlockInput`, Off%ms%GoSub`, Eingabe_Starten%ms%seconds=10, %config%
FileAppend, %ms%Loop`, 10%ms%{%ms% EnvSub`, seconds`, 1%ms% ToolTip`, Program will continue in `%seconds`% seconds`,`,`,20%ms% Sleep`, 1000%ms%}%ms%ToolTip`,`,`,`,20%ms%BlockInput`, On%ms%WinActivate`, AHK_class Notepad%ms%Sleep`, 500%ms%[YOU CAN CALCULATE BY ADDING = TO YOUR ENTRY IN FRONT`, e.g. =5]%ms%SendRaw`, +%ms%[5{ENTER 2}]%ms%Sleep`, 3000%ms%[SEARCH ON GOOGLE BY ENTERING . IN FRONT OF YOUR ENTRY E.G. .book amazon{Enter 2}]%ms%Sleep`, 3000%ms%BlockInput`, Off%ms%MsgBox`, 4`, Continue?%ms%IfMsgBox`, No`, WinClose`, AHK_class Notepad%ms%IfMsgBox`, No`, MsgBox`, IF YOU WANT TO RUN DEMO AGAIN TYPE DEMO AFTER PRESSING CAPSLOCK & TAB%ms%IfMsgBox`, No`, break%ms%Sleep`, 500%ms%BlockInput`, On%ms%Send`, NOW LETS GET INTO DETAIL{ENTER 2}%ms%Sleep`, 3000%ms%Send`, LETS LOOK AT THE MANAGEMENT OF YOUR MACROS{ENTER 2}%ms%Sleep`, 3000%ms%Send`, TO OPEN THE GUI`, PRESS CAPSLOCK & F5`, FOLLOWING WINDOW WILL APPEAR{ENTER 2}%ms%Sleep`, 5000%ms%GoSub`, Macrokeys%ms%WinWaitActive`, `%SCRIPTNAME_VAR`% MACRO MANAGEMENT%ms%Sleep`, 2000%ms%MouseMove`, 179 `, 371%ms%Click`, 2%ms%ToolTip`, HERE YOU MUST ENTER THE KEYWORD FOR EXAMPLE g`,`,`,20%ms%Sleep`, 5000%ms%MouseMove`, 280 `, 395`, 50%ms%ToolTip`, HERE YOU CAN ENTER THE LONG NAME. USE CAPSLOCK/SCROLLLOCK/NUMLOCK+CHARACTER OR HOTKEY+CHARACTER+CHARACTER TO ACTIVATE HOTKEYS`,`,`,20%ms%Sleep`, 8000%ms%MouseMove`, 351 `, 469`, 50%ms%ToolTip`, HERE YOU MUST ENTER FOLDER/FILE OR YOUR MACRO`,`,`,20%ms%Sleep`, 5000%ms%MouseMove`, 107 `, 326`, 50%ms%ToolTip`, CLICK HERE TO SAVE YOUR MACRO`,`,`,20%ms%Sleep`, 5000%ms%MouseMove`, 143 `, 686`, 50%ms%Click`, 143 `, 686%ms%ToolTip`, HERE YOU CAN GET HELP ABOUT COMMANDS`,`,`,20%ms%Send`, StringLeft%ms%Sleep`, 6000%ms%ToolTip`,`,`,`,20%ms%BlockInput`, Off%ms%WinClose`, `%SCRIPTNAME_VAR`% MACRO MANAGEMENT%ms%WinClose`, AHK_class Notepad%ms%WinWait`, AHK_class #32770%ms%WinActivate`, AHK_class #32770%ms%WinWaitActive`, AHK_class #32770%ms%Send`, !n%macroseparator%MsgBox`, IF YOU WANT TO RUN DEMO AGAIN TYPE DEMO AFTER PRESSING CAPSLOCK & TAB, %config%
Sleep, 10
FileSetAttrib, +RS, %Filename%
Sleep, 10
FileSetAttrib, +S, %config%
Sleep, 10
FileDelete, %FileName%
SetFormat, Float, 0.16
Return
}
Decrypt(ByRef passwordchecking, ByRef config){
SetFormat, Float, 0
Stringsplit, passwordchecking, passwordchecking
IniRead, pwchkcounted, %config%, DEFAULT, F93DHH98E08776AC, ERROR
StringRight, randomnumberspecial, pwchkcounted, 8
StringTrimRight, pwcode, pwchkcounted, 8
Stringlen, pwlength, pwcode
pwlength /= 8
count = 1
Loop
{
StringLeft, pwcode%count%, pwcode, 8
StringTrimleft, pwcode, pwcode, 8
If pwcode%count% =
break
count++
}
;MsgBox, %pwchkcounted%, %pwlength%, codes %pwcode1% %pwcode2% %pwcode3% %pwcode4%
FileRead, pwfilecode, %pwchkcounted%
;StringSplit, pwchkcount, pwfilecode, %A_Space%, %A_Space%
pwchkcount0 =
Loop
{
StringLeft, pwchkcount%A_Index%, pwfilecode, 19
pwchkcount0++
StringTrimLeft, pwfilecode, pwfilecode, 19
If pwfilecode =
break
}
;MsgBox, code %pwfilecode% count %pwchkcount1%
Loop, %pwchkcount0%
{
pwchkcounting =
pwchkcounting := pwchkcount%A_Index%
;MsgBox, random spec %randomnumberspecial% pwchk %pwchkcounting% pwcount %pwchkcount0% %pwchkcount1% %pwchkcount2% %pwchkcount3%
pwchkcounting /= %randomnumberspecial%
;MsgBox, key/spec: %pwchkcounting%
pwchkcurrentkey := pwcode%A_Index%
;MsgBox, key: %pwchkcurrentkey%
pwchkcounting /= %pwchkcurrentkey%
;MsgBox, erg/key: %pwchkcounting%
Transform, pwchkcounting, Round, pwchkcounting
Transform, pwchkcounting, Chr, %pwchkcounting%
;MsgBox, buchstabe: %pwchkcounting%
pwchkcountedout = %pwchkcountedout%%pwchkcounting%
}
SetFormat, Float, 0.16
passwordchecking = %pwchkcountedout%
Return
}
Encryptmakro(ByRef encryptmakrokeys, ByRef config){
If encryptmakrokeys =
Return
SetFormat, Float, 0
Stringlen, encryptvarinlength , encryptmakrokeys
StringSplit, pwcount, encryptmakrokeys
IniRead, filename, %config%, DEFAULT, F93DHH98E08776AC, ERROR
If filename = ERROR
Return
Stringleft, filenamefirst, filename, 1
If filenamefirst = `.
{
ToolTip, !!!VERSCHLÜSSELUNG OHNE PASSWORD NICHT MÖGLICH!!!, , ,20
Sleep, 1000
Return
}
FileRead, randomnumber, %filename%
Stringsplit, randomnumber, randomnumber,, 0
StringRight, randomnumberspecial, filename, 3
;MsgBox, pwcount %pwcount0% special %randomnumberspecial%
pwcounted =
count2 = 1
encryptmakrokeys =
Loop, %pwcount0%
{
If randomnumber%count2% =
count2 =1
pwcounting =
pwtocount := pwcount%A_Index%
Transform, pwcounting, Asc, %pwtocount%
;MsgBox, Buchstabennummer:%pwcounting%`nbuchstabe: %pwtocount% randomnumber %randomnumber%
randomnumbercount := randomnumber%count2%
pwcounting *= %randomnumbercount%
;MsgBox, buchstabennumer1: %pwcounting% `nmal`n Randomnumber: %randomnumbercount%
pwcounting *= %randomnumberspecial%
;MsgBox, buchstabennumer neu: %pwcounting% `nmal`n Randomnumber: %randomnumberspecial%
Stringlen, pwcountinglength, pwcounting
pwcountinglength -= 7
StringTrimLeft, pwcountinglength, pwcountinglength, 1
Loop, %pwcountinglength%
{
pwcounting = 0%pwcounting%
}
encryptmakrokeys = %encryptmakrokeys%%pwcounting%
count2++
}
SetFormat, Float, 0.16
;MsgBox, end %encryptmakrokeys%
Return
}
Decryptmakro(ByRef decryptmakrokeys, ByRef config){
If decryptmakrokeys =
Return
;MsgBox % decryptmakrokeys
SetFormat, Float, 0
IniRead, pwchkfile, %config%, DEFAULT, F93DHH98E08776AC, ERROR
FileRead, pwfilecode, %pwchkfile%
StringRight, randomnumberspecial, pwchkfile, 3
Stringsplit, pwcode, pwfilecode,, 0
count = 1
pwchkcount0 =
Loop
{
If decryptmakrokeys =
break
StringLeft, pwchkcount%A_Index%, decryptmakrokeys, 7
pwchkcount0++
StringTrimLeft, decryptmakrokeys, decryptmakrokeys, 7
}
;MsgBox % pwchkcount1
count = 1
Loop, %pwchkcount0%
{
If pwcode%count% =
count = 1
pwchkcounting =
pwchkcounting := pwchkcount%A_Index%
;MsgBox, random spec %randomnumberspecial% pwchk %pwchkcounting% pwcount %pwchkcount0% %pwchkcount1% %pwchkcount2% %pwchkcount3%
pwchkcounting /= %randomnumberspecial%
;MsgBox, key/spec: %pwchkcounting%
pwchkcurrentkey := pwcode%count%
;MsgBox, key: %pwchkcurrentkey%
pwchkcounting /= %pwchkcurrentkey%
;MsgBox, erg/key: %pwchkcounting%
Transform, pwchkcounting, Round, pwchkcounting
Transform, pwchkcounting, Chr, %pwchkcounting%
;MsgBox, buchstabe: %pwchkcounting%
If pwchksaved = %A_Space%
{
pwchkcountedout = %pwchkcountedout%%A_Space%%pwchkcounting%
}
else
{
pwchkcountedout = %pwchkcountedout%%pwchkcounting%
}
pwchksaved := pwchkcounting
count++
}
;MsgBox % pwchkcountedout
SetFormat, Float, 0.16
StringRight, chkmakrokeyslast, pwchkcountedout, 3
ToolTip, ENTER LAST 3 LETTERS OF YOUR ENTRY(MACRO),,,20
Input, chkmakrokeys, L3 M, {ESC}
;MsgBox % chkmakrokeyslast
;MsgBox % pwchkcoundedout
StringCaseSense, On
If chkmakrokeys = %chkmakrokeyslast%
{
decryptmakrokeys = %pwchkcountedout%
Sleep, 100
}
;MsgBox % pwchkcountedout
StringCaseSense, Off
StringRight, endkey, chkmakrokeyslast, 1
KeyWait, %endkey%
ToolTip,,,,20
Return
}
;________________________________
;#Include runvar.sendkeys.txt
1Include_runvar_sendkeys:
RunVar:
RunVar()
Return
Runvar(){
global
local tooltipvar
ToolTip,,,,20
KeyWait, CAPSLOCK
SetCapsLockState, Off
If speedhotkeyon = EIN
{
Loop %numkeys0%
{
StringSplit, numkeyshotkey, numkeys%A_Index%
Hotkey, NUMPAD%numkeyshotkey1% & NUMPAD%numkeyshotkey2%, Off
}
Loop %hotkeyslist0%
{
StringLeft, hotkeya, hotkeyslist%A_Index%, 1
StringRight, hotkeyb, hotkeyslist%A_Index%, 1
Hotkey, %hotkeya% & %hotkeyb%, Off
}
speedhotkeyon = AUS
Hotkey, CAPSLOCK & TAB, ON
Hotkey, ~LCONTROL, ON
Hotkey, CAPSLOCK & SHIFT, ON
ToolTip,,,,19
}
SetTimer, RemoveToolTip, Off
If out =
outrunvar = %outlast%
else
{
outrunvar = %out%
outlast = %out%
}
out =
If outrunvar =
Return
If outrunvar is alnum
{
If %outrunvar%0 > 0
{
runningprograms++
If runningprograms > 1
tooltippos += 14
else
tooltippos = 0
StringLeft, tooltipvar, %outrunvar%1, 50
ToolTip % tooltipvar, 300, %tooltippos%, %runningprograms%
}
}
IniRead, checkvariable, %config%, %DEFAULT%, %outrunvar%, ERROR
If checkvariable = ERROR
{
GoSub, Go
Return
}
checkpath := %outrunvar%2
/*
StringGetPos, splitposend, checkpath, %A_Tab%, L2
StringGetPos, splitposstart, checkpath, %A_Tab%
MsgBox, out: %checkpath% start: %splitposstart% end: %splitposend%
If Errorlevel = 0
{
splitposstart +=2
If splitposend = -1
{
StringMid, checkpath, checkpath, %splitposstart%
}
else
{
splitposend -=%splitposstart%
splitposend++
StringMid, checkpath, checkpath, %splitposstart%, %splitposend%
}
}
*/
IfExist, %checkpath%
{
pathvar := %outrunvar%3
If pathvar =
{
Run %checkpath%
}
else
{
Run %checkpath%%A_Space%%pathvar%
}
}
else
{
input := %outrunvar%2
If input is digit
{
decryptmakrokeys = %input%
Decryptmakro(decryptmakrokeys, config)
input = %decryptmakrokeys%
}
input := RegExReplace(input, macroseparator . "\s+", macroseparator)
;input := RegExReplace(input, "\s+" . macroseparator, macroseparator)
RunMacro()
}
If outrunvar is alnum
{
If %outrunvar%0 > 0
{
ToolTip,,,, %runningprograms%
runningprograms--
If runningprograms > 0
tooltippos -= 14
}
}
SetTimer, RemoveToolTip, 1000
Return
}
;Runs one of your scripts(macro)
RunMacro(looptimes=1, is_if=0, is_loop=0, is_block=0, last_is = 0, loop_opt1="", loop_opt2="", loop_opt3="")
{
global ;global because to accept input and work with commands(forward %programparam1-20%)
local inputparameters := input
local inputparameterssave := input
local programparam =
local breakloop =
breaksendkeys =
If looptimes =
{
Loop
{
inputparameters = %inputparameterssave%
;MsgBox, LOOP: %A_Index%
Loop
{
;Break when input is empty
If inputparameters =
{
break
}
;Break when end of loop or if
If (SubStr(inputparameters, 1, 2) = "}" . macroseparator)
{
StringTrimLeft, inputparameters, inputparameters, 2
break
}
;Exit when Macro is to cancel(pressed Pause Key)
If breaksendkeys = 1
{
breaksendkeys =
ToolTip, MACRO WAS CANCELED,,,20
SetTimer, RemoveToolTip, 1000
Loop
{
If runningprograms = 0
{
tooltippos = 0
break
}
ToolTip,,,, %runningprograms%
runningprograms--
If runningprograms > 0
tooltippos -= 14
}
Suspend, Off
BlockInput, Off
Exit
}
;Empty all parameters
Loop 20
{
programparam%A_Index% =
}
;Check if last item or cut off command
If InStr(inputparameters, macroseparator) = 0
{
programvar = %inputparameters%
inputparameters =
}
else
{
StringLeft, programvar, inputparameters, InStr(inputparameters, macroseparator)-1
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
}
;programvar = %programvar%
;Continue if comments
If InStr(programvar, ";") = 1
continue
else if InStr(programvar, "/*") = 1
{
If InStr(inputparameters, "*/") = 0
inputparameters =
else
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, "*/")+2
continue
}
;Cut off comments from Line
If RegExMatch(programvar, "\s;") > 0
{
StringLeft, programvar, programvar, RegExMatch(programvar, "\s;")-1
}
;Split Command into parameters, e.g MsgBox, hello: programparam1 will be MsgBox, programparam2 will be hello
If (RegExMatch(programvar, "^\w*\(") = 1 and SubStr(programvar, 0, 1) = ")")
{
StringTrimRight, programvar, programvar, 1
StringReplace, programvar, programvar, `(, `,
StringSplit, programparam, programvar, `,, %A_Space%
}
else
StringSplit, programparam, programvar, `,, %A_Space%
;If program has variables(%...%) it will load the variables into parameters
If (InStr(programvar, "`%") > 0 and programparam1 != "SendRaw")
{
AutoTrim, Off
Loop 20
{
programvarwithvariable := InStr(programparam%A_Index%, "`%", CaseSensitive = true)
If programvarwithvariable > 0
{
programparamtochangetemp := programparam%A_Index%
programparamtochange = %programparamtochangetemp%
;____________________________
tempvar =
Loop
{
If programparamtochange =
break
StringGetPos, programvarwithvariablepos, programparamtochange, `%
If Errorlevel = 1
{
tempvartoadd := programparamtochange
tempvar = %tempvar%%tempvartoadd%
break
}
If programvarwithvariablepos > 0
{
StringLeft, tempvartoadd, programparamtochange, %programvarwithvariablepos%
;MsgBox, nonvar: %tempvartoadd%
tempvar = %tempvar%%tempvartoadd%
StringTrimLeft, programparamtochange, programparamtochange, %programvarwithvariablepos%
}
else
{
StringTrimLeft, programparamtochange, programparamtochange, 1
StringLeft, tempvartoadd, programparamtochange, InStr(programparamtochange, "`%", CaseSensitive = true)
StringTrimRight, tempvartoadd, tempvartoadd, 1
StringTrimLeft, programparamtochange, programparamtochange, InStr(programparamtochange, "`%", CaseSensitive = true)
tempvartoadd := %tempvartoadd%
tempvar = %tempvar%%tempvartoadd%
}
}
programparam%A_Index% = %tempvar%
}
}
AutoTrim, On
}
;If no commas (,) than only 1 parameter, so send command(e.g. !{TAB}), loop(e.g. 10) or own macro/folder/program/website
If programparam0 = 1
{
If programparam1 is alnum
{
out := programparam1
If %out%2 =
{
out=
}
else
{
GoSub, Runvar
Sleep, 100
continue
}
}
}
;Replace tabs, linefeeds, and remove quotation marks(if at the end and beginnig only, requiered for DllCall) in parameters
Loop 20
{
IfInString, programparam%A_Index%, ``t
{
StringReplace, programparam%A_Index%, programparam%A_Index%, ``t, %A_Tab%, A
}
IfInString, programparam%A_Index%, ``n
{
StringReplace, programparam%A_Index%, programparam%A_Index%, ``n, `n, A
}
If (quotationmark = SubStr(programparam%A_Index%, 1, 1) and quotationmark = SubStr(programparam%A_Index%, 0, 1))
{
StringTrimLeft, programparam%A_Index%, programparam%A_Index%, 1
StringTrimRight, programparam%A_Index%, programparam%A_Index%, 1
}
}
;Display command when variable/macro setdebugger is ON
If (debuggerison = "ON" and programparam1 != "}")
{
tooltipdebugger=
Loop %programparam0%
{
tooltipdebuggertmp := programparam%A_Index%
tooltipdebugger = %tooltipdebugger%%tooltipdebuggertmp%`,
}
StringTrimRight, tooltipdebugger, tooltipdebugger, 1
ToolTip % tooltipdebugger,,,20
Sleep, %debuggerslowdown%
}
;Runs a Loop or an If statement
If programparam1 = Loop
{
was_block = %is_block%
;MsgBox, starting loop:`n%inputparameters%
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
StringTrimLeft, inputparameters, inputparameters, 2
is_block = 1
}
else
is_block = 0
input := inputparameters
is_loop++
last_was = %last_is%
last_is = 2
inputparameters:=RunMacro(programparam2,is_if,is_loop,is_block,last_is, programparam3, programparam4, programparam5)
is_loop--
last_is = %last_was%
if was_block = 1
{
was_block = 0
is_block = 1
}
;MsgBox, ENDE`nloop: %is_loop%`nif: %is_if%`nblock: %is_block%`nlast: %last_is%
;MsgBox, returned with:`n%inputparameters%
continue
}
else if ((programparam1 = "If" and programparam5 = "") or ((programparam1 = "IMB" or programparam1 = "IfMsgBox" or programparam1 = "IE" or programparam1 = "IfExist" or programparam1 = "INE" or programparam1 = "IfNotExist") and programparam3 = "") or ((programparam1 = "IEQ" or programparam1 = "INEQ" or programparam1 = "IG" or programparam1 = "IGOE" or programparam1 = "IL" or programparam1 = "ILOE" or programparam1 = "IIS" or programparam1 = "INIS" or programparam1 = "IfEqual" or programparam1 = "IfNotEqual" or programparam1 = "IfGreater" or programparam1 = "IfGreaterOrEqual" or programparam1 = "IfLess" or programparam1 = "IfLessOrEqual" or programparam1 = "IfInString" or programparam1 = "IfNotInString") and programparam4 = "") or ((programparam1 = "IWA" or programparam1 = "IWNA" or programparam1 = "IWE" or programparam1 = "IWNE" or programparam1 = "IfWinActive" or programparam1 = "IfWinNotActive" or programparam1 = "IfWinExist" or programparam1 = "IfWinNotExist") and programparam6 = ""))
{
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
was_block = %is_block%
is_if++
last_was = %last_is%
last_is = 1
If Ifstatement() = 1
{
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
StringTrimLeft, inputparameters, inputparameters, 2
is_block = 1
}
else
is_block = 0
input := inputparameters
inputparameters := RunMacro(1,is_if,is_loop, is_block, last_is)
last_is = %last_was%
is_if--
is_block = %was_block%
If (SubStr(inputparameters, 1, 4) = "else")
{
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
If (InStr(inputparameters, macroifloopblockend) != 0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+1
else
inputparameters =
}
else if (InStr(inputparameters, macroseparator) !=0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
else
inputparameters =
}
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
}
else
{
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
If (InStr(inputparameters, macroifloopblockend) != 0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+1
else
inputparameters =
}
else if (InStr(inputparameters, macroseparator) !=0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
else
inputparameters =
}
If (SubStr(inputparameters, 1, 4) = "else")
{
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
StringTrimLeft, inputparameters, inputparameters, 2
is_block = 1
}
else
is_block = 0
input := inputparameters
inputparameters := RunMacro(1,is_if,is_loop, is_block, last_is)
last_is = %last_was%
is_if--
is_block = %was_block%
}
;MsgBox, if:%inputparameters%
continue
}
;If programparam1 = else, needs to delete as if used than it would run before
If programparam1 = else
{
If (InStr(inputparameters, macroifloopblockend) != 0 and InStr(inputparameters, "{") = 1)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+1
else if (InStr(inputparameters, macroseparator) !=0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
else
inputparameters =
}
;Run command if exists/allowed
IfInString, workingcommands, %programparam1%|
{
If (programparam1 != "" and programparam1 != "break" and programparam1 != "continue")
{
GoSub, %programparam1%
}
}
else if (RegExMatch(programparam1, "^\w*\s?\s?=") = 0 and RegExMatch(programparam1, "^\w*\s?\s?:=") = 0 and programparam1 != "}")
{
Send, %programvar%
continue
}
;!!!!!!!!!!!Return when Return is used
If programparam1 = Return
{
inputparameters =
Return "return" ;Unclear!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
;Will break or continue if in a loop
If (programparam1 = "break" or programparam1 = "continue")
{
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
If is_block > 0
{
If InStr(inputparameters, "}" . macroseparator) = 1
StringTrimLeft, inputparameters, inputparameters, 2
else
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+2
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
}
If is_loop > 0
{
If last_is = 1
inputparameters := programparam1 . macroseparator . inputparameters
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
Return inputparameters
}
}
;Used for var=Value or var:=value or var:=DllCall,.... and so on
IfInString, programparam1, =
{
If (programparam0 = 1 or InStr(programparam1, "FileExist") or InStr(programparam1, "GetKeyState") or InStr(programparam1, "InStr") or InStr(programparam1, "RegExMatch") or InStr(programparam1, "RegExReplace") or InStr(programparam1, "SubStr") or InStr(programparam1, "StrLen") or InStr(programparam1, "WinActive") or InStr(programparam1, "WinExist") or InStr(programparam1, "Asc") or InStr(programparam1, "Chr") or InStr(programparam1, "DllCall") or InStr(programparam1, VarSetCapacity))
{
IfInString, programparam1, :=
{
StringReplace, programparam1, programparam1, :=, =
StringSplit, programparamvar, programparam1, =, %A_Space%%A_Tab%
;MSgBox, %programparamvar1%`n%programparamvar2%
If programparam2 =
{
%programparamvar1% := %programparamvar2%
}
else
{
If programparamvar2 = FileExist
{
%programparamvar1% := FileExist(programparam2)
}
else if programparamvar2 = GetKeyState
{
%programparamvar1% := GetKeyState(programparam2,programparam3)
}
else if programparamvar2 = InStr
{
MsgBox, 1: %programparam1%`n2: %programparam2%`n2: %programparam3%`n2: %programparam4%
%programparamvar1% := InStr(%programparam2%, programparam3,programparam4, programparam5)
}
else if programparamvar2 = RegExMatch
{
%programparamvar1% := RegExMatch(%programparam2%, programparam3, programparam4, programparam5)
}
else if programparamvar2 = RegExReplace
{
%programparamvar1% := RegExReplace(%programparam2%, programparam3, programparam4, programparam5, programparam6, programparam7)
}
else if programparamvar2 = SubStr
{
%programparamvar1% := SubStr(programparam2, programparam3, programparam4)
}
else if programparamvar2 = StrLen
{
%programparamvar1% := StrLen(programparam2)
}
else if programparamvar2 = WinActive
{
%programparamvar1% := WinActive(programparam2, programparam3, programparam4, programparam5)
}
else if programparamvar2 = WinExist
{
%programparamvar1% := WinExist(programparam2, programparam3, programparam4, programparam5)
}
else if programparamvar2 = Asc
{
%programparamvar1% := Asc(programparam2)
}
else if programparamvar2 = Chr
{
%programparamvar1% := Chr(programparam2)
}
else if programparamvar2 = DllCall
{
If programparam0 = 20
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18, programparam19, programparam20)
}
else if programparam0 = 19
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18, programparam19)
}
else if programparam0 = 18
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18)
}
else if programparam0 = 17
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17)
}
else if programparam0 = 16
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16)
}
else if programparam0 = 15
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15)
}
else if programparam0 = 14
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14)
}
else if programparam0 = 13
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13)
}
else if programparam0 = 12
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12)
}
else if programparam0 = 11
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11)
}
else if programparam0 = 10
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10)
}
else if programparam0 = 9
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9)
}
else if programparam0 = 8
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8)
}
else if programparam0 = 7
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7)
}
else if programparam0 = 6
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6)
}
else if programparam0 = 5
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5)
}
else if programparam0 = 4
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4)
}
else if programparam0 = 3
{
%programparamvar1% := DllCall( programparam2, programparam3)
}
else if programparam0 = 2
{
%programparamvar1% := DllCall( programparam2)
}
}
else if programparamvar2 = VarSetCapacity
{
%programparamvar1% := VarSetCapacity(%programparam2%, programparam3, programparam4)
}
}
}
else
{
StringSplit, programparamvar, programparam1, =, %A_Space%%A_Tab%
%programparamvar1% = %programparamvar2%
}
}
}
If (last_is > 0 and is_block = 0)
break
}
}
}
else if looptimes is digit
{
Loop %looptimes%
{
inputparameters = %inputparameterssave%
;MsgBox, LOOP: %A_Index%
Loop
{
;Break when input is empty
If inputparameters =
{
break
}
;Break when end of loop or if
If (SubStr(inputparameters, 1, 2) = "}" . macroseparator)
{
StringTrimLeft, inputparameters, inputparameters, 2
break
}
;Exit when Macro is to cancel(pressed Pause Key)
If breaksendkeys = 1
{
breaksendkeys =
ToolTip, MACRO WAS CANCELED,,,20
SetTimer, RemoveToolTip, 1000
Loop
{
If runningprograms = 0
{
tooltippos = 0
break
}
ToolTip,,,, %runningprograms%
runningprograms--
If runningprograms > 0
tooltippos -= 14
}
Suspend, Off
BlockInput, Off
Exit
}
;Empty all parameters
Loop 20
{
programparam%A_Index% =
}
;Check if last item or cut off command
If InStr(inputparameters, macroseparator) = 0
{
programvar = %inputparameters%
inputparameters =
}
else
{
StringLeft, programvar, inputparameters, InStr(inputparameters, macroseparator)-1
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
}
;programvar = %programvar%
;Continue if comments
If InStr(programvar, ";") = 1
continue
else if InStr(programvar, "/*") = 1
{
If InStr(inputparameters, "*/") = 0
inputparameters =
else
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, "*/")+2
continue
}
;Cut off comments from Line
If RegExMatch(programvar, "\s;") > 0
{
StringLeft, programvar, programvar, RegExMatch(programvar, "\s;")-1
}
;Split Command into parameters, e.g MsgBox, hello: programparam1 will be MsgBox, programparam2 will be hello
If (RegExMatch(programvar, "^\w*\(") = 1 and SubStr(programvar, 0, 1) = ")")
{
StringTrimRight, programvar, programvar, 1
StringReplace, programvar, programvar, `(, `,
StringSplit, programparam, programvar, `,, %A_Space%
}
else
StringSplit, programparam, programvar, `,, %A_Space%
;If program has variables(%...%) it will load the variables into parameters
If (InStr(programvar, "`%") > 0 and programparam1 != "SendRaw")
{
AutoTrim, Off
Loop 20
{
programvarwithvariable := InStr(programparam%A_Index%, "`%", CaseSensitive = true)
If programvarwithvariable > 0
{
programparamtochangetemp := programparam%A_Index%
programparamtochange = %programparamtochangetemp%
;____________________________
tempvar =
Loop
{
If programparamtochange =
break
StringGetPos, programvarwithvariablepos, programparamtochange, `%
If Errorlevel = 1
{
tempvartoadd := programparamtochange
tempvar = %tempvar%%tempvartoadd%
break
}
If programvarwithvariablepos > 0
{
StringLeft, tempvartoadd, programparamtochange, %programvarwithvariablepos%
;MsgBox, nonvar: %tempvartoadd%
tempvar = %tempvar%%tempvartoadd%
StringTrimLeft, programparamtochange, programparamtochange, %programvarwithvariablepos%
}
else
{
StringTrimLeft, programparamtochange, programparamtochange, 1
StringLeft, tempvartoadd, programparamtochange, InStr(programparamtochange, "`%", CaseSensitive = true)
StringTrimRight, tempvartoadd, tempvartoadd, 1
StringTrimLeft, programparamtochange, programparamtochange, InStr(programparamtochange, "`%", CaseSensitive = true)
tempvartoadd := %tempvartoadd%
tempvar = %tempvar%%tempvartoadd%
}
}
programparam%A_Index% = %tempvar%
}
}
AutoTrim, On
}
;If no commas (,) than only 1 parameter, so send command(e.g. !{TAB}), loop(e.g. 10) or own macro/folder/program/website
If programparam0 = 1
{
If programparam1 is alnum
{
out := programparam1
If %out%2 =
{
out=
}
else
{
GoSub, Runvar
Sleep, 100
continue
}
}
}
;Replace tabs, linefeeds, and remove quotation marks(if at the end and beginnig only, requiered for DllCall) in parameters
Loop 20
{
IfInString, programparam%A_Index%, ``t
{
StringReplace, programparam%A_Index%, programparam%A_Index%, ``t, %A_Tab%, A
}
IfInString, programparam%A_Index%, ``n
{
StringReplace, programparam%A_Index%, programparam%A_Index%, ``n, `n, A
}
If (quotationmark = SubStr(programparam%A_Index%, 1, 1) and quotationmark = SubStr(programparam%A_Index%, 0, 1))
{
StringTrimLeft, programparam%A_Index%, programparam%A_Index%, 1
StringTrimRight, programparam%A_Index%, programparam%A_Index%, 1
}
}
;Display command when variable/macro setdebugger is ON
If (debuggerison = "ON" and programparam1 != "}")
{
tooltipdebugger=
Loop %programparam0%
{
tooltipdebuggertmp := programparam%A_Index%
tooltipdebugger = %tooltipdebugger%%tooltipdebuggertmp%`,
}
StringTrimRight, tooltipdebugger, tooltipdebugger, 1
ToolTip % tooltipdebugger,,,20
Sleep, %debuggerslowdown%
}
;Runs a Loop or an If statement
If programparam1 = Loop
{
was_block = %is_block%
;MsgBox, starting loop:`n%inputparameters%
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
StringTrimLeft, inputparameters, inputparameters, 2
is_block = 1
}
else
is_block = 0
input := inputparameters
is_loop++
last_was = %last_is%
last_is = 2
inputparameters:=RunMacro(programparam2,is_if,is_loop,is_block,last_is, programparam3, programparam4, programparam5)
is_loop--
last_is = %last_was%
if was_block = 1
{
was_block = 0
is_block = 1
}
;MsgBox, ENDE`nloop: %is_loop%`nif: %is_if%`nblock: %is_block%`nlast: %last_is%
;MsgBox, returned with:`n%inputparameters%
continue
}
else if ((programparam1 = "If" and programparam5 = "") or ((programparam1 = "IMB" or programparam1 = "IfMsgBox" or programparam1 = "IE" or programparam1 = "IfExist" or programparam1 = "INE" or programparam1 = "IfNotExist") and programparam3 = "") or ((programparam1 = "IEQ" or programparam1 = "INEQ" or programparam1 = "IG" or programparam1 = "IGOE" or programparam1 = "IL" or programparam1 = "ILOE" or programparam1 = "IIS" or programparam1 = "INIS" or programparam1 = "IfEqual" or programparam1 = "IfNotEqual" or programparam1 = "IfGreater" or programparam1 = "IfGreaterOrEqual" or programparam1 = "IfLess" or programparam1 = "IfLessOrEqual" or programparam1 = "IfInString" or programparam1 = "IfNotInString") and programparam4 = "") or ((programparam1 = "IWA" or programparam1 = "IWNA" or programparam1 = "IWE" or programparam1 = "IWNE" or programparam1 = "IfWinActive" or programparam1 = "IfWinNotActive" or programparam1 = "IfWinExist" or programparam1 = "IfWinNotExist") and programparam6 = ""))
{
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
was_block = %is_block%
is_if++
last_was = %last_is%
last_is = 1
If Ifstatement() = 1
{
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
StringTrimLeft, inputparameters, inputparameters, 2
is_block = 1
}
else
is_block = 0
input := inputparameters
inputparameters := RunMacro(1,is_if,is_loop, is_block, last_is)
last_is = %last_was%
is_if--
is_block = %was_block%
If (SubStr(inputparameters, 1, 4) = "else")
{
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
If (InStr(inputparameters, macroifloopblockend) != 0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+1
else
inputparameters =
}
else if (InStr(inputparameters, macroseparator) !=0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
else
inputparameters =
}
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
}
else
{
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
If (InStr(inputparameters, macroifloopblockend) != 0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+1
else
inputparameters =
}
else if (InStr(inputparameters, macroseparator) !=0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
else
inputparameters =
}
If (SubStr(inputparameters, 1, 4) = "else")
{
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
StringTrimLeft, inputparameters, inputparameters, 2
is_block = 1
}
else
is_block = 0
input := inputparameters
inputparameters := RunMacro(1,is_if,is_loop, is_block, last_is)
last_is = %last_was%
is_if--
is_block = %was_block%
}
;MsgBox, if:%inputparameters%
continue
}
;If programparam1 = else, needs to delete as if used than it would run before
If programparam1 = else
{
If (InStr(inputparameters, macroifloopblockend) != 0 and InStr(inputparameters, "{") = 1)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+1
else if (InStr(inputparameters, macroseparator) !=0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
else
inputparameters =
}
;Run command if exists/allowed
IfInString, workingcommands, %programparam1%|
{
If (programparam1 != "" and programparam1 != "break" and programparam1 != "continue")
{
GoSub, %programparam1%
}
}
else if (RegExMatch(programparam1, "^\w*\s?\s?=") = 0 and RegExMatch(programparam1, "^\w*\s?\s?:=") = 0 and programparam1 != "}")
{
Send, %programvar%
continue
}
;!!!!!!!!!!!Return when Return is used
If programparam1 = Return
{
inputparameters =
Return "return" ;Unclear!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
;Will break or continue if in a loop
If (programparam1 = "break" or programparam1 = "continue")
{
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
If is_block > 0
{
If InStr(inputparameters, "}" . macroseparator) = 1
StringTrimLeft, inputparameters, inputparameters, 2
else
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+2
}
If is_loop > 0
{
If last_is = 1
inputparameters := programparam1 . macroseparator . inputparameters
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
Return inputparameters
}
}
;Used for var=Value or var:=value or var:=DllCall,.... and so on
IfInString, programparam1, =
{
If (programparam0 = 1 or InStr(programparam1, "FileExist") or InStr(programparam1, "GetKeyState") or InStr(programparam1, "InStr") or InStr(programparam1, "RegExMatch") or InStr(programparam1, "RegExReplace") or InStr(programparam1, "SubStr") or InStr(programparam1, "StrLen") or InStr(programparam1, "WinActive") or InStr(programparam1, "WinExist") or InStr(programparam1, "Asc") or InStr(programparam1, "Chr") or InStr(programparam1, "DllCall") or InStr(programparam1, VarSetCapacity))
{
IfInString, programparam1, :=
{
StringReplace, programparam1, programparam1, :=, =
StringSplit, programparamvar, programparam1, =, %A_Space%%A_Tab%
If programparam2 =
{
%programparamvar1% := %programparamvar2%
}
else
{
If programparamvar2 = FileExist
{
%programparamvar1% := FileExist(programparam2)
}
else if programparamvar2 = GetKeyState
{
%programparamvar1% := GetKeyState(programparam2,programparam3)
}
else if programparamvar2 = InStr
{
MsgBox, 1: %programparam1%`n2: %programparam2%`n2: %programparam3%`n2: %programparam4%
%programparamvar1% := InStr(%programparam2%, programparam3,programparam4, programparam5)
}
else if programparamvar2 = RegExMatch
{
%programparamvar1% := RegExMatch(%programparam2%, programparam3, programparam4, programparam5)
}
else if programparamvar2 = RegExReplace
{
%programparamvar1% := RegExReplace(%programparam2%, programparam3, programparam4, programparam5, programparam6, programparam7)
}
else if programparamvar2 = SubStr
{
%programparamvar1% := SubStr(programparam2, programparam3, programparam4)
}
else if programparamvar2 = StrLen
{
%programparamvar1% := StrLen(programparam2)
}
else if programparamvar2 = WinActive
{
%programparamvar1% := WinActive(programparam2, programparam3, programparam4, programparam5)
}
else if programparamvar2 = WinExist
{
%programparamvar1% := WinExist(programparam2, programparam3, programparam4, programparam5)
}
else if programparamvar2 = Asc
{
%programparamvar1% := Asc(programparam2)
}
else if programparamvar2 = Chr
{
%programparamvar1% := Chr(programparam2)
}
else if programparamvar2 = DllCall
{
If programparam0 = 20
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18, programparam19, programparam20)
}
else if programparam0 = 19
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18, programparam19)
}
else if programparam0 = 18
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18)
}
else if programparam0 = 17
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17)
}
else if programparam0 = 16
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16)
}
else if programparam0 = 15
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15)
}
else if programparam0 = 14
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14)
}
else if programparam0 = 13
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13)
}
else if programparam0 = 12
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12)
}
else if programparam0 = 11
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11)
}
else if programparam0 = 10
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10)
}
else if programparam0 = 9
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9)
}
else if programparam0 = 8
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8)
}
else if programparam0 = 7
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7)
}
else if programparam0 = 6
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6)
}
else if programparam0 = 5
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5)
}
else if programparam0 = 4
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4)
}
else if programparam0 = 3
{
%programparamvar1% := DllCall( programparam2, programparam3)
}
else if programparam0 = 2
{
%programparamvar1% := DllCall( programparam2)
}
}
else if programparamvar2 = VarSetCapacity
{
%programparamvar1% := VarSetCapacity(%programparam2%, programparam3, programparam4)
}
}
}
else
{
StringSplit, programparamvar, programparam1, =, %A_Space%%A_Tab%
%programparamvar1% = %programparamvar2%
}
}
}
If (last_is > 0 and is_block = 0)
break
}
}
}
else if looptimes = Parse
{
Loop, Parse, %loop_opt1%, %loop_opt2%, %loop_opt3%
{
inputparameters = %inputparameterssave%
;MsgBox, LOOP: %A_Index%
Loop
{
;Break when input is empty
If inputparameters =
{
break
}
;Break when end of loop or if
If (SubStr(inputparameters, 1, 2) = "}" . macroseparator)
{
StringTrimLeft, inputparameters, inputparameters, 2
break
}
;Exit when Macro is to cancel(pressed Pause Key)
If breaksendkeys = 1
{
breaksendkeys =
ToolTip, MACRO WAS CANCELED,,,20
SetTimer, RemoveToolTip, 1000
Loop
{
If runningprograms = 0
{
tooltippos = 0
break
}
ToolTip,,,, %runningprograms%
runningprograms--
If runningprograms > 0
tooltippos -= 14
}
Suspend, Off
BlockInput, Off
Exit
}
;Empty all parameters
Loop 20
{
programparam%A_Index% =
}
;Check if last item or cut off command
If InStr(inputparameters, macroseparator) = 0
{
programvar = %inputparameters%
inputparameters =
}
else
{
StringLeft, programvar, inputparameters, InStr(inputparameters, macroseparator)-1
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
}
;programvar = %programvar%
;Continue if comments
If InStr(programvar, ";") = 1
continue
else if InStr(programvar, "/*") = 1
{
If InStr(inputparameters, "*/") = 0
inputparameters =
else
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, "*/")+2
continue
}
;Cut off comments from Line
If RegExMatch(programvar, "\s;") > 0
{
StringLeft, programvar, programvar, RegExMatch(programvar, "\s;")-1
}
;Split Command into parameters, e.g MsgBox, hello: programparam1 will be MsgBox, programparam2 will be hello
If (RegExMatch(programvar, "^\w*\(") = 1 and SubStr(programvar, 0, 1) = ")")
{
StringTrimRight, programvar, programvar, 1
StringReplace, programvar, programvar, `(, `,
StringSplit, programparam, programvar, `,, %A_Space%
}
else
StringSplit, programparam, programvar, `,, %A_Space%
;If program has variables(%...%) it will load the variables into parameters
If (InStr(programvar, "`%") > 0 and programparam1 != "SendRaw")
{
AutoTrim, Off
Loop 20
{
programvarwithvariable := InStr(programparam%A_Index%, "`%", CaseSensitive = true)
If programvarwithvariable > 0
{
programparamtochangetemp := programparam%A_Index%
programparamtochange = %programparamtochangetemp%
;____________________________
tempvar =
Loop
{
If programparamtochange =
break
StringGetPos, programvarwithvariablepos, programparamtochange, `%
If Errorlevel = 1
{
tempvartoadd := programparamtochange
tempvar = %tempvar%%tempvartoadd%
break
}
If programvarwithvariablepos > 0
{
StringLeft, tempvartoadd, programparamtochange, %programvarwithvariablepos%
;MsgBox, nonvar: %tempvartoadd%
tempvar = %tempvar%%tempvartoadd%
StringTrimLeft, programparamtochange, programparamtochange, %programvarwithvariablepos%
}
else
{
StringTrimLeft, programparamtochange, programparamtochange, 1
StringLeft, tempvartoadd, programparamtochange, InStr(programparamtochange, "`%", CaseSensitive = true)
StringTrimRight, tempvartoadd, tempvartoadd, 1
StringTrimLeft, programparamtochange, programparamtochange, InStr(programparamtochange, "`%", CaseSensitive = true)
tempvartoadd := %tempvartoadd%
tempvar = %tempvar%%tempvartoadd%
}
}
programparam%A_Index% = %tempvar%
}
}
AutoTrim, On
}
;If no commas (,) than only 1 parameter, so send command(e.g. !{TAB}), loop(e.g. 10) or own macro/folder/program/website
If programparam0 = 1
{
If programparam1 is alnum
{
out := programparam1
If %out%2 =
{
out=
}
else
{
GoSub, Runvar
Sleep, 100
continue
}
}
}
;Replace tabs, linefeeds, and remove quotation marks(if at the end and beginnig only, requiered for DllCall) in parameters
Loop 20
{
IfInString, programparam%A_Index%, ``t
{
StringReplace, programparam%A_Index%, programparam%A_Index%, ``t, %A_Tab%, A
}
IfInString, programparam%A_Index%, ``n
{
StringReplace, programparam%A_Index%, programparam%A_Index%, ``n, `n, A
}
If (quotationmark = SubStr(programparam%A_Index%, 1, 1) and quotationmark = SubStr(programparam%A_Index%, 0, 1))
{
StringTrimLeft, programparam%A_Index%, programparam%A_Index%, 1
StringTrimRight, programparam%A_Index%, programparam%A_Index%, 1
}
}
;Display command when variable/macro setdebugger is ON
If (debuggerison = "ON" and programparam1 != "}")
{
tooltipdebugger=
Loop %programparam0%
{
tooltipdebuggertmp := programparam%A_Index%
tooltipdebugger = %tooltipdebugger%%tooltipdebuggertmp%`,
}
StringTrimRight, tooltipdebugger, tooltipdebugger, 1
ToolTip % tooltipdebugger,,,20
Sleep, %debuggerslowdown%
}
;Runs a Loop or an If statement
If programparam1 = Loop
{
was_block = %is_block%
;MsgBox, starting loop:`n%inputparameters%
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
StringTrimLeft, inputparameters, inputparameters, 2
is_block = 1
}
else
is_block = 0
input := inputparameters
is_loop++
last_was = %last_is%
last_is = 2
inputparameters:=RunMacro(programparam2,is_if,is_loop,is_block,last_is, programparam3, programparam4, programparam5)
is_loop--
last_is = %last_was%
if was_block = 1
{
was_block = 0
is_block = 1
}
;MsgBox, ENDE`nloop: %is_loop%`nif: %is_if%`nblock: %is_block%`nlast: %last_is%
;MsgBox, returned with:`n%inputparameters%
continue
}
else if ((programparam1 = "If" and programparam5 = "") or ((programparam1 = "IMB" or programparam1 = "IfMsgBox" or programparam1 = "IE" or programparam1 = "IfExist" or programparam1 = "INE" or programparam1 = "IfNotExist") and programparam3 = "") or ((programparam1 = "IEQ" or programparam1 = "INEQ" or programparam1 = "IG" or programparam1 = "IGOE" or programparam1 = "IL" or programparam1 = "ILOE" or programparam1 = "IIS" or programparam1 = "INIS" or programparam1 = "IfEqual" or programparam1 = "IfNotEqual" or programparam1 = "IfGreater" or programparam1 = "IfGreaterOrEqual" or programparam1 = "IfLess" or programparam1 = "IfLessOrEqual" or programparam1 = "IfInString" or programparam1 = "IfNotInString") and programparam4 = "") or ((programparam1 = "IWA" or programparam1 = "IWNA" or programparam1 = "IWE" or programparam1 = "IWNE" or programparam1 = "IfWinActive" or programparam1 = "IfWinNotActive" or programparam1 = "IfWinExist" or programparam1 = "IfWinNotExist") and programparam6 = ""))
{
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
was_block = %is_block%
is_if++
last_was = %last_is%
last_is = 1
If Ifstatement() = 1
{
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
StringTrimLeft, inputparameters, inputparameters, 2
is_block = 1
}
else
is_block = 0
input := inputparameters
inputparameters := RunMacro(1,is_if,is_loop, is_block, last_is)
last_is = %last_was%
is_if--
is_block = %was_block%
If (SubStr(inputparameters, 1, 4) = "else")
{
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
If (InStr(inputparameters, macroifloopblockend) != 0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+1
else
inputparameters =
}
else if (InStr(inputparameters, macroseparator) !=0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
else
inputparameters =
}
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
}
else
{
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
If (InStr(inputparameters, macroifloopblockend) != 0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+1
else
inputparameters =
}
else if (InStr(inputparameters, macroseparator) !=0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
else
inputparameters =
}
If (SubStr(inputparameters, 1, 4) = "else")
{
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
StringTrimLeft, inputparameters, inputparameters, 2
is_block = 1
}
else
is_block = 0
input := inputparameters
inputparameters := RunMacro(1,is_if,is_loop, is_block, last_is)
last_is = %last_was%
is_if--
is_block = %was_block%
}
;MsgBox, if:%inputparameters%
continue
}
;If programparam1 = else, needs to delete as if used than it would run before
If programparam1 = else
{
If (InStr(inputparameters, macroifloopblockend) != 0 and InStr(inputparameters, "{") = 1)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+1
else if (InStr(inputparameters, macroseparator) !=0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
else
inputparameters =
}
;Run command if exists/allowed
IfInString, workingcommands, %programparam1%|
{
If (programparam1 != "" and programparam1 != "break" and programparam1 != "continue")
{
GoSub, %programparam1%
}
}
else if (RegExMatch(programparam1, "^\w*\s?\s?=") = 0 and RegExMatch(programparam1, "^\w*\s?\s?:=") = 0 and programparam1 != "}")
{
Send, %programvar%
continue
}
;!!!!!!!!!!!Return when Return is used
If programparam1 = Return
{
inputparameters =
Return "return" ;Unclear!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
;Will break or continue if in a loop
If (programparam1 = "break" or programparam1 = "continue")
{
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
If is_block > 0
{
If InStr(inputparameters, "}" . macroseparator) = 1
StringTrimLeft, inputparameters, inputparameters, 2
else
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+2
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
}
If is_loop > 0
{
If last_is = 1
inputparameters := programparam1 . macroseparator . inputparameters
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
Return inputparameters
}
}
;Used for var=Value or var:=value or var:=DllCall,.... and so on
IfInString, programparam1, =
{
If (programparam0 = 1 or InStr(programparam1, "FileExist") or InStr(programparam1, "GetKeyState") or InStr(programparam1, "InStr") or InStr(programparam1, "RegExMatch") or InStr(programparam1, "RegExReplace") or InStr(programparam1, "SubStr") or InStr(programparam1, "StrLen") or InStr(programparam1, "WinActive") or InStr(programparam1, "WinExist") or InStr(programparam1, "Asc") or InStr(programparam1, "Chr") or InStr(programparam1, "DllCall") or InStr(programparam1, VarSetCapacity))
{
IfInString, programparam1, :=
{
StringReplace, programparam1, programparam1, :=, =
StringSplit, programparamvar, programparam1, =, %A_Space%%A_Tab%
;MSgBox, %programparamvar1%`n%programparamvar2%
If programparam2 =
{
%programparamvar1% := %programparamvar2%
}
else
{
If programparamvar2 = FileExist
{
%programparamvar1% := FileExist(programparam2)
}
else if programparamvar2 = GetKeyState
{
%programparamvar1% := GetKeyState(programparam2,programparam3)
}
else if programparamvar2 = InStr
{
MsgBox, 1: %programparam1%`n2: %programparam2%`n2: %programparam3%`n2: %programparam4%
%programparamvar1% := InStr(%programparam2%, programparam3,programparam4, programparam5)
}
else if programparamvar2 = RegExMatch
{
%programparamvar1% := RegExMatch(%programparam2%, programparam3, programparam4, programparam5)
}
else if programparamvar2 = RegExReplace
{
%programparamvar1% := RegExReplace(%programparam2%, programparam3, programparam4, programparam5, programparam6, programparam7)
}
else if programparamvar2 = SubStr
{
%programparamvar1% := SubStr(programparam2, programparam3, programparam4)
}
else if programparamvar2 = StrLen
{
%programparamvar1% := StrLen(programparam2)
}
else if programparamvar2 = WinActive
{
%programparamvar1% := WinActive(programparam2, programparam3, programparam4, programparam5)
}
else if programparamvar2 = WinExist
{
%programparamvar1% := WinExist(programparam2, programparam3, programparam4, programparam5)
}
else if programparamvar2 = Asc
{
%programparamvar1% := Asc(programparam2)
}
else if programparamvar2 = Chr
{
%programparamvar1% := Chr(programparam2)
}
else if programparamvar2 = DllCall
{
If programparam0 = 20
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18, programparam19, programparam20)
}
else if programparam0 = 19
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18, programparam19)
}
else if programparam0 = 18
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18)
}
else if programparam0 = 17
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17)
}
else if programparam0 = 16
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16)
}
else if programparam0 = 15
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15)
}
else if programparam0 = 14
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14)
}
else if programparam0 = 13
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13)
}
else if programparam0 = 12
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12)
}
else if programparam0 = 11
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11)
}
else if programparam0 = 10
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10)
}
else if programparam0 = 9
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9)
}
else if programparam0 = 8
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8)
}
else if programparam0 = 7
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7)
}
else if programparam0 = 6
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6)
}
else if programparam0 = 5
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5)
}
else if programparam0 = 4
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4)
}
else if programparam0 = 3
{
%programparamvar1% := DllCall( programparam2, programparam3)
}
else if programparam0 = 2
{
%programparamvar1% := DllCall( programparam2)
}
}
else if programparamvar2 = VarSetCapacity
{
%programparamvar1% := VarSetCapacity(%programparam2%, programparam3, programparam4)
}
}
}
else
{
StringSplit, programparamvar, programparam1, =, %A_Space%%A_Tab%
%programparamvar1% = %programparamvar2%
}
}
}
If (last_is > 0 and is_block = 0)
break
}
}
}
else
{
Loop, %looptimes%, %loop_opt1%, %loop_opt2%, %loop_opt3%
{
inputparameters = %inputparameterssave%
;MsgBox, LOOP: %A_Index%
Loop
{
;Break when input is empty
If inputparameters =
{
break
}
;Break when end of loop or if
If (SubStr(inputparameters, 1, 2) = "}" . macroseparator)
{
StringTrimLeft, inputparameters, inputparameters, 2
break
}
;Exit when Macro is to cancel(pressed Pause Key)
If breaksendkeys = 1
{
breaksendkeys =
ToolTip, MACRO WAS CANCELED,,,20
SetTimer, RemoveToolTip, 1000
Loop
{
If runningprograms = 0
{
tooltippos = 0
break
}
ToolTip,,,, %runningprograms%
runningprograms--
If runningprograms > 0
tooltippos -= 14
}
Suspend, Off
BlockInput, Off
Exit
}
;Empty all parameters
Loop 20
{
programparam%A_Index% =
}
;Check if last item or cut off command
If InStr(inputparameters, macroseparator) = 0
{
programvar = %inputparameters%
inputparameters =
}
else
{
StringLeft, programvar, inputparameters, InStr(inputparameters, macroseparator)-1
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
}
;programvar = %programvar%
;Continue if comments
If InStr(programvar, ";") = 1
continue
else if InStr(programvar, "/*") = 1
{
If InStr(inputparameters, "*/") = 0
inputparameters =
else
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, "*/")+2
continue
}
;Cut off comments from Line
If RegExMatch(programvar, "\s;") > 0
{
StringLeft, programvar, programvar, RegExMatch(programvar, "\s;")-1
}
;Split Command into parameters, e.g MsgBox, hello: programparam1 will be MsgBox, programparam2 will be hello
If (RegExMatch(programvar, "^\w*\(") = 1 and SubStr(programvar, 0, 1) = ")")
{
StringTrimRight, programvar, programvar, 1
StringReplace, programvar, programvar, `(, `,
StringSplit, programparam, programvar, `,, %A_Space%
}
else
StringSplit, programparam, programvar, `,, %A_Space%
;If program has variables(%...%) it will load the variables into parameters
If (InStr(programvar, "`%") > 0 and programparam1 != "SendRaw")
{
AutoTrim, Off
Loop 20
{
programvarwithvariable := InStr(programparam%A_Index%, "`%", CaseSensitive = true)
If programvarwithvariable > 0
{
programparamtochangetemp := programparam%A_Index%
programparamtochange = %programparamtochangetemp%
;____________________________
tempvar =
Loop
{
If programparamtochange =
break
StringGetPos, programvarwithvariablepos, programparamtochange, `%
If Errorlevel = 1
{
tempvartoadd := programparamtochange
tempvar = %tempvar%%tempvartoadd%
break
}
If programvarwithvariablepos > 0
{
StringLeft, tempvartoadd, programparamtochange, %programvarwithvariablepos%
;MsgBox, nonvar: %tempvartoadd%
tempvar = %tempvar%%tempvartoadd%
StringTrimLeft, programparamtochange, programparamtochange, %programvarwithvariablepos%
}
else
{
StringTrimLeft, programparamtochange, programparamtochange, 1
StringLeft, tempvartoadd, programparamtochange, InStr(programparamtochange, "`%", CaseSensitive = true)
StringTrimRight, tempvartoadd, tempvartoadd, 1
StringTrimLeft, programparamtochange, programparamtochange, InStr(programparamtochange, "`%", CaseSensitive = true)
tempvartoadd := %tempvartoadd%
tempvar = %tempvar%%tempvartoadd%
}
}
programparam%A_Index% = %tempvar%
}
}
AutoTrim, On
}
;If no commas (,) than only 1 parameter, so send command(e.g. !{TAB}), loop(e.g. 10) or own macro/folder/program/website
If programparam0 = 1
{
If programparam1 is alnum
{
out := programparam1
If %out%2 =
{
out=
}
else
{
GoSub, Runvar
Sleep, 100
continue
}
}
}
;Replace tabs, linefeeds, and remove quotation marks(if at the end and beginnig only, requiered for DllCall) in parameters
Loop 20
{
IfInString, programparam%A_Index%, ``t
{
StringReplace, programparam%A_Index%, programparam%A_Index%, ``t, %A_Tab%, A
}
IfInString, programparam%A_Index%, ``n
{
StringReplace, programparam%A_Index%, programparam%A_Index%, ``n, `n, A
}
If (quotationmark = SubStr(programparam%A_Index%, 1, 1) and quotationmark = SubStr(programparam%A_Index%, 0, 1))
{
StringTrimLeft, programparam%A_Index%, programparam%A_Index%, 1
StringTrimRight, programparam%A_Index%, programparam%A_Index%, 1
}
}
;Display command when variable/macro setdebugger is ON
If (debuggerison = "ON" and programparam1 != "}")
{
tooltipdebugger=
Loop %programparam0%
{
tooltipdebuggertmp := programparam%A_Index%
tooltipdebugger = %tooltipdebugger%%tooltipdebuggertmp%`,
}
StringTrimRight, tooltipdebugger, tooltipdebugger, 1
ToolTip % tooltipdebugger,,,20
Sleep, %debuggerslowdown%
}
;Runs a Loop or an If statement
If programparam1 = Loop
{
was_block = %is_block%
;MsgBox, starting loop:`n%inputparameters%
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
StringTrimLeft, inputparameters, inputparameters, 2
is_block = 1
}
else
is_block = 0
input := inputparameters
is_loop++
last_was = %last_is%
last_is = 2
inputparameters:=RunMacro(programparam2,is_if,is_loop,is_block,last_is, programparam3, programparam4, programparam5)
is_loop--
last_is = %last_was%
if was_block = 1
{
was_block = 0
is_block = 1
}
;MsgBox, ENDE`nloop: %is_loop%`nif: %is_if%`nblock: %is_block%`nlast: %last_is%
;MsgBox, returned with:`n%inputparameters%
continue
}
else if ((programparam1 = "If" and programparam5 = "") or ((programparam1 = "IMB" or programparam1 = "IfMsgBox" or programparam1 = "IE" or programparam1 = "IfExist" or programparam1 = "INE" or programparam1 = "IfNotExist") and programparam3 = "") or ((programparam1 = "IEQ" or programparam1 = "INEQ" or programparam1 = "IG" or programparam1 = "IGOE" or programparam1 = "IL" or programparam1 = "ILOE" or programparam1 = "IIS" or programparam1 = "INIS" or programparam1 = "IfEqual" or programparam1 = "IfNotEqual" or programparam1 = "IfGreater" or programparam1 = "IfGreaterOrEqual" or programparam1 = "IfLess" or programparam1 = "IfLessOrEqual" or programparam1 = "IfInString" or programparam1 = "IfNotInString") and programparam4 = "") or ((programparam1 = "IWA" or programparam1 = "IWNA" or programparam1 = "IWE" or programparam1 = "IWNE" or programparam1 = "IfWinActive" or programparam1 = "IfWinNotActive" or programparam1 = "IfWinExist" or programparam1 = "IfWinNotExist") and programparam6 = ""))
{
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
was_block = %is_block%
is_if++
last_was = %last_is%
last_is = 1
If Ifstatement() = 1
{
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
StringTrimLeft, inputparameters, inputparameters, 2
is_block = 1
}
else
is_block = 0
input := inputparameters
inputparameters := RunMacro(1,is_if,is_loop, is_block, last_is)
last_is = %last_was%
is_if--
is_block = %was_block%
If (SubStr(inputparameters, 1, 4) = "else")
{
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
If (InStr(inputparameters, macroifloopblockend) != 0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+1
else
inputparameters =
}
else if (InStr(inputparameters, macroseparator) !=0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
else
inputparameters =
}
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
}
else
{
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
If (InStr(inputparameters, macroifloopblockend) != 0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+1
else
inputparameters =
}
else if (InStr(inputparameters, macroseparator) !=0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
else
inputparameters =
}
If (SubStr(inputparameters, 1, 4) = "else")
{
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
If (SubStr(inputparameters, 1, 2) = macroifloopblock)
{
StringTrimLeft, inputparameters, inputparameters, 2
is_block = 1
}
else
is_block = 0
input := inputparameters
inputparameters := RunMacro(1,is_if,is_loop, is_block, last_is)
last_is = %last_was%
is_if--
is_block = %was_block%
}
;MsgBox, if:%inputparameters%
continue
}
;If programparam1 = else, needs to delete as if used than it would run before
If programparam1 = else
{
If (InStr(inputparameters, macroifloopblockend) != 0 and InStr(inputparameters, "{") = 1)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+1
else if (InStr(inputparameters, macroseparator) !=0)
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroseparator)
else
inputparameters =
}
;Run command if exists/allowed
IfInString, workingcommands, %programparam1%|
{
If (programparam1 != "" and programparam1 != "break" and programparam1 != "continue")
{
GoSub, %programparam1%
}
}
else if (RegExMatch(programparam1, "^\w*\s?\s?=") = 0 and RegExMatch(programparam1, "^\w*\s?\s?:=") = 0 and programparam1 != "}")
{
Send, %programvar%
continue
}
;!!!!!!!!!!!Return when Return is used
If programparam1 = Return
{
inputparameters =
Return "return" ;Unclear!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
;Will break or continue if in a loop
If (programparam1 = "break" or programparam1 = "continue")
{
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
If is_block > 0
{
If InStr(inputparameters, "}" . macroseparator) = 1
StringTrimLeft, inputparameters, inputparameters, 2
else
StringTrimLeft, inputparameters, inputparameters, InStr(inputparameters, macroifloopblockend)+2
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
}
If is_loop > 0
{
If last_is = 1
inputparameters := programparam1 . macroseparator . inputparameters
;MsgBox, %inputparameters%`n%is_loop%%is_if%%is_block%%last_is%
Return inputparameters
}
}
;Used for var=Value or var:=value or var:=DllCall,.... and so on
IfInString, programparam1, =
{
If (programparam0 = 1 or InStr(programparam1, "FileExist") or InStr(programparam1, "GetKeyState") or InStr(programparam1, "InStr") or InStr(programparam1, "RegExMatch") or InStr(programparam1, "RegExReplace") or InStr(programparam1, "SubStr") or InStr(programparam1, "StrLen") or InStr(programparam1, "WinActive") or InStr(programparam1, "WinExist") or InStr(programparam1, "Asc") or InStr(programparam1, "Chr") or InStr(programparam1, "DllCall") or InStr(programparam1, VarSetCapacity))
{
IfInString, programparam1, :=
{
StringReplace, programparam1, programparam1, :=, =
StringSplit, programparamvar, programparam1, =, %A_Space%%A_Tab%
;MSgBox, %programparamvar1%`n%programparamvar2%
If programparam2 =
{
%programparamvar1% := %programparamvar2%
}
else
{
If programparamvar2 = FileExist
{
%programparamvar1% := FileExist(programparam2)
}
else if programparamvar2 = GetKeyState
{
%programparamvar1% := GetKeyState(programparam2,programparam3)
}
else if programparamvar2 = InStr
{
MsgBox, 1: %programparam1%`n2: %programparam2%`n2: %programparam3%`n2: %programparam4%
%programparamvar1% := InStr(%programparam2%, programparam3,programparam4, programparam5)
}
else if programparamvar2 = RegExMatch
{
%programparamvar1% := RegExMatch(%programparam2%, programparam3, programparam4, programparam5)
}
else if programparamvar2 = RegExReplace
{
%programparamvar1% := RegExReplace(%programparam2%, programparam3, programparam4, programparam5, programparam6, programparam7)
}
else if programparamvar2 = SubStr
{
%programparamvar1% := SubStr(programparam2, programparam3, programparam4)
}
else if programparamvar2 = StrLen
{
%programparamvar1% := StrLen(programparam2)
}
else if programparamvar2 = WinActive
{
%programparamvar1% := WinActive(programparam2, programparam3, programparam4, programparam5)
}
else if programparamvar2 = WinExist
{
%programparamvar1% := WinExist(programparam2, programparam3, programparam4, programparam5)
}
else if programparamvar2 = Asc
{
%programparamvar1% := Asc(programparam2)
}
else if programparamvar2 = Chr
{
%programparamvar1% := Chr(programparam2)
}
else if programparamvar2 = DllCall
{
If programparam0 = 20
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18, programparam19, programparam20)
}
else if programparam0 = 19
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18, programparam19)
}
else if programparam0 = 18
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18)
}
else if programparam0 = 17
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17)
}
else if programparam0 = 16
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16)
}
else if programparam0 = 15
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15)
}
else if programparam0 = 14
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14)
}
else if programparam0 = 13
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13)
}
else if programparam0 = 12
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12)
}
else if programparam0 = 11
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11)
}
else if programparam0 = 10
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10)
}
else if programparam0 = 9
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9)
}
else if programparam0 = 8
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8)
}
else if programparam0 = 7
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7)
}
else if programparam0 = 6
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5, programparam6)
}
else if programparam0 = 5
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4, programparam5)
}
else if programparam0 = 4
{
%programparamvar1% := DllCall( programparam2, programparam3, programparam4)
}
else if programparam0 = 3
{
%programparamvar1% := DllCall( programparam2, programparam3)
}
else if programparam0 = 2
{
%programparamvar1% := DllCall( programparam2)
}
}
else if programparamvar2 = VarSetCapacity
{
%programparamvar1% := VarSetCapacity(%programparam2%, programparam3, programparam4)
}
}
}
else
{
StringSplit, programparamvar, programparam1, =, %A_Space%%A_Tab%
%programparamvar1% = %programparamvar2%
}
}
}
If (last_is > 0 and is_block = 0)
break
}
}
}
Return inputparameters
}
;____________________________________
;#Include commands.txt
1Include_commands:
AT:
AutoTrim:
AutoTrim, %programparam2%
Return
BI:
BlockInput:
BlockInput, %programparam2%
Return
C:
Click:
Click %programparam2%, %programparam3%, %programparam4%
Return
CW:
ClipWait:
ClipWait, %programparam2%, %programparam3%
Error_Level = %Errorlevel%
Return
CTRL:
Control:
Control, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%
Error_Level = %Errorlevel%
Return
CC:
ControlClick:
ControlClick, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%
Error_Level = %Errorlevel%
Return
CF:
ControlFocus:
ControlFocus, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Error_Level = %Errorlevel%
Return
CG:
ControlGet:
ControlGet, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%
Error_Level = %Errorlevel%
Return
CGF:
ControlGetFocus:
ControlGetFocus, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Error_Level = %Errorlevel%
Return
CGP:
ControlGetPos:
ControlGetPos, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%, %programparam10%
Return
CMO:
ControlMove:
ControlMove, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%, %programparam10%
Error_Level = %Errorlevel%
Return
CGT:
ControlGetText:
ControlGetText, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%
Error_Level = %Errorlevel%
Return
CS:
ControlSend:
ControlSend, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%
Error_Level = %Errorlevel%
Return
CSR:
ControlSendRaw:
ControlSendRaw, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%
Error_Level = %Errorlevel%
Return
CST:
ControlSetText:
ControlSetText, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%
Error_Level = %Errorlevel%
Return
CM:
CoordMode:
CoordMode, %programparam2%, %programparam3%
Return
CR:
Critical:
Critical, %programparam2%
Return
DHT:
DetectHiddenText:
DetectHiddenText, %programparam2%
Return
DHW:
DetectHiddenWindows:
DetectHiddenWindows, %programparam2%
Return
DC:
DllCall:
If programparam0 = 20
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18, programparam19, programparam20)
}
else if programparam0 = 19
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18, programparam19)
}
else if programparam0 = 18
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17, programparam18)
}
else if programparam0 = 17
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16, programparam17)
}
else if programparam0 = 16
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15, programparam16)
}
else if programparam0 = 15
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14, programparam15)
}
else if programparam0 = 14
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13, programparam14)
}
else if programparam0 = 13
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12, programparam13)
}
else if programparam0 = 12
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11, programparam12)
}
else if programparam0 = 11
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10, programparam11)
}
else if programparam0 = 10
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9, programparam10)
}
else if programparam0 = 9
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8, programparam9)
}
else if programparam0 = 8
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7, programparam8)
}
else if programparam0 = 7
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6, programparam7)
}
else if programparam0 = 6
{
DllCall( programparam2, programparam3, programparam4, programparam5, programparam6)
}
else if programparam0 = 5
{
DllCall( programparam2, programparam3, programparam4, programparam5)
}
else if programparam0 = 4
{
DllCall( programparam2, programparam3, programparam4)
}
else if programparam0 = 3
{
DllCall( programparam2, programparam3)
}
else if programparam0 = 2
{
DllCall( programparam2)
}
Error_Level = %Errorlevel%
Return
D:
Drive:
Drive, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
DG:
DriveGet:
DriveGet, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
DSF:
DriveSpaceFree:
DriveSpaceFree, %programparam2%, %programparam3%
Return
ES:
EnvSet:
EnvSet, %programparam2%, %programparam3%
Error_Level = %Errorlevel%
Return
EG:
EnvGet:
EnvGet, %programparam2%, %programparam3%
Return
EU:
EnvUpdate:
EnvUpdate
Error_Level = %Errorlevel%
Return
ESU:
EnvSub:
EnvSub, %programparam2%, %programparam3%
Return
EA:
EnvAdd:
EnvAdd, %programparam2%, %programparam3%
Return
ED:
EnvDiv:
EnvDiv, %programparam2%, %programparam3%
Return
EM:
EnvMult:
EnvMult, %programparam2%, %programparam3%
Return
E:
Exit:
ToolTip, , , , 20
Loop
{
If runningprograms = 0
{
tooltippos = 0
break
}
ToolTip,,,, %runningprograms%
runningprograms--
If runningprograms > 0
tooltippos -= 14
}
Exit, %programparam2%
Return
EAP:
ExitApp:
ExitApp
Return
FA:
FileAppend:
FileAppend, %programparam2%, %programparam3%
Error_Level = %Errorlevel%
Return
FC:
FileCopy:
FileCopy, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
FCD:
FileCopyDir:
FileCopyDir, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
FCDIR:
FileCreateDir:
FileCreateDir, %programparam2%
Error_Level = %Errorlevel%
Return
FCS:
FileCreateShortcut:
FileCreateShortcut, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%, %programparam10%
Error_Level = %Errorlevel%
Return
FD:
FileDelete:
FileDelete, %programparam2%
Error_Level = %Errorlevel%
Return
FGA:
FileGetAttrib:
FileGetAttrib, %programparam2%, %programparam3%
Error_Level = %Errorlevel%
Return
FGS:
FileGetSize:
FileGetSize, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
FGSH:
FileGetShortcut:
FileGetShortcut, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%
Error_Level = %Errorlevel%
Return
FGT:
FileGetTime:
FileGetTime, %programparam2%, %programparam3%, %programparam3%
Error_Level = %Errorlevel%
Return
FGV:
FileGetVersion:
FileGetVersion, %programparam2%, %programparam3%
Error_Level = %Errorlevel%
Return
FM:
FileMove:
FileMove, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
FMD:
FileMoveDir:
FileMoveDir, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
FR:
FileRead:
FileRead, %programparam2%, %programparam3%
Error_Level = %Errorlevel%
Return
FRL:
FileReadLine:
FileReadLine, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
FRC:
FileRecycle:
FileRecycle, %programparam2%
Error_Level = %Errorlevel%
Return
FRE:
FileRecycleEmpty:
FileRecycleEmpty, %programparam2%
Error_Level = %Errorlevel%
Return
FRD:
FileRemoveDir:
FileRemoveDir, %programparam2%, %programparam3%
Error_Level = %Errorlevel%
Return
FSD:
FileSelectFile:
FileSelectFile, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Error_Level = %Errorlevel%
Return
FSF:
FileSelectFolder:
FileSelectFolder, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Error_Level = %Errorlevel%
Return
FSA:
FileSetAttrib:
FileSetAttrib, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Error_Level = %Errorlevel%
Return
FST:
FileSetTime:
FileSetTime, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Error_Level = %Errorlevel%
Return
FT:
FormatTime:
FormatTime, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
GKS:
GetKeyState:
GetKeyState, %programparam2%, %programparam3%, %programparam4%
Return
GA:
GroupActivate:
GroupActivate, %programparam2%, %programparam3%
Return
GADD:
GroupAdd:
GroupAdd, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%
Return
GCL:
GroupClose:
GroupClose, %programparam2%, %programparam3%
Return
H:
Hotkey:
Hotkey, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
GS:
GoSub:
GoSub, %programparam2%
Return
GT:
GoTo:
Goto, %programparam2%
Return
IMB:
IfMsgBox:
{
IfMsgBox, %programparam2%
{
count = 3
Loop 18
{
programparam%A_Index% := programparam%count%
count++
}
IfInString, workingcommands, %programparam1%|
GoSub, %programparam1%
IfNotInString, programparam1, `%
{
out := programparam1
If %out%2 =
{
out = ;!!!!!!!!!!!!
}
else
{
out := programparam1
GoSub, Runvar
Return
}
}
IfInString, programparam1, `%
{
StringReplace, programsubtorun, programparam1, `%, , A
;MsgBox % %programsubtorun%
out := %programsubtorun%
Sleep, 100
If out is digit
{
}
else
{
GoSub, Runvar
Return
}
}
}
Return
}
IEQ:
INEQ:
IG:
IGOE:
IL:
ILOE:
IIS:
INIS:
IWA:
IWNA:
IWE:
IWNE:
IE:
INE:
IfEqual:
IfNotEqual:
IfGreater:
IfGreaterOrEqual:
IfLess:
IfLessOrEqual:
IfInString:
IfNotInString:
IfWinActive:
IfWinNotActive:
IfWinExist:
IfWinNotExist:
IfExist:
IfNotExist:
{
loopcount=
If (programparam1 = "IfEqual" || programparam1 = "IEQ")
{
IfEqual, %programparam2%, %programparam3%
{
ifcount=4
loopcount=17
out = %programparam4%
programparam0 -= 3
}
else
Return
}
If (programparam1 = "IfNotEqual" || programparam1 = "INEQ")
{
IfNotEqual, %programparam2%, %programparam3%
{
ifcount=4
loopcount=17
out = %programparam4%
programparam0 -= 3
}
else
Return
}
If (programparam1 = "IfLess" || programparam1 = "IL")
{
IfLess, %programparam2%, %programparam3%
{
ifcount=4
loopcount=17
out = %programparam4%
programparam0 -= 3
}
else
Return
}
If (programparam1 = "IfLessOrEqual" || programparam1 = "ILOE")
{
IfLessOrEqual, %programparam2%, %programparam3%
{
ifcount=4
loopcount=17
out = %programparam4%
programparam0 -= 3
}
else
Return
}
If (programparam1 = "IfGreater" || programparam1 = "IG")
{
IfGreater, %programparam2%, %programparam3%
{
ifcount=4
loopcount=17
out = %programparam4%
programparam0 -= 3
}
else
Return
}
If (programparam1 = "IfGreaterOrEqual" || programparam1 = "IGOE")
{
IfGreaterOrEqual, %programparam2%, %programparam3%
{
ifcount=4
loopcount=17
out = %programparam4%
programparam0 -= 3
}
else
Return
}
If (programparam1 = "IfInString" || programparam1 = "IIS")
{
IfInString, %programparam2%, %programparam3%
{
ifcount=4
loopcount=17
out = %programparam4%
programparam0 -= 3
}
else
Return
}
If (programparam1 = "IfNotInString" || programparam1 = "INIS")
{
IfNotInString, %programparam2%, %programparam3%
{
ifcount=4
loopcount=17
out = %programparam4%
programparam0 -= 3
}
else
Return
}
If (programparam1 = "IfWinActive" || programparam1 = "IWA")
{
IfWinActive, %programparam2%, %programparam3%, %programparam4%, %programparam5%
{
ifcount=6
loopcount=15
out = %programparam6%
programparam0 -= 5
}
else
Return
}
If (programparam1 = "IfWinNotActive" || programparam1 = "IWNA")
{
IfWinNotActive, %programparam2%, %programparam3%, %programparam4%, %programparam5%
{
ifcount=6
loopcount=15
out = %programparam6%
programparam0 -= 5
}
else
Return
}
If (programparam1 = "IfWinExist" || programparam1 = "IWE")
{
IfWinExist, %programparam2%, %programparam3%, %programparam4%, %programparam5%
{
ifcount=6
loopcount=15
out = %programparam6%
programparam0 -= 5
}
else
Return
}
If (programparam1 = "IfWinNotExist" || programparam1 = "IWNE")
{
IfWinNotExist, %programparam2%, %programparam3%, %programparam4%, %programparam5%
{
ifcount=6
loopcount=15
out = %programparam6%
programparam0 -= 5
}
else
Return
}
If (programparam1 = "IfExist" || programparam1 = "IE")
{
IfExist, %programparam2%
{
ifcount=3
loopcount=18
out = %programparam3%
programparam0 -= 2
}
else
Return
}
If (programparam1 = "IfNotExist" || programparam1 = "INE")
{
IfNotExist, %programparam2%
{
ifcount=3
loopcount=18
out = %programparam3%
programparam0 -= 2
}
else
Return
}
Loop %loopcount%
{
;MsgBox % programparam%A_Index% programparam%ifcount%
programparam%A_Index% := programparam%ifcount%
;MsgBox % programparam%A_Index%
ifcount++
}
If out is alnum
{
If %out%2 =
{
out=
}
else
{
If programparam0 = 1
{
RunVar()
Return
}
}
}
else
out =
If loopcount =
Return
;MsgBox % programparam1
IfInString, workingcommands, %programparam1%|
{
If (programparam1 != "continue" and programparam1 != "break")
GoSub, %programparam1%
}
loopcount=
;If programparam1 = Return
;wantreturn = 1
Return
}
KW:
KeyWait:
KeyWait, %programparam2%, %programparam3%
Error_Level = %Errorlevel%
Return
M:
Menu:
Menu, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Return
MC:
MouseClick:
MouseClick, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%
Return
MCD:
MouseClickDrag:
MouseClickDrag, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%
Return
MGP:
MouseGetPos:
MouseGetPos, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Return
MM:
MouseMove:
MouseMove, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return
MB:
MsgBox:
SetEnv, checkifmsgboxfull, %programparam3%%programparam4%%programparam5%
IfNotEqual, checkifmsgboxfull, , SetEnv, checkifmsgboxfull, 1
If programparam2 is digit
{
If checkifmsgboxfull = 1
{
;MsgBox % programparam2
If programparam2 < 1
MsgBox, 0, %programparam3%, %programparam4%, %programparam5%
else if programparam2 = 1
{
MsgBox, 1, %programparam3%, %programparam4%, %programparam5%
}
else if programparam2 = 2
{
MsgBox, 2, %programparam3%, %programparam4%, %programparam5%
}
else if programparam2 = 3
{
MsgBox, 3, %programparam3%, %programparam4%, %programparam5%
}
else if programparam2 = 4
{
MsgBox, 4, %programparam3%, %programparam4%, %programparam5%
}
else if programparam2 = 5
{
MsgBox, 5, %programparam3%, %programparam4%, %programparam5%
}
else if programparam2 = 6
{
MsgBox, 6, %programparam3%, %programparam4%, %programparam5%
}
else if programparam2 = 262144
{
MsgBox, 262144, %programparam3%, %programparam4%, %programparam5%
}
else if programparam2 = 262145
{
MsgBox, 262145, %programparam3%, %programparam4%, %programparam5%
}
else if programparam2 = 262146
{
MsgBox, 262146, %programparam3%, %programparam4%, %programparam5%
}
else if programparam2 = 262147
{
MsgBox, 262147, %programparam3%, %programparam4%, %programparam5%
}
else if programparam2 = 262148
{
MsgBox, 262148, %programparam3%, %programparam4%, %programparam5%
}
else if programparam2 = 262149
{
MsgBox, 262149, %programparam3%, %programparam4%, %programparam5%
}
else if programparam2 = 262150
{
MsgBox, 262150, %programparam3%, %programparam4%, %programparam5%
}
}
else
{
MsgBox, %programparam2% %programparam3% %programparam4% %programparam5% %programparam6% %programparam7% %programparam8% %programparam9% %programparam10% %programparam11% %programparam12% %programparam13% %programparam14% %programparam15% %programparam16% %programparam17% %programparam18% %programparam19% %programparam20%
}
}
else
{
MsgBox, %programparam2% %programparam3% %programparam4% %programparam5% %programparam6% %programparam7% %programparam8% %programparam9% %programparam10% %programparam11% %programparam12% %programparam13% %programparam14% %programparam15% %programparam16% %programparam17% %programparam18% %programparam19% %programparam20%
}
Return
OE:
OnExit:
OnExit, %programparam2%
Return
PGC:
PixelGetColor:
PixelGetColor, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Error_Level = %Errorlevel%
Return
PS:
PixelSearch:
PixelSearch, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%, %programparam10%
Error_Level = %Errorlevel%
Return
PWC:
PixelWaitColor: ;(ByRef programparam2, ByRef programparam3, p_x1, p_y1, p_x2, p_y2, p_color, p_shades="", p_opts="", p_waitms=0, p_checkinterval="")
{
if (RegExMatch(programparam8, "i)^[0-9a-f]{6}$"))
programparam8:="0x" programparam8
programparam8_bkp:=programparam8
programparam8:=RegExReplace(programparam8, "i)\bSlow\b")
if (programparam8=programparam8_bkp)
programparam8:=programparam8 " Fast"
programparam8_bkp:=programparam8
programparam8:=RegExReplace(programparam8, "i)\bBGR\b")
if (programparam8=programparam8_bkp)
programparam8:=programparam8 " RGB"
if (programparam12="")
programparam12=519
ts:=A_TickCount
Loop
{
PixelSearch, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%, %programparam10%
if (errorlevel=0 || programparam11 && A_TickCount-ts>=programparam11)
break
if (programparam11 && (A_TickCount-ts)+programparam12>=programparam11)
programparam12:=(programparam11-(A_TickCount-ts))/2
if (programparam12>19)
Sleep, %programparam12%
}
Return
}
PR:
Process:
Process, %programparam2%, %programparam3%, %programparam4%
Error_Level = %ErrorLevel%
Return
R:
Run:
Run, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
RA:
RunAs:
If programparam2 =
RunAs
else
RunAs, %programparam2%, %programparam3%, %programparam4%
Return
RW:
RunWait:
If programparam5 =
RunWait, %programparam2%, %programparam3%, %programparam4%
else
RunWait, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Error_Level = %Errorlevel%
Return
SN:
Send:
Send, %programparam2%
Return
SP:
SendPlay:
SendPlay, %programparam2%
Return
SI:
SendInput:
SendInput, %programparam2%
Return
SRAW:
SendRaw:
SendRaw, %programparam2%
Return
SEV:
SendEvent:
SendEvent, %programparam2%
Return
RND:
Random:
Random, %programparam2%, %programparam3%, %programparam4%
Return
SE:
SetEnv:
SetEnv, %programparam2%, %programparam3%
Return
SF:
SetFormat:
SetFormat, %programparam2%, %programparam3%
Return
SMOD:
SendMode:
SendMode, %programparam2%
Return
SKD:
SetKeyDelay:
SetKeyDelay, %programparam2%, %programparam3%, %programparam4%
Return
SMD:
SetMouseDelay:
SetMouseDelay, %programparam2%, %programparam3%
Return
STMM:
SetTitleMatchMode:
SetTitleMatchMode, %programparam2%
Return
SWD:
SetWinDelay:
SetWinDelay, %programparam2%
Return
SD:
Shutdown:
Shutdown, %programparam2%
Return
S:
Sleep:
Sleep, %programparam2%
Return
SO:
Sort:
Sort, %programparam2%, %programparam3%
If programparam3 = U
Error_Level = %Errorlevel%
Return
SPTH:
SplitPath:
SplitPath, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%
Return
SBGT:
StatusBarGetText:
StatusBarGetText, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%
Error_Level = %Errorlevel%
Return
SBW:
StatusBarWait:
StatusBarWait, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%
Error_Level = %Errorlevel%
Return
SCS:
StringCaseSense:
StringCaseSense, %programparam2%
Return
SGP:
StringGetPos:
StringGetPos, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Error_Level = %Errorlevel%
Return
SL:
StringLeft:
StringLeft, %programparam2%, %programparam3%, %programparam4%
Return
SLEN:
StringLen:
StringLen, %programparam2%, %programparam3%
Return
SLOW:
StringLower:
StringLower, %programparam2%, %programparam3%, %programparam4%
Return
SM:
StringMid:
StringMid, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Return
SRPL:
StringReplace:
StringReplace, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Error_Level = %Errorlevel%
Return
SR:
StringRight:
StringRight, %programparam2%, %programparam3%, %programparam4%
Return
SS:
StringSplit:
StringSplit, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return
STL:
StringTrimLeft:
StringTrimLeft, %programparam2%, %programparam3%, %programparam4%
Return
STR:
StringTrimRight:
StringTrimRight, %programparam2%, %programparam3%, %programparam4%
Return
SUP:
StringUpper:
StringUpper, %programparam2%, %programparam3%, %programparam4%
Return
SG:
SysGet:
SysGet, %programparam2%, %programparam3%, %programparam4%
Return
TT:
ToolTip:
ToolTip, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return
TRT:
TrayTip:
TrayTip, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return
TR:
Transform:
Transform, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return
UDTF:
UrlDownloadToFile:
UrlDownloadToFile, %programparam2%, %programparam3%
Error_Level = %Errorlevel%
Return
VSC:
VarSetCapacity:
VarSetCapacity(%programparam2%, programparam3, programparam4)
Return
WA:
WinActivate:
WinActivate, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return
WAB:
WinActivateBottom:
WinActivateBottom, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return
WC:
WinClose:
WinClose, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Return
WGAT:
WinGetActiveTitle:
WinGetActiveTitle, %programparam2%
Return
WGC:
WinGetClass:
WinGetClass, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Return
WG:
WinGet:
WinGet, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Return
WGP:
WinGetPos:
WinGetPos, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%
Return
WGT:
WinGetText:
WinGetText, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Error_Level = %Errorlevel%
Return
WGTT:
WinGetTitle:
WinGetTitle, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Return
WH:
WinHide:
WinHide, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return
WK:
WinKill:
WinKill, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Return
WMSI:
WinMenuSelectItem:
WinMenuSelectItem, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%, %programparam10%, %programparam11%, %programparam12%
Error_Level = %Errorlevel%
Return
WM:
WinMove:
WinMove, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%
Return
WSH:
WinShow:
WinShow, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return
WS:
WinSet:
WinSet, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%
If (programparam2 = "Style" or programparam2 = "Exstyle" or programparam2 = Polygon)
Error_Level = %Errorlevel%
Return
WST:
WinSetTitle:
WinSetTitle, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Return
WW:
WinWait:
WinWait, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Error_Level = %Errorlevel%
Return
WWA:
WinWaitActive:
WinWaitActive, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Error_Level = %Errorlevel%
Return
WWC:
WinWaitClose:
WinWaitClose, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Error_Level = %Errorlevel%
Return
WWNA:
WinWaitNotActive:
WinWaitNotActive, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Error_Level = %Errorlevel%
Return
WMAX:
WinMaximize:
WinMaximize, %programparam2%, %programparam3%, %programparam4%
Return
WMIN:
WinMinimize:
WinMinimize, %programparam2%, %programparam3%, %programparam4%
Return
WR:
WinRestore:
WinRestore, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return
IS:
ImageSearch:
ImageSearch, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%
Error_Level = %Errorlevel%
Return
ID:
IniDelete:
IniDelete, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
IR:
IniRead:
IniRead, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Return
IW:
IniWrite:
IniWrite, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Error_Level = %Errorlevel%
Return
I:
Input:
Input, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Error_Level = %Errorlevel%
Return
IB:
InputBox:
InputBox, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%, , %programparam11%, %programparam12%
Error_Level = %Errorlevel%
Return
G:
Gui:
Gui, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return
GD:
GroupDeactivate:
GroupDeactivate, %programparam2%, %programparam3%
Return
GC:
GuiControl:
GuiControl, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
GuiControlGet:
GuiControlGet, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Error_Level = %Errorlevel%
Return
If:
If programparam3 = is
{
If %programparam2% is %programparam4%
{
GoSub, RunCommand
}
}
else if programparam3 = is not
{
If %programparam2% is not %programparam4%
{
GoSub, RunCommand
}
}
else If programparam3 = <
{
If %programparam2% < %programparam4%
{
GoSub, RunCommand
}
}
else If programparam3 = =
{
If %programparam2% = %programparam4%
{
GoSub, RunCommand
}
}
else If programparam3 = >
{
If %programparam2% > %programparam4%
{
GoSub, RunCommand
}
}
Return
Ifstatement()
{
global
If (programparam1 = "IfMsgBox" || programparam1 = "IMB")
{
IfMsgBox, %programparam2%
Return 1
else
Return
}
If (programparam1 = "IfEqual" || programparam1 = "IEQ")
{
IfEqual, %programparam2%, %programparam3%
Return 1
else
Return
}
If (programparam1 = "IfNotEqual" || programparam1 = "INEQ")
{
IfNotEqual, %programparam2%, %programparam3%
Return 1
else
Return
}
If (programparam1 = "IfLess" || programparam1 = "IL")
{
IfLess, %programparam2%, %programparam3%
Return 1
else
Return
}
If (programparam1 = "IfLessOrEqual" || programparam1 = "ILOE")
{
IfLessOrEqual, %programparam2%, %programparam3%
Return 1
else
Return
}
If (programparam1 = "IfGreater" || programparam1 = "IG")
{
IfGreater, %programparam2%, %programparam3%
Return 1
else
Return
}
If (programparam1 = "IfGreaterOrEqual" || programparam1 = "IGOE")
{
IfGreaterOrEqual, %programparam2%, %programparam3%
Return 1
else
Return
}
If (programparam1 = "IfInString" || programparam1 = "IIS")
{
IfInString, %programparam2%, %programparam3%
Return 1
else
Return
}
If (programparam1 = "IfNotInString" || programparam1 = "INIS")
{
IfNotInString, %programparam2%, %programparam3%
Return 1
else
Return
}
If (programparam1 = "IfWinActive" || programparam1 = "IWA")
{
IfWinActive, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return 1
else
Return
}
If (programparam1 = "IfWinNotActive" || programparam1 = "IWNA")
{
IfWinNotActive, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return 1
else
Return
}
If (programparam1 = "IfWinExist" || programparam1 = "IWE")
{
IfWinExist, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return 1
else
Return
}
If (programparam1 = "IfWinNotExist" || programparam1 = "IWNE")
{
IfWinNotExist, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return 1
else
Return
}
If (programparam1 = "IfExist" || programparam1 = "IE")
{
IfExist, %programparam2%
Return 1
else
Return
}
If (programparam1 = "IfNotExist" || programparam1 = "INE")
{
IfNotExist, %programparam2%
Return 1
else
Return
}
If programparam3 = is
{
If %programparam2% is %programparam4%
Return 1
}
else if programparam3 = is not
{
If %programparam2% is not %programparam4%
Return 1
}
else If programparam3 = <
{
If %programparam2% < %programparam4%
Return 1
}
else If programparam3 = =
{
If %programparam2% = %programparam4%
Return 1
}
else If programparam3 = >
{
If %programparam2% > %programparam4%
Return 1
}
Return
}
RunCommand:
count = 5
Loop 16
{
programparam%A_Index% := programparam%count%
count++
}
;If programparam1 =
;{
; MSgBox input: %inputparameters%
; input = %inputparameters%
; inputparameters =
; inputparameters := Sendkeysnew(1)
; MsgBox, input: %inputparameters%
;}
;else
;{
IfInString, workingcommands, %programparam1%|
GoSub, %programparam1%
;}
Return
KH:
KeyHistory:
KeyHistory
Return
LH:
ListHotkeys:
ListHotkeys
Return
LV:
ListVars:
ListVars
Return
OD:
OutputDebug:
OutputDebug, %programparam2%
Return
P:
Pause:
Pause, %programparam2%, %programparam3%
Return
PM:
PostMessage:
PostMessage, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%
Error_Level = %Errorlevel%
Return
SMSG:
SendMessage:
SendMessage, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%, %programparam8%, %programparam9%
Error_Level = %Errorlevel%
Return
PRG:
Progress:
Progress, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Return
SIM:
SplashImage:
SplashImage, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%
Return
RD:
RegDelete:
Regdelete, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
REM:
RegExMatch:
RegExMatch(%programparam2%, %programparam3%, %programparam4%, %programparam5%)
Error_Level = %Errorlevel%
Return
RER:
RegExReplace:
RegExReplace(%programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%, %programparam7%)
Error_Level = %Errorlevel%
Return
RC:
RegisterCallback:
RegisterCallback(%programparam2%, %programparam3%, %programparam4%, %programparam5%)
Return
RR:
RegRead:
RegRead, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Error_Level = %Errorlevel%
Return
RWR:
RegWrite:
RegWrite, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%^
Error_Level = %Errorlevel%
Return
RL:
Reload:
Reload
Return
SBL:
SetBatchLines:
SetBatchLines, %programparam2%
Return
SCD:
SetControlDelay:
SetControlDelay, %programparam2%
Return
SDMS:
SetDefaultMouseSpeed:
SetDefaultMouseSpeed, %programparam2%
Return
SNLS:
SetNumLockState:
SetNumLockState, %programparam2%
Return
SCLS:
SetCapsLockState:
SetCapsLockState, %programparam2%
Return
SSLS:
SetScrollLockState:
SetScrollLockState, %programparam2%
Return
SSCM:
SetStoreCapslockMode:
SetStoreCapslockMode, %programparam2%
Return
ST:
SetTimer:
SetTimer, %programparam2%, %programparam3%, %programparam4%
Return
SWDIR:
SetWorkingDir:
SetWorkingDir, %programparam2%
Error_Level = %Errorlevel%
Return
SB:
SoundBeep:
SoundBeep, %programparam2%, %programparam3%
Return
SOG:
SoundGet:
SoundGet, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Error_Level = %Errorlevel%
Return
SGWV:
SoundGetWaveVolume:
SoundGetWaveVolume, %programparam2%, %programparam3%, %programparam4%
Error_Level = %Errorlevel%
Return
SPL:
SoundPlay:
SoundPlay, %programparam2%, %programparam3%
Error_Level = %Errorlevel%
Return
SOS:
SoundSet:
SoundSet, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Error_Level = %Errorlevel%
Return
SSWV:
SoundSetWaveVolume:
SoundSetWaveVolume, %programparam2%, %programparam3%
Error_Level = %Errorlevel%
Return
STOF:
SplashTextOff:
SplashTextOff
Return
STON:
SplashTextOn:
SplashTextOn, %programparam2%, %programparam3%, %programparam4%, %programparam5%
Return
SU:
Suspend:
Suspend, %programparam2%
Return
T:
Thread:
Thread, %programparam2%, %programparam3%
Return
WGAS:
WinGetActiveStats:
WinGetActiveStats, %programparam2%, %programparam3%, %programparam4%, %programparam5%, %programparam6%
Return
WMA:
WinMinimizeAll:
WinMinimizeAll
Return
WMAU:
WinMinimizeAllUndo:
WinMinimizeAllUndo
Return
;_________________________________________
;#Include winhider.txt
1Inlcude_winhider:
mwt_Minimize:
{
ToolTip
if mwt_WindowCount >= %mwt_MaxWindows%
{
MsgBox No more than %mwt_MaxWindows% may be hidden simultaneously.
return
}
WinWait, A,, 2
if ErrorLevel <> 0 ; It timed out, so do nothing.
return
WinGet, mwt_ActiveID, ID
WinGetTitle, mwt_ActiveTitle
WinGetClass, mwt_ActiveClass
if mwt_ActiveClass in Shell_TrayWnd,Progman
{
MsgBox The desktop and taskbar cannot be hidden.
return
}
Send, !{esc}
WinHide
if mwt_ActiveTitle =
mwt_ActiveTitle = ahk_class %mwt_ActiveClass%
StringLeft, mwt_ActiveTitle, mwt_ActiveTitle, %mwt_MaxLength%
Loop, %mwt_MaxWindows%
{
if mwt_WindowTitle%a_index% = %mwt_ActiveTitle%
{
; Match found, so it's not unique.
; First remove the 0x from the hex number to conserve menu space:
StringTrimLeft, mwt_ActiveIDShort, mwt_ActiveID, 2
StringLen, mwt_ActiveIDShortLength, mwt_ActiveIDShort
StringLen, mwt_ActiveTitleLength, mwt_ActiveTitle
mwt_ActiveTitleLength += %mwt_ActiveIDShortLength%
mwt_ActiveTitleLength++ ; +1 the 1 space between title & ID.
if mwt_ActiveTitleLength > %mwt_MaxLength%
{
; Since menu item names are limted in length, trim the title
; down to allow just enough room for the Window's Short ID at
; the end of its name:
TrimCount = %mwt_ActiveTitleLength%
TrimCount -= %mwt_MaxLength%
StringTrimRight, mwt_ActiveTitle, mwt_ActiveTitle, %TrimCount%
}
; Build unique title:
mwt_ActiveTitle = %mwt_ActiveTitle% %mwt_ActiveIDShort%
break
}
}
mwt_AlreadyExists = n
Loop, %mwt_MaxWindows%
{
if mwt_WindowID%a_index% = %mwt_ActiveID%
{
mwt_AlreadyExists = y
break
}
}
if mwt_AlreadyExists = n
{
Menu, Tray, add, %mwt_ActiveTitle%, RestoreFromTrayMenu
mwt_WindowCount++
Loop, %mwt_MaxWindows% ; Search for a free slot.
{
; It should always find a free slot if things are designed right.
if mwt_WindowID%a_index% = ; An empty slot was found.
{
mwt_WindowID%a_index% = %mwt_ActiveID%
mwt_WindowTitle%a_index% = %mwt_ActiveTitle%
break
}
}
}
return
}
RestoreFromTrayMenu:
{
Menu, Tray, delete, %A_ThisMenuItem%
; Find window based on its unique title stored as the menu item name:
Loop, %mwt_MaxWindows%
{
if mwt_WindowTitle%a_index% = %A_ThisMenuItem% ; Match found.
{
StringTrimRight, IDToRestore, mwt_WindowID%a_index%, 0
WinShow, ahk_id %IDToRestore%
WinActivate ahk_id %IDToRestore% ; Sometimes needed.
mwt_WindowID%a_index% = ; Make it blank to free up a slot.
mwt_WindowTitle%a_index% =
mwt_WindowCount--
break
}
}
return
}
mwt_UnMinimize:
{
if mwt_WindowCount > 0
{
;; Get the id of the last window minimized and unhide it
StringTrimRight, IDToRestore, mwt_WindowID%mwt_WindowCount%, 0
WinShow, ahk_id %IDToRestore%
WinActivate ahk_id %IDToRestore%
;; Get the menu name of the last window minimized and remove it
StringTrimRight, MenuToRemove, mwt_WindowTitle%mwt_WindowCount%, 0
Menu, Tray, delete, %MenuToRemove%
;; clean up our 'arrays' and decrement the window count
mwt_WindowID%mwt_WindowCount% =
mwt_WindowTitle%mwt_WindowCount% =
mwt_WindowCount--
}
return
}
mwt_RestoreAllThenExit:
{
DllCall("gdi32.dll\DeleteObject", UInt,h_region )
DllCall("gdi32.dll\DeleteObject", UInt,hbm_buffer)
DllCall("gdi32.dll\DeleteDC", UInt,hdc_frame )
DllCall("gdi32.dll\DeleteDC", UInt,hdc_buffer)
Gosub, RestoreAll
Gosub, mwt_RestoreAll
ExitApp ; Do a true exit.
}
mwt_RestoreAll:
{
Loop, %mwt_MaxWindows%
{
if mwt_WindowID%a_index% <>
{
StringTrimRight, IDToRestore, mwt_WindowID%a_index%, 0
WinShow, ahk_id %IDToRestore%
WinActivate ahk_id %IDToRestore% ; Sometimes needed.
; Do it this way vs. DeleteAll so that the sep. line and first
; item are retained:
StringTrimRight, MenuToRemove, mwt_WindowTitle%a_index%, 0
Menu, Tray, delete, %MenuToRemove%
mwt_WindowID%a_index% = ; Make it blank to free up a slot.
mwt_WindowTitle%a_index% =
mwt_WindowCount--
}
if mwt_WindowCount = 0
break
}
return
}
;________________________________
;#Include winspy.txt
1Include_winspy:
CAPSLOCK & F6::
MouseGetPos, MousePosX, MousePosY, CurrentWinID
CoordMode, Mouse, Screen
MouseGetPos, MousePosScreenX, MousePosScreenY, CurrentWinID, ControlName
WinGetTitle, CurrentWin, ahk_ID %CurrentWinID%
SetTitleMatchMode, Slow
WinGetTitle, CurrentWinSlow, ahk_ID %CurrentWinID%
SetTitleMatchMode, Fast
WinGetClass, CurrentWinClass, ahk_ID %CurrentWinID%
;------------------------------------------------------
Menu, Title, add, %CurrentWin%, WinSub_Title
;Menu, Title, add, %CurrentWinSlow% (match=slow), WinSub_TitleSlow
Menu, Title, add, ahk_Class %CurrentWinClass%, WinSub_Class
Menu, Title, add, ahk_id %CurrentWinID%, WinSub_ID
Menu, Main, add, &Window Title, :Title
;------------------------------------------------------
WinGetPos, CurrentWinX, CurrentWinY, CurrentWinW, CurrentWinH, %CurrentWin%
Menu, WinPos, add, X: %CurrentWinX% %a_tab% Y: %CurrentWinY%, WinSub_XY
Menu, WinPos, add, W: %CurrentWinW% %a_tab% H: %CurrentWinH% , WinSub_WH
Menu, Main, add, Window &Position, :WinPos
;------------------------------------------------------
WinGetText, WinText, %CurrentWin%
if WinText=
Menu, Text, add, No Text Found, WinSub_Text
StringSplit, WinTextShort, WinText, `n
Loop, %WinTextShort0%
{
StringTrimLeft, NewLine, WinTextShort%a_index%, 0
if NewLine=
continue
if (strlen(NewLine) > 100)
{
StringLeft, NewLine, NewLine, 100
NewLine=%NewLine% ---8<---
}
Menu, Text, add, %NewLine%, WinSub_Text
if a_index>15
{
Menu, Text, add, -------------8<-------------, WinSub_Text
break
}
}
Menu, Main, add, Window &Text, :Text
Menu, Main, add
;------------------------------------------------------
loop, 5
{
StatusBarGetText, Part, %a_index%, %CurrentWin%
if Part <>
{
x=1
Menu, Status, add, %a_index%) %Part%, StatusSub
}
}
if x <> 1
Menu, Status, add, No Text Found, Status
Menu, Main, add, &Status Bar, :Status
;------------------------------------------------------
Menu, MousePos, add, Screen, MouseSub_ScreenXY
Menu, MousePos, add, &X: %MousePosScreenX% %a_tab% Y: %MousePosScreenY%, MouseSub_ScreenXY
Menu, MousePos, add
Menu, MousePos, add, Window, MouseSub_WindowXY
Menu, MousePos, add, X: %MousePosX% %a_tab% &Y: %MousePosY%, MouseSub_WindowXY
Menu, Main, add, &Mouse Position, :MousePos
;------------------------------------------------------
ControlGetPos, ControlPosX, ControlPosY, ControlPosW, ControlPosH, %ControlName%, %CurrentWin%
ControlGetText, ControlText, %ControlName%, %CurrentWin%
if ControlText=
Menu, ControlText, add, No Text Found, ControlSub_Text
StringSplit, ControlTextShort, ControlText, `n
Loop, %ControlTextShort0%
{
StringTrimLeft, NewLine, ControlTextShort%a_index%, 0
if NewLine=
continue
if (strlen(NewLine) > 100)
{
StringLeft, NewLine, NewLine, 100
NewLine=%NewLine% ---8<---
}
Menu, ControlText, add, %NewLine%, ControlSub_Text
if a_index=10
{
Menu, ControlText, add, -------------8<-------------, ControlSub_Text
break
}
}
Menu, Control, add, %ControlName%, ControlSub_Name
Menu, Control, add
Menu, Control, add, X: %ControlPosX% %a_tab% Y: %ControlPosY%, ControlSub_XY
Menu, Control, add, W: %ControlPosW% %a_tab% H: %ControlPosH%, ControlSub_WH
Menu, Control, add
Menu, Control, add, Text, :ControlText
Menu, Main, add, &Control, :Control
;------------------------------------------------------
PixelGetColor, PixelRGB, MousePosX, MousePosY, RGB
PixelGetColor, PixelBGR, MousePosX, MousePosY
x=3
loop, 3
{
StringMid, HEX%a_index%, PixelRGB, %x%, 2
x+=2
}
Menu, Colour, add, &RGB %PixelRGB%, PixelSub_HEX
Menu, Colour, add, &BGR %PixelBGR%, PixelBGRSub_HEX
Menu, Colour, add, % "R: " HEXtoDEC(HEX1) " G: " HEXtoDEC(HEX2)" B: " HEXtoDEC(HEX3), PixelSub_DEC
Menu, Main, add, Pi&xel Colour (RGB/BGR), :Colour
;------------------------------------------------------
Menu, Main, Show
;Clears Menus
Menu, Main, DeleteAll
Menu, Control, DeleteAll
Menu, ControlText, DeleteAll
Menu, MousePos, DeleteAll
Menu, WinPos, DeleteAll
Menu, Text, DeleteAll
Menu, Title, DeleteAll
Menu, Colour, DeleteAll
Menu, Status, DeleteAll
return
;------------------------------------------------------
WinSub_Title:
Clipboard=%CurrentWin%
return
WinSub_TitleSlow:
Clipboard=%CurrentWinSlow%
return
WinSub_Class:
Clipboard=AHK_class %CurrentWinClass%
return
WinSub_ID:
Clipboard=AHK_ID %CurrentWinID%
return
WinSub_XY:
Clipboard=%CurrentWinX% `, %CurrentWinY%
return
WinSub_WH:
Clipboard=%CurrentWinW% `, %CurrentWinH%
return
WinSub_Text:
Clipboard=%WinText%
return
MouseSub_ScreenXY:
Clipboard=%MousePosScreenX% `, %MousePosScreenY%
return
MouseSub_WindowXY:
Clipboard=%MousePosX% `, %MousePosY%
return
ControlSub_Name:
Clipboard=%ControlName%
return
ControlSub_XY:
Clipboard=%ControlPosX% `, %ControlPosY%
return
ControlSub_WH:
Clipboard=%ControlPosW% `, %ControlPosH%
return
ControlSub_Text:
Clipboard=%ControlText%
return
PixelSub_HEX:
Clipboard=%PixelRGB%
return
PixelBGRSub_HEX:
Clipboard=%PixelBGR%
return
PixelSub_DEC:
Clipboard:=HEXtoDEC(HEX1) " " HEXtoDEC(HEX2) " " HEXtoDEC(HEX3)
return
StatusSub:
StringTrimLeft, StatusText, A_ThisMenuItem, 3
clipboard=%StatusText%
Status:
return
;------------------------------------------------------
-----------------------------------------
;My Function to converts HEX to DEC
HEXtoDEC(HEX)
{
StringUpper, HEX, HEX
loop, % StrLen(HEX)
{
StringMid, Col, HEX, % (StrLen(HEX)+1)-a_index, 1
if Col is integer
DEC1:=Col*16**(a_index-1)
Else
DEC1:=(Asc(Col)-55)*16**(a_index-1)
DEC+=%DEC1%
}
return DEC
}
;______________________________________
;#Include winwatcher.txt
1Include_winwatcher:
WINWATCHER:
{
ToolTip
KeyWait, SPACE
KeyWait, CAPSLOCK
SetCapsLockState, Off
If winwatcherison = 1
{
winwatcherison =
Hotkey, CAPSLOCK & SC01B, Off
Hotkey, CAPSLOCK & -, Off
Hotkey, CAPSLOCK & ALT, Off
Hotkey, ^+LButton , Off
Gui, 5:Destroy
DllCall("gdi32.dll\DeleteObject", UInt,h_region )
DllCall("gdi32.dll\DeleteObject", UInt,hbm_buffer)
DllCall("gdi32.dll\DeleteDC", UInt,hdc_frame )
DllCall("gdi32.dll\DeleteDC", UInt,hdc_buffer)
Gosub, RestoreAll
WinSet, Redraw
Return
}
else
{
Hotkey, CAPSLOCK & SC01B, AddWatch, On
Hotkey, CAPSLOCK & -, RemoveWatch, On
Hotkey, CAPSLOCK & ALT, ShowHideGui, On
Hotkey, ^+LButton , define_region, On
winwatcherison = 1
}
p_w = 200 ; thumbnail width
p_h = 150 ; height
Left := A_ScreenWidth - p_w ; initial position
Height1 := A_ScreenHeight / 1.06
Height2 := A_ScreenHeight - Height1
Trans := "FF00FF" ; transparency level
Gui 5:+AlwaysOnTop -Border +Resize +ToolWindow ; window for the dock
Gui, 5:Color, FF00FF
ypic =0
Loop 10, ; prepare 10 thumbs to be clicked
{
Gui, 5:Add, Pic , gRestoreWin x0 y%ypic% w%p_w% h100 vPic%a_index% ; add dock-slots to gui
ypic +=100
}
Gui 5:Show, NoActivate w%p_w% h32 x%Left% y%Height2%, WINWATCHER
WinGet WINWATCHERID, id, WINWATCHER
WinSet, TransColor, %Trans% 255, WINWATCHER ; Make Window Transparent for coolness and usability
hdc_frame := DllCall( "GetDC", UInt, WINWATCHERID )
hdc_buffer := DllCall("gdi32.dll\CreateCompatibleDC", UInt, hdc_frame) ; buffer
hbm_buffer := DllCall("gdi32.dll\CreateCompatibleBitmap", UInt,hdc_frame, Int,A_ScreenWidth, Int,A_ScreenHeight)
DllCall( "gdi32.dll\SelectObject", UInt,hdc_buffer, UInt,hbm_buffer)
*
; comment this line for speed but less quality
DllCall( "gdi32.dll\SetStretchBltMode", "uint", hdc_frame, "int", 4 ) ; Halftone better quality with stretch
SetTimer update_dock, %winwatcherspeed% ; x sec update
Return
} ; flow through 1st call (is efficient, but introduces bugs easily!)
update_dock:
{
WinGetPos ,,, p_w2, p_h2, WINWATCHER ; get size of WINWATCHER Window
p_w2 := p_w2 -8 ; adjust sizes (margins, borders ..)
ypos= 0 ; offset for each thumbnail
nr = 0 ; which thumbnail
WinGet ids, list,,,Program Manager ; all active windows-tasks (processes)
Loop %ids% {
task_id := ids%a_index% ; id of this window
WinGetPos ,,, w, h, ahk_id %task_id%
WinGetTitle,title,ahk_id %task_id%
; try to match mediumsize dialog-boxes like alerts/copy or userdefined with #w
if ( title <> "WINWATCHER" and title <> "" and title <> " " and (( w > 300 and h < 300 and h > 50 ) or watch_me_%task_id% = 1 ) )
{
DllCall("PrintWindow", UInt,task_id, UInt,hdc_buffer, UInt,0)
wx1 := watch_me_x1_%task_id%
wy1 := watch_me_y1_%task_id%
ww := watch_me_w_%task_id%
wh := watch_me_h_%task_id%
nr += 1
; ToolTip, %task_id% %current_id% "..." %title% "x" %wx1% "v" %onoff%
if wx1 <>
{
h1 := wh * ( p_w2 / ww ) ; autosize (seems not exaclty right?)
DllCall("gdi32.dll\StretchBlt", UInt,hdc_frame, Int,0, Int,ypos, Int,p_w2, Int,h1
, UInt,hdc_buffer, Int, wx1, Int,wy1, Int,ww, Int,wh ,UInt,0xCC0020) ; SRCCOPY
}
else
{
h1 := h * ( p_w2 / w ) ; autosize (seems not exaclty right?)
DllCall("gdi32.dll\StretchBlt", UInt,hdc_frame, Int,0, Int,ypos, Int,p_w2, Int,h1
, UInt,hdc_buffer, Int,0, Int,0, Int,w, Int,h ,UInt,0xCC0020) ; SRCCOPY
}
watch_me_id_%nr% := task_id ; store src-window id for later restore
watch_me_title_%nr% := title
GuiControl, Move, Pic%nr%, X0 Y%ypos% W%p_w2% H%h1%
ypos += h1 ; move down to next thumbnail-position
}
}
WinMove WINWATCHER,,,,,ypos +32 ; resize to make pseudo-transparent
Return
}
AddWatch:
KeyWait, CAPSLOCK
SetCapsLockState, Off
WinGet current_id , id , A ; get ahk_id of foreground window
watch_me_%current_id% = 1
Return
RemoveWatch:
KeyWait, CAPSLOCK
SetCapsLockState, Off
WinGet current_id , id , A ; get ahk_id of foreground window
watch_me_%current_id% =
watch_me_x1_%current_id% =
Return
RestoreWin:
Gui, 5:Show, NA
StringReplace, pos , A_GuiControl, Pic
xid := watch_me_id_%pos%
WinActivate, ahk_id %xid%
Gosub, ScreenBottom
Return
define_region:
CoordMode, Mouse, Relative ; relative to window not screen
MouseGetPos, start_x, start_y ; start position of mouse
ToolTip, %A_Space%, start_x, start_y ; pseudo layer
WinSet, Transparent, 150, ahk_class tooltips_class32 ; draw "layer" as feedback
SetTimer mousemark, 50 ; check every 50ms for mouseup
Return
mousemark:
{
MouseGetPos, current_x, current_y
WinMove, ahk_class tooltips_class32, , , , % current_x - start_x, % current_y - start_y
If GetKeyState("LButton", "P")
Return
SetTimer mousemark, OFF
ToolTip
MouseGetPos, end_x, end_y
;TrayTip, ,you selected %start_x% %start_y% %end_x% %end_y%, , 5
width := end_x - start_x
height := end_y - start_y
WinGet current_id , id , A ; get ahk_id of foreground window
;WinGetTitle,title, ahk_id %current_id%
;tooltip, "current" %current_id% %title%
watch_me_x1_%current_id% := start_x
watch_me_x2_%current_id% := end_x
watch_me_y1_%current_id% := start_y
watch_me_y2_%current_id% := end_y
watch_me_w_%current_id% := width
watch_me_h_%current_id% := height
;WinGetPos ,src_x, src_y, src_w, src_h, A
;watch_me_src_y_%current_id% := src_y
;watch_me_src_x_%current_id% := src_x
Gosub, ScreenBottom ; make it minimized
return
}
ScreenBottom:
{
; when clicked then use current window
IfWinActive, WINWATCHER
WinActivate
WinGet current_id , id , A ; get ahk_id of foreground window
minimized := minimized_state_%current_id%
screenborder_x :=
screenborder_y := A_ScreenHeight - 24
if minimized =
{
minimized_state_%current_id% := 1
WinGetPos ,wx,wy,ww,wh, ahk_id %current_id%
minmized_x_%current_id% := wx
minmized_y_%current_id% := wy
WinMove , ahk_id %current_id%,, screenborder_x,screenborder_y ; move to screenborder (keep x-pos)
}
else
{
x := minmized_x_%current_id%
y := minmized_y_%current_id%
WinMove , ahk_id %current_id%,, x,y ; restore
minimized_state_%current_id% :=
}
return
}
ShowHideGui:
IfWinExist, WINWATCHER ; if ( DllCall( "IsWindowVisible", "uint", LiveWindowsID ) )
Gui, 5:Hide
else
Gui, 5:Show
Return
RestoreAll:
WinGet, ids, list,,, Program Manager
Loop, %ids%
{
StringTrimRight, id, ids%a_index%, 0 ; find the id of this window
if minimized_state_%id% = 1
{
WinActivate, ahk_id %id%
Gosub, ScreenBottom
}
}
Return
5GuiClose:
Hotkey, CAPSLOCK & SC01B, Off
Hotkey, CAPSLOCK & -, Off
Hotkey, CAPSLOCK & ALT, Off
Hotkey, ^+LButton, Off
Gui, 5:Destroy
handle_exit:
DllCall("gdi32.dll\DeleteObject", UInt,h_region )
DllCall("gdi32.dll\DeleteObject", UInt,hbm_buffer)
DllCall("gdi32.dll\DeleteDC", UInt,hdc_frame )
DllCall("gdi32.dll\DeleteDC", UInt,hdc_buffer)
Gosub, RestoreAll
Return
;____________________________________________
;#Include import.txt
1Include_import:
Import:
{
IfWinExist, %SCRIPTNAME_VAR% IMPORT
{
WinActivate, %SCRIPTNAME_VAR% IMPORT
Return
}
Gui, 1:Destroy
FileSelectFile, fileparams
Gui, Submit, NoHide
Gui, 7:Add, ListView, r19 w660 Count500 AltSubmit +ReadOnly Grid Multi gImportchange vListimport, MACRO KEYWORD|NAME/AUTOSTART/CAPSLOCK/HOTEKEY|MACRO COMMANDS|PARAMETERS
Gui, 7:Default
Loop, Read, %fileparams%
{
Loop 4
importvalue%A_Index% =
importvaluefirst =
importvalue := A_LoopReadLine
StringLeft, importvaluefirst, importvalue, 1
If importvaluefirst = [
{
continue
}
Stringsplit, importvaluecheck, importvalue, `=, %A_Space%
importvaluecheck = %importvaluecheck%
If (importvaluecheck1 = "F93DHH98E08776AC" or importvalue = "" or importvaluecheck1 = "defaultprofile")
continue
StringReplace, importvalue, importvalue, `=, `°,
Stringsplit, importvalue, importvalue, `°%programseparator%, %A_Space%
importend := LV_Add("",importvalue1, importvalue2,importvalue3,importvalue4)
If importend = 0
break
}
Loop 4
importvalue%A_Index% =
importvaluefirst =
Gui, 7:Add, Button, xs Default gImportkey, IMPORT
Gui, 7:Add, Button, x+0 g7GuiClose, EXIT
Gui, 7:Add, Text, xs, SHOR&TKEYS :
Gui, 7:Add, Edit, x+1 -WantTab -WantReturn w120,
Gui, 7:Add, Text, xs, NA&ME :
Gui, 7:Add, Edit, x+1 -WantTab -WantReturn w550,
Gui, 7:Add, Text, xs, PA&RAMS :
Gui, 7:Add, Edit, x+1 -WantTab -WantReturn w550,
Gui, 7:Add, Text, xs, MACR&O :
Gui, 7:Add, Edit, x+1 -WantTab r22 w550,
Gui, 7:Show
Gui, 7:Submit, Nohide
WinSetTitle, %SCRIPTNAME_VAR%,, %SCRIPTNAME_VAR% IMPORT
Return
}
7GuiClose:
{
Gui, 7:Destroy
Gui, 1:Default
GoSub, RESTARTINI
GoSub, Macrokeys
Exit
}
7GuiEscape:
{
Gui, 7:Destroy
Gui, 1:Default
GoSub, RESTARTINI
GoSub, Macrokeys
Exit
}
Importchange:
{
Gui, 7:Submit, NoHide
If (A_GuiEvent = "Normal" or A_GuiEvent = "I")
{
If A_GuiEvent = I
{
IfNotInString, Errorlevel, S
Return
}
If A_EventInfo > 0
{
GuiControl, , Edit1,
GuiControl, , Edit2,
GuiControl, , Edit3,
GuiControl, , Edit4,
;MsgBox % A_EventInfo
LV_GetText(importvaluechangekey, A_EventInfo, 1)
selectedrow = %A_EventInfo%
selectedkey := importvaluechangekey
LV_GetText(importvaluenew, A_EventInfo, 3)
LV_GetText(importvaluenamenew, A_EventInfo, 2)
LV_GetText(importvalueparam, A_EventInfo, 4)
StringLen, importvaluenewlength, importvaluenew
If importvaluenewlength = 8190
{
MsgBox, 0, MACRO TOO LONG, CANNOT IMPORT MACRO AS IT IS TOO LONG
Return
}
StringReplace, importvaluenew, importvaluenew, %macroseparator%, `n, A
GuiControl, , Edit1, %importvaluechangekey%
GuiControl, , Edit2, %importvaluenamenew%
GuiControl, , Edit3, %importvalueparam%
GuiControl, , Edit4, %importvaluenew%
}
}
Return
}
ImportKey:
{
Gui, 7:Submit, NoHide
GuiControlGet, importvaluechangekey, , Edit1
If importvaluechangekey =
{
Return
}
GuiControlGet, importvaluenamenew, , Edit2
GuiControlGet, importvalueparam, , Edit3
GuiControlGet, importvaluenew, , Edit4
StringReplace, importvaluenew, importvaluenew, `n, %macroseparator%, A
importnewvalue = %importvaluenamenew%%programseparator%%importvaluenew%%programseparator%%importvalueparam%
If importnewvalue =
{
Return
}
StringLeft, importnewvaluename, importnewvalue, InStr(importnewvalue, programseparator)
MsgBox, 4, IMPORT MACRO, DO YOU WANT TO IMPORT MACRO?`n`nPROFILE: `t%ActiveTab%`nKEYWORD: `t%importvaluechangekey%`nNAME: `t`t%importnewvaluename%
IfMsgBox Yes
{
IfNotEqual, %importvaluechangekey%2,
{
MsgBox, 4, %SCRIPTNAME_VAR% OVERWRITE, MACRO ALREADY EXISTS`nDO YOU WANT TO OVERWRITE?
IfMsgBox No
{
MsgBox, 0, %SCRIPTNAME_VAR% IMPORT, IMPORT WAS CANCELED, 5
Return
}
}
IniWrite, %importnewvalue%, %config%, %ActiveTab%, %importvaluechangekey%
}
Return
}
;__________________________________
;#Include recorder.txt
1Include_recorder:
DeleteLastRecord:
{
StringTrimRight, recordoutput, recordoutput, 1
;ToolTip, %recordoutput%, 0, 30
Return
}
Recordmouse:
{
MouseGetPos, moverecordoutputx, moverecordoutputy, recordoutputwin, recordoutputcontrol
KeyWait, RButton
KeyWait, LButton
MouseGetPos, mrecordoutputx, mrecordoutputy, recordoutputwin, recordoutputcontrol
If (mrecordoutputx = moverecordoutputx and mrecordoutputy = moverecordoutputy)
{
WinGetActiveTitle, newwindow
WinGetClass, newwinclass, A
If (newwinclass != currentwinclass or newwindow != currentwindow)
{
currentwinclass := newwinclass
currentwindow := newwindow
If (currentwinclass != "" and currentwindow != "")
recordoutput .= macroseparator . "WinActivate, " . newwindow . " ahk_Class " . newwinclass . macroseparator . "WinWaitActive, " . newwindow . " ahk_Class " . newwinclass . macroseparator
}
IfInString, recordoutputcontrol, Button
{
If A_ThisHotkey = ~RButton Up
recordoutput .= macroseparator . "ControlClick, " . recordoutputcontrol . ", " . currentwindow . ",, right, 2" . macroseparator
else
recordoutput .= macroseparator . "ControlClick, " . recordoutputcontrol . ", " . currentwindow . ",, left, 2" . macroseparator
}
else
{
If A_ThisHotkey = ~RButton Up
recordoutput .= macroseparator . "Click, right, " . mrecordoutputx . ", " . mrecordoutputy . macroseparator
else
recordoutput .= macroseparator . "Click, " . mrecordoutputx . ", " . mrecordoutputy . macroseparator
}
}
else
{
WinGetActiveTitle, newwindow
WinGetClass, newwinclass, A
If (newwinclass != currentwinclass or newwindow != currentwindow)
{
currentwinclass := newwinclass
currentwindow := newwindow
If RegExMatch(recordoutput, "!\{TAB}$|!\{TAB.}$|!\{TAB..}$|!\{TAB...}$") ;SubStr(recordoutput, 0, 6) = "!{TAB}"
{
StringLeft, recordoutput, recordoutput, RegExMatch(recordoutput, "!\{TAB????}$") ;StringTrimRight, recordoutput, recordoutput, 6
If (currentwinclass != "" and currentwindow != "")
recordoutput .= macroseparator . "WinActivate, " . newwindow . " ahk_Class " . newwinclass . macroseparator
}
}
If A_ThisHotkey = ~RButton UP
recordoutput .= macroseparator . "MouseClickDrag, right, " . moverecordoutputx . ", " . moverecordoutputy ", " . mrecordoutputx . ", " . mrecordoutputy . macroseparator
else
recordoutput .= macroseparator . "MouseClickDrag, left, " . moverecordoutputx . ", " . moverecordoutputy ", " . mrecordoutputx . ", " . mrecordoutputy . macroseparator
}
;ToolTip, %recordoutput%, 0, 30
moverecordoutputx =
moverecordoutputy =
mrecordoutputx =
mrecordoutputy =
Return
}
RecordRemoveToolTip:
ToolTip
Return
RecordPause:
recordsleep++
;MsgBox % recordoutput RegExMatch(recordoutput, "\Sleep, .000\$")
If RegExMatch(recordoutput, "\Sleep, .000$|\Sleep, ..000$|\Sleep, ...000$")
{
StringLeft, recordoutput, recordoutput, RegExMatch(recordoutput, "\Sleep, .000$|\Sleep, ..000$|\Sleep, ...000$")-1
recordoutput .= macroseparator . "Sleep, " . recordsleep . "000" . macroseparator
}
else
{
recordsleep = 0
recordoutput .= macroseparator . "Sleep, 1000" . macroseparator
}
Return
Record:
WinGetActiveTitle, currentwindow
WinGetClass, currentwinclass, A
recordstartwindow := "WinActivate, " . currentwindow . " ahk_Class" . currentwinclass . macroseparator . "WinWaitActive, " . currentwindow . " ahk_Class" . currentwinclass . macroseparator
recordoutput .= "WinActivate, " . currentwindow . " ahk_Class" . currentwinclass . macroseparator . "WinWaitActive, " . currentwindow . " ahk_Class" . currentwinclass . macroseparator
Hotkey, ~LButton, ON
Hotkey, ~RButton, ON
Hotkey, CAPSLOCK & BACKSPACE, DeleteLastRecord
Hotkey, CAPSLOCK & SPACE, RecordPause
Hotkey, CAPSLOCK & ENTER, RecordRemoveToolTip
Hotkey, ~Pause, Off
;Hotkey, CAPSLOCK & ENTER, RecordAddCommand
ToolTip, RECORDING... - PRESS PAUSE TO FINISH - CAPSLOCK & SPACE TO ADD [SLEEP`, 1000] - CAPSLOCK & ENTER TO REMOVE THIS TOOLTIP, 200, 20
Loop
{
;ToolTip, %recordoutput%, 0, 30
Input, recordout, L1 V B, {Scrolllock}{Numlock}{AppsKey}{+}{^}{#}{!}{LALT}{RALT}{LWIN}{CAPSLOCK}{PAUSE}{BREAK}{PRINTSCREEN}{TAB}{BS}{ENTER}{LEFT}{RIGHT}{UP}{DOWN}{DEL}{INS}{ESC}{HOME}{END}{PGUP}{PGDN}{Numpad0}{Numpad1}{Numpad2}{Numpad3}{Numpad4}{Numpad5}{Numpad6}{Numpad7}{Numpad8}{Numpad9}{NumpadDot}{NumpadDiv}{NumpadMult}{NumpadAdd}{NumpadSub}{NumpadEnter}{NumpadIns}{NumpadEnd}{NumpadDown}{NumpadPgDn}{NumpadLeft}{NumpadClear}{NumpadRight}{NumpadHome}{NumpadUp}{NumpadPgUp}{NumpadDel}{NumpadDiv}{NumpadMult}{NumpadAdd}{NumpadSub}{NumpadEnter}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{F13}{F14}{F15}{F16}{F17}{F18}{F19}{F20}{F21}{F22}{F23}{F24}abcdefghijklmnopqrstuvwxyz0123456789{SPACE}
If Errorlevel = Endkey:CapsLock
{
KeyWait, Capslock
If GetKeyState("Capslock", "T") = 0
recordoutput .= "{Shift up}"
else
recordoutput .= "{Shift down}"
}
else if Errorlevel = Endkey:Scrolllock
{
KeyWait, Scrolllock
If GetKeyState("Scrolllock", "T") = 0
recordoutput .= macroseparator . "SetScrollLockState, Off" . macroseparator
else
recordoutput .= macroseparator . "SetScrollLockState, On" . macroseparator
}
else if Errorlevel = Endkey:Numlock
{
KeyWait, Numlock
If GetKeyState("Numlock", "T") = 0
recordoutput .= macroseparator . "SetNumLockState, Off" . macroseparator
else
recordoutput .= macroseparator . "SetNumLockState, On" . macroseparator
}
If Errorlevel = Endkey:Pause
{
counted_key = 1
recordendkey =
break
}
else
Recorderrorkey = %Errorlevel%
WinGetActiveTitle, newwindow
WinGetClass, newwinclass, A
If (newwinclass != currentwinclass or newwindow != currentwindow)
{
currentwinclass := newwinclass
currentwindow := newwindow
If RegExMatch(recordoutput, "!\{TAB}$|!\{TAB.}$|!\{TAB..}$|!\{TAB...}$") ;SubStr(recordoutput, 0, 6) = "!{TAB}"
{
StringLeft, recordoutput, recordoutput, RegExMatch(recordoutput, "!\{TAB}$|!\{TAB.}$|!\{TAB..}$|!\{TAB...}$")-1 ;StringTrimRight, recordoutput, recordoutput, 6
If (currentwinclass != "" and currentwindow != "")
recordoutput .= macroseparator . "WinActivate, " . newwindow . " ahk_Class " . newwinclass . macroseparator
}
If (currentwinclass != "" and currentwindow != "")
recordoutput .= macroseparator . "WinWaitActive, " . newwindow . " ahk_Class " . newwinclass . macroseparator
}
IfInString, Recorderrorkey, EndKey:
{
GetKeyState, shiftisstilldown, SHIFT, P
GetKeyState, ctrlisstilldown, CTRL, P
GetKeyState, altisstilldown, ALT, P
GetKeyState, winisstilldown, LWIN, P
If (recordendkey = SubStr(Recorderrorkey, 8) and shiftisstilldown = shiftisdown and winisstilldown = winisdown and ctrlisstilldown = ctrlisdown and altisstilldown = altisdown)
{
counted_key++
If counted_key = 2
{
If SubStr(recordoutput, 0) = "}"
{
StringTrimRight, recordoutput, recordoutput, 1
recordoutput .= " " . counted_key . "}"
continue
}
}
else
{
If SubStr(recordoutput, 0) = "}"
{
StringLeft, recordoutput, recordoutput, RegExMatch(recordoutput, " .}$| ..}$| ...}$| ....}$| .....}$")-1
recordoutput .= " " . counted_key . "}"
continue
}
}
}
else
counted_key = 1
recordendkey := SubStr(Recorderrorkey, 8)
GetKeyState, shiftisdown, SHIFT, P
GetKeyState, ctrlisdown, CTRL, P
GetKeyState, altisdown, ALT, P
GetKeyState, winisdown, LWIN, P
If (shiftisdown = "D" and SubStr(recordoutput, 0) != "+")
{
recordoutput .= "+"
}
If (ctrlisdown = "D" and SubStr(recordoutput, 0) != "^")
{
recordoutput .= "^"
}
If (altisdown = "D" and SubStr(recordoutput, 0) != "!")
{
recordoutput .= "!"
}
If (winisdown = "D" and SubStr(recordoutput, 0) != "#")
{
recordoutput .= "#"
}
Loop %recordmodshort0%
{
If recordmodkeys%A_Index% = %recordendkey%
{
recordoutput .= recordmodshort%A_Index%
continue
}
}
continue
}
counted_key = 1
recordendkey =
recordoutput .= recordout
}
StringReplace, recordoutput, recordoutput, %macroseparator%%macroseparator%, %macroseparator%,A
StringReplace, recordoutput, recordoutput, ##, #, A
If (recordoutput != recordstartwindow)
setupparamv .= recordoutput
VarSetCapacity(recordoutput, 0)
moverecordoutputx := ""
moverecordoutputy := ""
Hotkey, ~LButton, Off
Hotkey, ~RButton, Off
Hotkey, CAPSLOCK & BACKSPACE, Speedhotkey
Hotkey, CAPSLOCK & SPACE, WinWatcher
Hotkey, CAPSLOCK & ENTER, SPEEDHOTKEY
Hotkey, ~Pause, On
Return