トップページ⇒tech
1001コメント301KB

VBプログラマ質問スレ(6.0以前) Part46

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/02/03(金) 22:58:33
VisuarlStudio
0756デフォルトの名無しさん2006/02/19(日) 12:48:19
>>755
VBでは勿論、APIでも非表示には出来ない。
もしやるなら、タイトルバーなしのウィンドの上部を擬似的にタイトルバーにして、
[_][×]とかも全部自分で描画して、其処のマウスイベントを全部拾ってごにょごにょ
しないと。
07577482006/02/19(日) 14:38:44
>> 749、750、751、752、753、754

無事、解決できました。
日時分秒までの比較を行いたかったので

If DateDiff("d", objFile.DateLastModified, "1999/01/01") > 0 Then

で "s"を指定しました。
コードまで示して頂いて
本当にありがとうございました。
0758デフォルトの名無しさん2006/02/19(日) 14:53:45
>>757
良かったね。
今後は >>751 のせいで、二度とコードは貼られないから。
0759デフォルトの名無しさん2006/02/19(日) 16:13:57
>>724
落としてみたけど原因わかんないな
exitの解釈が違うんじゃない
0760デフォルトの名無しさん2006/02/19(日) 19:51:02
>>724
同じルーチンを2度通るからおかしくなってるんじゃないの
0761デフォルトの名無しさん2006/02/19(日) 21:16:46
みんな優しいな。
0762デフォルトの名無しさん2006/02/19(日) 22:04:04
初歩的な質問ですみません。

DataTableのSelectメソッドで、抽出条件を記述して
DataRow[]を抽出できたのですが、
抽出したDataRowを新規のDataTableに格納したいのですが、
なかなかうまくいきませんでした。

試した方法は、
新規のDataTableのインスタンスを作成してdataTable.rows.addメソッドで
抽出したrowを追加する方法は間違っているのでしょうか。
0763デフォルトの名無しさん2006/02/19(日) 22:46:07
>>762
×やってる事の文章
○コピーペーストでそのまますぐ実行出来る、現象が再現する最小限コードの提示
0764デフォルトの名無しさん2006/02/20(月) 01:34:49
>>743
動作が速くなるとかそういうことでしょうか?
0765デフォルトの名無しさん2006/02/20(月) 03:43:04
>>764
速度は殆ど変わらないんじゃないかな。
MSXMLが存在しなければ全ての機能が動かないってんなら事前バインディングでいいと思う。
プラグインみたいに、あっても無くてもどっちでも動くようにするんならCreateObject
使うしかねーけど。
仕事じゃないんなら事前バインディングで適当に楽したいね。
0766デフォルトの名無しさん2006/02/20(月) 09:01:51
>>764
ちょっと前にそれに関する議論があった様な。
New だと色々不具合が出るよ。
0767デフォルトの名無しさん2006/02/20(月) 12:25:30
なんか勘違いしてる人が多いけど、アーリーバインディング・レイトバインディングってのは
(あえて突っ込まれそうな言い方をするけど)参照変数にナニを使うかの問題であって、
インスタンスをどうやって生成するか、というのとは全く別問題だよ。
0768デフォルトの名無しさん2006/02/20(月) 12:40:37
MSXML2.XMLHTTPつーのは
つかそのProgIDだとせっかくMSXML4.0インスコしてあっても3.0のが適用されちゃうよ
0769デフォルトの名無しさん2006/02/20(月) 12:47:04
>>762
別のデータテーブルのRowのインスタンスを追加は出来ないんで無かった?
新規のデータテーブルに新規のRowを追加した後、それに抽出したRowのデータを流し込む様なコードにすると動くと思うよ
0770デフォルトの名無しさん2006/02/20(月) 12:54:34
>>767
kwsk
0771デフォルトの名無しさん2006/02/20(月) 13:01:04
いや、>>767が間違ってる。
変数の生成メカニズムが違ってくるんだが。

彼の主張が正しいとするなら、レイトバインドによる複数バージョンの互換が説明できないよ。
0772デフォルトの名無しさん2006/02/20(月) 19:48:58
間違ってないってw
つーかそんなもんちょっと調べりゃわかりそうなもんだが。
0773デフォルトの名無しさん2006/02/20(月) 20:28:58
Version:VB6.0
WindowsXP SP2

目的
 特殊なpngファイルを読込み、標準pngに変換する。

問題点
 IHDR、PLTE、IDAT、IEND等の各チャンクと呼ばれるブロック単位から構成されてるとこまでは理解できたのですが
 例えば、IHDRチャンクは実際どういう形式でデータ(色情報等)を保持しているのかといったpngの仕様を知りたいの。

質問
 pngファイルの仕様を日本語訳にしてるサイトってありませんでしょうか。
 または、pngファイルを扱ったサンプルソースを載せてるサイト、参考書でもおっけなのですが。。
 せちからい話、当方、英語がまったくできないため、W3Cのpng仕様サイトを見てもさっぱりなのです。。
 参考サイト(日本語サイト)、参考書などあれば教えてください。よろしくお願いします。
0774デフォルトの名無しさん2006/02/20(月) 20:35:25
>>773
VB関係ないじゃん。
で、Irfanview32 とか LEADTOOLS とかでやった方がいいんじゃないの?
出来るかどうかは知らないが。
0775デフォルトの名無しさん2006/02/20(月) 20:42:36
>>773
東京書籍の「NEW HORIZON」とかが良いんじゃない?
0776デフォルトの名無しさん2006/02/20(月) 20:42:57
>>774
VBで表示しないといけないんです。。
標準pngはフリーのDLLを使用してImageコントロールに表示できてるんで、
あとは標準pngへの変換だけなのです。
また、特殊pngは独自仕様なので、標準pngの仕様をまず知りたいとこなんです。
0777デフォルトの名無しさん2006/02/20(月) 20:44:17
>>775
ありがとうございます!
さっそく調べてみます!
0778デフォルトの名無しさん2006/02/20(月) 20:47:44
>>775
英語の勉強からってことですね。。
0779デフォルトの名無しさん2006/02/20(月) 20:56:20
>>776
LEADTOOLS を調べもせず書いてるでしょう?
0780デフォルトの名無しさん2006/02/20(月) 21:02:44
>>779
グレープシティーのソフトですよね。
LeadToolはバージョン12.0Jを実際に一部機能で使ってるんです。
ただ、特殊なpngファイルが独自仕様のため、外部ツールに頼ることができないのです。
0781繁蔵2006/02/20(月) 21:04:06
失礼します。すいません、初めて2CHやります。お邪魔してもいいですか?
0782デフォルトの名無しさん2006/02/20(月) 21:05:51
>>763
>>769
ご返答ありがとうございました。
Rowを抽出する前のDataTableのCloneメソッドで
テーブル構造が同じDataTableを作成して、このテーブルの
ImportRowメソッドでRowを取り込むことで解決できました。
0783デフォルトの名無しさん2006/02/20(月) 21:15:15
>>780
その特殊なPNGを勝手に作った所で、その非標準のPNGを
表示する方法とか標準に変換する方法を提供してないの?
普通はするけど。
0784デフォルトの名無しさん2006/02/20(月) 21:19:42
>>783
特殊pngを表示する方法はわかってるのですが、
標準pngに変換する方法はわからないんです。
0785デフォルトの名無しさん2006/02/20(月) 21:26:11
>>784
特殊PNGを作った会社(?)に聞けば。
または、表示出来るならクリップボードに入れてペーストすりゃいいじゃん。
0786デフォルトの名無しさん2006/02/20(月) 21:29:31
>>785
なるほど、クリップボードは思いつきませんでした。
ちょいと試してみます。
どうもありがとうです
0787デフォルトの名無しさん2006/02/20(月) 22:03:20
昨日オナ禁したから今日たった今現在ナウ、解禁しようと思うんですけど、おかずくdさい。
0788デフォルトの名無しさん2006/02/20(月) 22:13:56
>>787
つMSDN
0789デフォルトの名無しさん2006/02/21(火) 02:48:00
>788
漏れはInStrRevあたりグッとクるなぁ。
だって「後から検索」だぜ。タマラン。
0790デフォルトの名無しさん2006/02/21(火) 16:13:56
CPU温度を取得する以下のVBScriptなんですが,
実行してもいつも同じ値しか得られず正しい温度でもありません.
CPU温度をリアルタイムにモニタする方法はないでしょうか?

Function ACPI_CPUTemp()
dim r, lu
set PFU = GetObject("winmgmts:{impersonationLevel=impersonate}!root\wmi").ExecQuery _
("SELECT CurrentTemperature FROM MSAcpi_ThermalZoneTemperature")
for each U in PFU
r = r&U.CurrentTemperature
Next
ACPI_CPUTemp = (r - 2732) / 10
set PFU=Nothing
End Function
0791デフォルトの名無しさん2006/02/21(火) 17:21:54
>>790
ttp://www2.noritz.co.jp/anchor/ashp/netmon/samples/wmi_hard.html
0792デフォルトの名無しさん2006/02/21(火) 18:09:11
現在フォームなしのプログラムを作成しています。
そこで質問なのですが、自分自身のウィンドウハンドルを取得するにはどうすればよいのでしょうか?

フォームがある場合はMe.hWndで求めればよいと思うのですが、今回はフォームがありません。
下記の2通りの方法を考えましたが、もっとスマートな方法はありませんか?
・EnumWindows+GetWindowThreadProcessIdの返り値をApp.ThreadIDプロパティと比較する
・EnumWindows+GetWindowTextの第2引数とApp.Titleプロパティと比較する
0793デフォルトの名無しさん2006/02/21(火) 18:14:48
>>792
ウィンドを作成してないんだから hWnd はないけど。
Sub Main で Load Form1 とかしてその hWnd を使うとか。
0794デフォルトの名無しさん2006/02/21(火) 18:41:42
HP潰す方法教えてください
0795デフォルトの名無しさん2006/02/21(火) 18:53:44
>>794
つ田代砲
0796あぼーんNGNG
あぼーん
0797デフォルトの名無しさん2006/02/21(火) 22:02:46
>>791
これは値を参照するだけにとどまりますか?
0798デフォルトの名無しさん2006/02/21(火) 22:09:00
>>796
こんなのがあぼーん?
単にURL貼ってあっただけだと思ったけど。

ずいぶんおかしな奴が削除人やってるんだな。
なんか2ch用語でいう「プロ市民」的な病理を感じるよ。
0799デフォルトの名無しさん2006/02/21(火) 22:57:44
>>796
何故?
0800デフォルトの名無しさん2006/02/22(水) 00:12:48
削除議論板にでも行ってこい
0801デフォルトの名無しさん2006/02/22(水) 01:08:10
とあるアプリの検索ボックスに文字をセットしたいのですが、実現する方法はありますか?
0802デフォルトの名無しさん2006/02/22(水) 01:10:14
>>801
ある
08038012006/02/22(水) 01:13:13
>>802
えーと、具体的にお願いします。
0804デフォルトの名無しさん2006/02/22(水) 01:16:10
>>803
"アプリの検索ボックス"とやらの具体的な例を出したらな

何も分からないのなら、
SendKey()とかWinAPIのSendInput()とかkeybd_event()とか使ったり、
ウィンドウメッセージ送って(運良く)反応してくれるかもしれない。
とだけ言える
0805デフォルトの名無しさん2006/02/22(水) 01:33:07
>>804
調べてみます。ありがとうございました。
0806デフォルトの名無しさん2006/02/22(水) 09:06:50
>>791
そこのWin32_TemperatureProbeを試してみましたが,
For Eachの中が一度も実行されなくて,
何も表示されませんでした.
他のサンプルなら成功するのですが
温度が読めないのはどこに問題があるのでしょうか?
0807デフォルトの名無しさん2006/02/22(水) 13:05:00
>>806
ドライバが入ってないか、そもそも温度センサーが付いていない
0808デフォルトの名無しさん2006/02/22(水) 13:15:49
>>807
MobileMeterというソフトでは
(たぶん)正しい温度が読めているので
そういう問題ではないと思います.
逆にどのような環境では上のスクリプトで
リアルタイムに温度をモニタできるのでしょうか?
0809デフォルトの名無しさん2006/02/22(水) 13:27:17
>>808
っ [S.M.A.R.T機能(対応されているか確認しる)]

つか、製品わかってるなら参照しているDLLをDependencyWalkerなんかで調べればいいのでは?
0810デフォルトの名無しさん2006/02/22(水) 13:47:54
>>808
そのソフトはACPIとかのAPIを直接呼んでるんじゃないの?
0811デフォルトの名無しさん2006/02/22(水) 14:19:14
>>809
調べる前に確認したいのですが,
SMARTはHDDだけでなくCPU温度にも関係あるのでしょうか?

依存しているDLLは以下の通りです.
いずれも基本的なDLLばかりに見えますが
POWRPROF.dllあたりにそういう関数があるのでしょうか?

$ objdump -x mobmeter.exe | grep "DLL Name"
DLL Name: KERNEL32.DLL
DLL Name: ADVAPI32.dll
DLL Name: COMCTL32.dll
DLL Name: GDI32.dll
DLL Name: MSVCRT.dll
DLL Name: POWRPROF.dll
DLL Name: SETUPAPI.dll
DLL Name: SHELL32.dll
DLL Name: USER32.dll

>>810
MobileMeterはACPIを使っているようですが,
これは私の環境ではSMBIOSから読み取るWMIは使えなくて,
ACPIを直接呼ぶ必要があるという理解でよろしいでしょうか?
WindowsでのACPIをいじり方の解説などはないでしょうか?
0812pp2006/02/22(水) 21:37:19
Replace関数でダブルコーテーションと半角スペースの文字列の置き換えができません。
どなたか、知恵をかしてください。初歩的な質問ですいません。
0813デフォルトの名無しさん2006/02/22(水) 21:53:49
""""
0814デフォルトの名無しさん2006/02/23(木) 22:20:52
質問します。

VB6 sp5の環境で開発してるのですが、昨日まで使えてた
Right関数が今日になって 「配列がありません」 と、
未定義の配列であるかのようなエラーとともに使えなくなってしまいました。

VSの標準エディタで right と小文字で打って改行すると、
Right と変換されてるし、識別子カラーで表示されているのにです。

ちなみにLeft関数Mid関数は動きますが、
Right$関数だと、「型宣言文字と宣言されたデータ型が一致しません」と
エラーになってしまいます。

まったく謎な状態です。
どなたか対処方法を教えて下さい。
0815デフォルトの名無しさん2006/02/23(木) 22:26:02
>>814
気のせいですよ
0816デフォルトの名無しさん2006/02/23(木) 22:29:45
一言。
できない奴ほど真っ先に道具を疑う。
VBのバグを疑う前に自分のやってることを疑ってみた?
0817デフォルトの名無しさん2006/02/23(木) 22:30:59
>>814
なぁに、アフリカではよくある事。

それはそうとして、VB6にはSP6を当てましょうね。
0818デフォルトの名無しさん2006/02/23(木) 23:36:34
>>814
とりあえずStrings.Rightに改名する
0819デフォルトの名無しさん2006/02/23(木) 23:38:01
>>816
誰がVBのせいにしてるの?


>>814
標準モジュールでRightという名前の関数を定義していない?
標準関数と同じ名前の関数は作らないほうがいい。

まあ、標準モジュールでRightを定義しても、標準関数を
VBA.Strings.Rightと冗長な正式名で使用する方法もあるけどね。
ちなみに、標準モジュールのRightの正式名は、「標準モジュール名.Right」となる。

0820デフォルトの名無しさん2006/02/23(木) 23:50:59
馬鹿だな。
814の彼はVBのせいにしてるんだよ。間接的に、ではあれ。

でなきゃこんなところで質問する前にリテラルの文字列でRight$が
正しく動作することを確認するはず。

ついでに言えば、814の彼みたいなのは自分の勘違いに気づいて
問題が解決しても絶対に何もレスしないよ。
0821デフォルトの名無しさん2006/02/23(木) 23:53:42
なに必死になってんだよw
0822デフォルトの名無しさん2006/02/24(金) 11:25:16
>>814
本当に参照設定がおかしい可能性もあるが、まず100%ソースのどこかにコンパイルエラーがある
0823デフォルトの名無しさん2006/02/24(金) 12:51:17
モルスァ
0824デフォルトの名無しさん2006/02/24(金) 15:39:15
>>814
たまになったな。
Windows自体をリブートしたら直ったけど。
08258142006/02/24(金) 21:16:33
返事遅れてすいません。

参照設定で、「使用中のコントロールまたは参照を削除することはできません」って
怒られないものを全部外してみたら動くようになりました。
(何故か同じものが複数チェックされてたり謎な状態だった、、、)
0826デフォルトの名無しさん2006/02/24(金) 21:47:59
参照設定で使用しているライブラリにRight関数が定義されていたのかもね。
そのなぜか同じ物が複数チェックされているのがVB標準ライブラリだったりとか。
0827デフォルトの名無しさん2006/02/24(金) 21:50:31
>>825
ときどき起こります
参照をはずせない場合はvbpファイルを直接エディタで書き換えたりもします

(,,゚Д゚) ガンガレ!
0828デフォルトの名無しさん2006/02/25(土) 00:48:33
Sleipnirの検索欄に検索したい文字をセットする方法はありますか?
0829デフォルトの名無しさん2006/02/25(土) 01:33:44
>>828
あります
0830デフォルトの名無しさん2006/02/25(土) 02:01:28
VB6はフォームモジュールから作られるウィンドウのほかに隠しウィンドウが
1個必ず作られて、App.Titleプロパティはこのウィンドウの
GetWindowText()を返してるんじゃなかったっけな確か。だから逆に
App.TitleでFindWindow()すれば、そのウィンドウのハンドルは取れるよ。
ウィンドウクラスはvbNullStringでも取れるけど、開発環境だと
"ThunderMain"でexeだと"ThunderRT6Main"になる。
これで開発環境とexeの区別を付けてもいいかもしれん。
0831デフォルトの名無しさん2006/02/25(土) 02:57:22
>>830
なんでそんなあやふやな方法で、しかもわざわざAPI使ってやる必要があんのかと
0832デフォルトの名無しさん2006/02/25(土) 10:00:11
>>831
開発環境と実行環境を区別するプロパティ、何だっけ・・・?
0833デフォルトの名無しさん2006/02/25(土) 11:00:28
>>832
ttp://support.microsoft.com/default.aspx?scid=kb;ja;JP177636
0834デフォルトの名無しさん2006/02/25(土) 11:31:47
ちょっとわかんなくなってしまったので教えてくれませんか?

項目数、INDEXなど全く同一のTblに対し、VBからSQLを発行して検索した場合と
SqlPlusから検索した場合とで検索結果が違ってくるのですが、
どなたかこういう現象を見た、とか知っている方いらっしゃいませんか?
0835デフォルトの名無しさん2006/02/25(土) 11:35:20
どう違うのかぐらい書けよw
0836デフォルトの名無しさん2006/02/25(土) 11:40:10
>>835
件数が違うのです

件数にして5件VB側の方が少ないです。

他のPCではVBでもPlusでも検索結果が同じなのですが...
0837デフォルトの名無しさん2006/02/25(土) 11:49:02
カナからローマ字のヘボン式に変換するソースありますか?
長音oを含む場合母音を重ねないってとこが上手くいきません・・
08388312006/02/25(土) 12:38:58
>>832
もともとそんなプロパティは用意されとらんよ
>>833 のEXE名変更は利用者にリネームされたら終わりなのでダメ
GetModuleFileName の方法もEXEをVB6.EXEにリネームされる危険があるんで、
レジストリキーからVB6のインストール先を取得するところまで考慮してなんとか使えるレベル
以下の方法が一番明快、かつ簡単だと思うぞ

Public Function IsIDE() As Boolean
  Debug.Assert IDETest(IsIDE)
End Function

Private Function IDETest(ByRef bIsIDE As Boolean) As Long
  bIsIDE = True
  IDETest = True
End Function

API が使いたくて辛抱溜まらんなら、こういうトリッキーな方法もある
Public Function IsIDE() As Boolean
  Debug.Assert lstrcpy(IsIDE, Chr(1))
End Function
08398312006/02/25(土) 12:41:43
関数の戻り値の型打ち間違えた
まあ分かるか
0840デフォルトの名無しさん2006/02/25(土) 13:00:40
こういう尊大口調な奴って普段の生活になんか巨大な抑圧でも存在するのかなw
まあギャグのつもりかもしれないが、普通の人はそれを「痛々しい」と見るんだよ。
ひとつ大人になったね坊ちゃん。
0841デフォルトの名無しさん2006/02/25(土) 13:31:58
>>840
痛々しい
0842デフォルトの名無しさん2006/02/25(土) 13:37:17
>>838
何やってるコードかさっぱり分からん・・・
0843デフォルトの名無しさん2006/02/25(土) 14:37:33
>>836
SQLの条件が違うとか?w
0844デフォルトの名無しさん2006/02/25(土) 14:42:57
XMLHTTPとServerXMLHTTPでは処理速度に関して違いはありますか?
0845デフォルトの名無しさん2006/02/25(土) 14:43:21
>>844
ほとんどない。
0846デフォルトの名無しさん2006/02/25(土) 14:58:07
>>844
何で処理速度なんか気にするのか理解出来ない。
例え差があったって、1000億回位ループする中でやるとか以外、
何の問題もないだろうに。
そうじゃない処理を1msや2ms速くしたって何だと言うのか。
0847デフォルトの名無しさん2006/02/25(土) 15:02:17
>>836
OracleのOO4OのどっかのバージョンはFetchにバグがあって、ページまたぎのFetchを取りこぼすとか昔あったな〜

で、DBのバージョンとミドルウェアのバージョンは?
0848デフォルトの名無しさん2006/02/25(土) 15:25:02
>>834
SQL文が間違ってるんでしょう。
0849デフォルトの名無しさん2006/02/25(土) 16:35:21
>>834
ほかのPCが何を指してるのか
08508442006/02/25(土) 17:27:19
>>845
ありがとうございます

>>846
単純に知りたかっただけです。
0851デフォルトの名無しさん2006/02/25(土) 18:52:01
ヘッドハンター西脇を公開しました
http://www.vector.co.jp/soft/winnt/net/se392514.html
0852デフォルトの名無しさん2006/02/25(土) 20:16:08
>>837
> カナからローマ字のヘボン式に変換するソースありますか?
あるよ。
先に言っておくけど、呉とか言わないでね。



>>838
超有名な手法だね。
2ch以外でも掲示板でこの手の質問が出ると、必ず誰かがコレを書き出す。
まぁ関数名や引数名はちょっと違ったりするけどね。
個人サイトのVB Tipsなんかにも載ってたこと有るし。
0853デフォルトの名無しさん2006/02/25(土) 20:56:23
>>852 
長音を含む母音のときどう書くのですか?
促音とかはできたのですが。。
0854デフォルトの名無しさん2006/02/25(土) 22:12:53
VBから呼び出したIEのサイトのテキストボックスに
文字入力したいんですが・・・テキストボックスの指定の
仕方がわからない。どうやってかいたらいいのか・・・orz
わかる方教えてくださいm(_ _)m
0855デフォルトの名無しさん2006/02/25(土) 22:30:17
>>831
ああごめん、>>792を読んだもんだからちょっと思い出してみただけです。
アンカー付け忘れ。IDEとexeうんぬんは余談で。
■ このスレッドは過去ログ倉庫に格納されています