※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

@あれこれ-2009年5月



[2009-05-22]

逸れたついでに Clock Launcher はてなブックマークに登録


USB メモリ用ランチャーもキーボードで操作できなきゃ、ってわけで Clock Launcher
ホットキーで呼び出し、メニューにアクセスキーが使える(#1)。
  #1 ランチャメニューアイテムそれぞれにもホットキーを設定できるけど、
    覚えられない思い出せないのが明白なので未設定。

ClockLauncher.jpg

Clock Launcher のランチャアイテムリスト設定保存ファイル中のアイテムのパスを
一気に相対パスに書き換える AHK。Unicode 対応 AutoHotkey_L 推奨。
アイテムを相対パスで登録可能で、絶対パス→相対パス変換ボタンが付いているのに、
ついうっかり(?)変換し忘れたアイテムがいっぱいある人(私)向け。

  • 相対パスの取得と2つのパス名の先頭から共通するディレクトリ名を取得する関数は AutoHotkey スレッド part6 からの戴きもの。
  • ドライブをまたぐ(別ドライブにある)場合は相対パスにはできないので変換しない。
  • ファイルの中の文字列一括置換には「 文字列置換 」を使用。対応は Shift-jis のみだけど、コマンドラインから簡単に使えて便利なのでパスが通ったところに置くべし。
  • 絶対パスらしきもののみ見るので、設定ファイル中に相対パスが混在していてもおっけ。
  • 念のために、元の設定ファイルはリネームして保存。

PathRelativePathToA.ahk
basedir := "D:\Application\tools\claunch_" ;基準ディレクトリ
inifile = %basedir%\itemlist.ini ;アイテムリスト設定ファイル

;設定ファイルをバックアップ(日付を付けてリネーム)
FormatTime, date, , yyyyMMdd
FileCopy, %inifile%, %basedir%\%date%_itemlist.ini, 1 ;同名上書き

;設定ファイル書き換え
Loop, Read, %inifile%
  {
    IfInString, A_LoopReadLine, :\
      {
        StringTrimLeft, Apath, A_LoopReadLine, 8 ;パスを抜き出す
        From := basedir
        To := Apath
        ;属性取得 
        FileGetAttrib, AttribF, %From% 
        IfInString, AttribF, D ;ディレクトリだったら
            atrFrom := "0x10"
        IfInString, AttribF, A ;ファイルだったら
            atrFrom := "0x20"
        FileGetAttrib, AttribT, %To% 
        IfInString, AttribT, D
            atrTo := "0x10"
        IfInString, AttribT, A
            atrTo := "0x20"
        ;ベース・ターゲットパスの先頭から共通するディレクトリ名を取得
        p1 := From
        p2 := To
        root := Path_CommonPrefix(p1, p2)
        if (root := !root)  ;別のドライブだったら絶対パス
            rPath := To
        else
            ;相対パスを取得
            rPath := Path_RelativePathTo(From,atrFrom,To,atrTo)
        ;設定ファイルの中の絶対パスを一括置換
        Run, %comspec% /c chikan.exe "%inifile%" "%To%" "%rPath%",
            ,Hide
        Sleep, 200
      }
  }
  MsgBox, 相対パス変換 完了!
  Return

;----AutoHotkey スレッド part6 539 からの頂きもの----
;相対パスの取得関数
Path_RelativePathTo(From,atrFrom,To,atrTo) 
 ;   相対パスを作成
 ;   From : ベースパス 
 ;   To   : 相対にするパス 
 ;   atr  : ファイル属性を指定 
 ;          ディレクトリ 0x10 (FILE_ATTRIBUTE_DIRECTORY) 
 ;          ファイル     0x20 (FILE_ATTRIBUTE_ARCHIVE) 
 { 
     VarSetCapacity(t,260,0) 
     DllCall("SHLWAPI.DLL\PathRelativePathToA", Str,t , str,From,
              Uint,atrFrom, str,To, Uint,atrTo) 
     return t 
 }

;共通ディレクトリ名取得関数
Path_CommonPrefix(p1, p2)
 ;  2つのパス名の先頭から共通するディレクトリ名を取得する 
 { 
     VarSetCapacity(t,260,0) 
     DllCall("SHLWAPI.DLL\PathCommonPrefixA", Str,p1, Str,p2, str,t) 
     Return t 
 }

ExitApp

[2009-05-17]

話は逸れて USB メモリ用ランチャー はてなブックマークに登録

Appetizer
Dock 型アプリケーションランチャ。 PortableApps アプリを取り込み可能。
日本語対応。 日本語ヘルプ
以下、ZIP 版(Portable 版)使用。

Appetizer から PortableApps アプリを起動

初回起動時または「ショーカットのインポート」ボタンから PortableApps のアプリの
取り込みが可能だが、 Appetizer PortableApps がローカル HDD にある場合は
グレーアウト。(両方ともがリムーバブル ディスク内に無いとダメ。)
オートランファイルのインストールも不可。当然ですな。

1、USB に PortableApps をインストール
[参照]ボタンで USB ドライブ(リムーバブル ディスク)ルートを指定する(例 I:\)
既に Autorun.inf が存在するとスキップされる(インストール時に作成されない)。

2、 PortableApps の設定や各アプリをコピー
設定をやり直すのがめんどいのでローカル HDD から以下をそのままコピー
(各種設定が相対パスになっていることを確認してからね。)

\PortableApps\PortableApps.com\Data
\PortableApps\Notepad++Portable
\PortableApps\Notepad++euc-jp

3、 Appetizer を USB ドライブに展開
4、[ショートカットのインポート] ボタンから PortableApps を取り込み
5、Autorun.inf を作成(既存のものは上書きされる)
  "Move to group" menu item プラグインを有効にし、
  グループ等を設定(新規グループ作成→アイコン右クリックメニューから移動)
  ホットキーを設定

Appetizer.jpg

PortableApps のデータフォルダを 「あふw」 で開くようにする

ユーザが作成した任意のフォルダでも。

Unicode を扱わないのであれば通常版「あふ」でいいのだけど、せっかく三種の神器が
出揃ったので。( Yet Another あふこまんどw AFXW.KEY 暫定対応 K3KEYAFX
「あふw」対応「あふすくりぷた」

1、 「あふw」 を USB に展開、yaafxwcmd.exe を「あふw」フォルダにコピー
2、フォルダアイコンのコンテキストメニューから[プロパティ]ダイアログ
  yaafxwcmd.exe のパスと「あふw」に渡すパラメータを指定

名前: Documents (#1)
場所: $(Drive)\afxw\yaafxwcmd.exe
パラメータ: -s -p "\Documents" (#2)
アイコン: PortableApps\PortableApps.com\App\DefaultData\FolderIcons\
     documents.ico

 #1:グループアイコンのコンテキストメニューのみ頭文字アクセスキーが有効

 #2:パラメータにパスを指定する時は、ドライブルートからの相対パスでいいみたい。
   ちなみに、「あふw」のショートカットを登録する時に、パラメータで
-s -L"\afxw" -R"\afxw"
   みたいに起動時のディレクトリを指定しておけば別の PC に USB メモリを挿して
   ドライブレターが変わり、「装着の準備ができていません」て怒られなくてすむ。


-