2008年07月03日

iTunes 7.2.6.9 をWindows2000で動作させるまで

Windows 2000で iTunesの最新版が動きました

7.4.3までは動作していたのですが、7.5以降は、起動中にフリーズしてしまって、原因が特定できなかったんですが、Kernel32.dllのデバッグモードを眺めていて、読み出し不能のDLLがあることに気づいて、コピーしてみたら、
見事に起動しました。


ちなみに必要なのは、sccsccp.dllと sccbase.dllというファイル。
Windows 2003 SP2を解凍してでてくる 同梱の 5.2.3790.3959というバージョンのファイルを使用してみました。
どうやら、これらはInfineonベースのSmartCard 用の暗号APIのようですね。 続きを読む

blackwingcat at 21:07|PermalinkComments(0)TrackBack(0) | Apple 製品 | 互換ModeとKDW

2008年07月02日

Windows 2000 でも SysLinkが使える?

Windows 2000で SysLinkクラスのオブジェクトをクリエートするとダイアログの生成に失敗してしまうので、KDWではSysLinkを作成した場合に限りStaticに置き換えるようにしています。

ところが、この処理を行っていると、Windows Updateで ダイアログのリンク部分が、テキストになってしまうのです。
Update

これはどういうことなのでしょうか?
というわけで、wuapi.dll を解析してみました。

すると、
if(SUB_L506DD422(par1,par2,L"SysLink")=S_OK){
          msvcrt.dll!??2@YAPAXI@Z(0x24,0);
}

function  WINAPI SUB_L506DD422(void *par1,void *par2,char *Classname){
    DWORD RET,RET2,RET3,RET4,STY1,STY2,DAT;
    TRect TMP;
    HWND hWnd,hWnd2;
    RET4=0;
    RET=SUB_L506DCF40(par1,par2,&TMP);//GetRect
    if(RET>0){
          hWnd=GetDlgItem(par1,par2);
          if(hWnd){
             RET2=SendMessageW(hWnd,WM_GETFONT,0,0);
             if(RET){
                RET3=SUB_L506DD22A(hWnd,&RET4);//new and GetText
                if(RET3){
                  STY1=GetWindowLongW(hWnd,GWL_STYLE);
                  STY2=GetWindowLongW(hWnd,GWL_EXSTYLE);
                  DAT=0;
                  if(STY1&WS_VISIBLE){
                      STY1&=~WS_VISIBLE;
                      DAT=0x40;
                  }
                  hWnd2=CreateWindowExW(STY2,Classname,RET4,RET2, TMP.Left,TMP.Top,TMP.Right-TMP.Left,TMP.Bottom-TMP.Top,par1,par2,0,0);
                  if(hWnd2==NULL){
                       RET=(GetLastError&0xffff)|0x80070000;//SUB_L506B121A
                  }
                  else{
                     RET2=SendMessageW(hWnd2,WM_SETFONT,RET2,0);
                     SetWindowPos(hWnd2,hWnd,0,0,0,0,DAT|0x13);
                     DestroyWindow(hWnd);
                     RET=0;
                   }
              }
         }
     }
     free(&RET4);//SUB_L506DEFE7
     return RET;
}
どうやってるのかはわかりませんが、Createしてますね。う〜ん。
とりあえず、今日はここまで。

続き、実際にトレースしてみたところ、
CreateWindowsExに失敗した場合分岐して、リンクを作成しているということがわかりました
○+< どてっ。

でも、Shell32.dllの非公開関数の LinkWindow_RegisterClassを使ってるわけではないんですよね。

じゃあ、どうやってリンクを作成しているのかというと、その直後の命令がどうも担ってるようです。
if(SUB_L506DD422(par1,par2,L"SysLink")==NULL){
          res=msvcrt.dll!??2@YAPAXI@Z(0x24);
          if(res){
             hWnd=SUB_L506DDF9F(res);
          }
}
SUB_L506DDF9Fで何かすごいことをやってるのかなと思って、解析してみたのですが、
Windowスタイルを変更して、クリックしたときに、Window プロシージャーでジャンプさせてるだけでした。
うーん、残念。

っていうか、分岐させる必要性ないような気がする。

というわけで、一連のコードを、LinkWindow_RegisterClassで実行してみることに。

Update
RECT rc;
DWORD STY1,STY2,STY3;
HWND hStwnd,hPwnd,hLink;
DWORD hFont;
char str[512];
HINSTANCE hLibrary;
hStwnd=GetDlgItem(hDlg,IDC_STATIC);
GetWindowRect(hStwnd,&rc);
hPwnd=GetParent(hStwnd);
hFont=SendMessageW(hStwnd,WM_GETFONT,0,0);
MapWindowPoints(0,hPwnd,(POINT*)&rc,2);
GetWindowText(hStwnd,str,512);
STY1=GetWindowLongW(hStwnd,GWL_STYLE);
if(STY1&0x10000000){
  STY1&=~0x10000000;
  STY3=0x40;
}
else STY3=0;
STY2=GetWindowLongW(hStwnd,GWL_EXSTYLE);
BOOL (FAR STDAPICALLTYPE * pLinkWindow_UnregisterClass)(HINSTANCE hInstance) ;
BOOL (FAR STDAPICALLTYPE * pLinkWindow_RegisterClass)(void) ;
hLibrary = LoadLibrary("shell32.dll");
if (hLibrary){
   (FARPROC&)pLinkWindow_RegisterClass = GetProcAddress(hLibrary,(char*)258);
   (FARPROC&)pLinkWindow_UnregisterClass = GetProcAddress(hLibrary,(char*)259);
   if(pLinkWindow_RegisterClass){
     pLinkWindow_RegisterClass();
     hLink=CreateWindowEx(STY2,"Link Window",str,STY1,rc.left,rc.top,rc.right-rc.left,rc.bottom-rc.top,hDlg,(HMENU)IDC_STATIC,0,0);
     if(hLink){
         SendMessageW(hStwnd,WM_SETFONT,hFont,0);
         SetWindowPos(hLink,hStwnd,0,0,0,0,0x13|STY3);
         DestroyWindow(hStwnd);
         if(pLinkWindow_UnregisterClass)
             pLinkWindow_UnregisterClass(GetModuleHandle(NULL)); 
     }
   }
}

Update
うーむ、ふつーに表示されてるようだ

いただいたコメント
[1]  名の無い猫さん さんのコメント 2008/07/03 07:37:59
 LinkWindow_RegisterClassではないでしょうか?
[2]  黒翼猫 さんのコメント 2008/07/03 08:41:19
ところが、SHELL32.258 (LinkWindow_RegisterClass) を使ってる形跡がないんですよね。


blackwingcat at 18:59|PermalinkComments(0)TrackBack(0) | Windows2000 | Programing

2008年06月30日

Evernote 3.0.0.xxx を Windows 2000へ

Evernote というソフトがWindows2000非対応という記事を見つけたのでVersion Evernote 3.0.0.625 をインストールしてみました。


インストーラーはfcwin2kのXP互換モードであっさり通ります。


インストール完了、リンクをクリックしてみたけれども反応がないのが唯一動かなかったところです。
仕方なく、手動でアカウント取得します。


とりあえず、使えてる模様。

ちょっと面白そうなサービスですね。
追記
最新版 v3.0.0.788 は『プロシージャ エントリ ポイントTzSpecificLocalTimeToSystemTime がダイナミック リンク ライブラリ KERNEL32.dll から見つかりませんでした。』("The procedure entry point TzSpecificLocalTimeToSystemTime could not be located in the dynamic link library KERNEL32.dll. ")というエラーになってしまうので、EzModeで kernel32.dllだけコピーして使わないといけないようです。(システムにインストールしてもOK)

TrackBack:
私的メモというか日記 雑記というかメモ
It's better.: Evernoteをwindows2000にインストール


blackwingcat at 21:01|PermalinkComments(0)TrackBack(0) | Windows2000 | 互換ModeとKDW

Windows Update 失敗 エラー番号: 0xC8000836

こんなのが出たけど、ネット上で検索してもヒットしない(笑)


   

[エラー番号: 0xC8000836]
インストールに失敗した更新プログラムを表示します Web サイトに問題が発生したため、このページを表示できません。次のオプションが、問題の解決に役立つ可能性があります。

セルフ ヘルプ オプションは次のとおりです。

サポート オプションは次のとおりです。


というわけで、解決策。

%WINDIR%\SoftwareDistribution にあるファイルを可能な限り削除する。
( Delete all Files in %WINDIR%\SoftwareDistribution as you can.)

これだけでいけました。

実際は %WINDIR%\SoftwareDistribution\DataStoreだけ消せばいいみたいです。

blackwingcat at 01:20|PermalinkComments(3)TrackBack(0) | Windows全般 | WindowsUpdate/WLU
このエントリーをはてなブックマークに追加
|
livedoor プロフィール
My PC
SNOWSTORM(P5E3 Premium)
OS:Win2000AdvancedSv
CPU:Xeon(4Core) 2.83G
Memory:8G
VGA:NVIDIA GTX 780Ti
HDD:SSD(32G)
    +SATA(540G+180G)
Crystal SCR:244765
SNOWFOX2(W860CU)
CPU:Core i5-540M(2.53G)
OS:Win2000Pro
Memory:4G
VGA:Geforce GTX285M
HDD:SSD(160G)
Crystal SCR:176460
SNOWMOBILE3(CF-J10S)
CPU:Core i5-2410M(2.3G)
VGA:Intel HD Graphics
HDD:SSD(128G)
Windows2000
Memory:6G
Crystal SCR:133495
SNOWMOBILE(N10Jc/故障)
Windows2000/XP Home
Crystal SCR:38316
SNOWLEO(MA206J/A/休止)
OS:OSX 10.4 +
Windows2000Pro(Solo動作)
Crystal SCR:24061
Windows 2000の セキュリティ対策について
FFR yarai(脆弱性防御)
SymantecEndpointSecurity 11 MR7
Windows Defender
記事検索
訪問者数

    今週のアクセス数

    Win2000お勧め
    お勧め記事
    Twitter Client Mo-Footer
    .NET FrameworkのUninstall
    lolifox 0.3.8.x
    WindowsのシャットダウンTips
    Fox Launcher
    ウィルス感染を手動で見つける方法
    Unknown Hard Errorとサルベージ
    Dependency Walker 日本語化
    Ultra VNC 1.0.6/1.0.8 を日本語化
    IME補完計画
    BSoD(ブルースクリーン)特集
    デフラグ時の4つの心得
    不明なデバイス探し
    SETUPAPI/NTDLLBugFix
    DNSデボルブ用更新[KB957579]
    最新 update.sys!
    4Thread以上のCPU最適化
    Win2000マルチコアで最適化
    Windows 2000の通信速度改善1
    Windows 2000の通信速度改善2
    内蔵簡易FireWallを使う
    ワームに感染しないインストール
    Remote Desktop Client
    IME 辞書 Tips
    Win2000用セキュリティSOFT
    不要なファイルの削除
    Win2000カスタマイズ
    便利なキーボードショートカット
    6月末まで使える体験版セキュリティ

    非対応ハード動作編
    HTC NDIS Driver
    Intel HD Graphic Driver
    VMWare Player 3.1.x
    Conexant HD Audio Driver
    NVIDIA WHQL Driver
    Intel Chipset 最新 INF
    Sentelic Finger Pad Driver
    ATI Legacy Driver 10.2
    AMD Radeon Driver 8〜11
    ATI Ahci/Raid Driver
    Intel SATA AHCI Driver
    D21LC(eMobile)
    USB-WSIM
    UVC カメラ
    Logicool Webcam
    Logicool ゲームパッド
    XBOX360用コントローラー
    Logicool Mouse
    Microsoft IntelliPoint
    iPod Touch/iPhone Driver

    非対応アプリ動作編
    Flash Player 10.3
    Java 6 JRE
    Java 7.0 JRE
    ティルズウィーバー
    Natal Online
    コンチェルトゲートフォルテ
    シルクロードオンライン
    東方幻想麻雀
    IME2010 Installer
    Adobe Reader X for Win2000
    Baidu IME 2.x
    MMORPG ドルアーガーの塔
    Adobe Air for Windows 2000
    Baidu IME
    iTunes 10.x installer
    Evernote 4
    Janetter
    Second Life
    雀龍門
    Media Manager for PSP 2.5a
    .NET Framework 3.5SP1
    ATOK 月額版(2010/2011)
    Leaf 愛佳でいくの!!
    VistaのScreenSaver
    会計ソフト弥生シリーズ 10
    Vegas Movie Studio 9
    EyeBall Chat
    ・CanonPowerShot[Soft/DPP]
    Google SketchUp Pro 7
    dance mixer
    Lismo Port
    DivX
    SONY ScreenSaver
    mixi アプリ
    DivX v7.x
    ニコニコムービーメーカー(動画)
    RC-S330 PaSoRi
    Finale 2009
    ZoneAlarm 8.0
    ルナティア Online
    ストリートギアーズ
    xfy Blog Editor
    Photoshop Elements 7
    Premiere Elements 7
    PowerShell 1.0
    ai sp@ce
    電脳フィギュアARis
    VOCALOID2 ミク・リンレン
    Google Chrome/SRW Iron
    Media Player 10
    ・iTunes 7.6.2を使う方法
    QuickTime 7.5x/7.6x
    foobar2000 9.5.x/9.6.x
    RealPlayer11
    Safari3/4.0
    ShockwavePlayer10/11
    Windows Live Writer
    Live Messenger
    Veoh Web Player / Web TV
    Level-R

    追加機能・カスタマイズ編
    W2K Kernel32 改造計画【BM】
    W2K Update Rollup v2
    XNA/SlimDX
    CPU Core数リミット解除
    OutLook Express 6SP3
    MDAC 2.8 SP2
    GIF/PNGを使えるMSPAINT
    IE5でWindowsUpdate
    MSXML 4.0SP3
    DirectX9.0c(2010/Feb)+拡張
    MS09-062(Gdiplus.dll)更新
    Unicode 制御文字
    Internet Explorer6 Bonus Pack
    夏時間(DaylightSavingTime)
    レジストリバックアップを取る
    IME2007
    Windows Media Bonus Pack
    XPSファイルビューア
    Windows Defender
    文字化け対策(FontLink)
    Meirio(KB927489)
    msconfig
    圧縮フォルダ
    Windows Movie Maker
    IE5.01/5.5/6タブ化
    MediaTypeChanger(EISA構成)
    Win2000 SP4 Support Tool
    kill/tlist with Debugging Tools
    sc.exe with Resource kit
    reg.exe
    TaskTray 256色化
    ISO仮想CD/DVDドライバ
    IE6高速化とWSH 5.7/5.8
    MS Baseline Security Analyzer
    音声認識 API 5.1
    Text Service

    Win2000インストール編
    CF-J10S
    N10Jc
    ThinkPad X200(7454)
    Quad Core/X48/P5E3
    VAIO VGN Type S
    E6850搭載 サポートPC
    Let'snote CF-R6
    MacMini
    Dell LATITUDE D630
    Core i7 + X58 +ICH10R
    790FX + SB750
    Clevo W860CU
    最新コメント
    Categories
    アーカイブ
    Information
    Google広告




    Translate


    このサイトはIE5.x/IE6
    IE5.x Internet Explorer 6.x

    Firefox Firefox ブラウザ無料ダウンロード
    で最適化されています。
    Technorati
    Add to iGoogle
    Amazon GIFTでカンパ

    Donation