JP6129376B1 - プログラム - Google Patents
プログラム Download PDFInfo
- Publication number
- JP6129376B1 JP6129376B1 JP2016064496A JP2016064496A JP6129376B1 JP 6129376 B1 JP6129376 B1 JP 6129376B1 JP 2016064496 A JP2016064496 A JP 2016064496A JP 2016064496 A JP2016064496 A JP 2016064496A JP 6129376 B1 JP6129376 B1 JP 6129376B1
- Authority
- JP
- Japan
- Prior art keywords
- program
- type
- function
- target
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
図1は、本発明の一実施形態に係る情報処理システム11の概略的な構成例を示す図である。
情報処理システム11は、複数の端末装置21〜25と、ネットワーク31を備える。各端末装置21〜25は、ネットワーク31に接続されている。
各端末装置21〜25は、コンピュータなどである。
ネットワーク31は、インターネットなどである。
また、図1の例では、1個のネットワーク31を示したが、ネットワークの数は任意であってもよい。
また、情報処理システム11の構成は、他の構成であってもよい。
また、本実施形態では、端末装置21〜25がネットワーク31に接続される例を示すが、他の構成例として、端末装置21〜25がネットワーク31に接続されなくてもよい。
図2は、本発明の一実施形態に係る端末装置21の概略的な構成例を示す図である。
ここで、本実施形態では、各端末装置21〜25について、概略的な構成は同様である。このため、本実施形態では、端末装置21を例として、構成例および動作例を示す。
端末装置21は、プロセッサ101と、メモリ102と、ネットワークインターフェイス103と、操作部104と、表示部105と、記憶装置106と、入出力インターフェイス107と、これらを接続するバス111を備える。
メモリ102は、揮発性の記憶部であり、RAM(Random Access Memory)などから構成されており、データを一時的に記憶する。RAMとしては、例えば、DRAM(Dynamic Random Access Memory)が用いられてもよい。
ネットワークインターフェイス103は、外部のネットワーク(本実施形態では、ネットワーク31)と接続するインターフェイスである。
操作部104は、キーボード、マウスなどのうちの1以上から構成されており、人(ユーザ)により行われる操作を受け付ける。
表示部105は、画面を有しており、情報を当該画面に表示出力する。
記憶装置106は、不揮発性の記憶部であり、例えば、ハードディスクなどから構成されており、データを記憶する。
入出力インターフェイス107は、外部の記録媒体などと接続するインターフェイスである。
まず、実施形態の背景の技術について説明する。
例えば、アプリケーション開発および実行環境であるドットネットフレームワーク(.NET Framework)の上で動作するプログラムでは、実行対象に合ったビルドタイプを指定することが可能である。実行対象のプラットフォームとなるオペレーティングシステム(OS:Operating System)として、32ビットのオペレーティングシステム(32ビットOS)、または、64ビットのオペレーティングシステム(64ビットOS)がある。
<x86>
x86は、32ビットOSまたは64ビットOSのうちのいずれにおいても、32ビットプロセスとして動作する。なお、x86は、64ビットOSでは、エミュレーションレイヤー・サブシステムであるWOW64で動作する。
<x64>
x64は、32ビットOSでは動作が不可能である。x64は、64ビットOSでは64ビットプロセスとして動作する。
<AnyCPU>
AnyCPUは、32ビットOSでは32ビットプロセスとして動作し、64ビットOSでは64ビットプロセスとして動作する。
ここで、32ビットプロセスと64ビットプロセスとの間での情報のやり取りあるいは操作には、OSレベルで一定の制限が行われている。このため、例えば、32ビットプロセスで動作しているプログラムから、64ビットプロセスで動作しているプログラムの情報を取得しようとするときに、あるいは、32ビットプロセスで動作しているプログラムから、64ビットプロセスで動作しているプログラムに対して何らかの操作を行おうとするときに、エラーになる場合が存在する。
このようなプログラムは、上記した制限によって、64ビットOSでは、当該プログラムが動作するプラットフォームと、IEが動作しているプラットフォームとが異なると、IEを操作することができない状況が発生する。具体例として、当該プログラムが64ビットプロセスで動作している一方、IEが32ビットプロセスで動作していると、当該プログラムからIEにアクセスすることができない。
本実施形態に係るプログラム(以下で、「本プログラム」ともいう。)について説明する。
以下で、IEや本プログラムが動作するプロセスのプラットフォームを「動作プラットフォーム」ともいう。
IEについて、64ビットOSでは、設定値を一つ変えるのみで32ビットプロセスと64ビットプロセスとが切り替わることが把握された(例えば、IE11)。このため、IEが32ビットと64ビットのいずれのプロセスとして動作しているかは、環境によって異なる可能性がある。
そこで、本プログラムは、動作中のIEをチェックし、当該IEが動作しているプラットフォーム(動作プラットフォーム)が現在において本プログラムが対象としている動作プラットフォームと一致しない場合には、当該IEが動作しているプラットフォーム(動作プラットフォーム)に合わせて起動し直す機能を有する。これにより、本プログラムは、本プログラムを実行する端末装置21の設定にかかわらず(つまり、IEが32ビットプロセスと64ビットプロセスとのうちのいずれで動作していても)、IEを操作することが可能である。
<第1の組み合わせ>
32ビットOSと、AnyCPU向けビルドとの組み合わせである。この場合、本プログラムは、32ビットプロセスとして動作する。
<第2の組み合わせ>
64ビットOSでIEが32ビットプロセスで動作する状態と、x86向けビルドとの組み合わせである。この場合、本プログラムは、32ビットプロセスとして動作する。
<第3の組み合わせ>
64ビットOSでIEが64ビットプロセスで動作する状態と、AnyCPU向けビルドとの組み合わせである。この場合、本プログラムは、64ビットプロセスとして動作する。
本プログラム201は、AnyCPUに関するリソース(以下、「AnyCPUリソース」ともいう。)221と、x86に関するリソース(以下、「x86リソース」ともいう。)222を含む。
本プログラム201は、AnyCPUに対応して動作するプログラム(以下で、「AnyCPU対応プログラム」ともいう。)を生成する機能と、x86に対応して動作するプログラム(以下で、「x86対応プログラム」ともいう。)を生成する機能を有する。AnyCPU対応プログラムは、32ビットプロセスまたは64ビットプロセスで動作する。x86対応プログラムは、32ビットプロセスで動作する。
本実施形態では、端末装置21において、プロセッサ101が、メモリ102を用いて、記憶装置106に記憶された本プログラム201を読み出して実行する場合を示す。
ここで、本実施形態では、AnyCPU向けビルドと、x86向けビルドとで、実質的な処理の中身は同等である。これら2種類のビルドにおいて、例えば、ソースコードを共有してもよい。
端末装置21において、本プログラム201を実行する。
本プログラム201は、実行されると、端末装置21において動作している目標となるプログラム(以下で、「目標プログラム」ともいう。)の動作プラットフォームを判定する。本実施形態では、目標プログラムはIEである。
具体的には、本プログラム201は、端末装置21における機能として存在するシェルウインドウ一覧を取得する。そして、本プログラム201は、取得したシェルウインドウ一覧において、ファイルパスを順次チェックして、IEのプログラム名であるファイルパスを探索する。IEのプログラム名であるファイルパスを発見した場合、本プログラム201は、発見したIEの動作プラットフォームを判定する。本実施形態では、本プログラム201は、ファイルパスに「x86」という文字列が含まれている場合には32ビットプロセスであると判定し、他の場合には64ビットプロセスであると判定する。
本プログラム201は、本プログラム201に起因して実行中のプログラム(本実施形態では、AnyCPU対応プログラム、または、x86対応プログラム)の動作プラットフォームを判定する。
具体的には、本実施形態では、AnyCPU対応プログラムとx86対応プログラムとで、プログラムの名称を異ならせている。そして、本プログラム201は、実行中のプログラムの名称に基づいて、動作プラットフォームを判定する。
本プログラム201は、目標プログラムの動作プラットフォームと実行中のプログラムの動作プラットフォームとが一致するか否かを判定する。
これらの動作プラットフォームが一致する場合には(ステップS4:YES)、本フローの処理が終了する。この場合、実行中のプログラムが、発見されたIEを操作対象として利用する。
一方、これらの動作プラットフォームが一致しない場合には(ステップS4:NO)、本プログラム201は、切り替え先のプログラムが存在するか否かを判定する。
ここで、これらの動作プラットフォームが一致しない場合としては、本実施形態では、端末装置21において64ビットOSが使用されており、且つ、目標プログラムの動作プラットフォームと実行中のプログラムの動作プラットフォームとが一致しない場合がある。
この場合、本プログラム201は、切り替え先のプログラム(本実施形態では、AnyCPU対応プログラム、または、x86対応プログラム)が既にファイルとして存在するか否かを判定する。ここで、本実施形態では、AnyCPU対応プログラムおよびx86対応プログラムが同一のフォルダに出力される構成としてあり、本プログラム201は当該フォルダをチェックする。
切り替え先のプログラムが存在しない場合(ステップS5:NO)、本プログラム201は、切り替え先のプログラムを生成する。
本実施形態では、本プログラム201は、本プログラム201のリソースとして埋め込まれている切り替え先のプログラムをファイルに出力する。本プログラム201は、AnyCPU対応プログラムとx86対応プログラムとで、それぞれに定められた別の名称のファイルを同一のフォルダに出力する。
ステップS5において切り替え先のプログラムが存在した場合(ステップS5:YES)、または、ステップS6において切り替え先のプログラムを生成した場合、本プログラム201は、切り替え先のプログラムを新規プロセスとして実行する。
そして、本プログラム201は、切り替え元のプログラム(実行中であったプログラム)を終了する。
以上のように、本実施形態に係るプログラム(本プログラム201)では、対象のプラットフォームに合わせて実行プログラムを切り替えることが可能であり、複数のプラットフォームで動作を行うことが可能である。
また、本実施形態に係るプログラム(本プログラム201)は、目標プログラムを操作する機能を有したが、他の構成例として、目標プログラムに関する他の機能を有してもよい。
他の例として、本実施形態に係るプログラム(本プログラム201)は、他の端末装置(図1の例では、端末装置22〜25)または他のサーバ装置などからネットワーク31を介して端末装置21に送信されることで、当該端末装置21により受信されて、当該端末装置21の記憶装置106に記憶されてもよい。
他の例として、本実施形態に係るプログラム(本プログラム201)は、記録媒体から入出力インターフェイス107を介して端末装置21に入力されることで、当該端末装置21の記憶装置106に記憶されてもよい。
一構成例として、第1の機能は、目標プログラム(実施形態では、IEのプログラム)が動作するプラットフォームを識別し、第2の機能は、第1のプラットフォーム(実施形態では、AnyCPUまたはx86に対応するプラットフォーム)に合った第1のプログラム(実施形態では、AnyCPU対応プログラムまたはx86対応プログラム)が実行されているときに、前記第1の機能により識別されたプラットフォームが第1のプラットフォームではないと判定した場合に、前記第1の機能により識別されたプラットフォームに対応する第2のプラットフォーム(実施形態では、x86またはAnyCPUに対応するプラットフォーム)に合った第2のプログラム(実施形態では、x86対応プログラムまたはAnyCPU対応プログラム)を実行する。
一構成例として、第2の機能は、第1のプログラムのファイルおよび第2のプログラムのファイルを生成する(実施形態では、ファイルとして出力する)。
一構成例として、プログラム(実施形態では、本プログラム201)は、第1のプログラムの情報および第2のプログラムの情報を含む(実施形態では、リソースとして含む)。
なお、ここでいう「コンピュータシステム」とは、オペレーティングシステムあるいは周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えば、DRAM)のように、一定時間プログラムを保持しているものも含む。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
Claims (4)
- プログラムであって、
自プログラムにより操作する対象となる他のプログラムである目標プログラムが動作するプラットフォームに応じた前記目標プログラムのプロセスの種類を識別する第1の機能と、
前記第1の機能により識別された前記目標プログラムのプロセスの種類が自プログラムのプロセスの第1の種類と整合しているか否かを判定する第2の機能と、
前記第2の機能により前記目標プログラムのプロセスの種類が自プログラムのプロセスの前記第1の種類と整合していないと判定された場合、前記目標プログラムのプロセスの種類と整合する第2の種類の自プログラムのプロセスを起動させ、自プログラムの前記第1の種類のプロセスを終了させる第3の機能と、
をコンピュータに実現させるためのプログラム。 - プログラムであって、
自プログラムにより操作する対象となる他のプログラムである目標プログラムが動作するプラットフォームに応じた前記目標プログラムのプロセスの種類を識別する第1の機能と、
前記第1の機能により識別された前記目標プログラムのプロセスの種類が自プログラムのプロセスの第1の種類と整合しているか否かを判定する第2の機能と、
前記第2の機能により前記目標プログラムのプロセスの種類が自プログラムのプロセスの前記第1の種類と整合していないと判定された場合、前記目標プログラムのプロセスの種類と整合する自プログラムのプログラムファイルを生成し、生成されたプログラムファイルに係る第2の種類のプロセスを起動させる第3の機能と、
をコンピュータに実現させるためのプログラム。 - 前記第3の機能は、自プログラムの前記第2の種類のプロセスを起動させ、自プログラムの前記第1の種類のプロセスを終了させる、
請求項2に記載のプログラム。 - 自プログラムは、前記第1の種類のプロセスおよび前記第2の種類のプロセスに係るプログラムのリソースを有する、
請求項1から請求項3のいずれか1項に記載のプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016064496A JP6129376B1 (ja) | 2016-03-28 | 2016-03-28 | プログラム |
SG11201808130RA SG11201808130RA (en) | 2016-03-28 | 2017-03-09 | Program |
PCT/JP2017/009503 WO2017169631A1 (ja) | 2016-03-28 | 2017-03-09 | プログラム |
TW106108130A TWI625673B (zh) | 2016-03-28 | 2017-03-13 | 電腦程式產品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016064496A JP6129376B1 (ja) | 2016-03-28 | 2016-03-28 | プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6129376B1 true JP6129376B1 (ja) | 2017-05-17 |
JP2017182202A JP2017182202A (ja) | 2017-10-05 |
Family
ID=58714825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016064496A Active JP6129376B1 (ja) | 2016-03-28 | 2016-03-28 | プログラム |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP6129376B1 (ja) |
SG (1) | SG11201808130RA (ja) |
TW (1) | TWI625673B (ja) |
WO (1) | WO2017169631A1 (ja) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5432937A (en) * | 1993-08-20 | 1995-07-11 | Next Computer, Inc. | Method and apparatus for architecture independent executable files |
JPH1083282A (ja) * | 1996-05-31 | 1998-03-31 | Hewlett Packard Co <Hp> | ソフトウエアライブラリ |
JP2009086722A (ja) * | 2007-09-27 | 2009-04-23 | Canon Inc | 情報処理装置、情報処理方法、プログラム、及び記憶媒体 |
JP2010257033A (ja) * | 2009-04-22 | 2010-11-11 | Hitachi Software Eng Co Ltd | ユーザログ収集装置、及びユーザログ管理システム |
JP2011258167A (ja) * | 2010-06-11 | 2011-12-22 | Adlux Co Ltd | Usbメモリに内蔵したプログラムをそのまま実行させる方法 |
JP2012014637A (ja) * | 2010-07-05 | 2012-01-19 | Fujitsu Ltd | 起動処理方法、情報処理装置、起動処理プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 |
US20120066699A1 (en) * | 2010-09-15 | 2012-03-15 | Myspace, Inc. | Dynamic native binding for managed assemblies |
WO2013046595A1 (ja) * | 2011-09-26 | 2013-04-04 | 日本電気株式会社 | 情報処理システム、情報処理方法、情報処理装置およびその制御方法と制御プログラム |
JP2015524126A (ja) * | 2012-06-18 | 2015-08-20 | マイクロソフト コーポレーション | 適応的に移植性を有したライブラリ |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200723095A (en) * | 2005-12-14 | 2007-06-16 | Inventec Corp | Method using 32-bit main program to intercept 64-bit messages in a 64-bit system |
-
2016
- 2016-03-28 JP JP2016064496A patent/JP6129376B1/ja active Active
-
2017
- 2017-03-09 WO PCT/JP2017/009503 patent/WO2017169631A1/ja active Application Filing
- 2017-03-09 SG SG11201808130RA patent/SG11201808130RA/en unknown
- 2017-03-13 TW TW106108130A patent/TWI625673B/zh active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5432937A (en) * | 1993-08-20 | 1995-07-11 | Next Computer, Inc. | Method and apparatus for architecture independent executable files |
JPH1083282A (ja) * | 1996-05-31 | 1998-03-31 | Hewlett Packard Co <Hp> | ソフトウエアライブラリ |
JP2009086722A (ja) * | 2007-09-27 | 2009-04-23 | Canon Inc | 情報処理装置、情報処理方法、プログラム、及び記憶媒体 |
JP2010257033A (ja) * | 2009-04-22 | 2010-11-11 | Hitachi Software Eng Co Ltd | ユーザログ収集装置、及びユーザログ管理システム |
JP2011258167A (ja) * | 2010-06-11 | 2011-12-22 | Adlux Co Ltd | Usbメモリに内蔵したプログラムをそのまま実行させる方法 |
JP2012014637A (ja) * | 2010-07-05 | 2012-01-19 | Fujitsu Ltd | 起動処理方法、情報処理装置、起動処理プログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体 |
US20120066699A1 (en) * | 2010-09-15 | 2012-03-15 | Myspace, Inc. | Dynamic native binding for managed assemblies |
WO2013046595A1 (ja) * | 2011-09-26 | 2013-04-04 | 日本電気株式会社 | 情報処理システム、情報処理方法、情報処理装置およびその制御方法と制御プログラム |
JP2015524126A (ja) * | 2012-06-18 | 2015-08-20 | マイクロソフト コーポレーション | 適応的に移植性を有したライブラリ |
Also Published As
Publication number | Publication date |
---|---|
SG11201808130RA (en) | 2018-10-30 |
WO2017169631A1 (ja) | 2017-10-05 |
TWI625673B (zh) | 2018-06-01 |
JP2017182202A (ja) | 2017-10-05 |
TW201734782A (zh) | 2017-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10812566B2 (en) | Distributed steam processing | |
US7962496B2 (en) | Migrating personality of computing environment from source platform to target platform | |
US10574724B2 (en) | Automatic discovery of management nodes and generation of CLI using HA module | |
JP5268945B2 (ja) | ユーザーインターフェースの表示を管理する方法 | |
JP2019518257A (ja) | 状態制御方法及び装置 | |
US9329858B2 (en) | Managing access to resource versions in shared computing environments | |
WO2016058488A1 (zh) | 一种用于提供sdk文件的方法与设备 | |
US9110917B2 (en) | Creating a file descriptor independent of an open operation | |
CN110727417B (zh) | 一种数据处理方法和装置 | |
US20090183086A1 (en) | Componentized Remote User Interface | |
US10809983B1 (en) | Using an abstract syntax tree for generating names in source code | |
US10298656B2 (en) | Extending representational state transfer application program interface (REST API) functionality | |
JP6329329B2 (ja) | コード・キャッシング・システム | |
JP6129376B1 (ja) | プログラム | |
CN111800511A (zh) | 同步登录态的处理方法、系统、设备及可读存储介质 | |
CN110782040A (zh) | 一种pytorch任务训练方法、装置、设备及介质 | |
US8201175B2 (en) | Creating and associating a virtual pseudo TTY with a running process | |
CN115774701A (zh) | 数据共享方法、装置、电子设备及存储介质 | |
JP5353891B2 (ja) | 分散処理システム、分散処理方法およびプログラム | |
WO2019237780A1 (zh) | Android系统Activity的启动方法和装置 | |
US20090006942A1 (en) | Embedded markup resources | |
JP7178912B2 (ja) | ネットワークドライブ割当方法及び中央装置 | |
JP6875334B2 (ja) | サーバ、システム、クライアント装置、ログ情報記憶方法、クライアント情報送信方法及びプログラム | |
JP2021149191A (ja) | 情報処理装置、情報処理方法 | |
JP5985098B1 (ja) | プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20161122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170214 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20170222 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170314 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170411 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6129376 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |