VBプログラマ質問スレ(6.0以前) Part31
925 :
デフォルトの名無しさん:04/02/19 22:09
指定したURLのHTMLソースを取得しようと思ったのですがうまくいきません。
winsockを使ってTCP接続後、HTTPにのっとってソースを取得しました。
しかし、Yahooなどだと日本語が文字化け?していまいました。
どうしたらいいのか分からず、strconv使ったりしましたがダメでした。
どなたか教えて下さい。
>>925 文字コードの基本から勉強しなさい。
それがわからないようならIEのコンポーネントで我慢すべし。
>>923 面倒だからフォームっぽい自前のコントロールを作ったほうが早いんじゃないの。
そりゃ言い過ぎか?
とにかくそんな標準とは違うインターフェイスはお勧めできない。
>>913 それが簡単にできたらそこら中のプログラムがそんなことやって収拾つかなくなる訳よ。
だから止めとき。
>>907 WinsockはWindowsに移植されたソケットライブラリの名前。
Winsockをラップして使いやすくしたのがWinsockコントロール。
混同していると訳分からなくなるぞ。
927 :
デフォルトの名無しさん:04/02/19 22:50
>>926 すばやいレス感謝
”やろうとすれば”自分でコントロールを配置することも可能でしょうね。
とりあえず、MDIみたいにVBで用意されてるかどうか、という風に質問の
言葉を補うといいのでしょうか?
”VBで作った”といわれるソフトにそういうのがあったので出来ると
思ったのですが、VBの参考書のどこを探してもMDIしか見当たらない。
不思議に思って聞いてみたわけです。
”標準的な機能の中では無い”ということなのですね。
>>928 できなくはないだろうけど、標準と離れたことをしようとするならVBの優しさが仇になる。
そこまでする理由がある?
標準と離れてるかどうか聞きたかったんだろ
>>928 標準的なやり方ではできないと思うよ。
「変わったことをやるやり方の中では標準的なやり方」はあるかも知れんけど、
VBで普通にやったら無理
>929-931
了解です。
サンクス湖
933 :
デフォルトの名無しさん:04/02/20 02:26
教えてちょ。
VB6.0、DBがPostgreSQL7.4&ODBCで開発しております。
んで、VBからPostgreSQLのbytea型に画像データをインサートしたいんです。
JAVAやらCやらでは、出来るのだが、VBだときついですかね。
ちなみに、ORACLE+VB+ODBCなら行けました。
抽象的で申し訳ないのだが、同じような開発をした人がいたら
教えていただきたい。
均等割付でお願いします。
うぉ、誤爆った。
┗0=============0┛
\===========[_|_|_|_|_|_|_|_|_|_|_|_|_|_]===========/
/三三三三三三三三三三三三三三三三三三三三\
0 │ |∞∞∞ |::|∞∞田田田田田田∞∞|::|∞∞∞ | ::| 0
...[二] | ::| |::|┏━━━━━━━━┓|::| | ::l [二]
........|□|.│ |┌┬┐ |::|┃ / \ ┃|::| ┌┬┐| ::|. |□|
)三(...| ::|├┼┤ |::|┃/ \┃|::| ├┼┤| ::|`)三(´
| ::| | ::|└┴┘ |::|┃ / ̄ ̄ ̄ ̄ ̄\ ┃|::| └┴┘| ::| | ::|
| ::| | ::|┌┬┐ |::|┃彳 人______ ノ.┃|::| ┌┬┐| ::| | ::|
| ::| | ::|├┼┤ |::|┃入丿ー◎-◎ーヽミ.┃|::| ├┼┤| ::| | ::|
|: :| | ::|└┴┘ |::|┃ r . (_ _) )┃|::| └┴┘| ::| | ::|
| ::| | ::|┌┬┐ |::|┃ ( ∴.ノ▽(∴ ノ ┃|::| ┌┬┐| ::| | ::|
| ::| | ::|├┼┤ |::|┃⌒\_____ノ⌒┃|::| ├┼┤| ::| | ::|
| ::| | ::|└┴┘ |::|┃ ┗━┛ .┃|::| └┴┘| ::| | ::|
| ::| | ::| ... |::|┃ . .
>>1-1000 .┃|::| | ::| | ::|
.....┏━━━━━┓| .|┃ ......┃|::|┏━━━━━┓
.....┣┳┳┳┳┳┫|: |┗━━━━━━━━┛|::|┣┳┳┳┳┳┫
○ ● ∫∬∫∬ ● ○
○○ ●● iiiii iii ii iiii ●● ○○
[ ̄ ̄] [ ̄ ̄] ( ̄ ̄ ̄ ̄ ̄) [ ̄ ̄] [ ̄ ̄]
|_○_| .|_○_| |_____| |_○_| .|_○_|
∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧
( )( )(, )(,, ) ,,)( )( )(, )( ゚Д゚ )
937 :
デフォルトの名無しさん:04/02/20 14:05
教えて下さい。
VB6.0 SP5 でアプリケーションを開発しデストリビューションウィザードで
パッケージ化しました。
Windows 98,Me,2000 ではセットアップ、実行とも正常でしたが Xp では
セットアップ時に "Error Path or File Not Found" が表示されてセットアップ
出来ません。ちなみに、この現象はセットアップウィザードでのアプリケーション
グループの登録の画面で 継続ボタンを押下した後に起こります。
Xp は対応していないのでしょうか?
開発マシンは Xp です。このマシン上ではもちろんセットアップも実行も出来ます。
938 :
デフォルトの名無しさん:04/02/20 16:23
Windows APIの"GetMessage"を使いたいのですが
Msg構造体はTypeステートメントでどう定義すればよいのでしょうか。
どなたか教えて下さい。
>>939 Type POINTAPI
x As Long
y As Long
End Type
Type MSG
hwnd As Long
message As Long
wParam As Long
lParam As Long
time As Long
pt As POINTAPI
End Type
>>940 ありがとうございます。
これからやってみます。
>>923 こういうイメージかな?
Form1は普通のフォーム、Form2はメニューを持ったフォームで。
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Sub Form_Load()
Load Form2
SetParent Form2.hWnd, Me.hWnd
Form2.Show
End Sub
まぁ、こんなことやってるアプリは絶対つかわないけどw
WebBrowserコントロールを使ってCD内のビューアを作っています。
これで作ったソフトをCDに一緒に焼いて、配布しようと思っているの
ですが
このプログラムと同じディレクトリにあるindex.htmlをスタートページに
するためにはどのようにしたらよいでしょうか?
MDIアプリなため、ブラウザは子Windowの1つなのですが
Private Sub LoadNewDoc()
Dim frmB As New frmBrowser
frmB.StartingAddress = "index.html"
frmB.Show
End Sub
といった状態では取得できませんでした。
APIでビットマップのハンドル取得する方法はありますか?
すみません。
GetCurrentDir()でカレントディレクトリを取得したものに + "index.html"
で成功しマスタ。
vb なら App.Path で済むと思うが。
App.Pathはルートディレクトリだと
C:\を返すが、それ以外だとC:\hogeと\が付かない(反対かも)
と言う問題があったな。
GetCurentDirは知らんが確認したほうがいいぞ
>>947 それはOS上の"仕様"。Unixとかも一緒。
>>945 カレントディレクトリとアプリのあるディレクトリは違うぞ。
プログラム実行中にカレントディレクトリは変えることができる。
アプリのディレクトリならApp.Pathを使うように。
>>950 それは、CDに一緒に焼いて、なおかつ不特定多数の人間に配布しても
きちんと動作しますよね?
でしたら、ちょっとやってみます。thanksです
>>948 サンクス嘘教えるところだった。
自分じゃどっちも同じになるように加工して使うから忘れちゃう
>>949 そうなんだ。何でだろう?
>>952 PGの気分でしょ。
C:じゃそっけないし\もつけちゃえ、みたいな。
ヴァカでつか?
ルートは \ が無いと場所が特定できんだろw
956 :
デフォルトの名無しさん:04/02/22 14:38
Windows2000で作成し、知り合いに動かしてもらったところ実行時エラー430が出ました。
知り合いのOSはXPです。インストーラで必要なものは入れました。
「クラスはオートメーションをサポートしていません。 」とのことですが
依存する何かのバージョンが古いからダメなんでしょうか?
下のような機能を使ってます。
DAOによるデータベース接続
(DAO3.6 Object Library)
(Data Formatting Object Library)
VoiceTextコントロール
FlexGridコントロール、
コモンダイアログコントロール、
Winsockコントロール
Tabbedダイアログコントロール,
Common Controls 6.0(SP4)
Common Control-2 6.0
ディストリビューションでインストーラ作成時
以下のものが依存情報が最新ではありませんと出ました。
comdlg32.ocx , msComctl.ocx , MSWINSCK.OCX
古い情報のままで進めるを選択しました。
こんなんでは参考になりませんでしょうか?
どなたかこれが原因てわかる方お願いします。
各ドライブにルートディレクトリがあって…
んー、良くわかんね。windowsのファイルシステムでググってきまつ。_| ̄|○
>>942 ありがとうございます。
思わず、「出来た!すげぇ!神降臨!」とか
口走ってしまいますた。
また壁にぶち当たったら質問させてください。
この間は非常に助かりました。CDブラウザの開発はものすごく弾みが
付いております。
960 :
デフォルトの名無しさん:04/02/22 19:11
教えてください。
[参照設定]のところで、
ADO(ActiveX Data Object 2.7)が参照不可になってしまっている場合、
どうすれば参照可になるのでしょうか?
関係ないけどさ、アドビのストリームラインが
>>942みたいな感じだったな。
962 :
デフォルトの名無しさん:04/02/22 20:22
java2sdkをインストールしたら、あるHPのネットゲームのページ開くのがものすごい遅くなってさ
コーヒマークみたいなんでてさ、文字もちょっとかわったし、あまりに遅いんで、
javaruntimeとjavaplug-inを削除したら、ふつうに開けるようになったんだけどさ
この二つはとくにいらないのか?学校の先生にきくとさ、runttimeはいるはずなんだけど
とかいって、あやふやにされたんだけど、ちなみにこの二つを削除しても、
ちゃんと、コンパイルもとうるし、コンソール画面で結果も表示されます。
この二つはなんなんですか?
削除してしまってよかったんでしょうかね?
ほかのすれでかいたんですけど、答えかえってこなくてよろしくおねがいします
>>962 インターネットオプションをいじればよかったのに・・・
>960
ADO2.7入ってないんじゃ?
965 :
デフォルトの名無しさん:04/02/23 00:28
漠然とした質問ですみませんが、
システムエラーの原因の探し方ってありますか?
Microsoftに送信しても仕方が無いし。
>>645 VBで自分で作ったプログラムなら、エラーが起きるところに
開発環境を入れて試せば分かることが多い
>>965 コンパイルするときにデバッグ情報吐き出して、VCでデバッグする。
コールスタック見ることが出来るから、どこでエラーが発生したか
知ることができる。
VBでも見ること出来るけど、システムエラーになったらVBごと
落ちるからね。
>>968 VB6ならプロジェクトのプロパティかなんかからコンパイルの仕方を設定して、
ネイティブコンパイルをONにし、デバック情報を出力とかそんな感じのところに
チェックを入れる。
>>968 プロジェクトの設定のところで、コンパイルのオプションにシンボリックデバッグ情報を作成
というチェックがあるから、それにチェックを入れてからコンパイルする。
出来上がったEXEをVCで開いて、デバッグ実行し、エラーが起きる操作を行う。
システムエラーが発生すると、問題のある個所でブレイクするので、一時停止したまま
VCでのデバッグ操作を行うことができるようになる。
そこで、メニューの表示>デバッグウィンドウ>コールスタックで、関数の呼び出し履歴を
確認する。
どの関数からの呼び出しが悪いのか分かれば、ある程度はデバッグの助けになると思う。
VBでデバッグできないエラーっつーと、NULLポインタへのアクセス、初期化されていない
ポインタへのアクセス、メモリの領域外参照なんかが主な原因かな。
VBでAPI使っている個所や、自分で作ったDLLが原因の場合が多い。
でもさ、VBでやってる場合、
>>971の言うとおりのAPIとかDLL以外だとお手上げだよな。
973 :
デフォルトの名無しさん:04/02/23 15:28
ActiveX EXEのプロジェクトで、スタートモードを独立型、
Sub Mainから起動するようにしています。
Sub Mainでは、フォームAを起動し、フォームAからフォームBを Show しています。
また、Publicなクラスを一つ持っており、外部からそのクラスのメソッドで
フォームBを Show するようにしています。
さて、クラスからフォームBを呼び出した時に、フォームAを表示したくないのですが、
今、どうしても Sub Main も動作してしまい、AもBも表示されてしまいます。
EXE単体で起動されたのか? それともクラスのインスタンスが生成されたせいで
Sub Main が動作したのか判断できないために、フォームAの表示を抑制できないのです。
この判断はどのように行えばいいのでしょうか。
なお、EXEとして実行された場合はコマンドライン引数をつけて区別することも
考えましたが、もっとスマートな方法がないかと考えている次第です。
また、実行ファイルを2つには分けたくありません。
自己解決。App.StartModeで判別できました。スレ汚しスマソ。