Windows (直近のみ表示)

自分用メモ。Visual Studio 2008 Express Editionにて。

メインフォーム(ダミーなわけだけど)を配置したら、NotifyIconを配置。
アイコンからアプリケーションを操作するため、ContextMenuStripも配置。

メニューの中身は適当に実装してNotifyIconにくっつけておく。

で、フォームのプロパティで

  WindowState を Minimized
  ShowInTaskbar を False

にすると、起動してもフォームは表示されず、通知領域のアイコンのみ表示される。
趣旨は、WindowStateは起動時のフォームの状態で、これが最小化に設定されている。
でもShowInTaskbarがFalseなので表示されず、NotifyIconだけが残っている状態。
*最小化してもこういうの↓が表示されない=通知領域だけ表示
taskbar.JPG

なので当然ながら、NotifyIconを設定し忘れていたり終了メニューを実装し忘れていたりすると
ユーザーに不親切なアプリケーションができあがる。

 

自動でダウンロードする方法は前々回の記事、cygwin の cron に移植した記録は前回の記事を参照してもらうこととして、
今回は ApacheLogViewer  用に整形します。

と言っても2列目をドメインに差し替えるだけですが。

なので、ドメインが1つだけの契約なら関係ありません。

ロリポップのくれたサブドメインと、独自ドメインと、独自ドメインのサブドメインがあるような状況を想定しています。

 

#!/bin/sh
cd /home/lolipop_log # .gzが日々落ちてくるディレクトリを指定
out=/home/lolipop_log/alv # 解凍したログを出力するディレクトリ
suffix=`date +"%s"`
suffix=`expr ${suffix} - 86400` # 前日のログを処理するので.
suffix=`echo ${suffix} | perl -ne '@t=localtime($_);printf("%d%02d%02d",@t[5]+1900,@t[4]+1,@t[3])'`
# バーチャルドメインを列記。
for domain in dphoge.lolipop.jp www.foo.net bar.net ;do
  zcat ${domain}.${suffix}.gz | awk -vVAL=${domain} '$2=VAL {print $0}' > ${out}/${domain}.${suffix}.log
done

 

これを適当な名前で保存 -> chmod +x –> crontab –e で、ログを落としたあとの時刻に登録。

crontab –l するとこんな感じになっています。

SHELL=/bin/sh
45 23 * * * /home/lolipop_log/dl_lolipop_logs.sh
55 23 * * * /home/lolipop_log/format.sh

drm2wmv_eは複数のファイルを対象にできないので、1つずつ順番に作業するバッチを生成する。
作業用PCにはPerlを入れていないので自分用に作成。
復元キーを直接貼り付けるので、ソースを持って帰って自前の環境で動かしてください。
フォームの入力内容はSTDINで読んで処理してSTDOUTに吐くだけなので、ファイルに残したりログ取ったりはしていませんが。
->CGIソース

あくまで身内仕様につき不具合があっても知りません。
使用は自己責任で。

path of drm2wmv_e

paste key from FairUse4WM




参考:FairUse4WMとdrm2wmv_eの合わせ技でDRMを解除

1.
スクリプトの置き場所を決める。
今回はC:\Documents and Settings\user にしてみる

2.
ファイルを2つ作る。
・CheckLastModified.bat
・CheckLastModified.vbs

3.
それぞれのファイルの中は次のとおり。

CheckLastModified.bat
--ここから--
@echo off
cscript /nologo "C:\Documents and Settings\user\CheckLastModified.vbs"
PAUSE
--ここまで--

CheckLastModified.bat
--ここから--
'監視したいフォルダを指定`
Directory = "C:\Documents and Settings\"
'何時間以内の更新情報を取得するか指定(単位:h)
df = 24
'ここから下は変更の必要なし
dtNow = Now()
Set sss = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(Directory)
wscript.echo ""
wscript.echo f.Path & " 内 " df & "時間以内に更新されたファイルとディレクトリ"
wscript.echo ""
wscript.echo " 現在時刻:" & dtNow
wscript.echo ""
ShowModified(f)
Sub ShowModified(f)
For Each objFile In f.Files
If DateDiff("h",objFile.DateLastModified,dtNow) < df Then
wscript.echo " " & objFile.DateLastModified & " " & f.Path & "\" & objFile.Name
End If
Next
For Each objSubFolder In f.SubFolders
ShowModified(objSubFolder)
Next
End Sub
wscript.echo ""
--ここまで--

4.
使い方
CheckLastModified.bat をダブルクリックすると、プロンプトが開いてファイルの一覧が表示される。
サブフォルダを大量に含む場合は少し待たされるはず。Cドライブを直接指定したりすると悲惨なことになりそう。

5.
応用
DateDiff("h",objFile.DateLastModified,dtNow)
が、現在時刻との差を求める関数なので、
df = 15 としたうえで DateDiff("n",objFile.DateLastModified,dtNow) とすれば
15分以内に更新されたファイルが表示される。
同様にdf = 3 としたうえで DateDiff("d",objFile.DateLastModified,dtNow) で
3日以内に更新されたファイルが表示される。
ログフォルダやsamba共有フォルダの監視あたりで使えそう?
当然ながら、sambaを提供しているサーバーとローカルマシンの時刻が、大幅にずれている場合は結果に影響が出る。

CheckLastModified.batへのショートカットをデスクトップに置くか、タスクなどで定期的に実行させることで手軽に監視できる。

CheckLastModified.batを
cscript /nologo "C:\Documents and Settings\user\CheckLastModified.vbs" > "D:\web\root\status.txt"
のようにリダイレクトすると、結果をファイルに書き出すことができる。
htmlタグを埋め込んでWWWサーバーに置いてみたり、メールで定期的に送信したりするのもよいかと。

6.
発展
監視フォルダおよび何時間、の部分を引数にすることで汎用化できるはず。

7.
注意
CheckLastModified.vbs自体を実行してしまうと1行につき1回ずつダイアログボックスで表示される。
とてもウザいのでやらないように。

何かあるたびにキーボードを認識してくれなくて困るので、自分用メモ。

\ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ i8042prt \ Paremeters
LayerDriver JPN
の、内容を
kbd101.dllに。


参考:http://yattirin.com/archives/2006/10/106lhhco.html


autorun.inf:

[autorun]
OPEN=自動起動するプログラムファイル名

*この仕組みで起動できるのはプログラム(exe)のみ。


html を開くには、フリーソフト 「ShellExec.exe」あたりを併用します。

[autorun]
OPEN=ShellExec.exe index.html

と記述したうえで、html ファイルとともに ShellExec.exe もCDに保存。

[autorun]
OPEN=ShellExec.exe index.html
ICON=アイコンファイル.ico
としてアイコンファイルも保存すれば、CD挿入時にドライブのアイコンとして表示される。


autorun.inf を自分で書くのが面倒なとき用。
autorun.inf-作成ウイザード

HKEY_CURRENT_USER \Software \Microsoft \Windows \CurrentVersion \UnreadMail

UnreadMail キーを右クリックし、アクセス許可をクリック。

SYSTEM アカウントをクリックし、フルコントロールの「拒否」にチェックしてOKをクリック。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer

link の値を 00 00 00 00 に変更

レジストリエディタでHKEY_CLASSES_ROOTキーを開く。

「新規作成」に出てくるファイルタイプの拡張子を探し、ShellNewキーを削除。

例えば、「新規作成」の「テキスト ドキュメント」を削除したい場合は、HKEY_CLASSES_ROOT\.txt\ShellNewキーを削除する。

ショートカットを作成した場所で右クリックし、「新規作成」-「ショートカット」と進む。

項目の場所に

%windir%\System32\shutdown.exe -s -t 0 

と入力。名前は任意で。

 

ちなみにログオフは%windir%\System32\shutdown.exe -l -f 

再起動は%windir%\System32\shutdown.exe -r -f -t 0 

 

Powered by Movable Type 4.1