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

(*´д`*)アハァ… VB初心者質問スレ Part22

■ このスレッドは過去ログ倉庫に格納されています
0001HTML化チェック済みNGNG

  Part12 http://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
  Part13 http://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
  Part14 http://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
  Part15 http://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
  Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
  Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
  Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
  Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
  Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
  Part21 http://pc2.2ch.net/test/read.cgi/tech/1044028945/

VB.net関連スレ
【老若】VB.net質問スレ【男女】 (Part2)
http://pc2.2ch.net/test/read.cgi/tech/1043629429/

心得
壱.質問する前に過去ログにも目を通してみる。
弐.質問する前に MSDN などで調べてみる。
参.VBScript もこのスレでOK。
四.インストーラーなどの質問もOK。
五.下ネタもたまにならOK。
0494デフォルトの名無しさんNGNG
もうすっかり春です
0495 NGNG
>>493
あんがと
0496476 ◆0d6Ohf/jLo NGNG
たくさんの大麻コントロールやDoEventsを使うとシングルスレッドのVBをマルチスレッドのような感じにできるみたいだがどうよ?
0497デフォルトの名無しさんNGNG
>>496
そら、マルチタスクってタイマー割り込みが元だからなぁ。
0498デフォルトの名無しさんNGNG
VB1.0でマターリと勉強してるんですが、なんか使いにくいです
もうこんな馬鹿らしいことは止めにします
0499476 ◆0d6Ohf/jLo NGNG
>>497
その裏技的割り込みで、
Timer1イベント。Inet1.OpenURLでjpgをダウンロードしつつ、
Timer2イベント。Inet2.OpenURLでzipをダウソできたりできそう。
0500デフォルトの名無しさんNGNG
>>498 ずいぶんと古いOS使ってるな(プ
0501デフォルトの名無しさんNGNG
>>499
でも、問題は非プリエンティブって事だな。

どこかで時間のかかる処理を入れると他のタイマーイベントの発生が遅れる。
まぁ、そのためのDoEventsか。

そう言えば、DoEventsした後に同じタイマーのイベントが発生したらややこしい気もするなぁ・・・。
再入可能をしっかり頭に入れて設計しないとはまりそう。
0502邪神476 ◆0d6Ohf/jLo NGNG
>>501
オレもややこしくなるとは思ってた。

またあとであばれる。
〜476さん外出中〜
0503デフォルトの名無しさんNGNG
リアルタイムシステムをVBで作るなよな〜
Windows自体もあやしいのに。
0504デフォルトの名無しさんNGNG
>>503
>リアルタイムシステムをVBで作るなよな〜

普通にそんな奴はいない。
0505デフォルトの名無しさんNGNG
>>504
ごめんなさい。
自分の思ったとおりに、見せようと思えばリアルタイムではなく、
台本を作って映画のようにプログラムを作らなければいきません。
と言いたかったのです。
0506デフォルトの名無しさんNGNG
>>505
>Windows自体もあやしいのに。

より、彼はハードリアルタイムかかなりシビアなソフトリアルタイムなシステムのことを言ってるんだと思われ。

騙ってまで設計の話に持って行こうとする理由がわからん。
0507471NGNG
だれか>>471の質問を答えることのできるかた教えてください(><
0508世直し一揆(コピペ推奨)NGNG
<血液型A型の一般的な特徴>(見せかけのもっともらしさ(偽善)に騙されるな!!)
●とにかく気が小さい(神経質、臆病、二言目には「世間」(「世間」と言っても、同じA型を中心とした一部の人間の動向に過ぎないのだが・・・)、了見が狭い)
●他人に異常に干渉し、しかも好戦的でファイト満々(キモイ、自己中心、硬直的でデリカシーがない)
●妙に気位が高く、自分が馬鹿にされると怒るくせに平気で他人を馬鹿にしようとする
(ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際にはた
いてい、内面的・実質的に負けている)
●本音は、ものすごく幼稚で倫理意識が異常に低い(人にばれさえしなければOK!)
●権力、強者(警察、暴走族…etc)に弱く、弱者には威張り散らす(強い者にはへつらい、弱い者に対してはいじめる)
●あら探しだけは名人級でウザイ(例え10の長所があってもほめることをせず、たった1つの短所を見つけてはけなす)
●基本的に悲観主義でマイナス思考に支配されているため性格がうっとうしい(根暗)
●単独では何もできない(群れでしか行動できないヘタレ)
●少数派の異質、異文化を排斥する(差別主義者、狭量)
●集団によるいじめのパイオニア&天才(陰湿&陰険)
●悪口、陰口が大好き(A型が3人寄れば他人の悪口、裏表が激しい)
●他人からどう見られているか、人の目を異常に気にする(「〜みたい」とよく言う、
世間体命)
●自分の感情をうまく表現できず、コミュニケーション能力に乏しい(同じことを何度
も言ってキモイ)
●表面上協調・意気投合しているようでも、腹は各自バラバラで融通が利かず、頑固(本当は個性・アク強い)
●人を信じられず、疑い深い(自分自身裏表が激しいため、他人に対してもそう思う)
●自ら好んでストイックな生活をしストレスを溜めておきながら、他人に猛烈に嫉妬
する(不合理な馬鹿)  
●後で自分の誤りに気づいても、強引に筋を通し素直に謝れない(切腹するしかない!)●自分に甘く他人に厳しい(自分のことは棚に上げてまず他人を責める。包容力がなく冷酷)
●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い(例:「俺のほうが男
前やのに、なんでや!(あの野郎の足を引っ張ってやる!!)」)
0509デフォルトの名無しさんNGNG
あまりにもタイマーにこだわっているもので、
ごめんなさい。
spawnすればいいな。
0510デフォルトの名無しさんNGNG
VBのタイマーは、割り込みではないから再入処理は考えなくても可。
コードの実行中には、タイマーは起動すらしません。

リアルタイム処理をやりたい場合は、Interval値を少なめにしておいて、
(たとえばInterval=10)
以下のように自前で実行タイミングを管理すればOK。


'一秒に1回の割合で動く処理の場合
Sub Timer1_Timer()
  Static Old as String

  If Time$ <> Old Then
    Old = Time$
    'ここに目的の処理を書く
  End If
End Sub
0511デフォルトの名無しさんNGNG
>>510
いや、途中でdoeventしたときのお話。
0512デフォルトの名無しさんNGNG
IEみたいな移動できるツールバーってできないんですか?
どなたかお願いします
0513デフォルトの名無しさんNGNG
>>512
こもんこんとろーるず-3のCoolBarのことですか?
0514デフォルトの名無しさんNGNG
>513
どうもありがとうございます
でも使い方が
0515デフォルトの名無しさんNGNG
Google逝k
0516デフォルトの名無しさんNGNG
"aaa + bbb" と言う文字列入力に対して、
変数aaaと変数bbbを合計した数値を出力する方法は無いでしょうか?
ただし、変数名(aaaやbbb)は、
別途に初期化された内、どの変数が指定されてくるか判らないとして。
(aaa + ccc とかもありえる)
よろしくお願いします。
0517デフォルトの名無しさんNGNG
>>516
よく分からないが、別途サブルーチン作って引数として渡せばいいんじゃん?
0518デフォルトの名無しさんNGNG
>>516
直接可能なやり方は知らぬが。
CallByName と Property を使って誤魔化せるかな
めんどくさいが。
0519デフォルトの名無しさんNGNG
>>516
文字列がかならずaaa+bbbという7文字で、さらに数字部分が001のような3桁表示と決まってるなら、Left関数とRight関数を使って、左から3文字、右から3文字抜き出すのが一番簡単だ。
0520516NGNG
レスありがとうございます。

>>517
そうです。引数などで渡して、その内容を判別させたいのです

>>518
CallByName・・
どうするにしてもクラスとかを一つ作ってからかぁ、たしかにめんどそうですねぇ
使った事無いのでてさぐりですが。

>>519
いえ、aaaなどは数字では無く、
正に英字の"aaa"などの文字列が来ます。
それを読み、aaaならば、
実際にプログラム内に持ってる変数「aaa」の内容を参照して……
とかしたいので、文字列とを内部変数と結びつける・・というかなんというか、そういう風なやり方知りませんでしょうか?


やはり、変数名を決めて、全てのパターンでif〜とかしかないんでしょうか・・
0521デフォルトの名無しさんNGNG
というか、そんな仕様でいいのかと。
0522ひきプロNGNG
>>520
type VAR_T
  name as string
  var as long
end type
みたいな構造体を作って、
Dim a(100) as VAR_T
で変数作成、実際にいじる時はループでnameを探すとか
0523デフォルトの名無しさんNGNG
コレクション作ってKeyに文字列突っ込め。
0524ひきプロNGNG
あー、コレクションだったら無尽蔵に要素を増やせそうですね。
管理する手間もなさそうだし
0525質問者代理NGNG
コレクション?
key?
両方ともよくわからないけど
aaa+bbbをどうプログラミングしていけばいいの?
0526デフォルトの名無しさんNGNG
前にも質問したんだけど
やっぱり分からない…だれか助けてくだされ(´・ω・`)

DBのテーブルに連結したMSHFrexGridの横に
チェックボックスを縦に並べて
ユーザに選択させる画面を作りたいんだけど
チェックボックスの状態とグリッドの各列を対応付けるいい方法が思いつかない。
グリッドがスクロールしたらチェックボックスの内容も
スクロールさせないといけないし…
マウス関係のイベントかタイマーでグリッドの表示してる部分(データセット内での位置)を
常に監視するしかないのかなぁ?
0527デフォルトの名無しさんNGNG
VB.NETのDBGridだとセルにチェックボックスが表示できる。
VBは捨てよう。
0528デフォルトの名無しさんNGNG
チェックボックス風の絵の切り替えではダメっすか?

0529 NGNG
>>526
リストボックスで代用すればいいよ。同時スクロールはAPI使うけども。
API使えないんなら、やめとき。
0530デフォルトの名無しさんNGNG
こんな時間に即レスサンクスコ。・゚・(ノД`)・゚・。

>>527
おぉなるほど!
…って残念ながら無理でつ
業務系アプリだしそんな許可おりないのさ。
なんとかVB6で…((((((^_^;)

>>528
ん〜結局は選択した時点でそのボックスがどのデータを指しているかを
知りたいのです。
Grid1画面分で表示できる件数ならなんとかなるけど、それ以上の件数で
スクロールバーで上下させられるとどうしようもなくてΣ(゚Д゚;≡;゚Д゚)アワアワ

FlexGridには「今表示しているデータの範囲」を知る手段が無いですよね?。
0531続いて526NGNG
>>529
なんつーかナイスアイデア!
かなりの手間になりそうですが、仕様決まってるから仕方ないか…
0532デフォルトの名無しさんNGNG
>>516 , >525
Dim vbs As Object
Set vbs = CreateObject("MSScriptControl.ScriptControl")
vbs.Language = "VBScript"
vbs.ExecuteStatement "aaa=1"
vbs.ExecuteStatement "bbb=2"
vbs.ExecuteStatement "ccc=3"
Label1.Caption = vbs.eval("aaa + bbb")
Label2.Caption = vbs.eval("aaa + ccc")
'過去ログから引っ張り出してきた、、、
0533デフォルトの名無しさんNGNG
追記するほどでもないけど
vbs.ExecuteStatement "aaa=" & CStr(a)
などで動的に数値は変えられるし、
Microsoft Script Control 1.0 の方を使っても作りやすいかも。
#Win95でうごいたっけかな、コレ
0534デフォルトの名無しさんNGNG
>>408
ありがとうございました。また質問ですが、RDBとは?なんでしょうか?
ヘルプを見てみましたがよくわかりませんでした。よろしければ教えてくだ
さい。
あと、WINSOCKでlistenメソッドで接続待ちをしていれば、特にイン
ターネットに接続する処理などをしなくても接続する事ができるのでしょう
か?
0535デフォルトの名無しさんNGNG
質問です。アウトプロセスで呼び出したactivex.exeの方から呼び出し元の
関数や変数を使うにはどうすればよいのでしょう?教えて!!
0536デフォルトの名無しさんNGNG
>>534
1 RDB Relational Data Base
2 試してみればいいだけの話でわ?
0537デフォルトの名無しさんNGNG
>>535
インターフェースを用意する。
0538デフォルトの名無しさんNGNG
Right関数ではまっているのですが

strTmp = "あ1い"
strTmp = StrConv(strTmp,vbFromUnicode)

strTmpEven = LenB(strTmp,3)
strChar = Right(strTmpEven,1)

この場合にstrCharに1文字読み込んで
最後が全角文字か判定したいのですが
strCharに"1"が入ってきません
Right関数をしようした場合の1文字ってのは
文字コード変換しても2バイト分取られるものなんですか?

環境はVB6,win2000です。

0539デフォルトの名無しさんNGNG
> strTmpEven = LenB(strTmp,3)

(゚Д゚)ハァ?
0540デフォルトの名無しさんNGNG
>>538
なんかものすごい勘違いが含まれてる気がするがw

  Debug.Print LenB(StrConv("A",vbFromUnicode))
  Debug.Print LenB(StrConv("あ",vbFromUnicode))

この違いを考えてみれ。
0541デフォルトの名無しさんNGNG
>>537
インターフェイスを用意するというのがよく分かりません。できれば
具体的に教えて頂けるとうれしいです。
0542デフォルトの名無しさんNGNG
>>538
やりたい事は
LenB(Right("あ1い", 1))
だけちゃうのん?
0543デフォルトの名無しさんNGNG
>>542
LenB(Right("あ1い2", 1))
0544538NGNG
>>539
>>540
>>542

激しくタイプミスでした

strTmp = "あ1い"
strTmp = StrConv(strTmp,vbFromUnicode)

strTmpEven = LeftB(strTmp,3)
strChar = Right(strTmpEven,1)

だった

0545デフォルトの名無しさんNGNG
>>544
あんた本当に >>540 見てる?
0546デフォルトの名無しさんNGNG
>>544 は仕様説明が十分でない
「二文字目」を取りたいなら "あ1い" -> "1", "abcde" -> "b"
strChar = Mid(strTmp,2,1)
「SJIS3バイト目」を取りたいなら "あ1い" -> "1", "abcde" -> "c"
strChar = StrConv(MidB(StrConv(strtmp, vbFromUnicode), 3, 1), vbUnicode)
0547デフォルトの名無しさんNGNG
>>546
あんた >>538 見てる?
0548デフォルトの名無しさんNGNG
海栗 <> 筋
0549デフォルトの名無しさんNGNG
>>548
あんたぬるぽ?
0550538NGNG
こういう問題なんだけど?

dim hoge as String

hoge = "aあ"
hoge = StrConv(hoge,vbFromUnicode)
debug.print LenB(Right(hoge,1))
'Sjisに変換した文字列より1文字取得する
'1文字なので"あ"を取得しLenBに渡す
'結果は2


hoge = "あa"
hoge = StrConv(hoge,vbFromUnicode)
debug.print LenB(Right(hoge,1))
'Sjisに変換した文字列より1文字取得する
'1文字なので"a"を取得しLenBに渡すのかと思ったら
'Rightは"a"を返さず2バイト返している
'結果は2

hoge = "a"
hoge = StrConv(hoge,vbFromUnicode)
debug.print LenB(Right(hoge,1))
'Sjisに変換した文字列より1文字取得する
'1文字しか無いからか"a"を取得しLenBに渡している
'結果は1

ていうことなんだけど
0551デフォルトの名無しさんNGNG
>>550
もしかして、Right が SJIS を考慮してくれると思ってるの?
Right は Unicode を想定してるから強制的に終端 2 byte を返すよ。
最後の例で 1 になってるのは、単にもともと Right にかける前の文字列長が
1 byte だから。
0552デフォルトの名無しさんNGNG
>>541
こんな感じ。

'----呼出元 Module1
Public TEST2B As String

Public Sub Main()
 Dim TEST3 As New Class2
 TEST2B = "ヅら"
 Set TEST3.C1 = New Class1
 TEST3.TEST
End Sub

Public Sub TEST1B()
 MsgBox "ふが!!"
End Sub

0553デフォルトの名無しさんNGNG

'----呼出元 Class1
Public Sub TEST1()
 Module1.TEST1B
End Sub
Public Property Get TEST2()
 TEST2 = Module1.TEST2B
End Property


'----呼出先 Class2
Public C1 As Object

Public Sub TEST()
 C1.TEST1
 MsgBox C1.TEST2
End Sub

普通は呼出元の値→呼出先のオブジェクトのプロパティに設定
呼出元のプロシージャ呼出→呼出先のイベントに反応とかする方が自然かな。
0554551NGNG
補足。

> 最後の例で 1 になってるのは、単にもともと Right にかける前の文字列長が
> 1 byte だから。

つまり、Len(Right("123", 5)) が 5 ではなく 3 になるのと同じ事。
0555550NGNG
>>551
あー文字コード変換しようが
Rightは1文字 = 2byteで処理するってことね

一度Unicodeに戻してからRightして
帰って来た値をsjisにしてLenBしたら出来たよ
サンクス
0556デフォルトの名無しさんNGNG
> 一度Unicodeに戻してからRightして

激しく意味ねー
>>540 はどうなったんだよ
0557デフォルトの名無しさんNGNG
ascとかじゃダメなんでしょかね
0558デフォルトの名無しさんNGNG
ニガサンヨ♪
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>549
0559550NGNG
>>556
  Debug.Print LenB(StrConv("A",vbFromUnicode))
  Debug.Print LenB(StrConv("あ",vbFromUnicode))
が1と2を返すのは最初から解ってるんだよ

SJISでRight関数使っても正確に1文字取れない
RightBではバイトで取得する、オレはバイト単位では受け取りたくない

Unicodeに戻さないとRightは正常に動作しない仕様になっている
SJISの状態で1文字取得できる関数が有ったら教えてくれ
0560デフォルトの名無しさんNGNG
>>559
????
asc(Right(str, 1))
が0〜255なら半角
それ以外なら全角じゃないの?
#半角全角という分け方もアレだが。
0561デフォルトの名無しさんNGNG
>>559
>   Debug.Print LenB(StrConv("A",vbFromUnicode))
>   Debug.Print LenB(StrConv("あ",vbFromUnicode))
> が1と2を返すのは最初から解ってるんだよ

なら最初から書け。

> SJISの状態で1文字取得できる関数が有ったら教えてくれ

文字列を SJIS で持っていなければならない状況というのがわからんのだが・・・。

しかし、「関数」 だの 「教えてくれ」 だの言うあたり、自分で調べたり作ったりする
つもりは全く無いのね。

1 バイト目が &H81 〜 &H9F または &HE0 〜 &HFC
2 バイト目が &H40 〜 &H7E または &H80 〜 &HFC
これで判定しなさい。
0562デフォルトの名無しさんNGNG
文字列をSJISメインで扱いたいならByte型配列に入れればよい。
0563550NGNG
>>561
> なら最初から書け。

的はずれな質問して何怒ってるの?

>文字列を SJIS で持っていなければならない状況というのがわからんのだが・・・。
バカかおまえは?
"dD"とか全角半角混在してる文字列からバイトで取得するのにどうやってUnicodeで取得するんだ?
Debug.print LenB("あ")
Debug.print LenB("A")
として違う値が取れるのか?

> しかし、「関数」 だの 「教えてくれ」 だの言うあたり、自分で調べたり作ったりする
> つもりは全く無いのね。

お前は共通に有ったりしても自分で関数を作るのか?
用意されている物があればそれを使うのが普通

もう解決してるからおまえは書かなくていいよ(ワラ
0564550NGNG
>>560
ASCをつかってもいいんですけど
そのRightが正しく1文字を返さないんですよSJISだと
0565デフォルトの名無しさんNGNG
春ですなあ
0566デフォルトの名無しさんNGNG
>>564
申し訳ないが、ascを使って正しく一文字返さないコードをだしてくれないでしょうか?
0567デフォルトの名無しさんNGNG
正直、550 が何に癇癪起こしてるのかわかんねー。
551 も書かなきゃ良かった。
0568デフォルトの名無しさんNGNG
>>563
> > なら最初から書け。
>
> 的はずれな質問して何怒ってるの?

そりゃ怒るでしょ。
ひょっとしてあんた、礼儀を知らないヒッキーさんですか?
0569デフォルトの名無しさんNGNG
ぬるぽキタ━━━━━(゚∀゚)━━━━━!!!!
0570デフォルトの名無しさんNGNG
>>566
>>544 を見れば、何でこんなアフォな話になったかわかる。
0571デフォルトの名無しさんNGNG
以下のようなソースで優先度を上げてプログラムを実行したいのですが

Declare Function GetCurrentThread Lib "kernel32" () As Long
Declare Function GetThreadPriority Lib "kernel32" (ByVal hThread As Long) As Long
Declare Function SetThreadPriority Lib "kernel32" (ByVal hThread As Long, ByVal nPriority As Long) As Long
Public Const THREAD_PRIORITY_HIGHEST = 2

ソース
Dim Get_TH As Long
Dim Get_PR As Long
Dim Set_TH As Long
Dim Set_PR As Long
Dim Set_RC As Long

Get_TH = GetCurrentThread
Get_PR = GetThreadPriority(Get_TH)
Set_TH = Get_TH
Set_PR = THREAD_PRIORITY_HIGHEST
Set_RC = SetThreadPriority(Set_TH, Set_PR)

実行後、タスクマネージャみても上がってないょ(´・ω・`)

MSDN見ると
Windows NT: このハンドルは、THREAD_SET_INFORMATION アクセスを持っていなければなりません。

って書いてあるんだけど、これに関して調べても見つからないょ・・・

解かる人いませんか?
0572571NGNG
あ、環境はWin2000(SP2)+VB6(SP5)です。
0573デフォルトの名無しさんNGNG
>>571
スレッドを作るときに設定できるアクセス権の話?
既に存在するスレッドのアクセス権を変更できるかは知らんけど。
0574デフォルトの名無しさんNGNG
>>573
スレッドって、マルチタスクOSで言うところのスレッドのこと?
それとも、BBSのスレッドのこと??
0575デフォルトの名無しさんNGNG
>>574
お前ここにスレ立てるときアクセス権なんぞ設定したか?
まぁ、権利関係は確かに存在するか・・・。
0576デフォルトの名無しさんNGNG
>>575
釣れた(w

(^▽^)
0577デフォルトの名無しさんNGNG
>>576
釣れた(w

(^▽^)
0578デフォルトの名無しさんNGNG
>>577
釣れた(w

(^▽^)
0579デフォルトの名無しさんNGNG
        /  -‐‐‐‐‐‐‐--´´ ̄ ''''''''''''''''''''''''ー‐----、/
      /   ノ   ▲                 ヽ  ̄ ̄
     .i´    i´     ■  ∧               ヽ
     i    i      ■  .i.●i      ;::;:;:;:;       ヽ
    i     i     ■  ∨ノ   ,-、 ;:;:;/ノヾヽ    ;:;:i
    i     `、    ‐-   ー    ・ ;:;:;《 |  | )   ;:;:;:;::i
    i     ´´    -‐   ‐    ・ ;:;:;:《 |  | )   :;:;:;:;:;)
     i     i     ■  ∧ヽ  `‐´ ;:;丶ヽノノ    :;:;:;::i
     .i    i     .■  i.●i      ;:;;:;::       ;:;:;i 
     i、    i     ■  ∨                ノ
      ヽ   `ゞ   .▼                 /  _
       ヽ、    ‐‐‐‐‐‐‐‐‐‐、____,,,,,,,,,,,,,,,,,,,,,,,,,----‐‐‐ヽ
ニキータ
0580516NGNG
色々とありがとう御座いました(^▽^
スクリプトコントロールはつかったことないので、ためしてみようかとおもいます。
0581540NGNG
春だなぁ。
ま、風物詩と思えば腹も立たんか。

>>571
漏れが昔書いたソースだと

  hThread = GetCurrentThread()
  ret = SetThreadPriority(hThread, THREAD_PRIORITY_HIGHEST)

こんなんで動いてるな。

  hProcess = GetCurrentProcess()
  ret = SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS)

こーいうのも動いてる。Win2Ksp3+VB6sp5。
0582デフォルトの名無しさんNGNG
VBの DHtmlEdit コントロールで ボタンやテキストボックス などを
貼り付ける方法 ご存知の方いらっしゃいますか

また DHtmlEdit の使い方が説明されているHPも
お願いします
0583デフォルトの名無しさんNGNG
VB6からUnixTime(1970/01/01 から数えた秒数)を求めたり
日付時間を指定してそのUnixTimeを作ったりしたいのです。
2chのスレッドIDの決定もこれですよね。

単に秒数を求めればいいのではと思ったのですが
うるう年とかいろいろあってもうどうしたらいいやら、です。
0584583NGNG
訂正

VB6からUnixTime(1970/01/01 から数えた秒数)を求めたり
UnixTimeから日時時間を求めたりしたいのです。
(要は Date型<->UnixTime の相互変換関数が作りたい)
0585デフォルトの名無しさんNGNG
>>584
DateDiffで調べれ
0586583NGNG
>>585
時間差を秒で返させればいいのね?
ちょいと試してみます。激しく感謝。
0587デフォルトの名無しさんNGNG
  ∋8ノノハ.∩
   川o・-・)ノ <先生!こんなのがありました!
__/ /    /   
\(_ノ ̄ ̄ ̄\
||ヽ|| ̄ ̄ ̄ ̄||
 ...|| ̄ ̄ ̄ ̄||
http://saitama.gasuki.com/saitama/
0588デフォルトの名無しさんNGNG
>>583
time_t ですよね。
わたしならCでDLL作るかな。
0589ひきプロNGNG
>>583
'time_tから文字列へ変換
Public Function GetTimeString(time_t As Long) As String
Dim t As Long, leap As Long, year As Long, month As Long, day As Long, hour As Long, minute As Long, second As Long, s As String, i As Long
Dim m(1 To 12) As Long '各月の日付を入れる
m(1) = 31: m(2) = 28: m(3) = 31: m(4) = 30: m(5) = 31: m(6) = 30: m(7) = 31: m(8) = 31: m(9) = 30: m(10) = 31: m(11) = 30: m(12) = 31
t = time_t
leap = Int(((t / 31536000) + 1) / 4) 'うるう年でずれた日数の計算
year = ((t - leap) \ 31536000) '年の計算
year = year + 1970 '1970年から足す
day = ((t Mod 31536000) \ 86400) - leap '日の計算
hour = (t Mod 86400) \ 3600 '時間の計算
minute = (t Mod 3600) \ 60 '分の計算
second = (t Mod 60) '秒の計算
If (year Mod 4) = 0 Then '2月の日数を計算
m(2) = 29
If (year Mod 100) = 0 Then
m(2) = 28
If (year Mod 400) = 0 Then m(2) = 29
End If
End If
0590ひきプロNGNG
day = day + 1 '1月1日からの経過日数から月・日を求める
For i = 1 To 12
If day > m(i) Then
day = day - m(i)
Else
month = i
Exit For
End If
Next
hour = hour + 9 'UTCから日本の時間分足す
s = year & "年" & month & "月" & day & "日 " & hour & ":" & minute & ":" & second
GetTimeString = s
End Function
0591デフォルトの名無しさんNGNG
>>589
なんでお前はそんなクソ関数作るんだ?
?datediff("s",#1970/01/01 00:00:00#,#1970/01/02 00:00:00#)
?dateadd("s",86400,#1970/01/01 00:00:00#)
0592デフォルトの名無しさんNGNG
time_t = DateDiff("s", #1/1/1970#, dtmVB) - 32400 'JST - 9

これでいいんじゃなかったっけ。
0593ひきプロNGNG
ショック!
■ このスレッドは過去ログ倉庫に格納されています