follow me on Twitter

    2009ǯ11·î28Æü

    °Üž¤·¤Þ¤¹

    °ÊÁ°¤«¤é¤³¤Ã¤½¤êºî¶È¤ò¿Ê¤á¤Æ¤¤¤¿¤Î¤Ç¤¹¤¬¡¢¤Ï¤Æ¤Ê¤Ë°Ü½»¤¹¤ë¤³¤È¤Ë¤·¤Þ¤·¤¿¡£
    ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ä¥ê¥ó¥¯¤ò¤·¤Æ¤¯¤ì¤Æ¤¤¤ëÊý¤Ï¥¢¥É¥ì¥¹¤ÎÊѹ¹¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£

    Éϵӥ졼¥µ¡¼¤Î¥µ¥Ü¤êÆüµ­in¤Ï¤Æ¤Ê
     
    Posted by ¤¢¤Ë¤¹ at 18:08  ¡ÃComments(130) ¡ÃTrackBack(8) | Æüµ­

    2009ǯ11·î04Æü

    ¸À¸ì¥Ð¡¼¤¬¶õµ¤ÆÉ¤ó¤Ç¥­¥ã¥ì¥Ã¥È¤ËÉÕ¤¤¤ÆÍè¤ë¥¢¥×¥êºî¤Ã¤Æ¤ß¤¿

    ¸À¸ì¥Ð¡¼¤Ã¤Æ¶õµ¤ÆÉ¤Þ¤Ê¤¤¤è¤Í¡£¥¿¥¹¥¯¥Ð¡¼¤ËÆþ¤ì¤Æ¤ë¤Èºî¶ÈÃæ¤Î»ëÀþ°Üư¤¬Â¿¤¯¤Ê¤ë¤·¡¢¥Ç¥¹¥¯¥È¥Ã¥×¤ËÃÖ¤¤¤È¤¯¤È¸«¼º¤¦¡£
    ¤À¤«¤é¥­¥ã¥ì¥Ã¥È¤òÄɤ¤³Ý¤±¤ë¤è¤¦¤Ë¤·¤Æ¤ß¤¿¡£

    http://www.k4.dion.ne.jp/~anis7742/Application/langbertool/langbertool_ver_1.02.zip

    ¤â¤Ã¤È¶õµ¤ÆÉ¤á¤ë»ÅÍͤ¬¤¢¤ë¤ó¤¸¤ã¤Ê¤¤¤«¤È»×°Æ¤·¤Æ»îºîÉʤòºî¤Ã¤¿¡£
    ¾ï¤Ë¥­¥ã¥ì¥Ã¥È¤òÄɤ¤³Ý¤±¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¥Õ¥©¡¼¥«¥¹¤¬°Ü¤Ã¤¿¥¿¥¤¥ß¥ó¥°¤Ç¸À¸ì¥Ð¡¼¤ò¥­¥ã¥ì¥Ã¥È¤Î°ÌÃÖ¤Ë°ÜÆ°¤·¤Æ¡¢¿ôÉ÷Ф俤饦¥£¥ó¥É¥¦¤Î³°¤ËÂàÈò¤¹¤ëµóư¤Ë¤·¤Æ¤ß¤¿¡£

    http://www.k4.dion.ne.jp/~anis7742/Application/langbertool/release.zip
     

    2009ǯ11·î01Æü

    C#|WebBrowser¤Çɽ¼¨Ãæ¤ÎWeb¥Ú¡¼¥¸¤Î¥Õ¥¡¥Ó¥³¥ó¤ò¼èÆÀ

    Visual Basic Ãæ³Ø¹» ·Ç¼¨ÈÄ
    http://rucio.groupsite.jp/commu/ThreadDetail.aspx?ThreadId=9423

    ¤³¤ó¤Ê¤ä¤ê¤È¤ê¤¬¤¢¤ê¤Þ¤·¤Æ¡£
    ºÇ½é¤ÎÊÖ¿®¤ÇWikipedia¤Î¥ê¥ó¥¯¤À¤±¼¨¤·¤¿¤Î¤Ï¡¢Ì²¤¯¤Æ¤Þ¤È¤â¤Ë¥³¡¼¥É¤¬½ñ¤±¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¹¡£
    ¤½¤Î¸å¡¢´ÉÍý¿Í¤Î¤ë¤­¤ª¤µ¤ó¤¬¥³¡¼¥É¤ò½ñ¤¤¤Æ¤¤¤¿¤Î¤Ç¡¢Ëͤâ½ñ¤­¤¿¤¯¤Ê¤Ã¤¿¤ï¤±¤Ç¤¹¡£
    ̲¤¯¤Ê¤«¤Ã¤¿¤Î¤Ç¥µ¥¯¤Ã¤È½ÐÍè¤Þ¤·¤¿¡£À޳ѤʤΤÇC#¤Ë½ñ¤­Ä¾¤·¤Æ¤³¤³¤Ëµ­Ï¿¡£

    using System;
    using System.Drawing;
    using System.IO;
    using System.Net;
    using System.Windows.Forms;

    public partial class Form1:Form {
    public Form1() {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e) {
    this.webBrowser1.Navigate("http://blogs.dion.ne.jp/anis7742/");
    }

    private void webBrowser1_DocumentCompleted(
    object sender,
    WebBrowserDocumentCompletedEventArgs e) {

    foreach(HtmlElement linkTag
    in webBrowser1.Document.GetElementsByTagName("link")) {

    string relAttribute = linkTag.GetAttribute("rel");
    string iconUrl;

    if(relAttribute == "shortcut icon" || relAttribute == "icon") {
    iconUrl = linkTag.GetAttribute("href");

    if(iconUrl.StartsWith("http")) { //´°Á´¤ÊURL¤Î¾ì¹ç
    this.Icon = getIconFromUrl(iconUrl);
    } else if(iconUrl.StartsWith("/")) { //ÀäÂХѥ¹¤Î¾ì¹ç
    this.Icon = getIconFromUrl("http://" + e.Url.Host + iconUrl);
    } else { //ÁêÂХѥ¹¤Î¾ì¹ç
    this.Icon = getIconFromUrl(e.Url.ToString() + iconUrl);
    }

    break;
    }
    }

    //¥¿¥°¤Ç¤Î»ØÄ̵꤬¤¤¾ì¹ç
    this.Icon = getIconFromUrl("http://" + e.Url.Host + "/favicon.ico");
    }

    private Icon getIconFromUrl(string url) {
    using(WebClient webClient = new WebClient())
    using(MemoryStream stream = new MemoryStream(webClient.DownloadData(url))) {
    return new Icon(stream);
    }
    }
    }

     

    2009ǯ10·î21Æü

    2009ǯ10·î15Æü

    Twitter¤ËWMP¤ÇºÆÀ¸Ãæ¤Î¶Ê¤ò¼«Æ°Åê¹Æ¤¹¤ëBOTºî¤Ã¤Æ¤ß¤¿


    listeningnowSS

    ºîÀ®¤Ë»ê¤Ã¤¿·Ð°Þ¤Ï¤³¤ó¤Ê´¶¤¸¤ÇĶȴ¿è¡£

    kyubot ¡Ú @mitsugogo ¤è¤êµÞÊç¡ÛWMP¤ÇºÆÀ¸Ãæ¤Î¶Ê¤òTwitter¤ËÅê¹Æ¤¹¤ë¥×¥é¥°°õ
    anis774 @mitsugogo ¾ÜºÙ´õ˾¡£ÌÌÇò¤½¤¦¤Ê¤éºî¤ê¤Þ¤¹
    mitsugogo @anis774 Windows Media Player¤ÇºÆÀ¸¤·¤Æ¤¤¤ë¶Ê̾¤ä¥¢¥ë¥Ð¥à̾¤Ê¤É¤òTwitter¤Ëή¤·¤¿¤¤¤ó¤Ç¤¹¡£º£»È¤Ã¤Æ¤ß¤Æ¤¤¤ë¥×¥é¥°¥¤¥ó¤Ç¤¹¤È¡¢ÆüËܸì¤Ç¼ã´³Ê¸»ú²½¤±¤¬È¯À¸¤¹¤ë¤è¤¦¤Ê¤Î¤Ç¡¦¡¦¡¦
    anis774 @mitsugogo ¤Á¤ç¤Ã¤È¤ä¤Ã¤Æ¤ß¤Þ¤¹¤Í
    sedna2501 @anis774 ÍßÄ¥¤ê¸À¤¦¤È¤³¤ó¤Ê´¶¤¸¤Î̵Íý¤Ç¤·¤ç¤¦¤«¡©¡¡¤Á¤ç¤Ã¤ÈtextÊÔ½¸½ÐÍè¤ë¤È´ò¤·¤¤¡¦¡¦¡¦ http://d.hatena.ne.jp/brazil/20070413/1176394371

    ¤Æ¤Ê´¶¤¸¡£

    listeningnow.zip

    ºî¼Ô¡§¤¢¤Ë¤¹
    Ï¢ÍíÀè¡§anis774_for2ch@yahoo.co.jp
    ¥é¥¤¥»¥ó¥¹¡§NYSL

    ¡Ú¤ê¤¹¤Ë¤ó¤°¤Ê¤¦¤Ã¤Æ¤Ê¤Ë¡©¡Û
    Windows Media Player ¤ÇºÆÀ¸Ãæ¤Î¶Ê̾¤òTwitter¤ËÅê¹Æ¤¹¤ëBOT¤À¤è¡£

    ¡Ú»È¤¤Êý¡Û
    WMP¤ò¥á¥Ã¥»¥ó¥¸¥ã¡¼¤Ë¶Ê̾¤¬Á÷¿®¤µ¤ì¤ë¤è¤¦¤ËÀßÄꤷ¤Æ¤Í¡£
    settings.ini¤òŬÅö¤ËÊÔ½¸¤·¤Æ¤Í¡£
    interval¤Îñ°Ì¤ÏÉäÀ¤è¡£
    ¤ê¤¹¤Ë¤ó¤°¤Ê¤¦.exe¤òµ¯Æ°¤·¤Æ¤Í¡£
    µ¯Æ°¤·¤¿¤éinterval¤ÇÀßÄꤷ¤¿Éÿô¤´¤È¤Ë¥¿¥¤¥Þ¡¼¤¬Áö¤ë¤è¡£
    WMP¤«¤é¶Ê̾¤ò¼õ¿®¤·¤¿¤é¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¤ÎÆâÍÆ¤¬¹¹¿·¤µ¤ì¤ë¤è¡£
    ¥¿¥¤¥Þ¡¼¤Î»þ´Ö¤¬Í褿¤é¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¤ÎÆâÍÆ¤¬Twitter¤ËÅê¹Æ¤µ¤ì¤ë¤è¡£
    ¤½¤ì¤Þ¤Ç¤Î´Ö¤ËÅê¹Æ¤¹¤ëÆâÍÆ¤òÊÔ½¸½ÐÍè¤ë¤è¡£
    ¥¿¥¤¥Þ¡¼¤Î»þ´Ö¤¬Íè¤Æ¤â¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¤ÎÆâÍÆ¤¬Á°²ó¤ÎÅê¹Æ»þ¤«¤éÊѤï¤Ã¤Æ¤Ê¤«¤Ã¤¿¤éÅê¹Æ¤µ¤ì¤Ê¤¤¤è¡£
    ¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¤Ë¥Õ¥©¡¼¥«¥¹¤¬¤¢¤ë´Ö¤Ï¥¿¥¤¥Þ¡¼¤Î»þ´Ö¤¬Íè¤Æ¤âÅê¹Æ¤µ¤ì¤Ê¤¤¤«¤é¤æ¤Ã¤¯¤êÊÔ½¸½ÐÍè¤ë¤è¡£
    ¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¤ÎÆâÍÆ¤ÎÅê¹Æ¤ËÀ®¸ù¤¹¤ë¤È¥Ü¥¿¥ó¤¬²¡¤»¤Ê¤¯¤Ê¤ë¤è¡£
    settings.ini¤ÏÀµ¤·¤¯ÊÔ½¸¤·¤Ê¤¤¤ÈÍÆ¼Ï¤Ê¤¯¥¨¥é¡¼¤ÇÍî¤ë¤è¡£
    %0¤Ï¶Ê̾¡¢%1¤Ï¥¢¡¼¥Æ¥£¥¹¥È̾¤ËÃÖ´¹¤µ¤ì¤ë¤ß¤¿¤¤¤À¤è¡£

    ²¿¤«¤¢¤Ã¤¿¤éTwitter¤Ç@anis774¤ËÆÍ¤Ã¹þ¤ó¤Ç¤Í¡£¥á¡¼¥ëÁ÷¤Ã¤Æ¤âµ¤ÉÕ¤«¤Ê¤¤¤«¤â¤Í¡£

    ¢¨2009/10/15 7:00º¢
    ½ñ¤­¹þ¤ß¤Ë¼ºÇÔ¤¹¤ë¤È»Ä¤ê»þ´Ö¤Îɽ¼¨¤¬ÃѤ·¤¤¤³¤È¤Ë¤Ê¤ë¤Î¤ò½¤Àµ¤·¤Æ¥³¥Ã¥½¥ê¤Èº¹¤·Âؤ¨
    ¢¨2009/10/17 23:30º¢
    ¼«Æ°Åê¹Æ¤Þ¤Ç¤Î»Ä¤ê»þ´Ö¤Îɽ¼¨¤¬ÂçÊѤʤ³¤È¤Ë¤Ê¤ëÉÔ¶ñ¹ç¤ò½¤Àµ¡¢¤Ä¤¤¤Æ¤Ë¤ï¤«¤ê¤ä¤¹¤¤É½¼¨¤ËÊѹ¹¡£¤³¤Ã¤½¤êº¹¤·Âؤ¨
     

    2009ǯ10·î12Æü

    ¤É¤¦½ñ¤¯?org|µï̲¤ê¾²²°ÌäÂê

    µï̲¤ê¾²²°ÌäÂê¤ËÅê¹Æ¤·¤Þ¤·¤¿¡£µ×¤·¿¶¤ê¤Î¤É¤¦½ñ¤¯¤Ç¤¹¡£
    ¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ï¤Á¤ç¤Ã¤È¶ì¼ê°Õ¼±¤¬¤¢¤ë¤ó¤À¤±¤É¡¢Æ°¤¤¤Æ¤ë¤«¤é¤­¤Ã¤È¹ç¤Ã¤Æ¤ë¡£
    °ìÈÖ¾è¤ê¤£¡ª
    http://ja.doukaku.org/comment/9628/
     

    2009ǯ10·î09Æü

    2009ǯ09·î01Æü

    ¤¢¤Î³Ú´ï¤¸¤ã¤Ê¤¤¤±¤ÉC#¤Ç³Ú´ïºî¤Ã¤Æ¤ß¤¿

    ÉáÄ̤ÎPC¤ò»È¤Ã¤Æ¥¬¥Á±éÁդäƽÐÍè¤Ê¤¤¤«¤Ê¤¡¤È»×¤Ã¤Æ¿§¡¹»î¤·¤Æ¤ß¤Þ¤·¤¿¡£

    ÅÓÃæ·Ð²á¤Ïmixi¤ÇÁ´ÂΤ˸ø³«¤ÎÀßÄê¤Ç½ñ¤¤¤¿¤Î¤Ç¡¢¥¢¥«¥¦¥ó¥È¤ò¤ª»ý¤Á¤ÎÊý¤Ï¤½¤Ã¤Á¤Ç¡£
    http://mixi.jp/view_diary.pl?id=1264945935&owner_id=2620995
    http://mixi.jp/view_diary.pl?id=1265825769&owner_id=2620995
    http://mixi.jp/view_diary.pl?id=1265873603&owner_id=2620995
    http://mixi.jp/view_diary.pl?id=1267163178&owner_id=2620995
    http://mixi.jp/view_diary.pl?id=1270510815&owner_id=2620995

    ¤Ä¤Þ¤ê¤Ï¥½¥Õ¥È¥¦¥§¥¢¥­¡¼¥Ü¡¼¥É¤òºî¤í¤¦¤Ã¤Æ¤³¤È¤Ç¤¹¡£¤¢¤ì¤ÏMIDI¤È¤¤¤¦¥×¥í¥È¥³¥ë¤Ç²»¸»¤Ë¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë¤³¤È¤Ç²»¤ò½Ð¤·¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£²»¸»¤ÏWindows¤Ëɸ½à¤ÇÉÕ¤¤¤Æ¤¤¤Þ¤¹¡£MIDIµ¬³Ê¤ÇÄÌ¿®¤¹¤ë°Ù¤ÎWindowsAPI¤¬¤¢¤ë¤³¤È¤â¤ï¤«¤ê¤Þ¤·¤¿¡£

    ºî¤êÊý¤òĶ´Êñ¤Ë½ñ¤¯¤È¡¢midiOutOpen´Ø¿ô¤ÇMIDI¥Ç¥Ð¥¤¥¹¤ò³«¤¤¤ÆmidiOutShortMsg´Ø¿ô¤Ç²»¤ò½Ð¤¹Åù¤Î¥á¥Ã¥»¡¼¥¸¤òÁ÷¤Ã¤Æ¡¢»È¤¤½ª¤ï¤Ã¤¿¤émidiOutReset¤·¤ÆmidiOutClose¤Ç¸å»ÏËö´°Î»¤Ç¤¹¡£"MIDI ¥×¥í¥°¥é¥ß¥ó¥°"¤È¤«¤Ç¸¡º÷¤·¤Æ¤âDTM´ØÏ¢¤Ð¤«¤ê¤Ç»È¤¨¤ë¾ðÊó¤Ë¤Ï¤Ê¤«¤Ê¤«Ã©¤êÃ失¤Ê¤¤¤±¤É¡¢¾åµ­¤Î´Ø¿ô̾¤Ç¸¡º÷¤¹¤ë¤È¾Ü¤·¤¤¾ðÊó¤¬HIT¤·¤Þ¤¹¡£

    ·ë²Ì½ÐÍ褿¤Î¤¬¤³¤ì
    http://www.k4.dion.ne.jp/~anis7742/anogakki.zip
    ¼Â¸³¤È¾Î¤·¤Æ±ø¤¤¥³¡¼¥É½ñ¤¤¤Æ¤ë¤Î¤Ç¼Â¹Ô¥Õ¥¡¥¤¥ë¤Î¤ß¤Î¸ø³«¤Ç¤¹¡£
    ÁàºîÊýË¡¤Ï°Ê²¼¤ÎÄ̤ê
    ¡¦º¸¼ê¤Î¥­¡¼¤ÇÂбþ¤·¤¿²»³¬¤¬ÌĤ롣
    ¡¦¢¬¢­¥­¡¼¤Ç²»¿§¤¬ÀÚ¤êÂØ¤ï¤ë¡£
    ¡¦¥Þ¥¦¥¹¥Û¥¤¡¼¥ë¤Ç¥ª¥¯¥¿¡¼¥Ö¤¬ÀÚ¤êÂØ¤ï¤ë¡£
    ¡¦º¸¥Ü¥¿¥ó¤ò²¡¤·¤Ê¤¬¤é¥Þ¥¦¥¹¤ò½ÄÊý¸þ¤Ëư¤«¤¹¤È¥Ô¥Ã¥Á¤¬ÊѤï¤ë¡£
    ¡¦±¦¥Ü¥¿¥ó¤ò²¡¤·¤Ê¤¬¤é¥Þ¥¦¥¹¤È²£Êý¸þ¤Ëư¤«¤¹¤È¥Ó¥Ö¥é¡¼¥È¤¬¤«¤«¤ë¡£

    Ëͤβ¼¼ê¥¯¥½¤Ê±éÁÕ¡£¤³¤ó¤Ê´¶¤¸¤Îɽ¸½¤¬½ÐÍè¤Þ¤¹¡£
    http://www.k4.dion.ne.jp/~anis7742/wavemode20090828224419.wav
    ¢¨µ¬Äê¤ÎMIDI¥Ç¥Ð¥¤¥¹¤¬Microsoft GS Wavetable SW Synth°Ê³°¤Ë¤Ê¤Ã¤Æ¤ë¤È²»¤¬ÌĤé¤Ê¤¤ÉÔ¶ñ¹ç¤¬¤¢¤Ã¤Æ¸¶°ø¤òÄ´ººÃæ¤Ç¤¹¡£¢«Ä¾¤Ã¤¿

    ¤³¤³¤Þ¤Ç¤ä¤Ã¤Æ¤ß¤Æ¡¢¼¡¤ÎÌäÂ꤬¤¢¤ë¤³¤È¤¬¤ï¤«¤Ã¤¿¡£
    1.¥Ç¥Ð¥¤¥¹¤«¤éÆÀ¤é¤ì¤ë¥Õ¥£¡¼¥É¥Ð¥Ã¥¯¤¬¡¢¤½¤ÎÁàºî¤Î·ë²Ì¤È¤·¤Æ½Ð¤ë²»¤·¤«¤Ê¤¤¡£Ä̾ï¤Î³Ú´ï¤Ï¿ÈÂΤȳڴï¤ÎÀÜÅÀ¤Î´¶¿¨¤«¤é¿§¡¹¤Ê¾ðÊó¤òÆÀ¤Æ±éÁÕ¤·¤Æ¤¤¤ë¡£²èÌ̤ò¹©Éפ¹¤ë¤³¤È¤Ç¼ã´³¤Î²þÁ±¤Ï²Äǽ¤À¤¬¡¢¸Â³¦¤¬¤¢¤ë¡£

    2.¥­¡¼¥Ü¡¼¥É¤Î¥¹¥È¥í¡¼¥¯¤Î¿¼¤µ¤¬Àµ³Î¤Ê¥¿¥¤¥ß¥ó¥°¤Ç¤ÎÁàºî¤ò˸¤²¤ë¡£¥¹¥È¥í¡¼¥¯¤¬Àõ¤¤¥­¡¼¥Ü¡¼¥É¤ä¡¢Realforce¤ÎÍͤʱü¤Þ¤Ç²¡¤·ÀÚ¤é¤Ê¤¯¤Æ¤âÈ¿±þ¤¹¤ë¥­¡¼¥Ü¡¼¥É¤Ç²þÁ±¤µ¤ì¤ë¤«¤â¡£

    3.Áàºî¤·¤Æ¤«¤é²»¤¬ÌĤë¤Þ¤Ç¤Î¥¿¥¤¥à¥é¥°¤¬¤¢¤ë¡£²»¸»¤ä½ÐÎϥǥХ¤¥¹¡¢¤½¤Î¾¥½¥Õ¥È¥¦¥§¥¢Åù¤Ç¤É¤³¤Þ¤Ç²þÁ±½ÐÍè¤ë¤«¡£

    ¥Þ¥¦¥¹¤È¥­¡¼¥Ü¡¼¥É¤òËÜÍè¤ÎÌÜŪ°Ê³°¤Ë»È¤¦¤ï¤±¤À¤«¤é¿§¡¹ÌµÍý¤¬¤¢¤ë¤ï¤±¤Ç¤¹¤Í¡£
     

    2009ǯ08·î22Æü

    ¥á¡¼¥é¡¼¤òÅÅ¿®È¬¹æ¤«¤éSylpheed¤Ë¾è¤ê´¹¤¨¤¿

    ¥á¡¼¥é¡¼¤òÅÅ¿®È¬¹æ¤«¤éSylpheed¤Ë¾è¤ê´¹¤¨¤¿¡£²¿¸Î¤«¤Ã¤Æ¡©Ë°¤­¤¿¤«¤é¡£ÅÅȬ¤Ç²¿¤«ÉÔÊØ¤ÊÅÀ¤äÉÔËþ¤¬¤¢¤Ã¤¿¤ï¤±¤¸¤ã¤Ê¤¤¡£

    ¥á¡¼¥é¡¼¤ÎÁªÂò¤Î¾ò·ï
    ¡¦ºÙ¤«¤¤¥á¡¼¥ë¤ÎÁªÊ̤òÁ´¤ÆPOPFile¤ËǤ¤»¤Æ¤¤¤ë¤Î¤Ç¡¢¥Ø¥Ã¥À¤ÎÆâÍÆ¤Ç¥á¡¼¥ë¤ò¿¶¤êʬ¤±¤é¤ì¤ë¤³¤È¡£
    ¡¦1¥á¡¼¥ë1¥Æ¥­¥¹¥È¥Õ¥¡¥¤¥ë¤ÇÊݸ¤µ¤ì¤ë¤³¤È¡£
    ¡¦·Ú¤¤¤³¤È
    ¡¦º£¸å¤Î¾è¤ê´¹¤¨¤ËÈ÷¤¨¤Æ¥á¡¼¥ë¤Î¥¤¥ó¥Ý¡¼¥È¡¢¥¨¥¯¥¹¥Ý¡¼¥Èµ¡Ç½¤¬¤¢¤ë¤³¤È

    ¤Ç¡¢Sylpheed¤Ë·è¤á¤¿¡£

    ÅÅȬ¤«¤éSylpheed¤Ø¤Î¥á¡¼¥ë¤ÎÊÑ´¹¤Ï¤Á¤ç¤Á¤ç¤¤¤È°Ê²¼¤Î¤è¤¦¤ÊC#¤Î¥³¡¼¥É¤ò¤³¤µ¤¨¤Æ¥µ¥¯¥Ã¤È´°Î»¡£¸·Ì©¤ËÀµ¤·¤¤¥³¡¼¥É¤«¤Ï¤ï¤«¤é¤Ê¤¤¤±¤É¡¢¾å¼ê¤¯¤¤¤Ã¤¿¤«¤é¤è¤·¡£
    using System.IO;
    using System.Text;

    class Program {
    static void Main(string[] args) {
    int fileNumber = 0;
    Encoding enc = Encoding.GetEncoding("Shift-Jis");
    foreach(string mailFile in Directory.GetFiles(
    "ÅÅȬ¤Î¥á¡¼¥ë¥Õ¥©¥ë¥À",
    "*.txt",
    SearchOption.AllDirectories)) {

    string mailTxt = File.ReadAllText(mailFile, enc);
    mailTxt = mailTxt.Replace("--------\r\n", "\r\n");
    File.WriteAllText(
    Path.Combine("Sylpheed¤Î¥á¡¼¥ë¥Õ¥©¥ë¥À", fileNumber.ToString()),
    mailTxt,
    enc);
    fileNumber++;
    }
    }
    }

    LinuxͳÍè¤Î¥á¡¼¥é¡¼¤À¤«¤é¤Ê¤Î¤«¡¢¥­¡¼¥Ð¥¤¥ó¥ÉÅù¤ÎºÙ¤«¤¤µóư¤¬Windows¥¢¥×¥ê¤È°ã¤Ã¤Æ¸ÍÏǤ¦¤±¤É¡¢Æ°ºî¤¬·Ú²÷¤Ç¤¤¤¤¤È»×¤¦¡£
     

    2009ǯ08·î21Æü

    Èó¾ïÃó·¿ÉÕ䵻楢¥×¥êSPDÇÛÉÛ

    ¾ïÃ󤻤º¤ËÊÉ»æ¤ËÉÕ䵤òËä¤á¹þ¤àÈó¾ïÃó·¿ÉÕ䵻楢¥×¥êSPD¤ÎÇÛÉÛ¥¨¥ó¥È¥ê¡¼¤Ç¤¹¡£

    Vector¤Î¿·Ã好¥Õ¥È¥ì¥Ó¥å¡¼¤ÇSPD¤¬¾Ò²ð¤µ¤ì¤Þ¤·¤¿¡£


    SPD_SS_0

    ¡ÚÆÃħ¡Û
    ¡¦¾ïÃ󤻤º¤ËÉÕ䵤òÊÉ»æ¤ËÊÝ»ý¤¹¤ë
    ¡¦ÊÉ»æ¤ÎÇÛÃ֤ϳÈÂç¤À¤±¤Ç¤Ê¤¯Ê¤٤ÆÉ½¼¨¡¢Ãæ±û¤Ëɽ¼¨¤Ë¤âÂбþ¡£
    ¡¡³ÈÂçɽ¼¨¤Ç¤Î²è¼Á¤ÎÄã²¼¤¬µ¤¤Ë¤Ê¤ëÊý¤Ë¤â¤´ÍøÍÑ失¤Þ¤¹¡£
    ¡¦ÉÕ䵤ÎȾƩÌÀ¤Ç¤ÎÉÁ²è¤ËÂбþ¡£¥Ç¥¹¥¯¥È¥Ã¥×¤Î°µÇ÷´¶¤òϤ餲¤Þ¤¹¡£
    ¡¦ÉÕ䵤´¤È¤Ë¥Õ¥©¥ó¥È¤Èʸ»ú¿§¡¢ÇØ·Ê¿§¤ò»ØÄê²Äǽ¡£
    ¡¦ÉÕ䵤νŤÍŽ¤ê¤¬²Äǽ¡£
    ¡¦ÉÕ䵤ΰÌÃÖ¤ò·è¤á¤ë°Ù¤ÎÌÌÅݤÊÁàºî¤¬¤¢¤ê¤Þ¤»¤ó¡£ÉÕ䵤òÊÔ½¸¤·¤Æ¤¤¤ë¥¦¥£¥ó¥É¥¦¤òÄ¥¤ê¤¿¤¤°ÌÃÖ¤ËD&D¤¹¤ë¤À¤±¡£¸«¤¿¤Þ¤Þ¤Î¾õÂÖ¤ÇÊÉ»æ¤ËÄ¥¤êÉÕ¤­¤Þ¤¹¡£

    ¡ÚÁÛÄê´Ä¶­¡Û
    Windows2000°Ê¹ß,Microsoft .NET Framework 2.0

    ¡Úưºî³Îǧ´Ä¶­¡Û
    WindowsXP SP3,Microsoft .NET Framework 2.0

    ¡ÚºÇ¿·ÈÇDL¡Û
    SPD_Ver_1_82.zip(35.6KB)
    Ver 1.81 ¢ª Ver 1.82
    ¡¦¥Ý¡¼¥¿¥Ö¥ë¥â¡¼¥É»þ¤Ë°õºþÈϰϻØÄê¥Õ¥©¡¼¥à¤ÇÈϰϤ¬Àµ¤·¤¯ÁªÂò¤µ¤ì¤Ê¤¤ÌäÂê¤ò½¤Àµ¡£
    ¡¦°õºþÈϰϻØÄê¥Õ¥©¡¼¥à¤Î°ÌÃÖ¤òÊݸ¤¹¤ë¤è¤¦¤ËÊѹ¹¡£
    Ver 1.80 ¢ª Ver 1.81
    ¡¦¥Þ¥¦¥¹¥Û¥¤¡¼¥ë¤ÇÉÔÆ©ÌÀÅÙ¤òÊѹ¹¤¹¤ëºÝ¤Ë¡¢Àµ¤·¤¯10%¹ï¤ß¤Ë¤Ê¤é¤Ê¤¤ÉÔ¶ñ¹ç¤ò½¤Àµ¡£
    ¡¦°õºþ»þ¤Ë°õºþÈϰϤò»ØÄꤹ¤ë¥Õ¥©¡¼¥à¤òɽ¼¨¤¹¤ë¤è¤¦¤ËÊѹ¹¡£

    SPD_Ver_1_80.zip(33.7KB)
    Ver 1.76 ¢ª Ver 1.80
    ¡¦²èÌ̤òÀÚ¤ê¼è¤Ã¤ÆÉÕ䵤ˤ¹¤ëµ¡Ç½¤ò¼ÂÁõ¡£
    ¡¦ÉÕäµ¤ÎÆ©ÌÀÅÙ¤ò¸ÄÊ̤˻ØÄê½ÐÍè¤ë¤è¤¦¤ËÊѹ¹¡£
    ¡¦¥¿¥¹¥¯¥È¥ì¥¤¤Î¥¢¥¤¥³¥ó¤Î±¦¥¯¥ê¥Ã¥¯¥á¥Ë¥å¡¼¤«¤éÊÉ»æ¤òÊѹ¹½ÐÍè¤ëµ¡Ç½¤ò¼ÂÁõ¡£
    ¡¦Á°²ó½ªÎ»»þ¤«¤éÊɻ椬Êѹ¹¤µ¤ì¤Æ¤¤¤ë»þ¤Ë¤½¤ì¤òÈ¿±Ç¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¡£
    ¡¦¥Ý¡¼¥¿¥Ö¥ë¥â¡¼¥É¤ò¼ÂÁõ¡£
    ¡¦ÍøÍѵ¬Ìó¤ò²þÄê¡£

    ¥½¡¼¥¹¥³¡¼¥É(Visual C# 2008 Express Edition)
    SPD_SRC_Ver_1_82.zip(56.5KB)

    ¡Ú¥¿¥¹¥¯¡Û
    ¡¦°õºþµ¡Ç½¤³¤ó¤Ê¤ó¤Ç¤¤¤¤¤Î¤«¤Ê¤¡¤È¤«¹Í¤¨Ãæ¡£
     

    2009ǯ08·î07Æü

    ¤É¤¦½ñ¤¯?org|Twitter¤Ø¤ÎÅê¹Æ

    GoogleReader¤ÇRSS¤Î¥Á¥§¥Ã¥¯¤ò¤·¤Æ¤¤¤¿¤é¤É¤¦½ñ¤¯¡©¤Î¥Õ¥£¡¼¥É¤¬¹¹¿·¤µ¤ì¤¿¤Î¤Ç¡¢°ÊÁ°½ñ¤¤¤¿¥³¡¼¥É¤ò°ú¤ÃÄ¥¤ê½Ð¤·¤Æ¤Á¤ç¤Á¤ç¤¤¤È¼ê¤ò²Ã¤¨¤Æ¥«¥«¥Ã¤ÈÅê¹Æ¡£

    ¿¿¤Î°ìÈÖ¾è¤ê¥²¥Ã¥È¥©¡ª

    http://ja.doukaku.org/comment/9448/
     

    2009ǯ07·î07Æü

    ¤Á¤ç¤Ã¤ÈC#¤Ç¥Ñ¥¹¥ï¡¼¥É¤òÇÁ¤¤¤Æ¤ß¤¿¡£

    ¥Ñ¥¹¥ï¡¼¥ÉÆþÎÏÍѤΥƥ­¥¹¥È¥Ü¥Ã¥¯¥¹¤Ç¡¢ÆþÎϤ·¤Æ¤â"******"¤È¤·¤«É½¼¨¤µ¤ì¤Ê¤¤¤â¤Î¤¬¤¢¤ê¤Þ¤¹¤è¤Í¡£¤¢¤ì¡¢ÉÔÊØ¤Ç¤¹¤è¤Í¡£¼«Ê¬¤ÇÆþÎϤ·¤¿¤Î¤Ë¸«¤¨¤Ê¤¤¤Ê¤ó¤ÆÍýÉԿԤǤ¹¤è¤Í¡£
    ¤½¤³¤Ç¡¢ÌµÍý¤ä¤êÆþÎÏÆâÍÆ¤¬¸«¤¨¤ëÍͤˤ¹¤ë¥×¥í¥°¥é¥à¤ò½ñ¤¤¤Æ¤ß¤Þ¤·¤¿¡£VectorÊÕ¤ê¤òõ¤»¤Ð¤¢¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¤±¤Éµ¤¤Ë¤·¤¿¤éÉ餱¤Ç¤·¤ç¤¦¡£

    ¼Â¤Ï¥¢¥ì¡¢¤¿¤À¤Î¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¤Ê¤Î¤Ç¥á¥Ã¥»¡¼¥¸Åꤲ¤ì¤Ð¹¥¤­¤Ê¤è¤¦¤ËÏ®¤ì¤Á¤ã¤¦¤ó¤Ç¤¹¤è¤Í¡£¤Ç¡¢º£²óÅꤲ¤¿¤Î¤ÏEM_SETPASSWORDCHAR¡£EnumChildWindows´Ø¿ô¤Ç¥¦¥£¥ó¥É¥¦¤òÎóµó¤·¤Æ¼êÅö¤¿¤ê¼¡Âè¤ËPostMessage¤·¤Æ¤Þ¤¹¡£

    ¤Ï¤¤¡¢¥³¡¼¥É¤Ç¤¹¡£
    using System;
    using System.Runtime.InteropServices;

    namespace ConsoleApplication1 {
        class Program {
            const int EM_SETPASSWORDCHAR = 0xCC;

            delegate int WNDENUMPROC(IntPtr hwnd, int lParam);

            [DllImport("user32.dll")]
            private static extern int EnumChildWindows(
                IntPtr hWndParent, 
                WNDENUMPROC lpEnumFunc, 
                int lParam);

            [DllImport("user32.dll")]
            private static extern int PostMessage(
                IntPtr hwnd, 
                int wMsg, 
                int wParam, 
                int lParam);

            static void Main(string[] args) {
                EnumChildWindows(IntPtr.Zero, EnumWindowsProc, 0);
            }

            static int EnumWindowsProc(IntPtr hWndParent, int lParam) {
                PostMessage(hWndParent, EM_SETPASSWORDCHAR, 0, 0);
                EnumChildWindows(hWndParent, EnumWindowsProc, 0);
                return 1;
            }
        }
    }

    ¤³¤ì¤Ç¥Ñ¥¹¥ï¡¼¥É´Ý¸«¤¨¤Ê¤ó¤Ç¤¹¤Ã¤Æ¤Ð¡£
     

    2009ǯ07·î03Æü

    µÕP/Invoke¤ò¶î»È¤·¤ÆTTBase¤Î¥×¥é¥°¥¤¥ó¤òºî¤ì¤ë¤«¡©

    TTBase http://ttbase.sourceforge.jp/
    µÕP/Invoke http://www.artonx.org/diary/20081124.html#p01

    ¤³¤ì¤ÇC#¤ÇTTBase¤Î¥×¥é¥°¥¤¥óºî¤ì¤ë¤ó¤¸¤ã¤Í¡©¤È»×¤Ã¤¿¡£

    TTBase.cs TTBase¤Ç»ÈÍѤ¹¤ë¹½Â¤ÂΤȤ«Äê¿ô¤È¤«

    using System;
    using System.Runtime.InteropServices;

    namespace TTBasePlugInTest {
        //¥×¥é¥°¥¤¥ó¤Î¥í¡¼¥É¥¿¥¤¥×
        public enum LoadType {
            ptAlwayLoad = 0,
            ptLoadAtUse = 1,
            ptSpecViolation = 0xFFFF
        }

        //¥á¥Ë¥å¡¼¤Ë´Ø¤¹¤ëÄê¿ô
        public enum Menu {
            dmNone = 0,
            dmSystemMenu = 1,
            dmToolMenu = 2,
            dmHotKeyMenu = 4,
            dmMenuChecked = 8
        }

        public enum LogOut {
            elNever = 0,
            elError = 1,
            elWarning = 2,
            elInfo = 3,
            elDebug = 4
        }

        [StructLayout(LayoutKind.Sequential,CharSet = CharSet.Ansi)]
        public struct PLUGIN_COMMAND_INFO {
            [MarshalAs(UnmanagedType.LPStr)]
            public string Name;
            [MarshalAs(UnmanagedType.LPStr)]
            public string Caption;
            public int CommandID;
            public int Attr;
            public int ResID;
            public int DispMenu;
            public uint TimerInterval;
            public uint TimerCounter;
        }

        [StructLayout(LayoutKind.Sequential,CharSet= CharSet.Ansi)]
        public struct PLUGIN_INFO {
            public ushort NeedVersion;
            [MarshalAs(UnmanagedType.LPStr)]
            public string Name;
            [MarshalAs(UnmanagedType.LPStr)]
            public string FileName;
            public ushort PluginType;
            public uint VersionMS;
            public uint VersionLS;
            public uint CommandCount;
            [MarshalAs(UnmanagedType.LPStruct)]
            public IntPtr Commands;
            //public PLUGIN_COMMAND_INFO Commands;
            public uint LoadTime;
        }
    }

    Class1.cs TTBase¤Ë¸ø³«¤¹¤ë¥á¥½¥Ã¥É¤ò¼ÂÁõ

    using System;
    using System.Runtime.InteropServices;

    namespace TTBasePlugInTest {
        public class Class1 {
            public static IntPtr TTBEVent_InitPluginInfo(string PluginFilename) {
                PLUGIN_INFO r = new PLUGIN_INFO();
                r.FileName = PluginFilename;
                r.NeedVersion = 0;
                r.Name = "¥Æ¥¹¥È";
                r.PluginType = (int)LoadType.ptAlwayLoad;
                r.CommandCount = 1;

                PLUGIN_COMMAND_INFO pci = new PLUGIN_COMMAND_INFO();
                pci.Name = "test";
                pci.Caption = "¤Æ¤¹¤Æ¤¹¡¢¥Æ¥¹¥È¤Î¥Æ¥¹¥È¤Ç¤¹";
                pci.CommandID = 0;
                pci.DispMenu = (int)(Menu.dmToolMenu | Menu.dmHotKeyMenu);

                IntPtr pciPtr = Marshal.AllocHGlobal(Marshal.SizeOf(pci));
                Marshal.StructureToPtr(pci, pciPtr, false);
                r.Commands = pciPtr;
                //r.Commands = pci;

                IntPtr iPtr = Marshal.AllocHGlobal(Marshal.SizeOf(r));
                Marshal.StructureToPtr(r, iPtr, false);

                return iPtr;
            }

            public static void TTBEvent_FreePluginInfo(IntPtr PluginInfo) {
                Marshal.FreeHGlobal(PluginInfo);
            }

            public static int TTBEvent_Init(string PluginFilename, int hPlugin) {
                return 1;
            }

            public static void TTBEvent_Unload() {

            }

            static int i;

            public static int TTBEvent_Execute(int CommandID, IntPtr hWnd) {
                i++;
                System.Windows.Forms.MessageBox.Show(i.ToString());
                return 1;
            }

            public static void TTBEvent_WindowsHook(int Msg, int wParam, int lParam) {

            }
        }
    }

    ¾å¤Î¥³¡¼¥É¤ò¥Ó¥ë¥É¤·¤¿¤é

    D:\My Documents\Visual Studio 2008\Projects\TTBasePlugInTest\TTBasePlugInTest\bi
    n\Release>ildasm /OUT=TTBasePlugInTest.il TTBasePlugInTest.dll

    ¤ÇIL¤Ë¤¹¤ë¡£
    µÕP/Invoke¤ò»²¹Í¤ËIL¤òÊÔ½¸

    D:\My Documents\Visual Studio 2008\Projects\TTBasePlugInTest\TTBasePlugInTest\bi
    n\Release>c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ilasm.exe /DLL TTBasePlu
    gInTest.il

    Microsoft (R) .NET Framework IL Assembler. Version 2.0.50727.3053
    Copyright (c) Microsoft Corporation. All rights reserved.
    Assembling 'TTBasePlugInTest.il' to DLL --> 'TTBasePlugInTest.dll'
    Source file is ANSI

    Assembled method TTBasePlugInTest.Class1::TTBEVent_InitPluginInfo
    Assembled method TTBasePlugInTest.Class1::TTBEvent_FreePluginInfo
    Assembled method TTBasePlugInTest.Class1::TTBEvent_Init
    Assembled method TTBasePlugInTest.Class1::TTBEvent_Unload
    Assembled method TTBasePlugInTest.Class1::TTBEvent_Execute
    Assembled method TTBasePlugInTest.Class1::TTBEvent_WindowsHook
    Assembled method TTBasePlugInTest.Class1::.ctor
    Creating PE file

    Emitting classes:
    Class 1: TTBasePlugInTest.Class1
    Class 2: TTBasePlugInTest.PLUGIN_INFO
    Class 3: TTBasePlugInTest.PLUGIN_COMMAND_INFO
    Class 4: TTBasePlugInTest.LoadType
    Class 5: TTBasePlugInTest.Menu
    Class 6: TTBasePlugInTest.LogOut

    Emitting fields and methods:
    Global
    Class 1 Fields: 1; Methods: 7;
    Class 2 Fields: 9;
    Class 3 Fields: 8;
    Class 4 Fields: 4;
    Class 5 Fields: 6;
    Class 6 Fields: 6;
    Resolving local member refs: 13 -> 13 defs, 0 refs, 0 unresolved

    Emitting events and properties:
    Global
    Class 1
    Class 2
    Class 3
    Class 4
    Class 5
    Class 6
    Resolving local member refs: 0 -> 0 defs, 0 refs, 0 unresolved
    Writing PE file
    Operation completed successfully

    ¤ÈIL¤«¤éDLL¤òºîÀ®¡£¥á¥Ã¥»¡¼¥¸¤Î°ÕÌ£¤Ï¤è¤¯¤ï¤«¤é¤Ê¤¤¤±¤É¡¢Â¿Ê¬À®¸ù¤·¤Æ¤ë¡£

    ¤³¤ì¤Ç½ÐÍ褿DLL¤òTTBase¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥³¥Ô¡¼¤·¤ÆTTBase¤òµ¯Æ°¤¹¤ë¤â¡Ä¥×¥é¥°¥¤¥ó¤È¤·¤ÆÇ§¼±¤µ¤ì¤Ê¤¤¡£
    ¤É¤³¤¬¾å¼ê¤¯¹Ô¤Ã¤Æ¤Ê¤¤¤Î¤«¤â¤ï¤«¤é¤Ê¤¤¾õÂÖ¡£

    http://twitter.com/takeshik/statuses/2419234928

    ¤È¤«¸À¤ï¤ì¤¿¤±¤ÉC++/CLI¤È¤«¥­¥â¤¤¤·¡£

    http://twitter.com/takeshik/statuses/2419254967

    ¤È¤«ÆÍ¤Ã¹þ¤Þ¤ì¤¿¤±¤É¤½¤ÎÄ̤ê¤À¤È»×¤¦¡£

    C#¤Ç¤ä¤ë¤³¤È¤Ë°ÕÌ£¤¬¤¢¤ë¤Î¤Ç¤¹¤è¡£C#²Ä°¦¤¤¤è¡¢C#²Ä°¦¤¤¡£
    ¤Ç¤âC#¤Ç½ÐÍè¤ÆÌµ¤¤¤«¤é²¿¤Î°ÕÌ£¤â̵¤¤¤È¤¤¤¦¡Ä¡£
     

    2009ǯ06·î10Æü

    Twitter¤ËRSS¤Î¥Õ¥£¡¼¥É¤ò¥Ý¥¹¥È¤·¤Æ³§¤Ëɾ²Á¤·¤Æ¤â¤é¤¦BOT¤òºî¤Ã¤Æ¤ß¤¿

    http://twitter.com/anis774_feed

    ¥Õ¥©¥í¡¼¤¹¤ë¤ÈTL¤ËRSS¤Î¥¨¥ó¥È¥ê¤¬Åê¹Æ¤µ¤ì¤Þ¤¹¡£
    ¡ú¤Î¿ô¤¬É¾²Á¤Î¾õÂÖ¤òɽ¤·¤Þ¤¹¡£

    ¡¡¡¡@anis774_feed + ¥¿¥¤¥È¥ë

    ¤Ç¥¨¥ó¥È¥ê¤Îɾ²Á¤¬¾å¤¬¤ê¤Þ¤¹¡£

    ¡¡¡¡@anis774_feed - ¥¿¥¤¥È¥ë

    ¤Ç¥¨¥ó¥È¥ê¤Îɾ²Á¤¬²¼¤¬¤ê¤Þ¤¹¡£

    ¡¡¡¡@anis774_feed add ¥Õ¥£¡¼¥É¤ÎURL

    ¤Ç¥Õ¥£¡¼¥É¤òÅÐÏ¿¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£

    ¥¨¥ó¥È¥ê¤Îɾ²Á¤Ï¥Ù¥¤¥ºÍýÏÀ¤Çµá¤á¤é¤ì¤ë¤Î¤Ç¡¢¿·¤·¤¤¥¨¥ó¥È¥ê¤Îɾ²Á¤¬¼¡Âè¤ËºÇŬ²½¤µ¤ì¤Æ¤¤¤¯»ÅÁȤߤǤ¹¡£

    URL¤¬Ã»½Ì¤µ¤ì¤Æadd¥³¥Þ¥ó¥É¤¬¼ºÇÔ¤¹¤ë¤ó¤À¤±¤É¡©
    @anis774_feed¤ÏhÈ´¤­¤òÍý²ò¤·¤Þ¤¹¡£URL¤òhÈ´¤­¤Ë¤·¤ÆURL¤Îû½Ì¤ò²óÈò¤·¤Æ²¼¤µ¤¤¡£
     
    Posted by ¤¢¤Ë¤¹ at 00:08  ¡ÃComments(0) ¡ÃTrackBack(0) | TwitterFeedBot

    2009ǯ06·î01Æü

    ¥á¥¬¥Í¤¬Ìµ¤¤¤È¡Ä

    ¥É¥¤¥Ä¤ÇÊüÁ÷¶Ø»ß¤Ë¤Ê¤Ã¤¿¡¢¥á¥¬¥ÍÃåÍѤÎɬÍ×À­¤òÁʤ¨¤ëCM¤é¤·¤¤¤Ç¤¹¡£



    ¤³¤ì¤Ï¹ó¤¤¡£
     
    Posted by ¤¢¤Ë¤¹ at 07:56  ¡ÃComments(0) ¡ÃTrackBack(0)

    2009ǯ05·î19Æü

    ºÇ´ó¤Î¼«Å¾¼Ö²°¤µ¤ó¤Ë¹Ô¤Ã¤Æ¤ß¤¿

    ±Ñ¼°¥Ð¥ë¥ÖÍѤΥݥó¥×¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¤¿¤á¡¢¶õµ¤¤òÆþ¤ì¤Ë¶á½ê¤Î¼«Å¾¼Ö²°¤µ¤ó¤Ë¹Ô¤Ã¤Æ¤ß¤¿¡£¥·¥ç¡¼¥¦¥£¥ó¥É¥¦¤Ë¤ÏSORA¤È¤«TIAGRA¤È¤«¤¬ºÜ¤Ã¤¿¥í¡¼¥É¤¬¾þ¤é¤ì¤Æ¤¤¤ëŹ¡£
    ŹƬ¤Î¶õµ¤Æþ¤ì¤À¤±»È¤Ã¤Æ¤¤¤¯¤Î¤Ï¤¢¤ì¤Ê¤Î¤Ç¡¢Å¹Æâ¤ò¸«¤Æ¤¤¤¯¤³¤È¤Ë¤·¤¿¡£
    ¡Ö¤´¤æ¤Ã¤¯¤ê¤É¤¦¤¾¡¼¡×
    ¤¢¤¡¡¢Îɤ¤Å¹¤À¡£¤³¤Îµ÷Î¥´¶¤Ï¹¥¤­¤À¤Ê¡£¥×¥í¥·¥ç¥Ã¥×¤Ã¤Æ´¶¤¸¤Ç¤Ï¤Ê¤¤¤Ê¡£¤½¤ÎŹ¤Î¤ª·»¤µ¤ó¤È¾¯¤·Ïä·¤¿¤ó¤À¤±¤É¡¢¤Ê¤¼¤«¥é¥¤¥È¥¦¥§¥¤¤Î¥«¥¿¥í¥°¤òÅϤµ¤ì¤Æµ¢¤Ã¤Æ¤­¤¿¡£
    ¤É¤¦¤»¤Ê¤é¥·¥Þ¥Î¤Î¥«¥¿¥í¥°Ìã¤Ã¤ÆÍè¤ì¤ÐÎɤ«¤Ã¤¿¡£º£¤ÏÁ´Éô10®¤é¤·¤¤¤·¡¢¸ß´¹À­¤È¤«¤è¤¯¤ï¤«¤ó¤Ê¤¤¤·¡£
    ¥é¥¤¥È¥¦¥§¥¤¤Î¥«¥¿¥í¥°¡¢¸«¤ë¤È¤³¤í¤¬Ìµ¤¤¡Ä¡Ä¡£
     
    Posted by ¤¢¤Ë¤¹ at 10:51  ¡ÃComments(0) ¡ÃTrackBack(0) | Æüµ­ , ¼«Å¾¼Ö

    2009ǯ04·î04Æü

    C#|PropertyGrid¥³¥ó¥È¥í¡¼¥ë¤Ëɽ¼¨¤µ¤ì¤ë¥×¥í¥Ñ¥Æ¥£Ì¾¤òÊѹ¹¤¹¤ë¤Ë¤Ï¡©

    PropertyGrid¥³¥ó¥È¥í¡¼¥ë¤Ëɽ¼¨¤µ¤ì¤ë¥×¥í¥Ñ¥Æ¥£Ì¾¤òÊѹ¹¤¹¤ë¤Ë¤Ï¡©
    SPDVer 1.74¤Ë¼è¤ê¹þ¤ß´°Î»¡£

    ¤È¥á¥â¤·¤Æ¤ª¤±¤ÐËü°ì¾åµ­¥ê¥ó¥¯¤¬ÀÚ¤ì¤Æ¤âSPDVer 1.74¤Î¥³¡¼¥É¤«¤é¥µ¥ë¥Ù¡¼¥¸²Äǽ¡£¤¢¤Ë¤¹¤Î¥³¡¼¥ÉÊݴɸˤËžºÜ¤¹¤ë¤ï¤±¤Ë¤â¤¤¤«¤Ê¤¤¤·¤Í¡£

    ¤¢¤Ë¤¹¤Î¥³¡¼¥ÉÊݴɸˤϤ¢¤Ë¤¹¤¬½ñ¤¤¤¿¥³¡¼¥É¤ÎÊݴɸˤÀ¤±¤É¡¢¤¢¤Ë¤¹¤¬½ñ¤¤¤Æ¤Ê¤¤¥³¡¼¥É¤âÊݴɤ·¤¿¤¤¤Ê¡£²¿¤«Îɤ¤ÊýË¡¤Ï̵¤¤¤À¤í¤¦¤«¡£¸ø³«¥Ö¥Ã¥¯¥Þ¡¼¥¯Åª¤Ê¤â¤Î¤¬¤¢¤ì¤Ð¤¤¤¤¤Î¤«¤Ê¡£
     

    2009ǯ03·î30Æü

    C#|¥æ¡¼¥¶¡¼¥³¥ó¥È¥í¡¼¥ë¤òD&D¤Ç°Üư&¥µ¥¤¥ºÊѹ¹

    [C#]¥æ¡¼¥¶¡¼¥³¥ó¥È¥í¡¼¥ë¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤Ç°Üư¤ÇÌÌÇò¤½¤¦¤Ê¤³¤È¤ä¤Ã¤Æ¤ë¤Î¤Ç½ñ¤¤¤Æ¤ß¤Þ¤·¤¿¡£·ë¹½Å¥½­¤¯¤Ê¤ê¤Þ¤¹¤Í¡£¤Á¤ç¤Ã¤ÈÖȤäƤ·¤Þ¤Ã¤Æ»þ´Ö¤¬³Ý¤«¤Ã¤¿¤Î¤Ï¤³¤³¤À¤±¤ÎÈëÌ©¡£

    using System.Drawing;
    using System.Windows.Forms;

    public partial class UserControl1 :UserControl {
        Size lastMouseDownSize;
        Point lastMouseDownPoint;
        DAndDStatus status;
        int sizeChangeArea = 8;

        public UserControl1() {
            InitializeComponent();
        }

        protected override void OnMouseDown(MouseEventArgs e) {
            lastMouseDownPoint = e.Location;
            lastMouseDownSize = this.Size;

            //ưºî¤ò·èÄê
            status = DAndDStatus.None;
            if(getTop().Contains(e.Location)) {
                status |= DAndDStatus.Top;
            }
            if(getLeft().Contains(e.Location)) {
                status |= DAndDStatus.Left;
            }
            if(getBottom().Contains(e.Location)) {
                status |= DAndDStatus.Bottom;
            }
            if(getRight().Contains(e.Location)) {
                status |= DAndDStatus.Right;
            }

            if(status == DAndDStatus.None) {
                status = DAndDStatus.Move;
            } else {
                this.Capture = true;
            }

            base.OnMouseDown(e);
        }

        protected override void OnMouseMove(MouseEventArgs e) {
            //¥«¡¼¥½¥ë¤òÊѹ¹
            if((getTop().Contains(e.Location) && 
                getLeft().Contains(e.Location)) ||
                (getBottom().Contains(e.Location) && 
                getRight().Contains(e.Location))) {

                this.Cursor = Cursors.SizeNWSE;
            } else if((getTop().Contains(e.Location) && 
                getRight().Contains(e.Location)) ||
                (getBottom().Contains(e.Location) && 
                getLeft().Contains(e.Location))) {

                this.Cursor = Cursors.SizeNESW;
            } else if(getTop().Contains(e.Location) || 
                getBottom().Contains(e.Location)) {
                
                this.Cursor = Cursors.SizeNS;
            } else if(getLeft().Contains(e.Location) || 
                getRight().Contains(e.Location)) {
                
                this.Cursor = Cursors.SizeWE;
            } else {
                this.Cursor = Cursors.Default;
            }


            if(e.Button == MouseButtons.Left) {
                int diffX = e.X - lastMouseDownPoint.X;
                int diffY = e.Y - lastMouseDownPoint.Y;

                if((status & DAndDStatus.Move) == DAndDStatus.Move) {
                    this.Left += diffX;
                    this.Top += diffY;
                }
                if((status & DAndDStatus.Top) == DAndDStatus.Top) {
                    int h = this.Height;
                    this.Height -= diffY;
                    this.Top += h - this.Height;
                }
                if((status & DAndDStatus.Bottom) == DAndDStatus.Bottom) {
                    this.Height = lastMouseDownSize.Height + diffY;
                }
                if((status & DAndDStatus.Left) == DAndDStatus.Left) {
                    int w = this.Width;
                    this.Width -= diffX;
                    this.Left += w - this.Width;
                }
                if((status & DAndDStatus.Right) == DAndDStatus.Right) {
                    this.Width = lastMouseDownSize.Width + diffX;
                }
            }

            this.Refresh();

            base.OnMouseMove(e);
        }

        protected override void OnMouseUp(MouseEventArgs e) {
            this.Capture = false;

            base.OnMouseUp(e);
        }

        protected override void OnPaint(PaintEventArgs e) {
            e.Graphics.DrawRectangle(
                Pens.Black,
                0, 0,
                this.Width - 1,
                this.Height - 1);

            base.OnPaint(e);
        }

        private Rectangle getTop() {
            return new Rectangle(0, 0, this.Width, sizeChangeArea);
        }

        private Rectangle getBottom() {
            return new Rectangle(0, this.Height - sizeChangeArea,
                this.Width, sizeChangeArea);
        }

        private Rectangle getLeft() {
            return new Rectangle(0,0,
                sizeChangeArea, this.Height);
        }

        private Rectangle getRight() {
            return new Rectangle(this.Width - sizeChangeArea, 0,
                sizeChangeArea, this.Height);
        }

        private enum DAndDStatus {
            None = 0,
            Move = 1,
            Top = 2,
            Bottom = 4,
            Left = 8,
            Right = 16,
        }
    }

     

    2009ǯ03·î21Æü

    C#|¥Æ¥­¥¹¥È¥Ü¥Ã¥¯¥¹¾å¤Ç¤ÎD&D¤Ç¥Õ¥©¡¼¥à¤ò°Üư¤¹¤ë

    TextBox¥³¥ó¥È¥í¡¼¥ë¾å¤Ç¤Î¥É¥é¥Ã¥°¡õ¥É¥í¥Ã¥×¤Ç¥Õ¥©¡¼¥à¤ò°Üư¤µ¤»¤è¤¦¤È¤·¤¿¾ì¹ç¡¢Ê¸»úÎó¤òÁªÂò¤¹¤ëÁàºî¤È¥Ð¥Ã¥Æ¥£¥ó¥°¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¡£
    °Ê²¼¤Î¼ÂÁõ¤ÇÎɤ¤´¶¤¸¤Ëư¤¤¤¿¡£

    Point mouseDownPoint = new Point();
    bool dAndDMoveFlag = false;

    private void textBox1_MouseDown(object sender, MouseEventArgs e) {
        if(e.Button != MouseButtons.Left) return;
        mouseDownPoint = e.Location;
        bool flag = true;
        int charHeight = 
            TextRenderer.MeasureText("A", this.textBox1.Font).Height;
        
        for(int i = 0; i < this.textBox1.Lines.Length; i++) {
            Point point = new Point(0, i * charHeight);
            Size size = 
                TextRenderer.MeasureText(
                    this.textBox1.Lines[i], 
                    this.textBox1.Font);
            Rectangle rect = new Rectangle(point, size);
        
            if(rect.Contains(e.Location)) {
                flag = false;
                break;
            }
        }
        
        this.dAndDMoveFlag = flag;
    }

    private void textBox1_MouseMove(object sender, MouseEventArgs e) {
        if(dAndDMoveFlag) {
            Point p = this.Location;
            p.Offset(
                new Point(e.X - mouseDownPoint.X, e.Y - mouseDownPoint.Y));
            this.Location = p;
        }
    }

    private void textBox1_MouseUp(object sender, MouseEventArgs e) {
        dAndDMoveFlag = false;
    }


    ÁÇÁ᤯¥É¥é¥Ã¥°¡õ¥É¥í¥Ã¥×¤·¤¿¤È¤­¤Ëʸ»ú¤¬ÁªÂò¤µ¤ì¤Æ¤·¤Þ¤¤¥Õ¥©¡¼¥à¤Î°Üư¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤ë¤Î¤ò²óÈò¤¹¤ë°Ù¤ËdAndDMoveFlag(¥»¥ó¥¹¤Í¡¼Ì¾Á°£÷)¤Ç¥Õ¥é¥°¤òΩ¤Æ¤Æ¤¤¤ë¡£
    ¤¢¤È¤Ï¤½¤ó¤Ê¤ËÆñ¤·¤¤¤³¤È¤·¤Æ¤Ê¤¤¤È»×¤¦¡£

    ¢¨textBox1¤ÎText¤¬¶õ¤Î¾ì¹ç¤ËLines¥×¥í¥Ñ¥Æ¥£¤Î¶­³¦³°¤ò»²¾È¤·¤ÆÎã³°¤¬È¯À¸¤·¤Æ¤¤¤¿¤Î¤Ç½¤Àµ¤·¤¿¡£
    ¢¨µ¤¤¬ÊѤï¤Ã¤¿¤Î¤Ç°ã¤¦¥í¥¸¥Ã¥¯¤Ç¥´¥Ã¥½¥ê¤È½ñ¤­´¹¤¨¤¿¡£
     

    2009ǯ03·î13Æü

    C#|System.Windows.Forms.ColorDialog¤Î¥Ð¥°¡©

    ColorDialog¥¯¥é¥¹¤ÎCustomColors¥×¥í¥Ñ¥Æ¥£¤¬´üÂÔÄ̤ê¤Ëưºî¤·¤Ê¤¤¡£

    ¥Õ¥©¡¼¥à¤ÎÇØ·Ê¿§¤òColor.FromArgb(50, 100, 150)¤ËÀßÄꤷ¤Æ¤¤¤ë¡£¤Á¤Ê¤ß¤Ë¤³¤ó¤Ê¿§¡£

    ColorDialogBug1

    ¥Ü¥¿¥ó¤¬¥¯¥ê¥Ã¥¯¤µ¤ì¤ë¤ÈColorDialog¤ÎCustomColors¥×¥í¥Ñ¥Æ¥£¤ËColor.FromArgb(50, 100, 150)¤òÀßÄꤷ¤ÆÉ½¼¨¤¹¤ë¡£

    ColorDialogBug2

    ¤ª¤«¤·¤¤¡¢Äɲä·¤¿¿§¤¬¹õ¤¯É½¼¨¤µ¤ì¤Æ¤¤¤ë¡£¿§¤ÎºîÀ®¥Ü¥¿¥ó¤ò²¡¤·¤ÆRGBÃͤò¸«¤Æ¤ß¤ë¤È

    ColorDialogBug3

    R¤ÈB¤¬È¿Å¾¤·¤Æ¤¤¤ë¡£¤³¤ì¤Ïº¤¤Ã¤¿¡£

    using System;
    using System.Drawing;
    using System.Windows.Forms;

    public partial class Form1 :Form {
        Color color = Color.FromArgb(50, 100, 150);

        public Form1() {
            InitializeComponent();
            this.BackColor = color;
        }

        private void button1_Click(object sender, EventArgs e) {
            this.colorDialog1.CustomColors = new int[] { color.ToArgb() };
            this.colorDialog1.ShowDialog();
        }
    }



    ¤É¤¦¤ä¤é¥Ð¥°¤Ç¤Ï¤Ê¤¤¤é¤·¤¤¡£