Wednesday, October 13, 2010

an emeditor magic - using output view for tranfering soap message manually with external tool: curl

Friday, October 8, 2010

an emeditor magic - checking emails through EmEditor webpreview


an emeditor magic - checking emails through EmEditor webpreview showing a html embedding outlook viewer ActiveX

Sunday, October 3, 2010

ItemDone

a simple dialog shows progress on top most window
the progress calculation based on keyword of 'item' and 'done' in a text file.




Imports System.IO
Imports System.Text.RegularExpressions
Imports System.Threading

Public Class MainFrm
Private strFilePath As String = "c:\itemdone.txt"
Private iIntervalSec As Integer = 5
Private datLastWriteTime As Date
Private strItemKeyword As String = "#item:"
Private strDoneKeyword As String = "#done"
Private iItemsCount As Integer = 0
Private iDoneCount As Integer = 0
Private Thrd As Thread

Private Sub MainFrm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.TopMost = True

Dim args As String() = Environment.GetCommandLineArgs()
For Each arg As String In args
If arg.StartsWith("/f:") Then
strFilePath = arg.Replace("/f:", "")
ElseIf arg.StartsWith("/t:") Then
If Integer.TryParse(arg.Replace("/t:", ""), iIntervalSec) = False Then
iIntervalSec = 5
End If
ElseIf arg.StartsWith("/ik:") Then
strItemKeyword = arg.Replace("/ik:", "")
ElseIf arg.StartsWith("/dk:") Then
strDoneKeyword = arg.Replace("/dk:", "")
End If
Next

'// set title
Me.Text = strFilePath

'// Thread begin
Dim TStart As New ThreadStart(AddressOf ThreadMain)
Thrd = New Thread(TStart)
Thrd.Priority = ThreadPriority.Highest
Thrd.Start()
End Sub

Private Sub MainFrm_Disposed(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Disposed
If Thrd.IsAlive Then
Thrd.Abort()
Thrd = Nothing
End If
End Sub


Private Sub ThreadMain()
Try
While True
UpdateProgress()
Threading.Thread.Sleep(iIntervalSec * 1000)
End While
Catch ex As Exception
Console.WriteLine(ex.ToString)
Console.WriteLine(ex.Message)
End Try
End Sub

Private Sub UpdateProgress()
Dim myReader As StreamReader
Try

Dim fi As FileInfo = New FileInfo(strFilePath)
Dim bToGo As Boolean = False

'// now - save < interval
If datLastWriteTime = Nothing Then
bToGo = True
End If
If fi.LastWriteTime.AddSeconds(iIntervalSec) < Date.Now Then
bToGo = True
End If


If bToGo Then
'// file open
myReader = File.OpenText(strFilePath)
Dim strContent As String = myReader.ReadToEnd
myReader.Close()

'// count "#item:"
Dim regularExpression As Regex = New Regex(strItemKeyword)
Dim matchResult As MatchCollection = regularExpression.Matches(strContent)
iItemsCount = matchResult.Count
Me.lbItems.Text = iItemsCount.ToString

'// count "#done:"
regularExpression = New Regex(strDoneKeyword)
matchResult = regularExpression.Matches(strContent)
iDoneCount = matchResult.Count
Me.lbDone.Text = iDoneCount.ToString

If iDoneCount = 0 Then
Me.lbProgress.Text = "0 %"
Else
Me.lbProgress.Text = String.Format("{0:f2} %", (iDoneCount / iItemsCount) * 100)
End If
End If

datLastWriteTime = Date.Now

Catch ex As Exception
Console.WriteLine(ex.ToString)
Console.WriteLine(ex.Message)
Exit Sub
End Try
End Sub
End Class

Saturday, October 2, 2010

an emeditor magic. web preview pane showing a pdf file #Emeditor





function WebPreview_Navigate(strURL) {
var wndEmeditor = shell.FindWindow("EmEditorMainFrame3", "" );
var wndEEPaneContainer;
try {
wndEEPaneContainer = wndEmeditor.FindWindow("EEPaneContainer", "");
} catch(e) {
editor.ExecuteCommandByID(5632+9); Sleep(100);
wndEEPaneContainer = wndEmeditor.FindWindow("EEPaneContainer", "");
}

var wndEmEditorWebPreview = wndEEPaneContainer.FindWindow("EmEditorWebPreview", "");
var wndShellEmbedding = wndEmEditorWebPreview.FindWindow("Shell Embedding", "");
var wndShellDocObjectView = wndShellEmbedding.FindWindow("Shell DocObject View", "");
var wndInternetExplorerServer = wndShellDocObjectView.FindWindow("Internet Explorer_Server", "");

var com = new ActiveXObject("CrowdyEmeditorCom.WebPreviewController");
var Browser2 = com.GetIEBrowser(wndInternetExplorerServer.hWnd);
if (Browser2 != null) {
Browser2.Navigate(strURL);
} else {
alert('Browser2 is null.');
}
}

Sunday, September 5, 2010

Captcha인증컨트롤

http://www.codeproject.com/KB/custom-controls/CaptchaControl.aspx
의 컨트롤을 다운받아 변형해 보았습니다.

Tuesday, August 10, 2010

간단한 java 실행방법

TO : Helma님

잘 작동하는 군요.

저도 이런거 있으면 유용하겠다라고 생각했던 것 중, 거의 7할은 만든 저도 사용하지 않고 있습니다. 좋은 기획이란 어떤 것일까요? ^^; (먼산)

언제인가 ANT가 반드시 필요한가에 대해 토론했던 기억이 나서,,,
다음은 Ant대신 emeditor에서 실행해본 예 입니다.

소스를 좀 수정했습니다.
package를 없앴고, utf-8로 저장하고 윗부분에 (자칭) 확장 shebang을 넣었습니다.

/*
#run:javac -cp .;dom4j-1.6.1.jar -encoding UTF-8 XMLOptMapper.java
#run:java -cp .;dom4j-1.6.1.jar XMLOptMapper
#run:dir fsdfds.xml
*/

즉 이 내용대로 실행하라는 말이지요.



그다음에 F5를 눌러 run.jsee의 매크로를 실행했습니다.
이 매크로가 저 shebang을 인식해서 실행합니다.
%Comspec%이 열리고 다음과 같이 Sendkey해서 이하와 같이 출력되었습니다.



잘 작동하네요 ^^;;

Monday, July 26, 2010

demo of custom COM which controls emeditor's webpreview window.

this demo shows how to control emeditor's webpreview window.

이 데모는 Emeditor의 webpreview를 제어하는 기능을 테스트합니다.

IE가 있는 곳이면, 아니 win32를 이용하여 "Internet Explorer_Server" 클래스의 윈도우의 핸들을 구할 수 있다면, OLE 자동화 인터페이스를 제공하고 있기 때문에 얼마든지 그 control을 가로챌 수 있군요.

webpreview가 있는지, 그리고 그 hwnd를 검출하는 함수는 나중에 추가하겠습니다.
이것으로 현재 커서 위치의 단어를 쿼리하는 기능의 매크로등의 작성가능 합니다.
그외에 (사실은 이것이 주 목적입니디만) 웹의 테스트도 좀 편리하게 할 수 있을 것 같기도 하구요.

여기에 소스를 올리려고 했더니, blogger.com에는 파일첨부가 안되는 것을 깜빡했습니다.
아직 제작중인 매크로의 일부의 기능만 테스트한 것이기 때문에,
더 쓸만큼 되면 올리던지, 요청이 있으면 올리도록 하겠습니다.