CraftLaunch + だいなファイラでスラッシュ(/)区切りのパス取得
2012-09-24-1 / カテゴリ: [アプリ][win] / [permlink]

だいなファイラーの基本機能に「対象のフルパス名をクリップボードにコピー」があってかなり便利なんだけど、ディレクトリセパレータが逆スラッシュ(\)なんだよね。
んで、今月入れ替えたCraftLaunch 3.xAPIリファレンスに、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だった。(うちの環境の場合)

続きを読む

nkfでエンコード変更して上書き保存
2011-02-22-2 / カテゴリ: [win][cygwin] / [permlink]

--overwrite または --in-place する。
% 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はあるので
% make
% make test
% make install
で /usr/local 以下にインストールされる。
インストール先を変えたければ Makefile の prefix をイジればいいはず(未確認)

レジストリの参照/更新
2010-02-01-1 / カテゴリ: [programming][win][perl] / [permlink]

Win32::Registryを使う
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
DWORD4
複数行テキスト7
みたい。

ActivePerlなら、html/lib/Win32/Registry.html あたりにドキュメントあるのでそっち参考。
ちょっと情報量少ないけど…。
よくわからなければ、Dumper で見れば問題ない :p

キーコードの送信
2007-07-18-2 / カテゴリ: [programming][win][c] / [permlink]

キーボードエミュレーション、とでも言うのかな。
キーボードの入力をプログラムで行う。
winuser.h を include する。
続きを読む

WinXP SP2 にインストール(TAPでNAT)
2007-04-03-1 / カテゴリ: [win][linux][coLinux] / [permlink]

バージョン:0.6.4
異動してUNIX/Linuxから遠のいて1年、いい加減つらくなってきたので入れてみた。
coLinuxのメモを見ればほぼ事足りる。
続きを読む

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]
続きを読む

対応する括弧へジャンプ(VC2003.net)
2007-03-05-1 / カテゴリ: [win][programming][VC++] / [permlink]

Ctrl-]
VC6.0と同じだけど、6.0はCtrl-Eばっか使ってたからわからなかった。
[2005-11-30-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 の
# Make sure we start in home unless invoked by CHERE
if [ ! -z "${CHERE_INVOKING}" ]; then
  unset CHERE_INVOKING
else
  cd "${HOME}"
fi
cd "${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
:
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のアドレスは取れないっぽいなぁ。
Referrer (Inside): [2007-02-26-1]

WSHを始めよう @IT
2007-02-19-1 / カテゴリ: [win][link] / [permlink]

めも
WSHを始めよう - @IT
標準 Meadow だとモードがないなぁ。

パワーポイントで作成した図をワードに綺麗に貼り付けるには
2006-12-14-3 / カテゴリ: [win][office][word] / [permlink]

パワーポイントで図を作成して、全部選択->コピー・ワードで貼り付けると、位置がかなりずれてしまう。
が、一度 Visio に貼り付け、選択・コピーしてワードにペーストすると、レイアウトが崩れることなく貼り付け可能。

初めから Visio で描けって? ごもっとも…

ActivePerlはワイルドカード&<>が使えん
2006-12-14-2 / カテゴリ: [win][programming][perl] / [permlink]

解析用使い捨てコードを書くときにいつもtypeするテンプレート↓
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 を使用する。

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]

cpan> install GD::Barcode::QRcode
cpan> install GD
cygwin環境での 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%
未指定時は 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)は結構高速…。デコードエンジンのつくりかな…
Referrer (Inside): [2007-02-27-1]

ファイルが依存しているライブラリの表示
2006-11-17-2 / カテゴリ: [win][cygwin] / [permlink]

linux だと ldd を使うとこだけど、cygwin には ldd がない。
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
カテゴリ: win / 1 2 3 4 5 6 7 8 9 次ページ

最終更新時間: 2013-05-02 16:12