LoginSignup
2
3

More than 5 years have passed since last update.

Windowsアプリケーション開発でWindows7関連で困ったこと

Posted at

Windowsアプリケーションを作成したが、Windows7だけ想定の動きをしてくれず、大変困りました。
その時の覚書きです。

前提条件

- visual studio 2015で開発
- 言語はC#
- Windows フォームアプリケーション
- 対象OS
- Windows7
- Windows8
- Windows10
- 確認環境
- Windows7(modern.ie)
- Windows8.1(modern.ie)
- Windows10(実端末)

Windowsアプリの内容

Windowsアプリ内でコマンド(schtasks)を実行し、タスクスケジューラにタスクを登録/削除/クエリしている

困ったこと

1.権限の問題

問題
schtasks /delete コマンドが実行エラーになる。

原因
Windows7端末だけ管理者権限が必要。

対処内容
アプリケーションの実行時、管理者に昇格(requiredAdministrator)して実行するよう変更する。

app.manufest
<requestedExecutionLevel level = "requireAdministrator" uiAccess="false" />

2.コマンド差異の問題

問題
schtasks /query /tn "タスク名" /v /fo csv /nh がエラーとなる。

エラー: /NH スイッチは LIST形式では使用できません

原因
Windows7だけ、CSV形式で/nhオプションが使えない。(どうしてかは不明)

対処内容
/nhオプションを外し、1行目を読み飛ばすことで対応

3.言語環境の問題

問題
日本語のタスク名が????に文字化けする
原因
コマンドプロンプトの言語コードがIBM437になっているため。(chcpで確認)
ただし、これは仮想マシン固有の問題かもしれない。(未確認)
対処内容
言語コードを932(Shift-jis)に変更してもInvalid code pageのエラーとなり変更ができなかった。
そこで以下2つを実行。

(1) まずは、こちらの記事を参考に日本語環境を設定する。
modern.IEのWindows 7で日本語の表示と入力をできるようにする
(2) 次に、システムロケールを英語から日本語へ変更する。
Windows7でcmd.exeを日本語化させる

この段階でchcpを実行すると、無事932になっていた!

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3