S M T W T F S
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
カテゴリ
以前の記事

タグ:FaceStickマクロ ( 16 ) タグの人気記事

何でもないけど整形

by dugong156 | 2008-11-29 14:19 | パソコンあれこれ
リンクは原則は自由とか書いていても報告を義務付けするような表記が見られるサイトは、ハイパーリンクにはせずに URL をそのまま貼り付けてるんだけど‥‥。Sleipnir2 なんかにある URL とタイトルのコピーだとそのままなーんにもしない状態だとこの状態なので、

asahi.com(朝日新聞社):長男の頭に火つけた疑い、70歳父親を逮捕 福島 - 社会
http://www.asahi.com/national/update/1129/TKY200811290089.html?ref=rss


どうでもいいけど、こんな風に整形できるように FiceStickFaceStick(2009/06/15(月)22:48訂正。作者様に申し訳ない‥‥こんな間違いを‥‥) マクロに付け足してみた。
■長男の頭に火つけた疑い、70歳父親を逮捕 福島
http://www.asahi.com/national/update/1129/TKY200811290089.html?ref=rss
(社会:asahi.com(朝日新聞社))


日刊スポーツもそうなので、同じように整形するように付け足してみたんだけど、ちょっとグチャグチャしてきてしまった‥‥別にすればよかったかな‥‥。
[PR]

FaceStickマクロ引用ページのテキストをコピーして引用符タグと引用元URLのリンクを付加する

by dugong156 | 2008-08-19 10:40 | パソコンあれこれ
検索途中で見つけたやったーFirefox3でリンクつき文字列とリンク先URLの一発コピーができたよー - 本日の、○○してみた。の記事を見てたら、Make Link というアドオンって使いやすそう。でもまぁ Sleipnir2 と Firefox3 に各々の良さを見てしまうと、こっちだと言い切れない自分がいるので、私には 両方に対応するためにも FaceStick が便利かな。
ここに、文字列を選択して右クリックで コピーした文字列にコピー元ページのアドレスをリンクさせるというのがあった。ああそうか、引用の時わざわざ別々にコピーして貼り付けて――なんてしなくても、リンク情報まで付加するようにすれば楽だよなぁと思い(何を今更)、FiceStick のマクロを作ってみた。

var
Quote,Value,Title,Url,Kaigyou:string;

begin
Quote := '';
Value := '';
Kaigyou := '
';
MessageBox('引用タグで囲むテキストを選択','どれを引用する?',0);
SetForegroundWindow(TargetWindow);
VKCopy;
Sleep(100);
Quote := GetClipBord;
Sleep(100);
//私はブラウザのタイトル&URLのコピーに[Ctrl]+[G]を設定しているので
Keybd_event(17,0);
Sleep(100);
Keybd_event(71,0);
Sleep(100);
Keybd_event(17,-1);
Sleep(100);

Value := Trim(GetClipBord);
Sleep(100);
Title := StringDivide(Value,Kaigyou,0);
Url := Trim(StringDivide(Value,Kaigyou,-1));
Value := '';
Sleep(100);

//スタイルシートのクラスに.Sで小文字と.rでテキストの右寄せを設定しているので。
Value := '<blockquote>' + Quote + '</blockquote><div class="S r" style="margin-top:-0.8em">引用元:<a href ="' + Url + '" target="_blank" title="【' + Title + '】から引用">' + Title + '</a></div>';SetClipBord(Value);
Sleep(100);
MessageBox('貼り付け待機','',0);
VKPaste;

end;

こんな感じに。
文字列を選択して右クリックで

* コピーした文字列にコピー元ページのアドレスをリンクさせる

[PR]

FaceStickマクロの調整

by dugong156 | 2007-07-25 11:14 | パソコンあれこれ
何か、今まで上手くいってたのがまた行かなくなって、どうもクリップボードへ送るのが処理に間に合ってないみたい。EvMemo にあるテキストで試すと大丈夫なんだけどなぁ。Sleipnir だと間に合わない‥‥うむ‥‥。仕方ないから、該当する部分の「Sleep();」の値を60から100に。いや、もっと段階的に増やして試せばいいんだけど、取り敢えず。

こういう時、GrepReplace は便利。
[PR]

過去の日記へのリンクを張る時に

by dugong156 | 2007-07-16 09:35 | パソコンあれこれ
FaceStick のマクロで、Sleipnir のキー操作などを自動でやるようにしてURLとページタイトルのコピーなんかをリンクの形に整形してクリップボードへコピーするようなマクロを作っているんだけど、日付がない。今はいちいち手打ちをしているので、これをどうにかしたいなぁと。

で、ソース表示のキー操作をするっていうのもあるんだけど、PPAのプログラムを起動させるので何か出来ないかなと。でもURLを開くっていうのは、駄目なのかな。開くダイアログを出してそこにURLを入れると、なぜか編集不可の状態で開けるのに、直接パラメータでURLを指定するのは駄目。ショートカットで試してみたけど、K2Editor もメモ帳も同じ。ファイルを開くダイアログのボックスに入れると、なぜか開く。これってプログラムを作る人には当然の流れなのかな? 私には何がどう違うのかが分からん。検索してもなかなか見つけられん。いや、根気が足らんのかな。

理想はTeraPadがソースを開いて、そこを全部選択してコピー、TeraPadを閉じて、コピーした中から日付を取り出して、整形する時に必要な場所へくっつけるという感じ。

――なんぢゃが‥‥。そもそも起動すらせんよ。(笑)
おまけにウィンドウがSleipnirへ戻ってしまう(TargetWindowへ)していせんとあかんのかな‥‥。ソース表示のキー操作でやってみよっと。

-----時間経過-----

取り敢えずでけたでけた。キー操作をひたすらするので、パコパコとメニューやウィンドウが忙しいけれど、何とか出来た♪ 今まで使っていたリンク作成のマクロに付け足し。
このマクロ、元々時々、上手く行かない時がある。(ご愛嬌) 何でかは知らん――というか分からん。一番上手く行く確率が高いなぁと勝手に思っているのは、ダイアログが出てから、手動でそのメッセージボックスをアクティブにした後、タブを切り替えて編集画面にするという流れの時。失敗した時は、貼り付けが上手く行かないので、挟み込みが出来ずに終わっちゃう。クリップボードにはちゃんとセットされているので、取得したウィンドウのタイトルを挟み込んで出力する方を選んだ場合は手動で貼り付けすればいいんだけれど。

実はメッセージボックスアクティブにする方法がよく分からなかったりする。だから「手動」でメッセージボックスをアクティブにしないといけないのであった‥‥(* ̄▽ ̄;Ahæ。FindWindow() や FindWindowEx() を使ってやってみたけど、いつも「0」が返ってくる‥‥(ノ_・)何がいかんのだろうか‥‥。試しに「TargetWindow」が Sleipnir になっている時に、GetClassName()、GetWindowText() を使ってみたら、クラス名は取得できたけれど、テキストの方は上手く取得できなかった。ん~~~~~~(考えてる振りをして実は考えてない)。で、そのクラス名を今度は FindWindow() に入れて探してみても、やっぱり「0」。作者さんに質問してみようか‥‥。ま、これは置いておいて。

var

Value,Title,Url,Sdstr,MbTxt,DDate: string;
ReMb, Site, Wh: integer;

begin

Value := '';
Title := '';
Url := '';
Sdstr := '';
SetClipBord('');
Sleep(60);

SetForegroundWindow(TargetWindow);
Sleep(60);
Keybd_event(18,0);
Sleep(60);
Keybd_event(69,0);
Sleep(100);
Keybd_event(79,0);
Sleep(60);
Keybd_event(18,-1);
Sleep(100);

Value := Trim(GetClipBord);
Sleep(60);
Title := StringDivide(Value,'
',0);
Url := StringDivide(Value,'
',-1);
Url := Trim(Url);

if Pos(' - Point and Click Games - GamersHood - Online Games Paradise',Title) > 0 then
begin
Site := 1;
Title := Copy(Title,1,(Pos(' - Point and Click Games - GamersHood - Online Games Paradise',Title) - 1));
end;
if Pos('www.vector.co.jp',Url) > 0 then
begin
Site := 2;
if Pos('(Windows',Title) > 0 then Title := Copy(Title,1,(Pos('(Windows',Title) - 1));
end;
if Pos('まったりめもりーず : ',Title) > 0 then
begin
Site := 3;
Title := Copy(Title,Pos(' : ',Title) + 3,Length(Title));
SetClipBord('');
Sleep(60);

Keybd_event(18,0);
Sleep(60);
Keybd_event(86,0);
Sleep(60);
Keybd_event(86,0);
Sleep(60);
Keybd_event(86,0);
Sleep(60);
Keybd_event(18,-1);
Sleep(360);
//↑短い時間だとなぜか Sleipnir のメニューの [Alt]+[A] を押した状態になる。次の処理でしか[A]は押してないんだけどなぁ‥‥。キーによって何か違うのかな?(* ̄▽ ̄*)? 試してこの時間。
Keybd_event(17,0);
Sleep(60);
Keybd_event(65,0);
Sleep(60);
Keybd_event(67,0);
Sleep(60);
Keybd_event(17,-1);
Sleep(60);
Keybd_event(18,0);
Sleep(60);
Keybd_event(115,0);
Sleep(60);
Keybd_event(18,-1);
Sleep(100);
//時間の所為なのか、何なのかが分からんが、失敗するとブラウザを閉じようとしてしまう(* ̄▽ ̄;Ahæ Sleipnir の終了時に確認メッセージ出すようにしてて良かった‥‥。日記かいてる途中だったら泣いてたゎ。(日記書きながら試すなよ) 取り敢えず大丈夫にはなったけど、よく分からん。これも処理の速さの違いからなのかなぁ? キーを押す動作って時間がかかるのかな。

DDate := GetClipBord;
Sleep(60);
DDate := Copy(DDate,Pos(Url + '>',DDate) + Length(Url + '>') + 2,8);
DDate := StringReplace(DDate,'-','/',0);
Title := '【' + Title + '(' + DDate + ')】';
end;
//以下、ウィンドウを切り替えるためにメッセージボックスを表示するついでに確認のため内容を表示
MbTxt := 'タイトル■' + Title +'
';
MbTxt := MbTxt + 'URL■' + Url + '
';
MbTxt := MbTxt + '
';
MbTxt := MbTxt + '文字列挟み込み?選択して「はい」(範囲が選択されていなければタグのみ貼り付け) 「いいえ」でページタイトルをリンク文字に。';
ReMb := MessageBox(MbTxt,'挟み込み選択ウィンドウ',3);

if ReMb = 6 then begin
SetClipBord('');
Sleep(60);
VKCut;
Sleep(60);
Sdstr := GetClipBord;
Sleep(100);
end;
if ReMb = 7 then Sdstr := Title;
if ReMb = 2 then Exit;

if Site = 1 then Value := '<A href="' + Url + '" target="_blank" title="【' + Title + '】のページを別窓で開きます' + '">' + Sdstr + '</A> (in <A href="http://www.gamershood.com/" target="_blank">Gamershood</A>)'
else if Site = 2 then Value := '<A href="' + Url + '" target="_blank" title="【' + Title + '】の紹介ページを別窓で開きます' + '">' + Sdstr + '</A> (in <A href="http://www.vector.co.jp/" target="_blank">Vector</A>)'
else if Site = 3 then Value := '<A href="' + Url + '" target="_blank" title="' + Title + 'の日記を別窓で開きます' + '">' + Sdstr + '</A>'
else Value := '<A href="' + Url + '" target="_blank" title="【' + Title + '】のページを別窓で開きます' + '">' + Sdstr + '</A>';

SetClipBord(Value);
Sleep(60);
VKPaste;

end;

[PR]

弊害というか嬉しい誤算?

by dugong156 | 2007-04-08 15:06 | パソコンあれこれ
この所はRPGツクールのランタイムを入れたり、ゲームをダウンロードしたりに必死。
思ったよりも音もいいし、画面は大きいし、自分のやるゲーム程度なら、充分かも~♪と喜んでいた矢先‥‥FaceStickのマクロが‥‥動かない‥‥ことに気づきました。
(T_T)なぜ‥‥。同じXPじゃない‥‥。

あれこれやってみて何となく分かりました。時間だったようです。
クリップボードからテキストを取り出す時、Libretto L1や我が家のデスクトップ(2001年春くらいの富士通製)程度なら時間を置かなくても大丈夫だったんですが、クリップボードが取り出せない内に処理をしてしまうという状況になるようです。ん~~クリップボードから取り出すのと、その後に取り出すのと、やっぱりそんなに違うんでしょうかね。私にはよく分からないんですが‥‥。

そこで、クリップボードから取り出す時だけでなく、挟み込みやボタンを押す作業などもそうなんですが、その都度 sleep(60);を付けるようにしたらOKでした。あ~よかった。
以前、貼り付けが上手くいかない時の原因がEvMEMOを常に最前面表示にしていたことだったので、今回VB6ランタイムなど一気にあれこれ入れたので、何かその辺との影響でどうにかなってたらどうしようかと思いました。兎も角よかったよかった‥‥。

で、実際の処理を見てみると、確かに速いなと感じました。この速さ分、0で良かったものが60くらいにしなきゃいけない原因ということなんでしょうかね‥‥。あんまり考えると頭痛くなるからやめとこう。
[PR]

FaceStickマクロ 重複行の削除

by dugong156 | 2006-10-07 20:04 | 日記
HDレコーダーの機能について自分がよく把握していなかったことに気付いた先日。ふと、どういう思考の流れでそうなったのか、FaceStick のマクロのことが頭に浮かびました。

少し前に作りかけてそのままになっていた、「続けて存在する重複行の削除」と「離れているものを含め重複行を削除」の2つを、何とか仕上げたのはよいのだけれど、どうも無駄な所があるような気がして‥‥。(単に私の性質上、充分有り得ることだ。いやあるに違いない――ということに過ぎない)

で、実際そうだったのです、ええ。(しっかりと肯定)
1行目を元のテキストから切り離し、テキストの先頭行をこれまた切り離し、比較――こんなことをやっていたので、抜きとりゃいいんだなと。この間のHDレコーダーの勘違いと似たような感じで、ただ抜き取っていけばいいんだなと。比較した後は、順番にくっつけていくしかないのかなぁと思うのですが‥‥。

最後の方で、MessageBoxを表示させて、「どれを*個削除」というのも分かるようにしていて、まぁそれは自分がそうしたくて付けたものだから、そのままにしてと‥‥。分かりやすいからと、分けていた変数名をまとめて‥‥。

ちょっとは綺麗になったかな?
「続けて存在する重複行の削除」の直したやつ
 ↓
var

After, Before, Hikakumoto, Mes, Message: string;
Re,n,Kaigyou: integer;

begin

After := '';
Message := '';

SetForegroundWindow(TargetWindow);
VKCut;
Sleep(60);
Before := GetClipBord;
if TrimLeft(Before) = Before then Kaigyou := 1
else Kaigyou := 2;
if TrimRight(Before) = Before then Kaigyou := 3
else Kaigyou := 4;
//選択した文字列において、Kaigyouの値が1:文頭の改行なし 2:文頭の改行あり 3:文末の改行なし 4:文末の改行あり
Before := Trim(GetClipBord) + '
';

repeat
Mes := '';
Hikakumoto := StringDivide(Before,'
',0);
Hikakumoto := Hikakumoto + '
';
Before := TrimLeft(StringDivide(Before,'
',-1));
n := 0;
While Pos(Hikakumoto,Before) = 1 do
begin
n := n + 1;
Before := Delete(Before,1,(Length(Hikakumoto)));
if Length(Trim(Before)) = 0 then Break;
Mes := '〓' +IntToStr(n) + '〓' + Trim(Hikakumoto) + '
';
end;
if Mes <> '' then Message := Message + Mes + '
';
After := After + Trim(Hikakumoto) + '
';
until Length(Trim(Before)) = 0;

After := TrimRight(After);
if Kaigyou = 2 then After := '
' + After;
if Kaigyou = 4 then After := After + '
';
MessageBox(Message + 'が重複していたので削除','重複確認',0);
SetClipBord(After);
Sleep(60);
VKPaste;

end;

前のヤツ
 ↓
var

After, Before, Hikakumoto, Hikakusaki, Mes, Message: string;
Re,n,StartKaigyou,EndKaigyou: integer;

begin

SetForegroundWindow(TargetWindow);
VKCut;
Sleep(60);
Before := GetClipBord;
if TrimLeft(Before) = Before then StartKaigyou := 0
else StartKaigyou := 1;
if TrimRight(Before) = Before then EndKaigyou := 0
else EndKaigyou := 1;

Before := Trim(GetClipBord) + '
';
After := '';
Message := '';
Hikakumoto := StringDivide(Before,'
',0);

repeat
Before := TrimLeft(StringDivide(Before,'
',-1));
Hikakusaki := StringDivide(Before,'
',0);

if Hikakumoto = Hikakusaki then
begin
n := 1;

repeat
Before := Delete(Before,1,(Length(Hikakusaki)));
if Length(Trim(Before)) = 0 then Break;
Before := TrimLeft(Before);
Mes := Hikakumoto + '   が' + IntToStr(n) + '個重複していたので削除' + '
';
n := n + 1;
Hikakusaki := StringDivide(Before,'
',0);
until Hikakumoto <> Hikakusaki;
Message := Message + Mes +'
';
end;

After := After + Hikakumoto + '
';
Hikakumoto := Hikakusaki;
until Length(Before) = 0;

After := TrimRight(After);
if StartKaigyou = 1 then After := '
' + After;
if EndKaigyou = 1 then After := After + '
';

MessageBox(Message,'重複確認',0);
SetClipBord(After);
Sleep(60);
VKPaste;

end;

これはちょっと短くなった気がするんだけど‥‥。
もう1つの「離れているものを含め重複行を削除」の方は、あんまり少なくならなかったのです‥‥。無駄骨だったかしら‥‥。
(* ̄▽ ̄;A

直したやつ
 ↓
var

After, Before, Hikakumoto, Mes, Message: string;
Re,n,Kaigyou: integer;

begin

After := '';
Message := '';

SetForegroundWindow(TargetWindow);
VKCut;
Sleep(60);
Before := GetClipBord;
if TrimLeft(Before) = Before then Kaigyou := 1
else Kaigyou := 2;
if TrimRight(Before) = Before then Kaigyou := 3
else Kaigyou := 4;
//選択した文字列において、Kaigyouの値が1:文頭の改行なし 2:文頭の改行あり 3:文末の改行なし 4:文末の改行あり
Before := Trim(GetClipBord) + '
';

repeat
Mes := '';
Hikakumoto := StringDivide(Before,'
',0);
Hikakumoto := Hikakumoto + '
';
Before := TrimLeft(StringDivide(Before,'
',-1));
n := 0;
While Pos(Hikakumoto,Before) >= 1 do
begin
n := n + 1;
Before := Delete(Before,Pos(Hikakumoto,Before),(Length(Hikakumoto)));
if Length(Trim(Before)) = 0 then Break;
Mes := '〓' +IntToStr(n) + '〓' + Trim(Hikakumoto) + '
';
end;
if Mes <> '' then Message := Message + Mes + '
';
After := After + Trim(Hikakumoto) + '
';
until Length(Trim(Before)) = 0;

After := TrimRight(After);
if Kaigyou = 2 then After := '
' + After;
if Kaigyou = 4 then After := After + '
';

MessageBox(Message,'重複確認',0);
SetClipBord(After);
Sleep(60);
VKPaste;

end;

直す前
 ↓
var

Before, After, Hikakumoto, Mes, Message: string;
Re,n,StartKaigyou,EndKaigyou: integer;

begin

SetForegroundWindow(TargetWindow);
VKCut;
Sleep(60);
Before := GetClipBord;
if TrimLeft(Before) = Before then StartKaigyou := 0
else StartKaigyou := 1;
if TrimRight(Before) = Before then EndKaigyou := 0
else EndKaigyou := 1;

Before := Trim(GetClipBord) + '
';
Message := '';
After := '';

Hikakumoto := StringDivide(Before,'
',0);
Hikakumoto := Hikakumoto + '
';
Before := TrimLeft(StringDivide(Before,'
',-1));

repeat
n := 0;
Mes := '';
while Pos(Hikakumoto,Before) > 0 do
begin
Before := Delete(Before,Pos(Hikakumoto,Before),Length(Hikakumoto));
n := n + 1;
Mes := TrimRight(Hikakumoto) + '        が' + IntToStr(n) + '回。' + '
';
end;
After := After + Hikakumoto;
Hikakumoto := StringDivide(Before,'
',0);
Hikakumoto := Hikakumoto + '
';
Before := TrimLeft(StringDivide(Before,'
',-1));
Message := Message + Mes;
until Length(Trim(Before)) = 0;

After := TrimRight(After);
if StartKaigyou = 1 then After := '
' + After;
if EndKaigyou = 1 then After := After + '
';

MessageBox(Message,'重複確認',0);
SetClipBord(After);
Sleep(60);
VKPaste;

end;

[PR]

FaceStickマクロのMessageBox

by dugong156 | 2006-07-23 23:57 | パソコンあれこれ
Sleipnir(1.66)の[タイトルと URL のコピー]をしてから、HTMLに整形するまでのマクロを少し変更しようと思い立ちました。

そういえば、ずっとMessageBox() という関数の、改行――これがどうやったら出来るのか、検索してみても全く分からなかったんです。今日改めて検索したりしていてああでもないこうでもないと考えるうちに、そういえば文字列を指定する時の改行は、まさにそのまま改行を打ち込むのでよかったんだなぁと、思い出しました。(本当にこれが正しいのかは知らんが‥‥出来るから合ってるんだろうと思っている^^;)
じゃぁそれでやってみればいいんじゃないかと思い、試しにカキカキ‥‥。
φ(._.)

結果、直接 MessageBox() の中に書き込むと、どうも以降の文字列が文字化けしたりしてしまいましたが、先に文字列を作ってから代入してみたら、行けました♪ こうすればよかったのか‥‥。ただ、なぜかは分かりませんが、改行は代入式の行の最後に1個ずつ持ってくるようにしないと(つまり1行ずつ足していく)、それ以降がやはり文字化けしてしまいます‥‥。これはどうしようもないのかな? よく分かりません‥‥。

取り敢えずはこうしておきましょうっと。

var

Value,Title,Url,Sdstr,MbTxt : string;
ReMb, Gmh, Vec: integer;

begin

Value := '';
Title := '';
Url := '';
Sdstr := '';
SetClipBord('');

SetForegroundWindow(TargetWindow);
Keybd_event(18,0);
Sleep(60);
Keybd_event(69,0);
Sleep(100);
Keybd_event(79,0);
Sleep(60);
Keybd_event(18,-1);
Sleep(60);

Value := Trim(GetClipBord);
Title := StringDivide(Value,'
',0);
Url := StringDivide(Value,'
',-1);
Url := Trim(Url);

if Pos(' - Point and Click Games - GamersHood - Online Games Paradise',Title) > 0 then
begin
Gmh := 1;
Title := Copy(Title,1,(Pos(' - Point and Click Games - GamersHood - Online Games Paradise',Title) - 1));
end;
if Pos('www.vector.co.jp',Url) > 0 then
begin
Vec := 1;
Title := Copy(Title,1,(Pos('(Windows95/98/Me',Title) - 1));
end;

MbTxt := 'タイトル■' + Title +'
';
MbTxt := MbTxt + 'URL■' + Url + '
';
MbTxt := MbTxt + '
';
MbTxt := MbTxt + '文字列挟み込み?選択して「はい」(範囲が選択されていなければタグのみ貼り付け) 「いいえ」でページタイトルをリンク文字に。';
ReMb := MessageBox(MbTxt,'挟み込み選択ウィンドウ',3);
Sleep(180);
if ReMb = 6 then begin
SetClipBord('');
VKCut;
Sleep(60);
Sdstr := GetClipBord;
end;
if ReMb = 7 then Sdstr := Title;
if ReMb = 2 then Exit;

if Gmh = 1 then Value := '<A href="' + Url + '" target="_blank" title="【' + Title + '】のページを別窓で開きます' + '">' + Sdstr + '</A> (in <A href="http://www.gamershood.com/" target="_blank">Gamershood</A> )'
else if Vec = 1 then Value := '<A href="' + Url + '" target="_blank" title="【' + Title + '】のページを別窓で開きます' + '">' + Sdstr + '</A> (in <A href="http://www.vector.co.jp/" target="_blank">Vector</A> )'
else Value := '<A href="' + Url + '" target="_blank" title="【' + Title + '】ホームページを別窓で開きます' + '">' + Sdstr + '</A>';

SetClipBord(Value);
Sleep(60);
VKPaste;

end;

[PR]

FaceStickマクロのrepeat文

by dugong156 | 2006-06-25 11:47 | 日記
どうも勘違いしていたようです‥‥。

repeat
文;
文;
文;
文;
until 式;

で良いみたい。てっきり「文の並び」を「 begin~end; 」で挟まないといけないのかと思っていたんですが、違っていました。あらま。
[PR]

Wikipedia の提案する引用形式基に参考文献情報から引用用項目を吐き出すFacestickマクロ

by dugong156 | 2006-06-20 10:16 | パソコンあれこれ
タイトル長っ! でもそう大層なことではないのです。

時々リンクを張ろうとして、どうしたらいいのか分からず、一応、Wikipedia:ウィキペディアを引用する - Wikipedia なんかを見てそれなりの形式で書いていたりするのですが、毎回打つのが面倒なので(というほど引用そのものをすることはないだろうけど)何となく作ってみました。
各ページの「この項目を引用」をクリックして見られる、「参考文献」の欄を選択した状態でマクロを実行する(実行してからでもよいのですが)と、選択部分をコピーして↑のページの提案しているような形(全く同じじゃないけれど、書かれてあるように更新日時UTCと、Wikipediaの名称、それからURIを取り出して整形)で出力します。

var
Text,Title,Date,Uri: string;
n: integer;

begin

MessageBox('参考文献の所のリスト部分を選択したらOKを押す','コピー待機画面',0);
SetForegroundWindow(TargetWindow);
VKCopy;
Sleep(60);
Text := Trim(GetClipBord);
Sleep(60);
for n := 1 to 6 do
begin
Text := Trim(StringDivide(Text,': ',-1));
if n = 1 then Title := Trim(StringDivide(Text,'
',0))
else if n = 4 then Date := Trim(StringDivide(Text,'
',0))
else if n = 6 then Uri := Trim(StringDivide(Text,'
',0));
Text := Trim(StringDivide(Text,'
',-1));
end;

Text := '「' + Title '」' + '
';
Text := Text + '(' + Date + '更新分)' + '『Wikipedia日本語版』' + '
';
Text := Text + '<A href="' + Uri + '" target="_blank">' + Uri + '</A>';

MessageBox(Text + '---をクリップボードにコピーしました。','確認&貼り付け待機画面',0);
SetClipBord(Text);
Sleep(60);
VKPaste;
end;


なぜか、最後のText := の3行をまとめてしまうと、綺麗に吐き出してくれないのです。改行を入れているからかな?と思います。< の前後などに半角スペースが入るので(FaceStickのマクロではたまにあります)、分けました。

最初、手作業でコピーしておいてその後の作業だけするようにしてみたのですが、最後の貼り付けが上手く行きませなんだ。(どこに行ったらいいのか分かんないようで‥‥と勝手にそう見ている) 最初に TargetWindow の処理が出てきた方がよいのかな? 同じブラウザの別タブだけじゃなくて、メモ帳とか場所にもちゃんと貼り付いたから、こっちの方がいいみたいです。そういえば、Sleipnirの[タイトルと URL のコピー]の処理をした時も、自分でやってから後の処理をさせただけだとどうも最後の上手く行かなかった記憶があります‥‥。

こんな感じの形。
「植民地」
(2006年6月16日 22:53 (UTC)更新分)『Wikipedia日本語版』
http://ja.wikipedia.org/w/index.php?title=%E6%A4%8D%E6%B0%91%E5%9C%B0&oldid=6203225
[PR]

日付を勝手に押す所までやってもらおうと思いまして

by dugong156 | 2006-04-19 02:51 | パソコンあれこれ
Nami2000の日記データをExciteの投稿画面に貼り付ける時に、FaceStickマクロを使って「8桁の日付をとっ払う→タイトルと本文を分割→タイトル入力→[Tab]キー→本文入力」までをやってくれるようにしています。

日記の日付と投稿時現在の年月日のそれぞれの差を使えば、同じように[Tab]などのキーを押して日付のプルダウンメニューの入力もやってくれるんだろうなと思ったのでどうせならと思い、やってみました。

動く動く~~♪∩(* ̄▽ ̄*)∩わーいわーい♪
今日が1日で日記が30日とかだと、少し待たないといけないけど‥‥(* ̄▽ ̄;Aはは。以前の日記でやってみたけど、Sleep()で待ち時間を設定しなくても大丈夫みたい。元々時間を入れていないから、投稿の時刻はそのままだけど。

var
Gcb, Num, NikkiY, NikkiM, NikkiD, Title, Text: string;
TodayY, TodayM, TodayD, n: integer;

begin

Gcb := GetClipBord;
Sleep(60);
Title := StringDivide(Gcb,'
',0);
if StrToInt(Copy(Title,1,8)) <> 0 then
begin
Num := Copy(Title,1,8);
NikkiY := Copy(Num,1,4);
NikkiM := Copy(Num,5,2);
NikkiD := Copy(Num,7,2);
Title := Delete(Title,1,8);
TodayY := Year - StrToInt(NikkiY);
TodayM := Month - StrToInt(NikkiM);
TodayD := Day - StrToInt(NikkiD);
end;

Text := StringDivide(Gcb,'
',-1);
Text := Trim(Text);

SetForegroundWindow(TargetWindow);
SetClipBord(Title);
Sleep(60);
VKPaste;
VKTab;
Sleep(60);
SetClipBord(Text);
Sleep(60);
VKPaste;

for n := 1 to 12 do VKTab;
VKRight;
VKTab;

if TodayY > 0 then
begin
for n := 1 to TodayY do VKUp;
end;
VKTab;

if TodayM > 0 then
begin
for n := 1 to TodayM do VKUp;
end;

if TodayM < 0 then
begin
for n := 1 to (TodayM * -1) do VKDown;
end;
VKTab;

if TodayD > 0 then
begin
for n := 1 to TodayD do VKUp;
end;
if TodayD < 0 then
begin
for n := 1 to (TodayD * -1) do VKDown;
end;

end;

[PR]
      

私の人生無駄ばかり…そんな日々。
by dugong156
タグ
検索
最新の記事
EPSON の廃インク吸収パ..
at 2017-04-05 15:31
ハードディスクの容量確保で散..
at 2016-11-29 09:29
Windows 7のCドライ..
at 2016-07-23 11:27
相方、Instagramにパ..
at 2016-07-22 15:24
Office のソフトって結..
at 2016-07-06 00:51
記事ランキング
ブログジャンル