- 1 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 01:50:27.76 ]
- ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、 「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。 VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。 ○ 質問者の心得 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。 二.VBScript、インストーラーなどはこのスレでOK。 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。 四.荒らしは相手しない。 ○ 回答者の心得 一.答えられない質問は無駄に罵倒せずスルー。無理するな。 二.代用法を強制しない。 三.回答する上で必須ではない情報をむやみに聞き返さない。 四.荒らしは相手しない。 五.VB情報募集中。 六.回答は質問者が理解できるよう具体的に。 MSDN Online Japan ホーム www.microsoft.com/japan/msdn/default.asp Visual Studio 6.0 Service Pack 6 msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx Google www.google.co.jp/ ※「まず自分で調べる」クセを身につけよう。
- 945 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 08:53:01.02 ]
- できた
Private cnt As Integer Private Sub Form_Load() cnt = 0 Timer1.Interval = 1000 End Sub Private Sub Timer1_Timer() cnt = cnt + 1 Label1.Caption = cnt If cnt Mod 3 = 0 Then Shell "notepad" '重い処理 End If End Sub
- 946 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 09:21:22.64 ]
- VBは1つのスレッドで、DoEventsによって並列処理を
しているように見せているだけ。 Sleepしたらそのスレッドは止まるのだから、VBプログラムの全てが止まる。 DoEventsでそういうことをやっているとデッドロックしやすい。 DoEventsをSwitchToThreadを同じようなものだと思っていると痛い目を見る。 非同期処理したいのであれば、Timerを使うべき。
- 947 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 09:38:57.77 ]
- マルチスレッドがやりたいならvb.netを使ったほうがいいよ
vb6でやるならマルチプロセスでやったほうがいいな
- 948 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 14:16:45.68 ]
- ActiveXExeのスレッドでマルチスレッドをやってみたことはある。
非同期で処理しようと思ったら、結局別スレッドで作成した FormにTimerをおいて、そこから処理をスタートさせなければならない。 メソッドやプロパティはオブジェクト側のスレッドで同期して実行されるので 別スレッドのオブジェクトを呼び出しまくると、全然並列処理にならないw
- 949 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 18:56:07.60 ]
- >>934
あるよ。 FOR EACH的なものまである。 >>933 制御文レベルだとどれも似たようなもん。 しかし、それをもってほとんど一緒というお前はまだまだ素人。
- 950 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 19:08:54.62 ]
- >>942
Sleep 3000 は、3秒間何も出来ません、の意味。 やるんなら Private Sub Timer1_Timer() 'インターバルを1000にしておく Static cnt As long If cnt = 0 Then 'ここに3秒ごとの処理を入れる End If Text1.Text = Format(DateTime.Now(),"yyyy/mm/dd hh:nn:ss") cnt = cnt + 1 If 3 <= cnt Then cnt = 0 End If End Sub >>945 それだとcntが32768でオーバーフローになる
- 951 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 16:29:09.18 ]
- VisualBasicEditor(VB6 や OfficeVBA のエディタ部分)の
初期フォントの決定ルールを教えて欲しいです。分かる方、いますでしょうか。 日本語環境なら、MS ゴシック、英語環境ならCourier Newのようです。 オプションダイアログからフォント設定を変更した後ならレジストリに記録されてましたが、 インストール後からフォント変更するまでは、レジストリには項目がありませんでした。 知りたい理由は、VisualBasicEditor上に同じフォントで文字を描画したいからです。 同じフォントで描画ができればいいので、稼働中のVisualBasicEditorのフォント名などの情報や HFONT、LOGFONTなどを取得する方法がありましたら、そちらの方が適切に思うのですが、 VBEウィンドウに対してGetDC、GetWindowDCした後、GetTextFaceなどでは駄目でした。 初期フォントや稼働中フォントの取得方法が分かる方、どうぞよろしくお願いします。
- 952 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 16:58:49.24 ]
- ここってやっぱりVB.NET扱ってませんよね(´・ω・`)?
- 953 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 18:48:29.76 ]
- >>952
扱ってたら>>1に「VB〜6.0の」なんて書いてありませんよね。日本語理解できてますか(´・ω・`)?
- 954 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 19:18:03.31 ]
- >>953
いるよねぇ。こういう一言多いやつ
- 955 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 19:34:06.91 ]
- やっぱり扱ってませんでしたか
お騒がせしました(´・ω・`)
- 956 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 20:21:19.59 ]
- >>955
もう見てないと思うが、.netはここ VB.NET質問スレ(Part38) toro.2ch.net/test/read.cgi/tech/1325083428/
- 957 名前:デフォルトの名無しさん [2012/01/27(金) 04:15:41.25 ]
- >>951
VBインストール直後はフォント情報がレジストリにないということは レジストリ読んでみて、登録されてなかったら、そのデフォルトフォントにすればいいのでは? レジストリ読むAPIはAPIビューアの定義は間違いだらけだから気をつけて あれってVB5の時から間違ったままだから、初心者に諦めさせるように故意に間違えてるんだろか
- 958 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 09:32:31.10 ]
- APIの引数はByVal As Longで宣言して
StrPtrとVarPtrで渡す時代
- 959 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 00:24:21.02 ]
- >>957
レス感謝です。もうレスは無いかと半ば諦めてました。 今のところ、まずはレジストリから取得するようにしています。 デフォルトフォントはOSの言語で決まるようだったので、できれば決め打ちではなく、 VB6と同じような何らかの決定ルールに従いたいと思ってました。 (英語版VB6を日本語版WinXPで試したところ、MS ゴシックがデフォルトフォントになりました) 詳細は読めなかったのですが、中国のサイトでソフトが紹介されているのを見つけたので、 少数ながら、海外にもユーザーがいるみたいなので、それもフォントを決め打ちにしたくない理由の1つです。 色々試してみて、どうやらレジストリから取得しているわけではなさそうなのですが…。
- 960 名前:デフォルトの名無しさん [2012/01/28(土) 08:35:49.31 ]
- そうねぇ、外国のOSならMSゴシックはないよねぇ
とするとWindowsのどこかに・・ フォント名が定義されてるレジストリは余りないようだけど HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont あたりはどうでしょ こんなのを別のフォント名に変えてVBを新規インストールしてみて その変えたフォントになるかどうか ま、人に配布するソフトはそんな推測で作っちゃいけないよね
- 961 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 21:50:30.26 ]
- >>960
VB6新規インストールは行っていないものの、 レジストリ上の"MS ゴシック"、"MS Gothic"、"msgothic.ttc"を 別のものに変えて試してみたのですが空振りでした。 色々試してみたところ、VB6については、OSの言語に依存しているのではなく、 [コントロールパネル]-[地域と言語のオプション]-[詳細設定]-[Unicode 対応でないプログラムの言語] の設定に依存していることが分かりました。 また、この項目で「中国語(香港)、(マカオ)、(シンガポール)」を選択すると、 VBEで使用するフォントが必要な状況になるとVB6が強制終了してしまうことが分かりました。 内部でベタで持ってるのかもしれませんね…。 とりあえず、レジストリから取得、取得できない場合はベタ書きにしようと思います。
- 962 名前:デフォルトの名無しさん mailto:sage [2012/01/30(月) 23:31:01.21 ]
- 961に誤りがあったので、誰かが変に参考にしないように訂正を。
[Unicode 対応でないプログラムの言語]の設定を 「中国語(香港)、(マカオ)、(シンガポール)」にするとVB6が強制終了すると書きましたが それは英語版VB6の話で、日本語版VB6の場合は問題ありませんでした。
- 963 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 21:47:40.78 ]
- 会社で仕事関係の一切の情報持ち出し、持込禁止になってから止めてたんだけど、PCにVB6インストールしようかなあ。
久しぶりに触りたくなってきた。
|

|