|
お返事有り難うございます。
UPしましたのは先頭を総て//コメントにしたので分かりづらく失敗したと思っていま
す。
お知らせといいますのはタスクトレーに隠れている「新しい更新プログラムをご利用
できます」のことで時々表示されます。
出ましたページをドラッグコピペしましてnewファイルに張りますと、
KBnnnnnnn と
kb/nnnnnnn が同じ番号で組になって表示されます。
更新日時取得は必要ないかもしれません。
この番号が適正化調べて 不用なものは お知らせページの チェックをはずして、
右クリックから、再通知しないにしますと再度チェックが戻って表示することがない
のが分かりまして、
残った分をインストールしています。
インストールした分の控えを残しておかないと、追加や削除が出来ませんので整理フ
ァイルを作っておこうと思いました。
ヘルプやマクロヘルプを見ながらボチボチやっていますが、なかなか進みません。
お教えいただいた、マクロを使おうと調べましたがやはりヘルプに載っていないみた
いです。
クリップボードは一行ごとに新しいファイルに張り足してゆくのでしょうか?
前の翻訳関連でしていましたので、それでやってみます。
(翻訳アクセスは一度できたのですがマクロをさわっている内動かなくなってしまい
なぜだか分かっていません)
それでは有り難うございました。
On 2016/02/18 14:50, 秀丸担当 wrote:
>
> この会議室は基本的にマクロ作者様のための会議室になっていますが、コメント
> が無いようなので、ヒントになりそうな点をコメントさせていただきます。
> 1つ前の翻訳関係についても一緒にコメントさせていただきます。
有り難うございます
> ある対象となるファイルがあって、その中から一定のルールに従って抽出するに
> は、幾つか方法が考えらます。
> 1つは前の翻訳関係の既にマクロでも行われているように、検索のループをして
> 細かく制御する方法です。
> 翻訳関係のほうは、できているということであれば、それでいいのではないかと
> 思います。
翻訳と言うより、言葉の継ぎ換えが出来ました。
> 検索しながら不必要な部分を削除する場合は、beginsel;をあらかじめ行ってか
beginsel; 分からないので調べます。
> ら、検索し、カーソルが移動したところでendsel;をすると、範囲選択されるの
> で、そこでdelete;するといいです。
endsel; ?
delete; ?
別のファイルの書き込むと消さなくてもよいのが分かりました。
> これはマクロに限らず通常の操作で「選択開始」コマンドしてからの検索の操作
> と同じです。
前は //$s = gettext( foundtopx, foundtopy, foundendx, foundendy ); //範囲検
索,開始xy,終了xy
で取り込んでいました。
>
> 他には、削除ではなく必要な部分をクリップボードに追加していくのが簡単です。
> 検索でヒットしたら、appendcopy;(追加コピー)を使ってクリップボードに追
> 加し、後でpaste;すると簡単です。
これでやってみます。
>
> または、複数選択してコピーを使うとやりやすいです。この場合はまとめて一度
> にできるので、抽出ルールが正規表現1つで書ける場合はやりやすいです。
>
> setsearch "kb\\d\\d\\d", 0x10; //kb123 の正規表現の例
> selectallfound;
このへんが理解できていません。
> copy;
> newfile;
> paste;
> endmacro;
>
> これらを使っていろいろ試してみてほしいです。
いろいろ試してみます。
>
> 正規表現の書き方についてはヘルプを参照してほしいです。
> 検索ダイアログの検索文字列右側の「>」ボタンを押すとわかりやすいです。
>
> あと、ファイルの更新日時を取得する直接的な方法は秀丸マクロにはありません。
> 別途田楽DLLやmacrodllなどを用意して使われることが多いようです。
> または、COMを使って、普通はvbsやjsで書くことを秀丸マクロの文法に合わせて
> 書き直す方法があります。
>
> //COMを使う更新日時取得の例
> $file = "c:\\folder\\test.txt";
> #objFso = createobject("Scripting.FileSystemObject");
> #objFile = member( #objFso,"GetFile",$file );
前に行が分かりません。
> $a=getpropstr(#objFile,"DateLastModified");
> message $a;
> endmacro;
>
> Windows Update関係のテキストファイルというものが、そもそも存在するかどう
> かや、どこにあるかは、すみませんが秀丸エディタとしてはわからないです。
やはりこれは見つかりません。
つぎは余分なコメントアウトを取りました。
// タイトル ウインドーズ更新アップデートの "nnnnnnn" だけを抜き出す
// 特徴は (KBnnnnnnn) と kb/nnnnnnn が有り 次のように成っています。
// Microsoft .NET Framework 3.5.1 のセキュリティ更新プログラム (Windows 7 SP
1 x86 用) (KBnnnnnnn)
// 詳細情報:
// ttp://support.microsoft.com/kb/nnnnnnn
// 応用 次のように使えます
// echo Uninstalling Knnnnnnn (telemetry for Win7/8.1)
// start /w wusa.exe /uninstall /kb:nnnnnnn /quiet /norestart
// コントロール パネル\すべてのコントロール パネル項目\Windows Update\インス
//トールする更新プログラムの選択 newファイルにコピペ し起動します。
disabledraw; // 表示停止
openfile "?"; // 更新お知らせを開き
? // 更新日付 を取得
#tmp = hidemaruhandle(0); // ファイルハンドルを取得
gofiletop; // ファイル先頭にカーソルを
while (code != eof) { // LOOPはじめ からEOFまで繰り返し
? // カーソルから (KB まで検索
if( !result ) break; // 無ければ ブレーク
1? または // (KB の手前までを削除
2? // kb/までを削除 判定しにくい
right; // )の次に進み
} // LOOP 終わり
? // 保存フォルダ D:\!Dats\win7update
$fname = "D:\\!Dats\\win7update\\"+"更新"+year+month+day+".txt";// ファイ
//ルパス名前日付
saveas $fname, sjis; // 更新日付.txt 名でセーブ
enabledraw; // 表示再開
setactivehidemaru #tmp; // ファイルを表示して
endmacro; // マクロ終了
|
|