VBプログラマ質問スレ(6.0以前) Part49
1 :
デフォルトの名無しさん :
2006/07/12(水) 10:32:33
http://www.microsoft.com/japan/msdn/vbasic/support/vistasupport.aspx Visual Basic チームは、Visual Basic 6.0 アプリケーションが WindowsR Vista? でも
"そのまま" 動作する互換性を提供することを表明します。」
Visual Basic チームは、Windows XP で実行できる Visual Basic 6.0 アプリケーションが
Windows Vista でも実行できるようにすることを目標としています。
また、Windows Vista で実行できる Visual Basic 6.0 の開発環境を提供するための取り組みも行っています。
このドキュメントで説明するように、Visual Basic 6.0 ランタイムは、Windows Vista のライフサイクルをとおして
サポートされます (メインストリーム サポートが 5 年、延長サポートが 5 年の合計 10 年になります)。
マイクロソフト プロダクト サポート ライフサイクルの詳細については、
http://support.microsoft.com/gp/lifepolicy (英語) を参照してください。
マイクロソフトでは、ユーザーが Windows Vista で Visual Basic 6.0 アプリケーションを実行できるようにするため、
Windows Vista に Visual Basic 6.0 ランタイムの主要コンポーネントを同梱する予定です。
Visual Basic 6.0 ランタイムを使用するように記述されたアプリケーションが Windows XP と Windows Vista の両方で
同様に動作する互換性を確保するため、一連のアプリケーションを使用してテストを行いました。
Visual Basic 6.0 IDE は、延長サポートの一環として、2008 年 3 月まで Windows Vista でサポートされます。
Windows Vista チームと Visual Basic チームでは、Windows Vista で Visual Basic 6.0 IDE のテストを行い、
IDE が以前のオペレーティング システムと同様に機能するようにしています。
>>6 Vista って、Virtual PC は同梱されてるんだっけか?
8 :
デフォルトの名無しさん :2006/07/12(水) 11:47:12
9 :
デフォルトの名無しさん :2006/07/12(水) 17:24:51
10 :
デフォルトの名無しさん :2006/07/12(水) 21:43:25
DB接続に関する質問です。 VB6.0でOracleにoo4o接続していて VBからAPを起動すると問題なく動くんだけど コンパイル後の実行ファイルから起動させると ORA-12154: TNS: サービス名を解決できませんでした。 と表示され実行時エラーで落ちちゃいます。 SQLplusではちゃんとDB接続できるんだけど 誰かわかる方教えてください
11 :
デフォルトの名無しさん :2006/07/12(水) 22:07:12
>>10 どのタイミングで落ちてるの?
まずはメッセージボックスでも挟んでどの場所で落ちているか調べるだけでも特定すれば絞れると思うよ
12 :
デフォルトの名無しさん :2006/07/12(水) 22:11:10
>>10 TNS名はINIファイルとかから取得してるのでしょうか?
きちんとTNS名が取得されているかメッセージボックスで
表示させてみてはどうでしょう。
13 :
10 :2006/07/12(水) 23:04:00
Public OraSS As Object Public OraDB As Object Set OraSS = CreateObject("OracleInProcServer.XOraSession") Set OraDB = OraSS.OpenDatabase("TNS名", "UsrID/Pass", ORADB_DEFAULT) ↑ここで落ちてます。 TNS名とUsrID/Passをイミディエイトに表示させて合ってるのは確認してます TNS UsrID Pass 3つともConst定義で固定値にしてあります
> Set OraDB = OraSS.OpenDatabase("TNS名", "UsrID/Pass", ORADB_DEFAULT)
> TNS UsrID Pass 3つともConst定義で固定値にしてあります
直書きしてるの? Const 定義してるの?
> TNS名とUsrID/Passをイミディエイトに表示させて合ってるのは確認してます
イミディエイトって IDE の?
VB から実行するとうまくいくんでしょ?
なんで
>>12 の
> メッセージボックスで表示させてみてはどうでしょう。
と言うアドバイスを実施しないの?
15 :
デフォルトの名無しさん :2006/07/13(木) 00:28:33
EXEもVBと同じマシンで起動していますか? それか、もしかして違うEXEを実行してたりしてませんか? (自分は寝ぼけてるとコピーした古いEXEを実行してる時があるんで)
いやおまえそれは寝ぼけすぎだw
>>17 IDEのexeのあるフォルダがカレントになるからじゃないかい?
DLLをVB本体のあるフォルダに入れるか、
システムドライブのルートとかどこからでも参照できる場所に置くか、
環境変数のPATHに追加するとかすればいけると思うよ。
>>18 そうですか。動かないはずが無いわけですね。てことはこちらに問題ありそうです。
一応考えられるフォルダにDLLを入れても駄目だったので、もう少し調べてみます。
>>17 単に「動かない」じゃなくて、どんなエラーが出たのか位示せないの?
エラー番号ではなく
22 :
17 :2006/07/13(木) 12:45:14
>>22 それはVBから呼ばれる事を一切考えてないDLLなので、どうしようもない。
なので、そのDLLをコールするだけのDLLを書き、そのDLLをVBから呼べ。
24 :
17 :2006/07/13(木) 13:09:05
>>23 やはりですか。ではそのようにします。ありがとうございました。
「VB+CのDLL」っつー開発は厭って程やったけど、 特に意識せず普通にDLLを書いて、 VBからコール出来なかった事なんて一度もないな。 何か特殊な事して、わざと呼べなくするのか?
26 :
デフォルトの名無しさん :2006/07/13(木) 13:51:13
>>25 どうゆう部分をDLLにするの?
どんなメリットあった?
>>26 どんな部分と聞かれても・・・
相手がCのインターフェイスしか用意してないとか
低レベルの処理をするとか
ソケット通信関係でVBで処理するより簡単になるとか
まぁ色々あるけど。
はじめまして、VBをはじめて2週間程度の初心者です。よろしくお願いします。 早速ですが質問させていただきます。 環境は VB6.0 SP6、OSはWindous2000 SP4 です。 VBのフォーム上にExcelのデータを出力し それをフォーム上で編集・保存するには、どのようにしたら良いのでしょうか? わかりにくい質問かと思いますが OLEで出力した場合、編集する場合Excelが立ち上がってしまうのですが 私はExcelを立ち上げずに編集保存を行いたいと思っております。 このような場合は、何かしら外部ソフトを使用したほうが良いのでしょうか? もしその場合、どのような物があるか教えていただけたら幸いです。 長文乱文失礼いたしました。解答よろしくお願いいたします。
29 :
sage :2006/07/13(木) 16:21:14
複数のテキスト2つ以上を1つのテキストに同時に書き込むことって できるのでしょうか a.txt b.txt c.txt aaa ddd ggg bbb eee hhh ccc fff iii ↓ d.txt aaa ddd ggg bbb eee hhh ccc fff iii 見たいな感じで
30 :
デフォルトの名無しさん :2006/07/13(木) 16:21:14
VB6.0のWinsockコントロールについての質問です。 Winsockコントロールを使って、 TCP/IPクライアントを作っているのですが、 Winsockコントロールでは、 同期送受信はできないのでしょうか? Winsock1.SendData buffer した後に、 Winsock1.GetDataを回して待っていてもデータは取れません。 また、 Do DoEvents Loop で待って、DataArrivalイベントでグローバル変数に受信データを突っ込もうとしても、 DataArrivalイベントが起きません。 同期送受信を実現するためには、 Winsockコントロールではなく、Win32APIの方でやらないといけないのでしょうか?
>>30 同期通信も非同期通信も、ヘルプに載ってなかったっけ?
34 :
30 :2006/07/13(木) 16:55:35
>>30 MSDNを見た限りでは、DataArrivalイベントでデータを取得する方法しかないようです。
35 :
30 :2006/07/13(木) 17:01:33
>>34 昔どっちも書いた筈なんだけど、今VBが動かない環境なので試せない・・・
37 :
30 :2006/07/13(木) 17:12:05
>>36 さん。
もしよければ、ソースをペタリと m(_ _)m
38 :
デフォルトの名無しさん :2006/07/13(木) 20:36:17
かとちゃんぺ?
>>31 >>32 どっちだよwwwwwwwwwww
>>29 そのままマージするのは無理だけど、1レコードごとに連結して書き込めばいける。
それが気色悪かったら適当なレコードクラスを書いてとりあえずコレクションにでも格納すれば良いんじゃないかと
41 :
デフォルトの名無しさん :2006/07/14(金) 00:30:26
しかし
>>29 みたいな意味不明な質問によくみんな回答できるもんだな。
エスパーの素質があるのか?
複数のテキストを同時に書き込むってどういう意味だよw
同時って何だよw
○ 回答者の心得 一.答えられない質問は無駄に罵倒せずスルー。
43 :
デフォルトの名無しさん :2006/07/14(金) 00:43:36
アンタはそうすれば? 俺は俺のやり方で通させてもらうから悪いけど
これだからお子様は。
プログラム板は堅いやつとかプライド厨自慢厨のかたまり
私はただの事務屋なのですが、仕事で.ctlをいじってくれと言われました。 VBは初めてなのでググってはみたのですが、よくわかりません。 ユーザーコントロールというのは、つまり実行ファイルを経由する外部スクリプトなのでしょうか? だとすると仕様がわからないとどうしようもないですよね・・・
>>47 まずは仕事を依頼した人に詳しく聞いてください
ボケ質問を見るともっとボケた回答をしたくなるという関西人の性
>>48 「君、パソコン得意なんでしょ。このアプリ、以前いた人が残していったものだけど、使いにくいからなんとかして」
「は?」
「その人が、.ctlというのを変更すれば何とでもなると言っていたから、何とかなるでしょ」
「いや、意味がわかんないんですけど」
「だからね、送られてくるデータの形式が変更になったから、こっちも直さなくちゃならんの。
でも、誰も直せないから君がやってみて」
「(フィルタみたいなものなのかな?)えっと、では、変更前の送られてくるデータの様式と、変換後のデータの様式を見せてください」
「ない」
「・・・じゃあ、このプログラムに仕様書とか説明書とか最悪ソースってないんですか?」
「パソコンが得意なくせに、コントロールデータも知らないの? そんな複雑なもんじゃないからちゃちゃっと直してね」
上司、去る
タッチタイプできるだけでパソコンが得意ですか・・・そうですか。
でも頭に来たので何とかしたくなったのです。
やったらやったで上司の思う壺だ。 そんな会社上司をブン殴って 辞 め ち ま え
VBはExcelのマクロには元から入ってても VBだけを立ち上げるには購入しないと無理?
>>52 VBAでも初心者がVBでつくる程度のことならできる
>>28 Excelのデータ形式で保存したい(罫線、数式なども保存したい)と言う場合はExcelを使うのが無難
ただし、その場合はExcelのバージョン違いなどに気を使う必要が出る。
データだけを扱うならCSVファイルなどで連携するのが楽
56 :
デフォルトの名無しさん :2006/07/14(金) 11:35:28
>>28 SPREADつかえ
エクセルからのインポート/エクスポート機能ある
まあ、表示にしろ操作にしろ保存結果にしろ全く同じとは思わんけど
57 :
デフォルトの名無しさん :2006/07/14(金) 11:49:42
ねえねえWindowsで動かすのだったら一番楽なのってVB?
>>57 メモ帳か電卓かねぇ。うちの上司はマインスイーパしか使えないけど。
59 :
デフォルトの名無しさん :2006/07/14(金) 11:58:10
>>58 違う違う
そういう意味じゃあない
Windowsで動かすシステムつくるのに
最も楽できる言語はVBですか?
という意味なのである
>>59 どの言語でも同じだよ。
ちゃんと設計して、コード書いて、テストしてデバッグして。
VBは、UIが簡単に作れる、ってだけ。
>>60 はぁ?
君VBしってるの?
もしくはVBしかしらない?
>>61 異論があるなら、ちゃんと文章で表現しようね。
63 :
デフォルトの名無しさん :2006/07/14(金) 12:49:26
>>60 >>61 にょおおおお
県下はやめなはれ
私の質問にわかりやすく答えればいいだけなのである。
以上。
>>60 オレも同じ意見だな
システムって話なら言語はあんまり関係ないね
要員の集めやすさとか集まる要員のスキルの差とか工期の長さとか顧客の用意する資金の多寡ってのに差が出てくるけど
>>61 アセンブラ、C、VB、VBS、VBA、Fortran、Basic、
PL/M、PL/I、COBOL、C#.NET、VB.NET、PASCAL等、
その他幾つかのマイナーな独自言語での開発経験があるけどそれが何か?
66 :
デフォルトの名無しさん :2006/07/14(金) 13:02:28
67 :
65 :2006/07/14(金) 13:05:30
本当は日本語プログラム言語「ひまわり」とVBAです。 嘘ついてごめんなさい。
69 :
65 :2006/07/14(金) 13:06:42
64も私の書込みです。 自作自演してごめんなさい。
71 :
デフォルトの名無しさん :2006/07/14(金) 13:12:34
>>70 おいおっさん
習得しやすい言語おしえろや。
72 :
テスト中 :2006/07/14(金) 13:29:50
変数n に記憶されている数値327を整数327として画面に出力するには、 printf ( ) と書けばよい。 ( ) を教えてください>< 17 名前:テスト中 2 :2006/07/14(金) 13:20:21 2、 変数n に記憶されている数値327を変動少数点数327.0として画面に出力するには、 printf ( ) と書けばよい。 ( ) を教えてください>< 18 名前:テスト中 2 :2006/07/14(金) 13:21:50 変数n に記憶されている数値56.351を小数点以下第2位まで画面に出力するには、 printf ( ) と書けばよい。 ( ) を教えてください>< 19 名前:テスト中 4 :2006/07/14(金) 13:25:06 4、 変数n に記憶されている十進数値97を printf ( "%c",n) で入力すると画面には ( )が出力される。 ( ) を教えてください><
75 :
デフォルトの名無しさん :2006/07/14(金) 13:54:22
>>72 printf (int(n));
printf (floor(n));
>>74 根拠を示しなさい。
76 :
デフォルトの名無しさん :2006/07/14(金) 13:55:50
77 :
デフォルトの名無しさん :2006/07/14(金) 13:57:02
78 :
デフォルトの名無しさん :2006/07/14(金) 14:16:04
>>77 え?違う?.3f
ああCか・・
printf("%d\n", num1);
printf("%d.1f\n", num1);
かな
・・・
・・
・
アムロ逝きます
83 :
デフォルトの名無しさん :2006/07/14(金) 20:17:37
みなさん、こんばんは Btrieve(データベース)にWbtrv32.dllを使ってアクセスしているのですが、 VBアプリでは問題ないのに、 同じ機能をDLL化させてIIS+ASPから実行させると、 Btrieveのオープンエラーが発生します。 アクセス権、実行権限などを変えてみましたが、 効果ありませんでした。 ご存知の方がいらっしゃれば、宜しくお願い致します。
VBAじゃPictureとかTimerは絶対使えませんよね? VBAのみを立ち上げることはできるんですか?
?
86 :
デフォルトの名無しさん :2006/07/18(火) 07:29:42
ある画面がアクティブになったら イベント起こしたいんですが タイマーでウィンドウハンドル見続ける以外に 何かいい方法ないですか?
>>86 今VBが動かない環境なんだけど、Form_Active とかのイベントなかったっけか。
88 :
86 :2006/07/18(火) 10:09:22
>>87 VB上から別ウィンドウを監視したいんです。
ごめんなさい 説明不足でした。
>>88 別のExeって事?
なら SetWindowsHookEx でおk。
90 :
デフォルトの名無しさん :2006/07/18(火) 15:58:53
アクションゲームを作っているものですが、人がブロックや壁(フォームの端)に行ったらそこで止まるという行き止まり判定がわかりません。 あと、どこに入れて良いのかもわかりません。 すみませんが誰か教えては頂けませんでしょうか? 人はHito(Imageを使っています。) ブロックはBlock(こちらもImageを使っています。) です。 よろしくお願い致します。 ちなみに今私が書いているコードは If Hito.Width> Block.Width And_ Hito.Height>Block.Height And_ Hito.Width <Block.Width And_ Hito.Height<Block.Height Then Hito.Width=Block.Width−1 Hito.Height=Block.Height+1 というコードです。
>>91 サンプルをダウンロードしてみれば、ソースがそのままあります。
exeで実行しないと結果はわかんないかも。
俺はXPだから、Meは知らんけど。
>>92 exeを実行したところ、やはりこのフォーム自体がアクティブになり、対象ウィンドウに
文字入力できませんでした。
XPが手元に無いのですが、いつか試してみることができたら、その時にまた
実行してみようと思います。
お答えいただいてありがとうございました。
95 :
デフォルトの名無しさん :2006/07/18(火) 21:59:15
SQLについて 複数の前方一致(LIKE)のやり方をしたいのですが、どなたか教えてください。 'A'と'B'が先頭にあるデータを取得したいのですが・・・ よろしくお願いします。
DB板。
>>95 DAO LIKE (A* OR B*)
ADO / RDO LIKE (A% OR B%)
98 :
デフォルトの名無しさん :2006/07/19(水) 13:39:48
MAKECAB.EXEを使用してフォルダ圧縮をしたいのですが、 どこを探してもファイルの圧縮方法しか書かれていません。 フォルダを指定しての圧縮は出来ないのでしょうか?
>>98 ディストリビューションウィザードでインストーラー作ると、
Supportのフォルダの中に、
MAKECAB.EXEを使って圧縮するバッチがあるけど?
あれって、フォルダつきじゃなかったっけか。
101 :
デフォルトの名無しさん :2006/07/19(水) 16:46:45
このタイプのスレは常時age進行だった
103 :
デフォルトの名無しさん :2006/07/20(木) 00:50:29
Open ●● For Binary Lock Read As #1 でファイルを開いた後に Get #1, , ●● を何度も使って読み進めていきます。 次読もうとしている位置を取得する方法はありますでしょうか? 途中まで読んで判定分で少し戻るような仕組みにしたいのです
104 :
デフォルトの名無しさん :2006/07/20(木) 09:12:05
テキストファイルの文字列を一括変換させるという基本的なことなのですが RichTextBoxつかってできるのでしょうか。オブジェクトがありませんと いわれてしまうのですが…。
Win2000で開発したVB6アプリをXPSP2で動かすと 発行元が確認できない(デジタル認証がない)と 怒られたのですが、理由が分からず困ってます。 前に作ったアプリはそんなことなかったのですが どなたか原因を教えていただけないでしょうか?
>>107 「Win2000で開発したVB6アプリをXPSP2で動か」したのが原因だろ。
VBの場合、開発環境と実行環境を完全に同一にするのは、常識以前の話。
>>108 おまいのPCはWin98か?w
いつの時代の話だよ
常識見直したほうがいいぞ
WinMeで作ったVB6アプリをXPSP2で動かしても問題なかったけどな。 vb6jp.dllだかを持ってこないと一部文字化けはするけど。
>>107 IEでWebやftpからダウンロードしたり zipで圧縮してXP標準のツールで展開した場合は、
ネットからダウンロードしてきたものとしてファイル(ファイルフォーク)に情報が付加される。
これを実行しようとした場合はデジタル署名の検証ダイアログが出る。
もしこれのことならVBは関係ない。
113 :
107 :2006/07/22(土) 15:15:39
まさしく
>>112 さんの書いてあることをやっていました。
FFFTPで落としたら出なくなりました。
勉強になりました。ありがとうございます。
114 :
デフォルトの名無しさん :2006/07/22(土) 22:05:04
突然失礼します... VB5 でアプリケーションウィザードを使って簡単なソフトを作っていました.テキスト見ながらですが... "開く"でつまずいてしまいました 一応テキスト通りに記述してテスト起動させて開くをクリックすると"実行時エラー426複数のMDIは使用出来ません"となり開く事すら出来ません テキストに回避方載ってなかったのですがどうしたら回避出来ますかご教授お願いしますm(__)m
テキストを窓から捨てる
116 :
デフォルトの名無しさん :2006/07/23(日) 00:48:49
VB4.0を購入しXPにインストールしたんですが… VBA6.0は元から入ってたみたいで まさかVBは元から入ってることはないですよね? 6.0にわざわざ4.0を上書きしちゃったのか すごく不安になったので書き込みました。 ちなみに家庭用のXPです。
>116 つりは、もっと、じょうずに、やろうね。
122 :
114です :2006/07/23(日) 11:40:33
本当にご教授お願いしますm(__)m
125 :
デフォルトの名無しさん :2006/07/23(日) 12:58:22
>124 テキストと言うのは買ったやつで簡単プログラミング VB6応用とか言うやつでして... 言うの忘れてましたが.. 開くの所は同じですが多少変えて(そのままじゃ面白くないから)WMPにしましただからテキストエリアの分を全てWMPになるように変えましたが開くだけは上手くいかないのです(泣 お願いします 対処方が本当にわからないので...
127 :
デフォルトの名無しさん :2006/07/23(日) 14:03:36
>126 開く部分は同じだったから すいませんでしたm(__)m
著者に謝罪は無いのか。
貴様はいい!そうやって本のせいにすれば気分も晴れるのだからな!
VB6なんですけど、ファイルからバイナリデータを読み込むのですが、 INPUTBで1バイトづつ読み込んでバイト型変数に格納してます。 その際、c=inputB、b()=inputBの二つの方法があるのですが、どっちを使えばよいのか分かりません。 どっちでも良いわけではなくて、間違うと「実行時エラー13 型が一致しません」が出ます。 同じプロシジャー内で、続けて一バイト読むのに、例えば、最初はc=、次はb()=、じゃないとエラーになる、 という状況で、使い分けの理由が分からないので、Try&Errorで凌いでます。 この使い分けをご存知の方、教えて下さい。 サンプルコード Dim c, b() as byte Let c=inputb(1,#1) Let b()=inputb(1,#1) ちなみに、VB6SP3、XPHomeSP2です。
>>130 上記の場合少なくとも 変数c はバリアント型になるから気をつけたほうがいい
Dim c as byte, b() as byte
132 :
110 :2006/07/23(日) 16:50:33
>>111 動作に問題はない。表示に問題がある。DLL持ってくれば問題ない。
表示って結構重要な「動作」だと思うけど…。 ものによって重要度が低いと言うことはあるけど。
>>133 VBの基本すら分かってない莫迦なんだから放っておけ。
135 :
130 :2006/07/23(日) 19:51:32
>131 それは迂闊でした。byteなら配列で、ということのようです。 ありがとうございました。
136 :
デフォルトの名無しさん :2006/07/24(月) 08:59:39
リストビューを使って表形式のデータを表示しています。 リストビューのある特定の列と行のデータ(Excelのセルのようなものと言った 方が分かりやすいかもしれません)がある条件を満たすと リストビューの先頭のアイコンを変更してデータがある条件を満たしていることが 分かるようにプログラムしていますが、本当はそのある条件を満たした行と列のみ 背景色または文字の色を変えたいのです。アイコンだけ替えた場合どの部分の列,行のデータが 条件も満たしたのか一目で分かりにくいからです。グリッド系のコントロールなら たやすくできそうですがリストビューでは背景色すべてを変えるサンプルを見たことがありますが ある特定の行と列だけ変更するものは残念ながら見たことがありません。(私が知らないだけかとも 思いますが・・・)事情があってグリッド系のコントロールは使用できませんのでリストビューで 実現したいのです。どなたか詳しい方がおられましたら教えてください
137 :
デフォルトの名無しさん :2006/07/24(月) 09:13:39
138 :
137 :2006/07/24(月) 09:54:57
>>137 >
>>136 > オーナードローじゃね?
レスありがとうございます。私はまだ未熟者なので詳しく教えていただければ助かるのですが
140 :
デフォルトの名無しさん :2006/07/24(月) 12:33:30
テキストボックスで文字列を縦に表示するにはどうしたらいいですか?
141 :
デフォルトの名無しさん :2006/07/24(月) 12:33:35
ウィンドウの表示状態の質問なのですが 最小化されてるウィンドウのタスクアイコンをクリックすると 最大化→最小化とされたものは最大化状態で表示され 通常サイズ→最小化されたものは通常サイズで表示されますよね。 つまり、最小化される前の状態に復帰するわけですが、それをコードで行う方法を教えてください。 WindowStateでは最大化か通常サイズのどちらかを明示的に選択しなくてはなりませんし APIのShowWindowでは第二引数を1か9以外にすると最小化から復帰しないし 1か9だと、最小化前が最大化状態だろうと、通常サイズで表示されてしまいます。 SetForegroundWindowも最小化からは復帰しません。 最小化される前の状態を変数に取得しておくとかの逃げ道もありますが、 ちゃんと最小化からの復帰のみを行うような方法があれば教えてください。宜しくお願いします。
>>140 テキストボックスを縦スクロールバーのみにして縦長にするとか。
>>141 WM_SYSCOMMAND の SC_RESTORE を SendMessage じゃ駄目?
143 :
デフォルトの名無しさん :2006/07/25(火) 13:54:47
ユーザコントロールにメニューを追加したいのですが、どのようにしたら出来るのでしょうか? メニューエディタで作成しても表示されません。しかし、ショートカットキーを割り当てると、動作するので、メニューは存在するようなのですが。 どうしたら表示されるのでしょうか? よろしくお願いします。
>>143 coolbarでも貼ればいいんじゃない?
VB6(SP3)、XPHomeEd(SP2)です。 画像の上に文字を重ねて表示させたいと思っています。カラオケの歌詞字幕みたいなあんな感じです。 画像は一枚ではなく、コントロール配列にして動的に画面上に並べています(概ね20枚程度) 一枚の画像上に表示する文字列は10個程度、全画像に同じように重ねます。 そこでうまく行かず躓いています。アドバイスがあればよろしくお願いします。 実際はLEADTOOLSを使ってますが、基本は同じかと思いますので PictureBoxコントロールという設定で質問します。 PictureBoxの上にLabelを重ねたのですが、 LabelはPictureBoxの下にもぐってしまい、見えなくなってしまいます。 (ヘルプでは、どちらも中間層に属するのでLabelを上に出せると思ったのですが・・・) PictureBoxの中にLabelを配置したら(PictureBoxをLabelのコンテナにしたら)、 Labelはうまく表示されました。が、新しいPictureBoxをロードしたときに難があります。 新しいPictureBoxの中にはLabelがありません。Labelも新しくロードすると、 それは古いPictureBoxの中にロードされてしまい、新しいPictureBox上では使えません。 TextBoxはPictureBoxの上に持ってこれますが、背景を透明にできません。 仕上がりがダサすぎるので、何としても避けたいです。 文字列は画像の左上、右上と振り分けて表示したいので、PictureBox.Printも避けたいです。 コンテナの下位のものを全てひっくるめてロードする方法とか、 ロードした後、コンテナを指定する方法とか、あるいはそれ以外でも、 何か方法がありましたがアドバイスお願いしたします。
>>145 普通に Picture1.Print "文字列" で描画出来なかったっけ?
今VB動かない環境だけど。
>>145 Containerとかユーザコントロールとかあるやん?
>146 回答ありがとうございます。 画像の上に配置したい文字列は10個程度あります。 それを左詰めで上から順番に並べると画像の邪魔になるので、 上下左右に振り分けで配置したいと思っています。 当然、右側は右寄せにするので、左上に配置する文字列の後ろに スペースを挟んで表示になります。 長い文字列は折り返して複数行になるので、かなり煩雑になります。 なので、なるべく避けたいと思っています。
無視かよ!
>147 いや、あるんですけどぉ・・・ と思いきや、Containers コレクションばっかり調べていて、 Contanerプロパティは見落としていました。 これで望むことができそうです。本当にありがとうございました。 また、これを機会にユーザーズオブジェクトについても 勉強させていただきます。
>149 147さんですか?申し訳ありません。 1レスごとに内容を確認して、ヘルプを調べ直したり、 テストプログラムを動かしたりしておりますので、 時間がかかってしまいました。お詫び申し上げます。
152 :
116 :2006/07/26(水) 12:01:25
>>152 仕事用のPCで
「これにVB4入れて開発してくれ」
って渡された場合はありえなくはない
>>148 Picture1.CurrentX = 10
Picture1.CurrentY = 10
Picture1.Print "test"
で任意の座標に文字を出力できる
ScaleModeは3のピクセルでな
そうだね、プロテインだね。
>>153 Printは複数行の折り返し処理が面倒って話では
>>155 その部分見落としてたわ
それぐらい文字列の長さで判定してCurrentYの値に
フォントサイズ足せば良いだけな気がする・・・
>>150 で解決しているけど、ユーザーコントロールを利用するのが結果的には1番楽になると思う。
>>158 つーか、LEADTOOLS 使ってるならそんな事簡単だと思うが・・・
サンプルも幾らでもあるし。
160 :
デフォルトの名無しさん :2006/07/26(水) 16:01:27
VB6とVBScript(WSH)にまたがる質問なのですが、 VB6からWScript.exe・cscript.exeが実行しているスクリプト(.vbs、.js、.wsf等)の フルパスを取得したいのですが、どのようにすれば良いでしょうか? やりたいことは実行中の永久ループのスクリプトを一覧し、任意の物を終了させたりしたいのです。 これが実行ファイル相手なら、WMIのWin32_Processクラスを利用して、実行ファイル名を指定してプロセスコレクションを取得し その中からExecutablePathの値を調べれば済むのですが、実行ファイルのフルパスを調べる方法はわかっても 実行中のスクリプトパスを取得する方法がわからないのです。 後付けで取得するのではなく、スクリプトの実行自体を、作成したアプリで管理すれば簡単なのですが それにはレジストリの関連付けを弄らなくてはならず、今回はこういった方法は使えません。 ちなみに今は外部にフラグを置き、それを定期監視する事で実行継続と終了を分岐するようにしています。 しかしそれが煩わしい為、今回のようなものを作ろうと思い立ちました。 VBScriptは有る程度わかるのですが、VB6はまだ始めたばかりでAPIとかVBScriptに無いものはよく分からないので 具体的なサンプルを書いていただけると嬉しいです。
>任意の物を終了させたりしたいのです。 なんで、「スクリプトのフルパス」なんかいるんだ?
162 :
160 :2006/07/27(木) 10:12:07
例えば Do WScript.Sleep 1000 Loop と書いたスクリプトが3つあるとします。 それぞれのパスはc:\aaa.vbs、c:\bbb.vbs、c:\ccc\aaa.vbsだとして この3つを全て実行します。 見ての通りこのスクリプトは勝手に終了する事はないのでタスクマネージャには @WScript.exe AWScript.exe BWScript.exe という3プロセスが存在することになります。 このうちc:\aaa.vbsを実行してるものだけを終了したい場合に、このままでは@ABのどれを終了させれば良いかが解りません。 また、現在どのスクリプトが稼動中かも、タスクマネージャからは判断出来ないのです。 そこで@ABのWScript.exeプロセスそれぞれに対して、実行しているスクリプトのフルパスを取得したいというわけです。 スクリプトのフルパスがわからなくてもWScript.exeのプロセスを終了させることは出来ますが、 「任意の物」だけを終了させることは出来ません。 それとハッキリと書いてませんでしたが、システムディレクトリ内のファイルやレジストリを弄る方法は事情があって使えません。 使用環境はWindowsXP pro/home、Windows2000 proで、WSHはver5.6、開発環境はVB6.0 SP6です。
>>162 「システムディレクトリ内のファイルやレジストリを弄る方法」で、
スクリプトのパスが取得出来るの?
その方法を教えて!
164 :
160 :2006/07/27(木) 11:40:01
>>163 単純な方法です。
>>160 でもちょっと書きましたが、スクリプトを直接WScript.exeに渡すのではなく自作のアプリを介して
WScript.exeに渡すようにします。WScript.ShellのExecメソッドで実行すれば、実行中か終了したかは
Statusプロパティで判断出来ますしTerminateメソッドで終了させることも出来ます。
Execオブジェクトを配列やコレクションで保持しStatusプロパティが0を返す物のみリストボックスなどに表示、
1を返す物を破棄すれば、実行中の物の一覧が出来ますし、選択した物のキーからオブジェクトを辿り
Terminateメソッドを実行すれば任意の物のみを終了出来ます。
つまり、スクリプトのパスが取得出来るようになるのではなく、パスが解るような形で実行するということです。
但しコレを漏れなく行うには、.vbsの関連付けをそのアプリに変えるか、
c:\windows\system32\wscript.exeを置き換えなければなりません。
そのアプリを標準関連付けにしなければ、直でWScript.exeで実行してしまう可能性がありますから。
あと、これはどうしてもと言うわけではないのですが、出来れば常駐はさせたくないので
上記の方法は最低でもスクリプトが1つ以上実行されているときは常駐必須となり、あまり好ましくありません。
>>164 いやあの・・・
自分以外の人が実行したスクリプトのパスが欲しいんじゃないの?
自分が実行した物なら、パスなんか自分が知ってるじゃん。
別に何にもしなくても。
166 :
デフォルトの名無しさん :2006/07/27(木) 12:00:01
突然ですが、お聞きしたいことがあります。 VBscriptで1〜50までの間で3と5で割れる数字をリストできるように プログラミングしたいのですが、どのようにすればよいでしょうか?
>>166 Dim i
For i = 1 to 50
If (i Mod 3) = 0 Then
If (i Mod 5) = 0 Then
MsgBox i
End If
End If
Next
168 :
160 :2006/07/27(木) 12:31:56
>>165 > 自分が実行した物なら、パスなんか自分が知ってるじゃん。
> 別に何にもしなくても。
はい、大抵は知ってます。
でも
>>162 で書いた@ABのWScript.exeプロセスのどれがc:\aaa.vbsを実行してるプロセスだかは知りません。
また、実行してから2〜3日経つ物とかもあり、何を実行してるか一部忘れてることもあります。
まあだいたいは覚えてますが、曖昧な記憶より、確実な情報が欲しいところですし。
aaa.vbs実行 WScript.exeのプロセスID取得 bbb.vbs実行 WScript.exeのプロセスID取得 2個取得して1個目と違うのを取得 ccc.vbs実行 3個取得して1,2個目と違うのを取得 で良いんじゃない? API使えばプロセスIDぐらい取得できるでしょ、たぶん
170 :
160 :2006/07/27(木) 13:24:02
>>169 その方法だと、常駐してWScript.exeプロセスの数を監視することになると思いますが、
手動実行する場合はいいとしても、スクリプトから別のスクリプトを実行する場合、
また、スクリプトから実行した別のスクリプトが終了直後に再実行する場合など、
監視間隔を狭めても上手くいかないことが有るでしょうし、あまり監視間隔を狭くすると余計な負荷も増えそうです。
再実行の場合だけなら、再実行前にSleepを取ることで対応出来なくも無いですが
既存のスクリプトを全部読み返して該当個所を書き換えるのは大変ですし
再実行ではなく普通に呼び出す場合に、aaa.vbsがccc.vbsを実行するタイミングと
bbb.vbsがddd.vbs実行するタイミングが近くなりすぎないように制御するのは困難です。
プロセスIDを取得する方法くらいは解りますが、プロセスIDからスクリプトパスを割り出すような方法が知りたいところです。
VBSとVB6でデータのやり取りが出来る前提で書きますが
(できるかどうか知らないですが・・・)
VBSからVBSの実行をさせず
VBSからVBSを実行させたいパスを
VB6に渡して、VB6からそのVBSを実行させて
>>169 の処理をすれば良いんじゃないかな
あとVBSを無限ループで実行させ
終了する(終了させたい)かもしれないのに
自身に終了手段がないのも問題だと思う・・・
書かれてるのはCだけど原理は同じだと思う
VBSでウィンドウタイトルを指定できるのならこれでいけるような気がする
ttp://forums.belution.com/ja/vc/000/298/59s.shtml
172 :
デフォルトの名無しさん :2006/07/27(木) 15:45:58
>>170 てゆーかさ、起動時にプロセスID戻らないの?
常駐やならファイルに書いて記憶しておけばいいんじゃ?
173 :
デフォルトの名無しさん :2006/07/27(木) 16:11:59
VB6.0で作ったアプリケーションをXPHomeで動かしているのですが、日本語が一部、文字化けしてしまいます。 開発機のXPHomeでは文字化けしないのですが… なぜなのでしょうか? どなたかご教授下さい。よろしくお願い致します。
175 :
デフォルトの名無しさん :2006/07/27(木) 16:37:31
177 :
デフォルトの名無しさん :2006/07/27(木) 16:48:01
>>176 インストーラを作成しないで文字化けしないようにすることは可能ですか?
>>177 インストーラと同じ事を実行すれば可能です。
179 :
160 :2006/07/27(木) 17:41:22
>>172 > てゆーかさ、起動時にプロセスID戻らないの?
スクリプトから実行した場合はまだしも、普通に実行した場合は戻りません。
というか戻ったところでそれをテキストに書き出す機能なんて無いですよね。
実行時にプロセスIDを取得してテキストに書き出す方法では、
関連付け変えるかWScript.exeを置き換えるかして、起動時にプロセスID取得して
それを書き出すようなアプリやスクリプトを噛ませなくちゃなりませんし、
プロセスが死んだ場合にそのテキストから除外する手段が無いと問題なので
結局常駐は必要になります。まあ常駐は絶対に不可というわけでは無いですが。
優先度で言うと「目的を達成する方法 >>> 非常駐」です。
目的を達成する方法が常駐と非常駐の両方で存在するなら、非常駐を選びますが
常駐でなければ目的を達成する方法が無いというなら、目的を達成する方法を破棄するよりは
常駐でも目的を達成する方法を取ります。
180 :
デフォルトの名無しさん :2006/07/27(木) 17:51:11
>>179 「実行中の永久ループ」はどうやって判断するの?
スクリプトはいじれないの?
スクリプト自身にループ中にファイルの有無とかで終了判定する処理書けば?
なんでそんな管理が必要なものをVBSでかくわけ?
「やりたい事」と「やる方法」を完全に間違えてるな。
>160 ごめん。チャチャじゃないけど興味本位w そもそも何でそんなもんを作らなきゃならん羽目になったの? SEとしてはちょっと興味ある。 よかったら差し支えない範囲で教えてよ。
ここって回答出来ない質問が来ると、なんで必要なのか とか、そんなやり方は間違ってるとか言う奴が多いよね。 そういう回答以外の意見は、回答に添えるだけでいいのに。 「こうすると、君のやりたいことは出来るよ。でもこの方法は 効率悪いから、俺はこうやったほうがいいと思うけどね」 って感じでさ。 質問者が律儀に構ってやるもんだからつけあがってるけど ここは方法論に意見を付けるスレではなく、回答を求めて 質問するスレなんだから、回答以外の意見は、回答した 上で言え。回答出来ないのに意見だけ言いたい子は 控えめに言え。 質問者も回答に必要な情報の聞き返しとかならまだしも、 単なる野次に反応するな。
186 :
デフォルトの名無しさん :2006/07/28(金) 08:22:07
100m先のコンビニにいくのに、 一旦、ロケットに乗って成層圏を経由して行きたいと思います。 どうやったら成層圏に到達するロケットが作れるでしょうか? この類の質問にも184みたいのは、きっと黙っているかあるいは真面目に 回答するんでしょうなw
当然だろ? 目的は「コンビニに行く」だけではなく「成層圏を経由」と 「コンビニに行く」の二つなんだから。 効率よく「コンビニに行く」方法を聞いてるのではなく、 どういう経路・方法で「コンビニに行く」のかを指定されてる なら、効率悪いと感じても指定された方法以外の回答は 基本的に無意味だぜ。質問者が「成層圏を経由するのが 一番近道だと思うので」とか言ってるなら、蘊蓄たれてやるのも いいが、効率以外の何かを求めて成層圏を経由したいと 言ってるなら、その意向に従うまでだ。 186の例えは極端なものだが、逆の意味で極端な例を挙げる なら、醤油ラーメンを注文した客に対して、「うちは豚骨ラーメン がオススメなんで」と言って注文と違うものを出すラーメン屋。 客がオススメは何かと聞いてるなら、豚骨ラーメンを勧めるのは 一向に構わないが、例え店のオススメが何だろうと、客が注文 したものに逆らっちゃダメだろw 職業プログラマだと、この手のことは良くあるんだよ。 効率よい方法をアドバイスしてみたものの受け入れられず 決定権は顧客側にあるから、「なんでこんな糞ルーチンを」とか 思いながらコーディングするなんて日常チャ飯事だぜ? もちろんアドバイスを素直に受け入れる客も居るし、初めから 結果が得られるならあとはこっち任せってのもあるけどな。
>>184 じゃぁこれからは全部お前が質問者の希望通りの回答を付けろ。
おまえが成層圏に行け
逆ギレm9(^Д^)プギャー
他の人の回答に難癖付ける奴って何なんだろうね。 自分が最適と思う回答を書き込めばいいだけなのに。
難癖付けられてるのは回答に対してじゃないし
193 :
デフォルトの名無しさん :2006/07/28(金) 10:58:30
194 :
デフォルトの名無しさん :2006/07/28(金) 11:06:46
>>186 例えが悪い。
100m先のコンビニに行きたいのですが、
コンビニの周りには水の満たされた堀があるので、歩いては行けません。
そこで、ロケットに乗って成層圏を経由して行ってみようと思っているのですが、
どうやったら成層圏に到達するロケットが作れるでしょうか?
みたいなのならどうよ?
回答する人は律義にロケットの作り方説明。
意見?する人は「橋ねーの?ないなら作ったらいいんじゃね?」「泳いだらどーよ?」「船は?」「別の店じゃだめなの?」とか言う。
厨は馬鹿にしたり冷やかしたりする。
色々な回答が出るのは良い事じゃん。 質問者がその中から一番気に入ったのを選べばいいんだし。
>>194 その例えだと、出来れば歩いていきたいという希望が伺えるから、橋を造れば歩いていけるとアドバイスし
その方法で質問者が納得すれば橋の作り方を教えればいいし、それでも成層圏を経由したいと言えば
ロケットの作り方教えればいい
ここの奴らがしてることは橋を造れば歩いていけることを教えるでもなくましてや橋の作り方を教える出もなく
単にそんなことにロケット使うのはバカだと罵倒してるだけで、何とも卑しい限り
確かに成層圏を経由するのが目的ではなく、単に堀の先のコンビニに行くための手段だとするならバカな発想だろうが
質問者ってのは無知故に質問に来るんだから、バカなことやってると思うなら罵倒するのではなく
具体的なより良い代替手段を提示してやればいいのさ
代替手段を提示した上でそれを拒否されたら、最初の要望に適う方法を教えてやれば良い
ロケット作るのと違って莫大な資金が必要なわけでもないんだから、バカなことやってみるのも経験ってね
>>196 うんだからお前が提示してあげればいい。
いつも来る荒らしだからほっとけ
こんなスレ荒らして何が楽しいんだろ・・・
200 :
デフォルトの名無しさん :2006/07/28(金) 13:25:26
>>200 自分に回答出来る質問が一つもないからでは。
最近見かけなくなったキチガイ復活? それとも新人か?
夏休みという事にしておけ 無駄にスレ増やすなよ
204 :
デフォルトの名無しさん :2006/07/28(金) 15:45:23
質問です VBAなんですがスレ違いだったらスイマセン ユーザーフォームにtextbox1,2とcommandbutton1の3つのコントロールを 配置して textbox1に下記のコードを記入しました Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox1 > 99 Then CommandButton1.SetFocus Else TextBox2.SetFocus End If End Sub ステップインで実行して 100以上の数値を入力した時に同じトコを2度通ってるのですが理由が解りません どなたか原因の解る方いますか?
VBAスレがあるじゃん
207 :
204 :2006/07/28(金) 16:10:12
誘導ありがとうございます
きっとキチガイ君は自分に回答出来ない質問が来ることが気に入らないんだろうな。 だから回答出来ない質問がくると、その質問者がやろうとしてること自体を否定して誤魔化す、と。
相手にするな
213 :
160 :2006/07/29(土) 19:40:08
なんか荒れちゃってるようですが、馬鹿な方法だと思われても効率悪くてもいいので、 とりあえず今回はこちらの要望を満たせる方法を教えてください。 ベテランの方々が思い描くような完璧な方法は今後勉強していきますから。
215 :
160 :2006/07/29(土) 21:06:59
>>214 他のアプリを経由する方法は既に拒否済みの方法なので返信しなかっただけです。
VBSからVBSを呼ぶ場合だけなら他のアプリを経由するのは問題ないのですけど。ついでに
> あとVBSを無限ループで実行させ
> 終了する(終了させたい)かもしれないのに
> 自身に終了手段がないのも問題だと思う・・・
にも返信すると、VBSには任意の(人間の意志を条件にした)タイミングで終了させる手段そのものがありません。
終了方法は、全ての処理を完了するか、何らかの条件を満たしたときにQuitで終了させるか
プロセスを切るかくらいしかありませんが、今回想定しているスクリプトはこちらから終了命令を出さない限り
永久実行するものだから、完了での終了はありえません。そして条件分岐での終了ですが、
任意のタイミングでと言ってる通り終了の条件は自分の脳内にあるので、スクリプトでの取得は不可能。
脳内の意志をスクリプトで取得できる形(フラグ)にする方法は最初に書いたとおり煩わしいので避けたい。
そしてプロセスを切る方法を使いたいが、プロセスから実行しているスクリプトを調べる方法が解らないので
教えて欲しいというのが今回の質問です。
つまり終了手段が無いのでなく、自分好みの終了手段を用意したいが為の質問であり、
最初にも「ちなみに今は外部にフラグを」と書いたとおり、現在でも終了手段はきちんと用意しています。
みなさん、いろんな代案などを出してくれてますが、まずは最初の考え通りのものを作ってみたいので
@VB6アプリ起動
AWScript.exeのプロセスを全列挙
Bプロセスの固有情報(プロセスIDなど)から、そのプロセスが実行しているスクリプトパスを取得
のBの具体的な方法を教えてください。代案などはまた後日に検討してみます。
どとねとならできるっぽいんで、逆汗してみそ。
217 :
デフォルトの名無しさん :2006/07/29(土) 22:04:06
>>160 「WScript.exe・cscript.exeが実行しているスクリプト(.vbs、.js、.wsf等)のフルパスを取得」する方法はない。
フルパスを知っているのは WScript、CScript だけだが、それを外部から知るのは不可能。
どうでもいいけど、人に読んでもらえる文章が書けるように修行しろ。
各フォルダのスクリプト名称をワザと変えて、 taskmgr.exe で見れば、どのフォルダのスクリプトかわかる。
アメリカのNASAは、宇宙飛行士を最初に宇宙に送り込んだとき、 無重力状態ではボールペンで文字を書くことができないのを発見した。 これではボールペンを持って行っても役に立たない! NASAの科学者たちはこの問題に立ち向かうべく、10年の歳月と120億ドルの開発費をかけて研究を重ねた。 その結果ついに、無重力でも上下逆にしても水の中でも氷点下でも摂氏300度でも、 どんな状況下でもどんな表面にでも書けるボールペンを開発した!! 一方、ソ連は鉛筆を使った。
>>219 >>222 君らみたいな子はこういうスレに来ない方がいいよ
こんなスレで回答したって一文の得にもならないんだから
そんなカリカリしないでもっとゆったりと構えられる大人だけが残ればいい
読みづらい文でもちゃんと読んじゃうお人よしや
読みづらい文は、文句付けるのではなくスルーするスキルのある大人じゃないと
こういうとこじゃやってけないw
なんか「ケチつけられる」のを異常に怖がってる奴がいるけど、 読みづらい文章を「読みづらい」と指摘されるだけでも、当人に とってプラスになるかもしれないなんて、考えもしないんだろう。
>>224 きみ、いろんなスレで頓珍漢なこと言ってるよね。
#キティガイ復活?
>>215 >>171 なんだが
3つ目のウィンドウタイトルでプロセスID取得の方法はできないの?
VBSでもウィンドウタイトルぐらい指定できるでしょ?
終了させたいVBSのウィンドウタイトルの名前を
すべてVB6に登録しておいて管理できないかい?
取得できたらプロセスIDから強制終了させるAPI発動させればOKだと思うんだけど・・・
230 :
デフォルトの名無しさん :2006/07/30(日) 20:23:13
っていうか、2chで定型の文句みたいのコピペして喜んでる奴の気がしれんよね。 冗談抜きで精神分析の対象だと思うよ。
231 :
デフォルトの名無しさん :2006/07/31(月) 02:24:16
すいません、会社の仕事で、 ボタン1を押したらLANケーブルを抜いた状態(ネットが出来ない状態) ボタン2を押したらLANケーブルを挿した上体(ネットが出来る状態) というのを実現する必要が出たのですが、 これってVBで可能なんでしょうか? わたしVB経験もう5年ありますが、とても出来るとは思えないのですが、 もし実現する方法を知ってらっしゃる方いらっしゃいましたら教えていただけませんか?
WNet系のAPI使えばいいんでは
>>231 IPConfig /Release、IPConfig /ReNew とか。
> LANケーブルを抜いた状態(ネットが出来ない状態) って具体的に、どういう状態が一番ふさわしいんだろうな? IPアドレスをリリースした状態? LANアダプタが停止した状態?
235 :
デフォルトの名無しさん :2006/08/03(木) 11:58:46
>>215 MachineDebugManagerを使えばできた
OSや環境によってはMachineDebugManager自体が稼動していないが
VB6.0を使って電卓を作っているのですが、 末尾の一桁だけを削除する(と言うより、1つ前に戻る)機能って、 どうやったら実現できますか? (Windowsのアクセサリの電卓で言う「Back」のボタンです)
非常に初歩的なことなのですが質問をさせてください。 VB6.0でADOコントロールを使わずにオラクルからデータベースを 読み込み、データグリットに表示することは出来るでしょうか? 一日半試行錯誤しながらソースを書いたのですが、まったく出来ません。 どなたかお願いします<(_ _)>
239 :
236 :2006/08/03(木) 22:33:41
>>237 具体的にはどういうことなのでしょうか?
すいません。基本的に初心者なのでよく判らなくて…。
240 :
デフォルトの名無しさん :2006/08/03(木) 22:57:09
あんたの質問の仕方がなってないってこと。237も馬鹿だが。 具体的には、ってお前さんの質問がそもそも具体的じゃないんだよ。 そんな質問、エスパーでもなければ回答しようがない。
文字列の中身が半角数字か全角数字か判定する方法はありますか? VB6.0です。
>>242 文字数と文字容量を比較すればいいんじゃない?
244 :
デフォルトの名無しさん :2006/08/04(金) 15:04:08
VBで表を作りたいのですが、どのように実現しようか困っております。 まず、以下が前提条件となっています。 ・セルの折り返し表示 ・アクティブセルの常時入力モード ・セルの文字列はリッチテキストで出力 ・セルの内容に対するイベントの取得(カーソル位置の指定、取得等) ・表計算機能は求めない ・外部コンポーネントの使用可 イメージ的には、Wordでの表でしょうか。 グリッドだと、リッチテキストが実現できないし、 リッチテキストボックスだと、罫線が実現できません。 外部コンポーネントでも、いまいちベストな物が見つかりません。 何かいい方法はありませんか?
GrapeCityのSPREADとか、TrueDBGridは今も手に入るんだっけ? あとは、WordやExcelを貼り付けるとかその辺
246 :
デフォルトの名無しさん :2006/08/04(金) 17:04:08
>>245 SPREADやTrueDBGridはすでに検証済みで、
共にリッチテキストが実現できません。
SPREADはなかなかいい感じだったのですが…。
Word、Excel貼り付けは無しですね。
実行するマシンにWord、Excelをインストールしなければ
ならないですし。
Windowsの電卓のようなフォーカスの振る舞い、 イベントの処理はVBで可能でしょうか? ラベルをテキストボックスのように見せていると考えたのですが、 電卓を起動して、[Shift]+[F10]を押すと出てくるメニューから、 表示部分はラベルではなくてテキストボックスだと推測しています。 テキストボックスのキャレットの点滅は無くせないのでしょうか。
>>247 質問の意味が良く分からないけど、電卓のアレはEditクラスだよ
>>247 やろうと思えば出来る。
実際に電卓がやってるんだから。
つーか、電卓のサンプルあるだろが
いちばん知りたいのは、 あなたがWindowsの電卓のマネをするなら、どうフォーカスを処理しますか? ということです。
236と私は別人ですよ。
253 :
デフォルトの名無しさん :2006/08/04(金) 22:21:46
こんな回答者にエスパーであることを要求するドアホが そうそういるとも思えませんけどねw しかもどう考えても関連のありそうな質問してるし。
>>251 フォーカス処理なんて何もする必要ないが。
電卓なんてラベルとボタンだけで出来るだろ。
>>247 > 電卓を起動して、[Shift]+[F10]を押すと出てくるメニューから、
> 表示部分はラベルではなくてテキストボックスだと推測しています。
どうやったらそんなアフォな推測ができるんだ?
テクストボックスなくたってメニューぐらいいくらでも出せると思うけど。
>>255 はは。
コンテキストメニューの座標がぴったり表示部にマッチしてるじゃないですか。
あと、"Unicode制御文字……"ってありますよね。
Windows電卓は 表示部はEditクラス ボタン・チェックボックス・ラジオボタンはButtonクラス (Spy++調べ) 電卓のボタンにVB.CommandButtonを使うとキーボードフォーカスを持つが、 Windows電卓だとボタンがキーボードフォーカスを持たない。 表示部にVB.TextBoxを使うとキャレットが表示されるが、 Windows電卓だと表示部にキャレットは表示されない。また、事前に カーソルキーを連打してキャレットを移動させたつもりになっても、 その後の数字の入力は必ず右端に挿入される。 VBでどうやったら真似できるかは、俺は馬鹿だからわからないので 教えてエロい人
>>257 既存のコントロールを一切使わずに、
全てAPIなどを使って自前で実装する、これ最強。
電卓のボタン 1.ユーザーコントロールに フォーカス描画を持たない ボタンの様なモノ を描画 2.VB.CommandButton をオーナードロー 3.VB.CommandButton のフォーカスを User32::DrawFocusRect で打ち消す 電卓の数値表示領域 1.VB.Labelで 枠表示 背景白 右揃え マウスポインタをIビーム 2.VB.TextBox をサブクラス化し マウスメッセージ・キー入力メッセージ握りつぶし キャレットを消すには User32::HideCaret こんだけ思いついたけど… どっちも1.で十分可能でしょ なんでもかんでも Win32API に頼るヤツは 鼻高くしてC++でもやってろ 電卓は ボタンをオーナードローしてる様な気がする Caption に色付いてるし >また、事前に >カーソルキーを連打してキャレットを移動させたつもりになっても、 >その後の数字の入力は必ず右端に挿入される。 つーか 実際に 電卓の表示部をウィンドウハンドル指定で書き換えても 正しく処理されるし 変数に 表示データ持ってんだろ 電卓は
260 :
デフォルトの名無しさん :2006/08/06(日) 00:21:30
親フォームのボタンを押すと、親の上に子フォームを出します。 (以下、質問です) 親フォームを動かすと、一緒に子フォームを動かしたいのですが、 どうしたらいいでしょうか? (マウスでPCの画面上を動かす事を言ってます)
>>260 サブクラス化でイベント受け取って連動させればできるんだろうけど
そんなに見た目にこだわる事も無いと思うぞ
>>260 子の Top / Left を弄ればいいのでは。
263 :
260 :2006/08/06(日) 15:25:24
ありがとうございます。 ユーザの依頼なので、面倒な事になってます。 正直、よくわからないですが、イベントや子Top/Leftあたりで探してみます。 後、タイトルバーもいらないといわれてます。 フォームの上にある、青いバーの事です。 これは、出来ないですよね?
265 :
デフォルトの名無しさん :2006/08/06(日) 22:31:05
>>264 どうすれば、よろしいですか?
ヒントだけでも・・・・
ヒント:基礎の基礎を勉強し直す
各種ボタンを「なし」にして、で出来なかったっけか? どとねとなら、ボーダーを「なし」にすれば出来る。
269 :
デフォルトの名無しさん :2006/08/06(日) 22:56:01
>>268 ここまでヒントくれれば、何とかなりそうです。
ありがとうございます。
270 :
デフォルトの名無しさん :2006/08/06(日) 23:00:04
272 :
デフォルトの名無しさん :2006/08/07(月) 12:01:24
どっちもどっちだが、無知すぎるのも。 プログラム以前にWindowsしかも初心者レベルを知らないのにプログラムって。
まぁ、下っ端は仕事は選んでられないしな。 ただ、このスレはやさしくないぜ。
やさしくしてくれる所を探してそっちへ行け
275 :
デフォルトの名無しさん :2006/08/07(月) 13:13:41
お前らが優しくないだけだ 俺は優しい
人をクズ呼ばわりする奴に優しく出来るのは余程のお人よしさん。w
しかし、このスレに限らないが、何で他人の回答に難癖付ける奴が後を絶たんかね。 他人への文句じゃなくて、自分がベストだと思う書き込みをすればいいだけなのに。
278 :
デフォルトの名無しさん :2006/08/07(月) 17:21:44
ピクチャボックスの画像を回転させたいのですが 下のように書くと幅が短くなってしまいます どこが悪いのでしょうか? Picture2.PaintPicture Picture1.Picture, 0, Picture1.ScaleHeight, Picture1.ScaleWidth, -Picture1.ScaleHeight
279 :
278 :2006/08/07(月) 18:14:39
出来ました! 正直すまんかった
意地悪な突込みだと思うが回転じゃなくて反転じゃないか?まぁ出来たなら良いかスマソ
281 :
278 :2006/08/07(月) 19:24:38
282 :
278 :2006/08/07(月) 19:56:58
Picture2.PaintPicture Picture1.Picture, 100, Picture1.ScaleHeight, Picture1.ScaleWidth ごめんこれでやってみたけどまったく表示されない
VBのIDEのことなんですがコード用のウインドウやオブジェクト用のウインドウが 完全に分離しちゃってるんですがどうやったら戻せるのでしょうか? 教えてください、お願いします。 完全に分離っていうのは例えばコード用のウインドウを最大化すると 画面がそのウインドウだけになってしまうといった状態です。
>>283 ツール - 詳細設定 - SDI開発環境
かな?
285 :
283 :2006/08/08(火) 00:53:32
>>284 ありがとうございます。
これで落ち着いて作業できます。
>>278 画像を回転、反転する命令は無いです。
1ドットづつ置換えるしかない。
ほい Call Picture1.PaintPicture(Picture2.Picture, 0, Picture2.ScaleHeight, Picture2.ScaleWidth, -Picture2.ScaleHeight, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, vbSrcCopy)
288 :
デフォルトの名無しさん :2006/08/08(火) 19:19:45
WebBrowserコントロールの事を知りたいのですが、役に立ちそうなHP知っていれば教えてもらえませんか?
292 :
デフォルトの名無しさん :2006/08/09(水) 09:35:25
>>291 お前が馬鹿、今のプログラマ能力の3割ぐらいは適切なぐぐる様とのチャネリング能力だよ。
プログラマーの場合は3割が正解、 コーダーの場合は7割。
295 :
278 :2006/08/09(水) 13:27:02
>>295 実際動かして確認して
そのコード張ったんだけどな・・・
エラーになると言われても内容わからなけりゃ答えよう無いです
>>295 別に一方的な報告はしなくていいよ。
君がどんなエラー出そうと俺等は全く困らないから。
吐き捨ての報告ではなく、現状を報告しての再質問なら、詳しく書こうね。
どういう環境で、どういうコードを実行して
(これは
>>287 だろうが、全く変更してないのか、何か変更した部分があるのかは明確に)
どういうエラーが出て、どういう試行錯誤をしたのか。
ちゃんと書かなきゃ答えられないし、答える気にもならん。
>>297 全く困らないなら、スルーすればいいのに。
297はただ困らないと言ってるわけじゃないよね 一方的な報告なら、オマエがどんな状況だろうと俺等は困らないし知ったこっちゃないからするな 質問ならしてもいいが、状況情報はきちんと書け と言ってるわけだが、298は「困らない」の一言だけに何故か過敏に反応しちゃんえるんだよね やっぱ暑いから熱くなりやすいのかw
>>301 どうみても、熱くなってるのはお前の方だが
雨に濡れた
>>301 「質問ならしてもいいが」って、お前何様なわけ?
>>301 状況情報を添えた質問をしたとしても、「俺等」は困らないはずだけど。
困るの?
妻がMP3プレイヤーを買った。 しかし、CDも数枚しか持ってないし、 MP3ファイルなんて一曲も持ってない。 何故購入したんだろ・・・
レンタル屋に行けば置いてあるじゃん
>>307 MP3 はこれからダウンロードで買いまくるに違いない。
>>307 何故お前はこのスレにその質問をしたんだろ・・・
314 :
デフォルトの名無しさん :2006/08/10(木) 03:45:28
VB6.0でFFT(高速フーリエ変換)の 実装を考えています。 どなたかプログラムのある場所等ご存知の方います?
×実装を考えています。 ○パクリを考えてます。 ×どなたかプログラムのある場所等ご存知の方います? ○どなたかソースのある場所等ご存知の方います? と予測。
>>314 > どなたかプログラムのある場所等ご存知の方います?
ここにはいないようです
そりゃいないだろ 当然アセンブラで書いてDLLにするだろうから
320 :
デフォルトの名無しさん :2006/08/10(木) 11:38:59
VBからSSHを使用したいのですが dllが見つからなかったので 現在はPuttyをキックしています。 今の課題は、接続エラーなどのエラー処理なのですが Putty(というかシェル)で発生したエラー情報 を取得する方法がわからなくて困っています。 どなたかご存知であればお教えください。 お願いいたします。
321 :
デフォルトの名無しさん :2006/08/10(木) 12:38:18
puttyって微妙に厨房臭い恥ずかしい感じw
puttyを別アプリとして起動しているならログ解析するしかないんじゃないか
323 :
デフォルトの名無しさん :2006/08/10(木) 14:29:23
フーリエ変換って何につかうの?
変換
326 :
320 :2006/08/10(木) 17:26:03
出来ました ありがとうございました
>>326 で、どうやって実現したかは書く気全くなしと。
>>328 お前、こういうQ&Aの場が何の為にあるのか
全く理解してないんだな。
くだらんレスは俺のも含めてスルーしろ。
334 :
320 :2006/08/11(金) 14:16:10
>>326 は偽者
まだできてません。
レスくれた人トンクス。
335 :
デフォルトの名無しさん :2006/08/11(金) 15:23:08
VB6.0のMCIコントロールで.wmvファイルは再生可能でしょうか?
337 :
デフォルトの名無しさん :2006/08/11(金) 15:38:41
できません
339 :
デフォルトの名無しさん :2006/08/11(金) 15:41:34
可能。
VBのIDEで、ファイルメニューの"***.exeの作成"がグレーアウトして コンパイルできないんですが、どなたか同じ現象になった人 or 原因分かる方いますか? 1ヶ月ぐらいまではメニューからコンパイル出来ていたんですが。 環境はXP SP1、VB6SP6、OCXはスプレッドぐらいです。 その間やったことといえば、Windows Updateと.Net FrameWork2.0のインストールです。 宜しくお願いします。
>>341 そういう現象に遭遇した事無いのでわからないが、
とりあえず新規作成で別のActiveXコントロールのプロジェクトを作成し、それでコンパイルできるなら、
それぞれのプロジェクトファイル(*.vbp)をテキストエディタで比較してどこが違うのか比較するぐらいしか思いつかないなぁ。
>>342 レスありがとうございます。
書き漏れてて申し訳ないんですが、新規で立ち上げても"project1.exe 作成"やら
"Project1.dll 作成"がグレーアウトしてコンパイルできないんです...orz
IDEを終了させてから、エクスプローラからvbpファイルを右クリックして
"実行ファイルの作成"はできるんですが。
上記のグレーアウト以外はIDEは正常に使えてます。
344 :
デフォルトの名無しさん :2006/08/11(金) 18:43:13
VBスクリプトネタで申し訳ないのですが、 VBスクリプトからCOM+の呼び出しはどのように実装すればよいでしょうか?
345 :
341 :2006/08/11(金) 19:10:09
>>343 原因はいまだ不明ですが、一応解決したので自己レスです。
別ユーザーにて試した結果、グレーアウトされていなかったので、
VB部分のレジストリ[HKEY_CURRENT_USER\Software\Microsoft\Visual Basic\6.0]
をコピって、該当ユーザーに突っ込んだところ復活しました。
調べてみたらどうやら上記キーの"UI"ってとこの値のようです。
中身はバイナリなんでよくわかりませんでしたが。
>>344 MSDNに書いてあるからそっち読んで。
うんこ
トイレ行きなさい
まにあいませんでした 間に合いませんでした マニア居ませんでした
画面サイズぎりぎりの大きなFormを作った場合ですが、 1.Win2kで作ったプロジェクトをWinXPで開くとFormのTopが-120とかになったりする。 2.Win2kでビルド→WinXPで実行だと画面におさまるがWinXPでビルドすると画面からはみ出す。 Win2kとWinXPはタイトルバーの太さが違うからはみ出すのが当然だと思うけど、 「Win2kでビルド→WinXPで実行だと画面におさまる」という現象が腑に落ちない。 WinXPにはWin2k以前でビルドされたアプリをうまく画面におさめる仕組みがあるのかな?
>>350 Win2000 で実行する物は Win2000 で開発。
WinXP で実行する物は WinXP で開発。
これ常識。
352 :
デフォルトの名無しさん :2006/08/17(木) 13:12:33
どんな常識だよそれw
>>350 が何か勘違いしているだけでしょそんなの。
デザイナ上のフォームのプロパティーグリッドやMSDNライブラリとにらめっこしながら
いろいろやってみろよ。
どうせろくに知らべもせず、試行錯誤もせず、いきなり質問してるんでしょ。
根性なさ過ぎるんだよ。
353 :
デフォルトの名無しさん :2006/08/17(木) 15:17:39
355 :
デフォルトの名無しさん :2006/08/17(木) 16:31:15
>>354 具体的も何も、実務で作ったものをいろんなOSに入れてれば、散々喰らったと思うんだが。
それこそ見た目の違いから、動作の違い、インストーラー自体が上手く動かないなど。
そういうことがあるから、開発時は良いが、テスト時は全ての対応OSテストだし、インストーラーも分けたほうが安全。
インストーラーが取得するDLLなどが基本的にはインストーラーを作ったOSに入ってるものだから。
私も
>>351 ではないが
大抵は開発環境と動作環境はそろえるべきなんだけどね・・・
クロス開発じゃなければ
Win2000で開発したのがWinXPで動くと言い切れるのか?
Win2000で開発したのがWin98で動くと言い切れるのか?
環境が違うから動くとは絶対言い切れないよ
VBのウィンドウサイズ指定で
Lunaスタイルと昔のスタイルではズレるのは当たり前
環境が違うからね
>>350 でXPでクラシックスタイルで開発してビルド→2000で実行
ならたぶん希望通りに収まると思う
XPクラシックで開発しててユーザからLunaだと
ウィンドウサイズがずれて端の文字が読めないって言われたことある
開発わければ安全だって?へえ。 OSごとにこれをダウンロードして下さいって言ってまわってるのか。ほぅ。 リリース時に何個作ってるんですか?
>>352 VBアプリを開発する上での常識以前の大前提の話なんだが?
まさかそれで飯喰ってるプロなのに知らないの?
>>357 まさか、趣味で配布するフリーソフトと、受注生産のシステムを
一緒くたに考えてるのか?
後者の場合、稼動OSも指定されるに決まってるだろうが。
何処迄レベルが低いんだ一体。
で、例えば Win 98 と Win 2000 で動かす、って事なら、当然の事ながら
2つの環境を用意し、それぞれでテスト、デバッグ、ビルド、
インストーラ作成等をして、二種類リリースするんだけど?
まさか、仕事で開発しるのに全部一緒にやってなんて事ないよね?
359 :
デフォルトの名無しさん :2006/08/17(木) 16:59:44
つうかね、不特定OS対応でまくアプリはスタティックリンクできない、サイド倍サイド実行できないVB6では作らんって。
それ以外の条件は
>>358 の通り。
お客様がこれとこれのOSを使ってるといったら、それのテスト。
あなたの脳内の大前提は受注生産システムかもしれないが、 こちらとしては何言ってんだこの火病はって感じですね
361 :
デフォルトの名無しさん :2006/08/17(木) 17:13:59
>>360 じゃあさ、VB6でのアプリを汎用的に販売したの?
そのときどうやったの?
無能な私に教えてくださいな。
世の中の大半の人があきらめてることを、貴方は成し遂げたみたいだから。
>>360 ここ迄読解力がない奴も珍しいな。
(´・ω・) カワイソス
>>361 君、MSDN知らないの?
OSのバックアップ・リストアソフト知らないの?
仕事なのに、テスト用PCもないの?
テスト工数を削減する工夫(自動テスト化)もしないの?
VMWare, VirtualPC知らないの?
情報収集してないの?
365 :
デフォルトの名無しさん :2006/08/17(木) 17:22:37
>>364 それはテストでしょ、しかも複数OSごとに環境つくってるじゃん。
>>360 は、VB6のアプリのテスト、配布にOSを考慮しなくて良いと言ってるんだが。
どう読めば360がそう言ってると思えるんだろう。 縦?横?斜め?右から読むのかな。
>>365 >それはテストでしょ、しかも複数OSごとに環境つくってるじゃん。
はぁ?何言ってんの?
複数のOS・SPの組み合わせで動くかどうかのテストは、それぞれ環境を作るに決まってるでしょ。
脳内プロですか?
368 :
デフォルトの名無しさん :2006/08/17(木) 17:31:10
どう読めば357がそう言ってると思えるんだろう。 縦?横?斜め?右から読むのかな。
現在の話の大本は
>>357 でしょ
VBのソフトでOSごとに作る必要あるの?
って読めるけどこれはどうなのよ?
まぁ人のアドバイスなんか無視して、 自分の思う通りに勝手に作ればいいよ。 苦労するのは自分なんだし。
うなぎとうめぼしは、食い合わせが悪いですからね。
>>370 現在メインストリームであると思われる、Windows 2000 SP3以降のOSで、VB6が
支障なく動くことを考えれば、答えは自ずと導かれる。
>>374 どう考えれば支障なく動くと言えるのかわからないな・・・
「思われる」て仮定だし
勝手に2000SP3以降と定義したら「どのOSでも」とは言えないよ
>>375 ミス
「どのOSでも」じゃないね
「OSごとに作る必要」かどうかの答えになってない
>>375 君は一体何番で、何を主張したいの?
それから、MSのサポートポリシー知らないの?
どの言語でも同じことだが、 自分で作ったものが、どのOSで動くかは作り方しだい。 動くように作ったら動くし、 動かないように作ったら動かない。 動くことを保証したいのなら、自分でテストする必要がある。
VB付属のコントロールと、VB本来の命令しかつかわなければ、大抵動くよ。
>>379 > どの言語でも同じことだが、
この意見が素人っぽいね。
VB と VC なら、明らかに VB の方が動かない確率が高いし、
そのときの対処にも苦労する。
対応するOSがある程度決まっている受託開発なら、テストを
しっかりやると言う力技で対応できるけど一般にばら撒くとな
ると VB はかなり大変。
と言うのが俺の実感。
チラシの裏にでも書いてろ
VB6が動かない例だが VB6のコンボボックスはかなりリソースを食う NT系じゃリソース管理するから大丈夫だけど 9X系はリソース管理しないからコンボボックスの個数が多いと起動できない って症状がある これの対処はかなり面倒だったよ VB6ランタイムの欠陥だけどいまだに修正されずじまい
385 :
デフォルトの名無しさん :2006/08/17(木) 19:09:21
>>383 それはOSごとにコンパイルして
インストーラー作れば治るんですか?
>>383 9x系で動かなくなるほど、リソース食いまくりの画面設計するお前がタコ
>>384 >>380-381 の大抵動く、動かない確率が高い
って発言について書いただけ
で、あんたはさっきから主張主張と
安っぽい文句しか書いてないけどどうしたの?
顔真っ赤にして
>>383 コンパイルしなおしても直らないから
ソース自体を修正した
>>386 まぁ設計が悪かったのはわかってるよ
実装時にそんなにリソース食うとは知らなかったし
しかしそれだけ使う必要があった
>>387 どう見ても、お前の方が必死なんだけど。
9x系ではリソースに制限があることくらい誰でも知ってると思ったが。
>>387 9x系で一番やばそうな所つついてるのに、プロトタイプを作って検証しなかったの?
フリーでベータ版の頃に指摘があった コンボ一個でリソース2.5%も消費するとは思いもしなかったからね
何だかんだ言っても、VBは最高ですよ。
>>393 うん。
だけどこのスレがそのよさを引き出せないでいるんだ。
395 :
デフォルトの名無しさん :2006/08/17(木) 23:42:29
レベルの低い質問だと思うんですが VBからマクロ入りのexcelファイルを開いて excelの中のマクロを実行させたい場合 どうすればいいのでしょうか? vbからcallでマクロ名を指定してもうまくいきませんでした。
>>395 Excelでマクロの記録を行って、そのマクロを実行したマクロを見れば?
>>394 別にこのスレに引き出して貰わなくても、
既に十分知ってるでしょ?
>>396 何を頓珍漢なことを。
>>395 「CreateObject("Excel.Application")」あたりでググればわかる。
399 :
359 :2006/08/17(木) 23:56:38
>>356 ありがとうございます。
その考えは思いつきませんでした。
うまくいきました
あとエクセルを開くときに
マクロを無効にするか有効にするか選択を迫られるのですが
これを有効にするにはどうしたらよいですか?
よろしくお願いいたします
ググらんでもマイクロソフトのサイトで検索すればええやん。
ぐぐる=検索
ぐぐる=googleで検索する
google someone は禁止だそうです。ぐぐるにも飛び火するか!?
404 :
395 :2006/08/18(金) 06:26:47
どうもありがとうございます 色々調べて何とかなりました。 VBでマクロ入りエクセルを開いて マクロを実行させるというプログラムはできてとりあえず動くのですが エクセルのマクロでソルバーを使っている場合 エクセルで ソルバー : 内部エラーが発生しました。またはメモリ不足です。 というエラーが出て VB側で 実行時エラー '440': オートメーションエラーです。 というメッセージが出て止まってしまいます。 エクセルのマクロ単体で動かした場合はエラーは出ませんし ソルバーを使ってないエクセルファイルの場合プログラムはうまく動きます。 どうしたら回避できるか分かる人がいたら教えてください よろしくお願いいたします
失礼します。 VB6.0で他のプログラムのレジスタの値を読み取ることは可能なのでしょうか? もし可能でしたら、使うAPIか何かだけでも構いませんので教えていただけませんでしょうか。
>>405 どの言語でも不可能のような気がする・・・
自プロセスのレジスタでさえも
「レジスタ」って何を指してるの? CPUのレジスタ?
GetThreadContext
返信ありがとうございます。
>>406 レジスタの値自体はデバッグツールで表示されていたので、読み取れるのではないかと思います。
そのツールはC++で書かれてたので、VBで可能なのかが気になって質問させていただきました。
>>407 はい、CPUのレジスタです。変な書き方をして分かりにくくしてしまって申し訳ないです。
>>408 まだ試したわけではないですが、検索してみたところ上手くできそうです。
ありがとうございます。
411 :
350 :2006/08/18(金) 11:19:32
Win2kで作ったプロジェクトを 1.Win2kでビルドしてWinXPで実行→画面におさまる 2.WinXPでビルドしてWinXPで実行→画面からはみ出す 不思議な現象だなーと思っただけだす。みんなそう思わない?
どうでもいい
たしかにどうでもいいことだな。
だがどうでもいい
415 :
352 :2006/08/18(金) 12:26:27
>>411 だからプロパティーグリッドを穴があくまでよく見た?
どうせこうまで煽られてもろくに見てもないんだろこういう奴は。
なんか「臭い」プロパティーがあるだろ。
>>411 結果はどうあれ、「Win2kでビルドしてWinXPで実行」←これがそもそもおかしい。
>>416 どこがどういう風におかしくて、それはなぜですか?
vbscript(IIS5.0)での質問なのですが、 クラス内定数を記述する方法はありますでしょうか (C++でのstatic、Javaでのfinalみたいな)。
>>418 Private Const, Private Enumじゃないの?
422 :
418 :2006/08/18(金) 18:05:59
>>418 様、回答ありがとうございます。
いずれも構文エラーとなってしまいました。
やっぱムリなのだろうか…
ちなみにC++でのstatic、という例はちょっと外れてましたね。
厳密にはstatic const、でしょうか。
理想的には、ひとまとまりの定数群をまとめたクラスを
静的参照したいのですが
class TestClass
const A = 123
const B = 456
const C = 789
end class
MsgBox TestClass.A
そもそも、vbscriptで自作class作ってるサンプルって
あんまり見ないなぁ…
423 :
418 :2006/08/18(金) 18:06:54
425 :
デフォルトの名無しさん :2006/08/18(金) 18:28:06
説明できるわけ無いじゃん。 単なる本人の思い込みだからw なんでコンパイラが同じソースから吐くコードがOSに依存するんだよ。 絶対にありえんそんなことw こういう人の書くコードって、本人にもよくわからない「おまじない」が いたる所に書いてあったりするんだよね。
>>422 VBS で Class なんて作れたっけ?
427 :
418 :2006/08/18(金) 18:53:29
428 :
デフォルトの名無しさん :2006/08/18(金) 18:54:39
>>428 無料で使えるのが VS.NET 2003 なんだっけ?
>>422 ,427
Public Property Get A()
A = 123
End Property
Constでの宣言は使えないが、これで結果は同じになる。
というかクラスのメンバに定数があるってのがおかしいし
そもそも定数群をクラスにするってのが間違ってる。
俺もVBSでクラスをよく使うが、定数はClassステートメント外で宣言する。
例えばFSOでファイルを作成する場合、
objFso.OpenTextFile(path, objFso.ForWriting, objFso.True)
なんてやらないだろ。定数ってのは条件であってメンバじゃないからな。
>>430 > というかクラスのメンバに定数があるってのがおかしいし
全くおかしくないけど。
432 :
デフォルトの名無しさん :2006/08/18(金) 19:45:45
>>430 いやVB以外じゃクラスの名前空間に定数閉じ込めるって普通だから。
433 :
418 :2006/08/18(金) 19:51:03
>>430 様
回答ありがとうございます。
それも一つの解法ですね、参考にさせていただきます。
確かにvbscriptの組み込み定数は全てグローバルですが、
MFCだと
objFile.Open(szFileName, CFile::modeRead);
といったクラス定数によるオプション指定や、
Javaでも Math.PI があるように、
体系立てて定数を管理できたらいいなと思った次第です。
435 :
デフォルトの名無しさん :2006/08/18(金) 21:07:59
>>434 あのさあ、「何か」なんて書かずに、具体的に指摘しようや
437 :
デフォルトの名無しさん :2006/08/18(金) 22:05:51
クラスにパブリックな定数が公開されている。 プロパティとして一定値を返すものがある。 クラスが列挙を公開してる。 すべて普通だけど。クラスに属する定数ならば、クラスに従属させるのが自然。 別のところに定義したら、単なる別ものを使ってるだけで、その定数とクラスの結合が蜜で設計がおかしくなる。
438 :
デフォルトの名無しさん :2006/08/18(金) 22:07:18
>>438 それなら433の例はどうよ。
まあMath.PIはJavaの仕様上の都合もあるけどね。
>>425 何をもって絶対なんて豪語してるのか知らんけど、
動作環境によってコンパイルオプションの既定値を
変えるコンパイラはいくらでもあるぞ。
>>442 で、VB6はどうなの?
2000とXPで違うコード吐くの?
2000で作ったアプリをXPで動作させちゃいけないの?
>>443 自分でビルドしてバイナリコンペアでもしてろ。
425は浅いね。理解できないものに浅い知識で折合いをつけようとする、 そんな行為こそ思い込みと言われるんだよ。反省しなさい。
C/C++で作ればどのOSでも動く。 VBのランタイムライブラリはC/C++で作られているので どのOSでも同じように動く。 だから同じように動くランタイムライブラリを使う VBもどのOSで同じように動く。 結論。 んなわけない。どのOSで動くかは言語に関係なく 作り方しだい。動くように作れば動くし、そうでなければ動かない。
動くけどちょっとだけはみ出ちゃう。そこにいやーんってなってるわけだが。
うん。馬鹿なんだよ。
>446 > VBのランタイムライブラリはC/C++で作られているので > どのOSでも同じように動く。 ここに認識の誤りがある。それにVBはVBのEXEとVBのRTだけで動作するものではない。
で?
453 :
デフォルトの名無しさん :2006/08/19(土) 19:16:29
KeyDownイベントを使ってaviファイルを再生させたいのですが (「A」押す→aviファイル@再生、「B」押す→aviファイルA再生) どのようなコードを書けばいいですか?? 教えて下さい。
>>453 それはとても難しい質問です
きっとここの読者にとってはベリースペシャル
あなた入門本やサイト読んで角にがんばる
>>450 とりあえず、お前が下手な日本語でがんばって詭弁を言おうとしているのだけはわかったw
>455 別に詭弁のつもりはないけど、まぁVBなんてもう終わってるんだからどうでもいいや。 というかいまだにVB6ものの改造を発注するうちのお客さん、そろそろ勘弁してください。
そうだね。詭弁だね。
そうだね、詭弁負けちゃったね(ToT)/
>>453 指定したファイルを再生するというのを関数化して
あとは条件分岐させるだけじゃん。
というか、自分で出来た部分のコードも貼らずに
> どのようなコードを書けばいいですか??
とか言う奴って、「俺のために一から全部コード書けよ」って意味だろ。
なめてるとしか思えない。
納品後にDLLのイン、アウトが変更になるかもしれないんですけど、 あらかじめ引数増やしとくのって、有りなのでしょうか? と、いうか、普通はそういうのがちゃんと決まってからDLL作るものだって、 どっかで聞いた事があるような…。
461 :
460 :2006/08/22(火) 01:48:41
問題なさそうですね ありがとうございました
463 :
デフォルトの名無しさん :2006/08/22(火) 13:39:37
CSVファイルをメールで送受信しようとしています。 環境はvb6.0で、MAPIコントロールを使用するつもりです。 メールを受信した際に、添付されたCSVファイルを指定したフォルダに コピーすることは可能でしょうか?
464 :
デフォルトの名無しさん :2006/08/22(火) 14:09:24
465 :
デフォルトの名無しさん :2006/08/22(火) 18:48:46
ナイアル厨は無視するアル
466 :
デフォルトの名無しさん :2006/08/22(火) 21:09:51
質問です VBSを使用してイベントログ(AppEvent.Evt)から指定した日付以前のログだけを削除することは可能でしょうか 全て削除してしまうならClearEventlogでできるのですが日付指定で削除する方法がわかりません eventquery.vbsを使用すれば日付指定してログを読むことが可能なので削除も日付指定でする方法があるのではないかと考えているのですが…
>>466 はい
可能です。
解析すればいいだけです。
方法はありますが、自分で実装しなくてはなりません。
頑張ってください。
468 :
460 :2006/08/22(火) 22:28:30
469 :
デフォルトの名無しさん :2006/08/23(水) 10:39:36
ここでいいのか解らないけど、 linux用VBの無料版てどこで落とせますか?
monoのmbasとか
473 :
デフォルトの名無しさん :2006/08/24(木) 14:35:39
VBAじゃなくてVBからエクセルを開いてソルバーアドインを使って計算できる? ex.AddIns.Add ("C:\Program Files\Microsoft Office\Office10\Library\Solver\SOLVER.XLA") っていう一行を入れただけではうまくいかないのだけれど・・・ コンパイルエラー SubまたはFunctionが定義されていません。 というエラーメッセージが出る
474 :
デフォルトの名無しさん :2006/08/24(木) 18:37:21
MAPIを使用してメールを受信する場合、受信できるメールは、 受信トレイ直下のメールしか参照できないのですか? 例えばOutLook Expressでメッセージルールが設定されていて、 指定したフォルダへ移動されたメールは、参照できないのですか?
475 :
デフォルトの名無しさん :2006/08/24(木) 19:27:41
ListBox1 (Style-標準) ListBox2 (Style-チェックボックス) この二つを並べたときに、高さがうまく揃わないときがあるんですが、 綺麗に揃える方法ご存知ですか?
476 :
475 :2006/08/24(木) 21:26:30
あっ、分かりました
>>474 そもそも、MAPIではOEのメイルは受信出来ないが。
OEはPOP3なので。
>>475 Height
478 :
デフォルトの名無しさん :2006/08/24(木) 22:43:07
>>477 Heightを揃えても、揃わないときがあるのですが
その場合はそうしたら良いでしょうか?
480 :
デフォルトの名無しさん :2006/08/25(金) 00:26:06
>>479 申し訳ないです
色々調べてみたんですが、それはAPIか何かでしょうか?
IntegralHaightプロパティだろ・・・
482 :
デフォルトの名無しさん :2006/08/25(金) 00:46:28
IntegralHaightプロパティだろ・・・に該当するページが見つかりませんでした。 検索のヒント キーワードに誤字・脱字がないか確かめてください。 違うキーワードを使ってみてください。 より一般的な言葉を使ってみてください。 キーワードの数を少なくしてみてください。
483 :
デフォルトの名無しさん :2006/08/25(金) 02:47:02
VB6で、Webページのような画面デザインに挑戦した方はおられますか? GrapeCityのActiveX製品に、おもしろそうなコントロールがありますが、 そのほか、いろいろテクニックがあれば、教えてください。 よろしくお願いします。
断る。
やなこった。
>>483 「Webページのような画面デザイン」が何を意味するのかサッパリ分からん。
487 :
デフォルトの名無しさん :2006/08/25(金) 16:29:30
VB6.0で画像の拡大縮小ってどうやるのか教えてください プログラムが組めなくて困っています
>>487 イメージコントロールに読み込めばいいのでは。
489 :
デフォルトの名無しさん :2006/08/28(月) 01:08:30
ちょっと困ってるので教えてください VBのprint関数で たとえば bbb = 1.2345678215 print #1 "aaa"; bbb としてファイルに書き出すと aaaとbbbの間とbbbの後に空白が入ってしまいます どうすればこれを回避できますか?
>>489 print #1 "aaa" & bbb
や
print #1 "aaa"; cstr(bbb)
など色々。
491 :
489 :2006/08/28(月) 01:33:30
>>490 出来ました
助かりました。ありがとうございます
492 :
デフォルトの名無しさん :2006/08/29(火) 00:09:36
現在時刻をマイクロ秒まで取得する方法を教えてください。 →YYYYMMDD.HHNNSS.uuuuuu QueryPerformanceFrequencyや QueryPerformanceCounterあたりを使えば マイクロ秒単位での計測は可能のようですが、 現在時刻となるとわかりません… SYSTEMTIME構造体にはミリ秒までしかないので FILETIME構造体の値から自力で計算するしかないのでしょうか?
PCのタイマーがミリまでなのに。
494 :
デフォルトの名無しさん :2006/08/29(火) 09:20:35
そもそものOSの仕組みも・・・。 そこまで正確な時間が欲しければ、ハードでやらんと駄目でしょ。 絶対時間じゃなく相対時間を測るにしても、間に噛んでるOSとか負荷で間隔が変わったら相対にならないし。
495 :
デフォルトの名無しさん :2006/08/29(火) 09:54:38
VB6.0です。 「ョ」「ッ」「ャ」などを、それぞれ「ヨ」「ツ」「ヤ」のように、大文字にする関数はありますか?
ヵッォ ォャッョ
>>495 今VB動かない環境なので確かめられないけど、UCase$ は駄目だっけ?
498 :
495 :2006/08/29(火) 18:47:19
>>497 Ucase$じゃ、ダメみたいなんです。
アルファベットだけのようですねぇ;
499 :
デフォルトの名無しさん :2006/08/29(火) 21:26:49
>>498 s="ョッャ"
s=replace(s,"ョ","ヨ")
s=replace(s,"ッ","ツ")
s=replace(s,"ャ","ヤ")
何度も使うとなると、恐ろしく無駄なコードだな
501 :
デフォルトの名無しさん :2006/08/29(火) 22:14:49
>>500 すべてを標準で済まそうとするとこうなるはず
よって
>>495 は頭を使って考えるべき
逆に全てを自足で済まそうとされても困るがな
502 :
デフォルトの名無しさん :2006/08/29(火) 22:46:15
>>501 アホだろお前さんw
アホに似合わない尊大な口調がまた笑いを誘う。
>>495 パフォーマンスを気にしないなら
>>499 式にやるのがシンプルでいいと思う。
気にするならまずStringをIntegerの配列に変換しておいてから置換を行って、
再びIntegerの配列をStringに戻すコードを書けばいいと思うよ。
ほんの数文字しかないんだから、 自分で関数にすればいいじゃん。
504 :
デフォルトの名無しさん :2006/08/29(火) 23:26:25
>>502 ちょっとまて
> StringをIntegerの配列に変換して
(゚д゚) この発現は初耳だ
505 :
デフォルトの名無しさん :2006/08/29(火) 23:40:38
>>504 なにも難しくないでしょ。
VBはバイト配列に文字列ぶち込めるのは知ってるよね?
だったら後は言うまでもないでしょ。
もっとも、わざわざIntegerの配列にしなくても、多少可読性は落ちてもバイト配列のまま
処理するのも一つの方法かも知れないけど。
506 :
デフォルトの名無しさん :2006/08/29(火) 23:43:41
507 :
492 :2006/08/30(水) 00:04:19
>>493-494 有難うございます。
厳密な時刻が知りたいわけではなくて
システムで作成するファイルの名前に含めるだけなので、
正確性はさほど重視してないです。
とりあえず擬似ファイルの作成日時から
自力で計算する方向でがんばってみます。
508 :
デフォルトの名無しさん :2006/08/30(水) 00:05:58
>>507 生成時に必ず別の値になるような文字列を作りたいのなら、
1ファイルごとにカウントアップするようにすればいいのでは?
(その値の管理にはMediatorパターンを使うといいかも)
509 :
492 :2006/08/30(水) 00:16:42
>>508 有難うございます、
マイクロ秒までをファイル名に含める仕様上の目的はたぶん
ご指摘のようにファイル名の重複を防ぐという意味合いだと思います。
なのでファイルごとに一ずつ(もしくはランダムに)インクリメントしていく動きでも
いいかなとは思ったのですが、
取得できるのであれば正確ではないにしろそのほうが望ましいので
模索している次第です。
511 :
デフォルトの名無しさん :2006/08/30(水) 00:24:47
>>510 いや望ましいだろ
仕様まで決めているのに、「少し難しいので別の方法で、似たような意味を実現しました」なんてことになったら問題大だ?
>>509 「起動時からのミリ秒」で十分ユニークじゃん。
>>511 仕様がおかしければ仕様作ったボケを殴るのも下っ端の役目だぞ
514 :
デフォルトの名無しさん :2006/08/30(水) 00:31:10
>>512 mjd?1ms以下の周期だと、ファイルを新しく作れないのか・・・
515 :
デフォルトの名無しさん :2006/08/30(水) 00:33:23
>>513 そのボケに一言も言わずに仕様を逸脱するのは望ましく無いだろ?ってことじゃね?
妄想?
517 :
デフォルトの名無しさん :2006/08/30(水) 08:38:10
Private Declare Function timeGetTime Lib "winmm.dll" () As Long Private Function timeGetNanoTime() As Long Static bNanoTime As Long Dim NanoTime As Long NanoTime = timeGetTime * 100 If NanoTime <= bNanoTime Then NanoTime = bNanoTime + 1 End If timeGetNanoTime = NanoTime bNanoTime = NanoTime End Function ダブったら1〜100までの連番を付けることでユニークな数字を 吐き出すことは出来るが、さて.........
時間が後退して重複しそうだな
GUIDでも使えばいいんじゃないの?
520 :
デフォルトの名無しさん :2006/08/30(水) 10:50:46
別プロセスで動作しているアプリケーションに 表示されている文字列を取得するには、 どのAPIを組み合わせればいいんでしょうか? メモリ監視で文字列ぶっこ抜こうとしたのですが 何故か表示されている文字列が特定のアドレスに入る場合と入らない場合 (入らない場合はメモリ検索したがどこにも見つからない)がありまして・・・
もっと具体的にやりたい事を書くほうがいいのかな? ぶっちゃけると、spy++で特定のアプリケーション(ダイアログ)内に表示されている 特定の表示文字列の情報を取りたいということです。 プロセスID取れていれば、そこから引っ張れるのかな?
>>521 アプリケーションなのかダイアログなのかプロセスなのかくらいはそちらで判断してください。
ところで、ラベルの様な画像が貼られていたりした場合はどうするんでしょうね?
対象となるのを限定しないと答えようがありませんが
すみません、自己解決しました orz FindWindowA GetWindowTextA GetClassNameA FindWindowExA だけであっさりと・・・メモリ監視のほうがむずかしーじゃんyp
>>521 その hWnd を取得して GetWindowText とか。
VBS、WinXP ランダムの数値を当てるようなゲームを作っているのですが、 うまくいきません。 入力ボックスに何を入れてもBのほうが大きいと判定されます。 キャンセルの場合、Aのほうが大きいと判定されます。 どこが悪いのでしょうか。ソースを書いておきます。 よろしくお願いします。 randomize dim a,b a=int(rnd*1000) b=inputbox("A=" & a & " B=?") If a=b Then MsgBox("AとBは同じ。\n\nA=" & a & " B=" & b ) ElseIf a < b Then MsgBox("Bのほうが大きい。 A=" & a & " B=" & b) ElseIf a > b Then MsgBox("Aのほうが大きい。 A=" & a & " B=" & b) Else MsgBox("それ以外") End If
>>526 b が文字列のまま。 整数変換は b = CInt(b) だっけ
>>526 b = Int(InputBox("A=" & a & " B=?"))
>>527 素早い回答ありがとうございます。
それでうまくいきそうです。
ありがとうございました。
>>526 解決したからもう見てないかもしれないけど、
変数の型は明示的に・・つまりちゃんとつけるほうがいいよ
Dim a as Integer とかね
あと関数コールで戻り値見ない場合、Call つけておくほうがすっきりする。
VBAは型付けできない。 CALL については意見が分かれるところだねぇ。おれは付けない派だ。
代入式の前に律儀にLet使ってるプログラムを一度だけ見たことがある。 こういうの Let a=int(rnd*1000)
それがどうした
>>532 書いた奴はJIS原理主義者かも知れず。
命令は必ずステートメントからはじまるという原則があれば継続行はいらない。 予約語のステートメントで命令の区切りがわかる。COBOLやTransact-SQLなどがこのタイプ。 継続行をつかっているのはFORTRANやMS BASIC系統。 CALLやLETは継続行無しの書式を目指していたんだろうなと思ったわけさ。
537 :
530 :2006/08/31(木) 15:26:18
>>531 すまんっす、VBsのSが見えてまえんでした。
ごめんなあい
>>536 > 命令は必ずステートメントからはじまる
言っている意味がちーともわからん。
_ なしで改行入れてもおkってこと?
>>538 命令は予約語から始まるの方が妥当だね。具体的な例を挙げると
Private Function Hoge() As Integer
Debug.Print "func Hoge" ' 関数の作用
Hoge = 999 ' 戻値
End Function
という関数があったとして、
(A) Debug.Print _
Hoge
と
(B) Debug.Print Hoge
は同じ意味だが
(C) Debug.Print
Hoge
は別の意味になる。
継続行を廃止した場合(C)が1命令なのか2命令なのか区別が付かなくなる。
ここをCall Hogeと書くことを強制することで2命令ということがわかるようになる。
続き、同様に Debug.Print A = 12 + 5 ' => TrueかFalseがかえる。 を基本パターンにして次の記述があった場合も1命令か2命令か区別が付かない。 Debug.Print A = 12 + 5 Letを使うことで2命令だとわかる。 Debug.Print Let A = 12 + 5
542 :
デフォルトの名無しさん :2006/09/06(水) 16:16:10
VB6.0を使用しています。 テキスト(CSV)ファイルをロックした状態で読み書き またはロックの状態でリネームや移動させたいのですが どのような方法があるでしょうか。 ファイルシステムオブジェクトだとロックできないようですので わかりかねています。 よろしくお願いします。
人生はロックだ
>>542 VB6にそのような機能は無い。
だからAPI使ってね。
ちなみにAPIに関しては向こうで聞いて。
545 :
デフォルトの名無しさん :2006/09/06(水) 18:30:16
>>544 おいおいw
半端な知識しかないVb厨のくせに適当なこと言うなよ
545=542 ハァ 屁も出ねぇ
>>545 そう言うからには、VBの組込機能で542の要望を実現する方法を知ってるんだよね?
だったはそれをまずは披露しないと、「半端な知識」という指摘に説得力が全然無いよ。
または546の言うとおりだったりして。
548 :
デフォルトの名無しさん :2006/09/06(水) 18:42:22
釣れたw
ファイルシステムオブジェクトの ファイル開く関数の引数でロックできる。
550 :
デフォルトの名無しさん :2006/09/06(水) 18:50:03
>>550 質問を理解してないの?
openステートメントの使用を理解してないの?
どっちかな?
552 :
デフォルトの名無しさん :2006/09/06(水) 18:59:25
>>551 いいから具体的に反論してみ
いや、できたらでいいよ無理しなくてもw
あのー、ご自分は具体的に回答してるおつもりなのですか?
だとしたらどうやら
>>551 は前者のようだね
まあ後者の方も理解しているという根拠は無いから両方かも知れないけど
554 :
551 :2006/09/06(水) 20:35:46
先にいっとくがこれはロックじゃないからな。 > lock 省略可能です。開くファイルに対する、他のプロセスからのアクセスを制御する、次のいずれかのキーワードを指定します。 > Shared、Lock Read、Lock Write、または Lock Read Write。
555 :
デフォルトの名無しさん :2006/09/06(水) 20:42:51
>>554 どこまでも恥ずかしい奴。
恥の上塗りとはまさにこういうことか
っていうか、君みたいな性格の奴はプログラマ向いてないよ。
556 :
542 :2006/09/06(水) 22:37:39
お返事ありがとうございます。
>>549 どのようにすればいいでしょうか。
MSDNは何度か確認しているのですが「読み取り専用」
などの設定は見つかったものの
ロックに関しての引数がみつからなかったもので
>>550 そちらも試してみたのですが
開いたファイルに対して読み書きどちらか一方しかできないようでした。
読み書きを行える開き方があるのでしたら教えていただけないでしょうか。
私なりに、MSDNはじめネットや書籍にて調べてみたのですが見当たりません。
申し訳ないですがよろしくお願いいたします。
>>556 そもそも、「ロック」って何がやりたいんだ?
排他的に Open すればいいだけなんじゃないの?
558 :
デフォルトの名無しさん :2006/09/06(水) 23:35:06
>>556 >開いたファイルに対して読み書きどちらか一方しかできないようでした。
テキストファイルってそういうもんだよ。
そもそもランダムアクセスができない(シーケンシャルなアクセスしかできない)
んだから「読み書き」なんて意味ないでしょ。
そんなのMSDNちょっと読めばわかると思うけど。
csvとか言っているから、多分テキストエディタで修正するイメージで
ファイルの文字列の一部分だけを修正したいとか思ってるんだろうけど、
そんなことはベタにはできんのよ。
面倒でも一旦別の一時ファイルに修正した内容を書き出しておいて、
次に元のファイルを殺して、最後に一時ファイルを元のファイルの名前にリネームする、
といったような手順を行う必要がある。
560 :
デフォルトの名無しさん :2006/09/06(水) 23:45:50
>>559 まあ多分オマエガナーだと思うよw
知ったかぶってバイナリファイルとして開く、なんてことを言い出す予感w
>>558 って頭悪いのに偉そうだな。
普通に open / get / put / close するだけなんだが。
Option Explicit
Private Sub Test()
Dim F As Integer
Dim C As Byte
Dim L As Long
Dim I As Long
L = FileLen("c:\Test.txt")
F = FreeFile
Open "c:\test.txt" For Random Access Read Write Lock Read Write _
As #F Len = 1
For I = 1 To L
Get #F, I, C
If C = &H31 Then
C = &H41
Put #F, I, C
End If
Next
Close #F
End Sub
563 :
デフォルトの名無しさん :2006/09/07(木) 08:16:13
どっちにしろロックしたままリネームや移動は無理だろ
(゚д゚)・・・
freefileの戻り値はvariantじゃなかったっけ
>>566 MSDN には Integer で返すと書いてあるね。
構文 FreeFile[(rangenumber)] 引数 rangenumber には、ファイル番号の範囲をバリアント型 (Variant) で指定します。指定した範囲から次に使用可能なファイル番号を返します。この引数は省略可能です。 ガ━━━━━━(゚д゚;)━━━━━━ ン!! 5年以上認識間違ってますた。ずっと戻り値がvariantだと思ってコードかいてた・・・
569 :
542 :2006/09/07(木) 20:15:14
みなさんありがとうございます。 OPEN、FSO、Win32APIなど試してみましたが一長一短でした。 やりたいことは、既存システム(VB)が吐き出すファイルを 別ファイルに退避したいのですが、既存VBとファイルアクセス がかち合ったときの為にロックしたいのです。 みなさまのお知恵をお借りできればと願います。 よろしくお願いします。
>>569 ファイル名改変じゃなくて、コピーして削除はだめ?
>>569 そんな事しなくても、退避したい時に普通に退避すればいいだけ。
誰かが使ってたら退避作業は出来ないし、自分が使ってたら
誰かは使えないから。
>>569 > やりたいことは、既存システム(VB)が吐き出すファイルを...
何でそれを最初に書かないの?
読み出し側がロックしてて、既存システム (VB) はエラーにならないの?
そもそも既存システム側がファイルオープンしっぱなしならどうしようも
ないが、そこは大丈夫か?
>>571 ファイル共有についてもう少し勉強しましょうね。
573 :
デフォルトの名無しさん :2006/09/07(木) 22:56:26
>>569 頭悪い奴だなあ本当。。
だから答えはとっくに出てる。
なにがどれも一長一短だよ馬鹿。お前さんの知恵が足りないだけ。
だから言ってるだろ?
ロックして読み込んでそのまま別名のファイルに同じ内容を書いた後、
オリジナルを殺して新規に作ったファイルをオリジナルの名前にリネームしろよ。
こんなの人に教えてもらわなきゃできないって、はっきり言ってセンスなさ過ぎる。
プログラマ向いてないよ君。
自分が言われて嫌なことを人にすると… ・・・まぁ後々苦労するだけなので別に構いませんね
575 :
デフォルトの名無しさん :2006/09/07(木) 23:00:41
ん?ああ今日は昨日言ったことと違って、オリジナルをロックして編集したいのではなく 単にロックしといて別のファイルにコピーしたいって言ってるのか。 こんなの一体何を悩む必要があるんだ? わけが分からんよまったく。
577 :
デフォルトの名無しさん :2006/09/07(木) 23:29:29
>>573 >ロックして読み込んでそのまま別名のファイルに同じ内容を書いた後、
>オリジナルを殺して新規に作ったファイルをオリジナルの名前にリネームしろよ。
なにいってんのおまえ?
アプリケーションにAPIのkeybd_eventでキーを送信したいんですが、 今のところアクティブなウインドウにしかキーを送れません。 非アクティブの対象のアプリケーションにアクティブにすることなく送信することって出来ないのでしょうか?
>>578 SendMessage
PostMessage
簡単なサンプルは無いですか?
>>580 簡単すぎるのでサンプル必要有りません。
対象ウィンドウのハンドル取得したら、あとは1行で終わりだし。
サンプルだのソースだのをよこせと言う前に自分で調べようぜ。
582 :
デフォルトの名無しさん :2006/09/08(金) 10:24:44
ある大きな画像中に、任意の小さな画像と等しい部分が存在するかどうかを判定 (あるならその座標を取得)するようなことはできますか。 たとえば、次のような画像があるとし、 .ィ/~~~' 、 、_/ /  ̄`ヽ} ,》@i(ノ_ハ从)) ||ヽ|| ^ ー゚ノ| || || 〈iミ''介ミi〉|| ≦ ノ,ノハヽ、≧ テ ` -tッァ-' テ この中に、^ ー゚ が含まれているかどうかを判定する方法が知りたいです。
>>583 ありがとうございます。
それは、例えば左上から、小画像の幅を残す幅まで右に1ドットずつ、
小画像の左上と同じRGBのドットがあるかを捜索しつつ、
存在すればそこから1ドットずつ小画像と大画像のドットを比較していく。
という方法を取るしかないのでしょうか。
>>582 ゴリゴリ実装するなら
元画像も検索対象画像も単純なビット列になるから、文字列検索のやりかたでも応用したら?
高度なものは画像工学でも勉強しれ
>>584 画像がBMPの様な無圧縮ならそのまま比較
JPEGの様な不可逆圧縮ならパターンマッチングでおk
>>586 パターンマッチングというのがよくわかりません。
上のほうで書いてあるキー送信って ウインドウハンドル番号を取得が Handle = FindWindow(vbNullString, "無題 - terapad") で送信部分は PostMessage(Handle,WM_KEYDOWN,仮想キーコード,0) であってますよね?
>>589 それは、そのコードで動かなかったから聞いているのか、
それとも、動かす前に心配で聞いているのかどっちだ?
どう考えても返答待っている間に動かすほうが早いんだがな・・・
>>590 試してみたんんですが、動きませんね。
ウインドウハンドルを取得するところまでは動きましたけど、メッセージは送信されませんでした。
>>589 ,591
その場合、キーを送るのはフォームではなくエディタコントロールだろ。
>>582 マルチレゾリューションという画像処理アルゴリズムがある
英語論文しかないけど検索すればいっぱい見つかるよ
段階的にモザイクをかけて、一致するパターンをあいまいに探す
画像処理スレのほうが詳しい人多いからそっちで聞いてみたら?
595 :
デフォルトの名無しさん :2006/09/10(日) 23:13:41
VB6.0とACCESSをADOで接続して、 データベース内のaviファイルを WindowsMediaPlayerコントロール」に再生する方法を教えて下さい。
MDBなんかにそんな巨大なファイル入れたくないね。 ファイルパスかファイル番号だけ書いて、ファイル実態は別に管理じゃないの?
597 :
デフォルトの名無しさん :2006/09/10(日) 23:53:34
質問に答えて下さい。 あんたの意見なんていらない。
599 :
デフォルトの名無しさん :2006/09/11(月) 00:02:57
ファイル名とファイルの中身についての説明も 一緒に管理していまして、それらもラベルに表示させたいのですが、 MDBというのは無理があるのでしょうか?
600 :
デフォルトの名無しさん :2006/09/11(月) 00:07:11
601 :
デフォルトの名無しさん :2006/09/11(月) 00:09:59
○ 回答者の心得 一.答えられない質問は無駄に罵倒せずスルー。
>>597 回答してるじゃん。
間違ってる奴の典型って、自分の作り方が正しいと思って、
無い知識でこねくり回した結果を、絶対の前提条件として質問すること。
柔軟性が一切無い。
バイナリデータを扱うならPostgleSQLがおぬぬめ
604 :
595 :2006/09/11(月) 00:28:26
597は私ではありません (TдT) 助けてください。
>>604 だから、MDB内にOLEオブジェクトで持つのは必須条件なのか?
そうじゃなければ、それ以外の情報はMDBで、ファイルは別に持てばいいじゃん。
MDBなんて破損が多いし性能悪いんだから。
ファイルを別にしておけば、最悪でも実ファイルは助かるわけだし。
606 :
デフォルトの名無しさん :2006/09/11(月) 18:48:35
>>605 ありがとうございます。
MDBについて無知でした。 (TдT)
607 :
デフォルトの名無しさん :2006/09/14(木) 00:49:39
過去のWindows群とVC++も再開して欲しいな。
609 :
デフォルトの名無しさん :2006/09/14(木) 02:39:53
VB6環境を造らなければならなくなったのですが、 VB6(pro以上)をまだ販売しているショップってあるんですかねぇ・・ 中古でも、領収書切れなくても良いんですけど・・
610 :
デフォルトの名無しさん :2006/09/14(木) 09:04:13
>>607 無料提供じゃないじゃん・・・
VS.NETの一番下のグレード(?)みたく、
自由にダウンロードさせろよ・・・
612 :
デフォルトの名無しさん :2006/09/14(木) 11:19:31
ちゃんと年貢を納めないと駄目ですよ。
eMbedded VB をタダ配りしたのは WinCE のシェアを拡げるためだが VB 6.0 をタダ配りしてもメリットがない。
TurboCのように、いつか配る時代が来るんじゃないかな MSが潰れたら。
>>613 VB6はVistaでもサポートするよ、ってアナウンスしたんだから、
無料配布は、Visitaの普及に役立つと思うけど。
>>616 多分VB200xやった後からじゃ戻れないとおもふ
>>616 全くならない。
担当する分野が全然違うから。
619 :
デフォルトの名無しさん :2006/09/14(木) 22:11:24
VB6で、MsFlexGlidを使っているのですが 行を選択していない状態にはできないのでしょうか? リストボックスなら Listindexを-1にすればできるんですが…
620 :
デフォルトの名無しさん :2006/09/15(金) 02:21:52
Set RadioButtons = WebBrowser1.Document.getElementsByName("fu_contp_x") RadioButtons(1).Checked = True これを1行にしたいのですがやり方がわかりません。 誰かお教え願います。
620 すいません自己解決しました。
622 :
デフォルトの名無しさん :2006/09/15(金) 08:12:51
初心者です VB6からSQLサーバーに接続して データベースのテーブルを 操作する方法教えて下さい
623 :
デフォルトの名無しさん :2006/09/15(金) 09:11:36
>>618 いやー、ある面では壁になりうると思うぞ。
VB6までで大量生産されたいわゆるVB厨は、
.netのOOPになじめないっつー現象が、俺の周辺でも散見されたし。
ここでVB6を無償で配ったりしたら、VB厨がVB6に引きこもるようになる。
M$としてはVB6サポートを終了して嫌々でも新ツールを買わせる方が商売になるわけだし、
あくまで年貢の見返りとしてってのは、ある意味賢明な判断だと思われw
>>619 FlexGridとListBoxは完全に別物だし
プロパティでフォーカスが外れたら非選択にする、ってなかったか?
>>621 自己解決した奴がどうやって解決したかを書き込むのは何万年後かね。
>>626 いつも思うんだがなんらかのレスをしたやつが、自分も知りたいと質問してる状態で
自己解決をした結果を知りたいとかならまだわかるんだが、なんでいっしょに調べもしないやつに
教えてやらないといけないのだ?
そんな上からの物言いじゃなく一質問者として教えを請う立場だろお前は
>>627 俺はここで質問した事等一度もないが。
回答は数回してるけど。
それに、根本的にお前は間違ってるんだよ。
説明しても理解出来ないだろうがね。
こういう莫迦が増えたから、何処のQ&Aの場も廃れるんだよな。
630 :
627 :2006/09/15(金) 13:38:39
631 :
630 :2006/09/15(金) 14:12:04
「俺は
>>621 とは別人」とも、「回答者ばかりしてるぞ」とも、書くだけなら誰にでも出来る。
例えば俺は630とは別人だが、名前欄に630と入れて、
俺は630です。
ってなもんだ。ついでに
このスレでは、part1から、1スレ当たり50回答はしてるぜ。
なんて法螺さえ書ける。本当は通算で50行くかどうかも怪しいし、←さえ真実という保証なんて何処にもない。
書くだけなら嘘でもなんでもいくらでも。
ここまでこのスレすべてジサクジエンでした
>>629 「俺道徳」だから、説得できる説明が出来ないだけでしょ。
ゆとり教育の弊害か・・・
まとコメする奴なんかほとんどいない2chが盛況なのを見れば、そんなのいらないってわかるよね。
637 :
デフォルトの名無しさん :2006/09/15(金) 20:40:22
ネットワーク上にserverが二台あって vbからそれぞれのディスクサイズってどうやれば取得できますか? ネットワークドライブ割り当てないと駄目なんでしょうか?
VB6とVB8のライセンスがあれば VB6の機能をVB8で追加して作ったものを 配布しても構わないょね?(´д`)ょね?
639 :
627 :2006/09/15(金) 20:54:08
>>627 なにいらいらしてるんだ?
>>620 は質問スレに質問してきたんだろ?
ボランティアの回答を期待するなら、なれる時は自分がボランティア
になってもいいんじゃないか?
実態はともかく、この手のスレは相互扶助の意識がないと成り立たな
いよ。
641 :
デフォルトの名無しさん :2006/09/16(土) 00:53:10
マウスを操作するプログラム書いたのですが、 GetCursorPos APIを宣言するときに引数をByValで指定しないと どんな座標を指定してもマウスが画面の一番右下に移動します。 VB6はデフォルトではByRefらしいですが、座標なんて値渡しだろうが 参照渡しだろうが同じ気がするのですが、なぜこのようになりますか? ご教授お願いします。 Private Declare Function SetCursorPos Lib "user32" _ (ByVal x As Long, ByVal y As Long) As Long
643 :
641 :2006/09/16(土) 00:55:11
2行目間違えました。SetCursorPosです。
ByRefにするとC言語形式の関数にはメモリ上のアドレスが渡るんじゃないか?
645 :
641 :2006/09/16(土) 01:01:27
あっそうか。参照の値が座標値として処理されるのか。 自己解決すみませんでした。
646 :
641 :2006/09/16(土) 01:04:24
>>644 レスありがとです。
書き込んでちょっと考えて自己解決してしまいました。
連続投稿すみません。
CDOを使ってメールを送ろうと思っています。 宛先がPCのアドレス(@bb.excite.co.jp)の時は成功するのですが 携帯のアドレス(@docomo.ne.jp)の場合、 ERROR:サーバーによって1つまたは複数の受信者アドレスが拒否されました。 サーバーからの応答は次の通りです。 553 sorry.that domain isnt in my list allowed rcpthosts(#5.7.1) のエラーが発生します。宛先がPC,携帯の時のSMTPは smtp.bb.excite.co.jp を指定しています なぜ、携帯の時にはエラーが発生知るのでしょうか? #なぜかデバッグのときに数回成功したこともあります・・・・
>>647 理由→sorry.that domain isnt in my list allowed rcpthosts(#5.7.1)
649 :
647 :2006/09/17(日) 14:57:26
651 :
647 :2006/09/17(日) 17:20:40
やっぱりワカンネorz
着信拒否してないか、拒否られるような設定(送信元のドメインが逆引きできないとか)に なってないかを詩らぁsj負ぁコロン@絵rが「Atgqa
馬鹿は放置すれば?
655 :
かか :2006/09/18(月) 14:38:08
VB6.0でWin32のwritefileでファイルに文字列を書き込みたいのです。 Byte型の文字列は、構造体のメンバとしてByte型の変数を宣言しておき、構造体を配列で宣言して、構造体に(0)を付けて、Writefileに渡す事でファイル書き込みが正常に行われました。 しかし、String型は構造体のメンバとして宣言していたにもかかわらず、WriteFileしても文字が化けて出力されます。 Unicodeとか関係しているのでしょうか・・・・ ぜひ、皆さん教えてください。 宜しくお願いいたします。
>>655 関係してる、StrConvして、Stringじゃなく、Byte配列として扱う。
つうか、使う必要がほとんどないんだから使わないのが正しい姿勢。
もし、それでもわからんなら、WriteFileをラップするDLLを自作したほうが良い。
657 :
かか :2006/09/18(月) 15:42:53
はい、すみません言葉足らずで・・・・ 全角文字(unicode)をstring型で持っていて、その文字列をbyte型に変換したいのです。 すみません・・・・ 説明が下手で・・・ 通じましたでしょうか??? WriteFileをラップするDLLを自作するのはいいのですが、VBのSTRING型の全角文字をCHAR型に変換して、WriteFileに渡すことは簡単なのですか?
だからさ、StrConvをMSDNで見た?ぐぐった?
659 :
かか :2006/09/18(月) 16:08:12
strconvはそもそも知っているつもりなのですが・・・・ 単純にbyteの配列に、strconvの戻り値を入れることはできませんよね? ですので、strconvを使用してbyte配列に入れるには、midbだの何だのを使用して、1文字ずつ入れていくのですか?
660 :
かか :2006/09/18(月) 16:21:04
strconvはそもそも知っているつもりなのですが・・・・ 単純にbyteの配列に、strconvの戻り値を入れることはできませんよね? ですので、strconvを使用してbyte配列に入れるには、midbだの何だのを使用して、1文字ずつ入れていくのですか?
できる。
662 :
デフォルトの名無しさん :2006/09/18(月) 16:31:06
インプレスの本のタイトルみたい
>>659 ”つもり”なら誰でもつもりだよなwwwww
それは違うだろ? fromUnicodeとUnicodeがいったりきたり。
666 :
かか :2006/09/18(月) 17:52:08
下記の方法でByte型に入れることは出来ましたが、何か他に効率よく書けないも のですかねぇー。 ぐるぐる回すのがダサいです。 Dim aaa(100) As Byte Dim str As String str = "ぼく どらえもん" For i = 0 To 15 aaa(i) = AscB(MidB(StrConv(str, vbFromUnicode), (i + 1), 1)) Next i そもそもは、FlushFileBuffersが使用したくて、VBでWriteFileを使用してファイ ル書込みしています。 というのも、VBのOpenステートメントで開いて、書込みをしている最中にエディタ などから、該当のファイルを開いたりすると、文字が途中できれてしまいます。 それを無くすために、FlushFileBuffersが使えるのではないかと思いました。
ダサくてもお前の実力がそこまでなんだから、我慢しろ。
だからさ、可変バイト配列を受けるStrConvを書いて試したんかい? 書き込み中に開かれたくなかったら、ロックかければ良いだけだし、 任意のタイミングで確定させたいなら、そこで一度開きなおせばいいのに。
aaa = StrConv(str, vbFromUnicode)ってできなかったっけ?
>>666 flushするなら
openしてcloseしちまえば?
671 :
デフォルトの名無しさん :2006/09/19(火) 19:41:55
VB6.0 windowsXPを使用しています。 CSVファイルをDaoを使って読み込み、ソートしたいのですが可能でしょうか? たとえば、以下のtest.csvを読み込みたいです。(1行目のF1,F2はヘッダです) F1,F2 2,bb 3,cc 1,aa これを以下のように読み込んでF1列の昇順で並べ替えたいのですが、 Set ws = DBEngine.Workspaces(0) Set db = ws.OpenDatabase("C:\test.csv", False, False, "TEXT;HDR=YES;") テキストファイルをdaoで読み込んだ場合、ソートをすることはできないのでしょうか?
>>671 そもそも、お前DBを根本的に勘違いしてるだろ。
>>671 DBってのは、
>>672 が突っ込んでるように、ソート参照はしても
ソートして格納という概念は無いんだぞ。
>>671 がやりたいことってエクセルで済んじゃうんじゃね?
DBってのはRDBだけじゃないんだぞ ISAMやVSAMなんかもDBだぞ まあ、INDEX参照すればソートする必要ないんじゃないの?って事は有るがな
678 :
671です :2006/09/20(水) 12:32:59
下記のソースでやってみたら、1回目は ”エラー:3228 CollatingSequenceはOSでサポートされていません” とエラーがでるのですが、2回目はうまくソートできます。 ただ、エラーの内容の意味がわかりません。 Private Sub Command1_Click() Dim ws As DAO.Workspace Dim db As DAO.Database Dim rs As DAO.Recordset Dim strPath As String Dim strSQL As String On Error GoTo ErrHandle strPath = "C:\" Set ws = DBEngine.Workspaces(0) Set db = ws.OpenDatabase(strPath, False, False, "TEXT;HDR=YES;") strSQL = "Select * FROM test.csv order by F1" Set rs = db.OpenRecordset(strSQL, dbOpenDynaset) Do Until rs.EOF Debug.Print rs.Fields(0).Value & rs.Fields(1).Value rs.MoveNext Loop Exit Sub ErrHandle: MsgBox Err.Number & Err.Description End Sub
indexが出来てないからソートに失敗したんだな 2回やって上手く行くなら2回やればよい
ここって、VBS の質問も良いのでしょうか?
なにそれ?
>>680 >>1 よめ
>○ 質問者の心得
> 三.VBScript はこのスレでOK。
>>682 では、VBSで Debug.Print みたいな事をするにはどうすれば良いのでしょうか?
>>683 「みたいな」ってどういうのだろ・・・
まぁ、文字列を出力するならmsgboxでいいんでないかな
>>684 それだと其処で処理が止まってしまうので、
止まらない方法が良いです。
……ごめん、コテハンつけっぱなしだった(orz
>>686 有難う御座います。
WScript.StdOut.WriteLine とか WScript.Echo が、
求めていた物の様です。
つーか、デバッグモードで動かして、スクリプトデバッガで…
690 :
647 :2006/09/23(土) 21:50:53
参照設定が間違ってたからだった・・・ すまん>>リンク先の人
上のほうで文字列処理でアレな人がいるから、せっかくなのでまとめとく。 APIに値渡しでString型を渡すと->自動的にANSIに変換されてポインタが渡される String型を引数にとってStrPtrを呼ぶと->ANSIに変換された文字列へのポインタが返ってくる String型を引数にとってVarPtrを呼ぶと->Unicodeの文字列へのポインタが返ってくる Byte型の動的配列にString型を代入すると->配列にUnicodeで文字列が格納される ANSIな文字列が入ったByte型配列をString型に代入したいときは->StrConv()を使う Unicodeな文字列が入ったByte型配列をString型に代入したいときは->そのまま代入する
>>691 > String型を引数にとってStrPtrを呼ぶと->ANSIに変換された文字列へのポインタが返ってくる
いまからしらべてくる!!
>>693 ああああ、訂正トン。
正直StrPtrは使う機会がないので適当に書いた
ムシャクシャしてやった 今は反省している
お前、最低だな
697 :
デフォルトの名無しさん :2006/09/24(日) 09:55:37
>>696 たしかに漏れは最低かもしれないけど、MSがこんなに判りにくい仕様にしたせいでもある。
ま、諦めて.NETになったわけだけど。標準の文字列型がWCHARなのは扱いやすくて良いけど、
バイナリを突っ込むと化けるから、そこで何日もはまったりする。
>>698 横レスでスマンが
System.Text.Encoding クラス
とかじゃだめなのか?
>>699 あぁ、そんなクラス群がVB6.0にもあったら便利なのにな・・・(遠い目
VBScriptでのご質問です。 テーブルで正しく表示する方法を教えてください。DBからデータを受け取り表示させております。 <%Set ObjRS = Server.CreateObject("ADODB.Recordset") StrSQL = "select * from abc order by id Asc" ObjRS.Open StrSQL, Conn Do Until ObjRS.EOF%> <table width="210" border="0" cellspacing="0" cellpadding="0"> <tr><td width="100"><font size=-2> <%if ObjRS("category")="A" then response.write(ObjRS("name")) end if%></font></td><td width="100"><font size=-2> <%if ObjRS("category")="B" then response.write(ObjRS("name")) end if%> </font></td><td width="100"><font size=-2> <%if ObjRS("category")="C" then response.write(ObjRS("name")) end if%></font></td></tr></table> <%ObjRS.MoveNext Loop ObjRS.Close%> 見事に、テーブルがずれてしまいます。 A A B B C C 当方ASP+VBscriptを始めて10日ほどなのでお目汚しでしたらすみません。
A A B B C C ですスペース記載ミスです><
なにが「正しく表示」なのかさっぱりわからん 希望する表示状態をベタなHTMLで手書きしてみて、ASPから出力される内容と比べてみれ
<TABLE> <TR> <TD>A</TD> <TD>B</TD> <TD>C</TD> </TR> </TABLE> です。
<table> <tr> <td>A<./td><td></td><td></td> </tr> </table> <table> <tr> <td><./td><td>B</td><td></td> </tr> </table> <table> <tr> <td><./td><td></td><td>B</td> </tr> </table> それこうなるわな
DateDiff見たいな使い方で日付の差分を 実数で戻してくれる関数って無いでしょうか? 目的は任意の日からnヶ月(n週,n時間)後の日を判定することで、 下記の例だとFix()で小数点以下を切り捨てた場合に 6→7に変わった時点と7→8に変わった時点が、 nヶ月後に該当するという判定を行っています。 DateDiffの戻り値(月を間隔として指定)では、 2006/04/10と2006/11/09の差分が7 2006/04/10と2006/11/10の差分が7 2006/04/10と2006/11/11の差分が7 2006/04/10と2006/12/09の差分が8 2006/04/10と2006/12/10の差分が8 2006/04/10と2006/12/11の差分が8 と戻ってきてしまい、月を跨いだ時点で 差分が増えてしまいます。 これを 2006/04/10と2006/11/09の差分が6.967 2006/04/10と2006/11/10の差分が7.000 2006/04/10と2006/11/11の差分が7.033 2006/04/10と2006/12/09の差分が7.967 2006/04/10と2006/12/10の差分が8.000 2006/04/10と2006/12/11の差分が8.033 と戻ってくる関数があれば良いのですが・・・ ご存じの方はご教示頂きたく存じます。
708 :
デフォルトの名無しさん :2006/09/27(水) 11:46:01
age忘れたorz
710 :
デフォルトの名無しさん :2006/09/27(水) 12:03:39
dllを登録する方法と 登録されたdllの一覧を出す方法を教えてください。 よろしくお願いします。
711 :
707 :2006/09/27(水) 12:11:22
713 :
デフォルトの名無しさん :2006/09/27(水) 13:04:06
>>712 さんくす。
これて、既存の登録されているDLLの一覧を出すことはできますか。
ぐぐってみましたが、それらしいオプションは見当たりませんでした。
それは無い。 レジストリを眺めるぐらいしか無いんじゃないかな、
715 :
デフォルトの名無しさん :2006/09/27(水) 15:01:25
ありがとうございます。 何度も質問申し訳ないですが レジストリのどのあたりに登録されるか 教えていただけないでしょうか。
HKEY_CLASSES_ROOT
VB6ならOLE Viewってツール付属してない? それで一覧見られる
718 :
デフォルトの名無しさん :2006/09/27(水) 16:35:45
確認できました。 ありがとうございます。
719 :
デフォルトの名無しさん :2006/09/27(水) 21:06:30
どうしても分からないので教えてください MOD関数をつかい計算したいのですがうまく答えが出ません 例えば1から5の数字のときは答えを1 6から10の数字のときは答えを2 11から15の数字のときの答えは3 という風に答えを出したいのですがわかりません すみませんが教えていただけませんか
720 :
名無しですがナニか? :2006/09/27(水) 21:09:06
Pwクラッカーって作ってもらえますか? または作り方教えてくらさい
>>719 プラスのドライバーでマイナスのねじを閉めるのは労力の無駄だよ
>>719 for i=1 to 15:? (i-1)\5+1:next
>>720 まずはその何たらクラッカーを書け
くだらなければ完全スルーの刑に処す
((i + 4) \ 5)
当たり前田のクラッカーにみえた
727 :
697 :2006/09/28(木) 21:35:50
>>727 あてずっぽうで言うけど、たぶん
(1) リンク先のページをmhtに変換してローカルに一時保存する
(2) 元のページをHTMLで保存した後、リンクのURLをローカルに保存したmhtの
パスに置き換える。
(3) HTML => mht
この手順でとりあえずは作れない?
こういう泥臭いのがいやならmhtの書式を調べて自分でエンコードするような
コード書くしかないんじゃないか。
729 :
VB6で :2006/09/29(金) 11:19:18
簡単な計算機を作っているのですが オブジェクトA.caption=オブジェクトB.text と入力して、プログラムを実行でオブジェクトBに5と入力しても コンパイルエラーとなってしまいます(´;ω;`) 戻ると.caption=の部分がおかしいですよ、みたいな指示になるんですが どうしてでしょうか? 分かりにくい文で・・・orz
>>729 オブジェクトAはLabelなのか
オブジェクトBはTextBoxなのかわからないよ
それにそのA、BにCaption、Textがあるのか?
>>オブジェクトBに5と入力しても
実行中に手作業で入力か、プログラムで入力なのかもわからんよ
もう少し詳しく書きな
731 :
VB6で :2006/09/29(金) 12:04:05
オブジェクトAはLabelです オブジェクトBはTextBoxです ちなみに オブジェクトA.まで入力してもCaptioonが出てきませんでした。 Count Item LBound UBoundと言った、見慣れないのが出てきます。 オブジェクトBに5と入力するのは、実行中の手作業での入力です。 このぐらいの情報でOKでしょうか?
コントロール配列になっとるやん
LabelのIndexプロパティになんか値が入ってるはずなので消しておくこと
消せばいいとは限らないぞ。 オブジェクト一つでIndexが設定されているだけなら、消せばいいだけだが オブジェクトが複数なら、先に重複しない名前と取ってやらないと。 質問者はラベルが一つだとは言ってないんだから、 いろんな可能性を思慮できるようにならなきゃダメだよ。 初心者なら、コントロール配列にする必要無くても、オブジェクトをコピペした故に 意図せずコントロール配列にしてしまったなんてこともあるかもしれないし。
735 :
VB6で :2006/09/29(金) 22:50:47
ご回答ありがとうございますm( )m なぜか分かりませんが、Indexプロパティに3が入力されていて 消したらバッチリ直りました。 とっても助かりましたぁ><
こうして小手先の人間がふえていくんだよな・・・
だがそれがいい。
でも、コントロール配列が必要になる場面ってそんなにある?
コントロール数に制限あるから それ超えた時はコントロール配列で対応。。。
アリの巣コロリってあるじゃん 蟻の行列にポンと置くと一瞬ビックリして列が乱れる 邪魔だなと言わんばかりに迂回する列が出来る そのうち好奇心旺盛な一匹がアリの巣コロリに入る そいつをマネして何匹も入る 毒とも知らずにツブツブを運び出す 一匹が一粒づつ いつのまにか行列はアリの巣コロリが折り返し地点になる 黄色い粒と黒い蟻が作り出す模様は綺麗で見てて楽しい 一匹が一粒づつ丁寧にせっせと毒の粒を運ぶ せっせとせっせとせっせとせっせと 蟻さんって働き者だなと思う 俺も頑張らなきゃなと思う 次の日あれほど沢山いて俺を困らせた蟻が一匹もいない ほんとにいない 探してもいない 泣きたくなった このレスを見た人は4日後にあなたの大切な人がいなくなるでしょう それが嫌ならこのレスを5つの板にコピペしてください 信じるか信じないかはあなた次第です
VBでイメージやピクチャーコントロール以外に、 画像を表示できるコントロールってありますか? 標準コントロールでなくても構いません。
>>742 パッと思いつくのが
Image、Form、WebBrowser、Button、ShockWaveも出たかなぁ
744 :
デフォルトの名無しさん :2006/10/01(日) 13:13:34
722.724.725さんありがとうございました ううまくできました
745 :
デフォルトの名無しさん :2006/10/01(日) 13:18:49
すみませんが再度質問させてください。 1のときに答えが0と10と20 2のときに答えが1と11と21 3のときに答えが2と12と22 という風にFOR NEXTで処理をしたいのですがうまくいけません 初心者なんでこんな質問ですみませんがどなたか教えてください
>>745 いろいろいろいろいろいろいろ言いたい事があるけど、とりあえず置いといて
こんなの?
dim i as long
for i=0 to 2
debug.? i+1"のときに答えが"i"と"10+i"と"20+i
next
747 :
742 :2006/10/01(日) 21:03:25
最近VBをはじめたものです。 VB6.0(sp6) WinXp クラスやオブジェクトの使い方を調べるときは 皆さん何をつかってますか?教えてください。 私はVBの「オブジェクトブラウザ」や「MSDN」で調べて いるのですが、説明がわかりにくい上に資料が十分でないと感じています。 あの説明だけで実装できるものなんでしょうか・・・ 書籍、サイト、こんな風に調べてみたら?など アドバイスを頂けないでしょうか。 よろしくお願いします。
>>748 ・オブジェクトの使い方はもう作ったところ(本家)に行って資料を集めるのが一番
・資料がなければ有志のサイトに行ってサンプルでも落とす
大抵はこの2点で解決できるはず
…まさかだとは思うが、文法が分からない、じゃないよな?
もし文法が分からなくて「クラスやオブジェクトの使い方を調べよう」としているのなら、それはMSDNだぉ
750 :
748 :2006/10/01(日) 21:58:08
>>749 さん、ありがとうございます。
文法がわかっているとはとてもいえないレベルですが
そちらの方は書籍にあたれば大抵の場合、調べがついているので
問題ないと思っています。
ただ、オブジェクトの使い方に関しては私の調べ方が未熟なためか
「MSDN」にあたっても概要程度の情報しか情報を得ることができず
困っております。
現状はグーグル先生にオブジェクト名で検索して
実装したい処理に類似するサンプルを探すことでどうにか
こうにかしておりまが、この状況を改善したいとおもい
質問させていただきました。
>・オブジェクトの使い方はもう作ったところ(本家)に行って資料を集めるのが一番
(本家)とは「MSDN」ということでしょうか? それとも別の資料をさしているのでしょうか。
よろしくお願いします。
もちろん本家とはMSDNにほかならない。 グーグルで使い方を探すこと自体は悪くないと思うよ。 んで引数の詳しい説明とかをMSDNに求めるという感じ。
>>750 ググってみるのが一番だよ
出来れば作った会社(みたいな組織)と共にググった方がいいです
> >・オブジェクトの使い方はもう作ったところ(本家)に行って資料を集めるのが一番
> (本家)とは「MSDN」ということでしょうか? それとも別の資料をさしているのでしょうか。
> よろしくお願いします。
本家=作ったところ です
(たとえばWMIとかならMSで、など)
とりあえず部品とヘルプは一緒に拾ってくるのが原則なので、その部分で横着はできません
753 :
748 :2006/10/01(日) 22:56:40
>>750 さん, 751さん ありがとうございます。
当面はMSのオブジェクトだけを使う予定ですので
「MSDN」根気よくしらべていきます。
お付き合いいただきましてありがとうございました。
( ^ิิ౪^ิ)
log4netってVB6から利用できない?
756 :
デフォルトの名無しさん :2006/10/02(月) 19:48:48
VBでエクセルにデータを展開するプログラムを作成しています ユーザーの環境のエクセルが2000とXPと2003と様々 コンパイル環境と実行環境で「Microsoft Excel XX.X Object Library」 あたりでエラーがでてるようなんですが汎用性を持たせる方法はあるのでしょうか? コンパイル環境を変えないと無理なのかな? 教えてください
757 :
デフォルトの名無しさん :2006/10/02(月) 19:51:22
×コンパイル環境と実行環境で「Microsoft Excel XX.X Object Library」 ○コンパイル環境と実行環境の違いで「Microsoft Excel XX.X Object Library」 今のところコンパイル環境はExcel2000の端末です
そんなのググればいくらでも出てこないか? 結論から言えばレイトバインディングオンリーでコーディングすれば大丈夫でしょ。 具体的にはIDEで参照設定なんてせずCreateObjectでExcel.Application生成して、 すべてのオブジェクトをObjectにぶっこむ。 インテリセンスのメソッドテンプレートが使えないけどそこはぐっと我慢
参照設定した状態で開発した後で参照設定をはずしてCreateObjectなんかの書き方に変えるってのは一般常識だと思っていたがそうでもないらしい
758が知らないだけ。 我慢などせず便利なものは利用し、不都合だけ回避するのが当たり前。
話がずれていると思うけどね。。 言っちゃ悪いけど、その程度のことサルでも当然思いつくでしょ。 そんな得意げにいうようなことかw 俺も最初にコード書き始めるときはそうしてたよ。 ただ、メンテする時にはそうもいかないからね。
ついでに言うとバージョン互換性の無いメンバが存在するので、レイトバインドにしただけで安心してはなりませぬ
csvではき出せよwww
低レベル同士の煽りあい
>>761 参照設定出来るPCでメンテすりゃいいじゃん。
>>767 うーんとわかってないようだけど、インテリセンスにテンプレートが表示されるかどうかは
参照設定は必要条件ではあるが直接関係はないんだよ。
そういうこと書くとVB厨って言われまっせw
しかし、MicrosoftってのはCOMの基本思想すら無視しているのか 普通、一番古いバージョンのExcelで開発すれば 同じGUIDを持つなら新しいExcelでも当たり前のように動くんじゃないのか?
動かない理由はアプリ作る側が馬鹿だから特定のバージョンにあわせて作っちゃうだけなんだけどw OfficeのデベロッパーエディションなんかについてるOffice開発者ガイドはまず最初に目を通しておけって思うよ
>>768 だから必要だ、って事を言ってるんだろ。
阿呆か?
772 :
VB6で :2006/10/03(火) 11:53:34
もちょっと穏やかに・・・・
>>771 痛々しいな
まあ君が思っていることが実際に可能かどうか試してみろよw
そもそも何の話をしてるのか理解してるのかな?
774 :
デフォルトの名無しさん :2006/10/03(火) 13:25:17
プログラム初心者で、簡単な質問かもしれないですがお願いします。 VB.NETの質問で申し訳ありませんが、イメージを貼り付ける時に ImageBox1.Image = Image.FromFile("gazou.gif") ImageBox2.Image = Image.FromFile("gazou.gif") ImageBox3.Image = Image.FromFile("gazou.gif") ImageBox4.Image = Image.FromFile("gazou.gif") ImageBox5.Image = Image.FromFile("gazou.gif") というプログラムを、IfやForを使ってもっと簡潔にまとめられないでしょうか? いろいろと試してみましたが、エラーばかりでうまくいかなくて…よろしくお願いします。
>>759 の「ってのは一般常識だと思っていたがそうでもないらしい」が全面的に悪い。
>>774 >>1 > VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。
>>776 今専用スレを見つけて書き込みました
スレ汚しすみません、丁寧にありがとうございます
778 :
デフォルトの名無しさん :2006/10/03(火) 17:31:32
すみません。初歩的な質問なのですが、VB6.0でピクチャーボックスに円柱と球を描きたいのですがコードがわかりません。 すみませんが、誰か教えてください。 オブジェクト名はピクチャーボックスはPicture1です。
>>778 これは3Dで描画したいと受け取れるけど・・・
3Dで書きたいのならDirectXにするか、3D用ライブラリを自作しなきゃね
2Dならcircleとline命令で出来ると思うよ
780 :
デフォルトの名無しさん :2006/10/03(火) 17:57:18
>>779 わかりました。ありがとうございます。早速実行してみたいと思います。
Picture1.LoadFile("円柱の絵.bmp")
しかしVB6のPictureBoxクラスはLoadFileメソッドを持たない! まあどうでもいいが
784 :
デフォルトの名無しさん :2006/10/03(火) 21:10:11
質問です。 VB6でサーバーを介して多人数チャットができるツールを作っています。 普段は普通に受信・表示できるんですが 同時に受信すると、うまく改行されません(↓のコード参照)。 Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim dat As String, data() As Byte, Message As String Winsock1.GetData data() dat = data() Message = strconv(dat, vbUnicode) FORM.Text1.SelStart = Len(FORM.Text1.Text) FORM.Text1.SelText = Format(Now, "hh:mm") & " " & Message & vbCrLf End Sub FORMというフォームのText1というテキストボックスに表示しています。 10個ぐらい同時に受信すると、10個全部を表示することもできないし (3,4個しか表示されない上にちゃんと改行されない場合がある)・・・・。 どうしたらちゃんと改行されて、受信した分全てを表示することが できるでしょうか? 教えてください。
>>784 TCPか?
TCPはストリームソケットだから、「あいうえおかきくけこ」って送って「あいうえ」「お」「かきくけ」「こ」と受信されることが間々あるぞ
つまり 送信したもの≠受信できたもの が時々起こる
786 :
デフォルトの名無しさん :2006/10/03(火) 21:19:38
>>785 TCPです。
でも、例えば「あいうえお」と送って仮に「あいう」しかMessageに
入らなかったとしても、
FORM.Text1.SelText = Format(Now, "hh:mm") & " " & Message & vbCrLf
の「vbCrLf」で改行されるはずですよね・・・?
同時に受信することで、このイベントプロシージャの処理中に
また同じイベントが起こっている気がするんですが・・・。
>>786 そこはもう文字列のお話なので
msgbox "abc" & vbnullchar & vbcrlf & "def"
などと実行してみると嬉しく慣れるかも
>>786 あと
> 同時に受信することで、このイベントプロシージャの処理中に
> また同じイベントが起こっている気がするんですが・・・。
DoEventsを挟まない限り起こらないと思います
(そして絶対にDoEventsは挟まないでください)
下層のWinsockで受信が起こってすぐさまArrivalイベントが起こる保証はないです
※Winsockでのイベントプロシージャによる通達は微妙に表現しづらいので割愛します
>絶対にDoEventsは挟まないでください そうか?
790 :
デフォルトの名無しさん :2006/10/03(火) 21:38:27
>>787 =788?
わかりました!
受信した際に最後の一文字が2バイト文字なのに
前半1バイト分しか受信できてない状態でこのコードが
実行されると「vbcrlF」以降が表示されなくなっちゃってるって
ことですね!
>DoEventsを挟まない限り起こらないと思います
そうなんですか。
その心配がないことが解ってちょっと安心しました^^
>>789 イベントプロシージャの呼び出しが再帰的に成ったら、気づかないぞ
Winsockコントロールの中身がどうなってるかわからないけど、俺がWinsockをラップしたときはそうならざるを得なかったス
>>790 ガンガレ
793 :
769 :2006/10/03(火) 23:38:19
>>770 そこまでレベル低い話なのか・・・・
まさか、Office2000対応ってうたって、Office2000で使えないメソッドとかプロパティを
呼び出してるってことは・・・・ありえないと思ったよ
Excelでデータファイルを保存するタイミングでデータを暗号化 したいのですが保存のイベントハンドラのようなものはあるのでしょうか? ファイルメニュー⇒「上書き保存」からの保存時にはCOMアドインの接続時に イベントを紐付けることで対応できたのですが、この方法では ctr + sなどのショートカットキーでの保存時に素通りしてしまいました。 よろしくお願いします。 環境 VB6.0(sp6) Excel(2000, 2003) winXp sp2
795 :
デフォルトの名無しさん :2006/10/04(水) 09:49:47
マウスを画面の端に持っていくと表示される ランチャーを作りたいのですが、 画面の端でFormを表示させるには、どのようにすればいいのでしょうか? 環境 VB6.0(SP6) WindowsXp Pro SP2
>>795 サブクラス化
で理解できないなら君にはまだ早い。
もう少し基礎を積んでから出直しな。
まあ、今からVB6の基礎を勉強するのも無駄が多いとは思うが
VB6でやりたきゃ、VB6を勉強するしかないわな。
797 :
795 :2006/10/04(水) 10:20:06
サブクラスでOSのマウスイベントを取得する方法はわかりますが、 画面の端で表示させる方法がわかりません ><
798 :
デフォルトの名無しさん :2006/10/04(水) 10:32:24
VB6(SP6)で作成されたアプリをVB.NETにアップグレードする作業中なんですが、 VB6のフォームに設定されたToolTipTextが全て移行されたのか確かめるために VB6のプロジェクト内のToolTipTextの一覧を出力したいのです。 1つのフォームに対してなら For Each x In Form_1.Controls Debug.Print x.name & "," & x.ToolTipText Next みたいな感じで出せると思うのですが プロジェクト内の全フォームに対して行う方法がわかりません。 最初は For i = 0 To Forms.Count - 1 For Each x In Forms(i).Controls … という感じで試してみましたが、Formsコレクションはロードされているフォームだけが対象のようでうまく行きませんでした。 良い方法はないでしょうか。
プロジェクト内にあるフォームを実行時に列挙する方法は分かりません(無いと思う)が、 プロパティウィンドウを使って静的に設定されているなら、.Frmファイルにその値が書かれているはずです 同様にプロジェクトファイル( .prj )を開き、Formの項目を調べてみてください、そうすれば使っているFormが分かるはずです
VBでサブクラス化とか言ってる奴キモイ
802 :
798 :2006/10/04(水) 11:59:17
>>799 列挙する方法はありませんか…
しかし、ファイルを読み込むという発送はありませんでした。
その方向で試してみようと思います。
ありがとうございました。
803 :
たけし :2006/10/04(水) 12:44:51
Excel VBAのフォームなんですが… ComboBoxを選択しないでOKした場合、「選択していないです。」みたいなエラーを表示させる方法を教えて下さい。
804 :
デフォルトの名無しさん :2006/10/04(水) 12:57:30
>>803 SelectIndexみたいなのなかったっけか?
何も選択してないなら-1がはいるとかみたいな
>>796 横スレで申し訳ないが
サブクラス化するだけで、ウインドウ外のマウスイベント取得ってどうやるのよ?
まさかマウスキャプチャするわけにもいかんだろうし
この程度のことでグローバルフックって事も無いだろうし
タイマーまわしてgetcursorposでマウスの座標を取得〜って方法が楽で良いと思う
>>797 画面の端に表示って普通に考えると
Formプロパティのtop,leftを変えれば良いだけじゃないか?
アニメーションさせたいってことか?それだってタイマーまわして、top,left変えながら
だんだんポップしてるように見せれば良いだけだと思うけど
806 :
デフォルトの名無しさん :2006/10/05(木) 09:35:16
>>805 で、どうやって自アプリ領域以外のマウス位置を取るのよ。
getcursorpos
>>805 > この程度のことでグローバルフックって事も無いだろうし
そういう事をする為のフックだろ。
マウスは共通リソースなんだし。
>>808 いや、だからマウスイベント取得だったらグローバルフックが必要だろうけど
グローバルフックはVBだとレベル高すぎだろ
つーか、ActiveXDLLでグローバルフックDLLって作れるのか?
>>809 マウスのグローバルフックは関数をインジェクションしないからOKなんじゃなかったっけ?
Timerでやれないことはないけれど、少々なぁ…
フックじゃないから、「カクカク」すると思われる
>>810 >マウスのグローバルフックは関数をインジェクションしない〜
そうなのか?グローバルフックは全部DLL化が当たり前だと思っていたので知らなかった
Timerで100msecごとにマウス位置取得、ウインドウをポップさせる領域に居たら、ウインドウ
ポップアップ、マウスがウインドウ外に移動したらウインドウを消すってかんじで
795のやりたい事は事足りるような気がするんだけどなぁ
>>811 多分他のアプリケーションが非道な高コスト作業をしてると…
まぁ、べつに俺たちが悩むことでも無いし
Timerでも出来ないことないからいいかな、とも思ってる
他のアプリがどうこうで、タイマーとフックの違いが目に見えてわかるのか?
814 :
デフォルトの名無しさん :2006/10/06(金) 09:46:15
Timerでは不要にPCのリソースを使い続けることになる。 一定周期以上は保証されるが、一定周期が保証されるわけではない。
で、タイマーとフックの違いが目に見えてわかるのか?
初めて質問させて頂きます。
環境:WindowsXP(SP2) VB6(SP3) InputManPro6.5J を使用して開発しています。
2つのプロジェクト(Hontai.vbpとControl.vbp)を1つのグループ(Hanbai)にまとめています。
Control.vbpではInputManという市販のコントロールを参照設定して
テキストボックス(InputMan)をいくつかならべたActiveXコントロール(Control.ocx)を作っています。
Hontai.vbpではフォームにテキストボックス(InputMan)とDataRepeaterを貼り付け
そのDataRepeaterでControl.vbpで作ったコントロールを使用しており、データベースのテーブルの内容を表示しています。
ここからが問題なのですが、Hontai.vbpでディストリビューション ウィザードを実行し
「Control.ocxの依存情報がありません」と言うメッセージを無視してパッケージを作成し
InputManがインストールされていないPCでパッケージをインストール後、Hontai.exeを実行しますと
Inputmanのライセンスキーの入力を求められます。
求められるのはControl.ocxを使用しているフォームのみです。
そのままInputmanのコントロールを使用しているフォームは問題なく動作しています。
Hontai.vbpで使用しているテキストボックス(InputMan)はパッケージにText60.ocx(InputManで使用するActiveXコントロール)があるので問題ないのですが
Control.ocxでもテキストボックス(InputMan)を使用しているので、Control.ocxの依存情報ファイル(Control.DEP)が必要と思い
先にControl.vbpでディストリビューション ウィザードを実行し、Control.DEPを作成後、Hontai.vbpのパッケージ作成を行ってみると
「Control.ocxの依存情報がありません」というメッセージがでなくなりました。
ですが、やはりそれでもInputmanが入っていないPCにインストールすると、Control.ocxを使っているフォームを開くとライセンスキーの入力を求められます。
どなたか同じ経験をお持ちの方がいらっしゃいましたら、ご助言を頂きたいです。
参考にInputMan7.0の登録についてのアドレスを貼らしていただきます。
ttp://ftp.grapecity.com/Trial/InputMan70ReleaseNote.htm
>>816 それであれば、文化オリエント(現在はぶどう社?)に直接聞けばいいじゃないかよw
>>816 > 「Control.ocxの依存情報がありません」と言うメッセージを無視してパッケージを作成し
何で無視するんだよ。
>>815 まぁまぁ、もういいじゃないかw
ぶっちゃ毛、100msecでGetCursorPosをするcpuリソースと、グローバルフックを1つ挿入する
リソースの差は多分、後者のほうが重いけどそんなのどうでもいいよ
820 :
デフォルトの名無しさん :2006/10/06(金) 11:51:06
157 :夢見る名無しさん :2006/07/10(月) 22:53:34 O 時々目にする「竹石圭佑」という奴をまとめてみました… @両親が在日(中国人)。名古屋在中? A顔が出目金or宇宙人そっくり。 B新成人だが、知能が小学生程度(理由は下記の事項より)。 C「自分より力の弱い」女子生徒や女子教師をイジメの格好の的としていた。 D意中の女子には例外なく「ちょっかい」を出して気を引こうとしていた。 E万引きで数回捕まり、長期停学を検討していた(らしい)校長や他職員に大声で泣きながら謝罪。廊下まで泣き声が響いたらしい。 F自分は一般人とは違うと思っており、異常なほどの目立ちたがり屋で注目される為なら何でもする。 Gあまりにも女子に相手にされないことから気が触れ(?)、後輩や仲の良い男子生徒にも手を出す。噂だが注意が必要。 …ちなみにこれらは竹石圭佑の一部にすぎないらしく、 詳しく知りたいならば本人に直接聞くのが一番手っ取り早いそうです。
まぁまぁ、819が勘違いしているけど、もういいじゃないかw
823 :
デフォルトの名無しさん :2006/10/06(金) 12:46:24
>>819 パソコンが放置された状態の場合、って考えないの?
フックなんて簡単だろ。 そういうOCXが幾らでも売ってるんだから。
825 :
816 :2006/10/06(金) 17:41:00
>>817 サポート期間は既に終了していました。
>>818 ディストリビューション ウィザードを使うのは初めてだったので「依存情報」という意味が分からず、そのまま進めてしまいました。
現在は「依存情報」については問題ないです。
追記
Hontai.vbpで使用しているDataRepeaterがControl.vbpにあるユーザーコントロール(Inputmanを使用)を使用しているために、コンパイル後DataRepeaterがあるフォームを開くとInputmanのライセンスIDの入力を求められます。
Hontai.vbpでDataRepeaterを介せずにControl.vbpにあるユーザーコントロール(Inputmanを使用)を使用してテストしたところ、問題ありませんでした。
PSC見れば、インラインアセンブラでIDEが落ちないサブクラス/フックを実現してる サンプルがあるぜ?海の向こうは凄いぞ。ま、それでもうっかり不完全なコードの まま実行するととんでもないことになるけど。
827 :
デフォルトの名無しさん :2006/10/07(土) 19:05:39
WebBrowserに表示されているデータを取得したいと思っています。 テキストボックスやラジオボタンの類ではなく、 javaアプレットで表示されているデータ(数字)なのですが、どのようにすれば取得できるでしょうか? ヒントだけでも結構です。 よろしくお願いいたします。
ヒント:パケットキャプチャ
第二ヒント:OCR
NetAdvantage使っていてグレープシティにメールで質問すると 上記の問題点については、開発元へ連絡をとり、今後の対応を検討 させていただきます。ただ、本件が、不具合として確実に修正され るものであるのか、仕様上の制限であるのか、現時点で申し上げる ことができません。また、修正により製品の安定性が損なわれると 判断した場合、またはその他の理由で修正が困難だと判明した場合 には、修正を見送ることがございます。 将来もし修正版がリリースされました際には、弊社Webサイトにて 情報を公開させていただきます。 何卒、ご寛容をもちましてご了承くださいますようお願い申し上げ ます。 って回答が返ってきます。 暴れてもいいですか?
>>830 グレープシティは日本語化してるだけだから。
OS WindowsXP バージョン6.0 伝票番号を作りたいのですが、OKボタンを押したら指定したセルに 伝票番号が001となって、それ以降OKボタンを押すたびに 一つずつ増やしていくプログラムを組みたいのですがどうすれば出来ますか? 始めたばかりの初心者なのでよろしくおねがいします。
>>832 値を保持できる変数使って、実行の度に
変数=変数+1
をやればよい。1→"001"はFormat関数や文字列関数で。
再起動後もまた1からではなく前回の続きからやりたいなら
iniやxmlなりレジストリなりに値を保持すればよし。
あとはとりあえずやってみて、解らなかったら次は出来たところまでコードを貼ること。
>>833 全然わからないので教えてください
ちなみに再起動後は続きから出来なくてもいいです。
dim y as string
y = Format(1, "000")
range("J5") =y+1
今出来てるのはこれですが2回目以降実行しても伝票番号が変わりません、それと表示も1となって00がつきません
変えたいものを変数にしなくてどうする。 Dim y As Integer Sub increase() y = y + 1 Range("A1") = Format(y, "000") End Sub Private Sub CommandButton1_Click() Call increase End Sub
> 全然わからない 「全然わかろうとしてない」の間違いでは? 833が教えてくれた > 変数=変数+1 を全然使ってないじゃん。 変数自体は使ってるので、「変数」の意味は分かってるはずなのに 教えられたことをやろうともせず「入力先 = 変数 + 1」をやってるってのはどーよ?
837 :
835 :2006/10/08(日) 03:20:04
それと、 >それと表示も1となって00がつきません これは、書き込み先のセルの表示属性が文字列じゃなくて数値になってるから、 先頭の0が消えているとみた。
それ以前に値が数値型でっせ。
みなさんありがとうございます、001になるようになりました。 しかし、2回目以降数字が増えません、どうすればいいんですか?
840 :
デフォルトの名無しさん :2006/10/08(日) 11:27:41
>>839 Private Sub CommandButton1_Click()
Dim y As Integer ←ここにDimを入れてない?
y = y + 1
Range("A1") = Format(y, "000")
End Sub
Dim y As Integer ←一番上の行に入れてみ。
Private Sub CommandButton1_Click()
y = y + 1
Range("A1") = Format(y, "000")
End Sub
840には「一番上の行」って書いてあるが sub hogehoge() 〜〜〜 end sub Dim y As Integer Private Sub CommandButton1_Click() y = y + 1 Range("A1") = Format(y, "000") End Sub とかやってないか?
843 :
デフォルトの名無しさん :2006/10/08(日) 12:45:01
>>841 エラーの内容書いてくれないと状況がわからないよ。
>>842 さんの言うように、中途半端な行に入れてない?
Dim y As Integer ←ここに入れる
sub hogehoge()
〜〜〜
end sub
Dim y As Integer ←ここじゃないよ
Private Sub CommandButton1_Click()
y = y + 1
Range("A1") = Format(y, "000")
End Sub
そもそもそれVBAでスレ違い。
ついでに ---------------------- | Option Explicit | private y as integer | | 〜いろんなコード〜 ---------------------- みたいな形にすれ
846 :
デフォルトの名無しさん :2006/10/08(日) 13:38:27
>>845 Option Explicit
Dim y As Integer '変数yの宣言
------------------------------
Sub increase()
y = y + 1
Range("J5") = Format(y, "000")
End Sub
------------------------------
Private Sub Ok_click()
Call increase
今プログラムはこうなっています。
Private Sub Ok_click()に対するEnd Subは?
848 :
デフォルトの名無しさん :2006/10/08(日) 14:13:51
>>846 だからエラーの状況がわからんって。
エラーメッセージでてない?
どこでつまづいているのかがわからない。
>>847 call increase
End Sub
でした。
>>848 エラーはもう発生してません、番号が変わらないだけになりました
850 :
デフォルトの名無しさん :2006/10/08(日) 15:17:11
>>849 Ok_click() が原因じゃないの。
CommandButton1_Click() にしてみたら。
CommandButton1_Click()はコマンドボタンが押下された時に実行される処理。
Ok_click()はただのsubなので、コマンドボタンを押下しても無視される。
コマンドボタンが複数あったら、必ずしもCommandButton1_Click()ではなく、
CommandButton2_Click()とかCommandButton3_Click()の場合があるから適切な場所にプログラム書いてね。
数式を消さずに値だけ消したいときはどうプログラムすればいいんですか?
853 :
デフォルトの名無しさん :2006/10/09(月) 16:08:38
自分のグローバルIPアドレスを表示したいときはどんな命令を出せばいいんですか?
>>852 例えばエクセルのA1からA10までのセルにIFなどの関数を設定していて、ボタンを押すと前の値を消して数式だけはそのままにしときたいんです。
Range("A1:A10").clearcontentsにしたら数式も値も消えてしまうので他の方法があれば教えてください。
その行動をマクロで記録してみたら?
>>854 表示を消したい(""を返したい)なら、数式が""を返すような条件を作ってやれば良い。例えば
A1=1
A2=IF(A1=0,"",A1)
だったとすると、A1に0を代入することで数式の表示を""に出来る。
現在数式がそういう作りでないなら、IFを一つ追加して、その条件となる部分をボタンで操作しろ。
数式は存在する限り、式に沿った値を返し続ける。それを見えなくしたいなら、""を返すとか
表示形式で「;;;」を設定するとかで、返された値が目にはいらないようにするしかない。
857 :
デフォルトの名無しさん :2006/10/09(月) 20:38:39
>>854 消すボタンと、関数を書き込むボタンを作ってみては。
Range("A1")="=if(論理式,真の場合,偽の場合)
Range("A2")="=if(論理式,真の場合,偽の場合)
858 :
デフォルトの名無しさん :2006/10/09(月) 21:54:39
>>828 パケットキャプチャの事調べてみました。
中級者以上のプログラミングですね。
パケットが取得できたとして、必要な情報が手に入るまで道のりが長そうですね・・・
現実的に可能なのでしょうか・・・
>>829 OCRは決められた書式でしか読み込めないので無理ぽいです。
>>853 IPCONFIGで得られるので良いならそれで
グローバルIPアドレスを取得する手段というのはありません 大抵はルータが管理しているからです パケットキャプチャなんて言ってるのは馬鹿です 一番現実的な方法は外部サーバにダミーのメッセージを送り、相手サーバに 送信者のIPアドレスをそのまま送り返してもらう方法です 専用サーバがどうしても立てられないということであれば HTTPサーバを利用することもできます REMOTE_HOSTを吐くだけのCGIをリモートサーバにアップロードしておき そこにHTTPリクエストを発行するだけです
パケットキャプチャは別の話題か Javaアプレットの数字を取り出すにはアプレットに取り出すための口を作っておかないと出来ません キャプチャしようが無理です
862 :
デフォルトの名無しさん :2006/10/10(火) 19:53:14
>>861 そうなんですか?!
地道にパケットキャプチャのお勉強をしていたのですが・・・
無駄足を踏まずにすみました。ありがとうございます。
>>863 いちいち環境を調べてから手法を変えるのはコストの面で非現実的です
外部サーバを利用する方法はどんな環境にも対応できます
>>864 外部サーバを使わなければならない方が非現実的だろ。
自分だけで完結出来ないし。
>>865 じゃあグローバルIPを得る方法はどうやんの?
>>865 グローバルIPって外部とつながってなきゃ意味ないし
それならサーバに依存したってかまわないんじゃ?
どうしてかまわんということになるのか、理解不能
馬鹿はほっとけ
ルータ通して繋がってるなら、グローバルアドレスは存在しないだろ
>>872 は?
じゃ、ルータ使ってるときのグローバルIPを取得する方法を教えてやれよ
なんですでに方法が出てるのに>873のような馬鹿発言が出てくるんだろう あぁ、馬鹿だからか
あいかわらずブビ厨はレベル低すwww
>>878 それがネット関係のハード&ソフトのプログラマに言うせりふかね
880 :
デフォルトの名無しさん :2006/10/10(火) 23:18:34
グローバルIPはルータに問い合わせればいいじゃない。
881 :
デフォルトの名無しさん :2006/10/10(火) 23:31:59
ここはVBのスレだけど、自作ソフトでグローバルIPを表示させたいの?
>>866 参照設定で、Microsoft Winsock Control x.x すれば、
Debug.Print Createobject("MSWinsock.Winsock").LocalIP
とか、
Debug.Print Createobject("MSWinsock.Winsock").LocalHostName
ていうか、腹かかえてワロタ。
>>882 ずっとグローバルIPを自PCのみで取得しなきゃだめだって言ってたやつか?
おもいっきり「LocalIP」と書いてあるんだが・・・
>853 が発端
>860 現実的な回答出す
>863 ルータ無い場合は?
>864 ルータのあるなしの判別する処理を実装するより、
>>860 の方法が統一されて楽でわかりやすく現実的
>865 ここでなぜか自己解決できなきゃだめだろと意見出る
>867 ネットワーク無いとグローバルIP意味ないし、サーバ依存でいいんじゃね?
>868 理解不能と言い出す
>871 なぜかルータ使用するとグローバルIPは存在しないと言い出すw
>873 ルータ使用時のグローバルIP取得方法はすでに
>>860 で出てるのになぜか聞く
>878 ネットワークのことを知らずにネットワーク勉強しろと言い出すw
>880 私の主観ですがこの方法もありだけどルータのアドレスとか取得しなきゃならないし
>>860 よりはちょっとめんどいと思うけど一応LAN内で完結する、自PCのみで解決はできてないけどな
と適当なこと書いてみる
どうやって問い合わせるつもり?
UPnP対応限定じゃね?
ともかく、「あっちから見て、自分はどう見えるか」という意味でグローバルIPとほざいてるなら、 やっぱりあっちから見てもらわないとダメ proxy噛んでたらもうそれで目的達成できないけどな
>>888 proxyなんてまったく関係無いんだが。
>>886 問い合わせる方法ってのはたとえば、ルータの設定をブラウザで管理できるならやりようはある
仮想DNSとかを使ってるやつはそういうスクリプトで
GIPの変化を数分ごとにチェックして登録しなおししてるよな
ただし、ルータの機種ごとにフォーマットが違いがあるから汎用なものにはならないな
あと、WAN上にサーバー立てられるならほかのやりようもあるな
ツーか、853は何がやりたくてGIPを取得したいのかを書けばいいのに・・・・
>>885 なるほど、上の文章ほとんど読まずにレスしたしまったが
TCP/IPの知識ないやつが暴れまくってただけか
退散しよ
したしまった
なんだかこのスレッドにあまりそぐわない流れにワラタ Javaのアプレットに表示されたある文字列を拾ってくるっていう話は、 きっとその文字列が可変なんだろうね。もしかしたら、Fiddlerあたりで パケットを調べてみれば、あるURLにリクエストを投げてる可能性も稀に あるから、そうなればもう占めたもんだけど、そう上手くはいかないかもね。
894 :
デフォルトの名無しさん :2006/10/11(水) 07:37:07
>>885 所々全く読めてないから
確かに適当だな。
校正してあげて
MSComm32.OCX 等は再配布しても良いのでしょーか 調べるとダメそうなのですが、Vectorでは再配布してます どうなんでしょう
897 :
デフォルトの名無しさん :2006/10/11(水) 12:47:36
アプリ配布するならOKでしょ。 単体はNGだけど。
どうもです。 Editionによっても異なるみたいですね。 Stdは×だけどProは○のようでした。
質問させてください。 ある関数の引数に1次元配列を渡そうと思います。 Sub foo(iHogeArray() As Integer) '処理 End Sub 使用側で多次元配列でデータを管理しているのですが Dim iHogeHogeArray(5, 5) As Integer Call foo(iHogeHogeArray(i)) のように2次元配列のある1次元部分を引数に指定することは出来ないのでしょうか。 C言語では出来るのですが、そもそもVBにはこの概念は無いのでしょうか。
>>899 多分無理。
どうしてもやりたければVariantの配列に突っ込むか、コレクションクラスを作れば?
ちなみにC言語のarray[index]って表記法はarray + indexのシンタックスシュガーだとか。
>>900 なるほど。1次元配列を返却する関数でも作ってみます。
ありがとうございました。
>>885 >おもいっきり「LocalIP」と書いてあるんだが・・・
インターネットへ直結(
>>863 )であれば、グローバルIP = LocalIP
よって、
>>882 でモーマンタイ。
>>902 もうね、一辺本屋でも行ってきてそれのおかしいところを3個くらい挙げるといいと思うよ
しかしネタが無いのも事実
釣り?
ログ吐くとき、ログ出力用の汎用クラスとか作って使ってる?
907 :
デフォルトの名無しさん :2006/10/12(木) 22:05:51
はじめて質問させていただきます。 VB6 SP6で簡単なFTPクライアントをすることになり、 サンプルなどをググったりしていろいろ探していますが Microsoft Interner Transfer Controlコンポーネントか WinINet APIのどちらかを使用したものを見かけますが どちらのほうが作りやすいでしょうか? またMicrosoft Interner Transfer Controlを使用した ソースを公開しているサイトの殆どは 接続・切断・アップロード・ダウンロードの記述はありますが リストを出力してTreeView、またはDirListBox、FileListBoxに 表示させる記述が無いのですが・・・ できないのでしょうか? できるのでしたらどう記述したらよいのでしょうか?
>>907 > どちらのほうが作りやすいでしょうか?
使いやすいのはINETコントロール
バグがあるのもINETコントロール(気づかないでハマるケース多数)
Wininetは使ったこと無いけれど、慣れれば楽
というわけで俺なら五分五分
> ソースを公開しているサイトの殆どは
> 接続・切断・アップロード・ダウンロードの記述はありますが
> リストを出力してTreeView、またはDirListBox、FileListBoxに
> 表示させる記述が無いのですが・・・
> できないのでしょうか?
そういうUIは後乗せサクサクだから今から不安になる必要は無い
UIはUIだけに責任を負えばいい
最悪テキストボックス&リストボックスだけでもいい市ね
> できるのでしたらどう記述したらよいのでしょうか?
設計を満足できるように記述すればいいだけ
…としかいえない
910 :
デフォルトの名無しさん :2006/10/13(金) 07:28:23
>>908 ありがとうございます。
早速Inetコントロールで作ってみました。
リストの出力は
lsコマンドをexecuteで投げて
プロパティのGetChunkで実行結果が返ってくると
MSDNに記載していたのでGetChunkを使ってとりあえず
テキストボックスに結果が出力されるように
しました。
できればFileListBoxみたいに
1行全選択させて選択したものをDLボタンで
DLするようにしたいのですが・・・
>>910 > lsコマンドをexecuteで投げて
FTP鯖の違いでLSの結果が違う場合もあるから、単純に一般化はできないので注意するように
> できればFileListBoxみたいに
> 1行全選択させて選択したものをDLボタンで
> DLするようにしたいのですが・・・
やればいいじゃん
テキストボックスに表示されたんだろ?
リストボックスに表示すればそれなりになるだろ
WinXPSP2、VB6.0での質問です。 時系列順に1行ずつ文字が並ぶログファイルを読み込み、整形し直して吐き出すというプログラムを組んでいるのですが、 その読み込むログファイルに文字化けした文字が入っていることがありまして、 場所によっては整形時にファイル名に当てる部分だったりするので、エラーを吐いてしまいます。 また、そうでない場所のものも出来れば出力されるのは避けたいです。 ただ、ログファイルは別ツールからの出力で、私がいじれる範囲外のものなので、文字化け自体を出さないようにするという解決法は取れません。 なので、文字化けしたものが混ざっている行があったら別ファイルへ捨てる、というような処理を追加したいと考えています。 そこで質問なのですが、その文字が文字化けしているかどうかを判別することは可能でしょうか? 可能ならばその方法を教えていただけませんでしょうか。 よろしくお願いします。
0がBに変わっているのを、その文字だけを見て判断しろと言うなら不可能。 例えば数字しか含まれて居ないとわかっているなら、 0がBに文字化けしていると判断できるだろう。 結局は、何を持って文字化けしていると見なすのか、そのルールしだい。 ルールを決めたなら、その通りに実装すればよい。
>>913 なるほど。
とすると、この場合はShift-JISとして見れるかどうか、が判断基準となるかと思います。
これを判断することは可能でしょうか?
>>913 VBの文字列ファイルI/OはShiftJIS以外のコードを正常に扱えない。
ShiftJIS以外のコードを正常に読込みたいなら、バイト配列に読込むことになる。
その後、ShiftJISのルールに従っているか、1バイトづつ判定すればよい。
漏れならファイル生成時にエラーにするで納得するけどな。
ShiftJISの全ての文字がファイル名に使える分けじゃないし・・・。
916 :
デフォルトの名無しさん :2006/10/13(金) 21:20:04
>>914 可能だよ。
最初から1バイト1バイト取り出して判断すればいい。
シフトJISは、
第一バイト &H81〜&H9F と &HE0〜&HFC
第二バイト &H40〜&H7E と &H80〜&HFC
です。
>>915 >>916 その方法で何とかなりそうです。
ありがとうございました。
>>915 生成物にはなるべくゴミを残したくなかったので、ファイル名に使用しない部分の物も取り除きたかったのです。
確かにファイル名の部分だけなら、On Errorでスルーでよかったんですけどね……
文字化け以外のファイル名として使えない文字は変換かけるようになってますので、そこはたぶん問題ないと思います。
Form1のボタンクリックイベントで、Form2をモードレスで表示して、 モーダル表示した場合のようにForm2が閉じるまで待機をしたいのですが、 ループをまわす以外の待機方法はないでしょうか?
はぁ?
920 :
デフォルトの名無しさん :2006/10/13(金) 23:12:52
>>918 Form1.Enabled = False
>>918 どうしてそういう状況が生まれるのか聞きたいところだなぁ
親ウィンドウと子ウィンドウの両方をいじれるようにしといて 子が閉じたら親の表示内容を更新するとかか? 親にイベント通知すりゃいいだろ
923 :
918 :2006/10/14(土) 01:07:21
すまそ。。。下記のようなことをやりたかったんですが、 印刷ダイアログから呼出元ダイアログを特定する方法が判らず、 モーダルじゃなくてモードレスにして、呼出元でループをまわして 監視するとか、手探りで色々試してます。。。 enabled設定の挙動については確認してみます。レスありがとうございます。 (1)親ダイアログ(メニュー画面)から子ダイアログをモーダル表示。 (2)子ダイアログから、印刷画面(複数ダイアログで共通)をモーダル表示。 子ダイアログをHide。 (3)印刷画面にて閉じるボタンで、自分と呼出元をUnload。 戻るボタンで呼出元ダイアログをshow、自分をUnload。
印刷画面が呼び出し元にイベントで通知すればいいでしょ。 なんのための「イベント」だよ。 っていうか、ウンコUIの雰囲気アリアリだねそれw
925 :
たける :2006/10/15(日) 06:23:18
初歩的な質問だと思いますが… ComboBoxに直接書き込んだ時にその言葉がRowSource内にあるかないかを判断させるにはどのようなプログラムにすればいいのでしょうか? わかる人いません?
>>925 ループ回してチェック
これで解らなきゃ使うのやめろ
927 :
デフォルトの名無しさん :2006/10/15(日) 11:16:24
オプションボタンを動的に作りたいのですが StyleをvbButtonGraphicalにしたいです。 しかしStyleは実行時には変更できないです。 なにか設定できる方法はあるのでしょうか? あと、Contorls.Add で作成していますが、 コントロールを配列にする方法がいまいちよくわかりません。
聞きたいんですが 先に作ったボタン、Label、その他を あとから作ったFrameやPicture等の中に 納めるにはどうしたら良いよいのでしょうか。 FrameやPicture等の裏に隠れてしまうのですが。
>>927 Winsock コントロールの使い方のような感じでええんやない?
>>928 作成時なら
C-x Pic選択 C-v
など。実行時ならコンテナかいな?
>>929 すいません、C-x Pic選択 C-v
の-xと-vって何を指すのでしょうか?
>>931 すいません、かっとあんどぺーすとって何でしょうか?
933 :
928 :2006/10/15(日) 12:51:55
>>929 さん
わかりました、
最前、再背ですね
ありがとうございました。
本人がそれでいいのならなんともないぜ
927です。 とりあえず何とかなりました。ありがとうございました。 かならずひとつはボタンが存在するので、 Loadで増やしてしまいました。
>>927 オプション数の最大限度が決まっているのなら、
最初から配置しておき、
visible と enable を False にしとくといいかも。
英語版Windowsで○とか●を表示する方法ってある? どんな方法使えばいいのかご教示下さい。
>>937 webdingとか wingdingsとか使えば記号できるだろうけど、
上手い具合に○はないようだなぁ
oとxで良いんじゃない?
∧∧ o(・x・)o
941 :
デフォルトの名無しさん :2006/10/16(月) 14:26:36
ここで聞いていいのかな? ADOでDB取得する際なんですが、例えば以下のような文があったとします。 sql = "select data1,data2,data3,data4,...,data20 from table1;" Set RS conn.Execute(sql) If RS.EOF = FALSE then data1 = RS!data1 data2 = RS!data2 : End If とまあこんな感じなんですが、これを if RS.EOF = FALSE then For i = 1 to 20 data(i) = RS!data(i) Next i end if こういう感じで実現って出来ますか?要するにRS!の後に変数を代入するって感じです。
>>941 そんな感じに出来るが、RS!data のように ! を使わない。
カラム(1)見たいにやるんじゃなかったかな
rs.Field(i)
945 :
941 :2006/10/16(月) 14:39:35
>>937 APIのTextOutWを使えば……。
問題はフォントがあるかどうかだが、Arialは●○の両方を一応持っている。
他の欧文フォントも●は持っていることが多いような感じがする。
>>946 そのフォントの話だとなぜ気づかなかった・・・?
949 :
937 :2006/10/17(火) 14:37:45
>>938 英文フォントで代替出来る文字がないか検討してみます。
>>939 ●(ベタ塗りの丸)が欲しかったんで
o/xではちと代替効かないんですよ。
>>946 TextOutWは知らなかったので調査してみます。
>>948 スマソ TextBoxなんでEllipseで描画したくないw
それを書いておかなかったのが悪かったですね。
申し訳ない。
950 :
デフォルトの名無しさん :2006/10/17(火) 21:18:35
初めてご質問致します。 VB6.0でFTPを使って画像をサーバーにアップロードするソフトを作って 普通に使っていたのですが、ある日実行させると突然 「問題が発生したため・・・」という画面が表示され、ソフトが 起動できなくなりました。 OSはXP SP2です。これまでもXP SP2で普通に起動できていたのですが、 突然ソフトが起動できなくなりました。新しいソフトなどのインストール は一切行っておりませんが、XPにある更新を最近してから動作できなく なりました。 自動的にインストールされる更新によって何かFTPの制約が増えたの でしょうか。
FTPの会話にゃ何つことるん?
952 :
デフォルトの名無しさん :2006/10/17(火) 21:37:45
>FTPの会話にゃ何つことるん? Inetコントロールを使用しております。 With Inet1 'URLを指定 .URL = ftpServerName .Execute , "CD " & sCookieVal & "/" 'ビジーの間待つ Do While Inet1.StillExecuting = True DoEvents Loop 'ファイルのコピー .Execute , "PUT " & フルパス & "\" & "temp.jpg " & FtpFilename 'ビジーの間待つ Do While Inet1.StillExecuting = True DoEvents Loop End With Inet1.Execute , "QUIT" このような感じです。 宜しくお願いします。
んじゃぁ、とりあえずIDE上でステップ実行してみてょ
954 :
デフォルトの名無しさん :2006/10/17(火) 22:27:08
>んじゃぁ、とりあえずIDE上でステップ実行してみてょ お世話になります。 ステップ実行させた上ではとくにエラーも無く動作するのですが、exeにして exeをクリックして起動した場合に、kernel32.dll,ntdll.dllに関連した エラーとして「問題が発生したため・・・」という画面が表示され、ソフトが 起動できなくなってしまいます。 デバッグして見ているのですが、IDE上で実行できてexeにしたとたん実行 できなくなるという現象がよくわかりません・・・。 宜しくお願い致します。
>>954 >>IDE上で実行できてexeにしたとたん実行できなくなる
良くある。
IDE上でインタプリタで実行するのと、ネィテブコードで実行するのは全然違うからな。
そういう時はネィテブデバッガで追いかける。
しかし今回はダメかもね デバッグ情報の残ってない部分で逝っちゃってるように見えるから まぁ、StillExecutingをポーリングするんじゃなくて、ちゃんとStateChangeイベントで処理してやってみてよ Inetコントロールはとことん根性が曲がってるから、普段はお勧めしないんだけどね・・・ つ p-codeっつー手もあるにゃある
957 :
デフォルトの名無しさん :2006/10/18(水) 00:14:31
>しかし今回はダメかもね >デバッグ情報の残ってない部分で逝っちゃってるように見えるから >まぁ、StillExecutingをポーリングするんじゃなくて、ちゃんとStateChangeイベントで処理してやってみてよ >Inetコントロールはとことん根性が曲がってるから、普段はお勧めしないんだけどね・・・ > >つ p-codeっつー手もあるにゃある 956さん、ありがとうございます! 助かりました。まだエラーは直らないのですが、 1つ1つコメントアウトしながらexe化してログ取りながらどこでエラーが 発生しているか確認してやっています。多分Inetのputタイミングと次のInetの コマンドタイミングがタイマーイベントをとってやっていますので、どこかでかちあって しまっているのかもしれません。 StateChangeにも変更してみます。
958 :
デフォルトの名無しさん :2006/10/18(水) 12:00:55
質問があります。 .basファイルや.clsファイルをプロジェクトエクスプローラにD&Dしたり、 「追加>ファイルの追加」から追加すると、現在編集中のプロジェクトに既存のモジュールを追加出来ますが、 この際に任意の参照設定を自動で追加するにはどうすれば良いのでしょうか? 今は参照設定を含むモジュールの追加は、プロジェクトを閉じた状態で、 .vbpを直接書き換えるツールを作ることで対応していますが、出来ればVBE上でやりたいので。 もちろん「プロジェクト>参照設定」から手動で行う方法は知っていますが、追加するモジュール側で、 追加する参照設定を定義して、モジュールの追加と同時に自動で参照設定が行われるようにしたいです。 バージョンは6.0Proです。
IDEの機能にないことをIDEにやらせようってそういうの「横車を押す」っていうんだよね。 もうよくVB6覚えてないけど、そういう場合はコンパイル済みのコンポーネントに しとけばいいんでないかい?
あ、でもそのコンポーネントを参照設定しないといけないんだよなw
962 :
デフォルトの名無しさん :2006/10/18(水) 18:22:10
質問させてください。 PC:pen4 2.8GHz + メモリ1G OS:winXP VB:ver6 にて計測ソフトをくんでいます。 計測ソフトの通信には CONTECのGPIBおよびRS232Cをつかっています。 いま計測器との通信を10s間隔でおこなっていると、 タスクモニタで10s間隔にCPU負荷が100%に到達しています。 プログラムのどの部分が一番おおきなボトルネックかを判断するための 方法はなにかないでしょうか?
ちゃんと動いてるんならいいじゃん
そこは「お前さんの能力」って突っ込んで欲しかったw
せんせー、しつもんさせてください。 Integer型の配列、Array()があります。 このArrayの要素が、[1][2][3][2][4][5][5][5][4]…と入っていた際に、 [1][2][3][4][5]…と、被ってるキーを除いてユニークなキーのみ残したいと考えています。 この処理を関数一発で行うことは可能でしょうか。 全探索などの探索アルゴリズムを使用すれば可能だとは思いますが、 如何せん、何万件ものデータ処理を行う為、(時間のかかる)ループを使用する処理は なるべく避けたいと考えております。 非常に眠い為、日本語が変でしたらすみません。 以上宜しくお願いいたします。
関数一発で可能かどうかは関数のリファレンスを見ればわかるでしょ。 こういう当たり前のことをしようともしない人間はPG向かないよ。
リファレンスは諸事情により現在見ることが出来ません。
Google先生にも聞いてみましたが(キーワード : VB6 配列 ユニーク GroupBy など使用)、
それらしき文書が見つかりませんでした。
明日出社してからもう少し自分で考えてみます。
有難うございました。
>>965 は解決とさせていただきます。
>>965 > 如何せん、何万件ものデータ処理を行う為、(時間のかかる)ループを使用する処理は
その程度の処理、たった数万件で一体どれだけ時間が掛かるというのか。
実際にベタな処理で実行してみろよ。
メモリで比較するだけなんだから一瞬だろが。
本当にこういう「時間が掛かるから別の方法で」って言う奴が多いな。
>>965 よし、ためしに
・あります
・避けられません
・視ね
50000要素のLong型配列で、値を0〜9の乱数で作ってループで重複除外処理してみた。 結果、処理時間は0.015625秒だった。そもそもプログラミングにおいて関数ってのは 探す物ではなく作る物なんだからあとはこれを関数化すれば問題なし。 つーか普通にやって時間の掛かる処理は、組込関数になったって時間がかかるものだよ。 重複検査だのソートだのと、ループ回さなきゃならないものは、例え組込の関数になろうと コントロールのメソッドになろうと、内部でループ回しているので、ループで処理してるか否かではなく ループが見えるか否かの違いだけ。まあ内部処理の方がちょっとは速いけど、そこまで拘るなら 今後も速度の不満は尽きないだろうから、言語を替えることをお奨めする。
必死で叩く奴って自分も痛々しいことに気づいてなさげだね
まあおれも966なんで偉そうな事言えんがw
ところで
>>965 みたいなのって一般にどうやるんだろうか?
既出キーをソートしならがリストに追加していけば、既出かどうかの検査は
二分法で素早くできそうだが。
はいはい乙乙 質問する人は番号くらい書いてね
こういうものこそハッシュの出番では? CreateObject("Scripting.Dictionary")
>>937 o/xなどの和の感覚は洋ではx/-になったりして合わないから、y/nとかにして注記を付けたほうがよいのでは。
975 :
デフォルトの名無しさん :2006/10/21(土) 08:51:23
簡単なブロック崩しをつくりたいのですが何から初めていいのか分かりません。どなたか、詳しく教えてください。
>>975 まずはとことん悩んで、質問文を書けるレベルまで自分を持って池
>>975 まず画像や文字を表示してアニメできるようにする。
次にキー入力によって自機などを自由に動かせるようにする。
最後に当たり判定などゲーム内状態を変化させられるようにする。
こんなとこかな。
別の言い方をすれば出力→入力→自律動作の順に学習してみるといい。
(;´д`) 俺のメンツをよくも・・・
979 :
デフォルトの名無しさん :2006/10/21(土) 12:21:02
このスレはEXCEL VBAの質問もアリでしょうか?
>>981 CryptAPI呼ぶだけだろうが。
移植する必要なんて無い。
cryptAPIってOSに標準で入ってますか?
VB6でスペースボタンを連打するソフトを作ろうと思うのですが、 キーボードの特定のキーを押すコードを教えてもらえませんか? ネットで検索しても分かりませんでした。
>>984 色々ツッコみたいけど、おいといて
Windows上のキーでのスペースキー(×スペースボタン)に対応するイベントなら、
keybd_ev()とかSendInput()とか、VB6に閉じるならSendKeysとか(バグ有注意)
986 :
デフォルトの名無しさん :2006/10/22(日) 10:33:44
>>984 んなもんformのプロパティのKeypreviewをtrueにして
form_KeyPress()で拾えばよくね?
987 :
デフォルトの名無しさん :2006/10/22(日) 10:42:55
Private Sub Form_Load() Form1.KeyPreview = True End Sub Private Sub Form_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case vbKeySpace MsgBox "Spaceキーが押された" Case vbKeyReturn MsgBox "Returnキーが押された" Case Else End Select End Sub
>>986 ちょwwwwwwwwww
目的が違ってるwwww
思うに、
>>984 は
『高橋名人をメールで召還するコード書け』
みたいな突っ込みを期待してたんだと思う。
984です。
>>985-989 どうもありがとうございました。
SendInput()でいけました。
次スレ立てろやカス共
993 :
デフォルトの名無しさん :2006/10/22(日) 17:27:37
>>962 debug.print 文で
たとえば
debug.print "Time:" & Time$
を関数ごとに入れてどこが遅いか調べます。
計測系では
Time$ をAPI のmilisesondS あたりに置き換えると
よいでしょう。
996 :
デフォルトの名無しさん :2006/10/23(月) 10:23:19
ε= (゚∀゚*) (無修正)ノヽノ | < <
997 :
デフォルトの名無しさん :2006/10/23(月) 10:24:06
ε= (゚∀゚*) (無修正)女子高生エロ動画.avi ノヽノ | < <
998 :
デフォルトの名無しさん :2006/10/23(月) 10:25:12
( ゚д゚ ) (無修正)女子高生エロ動画.avi .exeノヽノ | < <
999 :
デフォルトの名無しさん :2006/10/23(月) 10:25:51
日テレはルパンにひどいことをしたよね(´・ω・`)
1000 :
デフォルトの名無しさん :2006/10/23(月) 10:26:37
_ _ NINTEND□|[[¨ヾ(⊂ .■|L ノ'r⊃) _ -‐――-  ̄  ̄ , ´: : : : : : : : : : : : : :.`丶 /: : : : : : : : : : : : : : : : : : : : \ /: :/: : : : : : : : : : : : : : : : : ,′ /: /.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.: /.:.:.:.:.: ', l /.:. ,'.:.:.l .:.:.:./ .:.:.:/.:.:.:.:/.:.:.:./ヽ :!.:.:.:.:i |.:.l.:.:.:l.:.:.:|.:.:.:/.:.:.:_/_, :.〃.:.:.:/ }:!.:.:.:.:| |.:.l.:.:.jl.:.:.:i.:.:7丁.:/.:.//.:.:/ \/.:|.:.:.j.:| |.:.|.:./l:.:.:.:i.: j斗=< // /ヽl.:.:/.:l |.:.|.:{!.|.:.:.: l"{r'_:::::j /テ< /.:/.:/ j.:.l.:ヽ|.:.:.:.:! xxx ヾ_:/ '/.:イ/ ノl.:.|.:.:.:|.:.:.:.:| , xxx. /.:. i i.:.l.:.:.:j.:.:.:. lヽ、 rっ イ .:.:.: | ',.:ヽ.:.ヘ.:.:.:.| > 、 __ イ .:.! :.:.l.:.| \{\{\:l |∧:./.:.:/|.:.:/j/ /  ̄ ¨丶ヾ`ーs一'´__ ¨ ´ ̄`ヽ / ` 〃 '´ ヽ ,′ / l! ; | j |D|! ! ! / |S|!. 、/ | l ! :2:. └ ' .:c:: ! | l//" " } ! ,ィー─--- 、//l ,′ ! 〃 ,〉ー‐ァ'´/ l | イ .' . /Y/ 〃勺 l | l i {__,{ヽ/ ,/ │ ! | |
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。