W기술과 생활

닫기 검색결과 전체 보기

    [AHK] 바이두 클라우드 모든 버전에 대응하는 패쳐 만들기

    Tip/AHKmacro 2013. 12. 17. 19:03
    안녕하세요.

    예전에 바이두 클라우드 한국어 패치 작업을 편하게 하기 위해 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


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

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

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


    블로그 다운

    BaiduCloudKorPatcher170526.zip


    무압축

    BaiduCloudKorPatcher.exe


    최근 바이두 클라우드가 BaiduNetDisk로 이름이 변경되면서 아이콘도 파란색에서 흰색 아이콘(기존의 동기화방식)으로 변경되었습니다.

    아이콘 따라서 패치 버튼을 누르시지 마시고 [웹하드방식] 버튼을 눌러서 패치하세요.




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


    2015년 12월 04일 변경 내용

    1. 컴파일 후 아이콘 변경을 하지 않음 (변경시 바이러스 오진 이유)


    2014년 01월 11일 추가 변경

    1. 프로세스 종료 후 트레이에 아이콘이 남겨지는걸 제거하는 동작 추가

    2. BaiduYun 3.9.0 업데이트 추가


    2014년 03월 22일 추가 변경

    1. 한글패치된 파일이 없으면 오류메세지 표시후 패치 안 함

    2. BaiduYunGuanjia 4.6.1, 4.6.0 업데이트 추가


    2014년 04월 16일 추가 변경

    1. 공개옹유생성 → 공개공유생성 오타 수정

    2. 패처 아이콘 변경


    2014년 08월 06일 변경

    1. 4.8.1버전 패치 대응


    2014년 08월 11일 변경

    1. 4.8.2버전 패치 대응


    2014년 08월 25일 변경

    1. 4.8.3버전 패치 대응


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

    4.8.5 버전 업데이트하면서 스킨 데이터 파일도 같이 수정합니다. (resource.db 파일과 skin폴더의 default.db)

    기본 폰트는 Meiryo로 지정했습니다.(일본어와 한자어 원활한 표시를 위해)


    2014년 10월 08일 추가 내용

    윈도우 10 preview 버전에서 패치가 작동 안 된다는 제보로 수정하였습니다.

    압축을 풀기 위한 7z 실행파일을 7za.exe로 변경

    로그인 화면에서 암호 기억 → 암호기억, 자동 로그인 → 자동로그인 으로 변경

    다시 관리자 권한으로 실행되게 변경


    2014년 10월 23일 추가 내용

    5.0.0 버전 대응

    duiengineskin.zip 파일 한글 번역 작업 추가

    실행시 권한을 asInvoker 다시 내렸습니다. 권한이 높을때 패쳐가 오작동하더군요.


    2014년 11월 13일 추가 내용

    5.0.1 버전 대응

    실행시 권한을 다시 관리자 권한으로 변경하였습니다.

    스크립트의 7za과 OLEcompactRepacker의 명령줄 살짝 수정


    2014년 11월 15일 추가 내용

    BaiduYun 한글화 패치 안 되던 문제 수정(동기화 방식)

    if ( verp1 == 4  && verp2 < 8 )

    → if ( ( verp1 == 4  && verp2 < 8 ) or ( client = "BaiduYun") )


    2014년 11월 18일 추가 내용

    BaiduYun 3.9.2 버전 대응

    기존 버전(3.8.0, 3.9.0) xml 리팩 방식으로 변경


    2014년 11월 18일 추가 내용

    패치가 제대로 동작하지 않던것 수정(XP에서도 테스트 완료)

    resource.db 파일들이 실행파일에 포함되던것을 삭제함


    2014년 11월 28일 추가 내용

    duiengineskin.zip 파일 업데이트가 안 되던 문제 수정

    스크립트 동작 속도를 평균값으로 변경(더 안정적으로)

    db파일 패치 동작이 끝날때까지 기다리게 변경(이전보다 패치 완료까지 더 시간이 걸림)

    실행시 메모리 256MB 확보 동작 추가(혹시 몰라서...)


    2015년 1월 1일 추가 내용

    구버전에서 패치 파일이 없다고 안 되던 문제 수정(늦어서 죄송!)


    2016년 3월 31일 추가 내용

    4.8.0미만 버전 패치방식 변경 (xml 병합)


    
    #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
    


    'Tip/AHKmacro' 관련 글 more
    • thumbnail
      [AHK] 오토핫키 컴파일된 exe 파일... 괜찮을까? 2014.02.04
    • thumbnail
      [AHK] 바이두 클라우드 프록시 전환 2014.02.02
    • thumbnail
      바이두 클라우드 한국어 패치 프로그램 AHK로 만들기 2013.09.26
    • [AHK] 피파온라인3용 엑박패드 유저를 위한 도우미 2013.07.28
    Posted by 확인소장
    AHK, ahk gui, ahk 파일, ahk 파일복사, autohotkey, baidu, Baidu Cloud, BaiduYun, Notice, 百度, 百度云同步盘, 百度云管家, 무료 클라우드, 바이두, 바이두 동기화, 바이두 웹하드, 바이두 클라우드, 바이두 클라우드 한글, 바이두 클라우드 한글패치, 바이두 프로그램, 바이두 한국어, 바이두 한글, 바이두 한글화, 클라우드 한국어, 클라우드 한글패치, 한국어 패치, 한글화
    • 이전 댓글 더보기

바로가기

  • thumbnail 이미지 외부링크용 구글 드라이브
  • thumbnail 대기오염 실시간 확인

블로그 내용 검색

블로그 이미지

인터넷 기술, 오토핫키, 바이두 클라우드 한글화

by 확인소장

공지사항

    최근...

  • 포스트
  • 댓글
  • thumbnail 바이두 클라우드 BaiduNetdisk 7.5.0.26 36
  • thumbnail 바이두 클라우드 BaiduNetdisk 7.4.3.3 1
  • thumbnail 바이두 클라우드 BaiduNetdisk 7.4.2.2 2
  • thumbnail 바이두 클라우드 BaiduNetdisk 7.4.1.3 1
  • thumbnail 바이두 클라우드 BaiduNetdisk 7.4.0.8 1
  • 더 보기
  • thumbnail Aliexpress에서 자동차 스케너를 구매했는데요. 판매자가 ⋯
    lookee kim ㆍ 12.14
  • thumbnail 하트 누르고 갑니다.
    see here ㆍ 11.06
  • thumbnail 성인자료나 저작권 자료는 무작위로 대거 차단되고 유료 가격도 비⋯
    erkgd ㆍ 05.28
  • thumbnail 감사합니다 님 덕에 짱깨를 물리쳤습니다.
    123 ㆍ 04.15
  • thumbnail 감사합니다 님 덕에 짱깨를 물리쳤습니다.
    123 ㆍ 04.15

태그

  • Baidu Cloud
  • 바이두 클라우드
  • AHK
  • 바이두 앱
  • 바이두 한글화
  • GUI
  • 바이두 뮤직
  • 한국어 패치
  • 클라우드 한글화
  • BaiduCloud
  • 百度云
  • autohotkey
  • 百度音乐
  • 한국어
  • baidunetdisk
  • 百度
  • 한글패치
  • 바이두
  • Android
  • BaiduYunGuanjia
  • apk 한글화
  • 바이두 한글
  • 한글화
  • 百度云管家
  • BaiduYun
  • Baidu cloud app
  • ADD
  • baidu
  • baiduyun app
  • BaiduYunApp

글 보관함


  • 2021/07
    (2)

  • 2021/06
    (3)

  • 2021/05
    (3)
«   2023/03   »
일 월 화 수 목 금 토
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

링크

카테고리

  • 모든 글타래 (266)
    • Patch (158)
      • BaiduCloud (147)
      • BaiduMusic (7)
      • XiamiMusic (2)
    • Tip (86)
      • AHKmacro (20)
      • BaiduCloud (36)
      • PC활용 (29)
    • Monologue (13)
    • ETC (3)
    • Temp (6)

카운터

Total
4,124,739
Today
19
Yesterday
117
  • 홈
  • 방명록
  • 링크추가
확인소장's Blog is powered by daumkakao
Skin info material T Mark 5+ by 뭐하라
favicon

W기술과 생활

인터넷 기술, 오토핫키, 바이두 클라우드 한글화

  • 홈
  • 방명록
  • 링크추가

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 모든 글타래 (266)
    • Patch (158)
      • BaiduCloud (147)
      • BaiduMusic (7)
      • XiamiMusic (2)
    • Tip (86)
      • AHKmacro (20)
      • BaiduCloud (36)
      • PC활용 (29)
    • Monologue (13)
    • ETC (3)
    • Temp (6)

카테고리

PC화면 보기
티스토리
Daum

티스토리툴바