見たものを放り込んだり、あと文章書く。
プロセスIDを指定して実行ファイルパスを得る
;------------------------------------------------------- ; プロセスIDを指定して実行ファイルパスを得る ; 対象: NT系 / AHK v1.0.34以降 ; in pid プロセスID ; 戻り値 : 実行ファイルパス ;------------------------------------------------------- getProcessExeNameNT(pid) { ; 参考: http://cgi19.plala.or.jp/lukewarm/news/2005_05.html#14 ; (ほぼそのまま) hModule=0 dwNeed=0 l=0 max:=VarSetCapacity(s,256) ; プロセスのハンドルを取り出す hProcess := DllCall("OpenProcess", Int,0x001F0FFF, Int,0, Int,pid, Int) ; このプロセスの全てのモジュールのリストの最初の1個を取得する ; BOOL EnumProcessModules(HANDLE hProcess, MODULE *lphModule, DWORD cb, LPDWORD lpcbNeeded); if(DllCall("psapi\EnumProcessModules", Int,hProcess, IntP,hModule, Int,4, UIntP,dwNeed, Int)) { ; DWORD GetModuleFileNameEx(HANDLE hProcess, HMODULE hModule, LPTSTR FileName, DWORD FileNameSize); l:=DllCall("psapi\GetModuleFileNameExA", Int,hProcess, Int,hModule, Str,s, Int,max, Int) } StringLeft,s,s,l ; 開けたら閉める DllCall("psapi\CloseProcess", Int,hProcess) return s }
具体的には
open_folder_command=$exec("ExternalFileManager.exe" "%1")
open_folder_path_command=$exec("ExternalFileManager.exe" "$parent(%1)")
ExternalFileManager.exeを外部ファイルのフルパスに置き換え、INIファイルの最終行に追加し保存する。
文字列の切り取りは substring() です。覚えているでしょうか? フォームを使ったメッセージ処理のステップで頻繁に使ったやつです。(Step.9参照)これと、indexOf() を組み合わせて、バージョンの部分を取り出します。
indexOf() は、パラメータで指定した文字を検索します。
myAgent = navigator.userAgent ;
myTop = myAgent.indexOf ( "MSIE" , 0 ) ;
この場合、myAgent に "MSIE" という文字があるか、調べます。indexOf() の第2パラメータは検索開始位置です。左端から、0から数えていきます。つまり、0は、最初からということです。"MSIE"という文字が含まれていたら、"M"の文字位置を myTop に戻します。含まれていなければ、-1 を戻します(-1がセットされます)。
ここで、-1以外の数値(つまり、"M"の文字位置)が入っていたら、このブラウザはIEであるということです。
取り出したいのは、"MSIE"のとなりにある "4.01" ですから、切り取る開始位置は、myTop + 5 番目となります。切り取る最終位置は、バージョンの後ろについているセミコロン( ; )までとして、
myLast = myAgent.indexOf ( ";" , myTop+5 );
となります。(myTop+5 でも myTop でも OK) 要するに、第2パラメータの検索開始位置を0にしてしまうと、"4.01;"より前の、"compatible;"のセミコロンの位置を取得してしまいます。要するに最初に検索したキーの位置を返してきます。
myTop = myAgent.indexOf ( "MSIE" , 0 );
myLast = myAgent.indexOf ( ";" , myTop );
myVer = myAgent.substring ( myTop+5 , myLast ) ;
よって、IEのバージョン (例:"4.01") を取り出しました。同じような感じで、NNのバージョン (例:"4.04") も取り出します。
myTop = myAgent.indexOf ( "Mozilla/" , 0 );
myLast = myAgent.indexOf ( " " , myTop );
myVer = myAgent.substring ( myTop+8 , myLast );
どこからどこまでの文字を取り出すかの範囲を substring( ) のカッコ内にパラメータとして受け渡します。
myString.substring( 開始位置 , 終了位置+1 ) となります。開始位置は、文字列の先頭をゼロから数えて何番目の文字から取り出すかを指定します。
終了位置は、文字列の先頭をゼロから数えて何番目の文字までを取り出すかを指定します。終了位置には指定した位置に1を足します。(要するに終了位置は先頭を1から数えた方がはやいですね。^^; )
キャレットの位置
ただ、業種の選別にはうるさいようだ。「間違っても脱サラしてコンビニのFCオーナーとかにはなってはいけない」とし、「利益率の高い商売、在庫をできるだけ持たない商売、月極めで定額の収入が入る商売、大資本の要らない商売、の全部を兼ね備えている商売」がオススメとしている。
僕の住んでるアパートに、幽霊が出た。
「…こんにちは。どちらさま?」
「…この部屋に30年くらい住んでる者よ」
草木も眠る丑三つ時。挨拶を間違えたと気づいたのは返事をもらった後だった。
初めて見る幽霊は、全然怖くなかった。
それは20後半くらいに見える、女性の幽霊だった。
「何でこの部屋に?」
「この部屋で死んだからにきまってるじゃない。首を吊って」
この部屋が曰く付きだなんて、不動産屋は教えてくれなかったぞ。くそ。
「早く成仏した方がいいと思うけど」
「あなたに言われる筋合いはないと思うけど」
ともかく、暇に任せて僕たちは少し話をすることにした。
全然眠れる気分じゃなかったし、その女性も何か話をしたがってるみたいだったから。
その女性は、名前をxxといって、僕の5代くらい前にこの部屋に住んでたらしい。
嫌な人がいて、その人に復讐するために死んだ、と言った。
その人に自分のせいで死んだと思わせれば、後悔っていう一生の傷を残すことができると思って。
「ふーん」と相槌を打ちながら、でも僕は、そういう感じに気に病むひとって実はあんまり多くないんじゃないかな、と思っていた。
特に人を死ぬほどに追い込む人には。口には出さなかったけど。
「ところで、僕結構長くこの部屋に住んでるけど、今までずっと会わなかったよね。なんでだろう?」
「私にはずっとあなたが見えてたわ。それに、どうせ生きてる人に幽霊は見えないじゃない」
ああ、そうだ。僕昨日死んだんだった。首を吊って。
Page 1 of 31