したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

■■■20レス以内で済むF-BASICの質問はこちらへ■■■

1F橋:2003/12/19(金) 20:48
20レス以内程度(20回程度の投稿)で終わりそうなF-BASICの質問はこちらでお願いします
短い質問のスレッドがいくつも立つより1つのスレッドで固まっていた方が長期に渡り見ることができ
かつ保存も簡単かと…

(いや…私だけでなく…皆さんも簡単のはずなんですが…(汗(笑)))

掲示板の内容の長期保存にご協力頂ける様よろしくお願いします

196F橋:2005/02/22(火) 02:05:26
>>194
このHPのトップページでリンクしてある

F-BASICでAPI
http://www.geocities.co.jp/SiliconValley-SantaClara/1866/index.html

↑の
http://www.geocities.co.jp/SiliconValley-SantaClara/1866/FB/toukou/FV63LIB.html
をご参照下さい



>>195
え?そんな症状があるんですか?
その症状はF-BASICだけなんでしょうか?

うろ覚えですが似たような症状でハード(キーボードかマウス)の故障だった事があったような無かったような・・・
相変わらずお役に立たずにすいません

197akira:2005/02/22(火) 15:59:36
>>その症状はF-BASICだけなんでしょうか?
そうなんです!ほかのアプリでは何でもないようなんです。
前回は上書きしてみたけどだめだったので、今度は完全に
アンインストールして入れなおしてみようかな。

198nisii:2005/02/22(火) 17:59:55
>>197
フォームのプロパティで、トップモーストを指定していませんか?
これをしてると、統合環境のダイアログが隠れて操作できなくなることもあります。
トップモーストは、プログラムから指定することをお勧めします。

199akira:2005/02/22(火) 20:52:50
nisiiさん、いつもありがとうございます。
>>フォームのプロパティで、トップモーストを指定していませんか?
してないです。今回一度削除して再インストールしたんですが
まったく変わりませんでした。
どうも常駐プログラムが悪さしているような気がしてきました
最近セットアップしたSKYPUとB's Recorder GOLD8を止めてもう一度
テストしてみます。

200akira:2005/02/22(火) 22:40:06
やっぱりだめでした。しくしく
ただタイトルバーをワンクリックしてからコントロールの配置位置を
決定すればメインフォームが隠れなくなることがわかったので、とりあえず
そうやって見ます。残念!!

201F橋:2005/02/23(水) 02:49:33
>>200
全然関係ない可能性が高いですが・・・
ウイルスとスパイウェアのチェック(特にスパイウェア)をしたらどうなります?


ウイルスバスター オンラインスキャン
http://housecall.antivirus.com/housecall/start_jp.asp?i=n

Spybot (スパイウェアのチェック)
http://www.dream-seed.com/pukiwiki/index.php?Windows%2FSpybot%A4%CE%BB%C8%A4%A4%CA%FD

202akira:2005/02/23(水) 08:38:40
スパイウエア・ウイルス共にいませんでした。

203F橋@役立たず管理人:2005/02/24(木) 20:25:45
>>202
お騒がせしてしまい申し訳ございませんでした

204nisii:2005/02/25(金) 11:45:21
>>199
ある日を境にこの症状が起きるようになったのであれば、
その直前にやったことが原因ですよね。

WindowsXP SP2を入れた。
DirectXを更新した。
ディスプレイドライバを更新した。
「タスクバーをほかのウィンドウの手前に表示する」などの設定を変えた。
キー・マウス操作の補助ツールを入れた。
トップモースト属性のウィンドウを持つ常駐ソフトを入れた。
気づかずに何かのソフトを入れた。

・そのプロジェクトファイルにフォームを2つ以上登録しているなら、
属性を比較してみる。

・セーフモードではどうでしょう?
セーフモードで正常なら、常駐ソフトが原因の可能性大。

205akira:2005/02/25(金) 19:47:36
nisiiさんいつもありがとうございます。
>>WindowsXP SP2を入れた。
SP2を入れた後も正常に動いていました。
>>DirectXを更新した。
これは意識的には更新していないんですが、テストで
Desktop On-CallというIBMのアプリを組み込んだとき
DirectXを更新したかもしれません。
後前にも書きましたが、B'SとSKYPUを入れたんで削除してみたんですが
やはり変わりませんでした。
まだセーフモードではやっていないのですぐやってみます。
フォームにコントロールを配置するときって最初のうちにやっているので
最近はづっとコーディングばかりだったので気がつくのがおくれてしまい
原因がつかめません。
また報告します。

206akira:2005/02/26(土) 14:54:19
セーフモードでやってみましたが、全く同じ動きでした。
後はDirectXぐらいしか思いつきません。ヒロシですヒロシです・・・・

207nisii:2005/02/26(土) 16:29:04
>>206

セーフモードで変わらないなら、F-BASICの問題か、
キーフックがらみのシステムを書き換えられたか、くらいかな?

前者ならアンインストール後、フォルダの削除。
もちろん残っているはずのレジストリキーも削除。
で、再インストール。

後者だとちょっと面倒だね。システムの復元じゃ直らないかも。

208akira:2005/02/27(日) 17:32:20
nisiiさんどうもです。
参考にいろいろやってみます。

209F-BASIC愛好者:2005/03/01(火) 14:14:49
時々拝見しまして勉強になり大変助けられています。
ファイルをダウンロードするため、ダウンロード記述をクリックしますと、
ファイルのダウンロードで保存する場所(I)がデスクットプになります。
F-BASICで保存する場所(I)をデスクットプでなく指定する場所に変更することは
可能でしょうか。もし、可能でありましたら、ご教授よろしくおねがいします。

210nisii:2005/03/02(水) 10:59:33
WINSAVEDLG関数を実行したときの、デフォルトディレクトリを変更したい
ということでしょうか?
そうなら、APIのSaveDlg()を使えば指定できそうですよ。

211F-BASIC愛好者:2005/03/02(水) 14:27:11
nisiiさん返信ありがとうございました。
自分は説明ができていませんでした。本当に申し訳ありません。
自分事ですが、音声読み上げにつきまして下記にしました。
http://www-6.ibm.com/jp/voiceland/download/engdown.html
http://www-6.ibm.com/jp/voiceland/pt20/ocxdown.html
1.ファイルのダウンロードのダイアルログボックスが表示されます。
2.ダイアルログボックスの保存(S)をクリックします。
3.保存する場所(I)は デスクトップになっていました。
PT97VD07.EXE、PT97ENG.EXE、PTOCX.EXE 3個のソフトをダウンロードします。
これらをソフトでダウンロード&インストールしたいと考えています。
 ダウンロード
1.shell "http://www-6.ibm.com/jp/voiceland/download/dl/PT97VD07.EXE" 
2.shell "http://www-6.ibm.com/jp/voiceland/download/dl/PT97ENG.EXE"  
3.shell "ftp://ftp.jp.ibm.com/pub/software/internet/viavoice/ptocx.exe"
 インストール
shell CRDIR$("")+"\Pt97eng.exe" 
shell CRDIR$("")+"\Pt97vd07.exe" 
shell CRDIR$("")+"\SETUP\SETUP.EXE"
shell CRDIR$("")+"\ptocx.exe"
その保存場所の変更、保存する場所(I)が今どの場所になっているかが
解ればCRDIR$("")が定まりソフトでダウンロード&インストールが行えるので
はないかと考えています。何か方法がありましたら宜しくお願いいたします。

212nisii:2005/03/02(水) 15:43:52
IEに限定していいなら、最後に使ったダウンロード先は分かります。

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Download Directory

レジストリの操作例は、トップの記事に書いています。
http://www.geocities.jp/fbasic63/fbn005.htm

213F-BASIC愛好者:2005/03/02(水) 15:55:41
早々ご回答頂きましてお礼を申し上げます。
レジストリの操作例から最後に使ったダウンロード先が
HKEY_CURRENT・・・ Directoryから分かるとの事で
挑戦する事ができます。本当にありがとうございました。

214mgo:2005/03/02(水) 16:38:35
始めまして。いつもは自分で調べものをして解決してるのですが、
とうとう私にはどうにもできない壁にぶつかってしまいました。
さっそくその質問です(くだらなかったらどうしよう・・・)。
f-basicにおいてビットマップボタンを新規プロジェクトで使うにはどうすれば良いですか?
サンプルBのMCIフォルダにあるにはあるんですが、全然参考になりません。
どなたかご教示お願いします。

215nisii:2005/03/02(水) 18:27:28
プロジェクトにリソースファイル .rc を登録。

リソース…インポートでビットマップを登録。

あとは、フォーム上にビットマップボタンを貼り付け、
プロパティ上からビットマップボタン名を選択。

\Sample_B\BmpBtn も参考になるかと。

216mgo:2005/03/03(木) 14:05:43
なるほど・・・
だいたいわかりました。
ということは、ボタンを押したときに表示するbitmaapも用意しないといけない
と考えてよろしいでしょうか?

217nisii:2005/03/03(木) 15:51:22
>>216

「通常」「押す」を同じビットマップファイルにすることもできます。
押したときに大きく変化するのがいいかどうかは、お好みで。(笑)

218mgo:2005/03/03(木) 16:02:13
よくわかりました。
nisii様、丁寧にお答えいただきありがとうございました。

219F-BASIC愛好者:2005/03/05(土) 13:29:36
お世話になります。
>>211
ファイルのダウンロードにつきましてよろしくお願いいたします。
Windows98,2000で時々、例 shell "http://www-6.ibm.com/jp/voiceland/download/dl/PT97VD07.EXE"
でファイルのダウンロードのダイアルログボックスが表示されますがダイアルログボックスが直ぐ消えることがあります。
タスクバーにもありませんでした。消えるのはどのような事が考えられますでしょうか。
ご存知の方がおりましたら、ご指導願えませんでしょうか。よろしくお願いいたします。

220F-BASIC愛好者:2005/03/07(月) 21:34:26
>>219
ハッキリした事は断定できていませんがウイルス対策ソフト
スパイウエアーの常駐ナシの状態で行っています。
現在の所ダイアルログボックスが消えるような事は発生していません。
FBASICは問題ないと思いました。お世話になりました。

221F-BASIC愛好者:2005/03/13(日) 13:41:36
度々、お世話になります。
初歩的な質問で申し訳ありません。
レジストリの使用につきまして宜しくお願いいたします。
記述に本ソフトは、レジストリ命令を使用していませんので、
システムを壊すような処理は行っておりませんとありました。
レジストリ命令の使用とはレジストリの値を書き換えと思っていますが。
ご指導頂きました>>211最後に使ったダウンロード先、IEのバージョンは
レジストリの値を読み込んでいます。レジストリの値を読み込むだけなら
レジストリ命令の使用に該当しないと思ってよいのでしょうか。また、
実行ファイル(拡張子が.exe)がレジストリを使用しているか、
使用してないか調べる方法はありますでしょうか。
もし、ありましたらご教授して頂ければと願います。宜しくお願いいたします。

222nisii:2005/03/14(月) 11:13:34
>レジストリの値を読み込むだけなら
>レジストリ命令の使用に該当しないと思ってよいのでしょうか。

「参照」でもレジストリを使用しています。
ユーザーに不安を与えたく無いなら「レジストリは変更しません」でいいでしょう。

>実行ファイル(拡張子が.exe)がレジストリを使用しているか、
>使用してないか調べる方法はありますでしょうか。

外から調べるのはまず無理で、作成者に問い合わせるのが一番確実です。

どうしても自力でということでれば、レジストリの監視ツールをなどを使って、
特定の操作をしたときの変化を頼りに推察するしかありません。

223F-BASIC愛好者:2005/03/14(月) 15:04:10
nisii さん
返信くださいまして、ありがとうございました。
レジストリ命令の使用について「レジストリは変更しません」は大変参考になりました。
お陰様でレジストリの監視ツールはレジストリ番犬ロンを検索で探して使用できました。
お礼を申し上げます。

224F-BASIC愛好者:2005/03/21(月) 14:53:01
お世話になります。
例・・・・ VAR www As string *32765
で32765部分の数値を定数(32765)として使用しています。
定数部分を可変できるようにしたいのですが。
ご存知の方がおりましたら、ご教授して頂ければと願います。
宜しくお願いいたします。

225nisii:2005/03/22(火) 14:50:15
工夫できてもこの程度かと。

#define MAX_STRING 32765
var WWW as string * MAX_STRING

226F-BASIC愛好者:2005/03/22(火) 17:07:00
nisii さん
度々、ご回答頂きまして、本当にありがとうございました。
(#define)方法で置換できる事が学べました。お礼を申し上げます。
新たな質問となりますが32765部分を変数にできればと思い、
下記の方法で行いましたが文法が正しくありませんとなります。
A=32765
#define MAX_STRING A
変数にする事はできないのかと思いました
もし変数にする方法がありましたら、ご教授して頂ければと願います。
よろしくお願いいたします。

227nisii:2005/03/22(火) 18:11:37
#define は定数の宣言です。
また、固定長の文字変数は長さを可変にできません。
できたら、固定長と呼びません。(笑)

構造から見ても、固定長の文字変数は実行ファイルの中に領域が確保されるため、
動的に長さを変えることは不可能です。

可変長の文字変数にすれば、用は足りると思います。
var WWW as string
WWW = space$( '長さを変数で指定' )

228F-BASIC愛好者:2005/03/22(火) 19:17:44
nisii さん
早々、ご回答を頂きましてありがとうございました。
初歩的な質問で申し訳ありませんでした。
お陰様で動作することができるようになりました。
ご指導して頂きまして本当にありがとうございました。
心よりお礼を申し上げます。
今後とも、よろしくお願い致します。

229ごむんご:2005/04/07(木) 07:57:04
ふと思ったので質問いたします。
f-basicに限ったことじゃないかもしれませんが、
ファイルを多重に開くメリットってなんでしょう。
システムクラッシュ時においてそれらのファイルが破壊させる危険が大きくなるだけかと
思うんですが皆様はどう思われます?
ちなみに私は一つ一つ順にopen、closeを繰り返してます。

230F橋:2005/04/07(木) 20:47:36
>>229
>ファイルを多重に開くメリットってなんでしょう。
同じファイルを別プログラムで開くのでしょうか?
それとも別々のファイルをたくさん開くのでしょうか?

同じファイルをいくつも開くのはサブルーチンの様に使う時はメリットになると思います
住所録の様なソフトを作ったとし、それの検索ソフトを作るとします
住所録のソフトから検索ソフトを起動する時に住所録でファイルをopenしたままでも
検索ソフトで再度openするとしますよね。無駄に見えますよね。
でも。検索ソフトだけ立ち上げたり出来ますよね?
あまりいい方法では無いかも知れませんが検索ソフトを呼ぶようなプログラムを作る時に
ファイルがopenしているかどうか。とかを考えずに使えるので楽は楽かと…

別々のファイルをたくさん開くのはレスポンスだと思います
登録ボタンを押した時に10〜20くらいのファイルに書き込まなければならない時…
それら全てをopen〜closeしていては反応が遅いのでopenしっぱなしもあるかと…

>ファイルが破壊させる危険が大きくなるだけかと
その通りです(笑
データベースを使っているのならば回避手段があったりしたはずですが…

231ごむんご:2005/04/08(金) 05:30:49
まず、きちんと状況を説明せずに質問したことをお許しください。
私としては、別々のファイルを一度に沢山開くという意味で書いたつもりでしたが、
同じファイルを別プログラムで開くというのは思いつきませんでした。


F橋様ご返答ありがとうございました。

232ニャン子:2005/04/09(土) 02:44:43
超〜・・・お久しぶりです。ニャン子です。

ごむんごさん>
> ファイルを多重に開くメリットってなんでしょう。

プログラムを作成する際の思想にもよりますのでOpen,Closeを繰り返す方法が
良い場合もあれば、それがかえってレスポンスを悪くする場合もあります。
これは私の場合ですが、データを保存する目的で使用する場合はファイルを使用
する直前にOpenし、ファイルへの読/書が終了した時点でCloseします。

しかし、プログラムによってはメモリの限界を超えてデータ量を扱う場合もあり
ます。その様な場合、ファイルをメモリの一部の様に扱う必要があり、その場合
はランダムファイルまたはバイナリファイルで随時アクセスする必要があります。
その様な場合はプログラム起動時に複数のテンポラリファイルをOpenし、プログ
ラムが終了するまでCloseは行わない場合もあります。

また、単にデータを蓄積する様な場合であってもOpen,Closeを繰り返すと
レスポンスに大きく影響する場合もあります。基本的にスタンドアロンであれば
Open,Closeを繰り返した方が安全かと思いますが、ネットワーク上でサーバと
クライアント間での通信を行う際にファイルのOpen,Closeを繰り返すとネット
ワークに大きな負担を与える事になります。通信以外にもRAIDを装備したマシン
でファイルのOpen,Closeを繰り返すと、それだけWAITが多く発生します。

その他、業務PGでは複数のファイルをMATCH, JOINなどにより一つのファイル
にまとめる場合があります。これらの場合は最低3つのファイルを同時にOPEN
しておかなければなりません。

という事で、Open,Closeを繰り返すメリットとデメリットはソフトを開発する際
の設計思想に依存すると思われます。

> システムクラッシュ時においてそれらのファイルが破壊させる危険が大きく
> なるだけかと思うんですが皆様はどう思われます?

これも設計思想に含まれますが、万が一クラッシュが発生した場合にどのレベル
までデータを復旧させる事が出来るのかを予め設計段階で決めておきます。
シーケンシャルファイルの場合はデータ書き込み時にクラッシュが発生した場合
データの破損は大きいと思いますが、ランダムファイルやバイナリファイルで
予め使用するデータの大きさを確保しておけばFATが壊れる事が殆どなくなり
ます。汎用機やオフコンなどではファイルを使用する領域を予め確保する必要が
ありますので、その仕組みを活用して予めファイルアロケートを行っておく事も
良いかと思います。

233F橋:2005/04/09(土) 17:00:32
>>231
>同じファイルを別プログラムで開くというのは思いつきませんでした。
私は同じファイルを別プログラムでどんどん開くというのが最近少なくないので(笑

>>232
>ファイルをメモリの一部の様に扱う必要があり、その場合はランダムファイルまたは
>バイナリファイルで随時アクセスする必要があります。
この部分が特に分かりやすいです
私が説明したかった事がこの一文で済んでる気がしました(笑

234ごむんご:2005/04/15(金) 06:50:39
ニャン子様、F橋様ご返答ありがとうございます。
視野が広がりました。
仮想メモリのような使い方があるなんて・・・!
本当にありがとうございました!

235ごむんご:2005/04/15(金) 19:55:38
ニャン子様F橋様先日はありがとうございました。

また質問させてください。
ニャン子様のfbhackとnisii様のフォルダ選択を組み合わせて使用してて
気づいたんです。
はじめにeditboxにkeydownイベントを追加して、その後でフォルダ指定ダイアログを
表示し、そこで特定の条件を満たすフォルダを指定すると
「続行不可能なエラーが発生しました」とでて強制終了してしまいます(9X系だとモジュール違反とでます)。

特定の条件というのは私が実験した限りだと
・フォルダ指定ダイアログを開くのが最初であること
・一番下の層のフォルダ名が半角14文字を超えた場合
です。
原因を探ってみましたがどうも
API_SHGETPATHFROMIDLISTとGetModuleFileNameの相性が悪いのかなぁって位しかわかりませんでした。
というのも、API_SHGETPATHFROMIDLISTを先に実行すると後のGetModuleFileNameでエラーが、
またGetModuleFileNameを先に実行すると、API_SHGETPATHFROMIDLISTのところでエラーが出てしまいます。
この二つのapiは同時に使用することはできないのでしょうか?

お世話になったばかりなのですが、よろしくお願いします。

236名無しさん:2005/04/17(日) 23:53:35
apiは得意では無いので・・私の経験談での話で申し訳ないですが・・

>この二つのapiは同時に使用することはできないのでしょうか?
これは無いと思います

>・フォルダ指定ダイアログを開くのが最初であること
これと似た症状を何度か経験しましたが。そのほとんどが私の場合はプログラムミスでした
API等に渡す変数のパラメータがあっていない可能性が高いと思います
特に文字列のbyte数が違う等が私の場合はほとんどでした

二つのAPIを使っているとの事なのですが。違う文字列長を定義しなければならないのに
その二つに同じ変数を使っていてどちらかの呼び出しが違うとかありませんか?

私はこういう症状になったときに適当な所に dummy1$=space$(1000) dummy2$=space$(1000) ・・・等を
色々な所にいくつか入れてます
これでエラーが出なくなった場合はまず間違いなく文字列のパラメータが違う場合
(API等に渡す文字列変数の文字長が違う場合)でした

もう一つ・・可能な限り小さくしたエラーの症状が出るサンプルソースをこちらに貼って頂けると
他の方からもレスしやすいかも知れません

237F-BASIC愛好者:2005/04/18(月) 23:29:20
お世話になります。
WIinXPで下記と同じ現象になりますでしょうか。
WIin98では下記の現象にはなりませんでした。
例えばC:\FBASICV63\Sample_B\Edit
sub NEW_ON()
*abc
goto *abc
end sub
ファイル(F)→新規作成(N)起動後、数秒後メニューバー部分をクリックしますと
メニューバー【ファイル(F)編集(E)表示(V)・・・】の記述の文字が消え白色になります。
記述の文字が消えるような同じ現象になりますでしょうか。
WAIT 中にクリックしても同じ現象になりました。
ご存知の方がおりましたらご指導お願い出来ればと思います。
宜しくお願い致します。

238nisii:2005/04/19(火) 18:49:15
>>237

イベントを抱えたまま待ったり長時間の処理をすると、
どうしてもそうなります。>>140
ウィンドウのリフレッシュなどは、イベントプロシージャから抜けた後に行われるため。

途中で待ちが発生する場合は、面倒でも「イベントの受け取り」と「処理」は分けましょう。

回避例(○イベントプロシージャ外で実行する解決例 を参照)
http://www.geocities.co.jp/SiliconValley-Sunnyvale/8635/fbn008.htm

239F-BASIC愛好者:2005/04/19(火) 23:49:20
nisii さん
ご回答くださいましてありがとうございました。
VBでも確かめてみましたが、同じ現象でしたので、OSが関係しているのではないかと
想像していました。nisii さんのイベントを抱えたまま待ったり長時間の処理をした場合、
ウィンドウのリフレッシュはできない。その為「イベントの受け取り」と「処理」は分ける
とのご説明は大変参考になり納得する事ができました。
また解決参照例 までご指導下さいまして本当にありがとうございました。
まだ十分に理解できていませんが自分なりにWin9Xはスタンドアロン単独OS
WinXPは連動OSによる為に現象が違っていたのかと理解しました。
今後とも、よろしくお願い致します。 心よりお礼を申し上げます。

240京都のI・T:2005/05/09(月) 02:16:59
名案が有ったら教えて下さい。
基本画面に別ウインドウ又はpicture画面を数枚貼り付けた状態で、各画面のマウスの現在座標を、
リアルタイムで同時に取得する方法はないでしょうか。現在は、各画面のイベントにより取得した座標と
表示位置を加減算するという原始的な方法を使用しています。アクティブでない(後に隠れている)画面
のマウス座標を取得したいのです。いい方法がありましたら教えて下さい。宜しくお願します。

241chigu:2005/05/25(水) 11:24:54
はじめまして。先月からF-BASICをはじめたchiguと申します!
このサイトにはいろいろとお世話になっています。
ファイルの保存について質問なんですが、
保存名に拡張子をつけなくてもファイル形式を固定する方法がないでしょうか?
(( 保存名:aaa , ファイル:aaa.TXT )っとなるような感じなんですが)
基本的な質問なのかもしれませんが、よろしくおねがいします。

242名無しさん:2005/05/26(木) 01:09:23
>>240
すいません。分かりません

>各画面のイベントにより取得した座標と表示位置を加減算するという原始的な方法を使用しています。
私もこの方法を使うと思います



>>241
>ファイルの保存について質問なんですが、
>(( 保存名:aaa , ファイル:aaa.TXT )っとなるような感じなんですが)

WINSAVEDLGを使ってます?
戻り値にファイル名変える様なので

L$ = "テキストファイル(*.TXT)"
F$ = WINSAVEDLG("ファイルの保存","3DG.BAS",FL$,0)
if F$ <> chr$(&H1B) then
'実際はリネームする前にPATHを分解する必要があります。
'また既に同名のファイルがあった場合に削除する処理も必要と思われます
IF RIGHT$(UCASE$(F$),4)><".TXT" THEN NAME F$ AS F$+".TXT"
endif

こんな形で後から慌ててリネームするという方法も無くは無いですが・・(笑

尚、私はWINSAVEDLGを使った事が無いのでご了承下さい
(WINSAVEDLGの引数で勝手に拡張子って付けてくれないんですよね?)
また、WINSAVEDLG以外でファイルの保存を考えている場合はどういう形なのかも教えてください

後は・・私以外のF-BASIC上級者からの返答をお待ち下さい(笑

243chigu:2005/05/26(木) 16:49:25
242>>
親切な回答ありがとうございます!!
説明不足でした(反省)。ご指摘の通りWINSAVEDLGを使っています。
早速試してみたのですが、「ファイル記述に誤りがあります」とエラーが出てしまいました。
ちなみに

L$ = "datファイル(*.dat)"
F$=WINSAVEDLG("新しい名前をつけて保存","main.dat",L$,0)
if F$<>chr$(&H1B) then
open F$ for create as #1
print #1
if right$(ucase$(F$),4)><".DAT" then name F$ as F$+".DAT"

end if

としてみたんですが(フォルダ名やドライブ名でFというものはないんですが)
なにが原因なんでしょう?

244nisii:2005/05/27(金) 11:29:11
name命令にドライブ名やフォルダ名を含めることはできません。

245名無しさん:2005/06/04(土) 08:43:38
>>241
固定ファイル名で保存するなら、
保存しますか(Y/N)
のダイアログで十分だと思いますが。

246F-BASIC愛好者:2005/06/09(木) 23:20:02
日頃から大変お世話になりまして、ありがとう御座います。
概要
自作F-BASICソフトから別ソフトを実行(SHELL)して、別ソフトのCHECKチェック
ボックスに当たる位置にマウスを移動(SETCURSORPOS)クリック(MOUSE_EVENT)に
よりチェックありに設定しています。そしてスタートに当たるBUTTON位置にマウスを
移動してクリックして起動しています。
質問
CHECK、BUTTONのハンドル(HWND&)は得る事は出来ています。
マウスを使用しないでSendMessage(HWND&,・・・・・・・・・)でチェックボックス
にチェックありに設定、及びスタートBUTTONを起動出来ないものかと思っていますが、
記述方法が解りません。ご存知の方がおりましたら、ご指導して頂ければと願います。
宜しくお願い致します。

247F-BASIC愛好者:2005/06/11(土) 19:11:49
日頃からお世話になります。
SendMessage メッセージのメンバをインターネット
で検索してなんとか解決することができました。

248F橋:2005/06/12(日) 01:12:59
>>243
>早速試してみたのですが、「ファイル記述に誤りがあります」とエラーが出てしまいました。

name命令の1つ目のパラメータにフォルダを指定する事は出来ますが
2つ目のパラメータにフォルダを指定する事は出来ません

>if right$(ucase$(F$),4)><".DAT" then name F$ as F$+".DAT"
F$の内容が"c:\windows\aaaa.tmp" とします

name "c:\windows\aaaa.tmp", "c:\windows\aaaa.dat" はエラーですが
name "c:\windows\aaaa.tmp", "aaaa.dat" なら可能です

>if right$(ucase$(F$),4)><".DAT" then name F$ as F$+".DAT"
この例では F$ の変数をフォルダ名、ドライブ名に分ける必要がありますね
パス名やドライブ名を分けるのは SPLITPATH命令を使ってみてください


>>246
分かりません。と書こうと思ったですが・・>>247で既に自己解決されていて助かりました(笑

249chigu:2005/06/13(月) 10:59:10
>>245 , >>248
回答ありがとうございます!
もうできないものと思いあきらめていましたが、これで何とかなりそうです。
また質問することがあると思いますが、その時はよろしくお願いします。

250F-BASIC愛好者:2005/06/13(月) 19:21:23
お世話になります。
WindowsフォルダおよびSystemフォルダ(GetWindowsDirectory、GetSystemDirectory)
のパスを取得することは可能ですが、キャプション又はハンドルのパス取得は可能で
しょうか。もし可能でありましたら、ご指導して頂けませんでしょうか。
よろしくお願いいたします。

251nisii:2005/06/13(月) 21:50:58
>>250
http://www.geocities.co.jp/SiliconValley-Sunnyvale/8635/api17.txt

ただし、WindowsME/98/95では、フルパスのモジュール名が返り、
WindowsXP/2000(NT4.0不可)では、モジュール名のみが返ります。

252nisii:2005/06/13(月) 22:38:25
>>250
http://www.winapi-database.com/Program/Library/GetModuleHandle.html

実行モジュールのハンドルを得て、
>>250のGetModuleFileNameでフルパス名が得られるかも。
でも未確認なので動かなかったらゴメン。

253F-BASIC愛好者:2005/06/13(月) 23:34:32
nisii さん
幾度にも渡りまして、ご回答下さいましてありがとうございました。
提供頂きましたapi17.txt(関数GetModuleFileNameからフルパス名が得られました。)
まだ完成はしていませんがWinXPでは文字化けがありましたがWin98では問題ありませんでした。
従いましてGetModuleFileNameからパス名が得られる確認ができました。
いつも早々と、ご回答頂きまして感謝しております。本当にありがとうございました。

254F-BASIC愛好者:2005/06/13(月) 23:52:13
>>253のWinXPで文字化けが一度ありましたが再度行いましたら
正常にフルパス名が得られ問題はありませんでした。

255F-BASIC愛好者:2005/06/15(水) 15:25:56
度々、お世話になります。
下記のウィンドウハンドルからアイコン取得の記述がありました。
hicon = HICON(SendMessage(hwnd, WM_GETICON, TRUE, NULL));
C言語と思われますが、HICONにつきましてVB又はF-BASICでそれに
変わる記述方法はありますでしょうか。
ご存知の方がおりましたら、ご指導を願えればと思います。
よろしくお願い致します。

256F-BASIC愛好者:2005/06/24(金) 21:43:31
お世話になっています。
>>255ウィンドウハンドルからアイコン取得が、やっとの思いで解決できました。
参考:関数DrawIcon、GetClassLongから取得しました。
今後ともよろしくお願い致します。

257F-BASIC愛好者:2005/06/26(日) 16:30:49
度々、申し訳ありません。
F−BASIC掲示板ですが、VBにつきまして投稿しました。
VBは、初心者ですのでよろしくお願いいたします。
>>250
ご指導していただきました下記のソース
http://www.geocities.co.jp/SiliconValley-Sunnyvale/8635/api17.txt
をF−BASICで問題なく使用させて頂いています。お礼を申し上げます。
ソースをVBに置き換えていますが、自分なりに色々と試してみましたが
解決できませんでした。

概要
resulttext.txtファイルでは
F−BASICでは全てのHWND ProcessID パスがresulttext.txtファイルに
表示されます。VBではresulttext.txtファイルの内容が
----------------------------------------------
実行モジュールは C:\WINDOWS\デスクトップ\API17.EXE
"",   
----------------------------------------------
のみでHWND等 が作成されません。
F−BASICとVBの違いを見比べてみました。
---------------------------------------------------------------
' (ウィンドウの検索を自分自身から開始することとし、そのハンドルを取得する)
HCURRENTHWND = API_GETWINDOW(GETHWND, GW_HWNDFIRST)
---------------------------------------------------------------
GETHWNDの中身はF−BASICではハンドルは取得されます。VBでは”0”でした。)

'------------------------------------------------------------
' サブプロシージャ
'------------------------------------------------------------
' ウィンドウハンドルから、これをオープンしたモジュール名を得る
sub GETMODULEPATH( byval HWND& , MODULEPATH$ )

'------------------------------------------------------------
' サブプロシージャ宣言
'------------------------------------------------------------
' ウィンドウハンドルから、これをオープンしたモジュール名を得る
declare sub GETMODULEPATH( byval HWND& , MODULEPATH$ )

ステップでみましたらサブプロシージャには飛んできました。
サブプロシージャ宣言では記述エラーになりました。
F−BASICとVBとではサブプロシージャの記述に違いはありますでしょうか。
違いがありご存じの方がおりましたらVBの記述方法を教えて頂ければと願います。
初心者ですので基本的な事がよくわからないで質問していましたら、
申し訳ありませんでした。よろしくお願い致します。

258nisii:2005/06/28(火) 11:24:39
>>257

手元のVB本では、Me.hWndで自分のウィンドウハンドルを得てるみたい。

259F-BASIC愛好者:2005/06/28(火) 14:50:21
nisii 様
>>258
ご回答下さいましてありがとうございました。
お陰様で問題なく動作するようになりました。
自分のウィンドウハンドルはForm1.hWndにしました。
度重なるご回答を頂きまして本当にありがとうございました。

260k5:2005/08/09(火) 11:16:15
HP iPAQ hx2400を手に入れました。
このPCでF-BAISCで作成したアプリを動かしたいのですが、可能でしょうか?

261F橋:2005/08/09(火) 20:35:33
>>260
OSがWindowsMobile2003の様ですので動かないと思います
(F-BASICの対象はWindows95 98 98se ME NT 2000。XPは保証外ですが何とか動く)

ただ。私がWindowsCEとかMobileとかは一切触った事が無いので分かりません
CEとかMobileってWindows3.1の流れなんでしょうか?
だとすればF-BASIC95にWindows3.1版が同梱されているのでそれが動くかも知れませんが…

262nisii:2005/08/10(水) 15:53:14
http://www.microsoft.com/japan/windowsmobile/developer/technicalarticles/default.asp
http://www.microsoft.com/japan/windowsmobile/pocketpc/techpapers/techguide/default.asp

基本的にはWin32アプリケーションとして開発できるようですが、
Unicodeが標準であるとか、APIが必ずしも共通でない点などから、
動作は難しいかも。

…もし動いたら、こんな作り方で動いたって報告をいただけると嬉しいです。

263F-BASICの初心者:2005/08/22(月) 22:41:27
初めまして。F-BASICの初心者で、自分の手に負えないので
こちらに質問させてもらいました。
仕事でF-BASICを使ってデータの計測をしています。
RS232Cでパソコン1台と複数台の計測器をつないでデータを計測
しているのですが、データを送受信しているときに
不定期で固まってしまいます。
PCはOSがWin2000でF-BASIC6.3です
(6.3は最新版にアップデートしてます)
ちなみに以前は性能が半分ぐらいのPCで
OSがWin95、F-BASIC6.0で上記と同じように
PCと計測器をつないでデータ計測していたのですが
その時は何の問題もなく何十時間も動いていました。
OSの種類&F-BASICのバージョンによってデータの送受信中に
固まってしまう原因があるのでしょうか?
自分では解決の糸口すらわからないので
どんなアドバイスでも歓迎です。
よろしくお願いします。

264F橋:2005/08/22(月) 23:01:19
>>263
分かりません(おい(笑

私はWindows2000でRS232Cを使っているのはバーコードスキャナ(2400bps〜9600bps)で
1日中使ってもその様な問題は発生しませんでした
>>263さんの常時RS232Cで送受信よりは頻度が少ないのでうまく行っているかも知れません

無難な返答しか出来ませんが…
ボーレートを含むRS232C設定があっているか。そのRS232Cは他で使っていないか。
(モデムを使っていないか)等を確認してみて下さい

他のソフトが勝手にRS232C設定を変える場合やポートを勝手に変える場合があった気がします
Windows2000のみで他のソフトが何も入っていない状態。(モデム含む)RS232C使うだろう機器を
外した状態でテストしてみて下さい

265F-BASICの初心者:2005/08/24(水) 23:14:45
早速お答えいただきありがとうございます。
ボーレートを含むRS232C設定はあってない場合
全く動かなくなる場合が多いので、おそらく設定は
あっていると思います。

他のソフトが勝手にRS232C設定を変える場合やポートを勝手に変える場合
があるのですか。参考になります。
PCはノートパソコンで、RS232Cの差込口?が一つしかないので、
その他のRS232Cを使う機器は接続されていないと思います。
会社のPCなので他のソフトが何も入っていない状態に
するのは難しいと思います^_^;
アドバイスありがとうございました。

266シマヅ:2005/08/29(月) 17:31:49
F-BASICの初心者様
参考になるかどうか分かりませんが、私の経験を記述します。
制御する機器にデータを送り、直ぐに機器から送られて来るデータを受取るようにした時に、機器とのタイミングの関係かと思いますが、「F-BASICの初心者」さんと同じ事が起きた記憶があります。
私の場合は、機器にデータを送る行で、For〜Nextで囲いデータを【For a=0 to 2 (Open 〜「データ送信行」〜 close) next a】を追加して数回データを送るようにしたら安定したことがありました。
解決にならないかも知れませんが、ご参考まで。(もっとベストの解決方法があるかとも思います)

267名無しさん:2005/08/30(火) 13:53:02
CSVファイルを読みたいのですが、項目数が多いと「1行の文字数が255文字を
超えています」というメッセージが出ます。

Input #FILENUM,A1&,A2$,B1$,B2&,   〜  ,K1,K2,K3,K3,K5

この場合、どうすればよいのでしょうか。

268nisii:2005/08/30(火) 15:31:12
>>267

読み込みを2回(以上)に分ければOKですよ。

Input #FILENUM,A1&,A2$,B1$,B2&…
Input #FILENUM,K1,K2,K3,K3,K5…

269名無しさん:2005/08/30(火) 20:56:59
>>268

できました。ありがとうございました。

270F-BASIC愛好者:2005/08/31(水) 08:54:41
お世話になります。
ホームページ画面が複数の枠(フレーム)で構成されているかそうでないかを
調べたいのですが調べる方法はありますでしょうか。ご存知の方がおりましたら、
ご教授して頂ければと願います。宜しくお願い致します。

271DOSD:2005/08/31(水) 23:44:58
FRAMEタグがあるかどうかを探せばいいと思いますが…
テキスト中に <FRAME> という文字列を探しあればフレームと判断で如何でしょう?

ただし厳密には<FRAME>という単語が文中で使われている可能性もあると思いますので
100%の判断は難しいと思いますが…

100%判断したいのなら以下の様な条件判断が必要と思われます
<FRAME>タグが入っているかどうか(<FRAME>という文字列がテキスト中にあるかどうか)
その<FRAME>タグはコメントになっていないか
( <!--- <FRAME> ---> は BASICで言う REM文(コメント)と同じ)
その<FRAME>はタグが有効な所に入っているか
(タグを忘れましたが。このタグからこのタグまではタグとせずそのまま表示。というのがあります)

272F-BASIC愛好者:2005/09/01(木) 06:35:58
DOSDさん
早々、ご返信下さいましてありがとうございました。
まだ、実行はまだ出来ていませんがテキスト中の<FRAME>タグを
探してフレームを判断する方法は大変参考になりました。
詳細な説明をして頂きましてお礼を申しあげます。
今後とも、よろしくお願い致します。

273F-BASIC愛好者:2005/09/01(木) 08:36:02
>>271の、ご指導して頂いた事によりまして下記の事が理解できました。
<FRAMESET>はウィンドウをいくつかのフレームに分割する際に使用していました。
ソースを取得してFRAMESETのタグが記述に含まれているかにより複数の枠(フレーム)
で構成されているかそうでないか調べたいとのですがwebのソース取得方法が分かりません。
ソース取得方法で、ご存知の方がおりましたらご指導願えればと願います。宜しくお願い致します。

274F-BASIC愛好者:2005/09/01(木) 09:01:46
度々申し訳ありません。
webのソース取得方法は解決することができました。
以前使用したことを思いだしました。
サンプルSample_I のHttpgetに使用例としてあります。
大変お世話になりました。ありがとうございました。

275F-BASIC愛好者:2005/09/01(木) 14:19:31
再度、お世話になります。
webをタグにできるサンプルがありましたので一部手を加えました。
-------------------------------------------------------------------
Private Sub Command1_Click()
Dim ObjIE As Object
Dim myHTML As String
Dim iFileNo As Integer
Label1 = "なし"

Set ObjIE = CreateObject("InternetExplorer.Application")
With ObjIE
.Visible = False
.navigate "http://www3.nhk.or.jp/hensei/fm/20050901/frame_12-18.html&quot;
While .Busy Or .ReadyState <> 4
DoEvents
Wend
myHTML = .Document.body.innerHTML
End With

Text1 = myHTML
If InStr(Text1, "FRAMESET") <> 0 Then Label1 = "あり"
End Sub
--------------------------------------------------------------------
vbにつきましてはDim→Ver変換及びvb、F-BASIC共通についての知識しかない初心者です。
上記のvbサンプルをF-BASICに置き換えれればと思っていますが可能でしょうか。
ご存知の方がおりましたらご指導して頂ければと思います。宜しくお願い致します。

276F-BASIC愛好者:2005/09/01(木) 21:23:33
何度にも渡りまして本当に申し訳ありません。
>>275が解決できました。 下記のURLより
タグ表示ができるサンプルプログラムがありました。
http://tokovalue.hp.infoseek.co.jp/index.htm
■URLダウンロードとキャッシュファイル削除
お陰様で希望するものが得られました。
ありがとうございました。お礼を申しあげます。

277DOSD:2005/09/01(木) 22:22:00
>>272-275
色々あったみたいですが解決されたみたいですね…お疲れさまです
解決されたのなら不要とは思いますが…
FRAMESETの文字列があるかどうかの判断は下記の様な感じかと…

HTTPGET ID, "http://www.yahoo.co.jp/index.html&quot;, "index.html"

open "index.html" for input as #1
frameflg%=0
while not eof(1)
 line input #1, lbuf$
 if instr(lbuf$,"FRAMESET")>0 then frameflg%=1
wend

if flameflg%=1 then print "FRAMESET文字列あります(=フレームのサイトだと思う)"

注意1:internet.biのインクルードや internetstgart(end), httpopen(close)等省略してます
注意2:読み込んだファイルはCR+LFが前提です。LFのみならうまく動かないはず…

何かミスがあればnisiiさんやニャン子さんがツッコミいれてくれるかと…(おい

ともかく。F-BASIC愛好者様。お疲れさまでした!

278F-BASIC愛好者:2005/09/01(木) 23:25:57
DOSDさん
幾度に渡りまして、ご指導下さいましてありがとうございました。
ご指導して頂きましたFRAMEタグがあるかどうかを探す詳細な
説明をして頂いた事により解決する事ができました。まだ完全ではありません。
>>277
FRAMESETの文字列があるかどうかの判断で動作したいと思います。
お陰様で前進する事ができました。大変お世話になり本当にありがとうございました。
心より厚くお礼を申し上げます。

279F-BASIC愛好者:2005/09/02(金) 04:54:27
度重なり、大変お世話になりました。
>>271,>>277 貴重な情報を提供下さいまして自分なりに満足できるものができました。
もう一点、下記の件につきまして連続質問させて頂きました。

(IEのURL)ホームページアドレスの取得につきまして
例: アドレス(D)  → http://www.msn.co.jp/ が表示されていた場合に、
IEのハンドル【IE_HWND = API_FINDWINDOW("IEFrame",byval 0) 】から
http://www.msn.co.jp/ を取得できればと思っていますが、
ホームページアドレスの取得は可能でしょうか。
ホームページアドレスの取得につきまして、ご存知の方がおりましたら、
ご指導して頂ければと願います。宜しくお願いいたします。

280F-BASIC愛好者:2005/09/03(土) 11:18:11
>>279部分の一部訂正を致しました。現在開いているIEのアドレス取得につきまして

訂正前 → ホームページアドレス http://www.msn.co.jp/ を取得できればと
                 ↓
訂正後 → ホームページアドレス http://www.msn.co.jp/ の記述文字が取得できればと

281TOKO:2005/09/03(土) 17:37:53
ご無沙汰しております^^;)
ホームページアドレスの文字列取得について「IEのアドレス欄にある文字列取得」
に、UPしてみました。希望通りのものかはわかりませんが、こういった方法もある
ということで・・・

282F-BASIC愛好者:2005/09/03(土) 18:44:33
TOKOさん
こちらこそご無沙汰しております。
以前から幾度もお世話になり今回も
ご回答投稿下さいましてありがとうございました。
早速「IEのアドレス欄にある文字列取得」を行いました。
自分が希望するものでした。お礼を申しあげます。
VBでもサンプルを色々検索してみましたが検索に至りませんでした。
自分が思いますには今後、IEのアドレス欄にある文字列取得は
その他にも利用できるのではないかと思いました。
本当にありがとうございました。今後も宜しくお願い致します。

284F-BASIC愛好者:2005/09/13(火) 09:53:34
お世話になります。
VBで申し訳ありませんが、Timer イベント の時間につきまして
Timer1.Interval = 65000 設定された時間が経過するたびに発生しています。
65000(65秒)までは問題ありませんが66000(66秒)に設定しますと
【実行時エラー '380'プロパティの値が不正です。】のエラーになります。
設定時間を66秒→24時間でも設定出来る方法はありますでしょうか。
ご存知の方がおりましたら、ご指導をお願いできませんでしょうか。
よろしくお願い致します。

285nisii:2005/09/13(火) 11:37:47
TimerのInterval制限です。
タイマイベント内に静的変数を置いて、24時間をカウントしましょう。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbconlimitationsoftimercontrolsintervalproperty.asp

ただ上の方法は、負荷や他のソフトの影響によって、数分〜数時間もの遅れが出ることがあります。
開始時のシステム時間を保持し、時々現在のシステム時間と見比べるようにすれば、
タイマの間隔やCPU負荷に関係なく、ほぼ正確に24時間を判定できますよね。

286F-BASIC愛好者:2005/09/13(火) 12:29:09
nisiiさん
日頃から大変お世話になります。
開始時の時間を保持し、時々現在の時間と見比べる方法は
全く気がつきませんでした。
早々ご回答ありごとうございました。

287F-BASIC愛好者:2005/09/15(木) 15:19:30
お世話になります。
タイマイベントにつきまして、>>285を参考にさせてもらいました。
入力したタイマの間隔時間(時、分、秒)単位と開始時のシステム時間を保持し、
入力したタイマの間隔時間と開始時のシステム時間を加算します。
加算した時間は次のイベント発生としました。
例:
入力したタイマの間隔時間(5分)に設定
開始時のシステム時間(10時00分10秒)
加算した時間から5分毎にイベント発生します。 
10時05分10秒、10時10分10秒、10時15分10秒・・・・・

簡単な要点を記述しました。

Timer1.Interval = 1000

Private Sub Timer1_Timer()

If 加算した時間 = システム時間 Then
  If hWndIE <> 0 Then Ret = PostMessage(hWndIE, &H111, &HA220, 0) 'IE更新
End Sub

If 加算した時間 = システム時間 ・・・で変化するシステム時間と見比べるようにています。
WindowsXP・・・100回に1回、Windows98,95・・・5回に1回の割合で一致しません。
その為、検索エンジンで参考例を検索しましたが見つけ出すことができませんでした。
その点で、ご存知の方がおりましたら、ご指導願えませんでしょうか。また、
秒単位の参考例はありましたが、時、分のタイマ間隔に関しては見つけだす事ができませんでした。
時、分のタイマ間隔の参考例がありましたら、教えて頂けませんでしょうか。
よろしくお願いいたします。

288F-BASIC愛好者:2005/09/15(木) 16:40:37
お世話になります。
>>285タイマイベントにつきまして、
Timer1.Interval = 1000を
Timer1.Interval = 10に設定しましたら
今の所一致しています。
はっきりした事は分かりませんが、
良くなったような気がします。
少し様子を見て行きたいと思います。

289F-BASIC愛好者:2005/09/15(木) 16:44:09
申し訳ありません。
>>288に於いて訂正がありました。
訂正 >>285 → >>287

290DOSD:2005/09/15(木) 22:28:52
タイマー関数をあまり知らない私が横から申し訳ないのですが
タイマーは取りこぼしがたまにあると記憶しておりますが…

5分に1回何かを実行ならタイマーで5分間をカウントするのでは無く
タイマーで何秒に1回時間(TIME$)を確認し該当時間以上になったら実行
の様な処理にした方がいいかも知れません

該当時間以上というのは…

>10時05分10秒
IF TIME$="10:05:10" … では無く
IF TIME$>="10:05:10" … にした方がよろしいかと…
(パソコンの処理速度不足で "10:05:10"を拾えず "10:05:11"の時に実行出来る用にする為)

TIME$では無いのですがMILLITIMEを使って行ってみてます
(MILLITIMEは日付変わると0に戻りますのでご注意を)

ISTART=INT(MILLITIME/1000)
IEXECTIME=ISTART+(60*5)

WHILE 1
 IF IEXECTIME>=INT(MILLITIME/1000) THEN
 ' ↑IEXECTIME=INT(MILLITIME/1000) では無いのを確認して下さい
  '(60*5)秒に1回行う処理をここへ
  IEXECTIME=IEXECTIME+(60*5)
 ENDIF
WEND

-----
タイマーを使うのなら1秒に設定し…

NXTIME$="10:05:10"
'↑実際にはTIME$から5分後を作るルーチンが必要です

Private Sub Timer1_Timer()

IF NXTIME$>=TIME$ THEN
  If hWndIE <> 0 Then Ret = PostMessage(hWndIE, &H111, &HA220, 0) 'IE更新

'// 次に実行する時間(NXTIME$)の更新の処理 //
NXTIME$="10:10:10"
'↑実際にはNXTIME$に5分後をプラスするルーチンが必要です

End Sub


nisiiさんが紹介していたMSのサイトより…
>間隔が厳密に時間どおりに経過することは保証されていません。
>正確さを保つには、内部で蓄積された時間を追跡する代わりに、
>必要に応じてシステム時計をチェックします。

私には「時間通りは無保証です。システム時計でチェックして下さい」に見えます(笑

291F-BASIC愛好者:2005/09/15(木) 23:17:13
DOSD様
ご返信下さいましてありがとうございます。
先日は大変お世話になりました。
自分はまだ初心者ですので検索情報を参考にしながら
覚えています。Timer1.Interval の定数を 1000から
10にしましたら今の所落ち着いています。
ご指導下さいました
TIME$="10:05:10"をTIME$>="10:05:10" にする方法は
気が付きませんでした。"="を">="にすることで一度のチャンスを
広げる事ができますのでより安定できますので活用させてもらいます。
タイマの間隔時間(5分)をシステム時計に加算しながらループしています。
間隔が厳密に時間どおりに保証されていませんとのことで少し安心しました。
大変貴重な情報を提供下さいまして心より厚くお礼を申し上げます。

292F-BASIC愛好者:2005/09/15(木) 23:57:09
DOSD様
重ねてお礼を申し上げます。
時間で"23:59:59"から"00:00:00"に切り変わりますと
一致できなくなり調べていました。提供下さいました
"="を">="に入れ替えますと一致するようになりました。
お陰様でより安定したものができました。
ご指導がなければ簡単にはいかなかったと思っています。
本当にありがとうございました。今後とも宜しくお願い致します。

293DOSD:2005/09/16(金) 00:29:35
お役に立った様で嬉しいです

>時間で"23:59:59"から"00:00:00"に切り変わりますと
日付が変わると少し面倒ですよね…
確かWindowsが起動してからの時間を簡単に取得する方法があったはずです
(Windowsが起動して何秒経過しているかを得る関数?方法?があったはず)
それを使えば日付を気にせずに出来るので(日付をまたぐのなら)お勧めします

話し変わりますがWindows95系が連続で動くのは確か40日と少ししか動かなかった気が…
もしずっと動かしっぱなしの用途で使われるのならばNT系上で動かすのをお勧めします
(毎日…もしくは数日に一度電源入れ直すのならWindows95系でも問題無いかと…)

>今後とも宜しくお願い致します。
イベント処理はF-BASIC愛好者さんのが私よりスキル高いかと思います
イベント処理で私が悩んでいる時は是非ご指導お願いします

294F-BASIC愛好者:2005/09/16(金) 00:55:40
DOSDさん
わざわざ、ご返信くださいましてありがとうございました。
全般的には詳しくありませんが、もし私が分かり
ましたら、是非、返信したいと思っています。
こちらこそ宜しくお願いいたします。

295F-BASIC愛好者:2005/09/17(土) 19:17:00
お世話になります。
基本的な事が理解できていませんので
何度もVBの質問をして申し訳ありません。
宜しくお願い致します。
--------------------------
Private Sub Timer1_Timer()
Labe1 = GetActiveWindow
 Exit Sub
---------------------------
アクティブを別のフォームに移しますとLabe1が
0表示になります。自分自身のフォームにアクティブを移しますと
ハンドルが取得できます。別のフォームではなぜLabe1が0表示になるのか
分かりません。ご存知の方がおりましたら教えて頂けませんでしょうか。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板