HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0207
とりちゃそUSBはいいのにPCはダメ。10解決


とりちゃそ

リンク

2012/2/7(Tue) 22:56:19|NO.44751

USBに入っている実行ファイルでは起動し、なんら問題なく使用できるのに、
PCにコピーして実行すると、ファイルが見つからない(エラー12です)と言われてしまいます。

インクルードする「.as」系のファイルは同封してあるのですが…。

確かに色々ファイル操作をするプログラムですが…。

USBはいいのにPCはダメ。こういう状態ってどういう状況で作り出されるんでしょうか。
使用PCはWindows2000、HSP3.3がインストールされております。


吐き気がする日本語でごめんなさい(`_´)ゞ
もろ初心者です(`_´)ゞ



この記事に返信する


GENKI

リンク

2012/2/8(Wed) 00:16:46|NO.44754

先ず確認です。
PCにコピー後の実行は、スクリプトファイルをHSPエディタで開いて実行ですか?
それともEXEファイルをPC側にコピーして実行ですか?


> 色々ファイル操作

起動時にファイルを開いたりするということでしょうか?


> USBはいいのにPCはダメ。こういう状態ってどういう状況で作り出されるんでしょうか。

HDL(F1キー押すと出る奴)で「error.htm」を検索してみてください。
「HSP3 エラーメッセージ一覧」のページを見つけることができると思います。
エラーについての詳しい説明はここにありますので参考にしてみてください。

> 12 "ファイルが見つからないか無効な名前です"
> ファイル操作をする時に、指定されたファイルが見つからなかったか、 またはアクセスできないファイルである時に表示されます。

ありがちなパターンとして、
・ファイルの指定方法に問題がある。(絶対パスで指定しているなど)
・必要なファイルのコピーし忘れ。
・コピーする場所が間違っている。(フォルダ名間違いなど)



とりちゃそ

リンク

2012/2/8(Wed) 06:27:26|NO.44756

回答ありがとうございます。
exeファイルから実行しています。

実行ファイルの入っているファイルを丸ごとPCにコピーしました。


あと、全てのファイル名はdir_exe命令を使って取得していたはずなので、ファイル名が間違っている訳ではないと思います。
(あとで確認いたします。今から学校なので(^^;;)



GENKI

リンク

2012/2/8(Wed) 20:24:04|NO.44767

> exeファイルから実行しています。

> インクルードする「.as」系のファイルは同封してあるのですが…。

なるほどexeでしたか。
exeファイルにしたあとは.asファイルは必要ありません。
コピーしても使用されませんので、コピーの必要はありません。

ちなみにasファイルは何をインクルードしているのでしょうか。commonフォルダのものでしょうか?
物によってはexeと同じ場所にdllファイルをコピーする必要がある場合があります。
詳しくはインクルードしている各モジュール・プラグインのヘルプを読んでみてください。


> あと、全てのファイル名はdir_exe命令を使って取得していたはずなので、

これなら上であげた可能性がひとつ消えますね。
ファイルを読み込む行の直前で次のような記述を追加して、読み込むファイルが存在するか調べてみてはどうでしょう。
どの行のファイルが問題になっているかわかると思います。

;ファイルが存在するか確認 exist dir_exe + "\\filename" if strsize<0 : dialog "ファイルが見つかりません。\n" + dir_exe + "\\filename"



とりちゃそ

リンク

2012/2/8(Wed) 22:53:39|NO.44770

ホントに返信ありがとうございます!助かります!

出来たらスクリプト丸々載せたいんですが…。
長いし汚いしで、ちょっと載せられるのもではないので。

で、えっと、インクルードには問題がないようでした。
stop命令を使って、エラーの起こる行を探してみたので…(最初からこうすればよかった…)
一応インクルードするファイルを載せますと、[hspext.as][hspdef.as][mod_regexp.as]です。

そんでエラーの起こる行は全てbload命令のある行でした。
やはりか(^^;;



とりちゃそ

リンク

2012/2/8(Wed) 23:06:17|NO.44771

あ、どういうプログラムを作ったのか言った方が早く解決しそうな気がしてきました。
意外と単純なミスだったらごめんなさい…。


自分がやっとこさ完成させたプログラム(なぜかUSBからしか起動しないのだけれども!)は、いわば「監視プログラム」です。
削除登録されたウィンドウがあったら、すぐにAlt+F4を送信しちゃって消しちゃうっていうやつです。
例えば、「マインスイーパ」を登録させておけば、マインスイーパを起動しても瞬時に閉じられちゃうようになる訳です。

で、その機能だけの時は、PCにコピーしてもなんら問題は発生しなかったんです。
が、何を考えたのか、タスクマネージャーのプロセスからでも終了出来ない、という機能をつけたんです。
そしたら…、PCに嫌われたみたいです。起動出来なくなりました。



GENKI

リンク

2012/2/8(Wed) 23:28:14|NO.44772

> 一応インクルードするファイルを載せますと、[hspext.as][hspdef.as][mod_regexp.as]です。

dllは使ってないやつみたいですね。
ちなみに「hspdef.as」は自動的に読み込まれるので、includeしなくても使えます。

> そんでエラーの起こる行は全てbload命令のある行でした。

ではとりあえずそれぞれのbloadの直前で、次のようにしてファイルが存在するかチェックしてみてください。

s = dir_exe + "\\filename" ;読み込むファイル名 ;ファイルが存在するか確認 exist s if strsize<0 : dialog "ファイルが見つかりません。\n" + s : end ;ファイルがあったら読み込み bload s, a
これならきっとエラーが出る前にダイアログが出るはず…。


> が、何を考えたのか、タスクマネージャーのプロセスからでも終了出来ない、という機能をつけたんです。
> そしたら…、PCに嫌われたみたいです。起動出来なくなりました。

この機能を追加してからの起動できない症状は、エラー12で止まってしまうということでしょうか?
それとも別のメッセージか何か出ますか?



とりちゃそ

リンク

2012/2/8(Wed) 23:56:03|NO.44773

良い子は寝る時間なので、寝させていただきます(^^;;

明日、よく調べてから詳細をご報告させていただきます。(USBの他のディレクトリにコピーしたらどうなるか、とか)
なにはともあれ、GENKIさん、どうもありがとうございます!感謝感謝です。・°°・(>_<)・°°・。



M

リンク

2012/2/9(Thu) 00:40:40|NO.44774

PCが、もしマイドキュメントやデスクトップへコピーしているなら、ファイル名にスペースが含んでいたり全角文字を含んでいたりすると動かないようなプログラムで不具合が出ます。
フォルダをc:\にコピーして、それでもなおエラーが出るなら、また相談。という事で。



Cookies

リンク

2012/2/9(Thu) 08:53:48|NO.44776

>> 一応インクルードするファイルを載せますと、[hspext.as][hspdef.as][mod_regexp.as]です。
>dllは使ってないやつみたいですね。
あまり問題点に関係なさそうですけど、hspext.asはhspext.dll使ってますよ。

>が、何を考えたのか、タスクマネージャーのプロセスからでも終了出来ない、という機能をつけたんです。
>そしたら…、PCに嫌われたみたいです。起動出来なくなりました。
この機能はどのような方法で実装されたんでしょうか。
タスクマネージャのアプリケーションタブの「タスクの終了」から終了できないようにする方法は結構簡単ですが、
プロセスタブからでも終了できないとなると、相当危ないことしたんじゃないですか?w



とりちゃそ

リンク

2012/2/9(Thu) 19:53:06|NO.44780

Mさんの言っている通りでした!
Cにいれたら問題なく動作しました!
皆さんありがとうございました!

>Cookiesさん
やっぱ簡単には出来ないんですかねー…。
自分のやった方法としては、
プログラムAに、監視プログラムを組み、
プログラムBに、プログラムAが閉じたらプログラムAを起動する、ってやったんですよw
そしたら、まあ閉じない訳じゃあないんですが、消しても消しても再復活しちゃうんですね。
ついでにプログラムAにも、プログラムBが閉じたらプログラムBを起動するってやれば、もう止まんないんですね。

でも、自分の力量では、「プログラムAが閉じたら」ってのは出来なかったんですw
そこで思いついたのが、テキストファイルをいくつか作って、それで二つのプログラムでやりとりさせる、ってもんでした。
(ファイル操作ってこれです(^^;;)

まあ、二つ同時消し、ということが出来れば敵いませんが。


汚いやり方です(^^;;



ていうか、みなさんホントにどうもでした!
ご迷惑をおかけしました!



ONION software Copyright 1997-2021(c) All rights reserved.