Ïåðåéòè èç ôîðóìà íà ñàéò.

ÍîâîñòèÔàéëîâûå àðõèâû
ÏîèñêÀêòèâíûå òåìûÒîï ëèñò
ÏðàâèëàÊòî â on-line?
Âõîä Çàáûëè ïàðîëü? Ïåðâûé ðàç íà ýòîì ñàéòå? Ðåãèñòðàöèÿ
Êîìïüþòåðíûé ôîðóì Ru.Board » Êîìïüþòåðû » Ïðîãðàììû » CintaNotes

Ìîäåðèðóåò : gyra, Maz

 Âåðñèÿ äëÿ ïå÷àòè • ÏîäïèñàòüñÿÄîáàâèòü â çàêëàäêè
Íà ïåðâóþ ñòðàíèöóê ýòîìó ñîîáùåíèþê ïîñëåäíåìó ñîîáùåíèþ

Îòêðûòü íîâóþ òåìó     Íàïèñàòü îòâåò â ýòó òåìó

Krot66



Advanced Member
Ðåäàêòèðîâàòü | Ïðîôèëü | Ñîîáùåíèå | Öèòèðîâàòü | Ñîîáùèòü ìîäåðàòîðó


Êîä:
 
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
#SingleInstance, force
Menu, Tray, Icon, shell32.dll, 21
SetTitleMatchMode, 2
SetTitleMatchMode, Slow
;~ SetKeyDelay 50, 50
goto start
 
; Íàñòðîéêè ãîðÿ÷èõ êëàâèø ïðîãðàììû äîëæíû áûòü: Ctrl+F12 - ñîçäàíèå, CTRL+ALT+F12 - ïîêàçàòü ãëàâíîå îêíî.
; Â Íàñòðîéêàõ - Çàõâàò òåêñòà - Ïîñëå çàõâàòà äîëæíî ñòîÿòü "Îòêðûòü íà ðåäàêòèðîâàíèå"  
 
; Ïðè çàïóñêå â êàòàëîãå ñêðèïòà ñîçäàåòñÿ îäíîèìåííûé êîíôèãóðàöèîííûé cfg-ôàéë, çàäàþùèé ñîçäàíèå/îòêðûòèå çàìåòîê â çàäàííîé ñåêöèè è ñîîòâåòñòâóþùèì òýãîì ïî ãîðÿ÷åé êëàâèøå (â íåì óæå åñòü òðè ñòðîêè, çàäàþùèå ñîîòâåòñòâèÿ 1 - 1-é ñåêöèè, 2 - 2-é, 3 - 3-é.).
;             Ñèíòàêñèñ ñòðîê ïðåäåëüíî ïðîñò:
;     íîìåð ñåêöèè,òýã,èìÿ êëàâèøè èëè åå êîä (âèðòóàëüíûé èëè ñêàí),ïîÿñíåíèå (íåîáÿçàòåëüíî)
 
;     Íàïðèìåð:
 
;    1,Comp,vk43,c - òýã Comp â ïåðâîé ñåêöèè ïî êëàâèøå c
;     1,Soft Comp,vk53,S - äâà òýãà òàì æå ïî s
;     1,Books/÷èòàòü,sc30,b - äî÷åðíèé òýã "÷èòàòü" â Books ïî b
;   1,Êíèãè Books/÷èòàòü,F6 - êîìáèíàöèÿ äâóõ ïðåäûäóùèõ âîçìîæíîñòåé ïî F6
;     5,,5 - ïÿòàÿ ñåêöèÿ áåç òýãà ïî 5 è ò.ä.
 
; Äîïóñêàþòñÿ ïóñòûå ñòðîêè, ëèøíèå ïðîáåëû - òîëüêî â ïîÿñíåíèÿõ. Âðåìåííî íåíóæíîå ìîæíî çàêîìåíòèðîâàòü ";". Óäîáíî îòìå÷àòü ïîñòîÿííûå òýãè ëàòèíèöåé, òîãäà îíè âñåãäà áóäóò ââåðõó. Äëÿ ïðèìåíåíèÿ èçìåíåíèé òðåáóåòñÿ ïåðåçàïóñê ñêðèïòà
 
; --------- Ãîðÿ÷èå êëàâèøè ----------  
 
>^>+F12::Run % cfg ; RCtrl+RShift+F12 - îêðûòèå êîíôèãóðàöèîííîãî ôàéëà
 
; RCtrl+RShift+êëàâèøà - ñîçäàíèå çàìåòêè ñ çàäàííîé (è óæå ñóùåñòâóþùåé!) ñåêöèåé è òýãîì (åñëè îïðåäåëåí)
; RCtrl+RAlt+êëàâèøà - îòêðûòèå çàìåòîê ñ çàäàííûìè ñåêöèåé è òýãîì
 
;             Â îòêðûòîì îêíå ðåäàêòèðîâàíèÿ:
; RCtrl+êëàâèøà - çàìåíà ñåêöèè è òýãà  äàííûìè, ñâÿçàííûìè ñ êëàâèøåé
; RShift+êëàâèøà - äîïîëíåíèå òåêóùåãî òýãà ñâÿçàííûì ñ êëàâèøåé
; Ïî L/RCtrl+Space è L/RShift+Space - äîáàâëÿþòñÿ íàñòðàèâàåìûå òýãè, ñóôôèêñû èëè äî÷åðíèå òýãè
 
; Âî âñåõ ñëó÷àÿõ (â ò.÷. è ïðè àâòîìàòè÷åñêîé ãåíåðàöèè òýãîâ) ñåêóíäíîå çàæàòèå ïðàâîãî Ctrl äîáàâëÿåò/îòêðûâàåò ñóôôèêñ, äîïîëíèòåëüíûé èëè äî÷åðíèé òýã, ïðîïèñàííûé â íàñòðîéêàõ
 
 
>^>+Space::Note(last_tab,last_tag) ; RCtrl+RShift+Space - ñîçäàíèå çàìåòêè ñ ââåäåííûìè ïðåæäå ñåêöèåé è íàáîðîì òýãîâ
>^>!Space::Open(last_tab,last_tag) ; RCtrl+RAlt+Space - îòêðûòèå ñîîòâåòñòâóþùèõ çàìåòîê
 
>^>+vkBF::Note(name_tag,"$name") ; RCtrl+RShift+/ - ñîçäàíèå çàïèñè ñ àâòîìàòè÷åñêè ñãåíåðèðîâàííûì èç íàçâàíèÿ îòêðûòîãî ôàéëà, îïðåäåëåííîãî èç êîìàíäíîé ñòðîêè (ñåêöèÿ/ìàòåðèíñêèé òýã çàäàþòñÿ â íàñòðîéêàõ íèæå; ðàáîòàåò, åñëè ïðîãðàììà çàïóñêàåòñÿ âìåñòå ñ îòêðûòèåì ôàéëà)
>^>!vkBF::Open(name_tag,"$name") ; RCtrl+RAlt+/ - îòêðûòèå ñåêöèè/òýãà, ñîîòâåòñòâóþùèõ äàííîìó çàïóùåííîìó ôàéëó
 
>^>+vkBE::Note(site_tag,"$site") ; RCtrl+RShift+. - ñîçäàíèå çàïèñè ñ àâòîìàòè÷åñêè ñãåíåðèðîâàííûì èç àäðåñà îòêðûòîãî ñàéòà òýãå (ñåêöèÿ è ìàòåðèíñêèé òýã çàäàþòñÿ íèæå)
>^>!vkBE::Open(site_tag,"$site") ; RCtrl+RAlt+. - îòêðûòèå çàïèñåé, ñîîòâåòñòâóþùèõ îòêðûòîìó â íàñòîÿùèé ìîìåíò ñàéòó
 
>^>+vkDC::Note(proc_tag,"$proc") ; RCtrl+RShift+\ - âñå òî æå, íî íàçâàíèå áåðåòñÿ èç èìåíè ïðîöåññà, ñîîòâåòñòâóþùåãî àêòèâíîìó îêíó
>^>!vkDC::Open(proc_tag,"$proc") ; RCtrl+RAlt+\ - îòêðûòèå ñåêöèè/òýãà, ñîîòâåòñòâóþùèõ àêòèâíîìó ïðèëîæåíèþ
 
 
; Ìûøü (äåéñòâóåò â îêíå ïðîãðàììû)
#IfWinActive ahk_class CintaNotes.MainFrame
MButton::Send {F7} ; Cðåäíÿÿ êíîïêà - îòêðûòèå àäðåñà âûäåëåííîé çàìåòêè
^RButton::Send ^{vk43} ; Ctrl+ÏÊÌ - êîïèðîâàíèå âûäåëåííîé çàìåòêè  
+RButton::Send {F4} ; Shift+ÏÊÌ - ðåäàêòèðîâàíèå òýãîâ çàìåòêè
#IfWinActive
start:
 
;------------ Íàñòðîéêè ñêðèïòà -------------
 
ctrl_tag:="_ToDo" ; Ñóôôèêñ, ïðîïèñûâàþùèéñÿ ïðè ñåêóíäíîì çàæàòèè ïðàâîãî Ctrl. Åñëè âïèñàòü " ToDo", áóäåò äîáàâëÿòüñÿ äîïîëíèòåëüíûé òýã, åñëè "/ToDo" - äî÷åðíèé
 
lctrl_space:=" !×èòàòü" ; Ñóôôèêñ, äîïîëíèòåëüíûé èëè äî÷åðíèé òýã äîïèñûâàþùèéñÿ ê òåêóùåìó òýãó ïî LCtrl+Space â îêíå ðåäàêòèðîâàíèÿ
 
rctrl_space:="_ToDo" ; Òî æå äëÿ RCtrl+Space
 
lshift_space:=" !Ñìîòðåòü" ; Òî æå äëÿ LShift+Space
 
rshift_space:="_Old" ; Òî æå äëÿ RShift+Space
 
stab:=1 ; Ïðè äîïîëíåíèè òýãà ïî RShift+êëàâèøà ïðîâåðÿòü, ñâÿçàí ëè ýòîò òýã ñ âûáðàííîé ñåêöèåé
 
local_path:=2 ; Îïðåäåëåíèÿ ïóòè ëîêàëüíîãî ôàéëà èç êîìàíäíîé ñòðîêè (ðàáîòàåò, åñëè ïðîãðàììà çàïóñêàåòñÿ âìåñòå ñ îòêðûòèåì ôàéëà). 1 - çàïèñûâàòü â ïîëå àäðåñà, äëÿ çàïóñêà ïî F7/ÑÊÌ, 2 - çàïèñûâàòü è â ïðèìå÷àíèå, 3 - òî æå, íî çàïèñûâàòü â ïîëå àäðåñà ñîäåðæàùóþ ôàéë ïàïêó, 0 - íå èñïîëüçîâàòü.  
; Åñëè àêòèâíî îêíî FAR, ïðè local_path > 0 áóäåò ñîçäàâàòüñÿ ïóñòàÿ çàìåòêà ñ çàãîëîâêîì èç èìåíè âûäåëåííîãî ôàéëà èëè ïàïêè è ññûëêîé íà íåãî  
 
name_tag:="3,Files" ; Íîìåð ñåêöèè è ìàòåðèíñêèé òýã (ìîæíî îïóñòèòü), ÷åðåç çàïÿòóþ, â êîòîðûõ áóäåò àâòîìàòè÷åñêè ñîçäàâàòüñÿ çàïèñü ñ òýãîì èç íàçâàíèÿ îòêðûòîãî ôàéëà
 
proc_tag:="1,Programs" ; Òî æå äëÿ àâòîìàòè÷åñêîãî ñîçäàíèÿ çàïèñè ñ òýãîì èç ïðîöåññà àêòèâíîãî îêíà
 
site_tag:="2,Sites" ; Òî æå äëÿ àâòîìàòè÷åñêîãî ñîçäàíèÿ çàïèñè ñ òýãîì èç àäðåñà îòêðûòîãî ñàéòà
 
max_empty_str:=2 ; Ìàêñèìàëüíîå ÷èñëî ïîñëåäîâàòåëüíûõ ïóñòûõ ñòðîê â ñêîïèðîâàííîì òåêñòå; ïåðâûå ïóñòûå ñòðîêè îòáðàñûâàþòñÿ àâòîìàòè÷åñêè. 0 - áåç îãðàíè÷åíèÿ
 
clip:=2 ; Ñîõðàíÿòü â áóôåðå îáìåíà ïîñëå ñîçäàíèÿ çàìåòêè: 1 - òåêñò çàìåòêè, 2 - ïåðâóþ íåïóñòóþ ñòðîêó â âèäå, ïðèãîäíîì äëÿ ïåðåèìåíîâàíèÿ ôàéëîâ; 0 - áåç èçìåíåíèÿ
 
;----------------------------------
 
SplitPath A_ScriptName, , , , cfg
cfg:=cfg ".cfg"
IfNotExist % cfg
    FileAppend , % "1,,1`r`n2,,2`r`n3,,3", % cfg, utf-8
Loop Read, % cfg
{
    If A_LoopReadLine contains `;
        continue
    If A_LoopReadLine=`r`n
        continue
    Loop Parse, A_LoopReadLine, CSV
    {
        If (A_Index=1)            
            tab:=A_LoopField
        If (A_Index=2)
            tag:=A_LoopField    
        If (A_Index=3)
            key:=A_LoopField
    }
    tab_%key%:=tab
    tag_%key%:=tag
    Hotkey % ">^>+" key, Note
    Hotkey IfWinActive, ahk_class Cinta.ModelessDialog
    Hotkey % ">^" key, Note
    Hotkey % ">+" key, Note
    Hotkey IfWinActive
    Hotkey % ">^>!" key, Open
}
return
 
#IfWinActive ahk_class Cinta.ModelessDialog
<^Space::Addtag(lctrl_space)
>^Space::Addtag(rctrl_space)
<+Space::Addtag(lshift_space)
>+Space::Addtag(rshift_space)
#IfWinActive
 
Addtag(tt)
{
    KeyWait Ctrl, T1
    KeyWait Shift, T1
    ControlGetText tag, Cinta.Edit2
    s:=SubStr(tag,0)
    If (s=" ")
        StringTrimRight tag, tag, 1
    ControlSetText Cinta.Edit2, % tag . tt " "
    Send {End}
return
}
 
Note:
getp()
Note(tab,tag)
return
 
Open:
getp()
Open(tab,tag)
return
 
getp()
{
    global
    StringGetPos  kf, A_ThisHotkey, ^
    StringTrimLeft key, A_ThisHotkey, kf+1
    StringGetPos  kf, key, +
    StringTrimLeft key, key, kf+1
    StringGetPos  kf, key, !
    StringTrimLeft key, key, kf+1
    tab:=tab_%key%
    tag:=tag_%key%
    return
}                    
 
Note(tab,tag="")
{
    global
    clip_old:=Clipboard
    far:=0
    mtg:=""
    old_tag:=""
    end:=""
    tt:=tag
    If tab contains `,
    {
        Loop parse, tab, CSV
        {
            If (A_Index=1)            
                tab:=A_LoopField
            If (A_Index=2)
                mtg:=A_LoopField
        }
    }        
    KeyWait Shift, T1
    KeyWait Ctrl, T0.6
    e:=ErrorLevel
    WinGetActiveTitle t
    WinGetClass cl, A
    f_path:=""
    If local_path
    {
        f_path:=GetPath(t)
        If t contains Far 3,Far 2,Far 1            
        {
            Clipboard:=""
            Send ^!{Ins}
            ClipWait 2
            If Clipboard
            {
                f_path:=ClipBoard
                far:=1
            }
        }
    }
    If (tag="$name")
    {
        If ! f_path
        {
            MsgBox, 262160, , Ïóòü ôàéëà íåäîñòóïåí!, 1.5
            return
        }
        SplitPath f_path, , , , tag
        tag:=ValidName(tag)
        StringReplace tag, tag, % " ", % "_", All
        StringReplace tag, tag, `,, % "_", All
    }
    If (tag="$proc")
    {
        WinGet pr, ProcessName, % t
        SplitPath pr, , , , pr
        StringReplace tag, pr, % " ", % "_", All
    }
    If A_Thishotkey contains >^>+
    {
        KeyWait RCtrl
        Send ^{F12}
        If (cl="Cinta.ModelessDialog")
            WinWaitNotActive % t, , 10
        WinWaitActive ahk_class Cinta.ModelessDialog, , 10
        Sleep 200
    }
    If far
    {
        SplitPath f_path, fn
        ControlSetText Cinta.Edit1, % "Far: " fn
        ControlSetText Cinta.RichEdit1,% ""
    }
    ControlGetText add, Cinta.Edit3, ahk_class Cinta.ModelessDialog
    If (tag="$site")
    {
        If ! add
        {
            MsgBox, 262160, , Àäðåñ íåäîñòóïåí!, 1.5
            return
        }
        SplitPath add, tag
        StringReplace tag, tag,% "https://"
        StringReplace tag, tag,% "http://"
        StringReplace tag, tag,% "ftp://"
        StringReplace tag, tag,% "file://"
        StringReplace tag, tag, www.
    }        
    If ((add="") && (local_path>0) && (f_path<>"")) || (tt="$name")
    {
        If (local_path>1)
            ControlSetText Cinta.RichEdit2, % f_path
        If (local_path=3)
            SplitPath f_path, , f_path
        ControlSetText Cinta.Edit3
        ControlSetText Cinta.Edit3, % f_path        
    }    
    If max_empty_str
    {
        ControlGetText txt, Cinta.RichEdit1
        txt:=MaxEmptyString(txt,max_empty_str)
        ControlSetText Cinta.RichEdit1, % txt
    }
    ControlGetText ntxt, Cinta.RichEdit1, ahk_class Cinta.ModelessDialog
    If (clip>0) && (ntxt<>"")
    {
        If (clip=2)
        {
            Loop parse, ntxt, `n, `r  
            {
                If (A_LoopField="")
                    continue
                ntxt:=A_LoopField            
                break            
            }
            ntxt:=ValidName(ntxt)
            ntxt:=FirstUppercase(ntxt)
        }
        Clipboard:=ntxt
    }
    else
        Clipboard:=clip_old
    If A_Thishotkey contains >^
        Control Choose, % tab, Cinta.Combobox1, ahk_class Cinta.ModelessDialog
    else
    {
        SendMessage, 0x147, 0, 0, Cinta.Combobox1
        stab:=ErrorLevel+1
        If (stab<>tab)
        {
            MsgBox, 262160, , Òýã îòíîñèòñÿ ê äðóãîé ñåêöèè!, 1.5
            return
        }
        ControlGetText old_tag, Cinta.Edit2
        s:=SubStr(old_tag,0)
        If (s=" ")
            StringTrimRight old_tag, old_tag, 1
        ControlSetText Cinta.Edit2, % old_tag " " tag " "
        Send {End}
        return
    }        
    If mtg || tag
    {
        If e
            end:=ctrl_tag
        If mtg && tag
            tag:="/" tag        
        ControlSetText Cinta.Edit2, % mtg . tag . end " "
        Send {End}
    }
    Loop
    {
        IfWinNotActive ahk_class Cinta.ModelessDialog
            break
        SendMessage, 0x147, 0, 0, Cinta.Combobox1, ahk_class Cinta.ModelessDialog
        last_tab:=ErrorLevel+1
        ControlGetText last_tag, Cinta.Edit2, ahk_class Cinta.ModelessDialog
        sl:=SubStr(last_tag,0)
        If (sl=" ")
            StringTrimRight last_tag, last_tag, 1
        Sleep 100        
    }
    return
}
 
Open(tab,tag="")
{
    global
    mtg:=""
    end:=""
    If tab contains `,
    {
        Loop parse, tab, CSV
        {
            If (A_Index=1)            
                tab:=A_LoopField
            If (A_Index=2)
                mtg:=A_LoopField
        }
    }    
    KeyWait RAlt, T1
    KeyWait RCtrl, T0.6
    e:=ErrorLevel
    If (tag="$name")
    {
        WinGetActiveTitle t
        f_path:=GetPath(t)
        If ! f_path
            MsgBox, 262160, , Ïóòü ôàéëà íåäîñòóïåí!, 1
        SplitPath f_path, , , , tag
        tag:=ValidName(tag)
        StringReplace tag, tag, % " ", % "_", All
        StringReplace tag, tag, `,, % "_", All
    }
    If (tag="$proc")
    {
        WinGet pr, ProcessName, % t
        SplitPath pr, , , , pr
        StringReplace tag, pr, % " ", % "_", All
    }
    IfWinActive ahk_class CintaNotes.MainFrame
        goto end
    If (tag="$site")
    {
        Send !{vk44}
        Sleep 200
        Send ^{Ins}
        ClipWait 1
        If Errorlevel
        {
            MsgBox, 262160, , Àäðåñ íåäîñòóïåí!, 1
            return
        }
        SplitPath Clipboard, , , , ,tag
        StringReplace tag, tag,% "https://"
        StringReplace tag, tag,% "http://"
        StringReplace tag, tag,% "ftp://"
        StringReplace tag, tag,% "file://"
        StringReplace tag, tag, www.
    }
    KeyWait RCtrl, T3
    Send ^!{F12}
    WinWait ahk_class CintaNotes.MainFrame, , 2
    If ErrorLevel
        return
    end:
    Send ^{%tab%}
    Sleep 300
    If mtg || tag
    {
        If e
            end:=ctrl_tag
        If mtg && tag
            tag:="/" tag
        ControlSetText Cinta.Edit1, % mtg . tag . end
        ControlSend Cinta.Edit1, {Enter}
        Sleep 200
        Send {Home}
    }
    return
}
 
FirstUppercase(t)
{
    StringLeft n, t, 1
    StringTrimLeft k, t, 1
    StringUpper n, n
    return n . k
}
 
GetPath(title,quotes=0)
{
    WinGet pr, ProcessName, % title
    Process, Exist, % pr
    pid := ErrorLevel
    for process in ComObjGet("winmgmts:").ExecQuery("Select * from Win32_Process")
    If (process.ProcessId = pid)
    cmdline := process.CommandLine
    If cmdline contains Explorer.exe
        cmdline:=""
    AutoTrim On
    StringReplace cmdline, cmdline, ", , All
    StringGetPos p1, cmdline, .exe  
    StringGetPos p2, cmdline, ., R
    If (p1=p2)
        cmdline:=""
    n:=0
    Loop parse, cmdline
    {
        n:=n+1
        If (A_Loopfield<>A_Space)
            continue
        If (A_Index>p2)
            break
    }        
    StringMid f_path, cmdline, p1+6, n-p1-5
    StringGetPos dp, f_path, :\, R
    StringTrimLeft f_path, f_path, dp-1
    If quotes
        f_path:="" f_path ""
    return f_path
}
 
MaxEmptyString(text,max)
{
    t:=""
    n:=max
    Loop Parse, text, `n, `r
    {
        If A_LoopField
        {
            t:=t . A_LoopField  "`r`n"
            n:=0
            continue            
        }
        else
        {
            n:=n+1
            If (n<=max)
                t:=t "`r`n"
        }
    }
    return t
}
 
ValidName(n)
{
    StringReplace n, n, `r`n,% " ", All
    StringReplace n, n, `n,% " ", All
    StringReplace n, n, \,% " ", All
    StringReplace n, n, /,% " ", All
    StringReplace n, n, :, ,All
    StringReplace n, n, *, ,All
    StringReplace n, n, ?, ,All
    StringReplace n, n, ", ,All
    StringReplace n, n, >,% " ", All
    StringReplace n, n, <,% " ", All
    StringReplace n, n, |, -, All
    StringReplace n, n,% "  ", % " ", All
    return Trim(n)
}    
 


Âñåãî çàïèñåé: 1202 | Çàðåãèñòð. 10-12-2007 | Îòïðàâëåíî: 11:36 02-06-2014 | Èñïðàâëåíî: Krot66, 11:37 02-06-2014
Îòêðûòü íîâóþ òåìó     Íàïèñàòü îòâåò â ýòó òåìó

Íà ïåðâóþ ñòðàíèöóê ýòîìó ñîîáùåíèþê ïîñëåäíåìó ñîîáùåíèþ

Êîìïüþòåðíûé ôîðóì Ru.Board » Êîìïüþòåðû » Ïðîãðàììû » CintaNotes


Ðåêëàìà íà ôîðóìå Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Ðåéòèíã.ru