Prog/Tool/HATENA Helper
をテンプレートにして作成
トップ
新規
一覧
検索
ヘルプ
開始行:
#contents
*はじめに [#zb4c392a]
はてなダイアリーでブログを書いてます。~
サイト紹介的な内容が多く、サイトにリンク先を記述する事が...
>*[カテゴリ名][リンク先:title=タイトル(省略可)]
のようになっています。~
毎回この通りに記述するのは手間がかかるので、ブラウザのア...
*必要な機能と解説 [#x3ab3822]
**ドラッグ&ドロップの受け取り [#wb9c7efd]
URLのみ受け取る必要があります。~
DragEnterイベントで、URLのみ受け入れる処理を記述します。
private void txt_Output_DragEnter(object sender, DragEve...
{
//URLのみ受け入れる
if (e.Data.GetDataPresent("UniformResourceLocator"))
e.Effect = DragDropEffects.Link;
else
e.Effect = DragDropEffects.None;
}
**URLとタイトルの抽出 [#jc04c72a]
ドラッグ&ドロップの内容から、URLとタイトルの抽出をします。
//ローカル変数の定義
string sBuffer; //作業用
string sURL; //URL保管用
string sTITLE; //TITLE保管用
string[] arysBuffer;
byte[] arybBuffer;
int iLength = 0;
//ドロップされたリンクのURLを取得する
sURL = e.Data.GetData(DataFormats.Text).ToString();
//タイトルの取得
if (sURL.IndexOf('\\') > -1)
{
arysBuffer = sURL.Split('\\');
sURL = arysBuffer[0];
sTITLE = arysBuffer[1];
}
else
{
//FILEGROUPDESCRIPTOR構造体のデータをMemoryStreamで...
MemoryStream msBuffer = (MemoryStream)e.Data.GetData...
//FileGroupDescriptorの長さを取得
msBuffer.Seek(76, SeekOrigin.Begin);
iLength = 0;
while (msBuffer.ReadByte() > 0)
{
iLength++;
}
//cFileNameの部分をbyte配列に取得
arybBuffer = new byte[iLength];
msBuffer.Seek(76, SeekOrigin.Begin);
msBuffer.Read(arybBuffer, 0, iLength);
msBuffer.Close();
//Shift JISでデコードする
sTITLE = System.Text.Encoding.GetEncoding("Shift_JIS...
//最後が.urlか確認し.urlを除去
if (sTITLE.ToLower().EndsWith(".url"))
{
sTITLE = sTITLE.Substring(0, sTITLE.Length - 4);
}
}
**文字列置換 [#e259fcdb]
前述のフォーマットに従って、URLとタイトルを含んだはてな記...
//フォーマットに従い文字列を生成
sBuffer = txt_Format.Text.Replace("<TITLE>", sTITLE);
sBuffer = sBuffer.Replace("<URL>", sURL);
//結果を出力
txt_Output.Text = txt_Output.Text + sBuffer + "\r\n";
**クリップボードへコピー [#n6cb3dc0]
生成した内容を、クリップボードへコピーします。
Clipboard.SetText(txt_Output.Text);
*実行結果 [#yaa78b23]
ブラウザのURL欄から、このウィンドウに対しドラッグ&ドロッ...
#ref(01_HelperForHATENA.PNG)
*サンプルコード [#z58c6325]
#ref(HelperForHATENA_src.lzh)
*参考 [#ra76c7bb]
-http://dobon.net/
RIGHT:2008-03-16 (日) 15:33:14
----
[[Prog]]
終了行:
#contents
*はじめに [#zb4c392a]
はてなダイアリーでブログを書いてます。~
サイト紹介的な内容が多く、サイトにリンク先を記述する事が...
>*[カテゴリ名][リンク先:title=タイトル(省略可)]
のようになっています。~
毎回この通りに記述するのは手間がかかるので、ブラウザのア...
*必要な機能と解説 [#x3ab3822]
**ドラッグ&ドロップの受け取り [#wb9c7efd]
URLのみ受け取る必要があります。~
DragEnterイベントで、URLのみ受け入れる処理を記述します。
private void txt_Output_DragEnter(object sender, DragEve...
{
//URLのみ受け入れる
if (e.Data.GetDataPresent("UniformResourceLocator"))
e.Effect = DragDropEffects.Link;
else
e.Effect = DragDropEffects.None;
}
**URLとタイトルの抽出 [#jc04c72a]
ドラッグ&ドロップの内容から、URLとタイトルの抽出をします。
//ローカル変数の定義
string sBuffer; //作業用
string sURL; //URL保管用
string sTITLE; //TITLE保管用
string[] arysBuffer;
byte[] arybBuffer;
int iLength = 0;
//ドロップされたリンクのURLを取得する
sURL = e.Data.GetData(DataFormats.Text).ToString();
//タイトルの取得
if (sURL.IndexOf('\\') > -1)
{
arysBuffer = sURL.Split('\\');
sURL = arysBuffer[0];
sTITLE = arysBuffer[1];
}
else
{
//FILEGROUPDESCRIPTOR構造体のデータをMemoryStreamで...
MemoryStream msBuffer = (MemoryStream)e.Data.GetData...
//FileGroupDescriptorの長さを取得
msBuffer.Seek(76, SeekOrigin.Begin);
iLength = 0;
while (msBuffer.ReadByte() > 0)
{
iLength++;
}
//cFileNameの部分をbyte配列に取得
arybBuffer = new byte[iLength];
msBuffer.Seek(76, SeekOrigin.Begin);
msBuffer.Read(arybBuffer, 0, iLength);
msBuffer.Close();
//Shift JISでデコードする
sTITLE = System.Text.Encoding.GetEncoding("Shift_JIS...
//最後が.urlか確認し.urlを除去
if (sTITLE.ToLower().EndsWith(".url"))
{
sTITLE = sTITLE.Substring(0, sTITLE.Length - 4);
}
}
**文字列置換 [#e259fcdb]
前述のフォーマットに従って、URLとタイトルを含んだはてな記...
//フォーマットに従い文字列を生成
sBuffer = txt_Format.Text.Replace("<TITLE>", sTITLE);
sBuffer = sBuffer.Replace("<URL>", sURL);
//結果を出力
txt_Output.Text = txt_Output.Text + sBuffer + "\r\n";
**クリップボードへコピー [#n6cb3dc0]
生成した内容を、クリップボードへコピーします。
Clipboard.SetText(txt_Output.Text);
*実行結果 [#yaa78b23]
ブラウザのURL欄から、このウィンドウに対しドラッグ&ドロッ...
#ref(01_HelperForHATENA.PNG)
*サンプルコード [#z58c6325]
#ref(HelperForHATENA_src.lzh)
*参考 [#ra76c7bb]
-http://dobon.net/
RIGHT:2008-03-16 (日) 15:33:14
----
[[Prog]]
ページ名: