#comments-start *** Evernote GTD INBOX script *** Create a new task-type item in Evernote Methodoly based on GTD/ZTD (Zen-to-done) Using enscript.exe provided by Evernote Koen Van der Borght (koen.vanderborght@gmail.com - http://twitter.com/KoenieVdB) ******************************************************************************************* VERSION ADAPTED FOR SHARING (sample) TO CORRECT/UPDATE FOR OWN USAGE: - THE INSTALLATION-PATH OF EVERNOTE (normally c:\Program Files\Evernote\Evernote3\) (line 68) - MAKE AN EMPTY TXT-FILE AND SAVE THIS SOMEWHERE; COPY THE PATH IN LINE 71 c:\bin\batch\empty_file.txt - THE SPECIFIC LOCATIONS FOR OWN USAGED (line 58 - 61) ******************************************************************************************* v1: 19/04/2009 first release v1.1: 11/05/2009 update tags/locations for correct naming convention v1.2: 16/06/2009 add @Call in contexts + version-number in GUI v1.3: 17/06/2009 split additional locations from pure context + add 'keep' possibility v1.4: 19/06/2009 add command-line parameter for task v1.41: 22/06/2009 bugfix: no item created when not using command line parameter #comments-end #include Opt('MustDeclareVars', 1) ;MAIN ROUTINE; _Initialize() _Main() ;FUNCTIONS Func _CreateTags(ByRef $typeval, ByRef $locval, $mitval, $extraloc1, $extraloc2, ByRef $Input_Labels) Select Case $typeval = 0 $tags = " /t " & Chr(34) & "!Action" & Chr(34) Case $typeval = 1 $tags = " /t " & Chr(34) & "!WaitingFor" & Chr(34) Case $typeval = 2 $tags = " /t " & Chr(34) & "!Someday" & Chr(34) EndSelect Select Case $locval = 0 $tags = $tags & " /t " & Chr(34) & "@Work" & Chr(34) Case $locval = 1 $tags = $tags & " /t " & Chr(34) & "@Home" & Chr(34) Case $locval = 2 $tags = $tags & " /t " & Chr(34) & "@Call" & Chr(34) Case $locval = 3 $tags = $tags & " /t " & Chr(34) & "@Shop" & Chr(34) EndSelect If $mitval = 1 Then $tags = $tags & " /t " & Chr(34) & "!MIT" & Chr(34) EndIf If $extraloc1 = 1 Then $tags = $tags & " /t " & Chr(34) & "@loc1" & Chr(34) EndIf If $extraloc2 = 1 Then $tags = $tags & " /t " & Chr(34) & "@loc2" & Chr(34) EndIf EndFunc Func _Initialize() ;Initialize variables Global Const $GUIWidth = 400, $GUIHeight = 200 Global Const $cnstFolder = "INSTALL_FOLDER_EVERNOTE" Global Const $cnstIcon = "evernote.exe" Global Const $cnstEXE = "ENScript.exe" Global Const $cnstEmptyFile = "c:\bin\batch\empty_file.txt" Global Const $version_number = "v1.41" Global $tags EndFunc Func _Main() ; GUI Local $Label_1, $Input_1, $GroupType, $GroupLoc, $typeval, $Type_1, $Type_2, $Type_3, $locval, $Loc_1, $Loc_2, $Loc_3, $Loc_4 Local $Loc_5, $Loc_6 Local $MIT, $Input_Labels, $OK_Btn, $OK_keep_Btn, $Cancel_Btn, $command, $msg, $execute, $task Local $i, $param_input Local $loop #forceref $Input_1 GuiCreate("Add to Evernote", $GUIWidth, $GUIHeight) GuiSetIcon($cnstFolder & $cnstIcon, 0) $Label_1 = GUICtrlCreateLabel("&Item", 10, 15, 90, 20) $param_input='' Select Case $CmdLine[0] = 0 $Input_1 = GUICtrlCreateInput("", 100, 10, 280, 20) Case $CmdLine[0] = 1 $param_input = $CmdLine[1] $Input_1 = GUICtrlCreateInput($param_input, 100, 10, 280, 20) Case else For $i = 1 to $CmdLine[0] $param_input = $param_input & $CmdLine[$i] & ' ' Next $Input_1 = GUICtrlCreateInput($param_input, 100, 10, 280, 20) EndSelect $GroupType = GUICtrlCreateGroup("Type", 10, 40, 90, 70) GUIStartGroup() $Type_1 = GUICtrlCreateRadio("!&Action", 15, 55, 80, 20) $Type_2 = GUICtrlCreateRadio("!&WaitingFor", 15, 70, 80, 20) $Type_3 = GUICtrlCreateRadio("!S&omeday", 15, 85, 80, 20) GUICtrlSetState($Type_1, $GUI_CHECKED) $GroupLoc = GUICtrlCreateGroup("Context", 130, 40, 90, 110) GUIStartGroup() $Loc_1 = GUICtrlCreateRadio("@Wo&rk", 135, 55, 80, 20) $Loc_2 = GUICtrlCreateRadio("@&Home", 135, 70, 80, 20) $Loc_3 = GUICtrlCreateRadio("@&Call", 135, 85, 80, 20) $Loc_4 = GUICtrlCreateRadio("@&Shop", 135, 100, 80, 20) GUICtrlSetState($Loc_1, $GUI_CHECKED) GUICtrlCreateGroup("Other labels", 250, 40, 130, 70) $MIT = GUICtrlCreateCheckbox("&!MIT", 255, 55) $Loc_5 = GUICtrlCreateCheckbox("@A&ZA", 255, 70) $Loc_6 = GUICtrlCreateCheckbox("@So&uverain", 255, 85) $OK_Btn = GUICtrlCreateButton("OK", 75, 160, 70, 25) $OK_keep_Btn = GUICtrlCreateButton("OK...", 160, 160, 70, 25) GuiCtrlSetState(-1, $GUI_DEFBUTTON) $Cancel_Btn = GUICtrlCreateButton("Cancel", 245, 160, 70, 25) GuiCtrlCreateLabel($version_number, 372, 180, 70, 25) GUISetState(@SW_SHOW) $loop = 1 While $loop = 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE GUIDelete() Exit Case $msg = $Type_1 or $msg = $Type_2 or $msg = $Type_3 $typeval = $msg - $Type_1 Case $msg = $Loc_1 or $msg = $Loc_2 or $msg = $Loc_3 or $msg = $Loc_4 $locval = $msg - $Loc_1 Case $msg = $OK_Btn or $msg = $OK_keep_Btn _CreateTags($typeval, $locval, GUICtrlRead($MIT), GUICtrlRead($Loc_5), GUICtrlRead($Loc_6), $Input_Labels) If GUICtrlRead($Type_2) = 1 Then $task = GUICtrlRead($Input_1) & " [" & InputBox("@WaitingFor", "Waiting who?") & "]" Else $task = GUICtrlRead($Input_1) EndIf $command = " createNote /i " & Chr(34) & $task & Chr(34) & $tags $command = $command & " /s " & Chr(34) & $cnstEmptyFile & Chr(34) $Execute = RunWait(Chr(34) & $cnstFolder & $cnstEXE & Chr(34) & $command, $cnstFolder) If $Execute <> 0 Then MsgBox(0, "ERROR in execution", "Error number " & @error) EndIf If $msg = $OK_Btn Then $loop = 0 GUIDelete() Exit Else GUICtrlSetData($Input_1,"") GUICtrlSetState($Type_1, $GUI_CHECKED) GUICtrlSetState($Loc_1, $GUI_CHECKED) GUICtrlSetState($Loc_5, $GUI_UNCHECKED) GUICtrlSetState($Loc_6, $GUI_UNCHECKED) GUICtrlSetState($MIT, $GUI_UNCHECKED) GUICtrlSetState($Input_1, $GUI_FOCUS) EndIf Case $msg = $Cancel_Btn $loop = 0 EndSelect WEnd GUIDelete() Exit EndFunc