gccでcygwin1.dllに依存しないようコンパイル
2006-11-17-1 / カテゴリ: [win][cygwin][c] / [permlink]
-mno-cygwin を付加する
$ gcc -mno-cygwin foobar.cこれでBCC要らない…のか?
$ cygcheck ./a .\a.exe C:\WINDOWS\system32\msvcrt.dll C:\WINDOWS\system32\KERNEL32.dll C:\WINDOWS\system32\ntdll.dll
ショートネーム・ロングネーム変換
2006-11-15-1 / カテゴリ: [win][perl] / [permlink]
Win32モジュール使用
あまり高速ではないみたいなので、一度に大量(フォルダ内の数千のファイルとか)を変換するときは、"dir /x"の結果を一度ハッシュに取得して、それを変換テーブルとして変換したほうがはるかに速い。
ただし、cygwin がインストール済み、coreutil パッケージがインストール済み、cygwin に$PATHを通している場合は、/bin/dir.exe を実行してしまってwindowsネイティブの"dir /x"が実行できないので、リネームするなどして実行できないようにしておく必要あり。
ひょっとしたら"あまり高速ではない"のは、数千のファイルがあるフォルダで実行したからかもしんない…が、時間がないので未検証…
use Win32; use Cwd; $pwd = cwd(); print $pwd, "\n"; $pwd = Win32::GetShortPathName($pwd); # ショートネーム(8.3形式)に変換 print $pwd, "\n"; $pwd = Win32::GetLongPathName($pwd); # ロングネームに変換 print $pwd, "\n";結果
C:/Documents and Settings/hmiyazaki/My Documents/prog/perl C:/DOCUME~1/HMIYAZ~1/MYDOCU~1/prog/perl C:/Documents and Settings/hmiyazaki/My Documents/prog/perl
あまり高速ではないみたいなので、一度に大量(フォルダ内の数千のファイルとか)を変換するときは、"dir /x"の結果を一度ハッシュに取得して、それを変換テーブルとして変換したほうがはるかに速い。
ただし、cygwin がインストール済み、coreutil パッケージがインストール済み、cygwin に$PATHを通している場合は、/bin/dir.exe を実行してしまってwindowsネイティブの"dir /x"が実行できないので、リネームするなどして実行できないようにしておく必要あり。
ひょっとしたら"あまり高速ではない"のは、数千のファイルがあるフォルダで実行したからかもしんない…が、時間がないので未検証…
特定条件のセル数をカウント
2006-11-14-2 / カテゴリ: [win][office][excel] / [permlink]
=COUNTIF(B2:B55, "c")セルB2〜B55の間の、セルが"c"になっているセルをカウント
=COUNTA(B2:B55)セルB2〜B55の間の、空以外のセルをカウント
=COUNTBLANK(B2:B55)セルB2〜B55の間の、空のセルをカウント
取り消し線のショートカット
2006-11-01-1 / カテゴリ: [win][office][excel] / [permlink]
[2006-08-01-2]
あった
でも、数字キーってタイプしにくいんだよな^^;
OfficeXP Office2003 で確認
あった
- Ctrl-1: セルの書式設定
- Ctrl-2: 太字(^bと同じ)
- Ctrl-3: 斜体(^iと同じ)
- Ctrl-4: 下線(^uと同じ)
- Ctrl-5: 取り消し線(ない)
でも、数字キーってタイプしにくいんだよな^^;
OfficeXP Office2003 で確認
iniファイルの読み書き
2006-09-13-1 / カテゴリ: [win][programming][c] / [permlink]
お手軽簡単。設定ファイルの読込み。
文字列の場合は
戻り値はstrに入った文字列長。
iniファイルへの書き込みは
数値を直接書くAPIはないので、sprintfあたりで文字列を生成して書き込む。
int n; n = GetPrivateProfileInt("Option", "foo", 100, "config.ini");で
[Option] foo=1024 bar=c:\winntなconfig.iniを読み込む。n は 1024 になる。(fooがなければ100)
文字列の場合は
char str[BUF]; GetPrivateProfileString("Option", "bar", "c:\\windows", str, sizeof(str), "config.ini");で、str に "c:\winnt" が入る(barがなければ c:\windows)
戻り値はstrに入った文字列長。
iniファイルへの書き込みは
WritePrivateProfileString("Option", "baz", "qux", "config.ini");config.iniのセクション"Option"に"baz=qux"を書く。セクション・キーがなければ新規に作成される。成功すれば0以外、失敗は0が返る。キー名をNULLにすればセクションが、値をNULLにすればキーが削除される。
数値を直接書くAPIはないので、sprintfあたりで文字列を生成して書き込む。
BCCで文字コード変換
2006-09-08-1 / カテゴリ: [win][programming][c] / [permlink]
とゆーアレで。
普段ならPerlでJcodeなり使ってとっとこやるとこだけど、妹さん(winユーザ)からアプリ(数千通のメールの集計処理)のリクエストなのでPerlインタプリタは候補からはずれる。
BCC(Borland C++ Compiler)で文字コードを変更する必要が。
ざっと検索した感じでは、iconvのWindows用DLLが使えそう。
普段ならPerlでJcodeなり使ってとっとこやるとこだけど、妹さん(winユーザ)からアプリ(数千通のメールの集計処理)のリクエストなのでPerlインタプリタは候補からはずれる。
BCC(Borland C++ Compiler)で文字コードを変更する必要が。
ざっと検索した感じでは、iconvのWindows用DLLが使えそう。
《続きを読む》
録画予約待機中のサスペンド
2006-06-23-1 / カテゴリ: [win] / [permlink]
クロサギ最終回(つっても、6〜7話くらいから見てるので話ついて行ってないけど…orz)をDellマシンで録画予約してみた。サスペンド中に録画時間になると自動で復帰するけど、録画終了後も復帰しっぱななのは…しかたないのかなぁ。
テレビの表示はイマイチだと思ってたけど、一度DVDにコピーしテレビで見ると、割と綺麗になった。
テレビの表示はイマイチだと思ってたけど、一度DVDにコピーしテレビで見ると、割と綺麗になった。
ネットワークを使用中のプログラム一覧
2006-03-14-2 / カテゴリ: [win][command] / [permlink]
-b 付きで netstat 実行
> netstat -b Active Connections Proto Local Address Foreign Address State PID TCP MOZZARELLA:2542 localhost:2543 ESTABLISHED 4076 [firefox.exe] TCP MOZZARELLA:2543 localhost:2542 ESTABLISHED 4076 [firefox.exe] TCP MOZZARELLA:2869 localhost:3920 ESTABLISHED 1288 C:\WINDOWS\System32\httpapi.dll c:\windows\system32\upnphost.dll C:\WINDOWS\system32\RPCRT4.dll C:\WINDOWS\system32\ole32.dll [svchost.exe]
クリップボード操作
2006-03-08-3 / カテゴリ: [win][perl] / [permlink]
Win32モジュール使用
テキストをセット
テキストのゲット
テキスト以外でもとにかくクリップボードの中をゲット
クリップボードの内容の消去
ターミナルへの表示をマウスでコピペするのが嫌で STDIN をクリップボードにセットするスクリプトを書いたが、cygwin 環境のためか割りと重い…
というか、悲しいくらいデリファレンスの書き方を忘れてる orz
テキストをセット
use Win32::Clipboard; Win32::Clipboard("foo\nbar");または
$clip = Win32::Clipboard(); $clip->Set("foo\nbar");
テキストのゲット
$getstring = $clip->GetText();
テキスト以外でもとにかくクリップボードの中をゲット
$buffer = $clip->Get();
クリップボードの内容の消去
$clip->Empty();
ターミナルへの表示をマウスでコピペするのが嫌で STDIN をクリップボードにセットするスクリプトを書いたが、cygwin 環境のためか割りと重い…
というか、悲しいくらいデリファレンスの書き方を忘れてる orz
Referrer (Inside):
[2010-01-31-1]
ルーティングの表示・変更
2006-03-02-1 / カテゴリ: [win][command][network] / [permlink]
表示
Destination: 172.26.0.0 / Netmask: 255.255.0.0 の Gateway を 192.168.1.1 として追加
↑の Gateway を 10.0.0.1 に変更
↑の設定を削除
add と change は実際に経路がないと設定できないっぽい(XP SP2)
> route print または > netstat -r : =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.100 20 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 192.168.1.0 255.255.255.0 192.168.1.100 192.168.1.100 20 192.168.1.100 255.255.255.255 127.0.0.1 127.0.0.1 20 192.168.1.255 255.255.255.255 192.168.1.100 192.168.1.100 20 224.0.0.0 240.0.0.0 192.168.1.100 192.168.1.100 20 255.255.255.255 255.255.255.255 192.168.1.100 192.168.1.100 1 255.255.255.255 255.255.255.255 192.168.1.100 3 1 Default Gateway: 192.168.1.1 =========================================================================== :
Destination: 172.26.0.0 / Netmask: 255.255.0.0 の Gateway を 192.168.1.1 として追加
> route add 172.26.0.0 mask 255.255.0.0 192.168.1.1
↑の Gateway を 10.0.0.1 に変更
> route change 172.26.0.0 mask 255.255.0.0 10.0.0.1
↑の設定を削除
> route delete 172.26.0.0
add と change は実際に経路がないと設定できないっぽい(XP SP2)
Win版sylpheed
2006-02-23-1 / カテゴリ: [win][メール][アプリ] / [permlink]
betaが取れたので入れてみた。相変わらず $HOME を見てないような気がするんだけど…。環境が悪いのかな??
C:/cygwin/home/user/Mail をローカルフォルダにするには、 C:/Documents and Settings/user/Application Data/Sylpheed/folderlist.xml の
検索フォルダの設定はメニューの[編集(E)]->[メッセージを検索(S)]の検索ウインドウを出し、[検索フォルダとして保存(S)]すればOK
(ただし、Mail以下にキャッシュ用のフォルダが作成される)
外部コマンドで「メールの受信」を設定できないのはWin版の仕様なのかなぁ。fetchmail使いたいんだけどなぁ。
C:/cygwin/home/user/Mail をローカルフォルダにするには、 C:/Documents and Settings/user/Application Data/Sylpheed/folderlist.xml の
: <folderlist> <folder type="mh" name="メール箱" path="C:/cygwin/home/user/Mail"> :とすれば見てくれる。
検索フォルダの設定はメニューの[編集(E)]->[メッセージを検索(S)]の検索ウインドウを出し、[検索フォルダとして保存(S)]すればOK
(ただし、Mail以下にキャッシュ用のフォルダが作成される)
外部コマンドで「メールの受信」を設定できないのはWin版の仕様なのかなぁ。fetchmail使いたいんだけどなぁ。
IEのHTTPヘッダを表示する
2006-02-01-1 / カテゴリ: [win][HTTP][アプリ] / [permlink]
blunck.info
IEのエクスプローラバーに、HTTPの通信内容(ヘッダ)を表示するようにする。Firefox の Live HTTP Headers と同等、かな。
Live HTTP Headers と同じく、HTTPS の通信内容も見れるのが良いな。
窓の杜
今更メモ。
IEのエクスプローラバーに、HTTPの通信内容(ヘッダ)を表示するようにする。Firefox の Live HTTP Headers と同等、かな。
Live HTTP Headers と同じく、HTTPS の通信内容も見れるのが良いな。
窓の杜
今更メモ。
バッチで環境変数を変更(part2)
2006-01-15-2 / カテゴリ: [win] / [permlink]
[[2005-11-15-1]]の追加情報
既存の環境変数に変数を「追加」するとき(bash だと export PATH="$PATH;~/bin"みたいな)
文法がわからん… もっとスマートなやり方があるんだろうな。Perl ならどんな変更でも実装できるのになぁ。
wsh(?)のコメントは、行頭(?)にシングルクォートみたいだ。何なんだ、これは。
既存の環境変数に変数を「追加」するとき(bash だと export PATH="$PATH;~/bin"みたいな)
Set objShell = WScript.CreateObject("WScript.Shell") ' User環境変数の取得 Set colEnv = objShell.Environment("User") ' User環境変数の追加 colEnv.Item("path") = colEnv.Item("path") & ";C:\borland\bcc55\Bin" colEnv.Item("include") = colEnv.Item("include") & ";C:\borland\bcc55\Include"Borland C++ をインストールするときの環境変数変更バッチファイル、ということで。
文法がわからん… もっとスマートなやり方があるんだろうな。Perl ならどんな変更でも実装できるのになぁ。
wsh(?)のコメントは、行頭(?)にシングルクォートみたいだ。何なんだ、これは。
lookup で和英・英和辞書
2005-12-26-1 / カテゴリ: [win][meadow] / [permlink]
英辞郎のデータをFreePWING形式に変換
全部 cygwin 環境で実施.Jcode.pm がなければ入れておく.
Meadow は Netinstall で lookup をインストールする.
□ 準備(FreePWINGのインストール)
辞書形式の変換に必ず必要というわけではないが,英辞郎の辞書データの変換には必要.しかもうまくいってない… orz
FreePWINGから最新版のソースをダウンロード.
が,必要なファイルのビルドは終わっているっぽい(fpwutils以下)ので,
/usr/local 以下の bin/fpwmake と libexec/freepwing, share/freepwing あと Perl のモジュール類かな,入るのは.
□ 英辞郎
なんかミョーに苦戦した.Makefile が悪い…のか? 英辞郎のEPWING化参照.
英辞郎の EIJIRO**.TXT を同じディレクトリにおいておく.空きディスクは1Gくらい必要かな.
-I は FreePWING でインストールされた fpwutils.mk があるディレクトリ.
超時間かかるので寝る前に仕掛けるのが良いかも.
makeが終わると,カレントに honmon ファイルが生成される.
んで
□ 和英辞郎
割とすぐできた.
□ eblook.exe
http://openlab.jp/edict/eblook/
これもビルド…しないといけないっぽいっつーか,ビルドのために別ソフトもビルドしてインストールしなければならん?? 辞書の変換で力尽きた… orz
と,Meadow/Emacs memo: Meadowで辞書を引こうから,eblook.lzh をダウンロードできるので,eb.dll と eblook.exe を $MEADOW/bin 以下にコピー
□ .emacs
これで最後
全部 cygwin 環境で実施.Jcode.pm がなければ入れておく.
Meadow は Netinstall で lookup をインストールする.
□ 準備(FreePWINGのインストール)
辞書形式の変換に必ず必要というわけではないが,英辞郎の辞書データの変換には必要.しかもうまくいってない… orz
FreePWINGから最新版のソースをダウンロード.
$ tar zxvf freepwing-1.4.4.tar.gz $ cd freepwing-1.4.4 $ ./configure $ makeすると
: : rm -f catdump.tmp make[1]: Leaving directory `/home/zaki/tmp/freepwing-1.4.4/catdump' make[1]: Entering directory `/home/zaki/tmp/freepwing-1.4.4' make[1]: `all-am' に対して行うべき事はありません。 make[1]: Leaving directory `/home/zaki/tmp/freepwing-1.4.4'とかなんとかうまくいかん...
が,必要なファイルのビルドは終わっているっぽい(fpwutils以下)ので,
$ make installを__無理矢理__実行する :p
/usr/local 以下の bin/fpwmake と libexec/freepwing, share/freepwing あと Perl のモジュール類かな,入るのは.
□ 英辞郎
なんかミョーに苦戦した.Makefile が悪い…のか? 英辞郎のEPWING化参照.
英辞郎の EIJIRO**.TXT を同じディレクトリにおいておく.空きディスクは1Gくらい必要かな.
$ cat > Makefile INSTALLDIR=. DIR=EIJIRO FPWPARSER=eijiro-fpw.pl FPWPARSERFLAGS=EIJIRO39.TXT include fpwutils.mk $ make -I /usr/local/share/freepwingEIJIRO39.TXT は英辞郎データのファイル名.
-I は FreePWING でインストールされた fpwutils.mk があるディレクトリ.
超時間かかるので寝る前に仕掛けるのが良いかも.
makeが終わると,カレントに honmon ファイルが生成される.
んで
$ nkf -e catalogs.sjis > catalogs.txt $ /usr/local/libexec/freepwing/catdump -u catalogs.txt catalogsできた catalogs と honmon を
C:/Program Files/dict/EIJIRO/CATALOGS C:/Program Files/dict/EIJIRO/EIJIRO/DATA/HONMONという構成でコピー
□ 和英辞郎
割とすぐできた.
$ fpwmake $ fpwmake catalogsカレントにできた catalogs と honmon を
C:/Program Files/dict/WAEIJIRO/CATALOGS C:/Program Files/dict/WAEIJIRO/WAEIJIRO/DATA/HONMONとする.
□ eblook.exe
http://openlab.jp/edict/eblook/
これもビルド…しないといけないっぽいっつーか,ビルドのために別ソフトもビルドしてインストールしなければならん?? 辞書の変換で力尽きた… orz
と,Meadow/Emacs memo: Meadowで辞書を引こうから,eblook.lzh をダウンロードできるので,eb.dll と eblook.exe を $MEADOW/bin 以下にコピー
□ .emacs
これで最後
(autoload 'lookup "lookup" nil t) (autoload 'lookup-region "lookup" nil t) (autoload 'lookup-pattern "lookup" nil t) (define-key global-map "\C-cl" 'lookup-pattern) (setq lookup-search-agents '((ndeb "C:/Program Files/dict/EIJIRO/") (ndeb "C:/Program Files/dict/WAEIJIRO") )) (setq lookup-process-coding-system 'sjis-dos)こんだけ追加.キーバインドは好みで.パスは CATALOGS ファイルがあるパス.
UTF なファイルを開く
2005-12-25-3 / カテゴリ: [win][meadow] / [permlink]
標準状態だと,UTF コードは読めない.ググるとすぐ見つかったけどメモ.
http://kawacho.don.am/win/meadow/mule-ucs/mule-ucs.html
1. Netinstall で mule-ucs をインストールする
2. .emacs に以下を (set-language-environment "Japanese") より手前に追加
wanderlust で UTF8 エンコードなメールも読めるようになった.
http://kawacho.don.am/win/meadow/mule-ucs/mule-ucs.html
1. Netinstall で mule-ucs をインストールする
2. .emacs に以下を (set-language-environment "Japanese") より手前に追加
;;; Mule-UCS の設定 (require 'un-define) ; Unicode (require 'jisx0213) ; JIS X 0213
wanderlust で UTF8 エンコードなメールも読めるようになった.
最終更新時間: 2013-05-02 16:12