CraftLaunch + だいなファイラでスラッシュ(/)区切りのパス取得
2012-09-24-1 / カテゴリ: [アプリ][win] / [permlink]
だいなファイラーの基本機能に「対象のフルパス名をクリップボードにコピー」があってかなり便利なんだけど、ディレクトリセパレータが逆スラッシュ(\)なんだよね。
んで、今月入れ替えたCraftLaunch 3.xのAPIリファレンスに、normPath(path)というディレクトリセパレタの\と/を入れ替えるAPIがあったのでなんとか組み合わせて/区切りのフルパスが取得できないかと設定組み立ててみた。
だいなファイラの設定は、外部コマンドに
みたいに設定。
で、この外部コマンドにショートカットキー割り当てればオーケー
スクリプトは、コマンド "_setslash" の呼び出し時にパスを引数で渡すように(だいなの--execute="_setslash;$F"の部分)して、自作関数の set_slash_path(arg) で normPath() を呼んでから、setClipboardText()で結果をクリップボードにセットする。
はじめは arg[0] を直接 normPath() に入れてたけど、日本語を含むパスで
んで、今月入れ替えたCraftLaunch 3.xのAPIリファレンスに、normPath(path)というディレクトリセパレタの\と/を入れ替えるAPIがあったのでなんとか組み合わせて/区切りのフルパスが取得できないかと設定組み立ててみた。
--- config.py.bak 2012-09-05 20:23:16.801325800 +0900 +++ config.py 2012-09-24 21:05:18.610191100 +0900 @@ -152,2 +152,10 @@ + # ディレクトリセパレタ"/"でのフルパスの取得 + # dynaで以下のコマンド登録する + # 実行ファイル: c:\local\appli\clnch\clnch.exe + # パラメタ: --execute="_setslash;$F" + def set_slash_path(arg): + setClipboardText(normPath(arg[0].decode("utf8"))) + window.launcher.command_list += [ ( u"_setslash", set_slash_path ) ] + # リストウインドウの設定処理
だいなファイラの設定は、外部コマンドに
名前 | setclippath(任意) |
実行ファイル | CraftLaunchのパス |
パラメタ | --execute="_setslash;$F" |
で、この外部コマンドにショートカットキー割り当てればオーケー
スクリプトは、コマンド "_setslash" の呼び出し時にパスを引数で渡すように(だいなの--execute="_setslash;$F"の部分)して、自作関数の set_slash_path(arg) で normPath() を呼んでから、setClipboardText()で結果をクリップボードにセットする。
はじめは arg[0] を直接 normPath() に入れてたけど、日本語を含むパスで
'ascii' codec can't decode byte 0xe3 in position 28: ordinal not in range(128)見たいなエラーがコンソールに出力されてパスのコピーが実行されなかったので、明示的にエンコードを utf8 と指定した。(だいなファイラがutf8版の場合だから?SJIS版は未確認)
CraftLaunch 3.x に移行
2012-09-01-1 / カテゴリ: [アプリ][win] / [permlink]
10年以上 CraftLaunch ってランチャアプリ使ってるんだけど、バージョンずっと古いまま(2.04)だったので、いい加減最新版(3.x)に移行してみた。
《続きを読む》
win7にBitNami Redmine Stackを入れたら503エラーで動作しない
2012-06-17-1 / カテゴリ: [win] / [permlink]
結論から言うと、MeadowのインストールについてきたImageMagickと競合してた。
Meadowの通常インストール時にPATHシステム環境変数にMeadow版ImageMagickが含まれるので、これをユーザ環境変数へ移動すればOKだった。(うちの環境の場合)
Meadowの通常インストール時にPATHシステム環境変数にMeadow版ImageMagickが含まれるので、これをユーザ環境変数へ移動すればOKだった。(うちの環境の場合)
《続きを読む》
nkfでエンコード変更して上書き保存
2011-02-22-2 / カテゴリ: [win][cygwin] / [permlink]
--overwrite または --in-place する。
--overwrite はタイムスタンプを変更しない。
--in-place はタイムスタンプが更新される。
-w は utf-8 へ変更
% find . -name "*.java" | xargs nkf -w --overwriteデフォルトだと標準出力へエンコード変更結果を出力するけど、find|xargsと組み合わせて複数ファイル一気に変更、なとき。
--overwrite はタイムスタンプを変更しない。
--in-place はタイムスタンプが更新される。
-w は utf-8 へ変更
ソースからnkfインストール
2011-02-22-1 / カテゴリ: [win][cygwin] / [permlink]
[2005-12-21-3]の日記だと、http://cygwin-je.sourceforge.jp/cygwin_je/ からパッケージインストールしてたみたいだけど、今試したら setup.bz2.sig がないなどエラーになってインストールできなかったので結局makeした。
ソースは http://sourceforge.jp/projects/nkf/ から。
今日の時点で ver 2.1.1 (2010-09-13版)
wget すると、すでにMakefileはあるので
インストール先を変えたければ Makefile の prefix をイジればいいはず(未確認)
ソースは http://sourceforge.jp/projects/nkf/ から。
今日の時点で ver 2.1.1 (2010-09-13版)
wget すると、すでにMakefileはあるので
% make % make test % make installで /usr/local 以下にインストールされる。
インストール先を変えたければ Makefile の prefix をイジればいいはず(未確認)
レジストリの参照/更新
2010-02-01-1 / カテゴリ: [programming][win][perl] / [permlink]
Win32::Registryを使う
サブキーの取得
regeditで言えば、左部ツリーの'HKEY_CURRENT_USER/Software/zzz'以下のサブキーのリストが取れる
キーの名前・データの取得
キーの名前 => [ キーの名前, 型, キーのデータ]
キーの更新(なければ新しく作られる)
終了
型は、見た感じ
みたい。
ActivePerlなら、html/lib/Win32/Registry.html あたりにドキュメントあるのでそっち参考。
ちょっと情報量少ないけど…。
よくわからなければ、Dumper で見れば問題ない :p
use Win32::Registry; my $tips; $::HKEY_CURRENT_USER->Open('Software\\zzz', $tips) or die "cannot open registry";
サブキーの取得
regeditで言えば、左部ツリーの'HKEY_CURRENT_USER/Software/zzz'以下のサブキーのリストが取れる
my @subkeys; $tips->GetKeys(\@subkeys);
キーの名前・データの取得
my %vals; $tips->GetValues(\%vals);%vals にはarrayrefのハッシュが入る。
キーの名前 => [ キーの名前, 型, キーのデータ]
キーの更新(なければ新しく作られる)
$tips->SetValueEx(キーの名前, 0, 型, キーのデータ);
終了
$tips->Close();
型は、見た感じ
文字列 | 1 |
バイナリ | 3 |
DWORD | 4 |
複数行テキスト | 7 |
ActivePerlなら、html/lib/Win32/Registry.html あたりにドキュメントあるのでそっち参考。
ちょっと情報量少ないけど…。
よくわからなければ、Dumper で見れば問題ない :p
cygwin/MinGW で Windows GUIアプリ
2007-03-14-1 / カテゴリ: [programming][win][cygwin][c] / [permlink]
朝、目覚まし時計に反応できるようになった今日この頃。2度寝しないように「うりゃ!」と叫んでなんとか頑張ってる。
cygwin の gcc でも、WinMain 関数で普通にコンパイルできるのね。
-mno-cygwin オプションで、cygwin1.dll をリンクしないネイティブアプリ、
-mwindows オプションで、GUIアプリができる。
(-mwindows がないと、exe実行時にコマンドプロンプトも表示されてしまう)
関連:bcc でWindowsプログラミングのコンパイル[2005-08-01-1]
cygwin の gcc でも、WinMain 関数で普通にコンパイルできるのね。
-mno-cygwin オプションで、cygwin1.dll をリンクしないネイティブアプリ、
-mwindows オプションで、GUIアプリができる。
(-mwindows がないと、exe実行時にコマンドプロンプトも表示されてしまう)
関連:bcc でWindowsプログラミングのコンパイル[2005-08-01-1]
《続きを読む》
だいなファイラのパスでcygwinのzshをckで起動
2007-03-02-1 / カテゴリ: [アプリ][cygwin][win] / [permlink]
参考:Project HeavyMoon. :: ごく些細な Tips 集
だいなファイラー DYNA
ck - terminal emulator
だいなの外部コマンドに
名前(N):ck
実行ファイル(E):cmd.exe
パラメータ(P):/c start /d "$D" "zsh" C:\cygwin\bin\zsh.exe --login -c ck.exe
を登録する。($D はディレクトリ名のマクロ)
んで、この外部コマンドを適当にキーアサイン。
で、このままだと zsh 起動時のディレクトリが ~ になってしまうので、/etc/zprofile の
これで、だいなからアサインしたキーをタイプすれば、だいなのカレントで zsh@ck が起動する。
c:\cygwin\usr\local で実行すれば /usr/local
c:\windows\system32 で実行すれば /cygdrive/c/windows/system32
(~/work に c:\documents and settings\zaki\My Documents をマウントしてれば) c:\documents and settings\zaki\My Documents で実行すれば ~/work になる。
cmd.exe や ckw をだいなのカレントで実行したいときは、実行ファイルにcmd.exe や ckw の実行ファイルを指定・パラメータ無し・実行時ディレクトリをカレントウィンドウのディレクトリにすればOK
だいなじゃなくても、
cygwinの素のターミナルやrxvtは参考ページに書いてある。
何年も使ってるのに、よーやく連携できるようになったか。
だいなファイラー DYNA
ck - terminal emulator
だいなの外部コマンドに
名前(N):ck
実行ファイル(E):cmd.exe
パラメータ(P):/c start /d "$D" "zsh" C:\cygwin\bin\zsh.exe --login -c ck.exe
を登録する。($D はディレクトリ名のマクロ)
んで、この外部コマンドを適当にキーアサイン。
で、このままだと zsh 起動時のディレクトリが ~ になってしまうので、/etc/zprofile の
# Make sure we start in home unless invoked by CHERE if [ ! -z "${CHERE_INVOKING}" ]; then unset CHERE_INVOKING else cd "${HOME}" ficd "${HOME}"の部分をコメントアウトする。
これで、だいなからアサインしたキーをタイプすれば、だいなのカレントで zsh@ck が起動する。
c:\cygwin\usr\local で実行すれば /usr/local
c:\windows\system32 で実行すれば /cygdrive/c/windows/system32
(~/work に c:\documents and settings\zaki\My Documents をマウントしてれば) c:\documents and settings\zaki\My Documents で実行すれば ~/work になる。
cmd.exe や ckw をだいなのカレントで実行したいときは、実行ファイルにcmd.exe や ckw の実行ファイルを指定・パラメータ無し・実行時ディレクトリをカレントウィンドウのディレクトリにすればOK
だいなじゃなくても、
cmd.exe /c start /d "カレントにしたいwinのパス" "zsh" C:\cygwin\bin\zsh.exe --login -c ck.exeを起動するショートカットで大丈夫かな。
cygwinの素のターミナルやrxvtは参考ページに書いてある。
何年も使ってるのに、よーやく連携できるようになったか。
カスタムウィザードで作成するプロジェクトのリンクファイルのデフォルト設定を追加(VC2003.net)
2007-02-23-2 / カテゴリ: [win][programming][c][VC++] / [permlink]
Vc7/VCWizards/[ウィザード名]/Script/1033/default.js
参考
VC++6.0のカスタムウィザードをVC++.NETに移行する(の日本語訳)
(タイトルの日本語がおかしいので訳した)
追記
1033(英語) じゃなくて 1041(日本語)のウィザードもあった。
複数言語へのウィザードのローカライズ
: var LinkTool = config.Tools('VCLinkerTool'); : // これを追加 LinkTool.AdditionalDependencies="netapi32.lib";Debug用とRelease用みたいに複数ある場合は全部追加する。
参考
VC++6.0のカスタムウィザードをVC++.NETに移行する(の日本語訳)
(タイトルの日本語がおかしいので訳した)
追記
1033(英語) じゃなくて 1041(日本語)のウィザードもあった。
複数言語へのウィザードのローカライズ
MACアドレスの取得
2007-02-21-2 / カテゴリ: [programming][win][c] / [permlink]
イーサネット アダプタのMACアドレスを取得する
アプリケーションが一意に判断できる値を得る方法
Netbios というAPIを使用して取得できる。
netapi32.lib をリンクする必要アリ
ただ、ケーブルの刺さっていない非アクティブなNICのアドレスは取れないっぽいなぁ。
アプリケーションが一意に判断できる値を得る方法
Netbios というAPIを使用して取得できる。
netapi32.lib をリンクする必要アリ
ただ、ケーブルの刺さっていない非アクティブなNICのアドレスは取れないっぽいなぁ。
Referrer (Inside):
[2007-02-26-1]
パワーポイントで作成した図をワードに綺麗に貼り付けるには
2006-12-14-3 / カテゴリ: [win][office][word] / [permlink]
パワーポイントで図を作成して、全部選択->コピー・ワードで貼り付けると、位置がかなりずれてしまう。
が、一度 Visio に貼り付け、選択・コピーしてワードにペーストすると、レイアウトが崩れることなく貼り付け可能。
初めから Visio で描けって? ごもっとも…
が、一度 Visio に貼り付け、選択・コピーしてワードにペーストすると、レイアウトが崩れることなく貼り付け可能。
初めから Visio で描けって? ごもっとも…
ActivePerlはワイルドカード&<>が使えん
2006-12-14-2 / カテゴリ: [win][programming][perl] / [permlink]
解析用使い捨てコードを書くときにいつもtypeするテンプレート↓
面倒だけど、引数に正規表現を指定してもらって、内部は opendir/readdir で代替。
と思ったけど、@ARGV をループさせて glob/open すればよさげ。
案外これのほうが、<> の $. で行数が得られない(ひたすら加算される)とこが回避されていいかも。
while (<>) { }普段 cygwin only だから気付かなかったけど、(配布用にコード書いた時に気付いたけど)ActivePerl だとこの構文を使ったソース&次の使い方
> test.pl *.cppが無効ね。
Can't open *.cpp: Invalid argument at C:\Documents and Settings\hmiyazaki\My Documents\prog\perl\test.pl line 4.
面倒だけど、引数に正規表現を指定してもらって、内部は opendir/readdir で代替。
と思ったけど、@ARGV をループさせて glob/open すればよさげ。
foreach my $file (map { glob } @ARGV) { open F, $file or die; while (<F>) { # ここにコード } close F; }
案外これのほうが、<> の $. で行数が得られない(ひたすら加算される)とこが回避されていいかも。
ActivePerlでLF(0x0a)単体の出力
2006-12-14-1 / カテゴリ: [win][programming][perl] / [permlink]
ActivePerlだと、"\n"は当然、"\x0a"でも、出力時に 0x0d が着いちゃうんだよね。
0x0a 単体を出力するには、(UNIX/Linux作業時は半ばおまじないと化していた) binmode を使用する。
ファイルハンドル出力なら
もはや Windows 上での開発(C/C++)のソース解析・修正用にしか使ってないな・・・<Perl
0x0a 単体を出力するには、(UNIX/Linux作業時は半ばおまじないと化していた) binmode を使用する。
binmode STDOUT; print "\n";これで 0x0a 単体。
ファイルハンドル出力なら
open F, "> file.txt" or die; binmode F; print F "\n"; close F;
もはや Windows 上での開発(C/C++)のソース解析・修正用にしか使ってないな・・・<Perl
GD::Barcode::QRcodeでQRコード作成
2006-12-12-1 / カテゴリ: [携帯][win][cygwin][perl] / [permlink]
約1年明けての検証…[2006-01-10-2]
基本
ただし何のオプションも指定しない場合は、デフォルトのQRコードバージョン:1 になり、128bit以上の元データに対して
この状態でエンコードできるデータ量は単純に128/8==16バイトではなく、数値を与えるかasciiを与えるか等で指定可能バイト数が変化する。モジュール内部で対象データを自動判別している模様。
コンストラクタ時にQRコードバージョン・誤り訂正レベル・出力画像サイズが指定できるので、ハッシュのリファレンスでパラメタを与えてやる。
Ecc は誤り訂正レベル
未指定時は M になるっぽい。誤り訂正レベルを上位にすると、符号化できるデータ量は減少する。
Version は QR コードのバージョン
未指定時は1になるっぽい。バージョンをあげると符号化できるデータ量が増加し、画像も細かくなる。バージョン増加に伴い、出力画像のピクセル数も増加する。GD::Barcode::Qrcode では、縦横4ピクセルずつの余白が付加される。
バージョン(n)に対する出力画像の1辺のピクセル数(pixel)は次のよーな感じ。
pixel = 21 + ((n - 1) * 5)
バージョン1で21x21(余白を入れた画像の解像度は29x29)。以降、バージョンを1上げるごとに5ピクセル増加。1から40まで指定可能。
バージョン・誤り訂正レベルの組み合わせによる最大入力サイズはここ。
バージョンを上げると、生成するのにそれなりに負荷がかかる^^;
ModuleSize は出力画像の解像度の指定。余白を含めた画像サイズの倍率になる。未指定時・0指定時は1と同じ。縦横均等。
CGIでブラウザへの出力として使うには、(PNGであれば)HTTPヘッダで "Content-Type: image/png" を吐いて、plot()->png() を出力させれば良い(はず。未確認)。
参考
CPAN: http://search.cpan.org/~kwitknr/GD-Barcode-1.15/Barcode.pm
QRコードの作り方〜バージョンの決定〜: http://www.denso-wave.com/qrcode/qrgene2.html
V603SHのQRコード認識能力はイマイチ。au(BREW3.1)は結構高速…。デコードエンジンのつくりかな…
cpan> install GD::Barcode::QRcode cpan> install GDcygwin環境での GD のビルドには libgd-devel パッケージ(cygwinパッケージ)が必要(gdも?)
基本
use GD::Barcode::QRcode; binmode STDOUT; print GD::Barcode::QRcode->new('foobarbaz')->plot->png;とりあえずこれで、PNGのバイナリが出力される。(結果はリダイレクトする)
ただし何のオプションも指定しない場合は、デフォルトのQRコードバージョン:1 になり、128bit以上の元データに対して
Overflow error. version 1 total bits: 132 max bits: 128とエラーになる(ので使い物にならない)。
この状態でエンコードできるデータ量は単純に128/8==16バイトではなく、数値を与えるかasciiを与えるか等で指定可能バイト数が変化する。モジュール内部で対象データを自動判別している模様。
コンストラクタ時にQRコードバージョン・誤り訂正レベル・出力画像サイズが指定できるので、ハッシュのリファレンスでパラメタを与えてやる。
my $qr = new GD::Barcode::QRcode->new( 'http://www.jp-z.jp/', { Ecc=>'L', Version=>2, ModuleSize=>2} ); print $qr->plot()->png();
Ecc は誤り訂正レベル
レベル | 訂正能力 |
L | 約7% |
M | 約15% |
Q | 約25% |
H | 約30% |
Version は QR コードのバージョン
未指定時は1になるっぽい。バージョンをあげると符号化できるデータ量が増加し、画像も細かくなる。バージョン増加に伴い、出力画像のピクセル数も増加する。GD::Barcode::Qrcode では、縦横4ピクセルずつの余白が付加される。
バージョン(n)に対する出力画像の1辺のピクセル数(pixel)は次のよーな感じ。
pixel = 21 + ((n - 1) * 5)
バージョン1で21x21(余白を入れた画像の解像度は29x29)。以降、バージョンを1上げるごとに5ピクセル増加。1から40まで指定可能。
バージョン・誤り訂正レベルの組み合わせによる最大入力サイズはここ。
バージョンを上げると、生成するのにそれなりに負荷がかかる^^;
ModuleSize は出力画像の解像度の指定。余白を含めた画像サイズの倍率になる。未指定時・0指定時は1と同じ。縦横均等。
CGIでブラウザへの出力として使うには、(PNGであれば)HTTPヘッダで "Content-Type: image/png" を吐いて、plot()->png() を出力させれば良い(はず。未確認)。
参考
CPAN: http://search.cpan.org/~kwitknr/GD-Barcode-1.15/Barcode.pm
QRコードの作り方〜バージョンの決定〜: http://www.denso-wave.com/qrcode/qrgene2.html
V603SHのQRコード認識能力はイマイチ。au(BREW3.1)は結構高速…。デコードエンジンのつくりかな…
Referrer (Inside):
[2007-02-27-1]
ファイルが依存しているライブラリの表示
2006-11-17-2 / カテゴリ: [win][cygwin] / [permlink]
linux だと ldd を使うとこだけど、cygwin には ldd がない。
cygwin 環境では cygcheck を使う。
cygwin 環境では cygcheck を使う。
$ cygcheck ls Found: C:\cygwin\bin\ls.exe C:/cygwin/bin/ls.exe C:\cygwin\bin\cygwin1.dll C:\WINDOWS\system32\ADVAPI32.DLL C:\WINDOWS\system32\ntdll.dll C:\WINDOWS\system32\KERNEL32.dll C:\WINDOWS\system32\RPCRT4.dll C:\cygwin\bin\cygintl-8.dll C:\cygwin\bin\cygiconv-2.dll $ cygcheck c:/WINDOWS/system32/ftp.exe c:/WINDOWS/system32/ftp.exe c:/WINDOWS/system32\msvcrt.dll c:/WINDOWS/system32\KERNEL32.dll c:/WINDOWS/system32\ntdll.dll c:/WINDOWS/system32\ADVAPI32.dll c:/WINDOWS/system32\RPCRT4.dll c:/WINDOWS/system32\USER32.dll c:/WINDOWS/system32\GDI32.dll c:/WINDOWS/system32\WS2_32.dll c:/WINDOWS/system32\WS2HELP.dll c:/WINDOWS/system32\MSWSOCK.dll
最終更新時間: 2013-05-02 16:12