粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

Windowsを使って組み込みっぽい案件をやった話

組み込みっぽい案件とは

ここでの「組み込み」とは「単一の機能を実現する」の意味合いです。

  • 単一の機能を実行する
  • PCに電源を入れたときに起動し機能し続ける

「何故,DOSなのか」などはout of controlなので聞かないでください。

Windows Embedded とかIoTとかあるらしいですがよくわからんし時間的な問題でいろいろと諦めました。各所との連携とか難しいですね。 Windows 10 IoT Enterprise/Windows Embedded OSのサポートと供給期間|Microsoft|製品情報|東京エレクトロンデバイスEmbedded Solution

やったこと

そもそもいろいろガバですがこんな感じに進めました。

  • 動かすのはPythonスクリプト(楽だと思ったから)
  • batファイルを作成し,起動時に動くようにした
  • 権限が必要な操作とかでちょっと困った

Pythonスクリプトをbatから実行

Anacondaで環境作ってましたが,単一動作しかしないので結局Anacondaフォルダ以下のpython.exeとScriptsフォルダにパスを通してしまいました。 batファイルは非常に簡単で以下のものを作成します。

@echo off
python XXX.py

管理者権限が必要な操作をbatでやる例

netshでIPアドレスを固定化したかったのですがこのコマンドは管理者権限でやる必要があります。 WindowsのnetshコマンドでTCP/IPのパラメータを設定する:Tech TIPS - @IT

こんな感じのbatファイルを管理者権限で実行する必要があるわけです。

@echo off
netsh interface ip set address "イーサネット" static 172.16.1.101 255.255.255.0 172.16.1.1

以下のブログにあるように,powershellを使ってやりました。 管理者権限でbatを実行したい時にやッた事

@echo off
powershell start-process 実行対象.bat -verb runas

このbatを実行するときには管理者権限が必要とされます。つまり,クリックでOKを選択する必要があることに注意。 電源を入れただけでは実行出来ないのです。

Boot時に特定のプログラムを実行する

「組み込み」なので電源を入れさえすればプログラムが勝手に動き出すようにしてほしいです。

Boot時に特定のプログラムを起動する方法はいくつかありますが,管理者権限の必要不要に応じて2つの方法を紹介します。

管理者権限が不要の時

以下のフォルダにショートカットファイルを置けば起動時に実行してくれるようです。

C:\Users[ユーザ名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Debian系なら.bashrcの他に/etc/rc.localに置くことに該当します。 linux起動時に自動的に実行するコマンド(プログラム)の設定

管理者権限が必要の時

上記の管理者権限をKickするbatファイルを実行するときに必要です。 タスクスケジューラを使うようですが,今回は結局やりませんでした。 管理者権限が必要な常駐アプリはタスクスケジューラでスタートアップさせる

一応メモとして。

その他の作業

UltraVNCを用いたファイル操作

あと,物理的な接続なしでwifiで今後の作業を進める必要があったので,Winscpのようにファイル転送できるUltraVNCというソフトをインストールしました。 UltraVNCでコンピュータをリモート制御する(サーバ編):Tech TIPS - @IT

Windowsの自動更新をOFF

Windows10が勝手に自動更新をかけてきます。組み込みでいきなり例の青画面が続くのは心臓に悪いので確実に息の根を止めます。

IPアドレスを固定化

IPアドレスを固定化します。

Windows 10 IPアドレス固定方法

感想

もっと賢くできないですか…ね????