태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
인터넷 기술, 오토핫키, 바이두 클라우드 한글화 확인소장

카테고리

모든 글타래 (172)N
Patch (89)N
Tip (62)N
Monologue (12)
ETC (2)
Temp (7)
Total2,300,615
Today673
Yesterday1,774

글 보관함

★ 퍼가실땐 출처(링크)를 표시해주세요! ★

안녕하세요.

예전에 바이두 클라우드 한국어 패치 작업을 편하게 하기 위해 AHK를 이용하여 패쳐를 만들었었죠.

http://w3tech.tistory.com/189


간단하고 급하게 만든것인지라 다양한 환경에서 오류가 생기기도 했습니다.


※ install 버전과 포터블 버전에 따른 오류

※ 클라우드 버전이 틀려서 생기는 오류

※ zip파일 압축을 풀지 않고 압축프로그램에서 실행해서 생기는 오류

※ 운영체제(XP,Win7계열)에 따른 설치경로가 틀려서 생기는 오류


이런 문제들때문에 아예 확 바꿨습니다.

exe파일 안에 한국어 패치한 버전별 모든 db 파일을 집어넣었습니다.

(zip파일 압축 프로그램으로 열어서 바로 실행해도 문제가 없음)

버전별 모든 db파일을 넣어서 설치된 버전을 체크해서 버전에 맞게 패치합니다.

install버전이 아닌 경우 포터블 폴더를 지정합니다.


db 파일 언팩/리팩에 도움을 주신 포레님(http://foreblog.tistory.com)께 감사드립니다.


2016년 10월 11일 변경 내용

바이두 클라우드의 이름 변경 (BaiduNetdisk) 적용

7za 압축 업데이트(7z1604)

AHK 컴파일 버전 업데이트(112401)


2016년 05월 04일 변경 내용

바이두 클라우드의 업데이트 기능으로 버전이 올라갔을때 패치가 제대로 되지 않던걸 수정했습니다.

예를들어 5.0버전을 설치 후 나중에 자동 업데이트로 5.1이 되었다고 하면

레지스트리에 저장된 프로그램 버전은 5.0이고 프로그램(exe)의 버전은 5.1입니다.

이전 패쳐의 경우 레지스트리의 버전값을 가지고 패쳐를 해서 오류가 발생했습니다.

그걸 프로그램 버전을 기준으로 변경했습니다.

패쳐(BaiduCloudKorPatcher160504.zip)를 새로 받아서 사용하시기 바랍니다.



2014년 09월 23일 추가 변경 내용

4.8.0 버전부터 패치 방식을 변경하여,

기존의 단순 수정된 db파일 복사하는 방식에서

db 파일을 직접 수정하는 방식으로 변경되었습니다.

default.db 파일의 용량이 버전마다 3메가를 넘겨서 부득이하게 변경하게 되었습니다.

4.8.0 이전 버전은 예전 방식대로 수정된 resource.db 파일만 복사하고

이후 버전은 티스토리 서버에서 압축된 xml파일을 받아서 버전에 맞게 수정합니다.

덕분에 이제 패쳐 실행파일 exe를 버전 업데이트때마다 새로 받을 필요가 없어졌습니다.

물론 인터넷이 연결된 상태여야되고 티스토리 서버가 죽으면 안 된다는 소소한(?) 문제가 있습니다만...

바이러스 오진 대응과 향후 새 버전 업데이트 대처를 위해 변경하게되었습니다.

BaiduCloudKorPatcher.exe 만 실행시키면 향후 업데이트된 바이두 클라우드가 나와도 제가 부지런히 번역 수정한 파일을 티스토리 서버에 올렸다면 바로 패치가 가능합니다.

AVAST등의 백신에서 바이러스 의심 파일로 바로 삭제가 되어 제대로 동작이 안 될 수 있습니다.

그럴땐 실시간 감시를 잠시 끄고 패치를 하시기 바랍니다.


사용 중인 백신 프로그램에서 바이러스로 검진됐을때 해당 백신 프로그램으로 오진 신고를 해주세요.

http://www.techsupportalert.com/content/how-report-malware-or-false-positives-multiple-antivirus-vendors.htm


자동 업데이트가 된 다음 패쳐를 할 경우 한글이 이상하게 나올수 있습니다.

레지스트리와 실행파일에 기록된 버전이 이전 버전으로 저장되어 있어서 패쳐가 버전 인식을 못 해서 그렇습니다.

이럴 경우 바이두 클라우드 프로그램을 삭제 후 재설치한 다음 패치를 하시기 바랍니다.






오토핫키 활용에 참고가 되었으면 합니다.


변경 내역



#NoTrayIcon 
#NoEnv
#SingleInstance force
CoordMode,ToolTip,Screen
CoordMode,Mouse,Screen
CoordMode,Pixel,Screen

DownloadToFile(url, filename)
{
    static a := "AutoHotkey/" A_AhkVersion
    if (!(o := FileOpen(filename, "w")) || !DllCall("LoadLibrary", "str", "wininet") || !(h := DllCall("wininet\InternetOpen", "str", a, "uint", 1, "ptr", 0, "ptr", 0, "uint", 0, "ptr")))
        return 0
    c := s := 0
    if (f := DllCall("wininet\InternetOpenUrl", "ptr", h, "str", url, "ptr", 0, "uint", 0, "uint", 0x80003000, "ptr", 0, "ptr"))
    {
        while (DllCall("wininet\InternetQueryDataAvailable", "ptr", f, "uint*", s, "uint", 0, "ptr", 0) && s>0)
        {
            VarSetCapacity(b, s, 0)
            DllCall("wininet\InternetReadFile", "ptr", f, "ptr", &b, "uint", s, "uint*", r)
            c += r
            o.rawWrite(b, r)
        }
        DllCall("wininet\InternetCloseHandle", "ptr", f)
    }
    DllCall("wininet\InternetCloseHandle", "ptr", h)
    o.close()
    return c
}

if ( !A_IsCompiled ){
	FileSetTime,%A_Now%,%A_ScriptDir%\BaiduYunGuanjia\data\xmls\*.*,C,1,1
	FileSetTime,%A_Now%,%A_ScriptDir%\BaiduYunGuanjia\data\xmls\*.*,M,1,1
	FileSetTime,%A_Now%,%A_ScriptDir%\BaiduYunGuanjia\data\xmls\*.*,A,1,1
	Run, 7za.exe a -t7z -mx9 -y -r "newdata.7z" ".\xmls\*",%A_ScriptDir%\BaiduYunGuanjia\data,hide
}
tmpDir:=A_Temp "\BaiduPatch"
FileCreateDir, %tmpDir%
FileInstall, img\title.png, %A_Temp%\BaiduPatch\title.png, 1
FileInstall, img\baiduyunguanjia_.png, %A_Temp%\BaiduPatch\baiduyunguanjia.png, 1
FileInstall, img\baiduyun_.png, %A_Temp%\BaiduPatch\baiduyun.png, 1
FileInstall, img\trayicon_BaiduYun.bmp, %A_Temp%\BaiduPatch\trayicon_BaiduYun.bmp, 1
FileInstall, img\trayicon_BaiduYunGuanjia.bmp, %A_Temp%\BaiduPatch\trayicon_BaiduYunGuanjia.bmp, 1
FileInstall, img\trayicon_BaiduYun_off.bmp, %A_Temp%\BaiduPatch\trayicon_BaiduYun_off.bmp, 1
FileInstall, img\trayicon_BaiduYunGuanjia_off.bmp, %A_Temp%\BaiduPatch\trayicon_BaiduYunGuanjia_off.bmp, 1
FileInstall, BaiduYunGuanjia\data\7za.exe,%tmpDir%\7za.exe,1
FileInstall, BaiduYunGuanjia\data\OLECompactRepacker.exe,%tmpDir%\OLECompactRepacker.exe,1
if ( !A_IsCompiled ){
	FileInstall, BaiduYunGuanjia\data\newdata.7z,%tmpDir%\newdata.7z,1
}else{
	DownloadToFile("http://cfs.tistory.com/custom/blog/63/631340/skin/images/newdata.7z?=" A_Now,tmpDir "\newdata.7z")
}
Run,7za.exe x -y "newdata.7z",%tmpDir%,Hide
Gui, Color, FFFFFF
Gui, Add, Picture, x22 y70 w128 h128 , %A_Temp%\BaiduPatch\baiduyunguanjia.png
Gui, Add, Picture, x172 y70 w128 h128 , %A_Temp%\BaiduPatch\baiduyun.png
Gui, Add, Picture, x3 y10 w320 h50 , %A_Temp%\BaiduPatch\title.png
Gui, Add, Button, x22 y210 w130 h50 , 웹하드방식
Gui, Add, Button, x172 y210 w130 h50 , 동기화방식
Gui, Font, s8
Gui, Add, Link, x55 y265 w245 h20 +Right, 번역&제작 : http://w3tech.tistory.com/196 
Gui, Show, h280 w326, 바이두 클라우드 한국어 패치
Return

refreshTray:
MouseGetPos,PosX,PosY
WinGet,Tray_ID,ID,ahk_class Shell_TrayWnd
WinGetPos, X1, Y1, cWidth, cHeight, ahk_id %Tray_ID%
X2 := X1+cWidth
Y2 := Y1+cHeight

ImageSearch, reX, reY, X1, Y1, X2, Y2, *10 %A_Temp%\BaiduPatch\trayicon_%client%.bmp
if ( ErrorLevel = 0 )
{
	MouseMove, reX+5, reY+5,0
}else{
	ImageSearch, reX, reY, X1, Y1, X2, Y2, *10 %A_Temp%\BaiduPatch\trayicon_%client%_off.bmp
	if ( ErrorLevel = 0 )
	{
		MouseMove, reX+5, reY+5,0
	}
}
MouseMove,%PosX%,%PosY%,0
Return


Button웹하드방식:
client=BaiduYunGuanjia
gosub,Patch
return

Button동기화방식:
client=BaiduYun
gosub,Patch
return

Patch:
if A_OSVersion in WIN_NT4,WIN_95,WIN_98,WIN_ME,WIN_XP,WIN_2000
{
	RegRead, ver, HKLM,Software\Baidu\%client%,Version
}else{
	RegRead, ver, HKCU,Software\Baidu\%client%,Version
}
if ( ErrorLevel = 1 )
{
	MsgBox, %client%가 설치되어 있지 않습니다.`n클라우드가 설치된 경로를 선택하세요.
	FileSelectFolder, path,,0,BaiduYunGuanjia.exe, resource.db가 있는 폴더 선택
	if ErrorLevel = 1
	{
		MsgBox, 취소되었습니다.
		return
	}
	IfNotExist, %path%\%client%.exe
	{
		MsgBox,%client%.exe 실행파일이 없는 폴더입니다.
		if ( client = "BaiduYunGuanjia" )
			client = BaiduNetdisk
		return
	}else{
		FileGetVersion, ver_long, %path%\%client%.exe
		if ( ErrorLevel > 0 ){
			client = BaiduNetdisk
			FileGetVersion, ver_long, %path%\%client%.exe
		}
		RegExMatch(ver_long,"([\d]+)\.([\d]+)\.([\d]+)\.[\d]+",vers)		
		ver := vers1 "." vers2 "." vers3
	}
}else{
	if A_OSVersion in WIN_NT4,WIN_95,WIN_98,WIN_ME,WIN_XP,WIN_2000
	{
		RegRead, path, HKLM,Software\Baidu\%client%,installDir
	}else{
		RegRead, path, HKCU,Software\Baidu\%client%,installDir
	}
	FileGetVersion, ver_long, %path%\%client%.exe
	if ( ErrorLevel > 0 ){
		client = BaiduNetdisk
		FileGetVersion, ver_long, %path%\%client%.exe
	}
	RegExMatch(ver_long,"([\d]+)\.([\d]+)\.([\d]+)\.[\d]+",vers)		
	exe_ver := vers1 "." vers2 "." vers3
	if ( ver != exe_ver ){
		MsgBox, 레지스트리의 버전 : %ver%`n실행 파일의 버전 : %exe_ver%`n%exe_ver% 버전으로 패치합니다.
		ver:=exe_ver
	}
}
FileList =
Process, Close, %client%.exe
Sleep,500
gosub, refreshTray
if ( client = "BaiduNetdisk" )
	client = BaiduYunGuanjia
Loop, %tmpDir%\%client%\*,1
	FileList = %FileList%%A_LoopFileName%`n
Loop, parse, FileList, `n
{
	IfInString, A_LoopField, %ver%
	{
		found:=1
		break
	}
}
if ( found != 1 )
{
	MsgBox, 패치파일이 없습니다!(ver %ver%)`n설치된 버전에 맞는 번역 패치가 없습니다!`nhttp://w3tech.tistory.com 블로그에서 확인하세요.
	gosub, goExit
}else{
	found:=
	patched:=0
	FileCopy, %path%\resource.db, %path%\resource_%ver%_%A_Now%.db, 1
	if ErrorLevel = 1
	{
		MsgBox, resource.db 파일백업 실패!
		return
	}
		FileCopy, %path%\skin\default.db, %path%\skin\default_%ver%_%A_Now%.db, 1
		if ErrorLevel = 1
		{
			MsgBox, default.db 파일백업 실패!
			return
		}
		IfExist, %tmpDir%\%client%\%ver%\default
		{
			cmdRun:="OLECompactRepacker.exe -R """ path "\skin\default.db"" " tmpDir "\" client "\" ver "\default"""
			try
			{
				RunWait, %cmdRun%,%tmpDir%,hide,runPID
			} catch e {
				MsgBox, default.db 수정 실패!`n%e%
				patched++
			}
		}
		IfExist, %tmpDir%\%client%\%ver%\resource
		{
			cmdRun:="OLECompactRepacker.exe -R """ path "\resource.db"" " tmpDir "\" client "\" ver "\resource"""
			try
			{
				RunWait, %cmdRun%,%tmpDir%,hide,runPID
			} catch e {
				MsgBox, resource.db 수정 실패!`n%e%
				patched++
			}
		}
		IfExist, %tmpDir%\%client%\%ver%\duiengineskin
		{
			FileCopy, %path%\skin\duiengineskin.zip, %path%\skin\duiengineskin_%ver%_%A_Now%.zip, 1
			if ErrorLevel = 1
			{
				MsgBox, duiengineskin.zip 파일백업 실패!
				return
			}
			cmdRun:="7za.exe u -r """ path "\skin\duiengineskin.zip"" " tmpDir "\" client "\" ver "\duiengineskin\*"""
			try
			{
				RunWait, %cmdRun%,%tmpDir%,hide,runPID
			} catch e {
				MsgBox, duiengineskin.zip 수정 실패!`n%e%
				patched++
			}
		}
}
if ( patched < 1 ){
	MsgBox, 패치 완료! (%ver% 버전)`n최신 버전의 한글패치는`nhttp://w3tech.tistory.com`n방문해주세요!
	IfExist, %path%\%client%.exe
		Run, %path%\%client%.exe,,Hide
	else
		Run, %path%\BaiduNetdisk.exe,,Hide
	gosub, goExit
}else{
	MsgBox, 패치 실패! (%patched%개)`n패쳐를 관리자 권한으로 실행해보세요.
}
return

Exit:
GuiClose:
gosub, goExit
return

goExit:
FileRemoveDir, %tmpDir%, 1
ExitApp
return


신고
Posted by 확인소장

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. 2016.05.27 22:32 신고 alvertya  댓글주소  수정/삭제  댓글쓰기

    동기화 방식으로 해서 링크를 제대로 설정해도

    패치파일이 없습니다!!(ver 5.4.4)
    설치된 버전에 맞는 번역패치가 없습니다!

    라고 뜹니다.
    5.4.4파일을 바이두 폴더에 압축풀기도 했습니다만.
    왜이러는거죠

  3. 2016.06.16 20:22 신고 HRN  댓글주소  수정/삭제  댓글쓰기

    정말 감사합니다! 너무 유용하네요ㅠㅠ
    그런데 크롬에서 파일을 다운 받으려고 하니 페이지에 멀웨어가 있다는 경고가 뜨더군요. 익스플로러로 정상적으로 다운 가능했습니다만 블로그 자체가 감염이 된게 아닌가 걱정되네요. 한 번 확인해보심이 어떠실까 합니다!

  4. 2016.07.13 16:21 신고 123123  댓글주소  수정/삭제  댓글쓰기

    바이러스가 없는게 맞는건가요?
    아무래도 스캔 해보시고 올리셔야 할듯합니다.
    바이러스 오진 제보를 어떻게 하는건가요?

    • 2016.07.13 22:58 신고 확인소장  댓글주소  수정/삭제

      다운로드 받은 .exe 파일이 바이러스 검출이 된건가요?

      크롬 브라우저 안전 진단은 첨부파일을 삭제 후 재첨부 하니 괜찮아진것 같습니다.

  5. 2016.07.23 02:15 신고 별사랑  댓글주소  수정/삭제  댓글쓰기

    바이두 가입한지 얼마안되고, 클라우드를 쓰고 싶어서 무슨말인지 몰라, 불편했는데 잘 쓸게요~ 감사합니다~

  6. 2016.07.29 10:28 신고 낄낄  댓글주소  수정/삭제  댓글쓰기

    정말 감사합니다~~한글패치가 돼서 뭔가 깔끔해진 느낌 ㅎㅎㅎ

  7. 2016.07.30 17:13 신고 ㅇㅇ  댓글주소  수정/삭제  댓글쓰기

    감사합니다! 중국어라 어떻게 해야 할지 난감했었는데 덕분에 편하게 사용하고 있어요

  8. 2016.08.03 07:56 신고 pk  댓글주소  수정/삭제  댓글쓰기

    웹하드방식으로 설치하려 하는데, BaiduYunGuanjia가 설치되어있지 않습니다. 클라우드가 설치된 경로를 선택하세요 라는 메세지가 뜨네요. 이게 뭔지 가르쳐 주실수 있으신가요?ㅠㅠ

  9. 2016.08.28 16:34 신고 어쩌다 보니  댓글주소  수정/삭제  댓글쓰기

    이전 버젼 깔면 속도 더 잘 나온다는 말에 기존 꺼 지우고 그거 깔았는데 속도가 그대로... (혹은 더 느려서)
    그래서 다시 홈페이지에서 깔았는데 오늘 오전에는 이 파일 쓰니까 한글패치가 됐는데 이번엔 안 되네요 ㅜㅜㅜ 5.4.10 버젼인데ㅜㅜ 설치된 버전에 맞는 번역 패치가 없다고 뜹니다ㅜ

    P.S. 이거 그럼 업데이트 될 때마다 새로 한글패치 해야 하나요...???? 너무 번거로운데 방법이 없을까요..

  10. 2016.09.28 13:42 신고 풀려여  댓글주소  수정/삭제  댓글쓰기

    이거 한글패치 다 하고 다음날 다시 컴퓨터 켜보니 한글패치가 사라져있네요
    어떻게해야하죠?

  11. 2016.09.30 10:48 신고 wonderku  댓글주소  수정/삭제  댓글쓰기

    그냥 격하게 잘쓰고 있어서 댓글이라는 걸 남겨봅니다. 감사합니다!

  12. 2016.10.07 16:34 신고 권혜정  댓글주소  수정/삭제  댓글쓰기

    감사합니다. 잘 쓸게요~^^

  13. 2016.10.17 12:15 신고 좋은아침  댓글주소  수정/삭제  댓글쓰기

    고맙습니다..

  14. 2016.10.26 19:37 신고 ㅇㅇ  댓글주소  수정/삭제  댓글쓰기

    설치형으로 깔고 로그인할떄 중국어로 코드입력하라고 하는데 어떻게 해야될까요??

  15. 2016.11.05 21:27 신고 차수환  댓글주소  수정/삭제  댓글쓰기

    이거 속도패치된건 아니죠?

  16. 2016.11.09 17:29 신고 모리어티  댓글주소  수정/삭제  댓글쓰기

    정말 잘 작동합니다. 언어장벽의 한계를 여기서 뛰어넘고 가네요. 고맙습니다!!

  17. 2016.11.26 10:41 신고 박통장  댓글주소  수정/삭제  댓글쓰기

    감사히 사용하겠습니다

  18. 2016.12.25 20:34 신고  댓글주소  수정/삭제  댓글쓰기

    어...패치 파일이 깔린 폴더의 경로를 인식하지 못하는데.. .해결방법 있습니까..?

  19. 2017.01.18 15:51 신고 홍늑  댓글주소  수정/삭제  댓글쓰기

    잘 쓸게요. ㄳㄳ

  20. 2017.01.21 19:09 신고  댓글주소  수정/삭제  댓글쓰기

    근데 패치하면 이거 서버오류(1550010)가 나는데 왜 그런건가요?
    5.50버젼인데

  21. 2017.02.14 23:54 신고 111  댓글주소  수정/삭제  댓글쓰기

    잘쓰겠읍니다

티스토리 툴바