トップ回答者
xpで動作していたアプリケーションをwindows 7(32bit)でも使えるようにしたい。

質問
-
xpでは正常に作動していたアプリケーションですが、win7で(アクセスの.mdbファイルに)保存しようとすると、下のエラーになってしまいます。
「アプリケーションのコンポーネントでハンドルされていない例外が発生しました。[続行]をクッリクすると、アプリケーションはこのエラーを無視し、続行しようとします。[終了]をクリックすると、アプリケーションは直ちに終了します。
更新可能なクエリが必要です。」
どうやってこのアプリのインストーラーを作ったのか忘れってしまっているような年ですので、なんとか簡単にwin7でも使える方法があるといいなと思うのですが、中古のXPパソコンを買った方が早いでしょうか。
回答
-
確実じゃない中で推測で書いてしまうのはあまりよくないのですが、そのプログラムを「管理者として実行」で起動した場合は正常に動くのでしょうか。
(「管理者グループにいるアカウントで実行する」だけではなく、右クリックメニューから「管理者として実行」を選ぶと言うことです)これが正しいとすると、UAC について勉強していただき、今時のプログラムの作り方を学んでいただくことになります。
たとえば、Program Files に書き換え対象のデータを置かず、Application Data などのユーザーが書き込める場所に置く、どうしてもすべてのユーザーで共通にしたいなら ProgramData に保存するなど。なお、パスは Environment.GetFolderPath で得る必要があります。 -
セキュリティ上問題にならないなら、Windows7のXPモードを使うのが早いかと思います。古いWindowsXPパソコンを利用するのは、セキュリティ上の問題だけでは無く、ハードウェアの耐久性の面からも不安があるので、一時しのぎとしてしかお勧めできません。セキュリティ上Windows XPを使うわけには行かないのであれば、Windows 7上で動作させる方法を探すことになります。まずは、アプリケーションを作成するために使用した言語は何でしょうか?古い言語(.Net Framework 1.1以前の.NetやVB6.0等)はWindows7に対応していないので、Windows7に対応する言語で手直しをする事になります。もしWindows7に対応している言語で作成されているのであれば、まずは実行ファイルのプロパティにある互換性のタブからWindowsXPを選んだり、特権レベルを与えるなどして動作させてみては如何でしょう?もしこの設定変更で動作するのであれば、当面はそのまま使い続ける事が出来るかと思います。もしそれでも動作しないのであれば、Windows7に対応するように修正を加える事になります。ごく一般的なアプリケーションであれば、使用するフォルダの変更などで動作する可能性が高いと思います。
甕星
- 回答としてマーク goodwave 2019年6月26日 22:00
すべての返信
-
セキュリティ上問題にならないなら、Windows7のXPモードを使うのが早いかと思います。古いWindowsXPパソコンを利用するのは、セキュリティ上の問題だけでは無く、ハードウェアの耐久性の面からも不安があるので、一時しのぎとしてしかお勧めできません。セキュリティ上Windows XPを使うわけには行かないのであれば、Windows 7上で動作させる方法を探すことになります。まずは、アプリケーションを作成するために使用した言語は何でしょうか?古い言語(.Net Framework 1.1以前の.NetやVB6.0等)はWindows7に対応していないので、Windows7に対応する言語で手直しをする事になります。もしWindows7に対応している言語で作成されているのであれば、まずは実行ファイルのプロパティにある互換性のタブからWindowsXPを選んだり、特権レベルを与えるなどして動作させてみては如何でしょう?もしこの設定変更で動作するのであれば、当面はそのまま使い続ける事が出来るかと思います。もしそれでも動作しないのであれば、Windows7に対応するように修正を加える事になります。ごく一般的なアプリケーションであれば、使用するフォルダの変更などで動作する可能性が高いと思います。
甕星
- 回答としてマーク goodwave 2019年6月26日 22:00
-
確実じゃない中で推測で書いてしまうのはあまりよくないのですが、そのプログラムを「管理者として実行」で起動した場合は正常に動くのでしょうか。
(「管理者グループにいるアカウントで実行する」だけではなく、右クリックメニューから「管理者として実行」を選ぶと言うことです)これが正しいとすると、UAC について勉強していただき、今時のプログラムの作り方を学んでいただくことになります。
たとえば、Program Files に書き換え対象のデータを置かず、Application Data などのユーザーが書き込める場所に置く、どうしてもすべてのユーザーで共通にしたいなら ProgramData に保存するなど。なお、パスは Environment.GetFolderPath で得る必要があります。