関連付けした自作ソフトでのファイルの開き方


Noby  2017-12-14 22:33:01  No: 48878

お世話になります。

自作したメモ帳を*.txtに関連付けをしました。

その後、test.txt  をダブルクリックすると自作メモ帳は開きますが、

test.txtは読み込まれておりません。

  いろいろと調べては見たのですが、なかなかうまくいきませんでした。

どなたかご教授下さればありがたいです。


igy  2017-12-14 22:39:31  No: 48879

ちなみに、
自作したメモ帳の引数にファイル名が渡されればファイルを開くような処理を実装していますか?
もし、しているのであれば、
コマンドラインで、
  自作したメモ帳 "ファイル名のフルパス"
で実行した場合、正しく読み込まれますか?


Noby  2017-12-14 23:34:05  No: 48880

igyさん早速のご返答ありがとうございます。

処理の実装の仕方が判らない状態です。

OnCreate部分に記載をするのでしょうか?

その場合の変数の渡し方がよくわからないものですから

申し訳ございません、引き続きよろしくお願い致します。


Mr.XRAY  2017-12-15 00:50:06  No: 48881

会話が成立していませんね.

>コマンドラインで、 
>  自作したメモ帳 "ファイル名のフルパス" 
>で実行した場合、正しく読み込まれますか? 

はどうだったのですか ?


igy  2017-12-15 01:04:05  No: 48882

Delphi コマンドライン引数
などで、検索してみると、

Delphiでコマンドライン引数を取得する
http://tokibito.hatenablog.com/entry/20121023/1350935710

Delphi FAQ: コマンドライン引数の調べかた
http://delfusa.main.jp/delfusafloor/archive/www.nifty.ne.jp_forum_fdelphi/faq/00119.htm

などがあるので、それらを参考にされるとよいかもしれません。


Mr.XRAY  2017-12-15 02:36:29  No: 48883

>Delphi コマンドライン引数 
>などで、検索してみると、 

ググってもヒットしないので宣伝です.

[098] [04_コマンドプロンプトから EXE を起動する場合]
http://mrxray.on.coocan.jp/Delphi/plSamples/098_DragDropStartApp.htm#04


  2017-12-15 02:59:17  No: 48884

部に以下のように記述

ヲサヲサ>ヲサーヲサ
ヲサヲサアョョ((ア))

詳細はキーワードで検索して調べてください
スススススススススススススススススススススススススススススススススススススススス
ニコ あ
トコ イーアキッアイッアエィ木ゥ アクコウケコエカ  書込者ノト:ロ 」、。ァ」」「ハナヌ??
8クキ  ッョ ン

どれとは言いませんが、遠回し過ぎる禅問答のようなアドバイスでは、初心者は
理解できないのでは。トが廃れたのは、ユーザー数やドキュメントの圧倒的
な不足に加え、教えを請いやすい環境の欠如も原因のように感じます。会話が
成立していないと書かれてますが、そもそも実現部がまともに実装できてないと
容易に推測できる状況で、平気でそういうことを書くことこそ、会話が成立して
いないと言えるでしょう。こういう理解の下では有効なアドバイスもへった
くれもありません。

コードを記述しないまでも、ポイントを教えてあげることはできないもんでしょ
うか。初心者のうちは情報を特定するのも困難です。検索してドキュメントを隅
から隅まで読め、だけなら誰でも書けます。
スススススススススススススススススススススススススススススススススススススススス
ニコ 通りすがり
トコ イーアキッアイッアエィ木ゥ イーコオエコエケ  書込者ノト:ロ 「「。 ン

ほんとですよね。で、それいっておいて何も実践してないのはどうなんでしょう?w

関連付けというのはラに対して、特定の拡張子のファイルを「開く」アクションに特定の実行ファイルを
割り当てる、ということなのですが、これは例えばョリリリという拡張子にルルルルョナリナを関連付けると、
エクスプローラ上でレレレョリリリをダブルクリックしたときに、「ルルルルョナリナヲサレレレョリリリ「のようなコマンドラインが
実行されることになります。ですので、ルルルルョナリナではコマンドラインパラメータを見て、自分が開くべき
ファイル名を取得し、それを開く、という処理を別途実装する必要があります。コマンドラインパラメータは
ミモィゥとミテで取得できますが、ミモはアからミテまでの値を取るという点に注意が
必要ですィトだとーオリジンでーからテュアまでというケースが圧倒的に多いのですが、ミモは
数少ない例外ですゥ。

あとはこのあたりも参考にするともう少し的確な回答をもらえると思います。

技術系メーリングリストで質問するときのパターン・ランゲージ
コッッョョッッョ
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアキッアイッアオィ金ゥ ーーコアキコウキ  書込者ノト:ロ 「。 「」 ン

ヲサヲサミモはアからミテまでの値を取るという点に注意が必要です

なお、

ミモヲサ関数
コッッョョッフッヤッッモョミモ

によると、

ヲサヲサメモ:ヲサミモィーゥヲサは、実行プログラム(たとえば、テコワヤナモヤワヘルミメマヌョナリナ)のパスとファイル名を返します。ヲサ

とのこと。

トヲサキのヘルプでは、

ヲサヲサラヲサの場合,ミモィーゥヲサは実行プログラムのパスとファイル名(テコワヤナモヤワヘルミメマヌョナリナヲサなど)を返します。
ヲサヲサフヲサの場合,ミモィーゥヲサは,パラメータなしでプログラムを実行するために使われるコマンドを返します(ョッヲサなど)。この動作は,シェルプログラムが返す情報に依存し,シェルごとに異なる場合があります。

とあります。
スススススススススススススススススススススススススススススススススススススススス
ニコ ホ
トコ イーアキッアイッアオィ金ゥ ーケコオオコエカ  書込者ノト:ロ 「。「 「" ン

さん、ヘョリメチルさん、あさん、通りすがりさん

皆様からの書き込み大変ありがとうございます。

テキストファイルをダブルクリックすることで関連付けしたプログラムに
読み込ませることが、コマンドラインでパラメーターを付加
(ハヘョヲサヤョゥして起動をすることと同じであることを初めて
理解させていただきました。

ただ、問題がまだ解決しておりませんで、

下記のコードにて、コマンドラインから実行をさせる
ハヘョヲサヤョ  で確かに読み込めるようにはなったのですが、

ヤョをダブルクリックしただけですと、テキストの内容は読み込まれて

おりません。なぜなのでしょうか?

ヲサヲサミテヲサーヲサ
ヲサヲサヲサヲサ
ヲサヲサヲサヲサヘアョフョフニニィミモィアゥゥヲササッッファイル名
ヲサヲサヲサヲサニアョテコスミモィーゥサッッミを含んだプログラム名
ヲサヲサヲサヲササ
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアキッアイッアオィ金ゥ アーコウオコアオ  書込者ノト:ロ 「ィ  ン

ヲサヲサヤョをダブルクリックしただけですと、テキストの内容は読み込まれておりません。

そのときの、ミテヲサの値は、どのようになっていますか?
スススススススススススススススススススススススススススススススススススススススス
ニコ 通りすがり
トコ イーアキッアイッアオィ金ゥ アーコエキコオウ  書込者ノト:ロ 」。 。 ン

拡張子ョヤリヤってトトナ設定されてません?実際に関連付けする拡張子がョヤリヤなら、色々あるので大変な気がします。
そうでなければ実際の拡張子で試したらどうなりますか?

あと関連付けは

ニヤヘヲサュヲサチヲサヲサァニヲサヤァヲサヲサヲサラ
コッッョョッッ゜゜ョ

で確認や変更ができて便利ですィ管理者権限で実行するのを忘れずにゥ。
スススススススススススススススススススススススススススススススススススススススス
ニコ ホ
トコ イーアキッアイッアオィ金ゥ アアコアカコイエ  書込者ノト:ロ 「。「 「" ン

さん
>そのときの、ミテヲサの値は、どのようになっていますか?ヲサ
コマンドラインから起動(これは正常にテキストが読み込まれますので)した
場合は  ア  が帰ってきていますが、

ヤョィプログラムと同じフォルダーに入れていますゥをダブルクリック
するとミテに値が入っていないようです。

関連付けをさせているのは、

ヤョヤリヤを右クリック→プログラムから開く→既定のプログラムの選択
→(コンパイルされたナリナのあるフォルダーの)ハヘョヲサで設定
しています。

通りすがりさん

  すいません、トトナ設定とはなんなのでしょうか?ググってみましたが、
良くわかりませんでした。ちなみに、マモはラキです(7から設定
出来なくなっているというようなことが書かれているようです)
コッッョョョッニッュハミッイキュクウカカュエアカュカュイオエアエエキケカオッュキュソスキ
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアキッアイッアオィ金ゥ アアコイウコアキ  書込者ノト:ロ 「ィ  ン

ヲサヲサヤョィプログラムと同じフォルダーに入れていますゥをダブルクリックヲサ
ヲサヲサするとミテに値が入っていないようです。ヲサ

値がーではなく、「入っていない「というのは、どのようにして確認されましたか?

また、

ヲサヲサヲサミテヲサーヲサヲサ
ヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヘアョフョフニニィミモィアゥゥヲササッッファイル名ヲサ
ヲサヲサヲサヲサヲサニアョテコスミモィーゥサッッミを含んだプログラム名ヲサ
ヲサヲサヲサヲサヲササヲサ

この箇所は、実行されていますか?(処理が行われていますか?)
スススススススススススススススススススススススススススススススススススススススス
ニコ ホマby
トコ イーアキッアイッアオィ金ゥ アアコウウコオウ  書込者ノト:ロ 「。「 「" ン

>値がーではなく、「入っていない「というのは、どのようにして確認されましたか?ヲサ
ニアョテコスノヤモィミテゥサ

で確認をしました。以下の部分は実行されていないようです。

ヲサヲサミテヲサーヲサヲサ
ヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヘアョフョフニニィミモィアゥゥヲササッッファイル名ヲサ
ヲサヲサヲサヲサヲサニアョテコスミモィーゥサッッミを含んだプログラム名ヲサ
ヲサヲサヲサヲサヲササヲサ
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアキッアイッアオィ金ゥ アアコエウコエア  書込者ノト:ロ 「ィ  ン

ヲサヲサ以下の部分は実行されていないようです。ヲサ

(念のため、確認ですが)文自体も、処理が来ていないですか?
スススススススススススススススススススススススススススススススススススススススス
ニコ ホ
トコ イーアキッアイッアオィ金ゥ アイコーオコオカ  書込者ノト:ロ 「。「 「" ン

ちなみに、単純なヘ帳を作って実験してみましたら、ファイルのダブルクリックで
読み込むことが出来ました(感謝申し上げます!)

ただ、今作っているヘ帳だとだめなようです。

マホテ部分は以下のようになっています。
何が悪いのでしょうか?
ュュュュュュュュュュュュュュュュュュュュュュュュュュュュュュュュ
ヲサヤニアョニティモコヲサヤマゥサ
ヲサ
ヲサヲサノニコヲサヤノニサ
ヲサヲサニモコヤニモサヲサヲサヲサヲサヲサヲサヲサヲサヲサヤニモ型変数
ヲサヲサニヲサヲサヲサヲサコツヲサヲサニモサヤニモヲサツ型の共用変数
ヲサヲサニミコヤニミサ
ヲサヲサニヲサヲサヲサヲサコツヲサヲサニミサ
ヲサヲサニモヲサコノサ
ヲサヲサニネコノサッッフォームの高さ
ヲサヲサニラコノサッッヲサフォームの幅
ヲサヲサヘテフコモサッッメモ帳背景カラー
ヲサヲサヤツミコノサッットラックバーポジション
ヲサヲサニコノサッッヲサ最前面か否かアは最前面ーは通常表示
ヲサヲサニミヤコノサッッ終了時のヤポジションの位置
ヲサヲサニミフコノサッッ終了時のフポジションの位置

ヲサヲサ
ヲサヲサヲサヲサッッ起動時のパラメーター取得
ヲサヲサヲサヲサッッニアョテコスノヤモィミテゥサ
ヲサヲサヲサヲサノヲサミテヲサーヲサ
ヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヘアョフョフニニィミモィアゥゥヲササ
ヲサヲサヲサヲサヲサヲサヲサヲサニアョテコスミモィーゥサ
ヲサヲサヲサヲサヲサヲサヲサヲサニアョテコスァノニ文は通過しましたよ!ァサ
ヲサヲサヲサヲササ

ヲサヲサトチニィネャヲサヤメユナゥサッットヲサトをマホにする

ヲサヲサノニヲサコスヲサヤノニョティテニナィチョナホャヲサァョァゥゥサヲサッッこのファイルがなければ自動で生成する。

ヲサヲサ
ヲサヲサヲサヲサニミヤコスノニョメノィァニァャァヤマミァャーゥヲササッッヤマミの位置
ヲサヲサヲサヲサニミフコスノニョメノィァニァャァファャーゥヲササッッフの位置

ヲサヲサヲサヲサニネコスノニョメノィァニァャァネァャエウイゥサッッニ高さ
ヲサヲサヲサヲサニラコスノニョメノィァニァャァラァャカオオゥサヲサッッニ幅

ヲサヲサヲサヲサニコスノニョメノィァニァャァモァャーゥサ
ヲサヲサヲサヲサニコスノニョメノィァニァャァミァャーゥサ
ヲサヲサヲサヲサニモコスノニノョメノィァニァャァモァャアイゥサッッニサイズ
ヲサヲサヲサヲサヘアョニョホコスノニョメモィァニァャァホァャァネヌミゴシックヘァゥヲササッッフォント名
ヲサヲサヲサヲサヘアョニョテコスヲサモヤティノニョメモィァニァャァテァャァツァゥゥサッッフォントカラー
ヲサヲサヲサヲサヘテフコスノニョメモィァヘァャァテァャァラァゥサ
ヲサヲサヲサヲサヤツミコスノニョメノィァヤツァャァミァャイオオゥサッッ
ヲサヲサヲサヲサニニコスノニョメノィァニァャァニァャアゥサッッ最前面表示ア、通常表示ー
ヲサヲサヲサヲサッッ第三引数には値がない場合のデフォルト値が入る。あればその値を代入。ちょっと判りにくいけどね。
ヲサヲサヲサノニョニサ
ヲサヲササ

ヲサヲサヲサヲサヲサィニミフスーゥヲサヲサィニミフスーゥヲサヲサヲサヲサヲサッッ
ヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサニアョミコスモテサ
ヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサニアョヤコスニミヤサ
ヲサヲサヲサヲサヲサヲサヲサヲサニアョフコスニミフサ
ヲサヲサヲサヲサヲサヲササ

ヲサヲサヲサヲサニアョネコスニネサ
ヲサヲサヲサヲサニアョラコスニラサ
ヲサヲサヲサヲサヘアョテコスモヤティヘテフゥサ
ヲサヲサヲサヲサヘアョニョモコスヲサニモサ
ヲサヲサヲサヲサヘアョニョミコスヲサニミサ
ヲサヲサヲサヲサヘアョニョモコスヲサニモサ
ヲサヲサヲサヲサヤツアョミコスヤツミサ

ヲサヲサヲサヲサヲサニスーヲサ
ヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサニョテヲサコスヲサニヲササ
ヲサヲサヲサヲサヲサヲサヲサヲサニアョニモヲサコスヲサホヲササ
ヲサヲサヲサヲサヲサヲサヲサヲサモョテコスァ通常表示  ァサ
ヲサヲサヲサヲサヲサヲササ

スススススススススススススススススススススススススススススススススススススススス
ニコ ホ
トコ イーアキッアイッアオィ金ゥ アイコアオコオア  書込者ノト:ロ 「。「 「" ン

さん
>念のため、確認ですが)文自体も、処理が来ていないですか?ヲサ
上記のコードで見ますとノニ文の部分は通過していません。
スススススススススススススススススススススススススススススススススススススススス
ニコ 
トコ イーアキッアイッアオィ金ゥ アウコアキコウケ  書込者ノト:ロ 「ィ  ン

(変わらないかもしれませんが)

ヲサヲサヲサヲサヲサッッ起動時のパラメーター取得ヲサ
ヲサヲサヲサヲサヲサッッニアョテコスノヤモィミテゥサヲサ
ヲサヲサヲサヲサヲサノヲサミテヲサーヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサヘアョフョフニニィミモィアゥゥヲササヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサニアョテコスミモィーゥサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサニアョテコスァノニ文は通過しましたよ!ァサヲサ
ヲサヲサヲサヲサヲササヲサ

を、マテイベントの最後のほう、

ヲサヲサヲサヲサヲサヲサニスーヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサニョテヲサコスヲサニヲササヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサニアョニモヲサコスヲサホヲササヲサ
ヲサヲサヲサヲサヲサヲサヲサヲサヲサモョテコスァ通常表示  ァサヲサ
ヲサヲサヲサヲサヲサヲサヲササヲサ

の下に移動した場合、どうなりますか?
スススススススススススススススススススススススススススススススススススススススス
ニコ 通りすがり
トコ イーアキッアイッアオィ金ゥ アウコウカコエカ  書込者ノト:ロ 」。 。 ン

あまり関係ありませんが、モをお使いですか?その場合は

トヲサモヲサナヲサでのデバッグヲサュヲサム
コッッョッ゜ッックキクイアクアキクイアクア

がデバッグ時の参考になるかと。

基本的にはマテの先頭にブレークポイントを仕掛けて、ステップ実行で値と実行経路を確認しながら
デバッグするといいと思います。あ、ダブルクリックで実行したときの動作でしたね。イつのアプローチが
あります。一つはノトナからデバッグ実行で実行時引数を指定する。もう一つはマテの直後に時間が掛かる処理、
例えば
ヲサノヲサコスヲサーヲサヲサケヲサ

ヲサヲサモィアーーーゥサ

とかを入れて、その直後にブレークポイントを掛けた上で、ヤナモヤョヤリヤをダブルクリックし、上記の時間が
掛かる処理の間に実行→プロセスのアタッチでハヘョにアタッチするィ実行中のプログラムが
ノトナ上のデバッグ対象になりますゥ、という方法です。
スススススススススススススススススススススススススススススススススススススススス
ニコ ホ
トコ イーアキッアイッアオィ金ゥ アウコエケコオク  書込者ノト:ロ 「。「 「" ン

皆様、本当にご親切にご対応下さり、心から感謝申し上げます。

原因が判明しました。

関連付けに問題がありました。

確認できた問題は下記の現象でした。

チのフォルダにプログラム本体があり
ツのフォルダにも同名のプログラムを置いていました。

関連付けはチのフォルダで行っていたのですが、実際の関連付けは
ツで行われていました(フォルダーは一切してしていませんが、チ階層の上にあります)。
同じドライブに同名のプログラムがあったということになります。
チを選択して関連付けをしたのにです。

ですから、コマンドラインではうまく行ったのに、テキストファイルを
ダブルクリックしたら実装されていないプログラムが動いたということが
原因でした。

ちなみに、ツの方を削除すると、今度はチでは関連付けが出来ません。
これは全く原因が判りません。
スススススススススススススススススススススススススススススススススススススススス
ニコ ホ
トコ イーアキッアイッアオィ金ゥ アオコオイコアケ シ  スュアセシ初心者セ シッニセシノヘヌ ス「コッッョョョッッアョ「 ス「ー「セ 書込者ノト:ロ 「。「 「" ン
モコ 

さん、ヘョリメチルさん、あさん、通りすがりさんヲサ

貴重なコメントを下さりありがとうございました。

一旦解決とさせていただきます。

余談ですが・・・
今まではトナフミネノ6でしたが、メモヲサアーョアツが無料で公開されていたので
それで組んでいます。万年初心者でサンデープログラマーです。
これからもどうぞよろしくお願い致します。゜ィョ゜ョゥ゜

追伸:)
ヘョリメチルさんのサイトはいつも拝見させて
いただき参考にさせていただいています。
貴重な情報源ですィ゛゜゛サゥ
スススススススススススススススススススススススススススススススススススススススス
ニコ 通りすがり
トコ イーアキッアイッアオィ金ゥ アキコーエコーエ  書込者ノト:ロ 」。 。 ン

関連付けの状況はニヤヘで確認してみるといいかもしれません。

いまは最新版のアーョイヲサヤヲサメヲサイのモもあります。古いものを使う理由は
あまりないと思うので、最新版にしてみたらどうでしょう?
ィラインストーラはどんどん改善されていますしゥ
スススススススススススススススススススススススススススススススススススススススス
ニコ ホ
トコ イーアキッアイッアオィ金ゥ アキコアキコウエ  書込者ノト:ロ 「。「 「" ン

通りすがりさん

ご親切にありがとうございます。

探してインストールしてみます。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加