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

2015-02-26

PowerPoint: 箇条書きの丸印の色が文字色と一緒に変わる

PowerPoint 2007 のスライドの箇条書きにて, 1文字目の色を変えると, 箇条書きの丸印の色が一緒にかわってしまい, 不細工である. この設定は, 以下のようにして, 変えられる.
  1. リボンの [表示]->[スライドマスタ] から, スライドマスタを開く. (こうすると, このファイルの既定の設定を変えられる. もし個別に設定したければ, この手順は省略.)
  2. 箇条書き部分を選択し, 右クリック, [箇条書き]->[箇条書きと段落番号] をクリックする.
  3. [箇条書きと段落番号] というダイアログが出るので, 下にある [色] を [自動] から [黒] に変更する.
  4. あとは, [OK] をクリックし, スライドマスタを閉じる.

この方法は, 大学の後輩のA君から教えてもらった.

2015-02-18

Excelの複数セルに渡った様式に散文を入れる

事務的な手続きをしていると, 各種様式がExcelのシートで送られて来ることがある. その中でも入力に苦労するのが, 長い文章を入力する枠が, 複数のセルにわかれているもの. 1行が1セルに対応しているが, セル毎に文字を入れると, 印刷時に幅が綺麗に揃わないし, そもそも1箇所変更するとそれ以降すべてを入力し直さなければならない:-(

こんなとき, 複数行を入力できるテキストボックスを使うと少しは楽になる.

  1. セルの高さが何ポイントかを予め調べておく.
  2. まず, テキストボックスを作る. 背景を透明にすると, 上記の例のように点線が引かれているようなフォーマットでもOK.
  3. 右クリックし「段落(P)...」を選ぶ.
  4. 「インデントと行間隔」というタブに行間隔を設定できるので, ここで「固定値」を選び, 予め調べておいた高さを入力する.
    なお, 印刷するとずれるので, 印刷プレビューを見ながら微調整が必要.
これで, 以下のように入力することができる.

2014-12-17

DLL呼び出しの調査

Windows のアプリケーションについて, どのような振舞をするのか解析したいということがある. そのとき, DLL呼び出しをログにとることができると便利である.

中間者攻撃DLLの作成

攻撃対象のDLL名 x.dll とし, エクスポートしているAPIが既知であるとする. まず, 以下のようなソース mitm.c を書く.
#include "windows.h"
#include "stdio.h"
#include "stdlib.h"

#define ACTUAL "x-actual.dll"

static int state = 0;
static FILE *fp = NULL;

static int (*f1)(int) = NULL;

static void fin()
{
    if(fp) {
        fclose(fp);
    }
    fp = 0;
}

static void init()
{
    HANDLE h = LoadLibrary(ACTUAL);
    if(h) {
        f1 = (int(*)(int))GetProcAddress(h, "func1");
        // do not call FreeLibrary(h);
    }

    fp = fopen("evadll-mitm.log", "w");
    state = 1;
    atexit(fin);
}

#define log(fmt, ...) if(fp) { fprintf(fp, fmt, __VA_ARGS__); fflush(fp); }

int WINAPI func1(int value)
{
    if(!state) init();
    int ret = f1 ? f1(value) : 0;
    log("func1(%d)=%d\n", value, ret);
    return ret;
}
攻撃対象のDLLをx-actual.dllにリネームする. 以下のコマンドで, コンパイルする.
i686-w64-mingw32-gcc  -shared -o x.dll mitm.c -Wl,-k

TODO

LDPRELOADのような機能を使えば, もっと色々できるかもしれない.

Tips

GCCでは, エクスポートする関数名に@がついてしまうのだが, この記事によると, -Wl,-kをつけると@以降が消えると教えてくれた.

LoadLibrary などの使用方法はこのページを参考にした.

mingw: 依存するDLLを列挙

Linux では, ldd というコマンドで, リンクする共有オブジェクトを調べることができる.

Windowsの実行ファイルに関しても, どのDLLをリンクしようとしているのか知りたいことがある. こんな場合, obdjump で調査することができる.

$ LANG=C objdump -p hoge.exe | grep 'DLL Name:'

2014-12-16

Windows ネットワーク接続の切断

Windows では, 一度遠隔コンピュータのネットワークにログオンすると, ローカルでログオフするまでネットワーク接続からログオフできない. 共有のコンピュータの場合など, ログオフせずにユーザを切り替えたい場合に困る.

GUIではログオフの操作が出来ないが, コマンドからはログオフできる.

  1. まず, コマンドプロンプトを開く.
    スタートメニューの「プログラムとファイルの検索」に「cmd」と入力する.
  2. net use で接続の一覧を表示し, リモート名を確認する.
  3. net use /delete リモート名 にて, 削除 (ログオフ) できる.

2014-08-18

スキャンディスクが終了しないとき

Windows Vista や 7 では, 起動時にシステムディスクのチェックを行う機能がある. しかし, チェック中にフリーズして, システムが起動しなくなるという問題が発生する場合がある. セーフモードできどうしても, なぜかcrcdisk.sysの後でフリーズしてしまう.
このときの対処方法を簡単に説明する.

主な手順は以下の通り:

  1. 起動ディスクなどで起動する.
  2. レジストリエディタにより HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute にある autocheck autochk * /r\DosDevice\C: という記述を消す. autocheck autochk *はそのままで良い [参考ページ].

もし起動ディスクからレジストリエディタを使用できないような場合, レジストリのデータが書かれたファイル (ハイブファイル) を取り出し, 別のマシンで書き換えることもできる [参考ページ].

  1. %SystemRoot%\system32\config\SYSTEM* を取り出し, 正常なマシンにコピーする.
    拡張子無しのファイルとLOG, LOG1, ... と拡張子のついたファイルすべてを取り出す.
  2. ハイブをロードする:
    レジストリエディタを起動し, HKEY_LOCAL_MACHINEを選択, メニューのFile/Load Hive...を選択する. ファイル名と適当なキー名を入力すると, ハイブファイルを編集できるようになる.
  3. CurrentControlSetの代わりにControlSet001などのキー名になっているが, BootExecuteを探し, 該当する箇所を編集する.
  4. ハイブをアンロードする.
  5. 問題のマシンにファイル一式をコピーする.

レスキュー用の起動システムには, Fedora Liveメディアもおすすめ. USBフラッシュメモリに書き込んでも起動できる.


2014-07-16

Windows 7 にてログオン時にVPNへ自動接続する方法

ログオンすると自動的にVPNにつながると, 便利なことがある. その設定方法を説明する.

  1. ネットワーク接続を開く. (ネットワークと共有センターを開き, アダプター設定の変更をクリックする.)
  2. 自動接続したいVPNを右クリックし, ショートカットの作成をクリックする.
  3. デスクトップにショートカットを作成した後, スタートアップに移動する.
  4. VPNのプロパティを開き, 名前、パスワード、証明書などの入力を求めるのチェックを外す.
    (これにより, パスワード入力のダイアログをスキップして, 接続される.)

以下に参考にしたページへのリンクを, 感謝を込めて, 挙げておく.

  • 教えてgoo; スタートアップに登録すれば簡単という説明. この方法だけでは, パスワード入力のダイアログで止まって自動接続できなかった.
  • Windows7で自動ダイヤルアップする(VPN); ダイアログを表示させない方法.
  • 2014-06-19

    Windows7におけるシリアルポートへのアクセス

    Windows 7 にて, シリアルポートにアクセスしようとすると, CreateFile が失敗し, GetLastError が 2 を返す. ERROR_FILE_NOT_FOUND, 「指定されたファイルが見つかりません。」というエラーらしい.

    このサイトによると権限が無いときにこのエラーになるらしい. プログラムを実行するときに, 右クリックし, 「管理者として実行(A)」をしたら, シリアルポートにアクセスできるようになった.

    本来は, ユーザ権限で動作するプロセスにシリアルポートへのアクセスを許すような権限の変更を行うべきなのだろうが...

    なお, C言語でのコードは以下の通り.

    char s[] = "\\\\.\\COM1";
    handle = CreateFile(s, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
    
    バックスラッシュがたくさんあるが, C言語におけるエスケープが行われた後, \\.\COM1になる.


    • iBuffalo BSUSRC0610BS は, FTDI のチップが入っていて, 好評らしい.
    • エムサーブ HL-340 は, 変換名人のものと色が似ているが, 好評.
    • 一方で変換名人の USB-RS232 は悪評. PID/VID は PL2303 だが載っているチップは別物との情報も!

    2014-01-25

    ドラッグ中にウィンドウの内容を表示 @ Windows 7, Server 2008 R2

    Windows 7 や Windows Server 2008 R2 にて, ドラッグ中にウィンドウの中身を表示する設定方法.
    1. コントロールパネルを開く
    2. システムとセキュリティにあるシステムを開く
    3. システムの詳細設定を開く
    4. パフォーマンスグループ中の設定 (S)...をクリック
    5. 下から7番目あたりにあるドラッグ中にウィンドウの内容を表示するにチェックを入れる
    なぜかこの設定, 管理者の認証が要求される. それにも関わらず, ユーザごとに設定が保存されるようだ.
    システムの設定とユーザの設定が混在しているところがWindowsらしい.

    2013-11-12

    楽天の Market Speed FX の時刻

    楽天から Market Speed FX をダウンロード・インストールし, 起動したのだけれど, 時刻が間違っている. Windows の設定で PST に設定していたら, 東京の時刻が PTS と同じ時刻になった. どうやら, Windows の現地時刻を東京の時刻として処理しているらしい.

    ログインボタンをクリックすと, 一瞬で「タイムアウトしました」というダイアログが出る. 1秒も経っていないのにタイムアウトするはずがない. きっとファイアウォールが通信を遮断しているのだろう. ログを見たら, 32137番ポートへ接続しようとしていた.
    32137番ポートを開けたが, 依然としてログインできない. 80番ポートに透過型プロキシを設定していることが問題だろうか...

    こういう会社のソフトは作りが雑だと思う.

    2013-10-18

    LinuxユーザがWindowsにインストールするべきソフト

    普段 Linux を使う人におすすめの, Windows に入れておくべきソフトを挙げる.

    私は Linux と Windows のデュアルブートにしており, 稀に Windows を使う必要が出てくることがある. その時に, 使いたいソフトがインストールされておらず, 不便を感じることがある. そのような事態を未然に防ぐため, 予めインストールしておくべきソフトを列挙してみた.

  • GVIM, 日本語なら, kaoriya からインストールするのが良いだろう.
  • PuTTY, 最近は, 本家からダウンロードしても, 日本語に対応しているようだ. (Encodeの設定があり, デフォルトではフォントの文字コードになっているが, ログイン先の文字コードを設定する.)
  • WinSCP, 公開鍵は putty 付属の puttykeygen で作成する.
  • Real VNC, ビュワーを入れておく.
  • VLC media player, たいていの音楽・動画は再生できる.
  • Google Chrome, 流行のブラウザ.
  • Adobe Reader.
  • Microsoft Office, Windows を使う理由にもなるソフトである.
  • 2013-09-07

    Excel 印刷時の拡大縮小率を印刷枚数から計算

    Microsoft Excel 2007 では, 印刷時の拡大・縮小の方法に, 何枚のページに分割するかという設定ができる. Excel ワークシートは事務書類など1ページに収まってくれないと困るものが多いため, 拡大・縮小率を自動で計算して, 印刷ページが指定した値に成るように調整してくれる機能はとても便利だ.

    これまでの拡大・縮小率を設定する方法では, プリンタの余白などが変わるとページ数が変わってしまう. 事務から届いた書式は拡大・縮小率で設定されていることが多く, そのまま印刷すると右端や下端が切れて2枚になってしまうことがよくある.

    リボンの中のページ レイアウト, 拡大縮小印刷に設定がある. デフォルトでは自動だが, 1ページに設定すると, 自動的に拡大・縮小率を計算してくれる.

    2013-08-20

    MS プロダクトキーの調べ方

    MS製品のプロダクトキーを調べるソフトがある. これを使うと, キーのシールをなくした場合でも, 再インストールに困らない.

    例えば, 他人のPCでこのソフトを使うと, 勝手に他人のキーでソフトを使用することができる. (インストーラを別ルートで入手するなどして.) そういうことを警戒して, 他人に自分のPCを使わせることがある場合には, 任意のソフトが起動できないようにするなどの対策が必要である. AppLocker を有効にする, 取り外し可能な記憶装置を使用できないようにする, ネットワーク通信を制限するなどが必要だ.

    2011-01-03

    マウスカーソルの移動でアクティブウィンドウの切替

    Linux 上の X では, マウスカーソルが上にあるウィンドウをフォーカスし, 全面に移す機能がある. タスクリストから目的のウィンドウを選択したりタイトルバーをクリックしなくても, 別のウィンドウを選択できるので, 便利なことがある.

    Windows でも同様の機能がないかと探して見たところ, よく似た機能が備わっていることが分かった. このページ Activate a window by hovering over it with the mouse にかかれていた.

    これによると, マウスカーソルが上にくると (1秒くらい経ってから), ウィンドウがアクティブになる. すなわち, ウィンドウにフォーカスが移り, 全面に表示される.

    X と違い Windows では, フォーカスが移ると同時に全面に表示される.

    X では, マウス移動からウィンドウがフォーカス取得までの時間を短くし, フォーカス取得から全面に移動するまでの時間を長くしておくことで, マウスを文献からエディタへ移動してすぐプログラムをタイプし始めるといった使い方ができた. しかし, Windows で同じように操作すると. アクティブになる前に 最初の数文字をタイプして思い通りの動作をしなかった.

    X と Windows とで動作がやや異なるが, それでもこの機能は便利であると思う.

    2009-08-19

    Windows の Update

    Windows Vista Ultimate の再起動を行おうとしたらこんなメッセージがでてきました。
    please do not power off or unplug your machine. Installing update 5 of 7..
    15分ほど待っても表示が変わらず、 Ctrl+Alt+Delete を押しても応答がないので、リセットしてしまいました。(電源を切るな、プラグを抜くなとは書いてあるけど、リセットするなとは書いていないのです。)

    アップデートをするのが重要とは言われるものの、アップデートのためにユーザの仕事を突然妨げるのは困ったものです。

    2009-07-23

    英語版Windows XPの日本語化

    英語版の Windows XP には, 日本語のフォントがインストールされていないため, 日本語の Web ページを表示しようとするときなどに文字化けを起こします. 日本語フォントをインストールする方法を説明します.
    1. Control Panel - Data, Time, Language, ... - Add other languages を辿る.
    2. 「Install files for East Asian languages」をチェックする. (再起動を要求されるので従う.)