ラベル Windows の投稿を表示しています。 すべての投稿を表示
ラベル Windows の投稿を表示しています。 すべての投稿を表示

2026年5月1日金曜日

JScript の配列と WScript.Arguments

JScript の配列と WScript.Arguments

JScript の配列と WScript.Arguments

知っている人は当たり前なのだろうが、よく間違えるので備忘録として残しておく。

こんな風に配列長を求める JScript を書いて動かしてみる。

  • test.js

    // 引数を取得
    WScript.Echo('引数の数: ' + WScript.Arguments.Length);
    WScript.Echo('引数1: ' + WScript.Arguments(0));
    WScript.Echo('引数2: ' + WScript.Arguments(1));
    
    // 空配列に値を追加
    var ary = [];
    WScript.Echo('追加前: ' + ary.Length);
    ary.push('foo');
    WScript.Echo('一つ目追加: ' + ary.Length);
    ary.push('bar');
    WScript.Echo('二つ目追加: ' + ary.Length);
    
    WScript.Echo('一つ目: ' + ary[0]);
    WScript.Echo('二つ目: ' + ary[1]);
    
  • 出力

    c:\Users\toasted.laver\Downloads>cscript /nologo test.js aaa bbb
    引数の数: 2
    引数1: aaa
    引数2: bbb
    追加前: undefined
    一つ目追加: undefined
    二つ目追加: undefined
    一つ目: foo
    二つ目: bar
    

Length が定義されていない と言われるが、 WScript.Arguments.Length の方はちゃんと想定の値を返している。

'L' を小文字 'l' すると意図通り動くようになる。

ary.Length ⇒ ary.length
  • 出力

    追加前: 0
    一つ目追加: 1
    二つ目追加: 2
    一つ目: foo
    二つ目: bar
    

恐らく、Arguments は Windows の組込みオブジェクトなので大文字でも小文字でも動くようになっている1 が JScript 言語で定義されている配列はそうはいかない。

てことだろう。知らんけどw

  • まとめ

    大文字 WScript.Arguments.Length OK
      ary.Length NG
    小文字 WScript.Arguments.length OK
      ary.length OK

Footnotes:

1

そもそも、 Arguments は配列じゃないしねw

Created: 2026-05-01 金 15:03

Validate

2026年4月4日土曜日

EXCEL での正規表現置換

EXCEL での正規表現置換

EXCEL での正規表現置換

エクセルで、"No" の後の数字を一括で A1 セルで指定した内容に置換したくて

REGEXREPLACE(B10,"(No)[0-9]+","$1"&A1)

と書いたらエラーになった。なんで?

& 以降を取ったらエラーは出ないので、式自体は問題ないはず…

小一時間熟考して気がついた。 A1 セルに入ってたのは 2 。そらエラーになるわ orz

  • 解説
    • 数式を展開すると

      REGEXREPLACE(B10,"(No)[0-9]+","$1"&"2")
      

      ↓式を処理すると

      REGEXREPLACE(B10,"(No)[0-9]+","$12")
      

      12番目の括弧はない からエラー

    • こんな風に {} で括らなきゃいけなかったのね。

      REGEXREPLACE(B10,"(No)[0-9]+", "${1}"&A1)
      

Created: 2026-05-01 金 14:04

Validate

2025年5月1日木曜日

EXCELでスピルを使う時のメモ

一部非対応関数がある。確認したのは AND(), OR()

例えば、下記の様な表があったとして

  A B
1 TRUE TRUE
2 FALSE TRUE
3 FALSE FALSE

ここで、下記の様に C 列に「A 列と B 列の各行毎の AND」を表示したい。

  A B C
1 TRUE TRUE TRUE
2 FALSE TRUE FALSE
3 FALSE FALSE FALSE

で、C1 に =AND(A1:A3,B1:B3) を入れると

  A B C
1 TRUE TRUE FALSE
2 FALSE TRUE  
3 FALSE FALSE  

となりうまくいかない。 恐らく AND(A1,A2,A3,B1,B2,B3) と解釈されてるのだろう。

今のところ、各行毎の AND を取りたいなら、 IF((A1:A3)*(B1:B3),TRUE,FALSE) 等とするしかないようだ。 (OR なら + を使う)

Created: 2025-05-01 木 11:31

Validate

2025年4月30日水曜日

WEB版EXCELで「名前を付けたLAMBDA関数」を使う

以前、WEB 版 EXCEL で 名前を付けたLAMBDA関数 を作成しようとして、できなかったので使用を諦めていたのだが、今回登録方法が見付かったのでメモっておく。

やり方

数式タブ→「ネームマネージャー」→「+新規」

これでWEB版でも自作関数が作れる😸


(追記)

WEB版で自作関数にセルの範囲指定を入れたら、動作しなかった😿
  1. セルB5 に 0.3 を入れる
  2. LAMBDA(no,INDEX(Config!B5:B7,no,1))hoge て名前つける
  3. hoge(1) を評価すると 0
欄外に、うっすらと
現時点では、Excel for the web ではスコープを編集できません。規定では、名前のスコープはブックに設定されます
て書いてあったので、 INDIRECT 使って書き直したら意図通りに動いたw LAMBDA(cno,INDEX(INDIRECT("Config!B5:B7"),cno,1))

2024年6月17日月曜日

リンク集

Google Site を閉じてこちらに移動

  • お気に入り写真集
    image.canon で公開してたが、閉鎖されるので Amazon photo に移行した。
    …まあ、今は会社のPCの壁紙くらいにしか使ってないけどw
  • emacs設定 → こちらを参照
  • bashrc … Github で管理

2024年5月2日木曜日

Eamcs セットアップメモ

新規に Emacs を自分の環境ファイルを使ってセットアップする機会があったので、その時のメモを備忘録として残しておく


MSYS2 をインストール

本家のページよりダウンロード。
なくても動くようにしてるつもりだけど、結局grepとかないと不便なので…

emacs をインストール

本家のページよりダウンロード

emacs 環境ファイル

  1. github から .emacs.d を clone
  2. emacs 起動して、エラー出る箇所を見ながら下記をインストール
    • migemo
      • 本体は package-install で入る
      • cmigemo はダウンロードしてインストール
        →Windows は AppData/Local/cmigemo に入れて各アプリで共用できるようにした
      • migemo-dictionary 等の値を環境に合わせ設定
      • もう UTF-8 以外の環境になることはなさそうなので削除
    • ddskk
      • 本体は package-install
      • L 辞書は github からダウンロードして .emacs.d/etc/skk に入れる
      • Win 環境では SKKFEP の L 辞書と共用にしようと思ったが、 SKKFEP 辞書の文字コード等が本家と変わっているので諦める
      • (require 'skk-autoloads) は不要になった模様
        ※パッケージインストール限定かも
    • dired のカスタマイズ関連
      • sorter.el (ファイルのソート)
        オリジナルのファイルが見つからないので使うのを諦める
      • w32-symlinks (Windows のシンボリックリンクを処理できる)
        EmacsWiki からダウンロード
      • bf-mode (ファイルの中身を表示)
        package-install で入る
    • color-moccur (検索) grep や ripgrep 等が使えない環境 (Windows native とかw) のためにいれておく
      package-install で入る
    • dabbrev-ja (動的略語展開 dabbrev の日本語対応設定)
      オリジナルのファイルが見つからないので使うのを諦める
      どうやら これ がオリジナルらしい (追加設定の方ねw)
    • dabbrev-highlight (動的略語展開時に色つけ)
      オリジナルのファイルが見つからないので使うのを諦める
      オリジナルの改良版 ここ にある
    • psvn (svn インターフェース) 職場では現役
      EmacsWiki からダウンロード
    • helm 関係 … 下記全て package-install で入る
      • recentf-ext (recentf でディレクトリも保存できるようにする)
      • helm 本体
        最新では (require 'helm-config) ではなく (require 'helm) になったようだ
      • helm-gtags
      • helm-swoop (絞り込み検索の画面を編集して元ファイルに反映)
      • helm-ag (ag で helm インターフェースを使う。設定で grep/ripgrep も使える)
    • shell-toggle
      package-install で入る
    • session (kill-ring やミニバッファ入力、開いたファイルなどの履歴を保存する)
      package-install
    • cygwin-mount.el (cygwin形式のパスを扱えるようにする)
      gtags等の外部ツールはパスがunix形式になるため必要
      EmacsWiki からダウンロード
    • magit (git インターフェース)
      依存するパッケージ compat が見付からないとかで、インストール不可
  3. その他設定
    • shell-command-completion-mode 設定不要 (なくても補完できてそう)


2021年12月7日火曜日

mintty で全角文字の一部が重なって表示される

mintty で文字コードを UTF-8 にすると、一部の記号が下記の様に重なったり欠けたように表示される。

調べてみると、 Unicode で規定されている East Asian Width で Ambiguous(曖昧) に属す文字は半角表示するようになってるらしい。

ここを参考にして mintty のオプションにある「文字セット」を「UTF-8@cjkwide」に設定した後、ターミナルを再起動したら解決した。
※GUI のオプション画面でも、 .minttyrc を直接設定しても OK

他にも East Asian Width 関係には、他にもフォントやソフトが規定を守ってない問題などがあるらしい…

2021年11月1日月曜日

png に日付情報 (Exif) を追加

 スマホのあるアプリで撮ったスクショ (PNG) を Amazon Photo に上げると「日付なし」となって日付で整理できない。

ファイル名にスクショしたタイムスタンプが使われているようなので、これを exiftool で撮影日として登録するスクリプトを書いてみた。

#!/usr/bin/ruby

ARGV.each do |arg|
  /([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})/.match(arg)
  year = $1
  month = $2
  day = $3
  hour = $4
  minuite = $5
  sec = $6
  puts "#{year}/#{month}/#{day} #{hour}:#{minuite}:#{sec} <- #{arg}"
  system("exiftool -DateTimeOriginal=\"#{year}/#{month}/#{day} #{hour}:#{minuite}:#{sec} JST\" #{arg}")
end

2017年11月27日月曜日

外付けHDDの「ごみ箱」を無効にする

外付け HDD の容量がいっぱいになったので、不要ファイルを消したのだが HDD の残り容量が増えない。

よく見てみると、消したファイルがごみ箱に残っている。
あれ?今まで外付け HDD にごみ箱なんてあったっけ?

調べてみると Windows Vista 辺りから、どうやら外付け HDD にも自動で「ごみ箱」が作られるようになったようだ。(それより前はユーザーが作成しないとできない)

とりあえず、ごみ箱を空にすると残り容量が増えてめでたしめでたしになったのだが
そのことをすっかり忘れ、また容量が増えずにアレ?てことを何回も繰り返したので
だんだんめんどくさくなってきた。

そもそも、外付け HDD は基本的にデータ退避用なので、正直ごみ箱は不要である。
ということで外付け HDD のごみ箱を無効化する方法を調べてみたが、
ちゃんと説明しているページが見つからなかったので、メモとして残しておく。

手順

  1. デスクトップのごみ箱を右クリックして「プロパティ」を選択
  2. 不要にしたいドライブを選択
  3. 「ごみ箱に移動しないで、削除と同時にファイルを消去する」を選択
  4. 「OK」または「適用」をクリック


2017年5月4日木曜日

Windows 10 でスタートメニューに表示されないアプリがある

写真の現像に Canon の Digital Photo Professional (以下 DPP) を使っているのだが、
ふと気が付くとスタートメニューに DPP が表示されていない。
本来なら Canon Utilities の下にあるはず

アプリ本体はちゃんと
C:\Program Files\Canon\Digital Photo Professional 4\Dpp4.exe
に存在し、起動することもできる。

ネットで調べてみたが、似た症状も有用な情報も見つからない。
俺の環境だけか?とちょっと絶望しかけたが、なんとか解決したので経緯をメモしておく。

まず、Windows のスタートメニューは、以下にあるショートカットを表示する仕組みである。
C:\Users\《ユーザー名》\AppData\Roaming\Microsoft\Windows\Start Menu (ユーザー個別)
C:\ProgramData\Microsoft\Windows\Start Menu\ (全ユーザー共通)
で、何かの表示に上記フォルダから DPP のショートカットを削除してしまったかと思い
確認したが、以下の場所にちゃんとある。
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Canon Utilities
C:\Users\《ユーザー名》\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\_MyLauncher
(下の方は、よく使うアプリをまとめるために作ったフォルダである)

そういえば、スタートメニューの _MyLauncher 以下には DPP はちゃんと表示されている。
自作の _MyLauncher 以下にはちゃんと存在

そこで、ふと思った。
「もしかして、スタートメニューに表示されるアプリは一つだけじゃね?」
ということで、 _MyLauncher 以下の DPP ショートカットを消してみたところ
ちゃんと Canon Utilities 以下に表示された。
復活!?

やはり、複数ショートカットを作ってもスタートメニューに表示されるものは一つだけのようだ。
念のため、 Canon Utilities 以下のショートカットをコピーで 2 つに増やしてみたが
スタートメニューに表示されるのは一つだけだった。

つまり、ユーザー個別領域の _MyLauncher 以下にショートカットがあったため、そっちが優先されて
本家の Canon Utilities の方には表示されなかった、というのが真相のようだ。

と言うわけで DPP だけではなく _MyLauncher にショートカットを置いたアプリが全て
スタートメニューの「本来の位置」に表示されなくなっているわけだが、
スタートメニューには普通に表示させたい。

そこで、対策として _MyLauncher の位置を別の位置に変えることにした。
どうせ _MyLauncher を見るのはファイラーとして使っている X-Finder からであり、
別にスタートメニューに表示されなくてもよい。
これで解決。

しっかし…。 Windows 7 のころは両方とも表示されている※1ので
Windows 10 で変わったぽいが、なんでそんな意味不明の仕様に変えたんだろう???

※1
会社の Win7 で確認している

2017年5月3日水曜日

Windows10 の IME 状態をアプリ毎に変えるための設定

仕事でもプライベートでも Windows 上で emacs を使っているのだが
キーバインドが干渉するため IME を emacs とその他のアプリで分けている。
  • emacs 使用時: Microsoft IME1
  • 上記以外: SKKFEP
Win10 になってもその辺の事情は変わらないのだが、 Win10 になってから
これまではアプリ毎に保持されていた「使用している IME の種類、 ON/OFF 状態」が全アプリ共通になったらしい。
どういうことかといえば、例えば
  1. emacs を「Microsoft IME」「オフ」で使用
  2. ブラウザを立ち上げ「SKKFEP」を「オン」にして日本語入力
  3. emacs に戻ってくる
という操作を行なった場合、これまでは「Microsoft IME」「オフ」の状態に戻っていたのだが Win10 からは「SKKFEP」「オン」の状態のままになった。
当然、そのあと「Microsoft IME」「オフ」に再設定した後、ブラウザに移動すると「Microsoft IME」「オフ」の状態になる。

これでは、使い難くてしょうがないので、以前のようにアプリ毎に IME 状態を保持する設定に戻す方法を調べてみた。
たぶん、俺の『Windows を入れたときに必ず行う初期設定』に追加されるべき設定だと思うので、メモとして残しておく。
  1. 「設定」画面を開く
  2. 「時刻と言語」のアイコンをクリック
  3. 左側にある「地域と言語」をクリック
  4. 関連設定欄にある「日付、時刻、地域の追加設定」をクリック →コントロールパネルの「時計、言語、および地域」ウィンドウが開く
  5. 言語欄にある「入力方法の変更」をクリック
  6. 左側にある詳細設定をクリック
  7. 入力方式の切り替え欄にある、「アプリウィンドウごとに異なる入力方式を設定する」にチェックを入れ保存
…と、ここまで書いておいてなんだが 手順 4 でコントロールパネルが開くんだからコントロールパネルからいった方が早いw

スタートボタン右クリックから「コントロールパネル」→「言語」→「詳細設定」

Footnotes:

1
ただしオフの状態で使用。日本語入力は emacs 上で動く ddskk を使っている。

Created: 2017-05-03 水 08:21
Emacs 24.5.1 (Org mode 8.2.10)

2015年4月11日土曜日

続・IrfanView で「前のファイルへ」「次のファイルへ」が使えない

以前、 IrfanView で「前のファイルへ」「次のファイルへ」が使えない で書いた

日本語版 (古いバージョン) には…

脆弱性があるそうです ○| ̄|_ OTZ orz .,



で、最新版に update することにしたが、「前へ」「次へ」が使えないのが痛い…



…しかし!!!



別に最新版でも普通に使えることがわかった。

2ch の記事より。
オプションの基本設定→言語、でUnicodeプラグインのチェックをOFF にすれば解決。
だ、そーです( ̄_ ̄ ;;)
ちなみにコレ↓


ダイアログが一部文字化けしてたのも治ったし、よかったよかった\( ゜∇゜)/


しっかし、 Unicode Plugin 読み込んだら悪さするっていったい…orz

ちなみに、メニュー等の日本語化は公式サイトでちゃんと日本語 plugin が出てるので問題なし。

2014年11月9日日曜日

PQI Air Card その4

その3 からの続き

そりゃそーか。

よく参考ページを見直してみれば、 perl は busybox の中じゃなくて 122_TREK/usr/bin にあるじゃねーか。

あー恥しい…


まあ、気をとりなおして。
シンボリックリンク張り直してっと…

# rm /usr/bin/perl
# ln -s /mnt/sd/.linux/122_TREK/usr/bin/perl /usr/bin/perl
# perl --help
/bin/sh: perl: not found


( ・_・)アレ?

2014年10月29日水曜日

PQI Air Card その3

その2からの続き


ここで紹介されているのは「ホットスポット接続し、IPアドレスを twitter で通知」、というものだが。

twitter はほとんど使っていないので、何か別の方法がいいなー

インターネット繋がってないと通知来ないし。。。
そもそも、ただ同一ネットワーク上の PC かスマホにメッセージを送ればいいわけで。

例えば、 IP メッセンジャーとかwww


というわけで、コマンドラインから IP メッセンジャーにメッセージを送る方法を探してみると

IPメッセンジャーへメッセージを送る Perl版

というのを見つけた。さっそく試してみよう。
上記ページを見ると、 Encode.pm 版 (perl 5.8 以降) と NKF.pm 版 (5.8 より前) があったが
ソースを見ると、日本語のエンコードに encode()/decode() を使うか nkf() を使うかが違うだけぽい。

まあ、別に IP アドレスと接続完了のメッセージが送れればいいので…


別に日本語使わんでいーわヽ( ´ー`)ノ。

てなわけで、エンコード系の処理を削除して使うことにする。
改良後のソースコードはこんなんなった。

#!/usr/bin/perl -w
#
# ipmsg.pl <host to send> <your name> <message>
#
# ipmsg.pl <host to send> <your name> ... input message from STDIN
#
use Socket;
use Sys::Hostname;
## to info
my $tohost = gethostbyname($ARGV[0]);
my $toport = 2425;
## from info
my $myname = $ARGV[1];
my $myhost = "PQI Air Card";
## net info
my $proto = getprotobyname('udp');
my $ihost = gethostbyname(hostname());
my $ipaddr = sockaddr_in(0, $ihost); # 0 means let kernel pick
my $hispaddr = sockaddr_in($toport, $tohost);
my $sendtext;
if (@ARGV >= 3)
{
$sendtext = $ARGV[2];
}
else
{
$sendtext = <STDIN>;
}
$sendtext = sprintf('1:%d:%s:%s:32:%s', int(rand(100))+1, $myname, $myhost, $sendtext);
socket(SOCKET, PF_INET, SOCK_DGRAM, $proto);
bind(SOCKET, $ipaddr);
send(SOCKET, $sendtext, 0, $hispaddr);

とりあえず、 PC 上でスクリプトを動かして動作確認。ちゃんと動いた。
ではこれを、 SD カードにコピーして。
さて、動かしてみよう!!
# /mnt/sd/ipmsg.pl localhost ozawa hogCan't locate Socket.pm in @INC (@INC contains: /usr/local/lib/perl5/5.14 /usr/local/lib/perl5/5.14 .) at /mnt/sd/ipmsg.pl line 8.BEGIN failed--compilation aborted at /mnt/sd/ipmsg.pl line 8.

くっ…orz

どうやら、 Socket.pm がないんですね…

しかたない、さっきのページからリンクを辿り、 PQI Air Card 用にコンパイルされた busyboxここからダウンロード。
解凍して、 SD カードのルートに .linux というディレクトリを作ってその下に入れる。
で、シンボリックリンクをはり直して…

# rm /usr/bin/perl
# ln -s /mnt/sd/.linux/122_TREK/busybox /usr/bin/perl
# perl --version
perl: applet not found

(  ゜ ▽ ゜ ;)エッ!!…


もしかして…もしかしてだけど… perl 含まれてない!?


OTZ orz .,

2014年10月19日日曜日

PQI Air Card その2

その1 からの続き

まーそりゃそうか、普通 telnet なんか使わないもんなー
windows では、サービスが無効になってるので、コントロールパネルから有効にしてやれば使えるらしい。
まーでも、 DOS プロンプトで telnet なぞ使いたくないので cygwin の telnet を使おう。
cygwin の inetd パッケージをインストールしてっと。

それから、 SD カードアダプタにより接続が安定するのとしないのがあるらしいのでそれぞれチェック。

  • ノート PC の SD カードスロット  ×
  • maxell の UA20-MLTII  ×
  • サンワサプライの ADR-ML14R  ○
よし、動くのがあった。
まず、 wifi で接続して…
それから telnet で接続して…

とりあえずわかったこと。

  • SD カード本体は /mnt/sd
  • /usr/local/bin は /mnt/sd/bin
  • /usr/local/bin は /mnt/sd/sbin
その 3 へ続く

PQI Air Card その1

引き出しの奥に眠っていた PQI Air Card

EOS7D で Wifi 転送等使うために買ったのだが
ネットでは動作報告があるのに、残念ながら俺の環境では動作しなかった…orz
(CF アダプタの相性か?)

しかしながら、たまたまこんな記事とかこんな記事とかを見て
何か面白そうだなぁと思い引き出しの奥から引っぱり出して
とりあえず telnet 接続しようと…



…ん? telnet がねぇΣ( ̄□ ̄;

→その 2 に続く

2014年9月14日日曜日

IrfanView で「前のファイルへ」「次のファイルへ」が使えない

前から不思議に思っていたが、今日気付いた。

どうやら、パスに日本語が入っているとダメらしい。

ただ、日本語が全部駄目かとういとそうではないみたい。
たぶん、文字コード関連でおかしくなっているのだろう。

と、いうことで 最新の IrfanView(英語版、日本語 plugin あり) ではなく
IrfanView 日本語版のページ から日本語版を落としてインストールしなおしたらいけた。
バージョンが古いが、しゃーない。しばらくコレで行くか。


インストール時にいくつか詰まったので解決法をメモ。

・自己解凍形式で落としたのだが、解凍先が "C:\Program Files\IrfanView" になる。
  →使っているのが 64bit 版なので、  "C:\Program Files (x86)\IrfanView" に変更。
  当然、 Program Files のアクセスには管理者権限が必要なので exe は「管理者として実行」する。
  まぁ、適当な箇所に解凍して管理者権限でコピーしても同じだろうが…。

・そのまま実行して、オプションで関連付けを変更しても反映されない
  当然、管理者権限が必要なのでオプションを変更するときだけ「管理者として実行」する。

2014年8月22日金曜日

Chrome の「新しいタブ」が勝手に Bing に

ふと気付いたら、 Chrome で新しいタブを開いたとき必ず Bing の検索ページが表示されるようになった。

あれ?前までは Google の検索ボックスとアクセスしたページの履歴みたいなもんが出てたはず…
Gmail やら Google+ のアルバムやらにアクセスするのに楽だったのに。

そもそも Bing なんて使わん しww
bing 愛用者の方ゴメンナサイ…

不便なんで元に戻そうとして、設定を見てみるが、そもそも
「新しいタブを開いたときに表示するページ」の設定自体がない…orz
Chrome を立ち上げたときに表示するページの設定しかない!!

拡張機能か?などと、とりあえずいろいろいじってみたが、直る気配なし。


…変だな?

こういう時は Google 先生に聞いてみようと思い検索したところ
教えて!goo で「Bing のページの下にある「復元」をクリックすれば良い」という記事を見つけた。
さっそくやってみよう…


あれ?「復元」なんてないぞ?


とりあえず、近い箇所にあった「更新されたプライバシーポリシー」のリンクをクリックすると
trovi.com というサイトのこんなページ が出てきた。

ちなみに、たぶんサイト自体はただの検索サイトなのでいきなりウイルス注入! とかってことにはならないと思いますが、クリックは自己責任でw


話を戻そう。今度は trovi でググってみたところ、やはり周知の事実らしく対処方が簡単に見付かった。

詳しくはこちら

どうやら、何かのソフトをインストールしたきに、そうなってしまうらしい。
勝手にブラウザのスタートページや検索エンジンを書き換えてしまい、ブラウザの設定では元に戻せないそう。
しかも、削除方を検索するとウソの方法が上位に表示される、タチの悪いものらしい。


以下、上記ページを参考に自分がやった方法を簡単にまとめておく。

1.  Search Protect をアンインストール

まず、ブラウザの設定が効かないというというのは SerchProtect というソフトがインストールされているためで、こいつを消さないといけないらしい。

アンインストール手順1: タスクマネージャーで下記 3 つのプロセスを kill

  • SPRunner.exe
  • cltmng.exe
  • CltMngSvc.exe
※俺の環境では、 SPRunner.exe がなかったので他の 2 つだけを消した

アンインストール手順2. C:\ProgramFiles\SearchProtect\bin にある uninstall.exe を実行する

※俺の環境では uninstall.exe は C:\Program Files (x86)\SearchProtect\Main\bin にあった。

2. ブラウザの設定を元に戻す

上記ページでは、「全てのブラウザの設定が書き換えられている」とあったが、俺の環境では被害を受けたのは Chrome だけで、インストールされていた IE と Opera は問題なかった。


以上で終わり。
特にウイルス感染とかではなかったのでホっとしたが、ちょっと悪質すぎるだろコレ (-_-#)

2012年11月24日土曜日

Android SDK のインストール

引き続き、サブの ノートPC で生活中です。

Android 端末とやり取りするために、 Android SDK をインストールしよかと思ったのだが
その再の手順がややこしかったのと

 java をアップデートしたら再度変更しなくちゃいけないので

手順をメモっておきます。

参考にしたのは下記ページ
まず java をインストールするとあるが、既にインストール済みなので
java.exe のパスだけ確認→おk。


次に、  Android SDK 本体をここからダウンロード
参考ページに「zip 版を落せ」とあるし、何より 「Download the SDK」から 64bit 版が落とせない(※)ので zip 版をダウンロード。

承認画面64bit 選択と、ダウンロードボタン灰色ま…(゜ω゜)ハァ?

Android SDK の zip を解凍し、出てきた android-sdk-windows 以下にある
SDK Manager.exe を起動…

…一瞬 DOS 窓が開くが何も起きず。

なので、コマンドプロンプトから tool にある android.bat を直接起動。
下記エラーが出た。


'C:\Windows\system32\java.exe' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
無効なパスの指定です
ERROR: SWT folder '' does not exist.
Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.
参考ページの内容とは違うが…orz
まあ java.exe が見付かってないことには間違いなさそうなので
tools\lib\find_java.bat の内容を変更
*** tools/lib/find_java.bat.org 2012-11-24 18:59:59.673352500 +0900
--- tools/lib/find_java.bat 2012-11-24 18:59:01.113271700 +0900
***************
*** 23,35 ****

rem Check we have a valid Java.exe in the path. The return code will
rem be 0 if the command worked or 1 if the exec failed (program not found).
! for /f %%a in ('%~dps0\find_java.exe -s') do set java_exe=%%a
if not defined java_exe goto :CheckFailed

:SearchJavaW
rem Check if we can find a javaw.exe at the same location than java.exe.
rem If that doesn't work, just fall back on the java.exe we just found.
! for /f %%a in ('%~dps0\find_java.exe -s -w') do set javaw_exe=%%a
if not exist %javaw_exe% set javaw_exe=%java_exe%
goto :EOF

--- 23,37 ----

rem Check we have a valid Java.exe in the path. The return code will
rem be 0 if the command worked or 1 if the exec failed (program not found).
! rem for /f %%a in ('%~dps0\find_java.exe -s') do set java_exe=%%a
! set java_exe="C:\Program Files\Java\jdk1.7.0_05\bin\java.exe"
if not defined java_exe goto :CheckFailed

:SearchJavaW
rem Check if we can find a javaw.exe at the same location than java.exe.
rem If that doesn't work, just fall back on the java.exe we just found.
! rem for /f %%a in ('%~dps0\find_java.exe -s -w') do set javaw_exe=%%a
! set javaw_exe="C:\Program Files\Java\jdk1.7.0_05\bin\javaw.exe"
if not exist %javaw_exe% set javaw_exe=%java_exe%
goto :EOF
…で、無事起動。

java のバージョンが変わると find_java.bat で直接記述したパスが変更されるので
起動しなくなったらここをチェック!!


2012年9月5日水曜日

Meadow の psvn で ediff できない

psvn で ediff を使おうとすると、エラーになった。
メッセージを見るに、どうやらパス表記が windows 形式 (c:/meadow/~ など) になっているのが原因で、 cygwin の svn コマンドが反応してくれないみたいだ。

ネットで対応を捜してみても、これといった情報がない…orz
仕方ないので、自分でソースコードを見てみる。

とりあえず、下記の修正で動いたんで後世のためにメモっておく。
※パッチファイルはこちら
*** psvn.el.org 2012-09-05 00:38:02.028739400 +0900
--- psvn.el 2012-09-05 00:42:21.717592800 +0900
***************
*** 6036,6042 ****
(defun svn-status-base-dir (&optional start-directory)
"Find the svn root directory for the current working copy.
Return nil, if not in a svn working copy."
! (let* ((start-dir (expand-file-name (or start-directory default-directory)))
(base-dir (gethash start-dir svn-status-base-dir-cache 'not-found)))
;;(message "svn-status-base-dir: %S %S" start-dir base-dir)
(if (not (eq base-dir 'not-found))
--- 6036,6042 ----
(defun svn-status-base-dir (&optional start-directory)
"Find the svn root directory for the current working copy.
Return nil, if not in a svn working copy."
! (let* ((start-dir (replace-regex-in-string "[\n\r]quot; "" (shell-command-to-string (concat "cygpath " (expand-file-name (or start-directory default-directory))))))
(base-dir (gethash start-dir svn-status-base-dir-cache 'not-found)))
;;(message "svn-status-base-dir: %S %S" start-dir base-dir)
(if (not (eq base-dir 'not-found))
***************
*** 6047,6053 ****
(repository-root (svn-status-repo-for-path base-dir))
(dot-svn-dir (concat base-dir (svn-wc-adm-dir-name)))
(in-tree (and repository-root (file-exists-p dot-svn-dir)))
! (dir-below (expand-file-name base-dir)))
;; (message "repository-root: %s start-dir: %s" repository-root start-dir)
(if (and (<= (car svn-client-version) 1) (< (cadr svn-client-version) 3))
(setq base-dir (svn-status-base-dir-for-ancient-svn-client start-dir)) ;; svn version < 1.3
--- 6047,6053 ----
(repository-root (svn-status-repo-for-path base-dir))
(dot-svn-dir (concat base-dir (svn-wc-adm-dir-name)))
(in-tree (and repository-root (file-exists-p dot-svn-dir)))
! (dir-below (replace-regex-in-string "[\n\r]quot; "" (shell-command-to-string (concat "cygpath " (expand-file-name base-dir))))))
;; (message "repository-root: %s start-dir: %s" repository-root start-dir)
(if (and (<= (car svn-client-version) 1) (< (cadr svn-client-version) 3))
(setq base-dir (svn-status-base-dir-for-ancient-svn-client start-dir)) ;; svn version < 1.3
…まあ、パスの置き換えに cygwin のコマンドを呼び出して使ってたり、
そのコマンドの出力に改行がついてたから単純に置換したり…と
かなり汚いコードになってしまった(-_-;)が、とりあえず動いたからいいや。

JINA Drawer

JINA Drawerを使ってみた。 自分でアプリ分別してフォルダ毎に分類できるので便利✨️ でも、設定をバックアップしようとしてハマった どうやら いや、普通「Backup data」を選ぶだろこんなん😾