2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Win32API 質問箱 Build12

1 :SDK:03/06/19 23:40
.NET Framework!? 知らんな!!
そんなヤル気のあるネィティブプログラマ集まれ!
スレ立てるまでもない、Win32APIについての質問はこちらへどうぞ。
やさしい お兄ちゃん 達が答えてくれるかも。
でも、質問する前に検索ぐらい汁!!
過去スレ・参考は>>2 ぐらい...

2 :SDK:03/06/19 23:41
● MSDN Online
http://www.microsoft.com/japan/msdn/default.asp
● 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/index.html

● 過去スレ
Win32API 質問箱 Build11
http://pc2.2ch.net/test/read.cgi/tech/1052651750/
Win32API 質問箱 Build10
http://pc2.2ch.net/test/read.cgi/tech/1047819779/
Win32API 質問箱 Build9
http://pc2.2ch.net/test/read.cgi/tech/1044929160/
Win32API 質問箱 Build8
http://pc2.2ch.net/test/read.cgi/tech/1040964626/
Win32API 質問箱 Build7
http://pc3.2ch.net/test/read.cgi/tech/1036654893/
Win32API 質問箱 Build6
http://pc3.2ch.net/test/read.cgi/tech/1032548635/
Win32API 質問箱 Build5
http://pc3.2ch.net/test/read.cgi/tech/1028580373/
Win32API 質問箱 Build4
http://pc3.2ch.net/test/read.cgi/tech/1023361418/
Win32API 質問箱 Build3
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API【2】
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API 質問箱
http://pc.2ch.net/tech/kako/991/991576947.html


3 :デフォルトの名無しさん:03/06/19 23:45


4 :デフォルトの名無しさん:03/06/19 23:46


5 :Bフレッツァー:03/06/19 23:46
MSDN Online巡回して根こそぎローカルにダウンロードする方法教えて。


6 :デフォルトの名無しさん:03/06/19 23:54
貧乏人は大変だな(w

7 :デフォルトの名無しさん:03/06/20 00:08
うpロダ巡回して根こそぎローカルにダウンロードする方法教えて。

8 :デフォルトの名無しさん:03/06/20 01:16
>>7
Win32 APIを使えば出来ます。

9 :デフォルトの名無しさん:03/06/20 04:07
がばっりまーーーーす

10 :デフォルトの名無しさん:03/06/21 12:09
もまいら暑いですが元気ですか!!
おせてくさい。m(__)m
VBとかDelphiのコンボボックスをSpy++で見ると
独自のウィンドウクラスを使用していますが、
コンボのドロップダウンの部分とかはOS実装だと
思うので"ComboBox"を使用しないと実現できないと
僕は思うのですが(また独自実装だとOSがEditとか
ComboBoxとかのコモンクラスを提供する意味がない)
これってどうやっているのでしょう??

11 :デフォルトの名無しさん:03/06/21 12:19
>>10
実は俺も知りたい。
コンボボックスのドロップダウンや、ポップアップメニューは、
ポップアップウィンドウなのに、表示されてもオーナーウィンドウのキャプションバーが青いままなんだよなぁ。
自前のウィンドウクラスでやろうとしてもなかなかうまく行かない。

12 :デフォルトの名無しさん:03/06/21 13:04
クリックしてもアクティブにならないようにするだけじゃないの?

13 :デフォルトの名無しさん:03/06/21 13:49
他のウィンドウの遠隔操作をするのに
クラス名を指定してマウスの左クリックを送信したいのですが
WIN32APIはに関しては初心者のためあまりわかりません。
今までは、SetForegroundWindowを送った後にTABキーとエンターキーだけで左クリックの
代わりをしていたのですがそれでは動作が不安定がちになり困っています。
だれか教えていただけないでしょうか?
使用している言語はHSPです

14 :デフォルトの名無しさん:03/06/21 14:53
>>13
WIN32APIでボタン押すなら
PostMessage(hwnd,WM_LBUTTONDOWN,0,0)
これでだめならHSPスレで

15 :デフォルトの名無しさん:03/06/21 15:05
>10
独自のウィンドウクラスって言ったってクラス名だけだろ。
ドロップダウン部のクラス名は変わってなさそうだからサブクラスされていると思われ。

16 :デフォルトの名無しさん:03/06/21 16:24
mciSendString 使って、あるスレッドでオープンした曲を
他のスレッドで操作することはできないのかな?
ちょっとやってみたかんじ、うまくいかないんだけど。

17 :デフォルトの名無しさん:03/06/21 17:21
>>14
ありがとうございます。
今から試してみたいと思います

18 :デフォルトの名無しさん:03/06/21 18:31
以下のコードを音声を再生しながら、
ループさせると音声にノイズが入ります。
原因がまったくわからず、困ってます。
みなさんの、お力を貸してください。

OS:Windows2000pro
SOUND:Creative Sound Blaster Live!
GRAPHIC:Matrox Parhelia 128MB


19 :デフォルトの名無しさん:03/06/21 18:32
つづき
-- source --

BITMAPINFO bi;
HBITMAP bitmap, save;
HDC dc,memdc;
LPBYTE bits;
int width=640,height=480;
bits = malloc(width*height*4);
bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bi.bmiHeader.biWidth = width;
bi.bmiHeader.biHeight = height;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = 32;
bi.bmiHeader.biCompression = BI_RGB;
bi.bmiHeader.biSizeImage = width*height*4;
bi.bmiHeader.biXPelsPerMeter = 0;
bi.bmiHeader.biYPelsPerMeter = 0;
bi.bmiHeader.biClrUsed = 0;
bi.bmiHeader.biClrImportant = 0;
bi.bmiColors->rgbBlue = 0;
bi.bmiColors->rgbGreen = 0;
bi.bmiColors->rgbRed = 0;
bi.bmiColors->rgbReserved = 0;


20 :デフォルトの名無しさん:03/06/21 18:33
BITMAPINFO bi;
HBITMAP bitmap, save;
HDC dc,memdc;
LPBYTE bits;
int width=640,height=480;
bits = malloc(width*height*4);
bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bi.bmiHeader.biWidth = width;
bi.bmiHeader.biHeight = height;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = 32;
bi.bmiHeader.biCompression = BI_RGB;
bi.bmiHeader.biSizeImage = width*height*4;
bi.bmiHeader.biXPelsPerMeter = 0;
bi.bmiHeader.biYPelsPerMeter = 0;
bi.bmiHeader.biClrUsed = 0;
bi.bmiHeader.biClrImportant = 0;
bi.bmiColors->rgbBlue = 0;
bi.bmiColors->rgbGreen = 0;
bi.bmiColors->rgbRed = 0;
bi.bmiColors->rgbReserved = 0;

21 :デフォルトの名無しさん:03/06/21 18:33
dc = GetDC(NULL);
memdc = CreateCompatibleDC(dc);
bitmap = CreateCompatibleBitmap(memdc,width,height);
save = SelectObject(memdc,bitmap);
BitBlt(memdc,0,0,width,height,dc,0,0,SRCCOPY);
SelectObject(memdc,save);
DeleteDC(memdc);
GetDIBits(dc,bitmap,0,height,bits,&bi,DIB_RGB_COLORS);
ReleaseDC(NULL,dc);
DeleteObject( bitmap );
free(bits);

>>19は、間違いました。無視してください。

22 :デフォルトの名無しさん:03/06/21 18:37
>>18-21
そのコードがなければ正しく再生されるんだな?
って事はそのコードの負荷が多すぎるってことじゃね?
ループ内の
bits = malloc(width*height*4);
memdc = CreateCompatibleDC(dc);
bitmap = CreateCompatibleBitmap(memdc,width,height);
は外に持ってった方がいいんじゃ無いか?


23 :デフォルトの名無しさん:03/06/21 22:37
省電モードでディスプレイの電源がオフになっているかをしらべるには
どのAPIをつかえば良いのですか?

24 :デフォルトの名無しさん:03/06/22 03:51
>>22
ありがとうございます。
そうです。このコード以外は問題はありません。
普通に何もないWinMainに、このコードを書いても
ノイズがのるので。ノイズは主に
>BitBlt(memdc,0,0,width,height,dc,0,0,SRCCOPY);

>GetDIBits(dc,bitmap,0,height,bits,&bi,DIB_RGB_COLORS);
でノイズが発生しているっぽいです。
(ここをコメントアウトするとノイズは無くなる)
ノイズは「ブッ」って感じの音でループすると「ブッツブッツ・・・」
という感じになります。

他の環境で、この問題が起こらなければ「自分の環境の問題」と
して、この問題は無かった事にしようと思うのですが・・・。


25 :デフォルトの名無しさん:03/06/22 10:42
「自分の環境の問題」でも、もしかしたら「他でも起こる問題」かもしれないので、やっぱり対処しておいた方がいい。
問題が起きたときに、「お前のところ出てるのに(ry」とかいわれると困る。

26 :デフォルトの名無しさん:03/06/22 12:22
BitBltで発生してるのに対処のしようがあるの?

27 :デフォルトの名無しさん:03/06/22 15:38
質問です。フルパス名と相対パス名で処理を分岐させたいのですが
以下のような判別方法で良いでしょうか?

(判別方法)
・先頭文字が'\'か'/'ならフルパス名。文字列が':'を含むならフルパス名。

(例)
C:\A\B\C\SAMPLE.TXT / \A\B\C\SAMPLE.TXT →フルパス名
B\C\SAMPLE.TXT / SAMPLE.TXT → 相対パス名

もしかして簡単に調べるAPIがあるのでしょうか…?
よろしくお願いします。

28 :デフォルトの名無しさん:03/06/22 15:41
2文字目が「:」

29 :27:03/06/22 15:51
>>28
ご教示ありがとうございます。
なるほど…、ドライブ名は1文字固定でした。

・先頭文字が'\'か'/'。2文字目が':'ならフルパス名。

これでいいのかな…。

30 :デフォルトの名無しさん:03/06/22 16:02
ネトワークのパスは?
\\client\SharedDoc

31 :デフォルトの名無しさん:03/06/22 16:09
>>27
PathIsRelative()

パス関係は自前でやろうとすると
ttp://www.ipa.go.jp/security/awareness/vendor/programming/b08_01_main.html
とか見て鬱になる。UNCパスもあるし。

32 :27:03/06/22 16:25
>>30
あ…、ネットワークドライブのことを考えていませんでした。
なかなか一筋縄ではいきませんね。

>>31
URL先読ませていただきました。これは本当に複雑ですね…(絶句)…。
判定するAPIがあるんですね。よかった…。(汗)
このAPIに従いたいと思います。

皆様にご教示いただいて、助かりました。
ありがとうございます。

33 :デフォルトの名無しさん:03/06/22 16:59
HSPを使っているのですがGetForegroundWindowで
ハンドルを取得してそのハンドルから子ハンドルを
取得取得しようとしているのですがうまくいきません
一応ネットなどで探してみたのですがHSPでの子ハンドル
の取得方法が書いてあるページが無くて困っています
だれかこんな私に力を貸していただけないでしょうか?

↓ソースです

34 :1/2:03/06/22 17:00
#include "llmod.as"


sdim buf,1000;      タイトルバーの文字列を入れる変数
sdim name,100
alloc hwnd_buf,256

screen 0,240,100:gsel 0,2
font "MS ゴシック",12,16

repeat:wait 1

dllproc "GetForegroundWindow",prm,1,D_USER;最前面ウィンドウのハンドル取得
hwnd=dllret;変数dllretにハンドルが返る

getptr ptrm,buf
dim prm,3

prm.0=hwnd
prm.1=ptrm
prm.2=1000
dllproc "GetWindowTextA",prm,3,D_USER;ウィンドウのタイトル取得
hwnd_buf=buf

getptr cls_name,name
prm.0=hwnd
prm.1=cls_name

prm.2=100
dllproc "GetClassNameA",prm,3,D_USER


35 :2/2:03/06/22 17:02
prm.0=hwnd
prm.1=GW_CHILD
dllproc "GetWindow",prm,2,D_USER
child_hwnd=dllret

getptr perm,buf
dim prm,3
prm.0=child_hwnd
prm.1=perm
prm.2=1000
dllproc "GetWindowTextA",prm,3,D_USER;ウィンドウのタイトル取得
child_buf=buf

redraw 0
color 255,255,255
boxf:pos 0,0
color 0,0,0

mes hwnd_buf
mes " HWND:"+hwnd+"
mes " Class:"+name
mes ""
mes " CHILD_HWND:"+child_hwnd
mes " CHILD_buf:"+child_buf
redraw 1
loop
stop


36 :デフォルトの名無しさん:03/06/22 17:07
このスレでHSP絡みってあんまり見ないな…

37 :デフォルトの名無しさん:03/06/22 17:27
まぁ、HSPでAPIをいじってる人ってごく一部だと思うから…

38 :デフォルトの名無しさん:03/06/22 18:19
>>24
waveOut系の処理がウィンドウ任せなら優先順位高めのスレッドに擦り付けてみれ。

39 :デフォルトの名無しさん:03/06/22 18:32
HSP読めん

40 :デフォルトの名無しさん:03/06/22 21:31
>>33 その取得したフォアグラウンドウィンドウが子ウィンドウを持っていない罠とか

41 :33:03/06/22 21:57
>>40
そうでもないんですよ・・。
上のソースをexeにしてみたので誰か確認おねがいします。
http://proxy.ymdb.yahoofs.jp/users/76095b11/bc/sample.exe.exe?bcY5gR_ASpwWU7dH

何度もすみません。

42 :お〜い:03/06/22 21:59
ダウンロードするとき時計みたいのがでるんですけど・・・
なんででしょう?

43 :33:03/06/22 22:10
>>42
私のことでしょうか?
もしそうでしたら直接リンクをクリックするとYahoo側で拒否されるので
アドレスをブラウザにコピペしてダウンロードしてみてください。

44 :デフォルトの名無しさん:03/06/22 23:48
>>33

#define GW_CHILD 5

が必要。

45 :デフォルトの名無しさん:03/06/22 23:59
sample.exeってファイル名を見るとウイルスを連想してしまうな(w

46 :デフォルトの名無しさん:03/06/23 00:00
>>33
ところで MSDNには
|すべての子ウィンドウを取得する場合、EnumChildWindows 関数を使った方が
|GetWindow 関数をループ処理で呼び出すよりも信頼性の高い結果が得られます。
|GetWindow 関数を呼び出してウィンドウを列挙すると、無限ループに陥ったり、
|すでに破棄されているウィンドウのハンドルを参照する危険性がでてきます。
ってあるけど、いいのかな?

47 :デフォルトの名無しさん:03/06/23 01:49
HSPでコールバック関数って使えるの?

48 :デフォルトの名無しさん:03/06/23 02:07
配列変数にマシンコードを書いて、配列のアドレスを
関数ポインタとして渡すという暴挙を使います。

49 :デフォルトの名無しさん:03/06/23 02:54
ちょい質問。
1.マルチCPUにおいて、CPU負荷を分散させるには、
 A.別スレッドにする
 B.別プロセスにする
2.デュアルCPUにおいて、軽い処理二つと重い処理二つの計4つをほぼ同時に開始した時、
 片方のCPUに重い処理二つが集中するのを防ぐ方法は?

APIとはちと違う質問だと思うが、知ってる奴いたら教えてくれ。


50 :デフォルトの名無しさん:03/06/23 06:21
CPUの割り当てを制御するAPIがあったような
えーとSetThreadAffinityMask

51 :デフォルトの名無しさん:03/06/23 06:25
>>49
>1
別プロセスなら確実かと。スレッドの場合は
共有メモリの関係でキャッシュに気をつけないと
CPUに無駄に負荷がかかりそう。
>2
処理をある程度小さく分割してスレッド数を監視しながら
並列に処理するように工夫するくらいしか思いつかないですが・・。

その手の方面ではインテルが並列処理のためのCコンパイラを
開発していたような。

52 :14:03/06/23 15:22
>>33
46が言うようにGetWindowはあんまり当てにならないから
EnumChildWindowsかFindWindowExで。
あとAPI使うようになったらCやC++に変えたほうがいいよ。

お節介スマソ

53 :デフォルトの名無しさん:03/06/23 16:50
駄質問スマソ、

char *buffer;

と宣言したポインタに長い文字列を入れました。

このbufferの10文字目から20文字目までを別の変数に入れたい場合、
どのようにすればよいのでしょうか?

54 :デフォルトの名無しさん:03/06/23 16:51
>>53
memcpyでいいのでは...

55 :デフォルトの名無しさん:03/06/23 16:53
>>53
まずCの勉強をしろ。

56 :デフォルトの名無しさん:03/06/23 16:58
スレてきにはCopyMemoryだな

57 :デフォルトの名無しさん:03/06/23 16:59
ありがとう!逝っちゃってきます!

58 :デフォルトの名無しさん:03/06/23 17:16
lstrcpyn

ここいらのAPIをいまだに使ってるヤシっているのかな?

59 :デフォルトの名無しさん:03/06/23 17:27
>>58
何が言いたいのかわからん

60 :デフォルトの名無しさん:03/06/23 17:47
Cのライブラリじゃなく、Win APIの文字列操作関数を使っている
ヤシはいるか、という話なんだが、わかりにくかったか?

61 :デフォルトの名無しさん:03/06/23 17:54
ちっちゃいプログラムを作るために使うかもしれん。

62 :デフォルトの名無しさん:03/06/23 17:58
「いまだに」の意味が。別に流行で使い分けるものでもなかろうに。

63 :デフォルトの名無しさん:03/06/23 18:26
フックdll使うときは可能な限りMFCもRTも使わないようにしてるな。


64 :33:03/06/23 19:18
>>44 >>46
アドバイスありがとうございました。
GW_CHILD 5を定義したらうまく取得できました。

>>52
API初心者なもので、EnumChildWindows関数はちょっと私にはちょっと難しそうです
HSPばかり使っていると将来役に立ちそうではないので、将来的にはC,C++に変えたいと思っています

みなさん本当にありがとうございました。


65 :デフォルトの名無しさん:03/06/23 20:26
>>64
将来仕事に使うならともかく、趣味の範囲ならHSPで十分だと思うが…
まぁ、人それぞれだし(HSPが理解不能で逃げてきただめ人間な折れ)

66 :r:03/06/23 22:24
タイマの使い方がわかんねぇ!誰か教えてくれ!
使ってるのは VC++6.0だ。

俺の作ったプログラムに、こんな記述をしてみたんだ。
void CALLBACK Hoge( UINT timerID, UINT uMsg, DWORD_PTR dwUser, DWORD dwParam1, DWORD dwParam2 ) {
    MessageBox( 0, "(゚д゚)ウマー", "ウマー", MB_OK );
}
で、画面に張ったあるボタンのイベントリスナ(←?)にこんな記述を含めた。
timeSetEvent( 5 * 60 * 1000, 100, Hoge, 0, TIME_ONESHOT );


これをWinXPで試したところ、もうばっちり。
そのボタンを押してきっかり5分後にウマーダイアログが表示された。

が!そのバイナリをWin98(たぶんSE以前)にもってって動かしたら、
なんとボタンを押してから37秒後にウマーダイアログが表示されやがるんだ!
なんでだ!

「コンテクストによって、タイマ値をミリ秒単位で与えたり、0.12ミリ秒単位で与えたり」すんのか?
とも思ったが、VC++の、[F1]で開くドキュメント(MSDN?)で見ても
「timeSetEventの第一引数は、ミリ秒だよ」としか書いてねぇ!
どうすんだ!おい!timerSetEvent!!!

67 :デフォルトの名無しさん:03/06/23 22:29
>>66
タイマーの精度によるんじゃない?

68 :デフォルトの名無しさん:03/06/23 22:39
TLS を自前で実装しようとしとるんだども、カレントスレッドの識別子を高速に取得する方法がわかんねべ。
技術的にはスタックさの一番奥にでも入れておけばいんはずだがら
きっと簡単に取れるはずだべ?
いい方法はないっぺか?

69 :デフォルトの名無しさん:03/06/23 22:40
精度とかいうレベルじゃないような・・

70 :68:03/06/23 22:44
# Win32 的には,fs レジスタがスレッド固有領域のセレクタです。
あぎゃ、これか?これでええのんか?
で、これをお行儀よく取得するにはどうしたらいいんじゃ?

71 :デフォルトの名無しさん:03/06/23 23:05
>>66
5*60*10000%65536 = 37856
というわけで、きっと16ビットに切り捨てられてるよ。

72 :デフォルトの名無しさん:03/06/23 23:06
> 66

5 * 60 * 1000
= 300000
= 0x493E0

( 0x493E0 & 0xffff )
= 0x93E0
= 37856
≒ 37 sec

UINT が 16 bits 扱い?


73 :r:03/06/23 23:18
71-72
そうだったのかあああ!
ありがとう!
二人の永遠の幸せをお祈りします♪

74 :デフォルトの名無しさん:03/06/24 00:03
つかなんで16bitなんだろ・・・すげー気になる

75 :デフォルトの名無しさん:03/06/24 00:07
よー分からんがtimerSetEventは使うのやめといた方がいい。


76 :デフォルトの名無しさん:03/06/24 00:26
じつはWin3.1愛用者だたりとかw

77 :r:03/06/24 00:32
>>75
しかし、SetTimerはウィンドウハンドルが必要だし、
WaitForSingleObjectとかで待つのは、
本質的に「イベントの擦違い」の危険を孕んでしまうし、
Sleepだと途中でとめるの難しいし....

つーか、

なんでたかだかタイマごときでこんなに苦労するんだ!

78 :デフォルトの名無しさん:03/06/24 00:44
>>77
> しかし、SetTimerはウィンドウハンドルが必要だし、

別にウィンドウハンドルは必須じゃないよ


79 :r/77:03/06/24 01:08
>>78
まじですか?
なんか漏れ、そのへん誤解してるな。
もいっかいドキュメントよんでみます。サンキュ

80 :デフォルトの名無しさん:03/06/24 07:28
>>74
Win9xのマルチメディアサブシステムは16ビット側に
実装があるからだと思われ
>>78
ウィンドウハンドルはいらないけど
DispatchMessageは必要という罠が

81 :デフォルトの名無しさん:03/06/24 21:13
>>80
>>DispatchMessageは必要という罠が

SetTimer()の4つ目の引数を指定するだけじゃだめなの?


82 :デフォルトの名無しさん:03/06/24 22:06
マルチメディアタイマを複数起動させた場合、
タイマのスケジューリングはどうなってんのか
教えてください。


タイマ1:1ms
タイマ2:10ms
タイマ3:100ms(ところどころでスリープする)

OS=Win2K


83 :デフォルトの名無しさん:03/06/24 22:19
WinMain関数の場合、
return msg.wParam;
の代わりに
return TRUE;
でもいいんですか?

84 :_:03/06/24 22:27
http://homepage.mac.com/hiroyuki44/

85 :デフォルトの名無しさん:03/06/24 22:31
>>81
SetTimerの場合たとえコールバック関数を使っても
メッセージポンプを回してないと呼ばれない。詳しくはこちら
http://www.microsoft.com/msj/0397/hood/hood0397.aspx
(timeSetEventの場合はコールバックが別スレッドなので呼ばれる)

86 :デフォルトの名無しさん:03/06/24 22:37
>>83
たぶんだめぽ(´・ω・`)
手持ちの本っていうか「プログラミングWindows」によると
PostQuitMessage(0)でWM_QUITを発生させてなんやらかんやらで
return msg.wParamは終了時に0を返してアプリを終了させる
でも、TRUEは0以外って規定してあるから…
そんな感じ


87 :デフォルトの名無しさん:03/06/24 22:46
>>86
ありがとう
その本かって見ます

88 :デフォルトの名無しさん:03/06/24 22:52
>>86
> return msg.wParamは終了時に0を返してアプリを終了させる

そこはPostQuitMessageに渡した値が入ってるんでは?

んで、結局終了コードを返すわけだから適当な値なら何でもいいってことかな。
正常終了なら0を返しなさいってことだろう。

だから、正常終了の意味でTRUEはダメだが。

89 :デフォルトの名無しさん:03/06/24 23:38
>>88
たしかに渡した数がreturnされるけど0以外みたことないっすよ

>>87
この本たかいよ(つд`)
ちなみに、書いてたのはP96だから参考までに

90 :デフォルトの名無しさん:03/06/24 23:49
>>89
確かに高いよなー
漏れ上官しか持ってないし

91 :87:03/06/25 08:36
やっぱり高いのか
書店で見かけてスルー下記憶があるからなー(つд`)


92 :デフォルトの名無しさん:03/06/25 10:32
昔は終了コードでバッチ内分岐とかやったけど、今はどうでもいいのかもね。


93 :82:03/06/25 12:01
TRACE して分かりました。
一晩寝て頭がリフレッシュされました。

失礼しました。


94 :13:03/06/25 14:50
>>13でWIN32APIで左クリックの送信方法を質問したものですが
ひとつ問題が発生してしまいました。
クリックイベントは送信されているのですが
送信した後に別なウィンドウを開いてしまうと(ファイルを開くなど)
スクリプトが途中で止まってしまい、なかなか次の作業をしてくれません
何が悪いのでしょうか?(ちゃんとWM_LBUTTONDOWNも送信しています。)

95 :デフォルトの名無しさん:03/06/25 20:01
ネットワークの検索ダイアログを表示したいのですが
次のコードで表示されません。

HMODULE lib;
lib = LoadLibrary("shell32.dll");

typedef BOOL (WINAPI SHFINDCOMPUTER)(LPCITEMIDLIST, LPCITEMIDLIST);
SHFINDCOMPUTER *SHFindComputer;
SHFindComputer = (SHFINDCOMPUTER*)GetProcAddress(lib, (LPCSTR)91);

SHFindComputer(0, 0);

ttp://soramimi-i.com/my2/vb/02/020113.htm
にあるVBコードだと表示されるのですが。

環境は
Windows2000/IE6/VC6
です。
よろしくおねがいします。


96 :DQN:03/06/25 20:40
switch(msg){
case WM_TIMER:
if(上矢印が押されている)処理1;
break;

(省略)
}

WM_TIMERメッセージが呼び出された時に特定のキーが押されているか
どうかを判定するにはどうすればいいか教えて下さい

97 :デフォルトの名無しさん:03/06/25 20:52
>>96
たぶん、

case ボタン押した:
if(右おした)
key=KEYNO_MIGI:
break;

case WM_TIMER:
if(key==KEYNO_MIGI) 処理1;
break;

という感じでは?
最近winプログラムやってないのでうろ覚えだが
最近といっても2年ぐらいだが

98 :13:03/06/25 20:55
>>94
もう少し簡単に説明しますと

ファイルをを開くボタンをWM_LBUTTONDOWNで送信
               ↓
     ファイルを開くウィンドウが開く
               ↓
     WM_LBUTTONDUPでボタンを戻す
               ↓
しかし、そのままの状態で次の処理に進まない

という現象がおきてしまいます。これはHSPが悪いんでしょうか?
それとも命令の仕方が何か足りないのでしょうか?

99 :デフォルトの名無しさん:03/06/25 21:21
>>96
GetKeyState関数の引数に↑の仮想キーコード"VK_UP"を
セットして戻り値を調べる。MSDNでこのあたりのAPIを調べれば
他にもいろいろと調べる方法はあるはず。









ひょっとしてネタなのか?

100 :デフォルトの名無しさん :03/06/25 21:28
100get's

101 :デフォルトの名無しさん:03/06/25 23:10
>>99
なんでもネタというのはだめだよ


ネタか?

102 :DQN:03/06/25 23:30
>99
上手くいかないです
以下のようにしたのですが、一度押したキーを離しても
if(r!=0)*x=*x+2;が実行されてしまいます


void p_mov(int *x,int *y){
short r;

r=GetKeyState(VK_RIGHT);
if(r!=0)*x=*x+2;
}


(略)

case WM_TIMER:
p_mov(&x,&y);
InvalidateRect(hw,NULL,TRUE);
break;
(略)

103 :DQN:03/06/25 23:38
>97
それだといちど右矢印キーを押したら
WM_TIMERメッセージが来るたびに処理1をする形になると思うのですが
私がやりたいのは、WM_TIMERメッセージが来た時に
キーが押されていれば処理1をしてキーが押されていなければ
処理1をしないようにしたいのです。
分かりにくくて申し訳ありません。

104 :デフォルトの名無しさん:03/06/25 23:39
if (r < 0)
だろ

105 :デフォルトの名無しさん:03/06/25 23:40
そんなときはDirectXだ!!

106 :デフォルトの名無しさん:03/06/25 23:40
>>102
r!=0って・・・。

戻り値くらいちゃんと調べろよ。

107 :デフォルトの名無しさん:03/06/25 23:48
>>102
GetKeyState()はメッセージキューにKeyDownがたまってしまうからね(多分)

if(::GetAsyncKeyState(VK_SHIFT) & 0x8000 )
 //キーが押されている
else
 //キーが押されていない

で。

108 :デフォルトの名無しさん:03/06/25 23:49
あ VK_SHIFT じゃなかった。

109 :DQN:03/06/25 23:53
>104,>106
上手くいきました、ありがとうございます

教科書をみたら(r<0)の形で書いてあったのですが
「最上位ビットが1なら指定されたキーが押されている、0なら押されていない」
という説明が教科書に書いてあったので、
0じゃなければ押されている状態だと思って>102のように書いたのです。
なんかすごい勘違いしてたみたいです。

110 :デフォルトの名無しさん:03/06/25 23:53
しかも
× GetKeyState()はメッセージキューにKeyDownがたまってしまう
○ GetKeyState()はメッセージキューにたまったKeyDownを見る

酔ってる漏れ。

111 :デフォルトの名無しさん:03/06/26 00:16
下のような感じでフォルダを選択するダイアログを
SHBrowseForFolder()で出したいのですが、
C言語で書いていると、
pMalloc->Release();
がコンパイルエラーで通ってくれません。
C++を使わずにCで代用するための方法がありましたらご教授いただけないでしょうか?

LPMALLOC pMalloc = NULL;

SHGetMalloc(&pMalloc);
pidlSelected = SHBrowseForFolder(&bi);
pMalloc->Free(pidlRoot);
pMalloc->Release();

112 :デフォルトの名無しさん:03/06/26 00:21
■■■かわいそうな「ゲーム君」を2ちゃんの力でトップにしよう!■■■

HSPプログラムコンテスト2003オンライン投票           
http://www.onionsoft.net/hsp/contest2003/entryn1.html
                       
HSPプログラムコンテスト2003に一番乗りで出展したものの          
Windowsに標準でついてくるゲームを手軽に起動できるという(というかただのショートカットつめあわせ)
しょーもないプログラムでたたかれまくっているプログラミング暦3年(!)の高校生の
作品、ゲーム君をみんなの力で一位にしよう。
【【【 投票方法 】】】                                                
http://www.onionsoft.net/hsp/contest2003/entryn1.html の一番下、エントリーNo8の「ゲーム君」
評価を「A」で選んでコメントを記入して「送信」(コメントいれるとなおよし)           
http://www.onionsoft.net/hsp/contest2003/eval/eval.cgi?md=cmt&id=8
でいままで送信されたコメントが見えるよ!(けっこう笑える)                 

113 :デフォルトの名無しさん:03/06/26 00:32
pMalloc->lpVtbl->Release(pMalloc);

114 :111:03/06/26 00:47
>>113
ありがとうございました。
呼び出し方が違うんですね。
http://www.hidecnet.ne.jp/~sinzan/tips/vc/vc_tip05.htm

115 :デフォルトの名無しさん:03/06/26 07:10
>>98

dialog ""
mes "この文字がいつ表示されたかを考えましょう"
stop

↑を実行すればわかるかと…

116 :デフォルトの名無しさん:03/06/26 12:34
>>113 の隣(?)のページに個人的に凄く不思議なことが書いてあるんだけど

http://www.hidecnet.ne.jp/~sinzan/tips/vc/vc_tip04.htm
> 関数 CoCreateInstance() の第1引数と第4引数は、C言語とC++言語とでは、異なる型を使用しています。

なんでリンクできて動作しちゃうの?
ポインタと参照って内部的には同じ扱いなの?
誰か知ってる人いたら教えてくれます?

117 :デフォルトの名無しさん:03/06/26 12:35
>>116
誤) >>113
正) >>114

118 :デフォルトの名無しさん:03/06/26 19:09
>>116
同じ

119 :13:03/06/27 00:27
>>115
こんな感じになりました。
ファイルをを開くボタンをWM_LBUTTONDOWNで送信
               ↓ →「処理OK」
     ファイルを開くウィンドウが開く
               ↓ →「処理OK」
     WM_LBUTTONDUPでボタンを戻す
               ↓ →音沙汰なし。
               ↓  (だけど、クリックして開いたウィンドウを閉じると処理が再開する)

こんな感じです。



120 :デフォルトの名無しさん:03/06/27 00:34
ちと板違いかもですが、VC.NET買って現在勉強中なんですが
で、自分なりに勉強の仕方考えてるんですが、
WINAPI>STL>MFC
って感じに勉強していったらいいんですかね??
今は「猫でも分かる」でWINAPIで勉強中です

121 :デフォルトの名無しさん:03/06/27 00:35
■■■かわいそうな「ゲーム君」を2ちゃんの力でトップにしよう!■■■

HSPプログラムコンテスト2003オンライン投票           
http://www.onionsoft.net/hsp/contest2003/entryn1.html
                       
HSPプログラムコンテスト2003に一番乗りで出展したものの          
Windowsに標準でついてくるゲームを手軽に起動できるという(というかただのショートカットつめあわせ)
しょーもないプログラムでたたかれまくっているプログラミング暦3年(!)の高校生の
作品、ゲーム君をみんなの力で一位にしよう。
【【【 投票方法 】】】                                                
http://www.onionsoft.net/hsp/contest2003/entryn1.html の一番下、エントリーNo8の「ゲーム君」
評価を「A」で選んでコメントを記入して「送信」(コメントいれるとなおよし)           
http://www.onionsoft.net/hsp/contest2003/eval/eval.cgi?md=cmt&id=8
でいままで送信されたコメントが見えるよ!(けっこう笑える)  

122 :デフォルトの名無しさん:03/06/27 00:56
現在の CPU の位相と角速度を求める API はありますか?

123 :デフォルトの名無しさん:03/06/27 01:29
>>122

そのAPIを実行した途端、「現在」ではなくなりますが。

124 :デフォルトの名無しさん:03/06/27 01:53
>>123
アアムジョウ

125 :デフォルトの名無しさん:03/06/27 01:55
>>119
115の言いたい事分かってる?
あと
WM_LBUTTONUP
はこの場合特に必要ない

126 :デフォルトの名無しさん:03/06/27 14:19
>>120
君が何を将来的にしたいかによる

127 :デフォルトの名無しさん:03/06/27 14:48
将来というかプログラマになるのなら、
開発環境がなんであっても対処できるようにならなければ駄目

128 :デフォルトの名無しさん:03/06/27 15:57
すみません、ジョイパッドってどうやって処理すればいいのでしょうか?
WM_KEYDOWNでやってみたら上手くいなかったです

129 :デフォルトの名無しさん:03/06/27 16:17
WM_KEYDOWNはキーボードのメッセージです
ジョイパッドでうまくいかなかったのは当然です
心配する必要はありません

130 :デフォルトの名無しさん:03/06/27 16:33
joyGetDevCaps、joyGetPosで出来まふよ

131 :デフォルトの名無しさん:03/06/27 16:40
有難うございます

132 :デフォルトの名無しさん:03/06/27 17:11
自前でBMP画像を印刷する関数を作りました。
普通にプリンタのDC取得して、SetPixel()で左上からピクセルを
コピーしていくような単純なルーチンです。

Win付属のペイントと比べ、印刷時の時間が格段に遅くイライラしてしまいます。
ビットマップ印刷用のAPIなどが用意されているのでしょうか?
ちなみに環境はWindows2000/VC6/VC7です。

133 :デフォルトの名無しさん:03/06/27 17:14
DIBを使ってください

134 :デフォルトの名無しさん:03/06/27 17:27
DIB?ツカットコトナイヨー!!
それで早くなるならやってみます!!

135 :デフォルトの名無しさん:03/06/27 17:30
>133
もうちょい情報ください。なかなか検索ひっかからんです。API名とか

136 :デフォルトの名無しさん:03/06/27 17:34
無茶苦茶引っかかるんだが、どうやって検索しているんだ?
まずは検索方法を晒せ

137 :デフォルトの名無しさん:03/06/27 17:44
よくわかんないんだけど、BYTE型とかのRGBの配列をDIBって言うの??
今も内部データはそんな感じなんだけど、そのまんま使えるのかな?

138 :デフォルトの名無しさん:03/06/27 17:48
>>136
DIBは引っ掛かるけどどのAPI使えばいいか分からん、ということでは

139 :デフォルトの名無しさん:03/06/27 17:52
プリンタでDIBは使っちゃだめー
DDBを使いなさい

140 :デフォルトの名無しさん:03/06/27 17:56
パレットの問題ってこと?

141 :デフォルトの名無しさん:03/06/27 19:15
>>132
・プリンタのDCを取得
・そのDCを元にDDBを作成(CreateCompatibleBitmap等)
・作成したDDBにピクセルを設定(GetDIBits等)
・プリンタのDCにDDBを描画(Bitblt等)

これでも、不満か?

142 :ちよ:03/06/27 19:21
よろしく!!
http://www1.free-city.net/home/kotarou/page006.html

143 :デフォルトの名無しさん:03/06/27 20:38
>>132

BMPからDIBを作成
プリンタのDCにDIBをStretchDIBitsで描画

というやり方でできる気がする。
プリンタは解像度に注意。
DIBは、BITMAPFILEHEADERからピクセルまで、自分で読み込んで
作るのが確実かな(それほど難しくはない)。拡大モードの設定
をしてもStretchDIBitsできれいに拡大できない場合は、自分で
適当な拡大処理をすべし。


144 :デフォルトの名無しさん:03/06/28 00:07
ダットファイルの2行目をCharNextExA を使用して
取り出す方法教えてください。
ただし、2行目半角ずれてます。
データは char bufbuf[1024]に読み込んであります。
32APIアプリ文字列関数なくて困ってます。
■黄色.dat
佐藤
めぐみ
小池
eof
w2000,BCC5.5

145 :デフォルトの名無しさん:03/06/28 00:36
>>144
> 32APIアプリ文字列関数なくて困ってます。
lstrlen, lstrcmp とかあるけど。
というか、普通に strchr とか使うのはダメなのか?

146 :デフォルトの名無しさん:03/06/28 00:57
予めダットファイル中身は見れませんが
10字100行程度です。
ヒントがつかめたら、CSVやTAB成型列に
朝鮮したいです。
長さと比較でどうやって2列目切り出すのですか?

147 :_:03/06/28 00:58
http://homepage.mac.com/hiroyuki44/

148 :デフォルトの名無しさん:03/06/28 01:14
もしかして、俺が無知なのかも
BCC5.5でWINアプリ(コンソールでない)
作る場合
#include <string.h> がOK牧場ですか。


149 :デフォルトの名無しさん:03/06/28 01:20
可能

150 :デフォルトの名無しさん:03/06/28 01:46
>149 感謝感謝
がんばってDAT読み取り、3つのリストBOXの
アイテムに入れてみます。
 テンプレ提供歓迎です。
リストBOX1、中井、香取、稲垣
リストBOX2、佐藤、めぐみ、小池
リストBOX3、嘉門、はにわ、てつとも



151 :_:03/06/28 02:09
http://homepage.mac.com/hiroyuki44/

152 :_:03/06/28 03:45
http://homepage.mac.com/hiroyuki44/

153 :_:03/06/28 05:36
http://homepage.mac.com/hiroyuki44/

154 :_:03/06/28 08:30
http://homepage.mac.com/hiroyuki44/

155 :_:03/06/28 09:58
http://homepage.mac.com/hiroyuki44/

156 :デフォルトの名無しさん:03/06/28 10:00
(3)タモリの話し方が気に食わない、などが浮上している。



157 :_:03/06/28 11:05
http://homepage.mac.com/hiroyuki44/

158 :デフォルトの名無しさん:03/06/28 11:15

プラットフォームSDKのドキュメントが、構造体の部分が全て未訳で英語なのですが
どこかに日本語訳されてるドキュメントがないでしょうか?
教えてください。

159 :デフォルトの名無しさん:03/06/28 11:25
>>158
あきらめましょう。

160 :デフォルトの名無しさん:03/06/28 11:53

やはりそうなんですか・・・。JAVAなんかではある程度しっかりと訳してくれてるのに〜
本当に、マイクロソフトって殿様商売ですね〜
ドキュメントも手抜きかつ超冗長な階層ディレクトリですし・・・。訳し方も明らかにプログラミングを
した事がない人が、ただ訳してるという文章も一部ありますし・・・
ボーランドやサンを見習ってほしいです。

161 :デフォルトの名無しさん:03/06/28 11:55
スレ違いで恐縮ですが…
VNCの使い方についてたてられてるスレがあったら
どなたかおしえていただけないでしょうか?

162 :デフォルトの名無しさん:03/06/28 12:09
>>160
つ、釣られないぞ!

163 :デフォルトの名無しさん:03/06/28 12:16
>>161
VNC使ってますか?
http://pc2.2ch.net/test/read.cgi/software/1018166669/

164 :デフォルトの名無しさん:03/06/28 12:40
釣られてみよう

>>160
あの程度の英語も読めないの?
コンピュータ使うの辞めた方がいいよ。


165 :デフォルトの名無しさん:03/06/28 13:12
釣られてみよう

>>164
英語が分からなければコンピュータを使うべきではないのですか?

166 :デフォルトの名無しさん:03/06/28 13:15
別に英語が読めなくても問題はない
それよりも翻訳ソフトなり翻訳サイトなりを利用するという、その程度の頭も働かないところが問題

167 :デフォルトの名無しさん:03/06/28 13:15
>>165
>英語が分からなければコンピュータを使うべきではないのですか?

程度によるな。プログラミングするなら、ifとかwhileとかbreakといった英単語の意味くらいはわかってないとつらいだろうし。日本語版のソフトを使うだけなら、別に英語は不要だけどね。


168 :160:03/06/28 13:41

あのな〜。一応僕は英検2級なんだよ。
でもプログラミングはずぶの初心者だから、SDKの文に何か専門用語だとかその分野特有の
言い回しとかがあると、変な誤訳する可能性があるからそれが怖くて言ってるの。

失礼だが、自称中級者ほど英文の怖さを分かってないもんだ。その語句の
代表的な意味だけを汲んで「分かった感じ」になる事の危険性ぐらい頭に置いてくれ。



169 :デフォルトの名無しさん:03/06/28 13:43
( ´,_ゝ`)プッ

170 :デフォルトの名無しさん:03/06/28 13:48
英検2級であの程度の文が読めないっての…?
それは変だろ
中卒か高校一、二年程度の英語だぞ

171 :160:03/06/28 13:52

今の所は読めるよ。でもこれからもっといろいろ読む様になった時の
誤訳の可能性が怖いんだよ。


172 :デフォルトの名無しさん:03/06/28 13:53
言い訳ばっかりだな
翻訳された物が正しい保証など無い

173 :デフォルトの名無しさん:03/06/28 13:53
専門用語は数当たるしかないだろうなあ

174 :デフォルトの名無しさん:03/06/28 13:56
日本語に訳す必要がない。英語そのまま理解すれば良し。

175 :160:03/06/28 13:59

素人(自分)よりは信用できるよ。
じゃあドキュメントには、プログラミング分野での特有の意味や言い回しってのは少ないのか。

176 :デフォルトの名無しさん:03/06/28 14:02
用語はあるが、文学小説のような無駄に比喩的な言い回しは無い
用語は訳されていてもカタカナになっているだけ

177 :デフォルトの名無しさん:03/06/28 14:25
誤訳されてて原文の意味がまったくわからなくなってる時が一番困る。

MS のドキュメントは Basic english だかなんだかっていうルールに従って書かれてるから
馬鹿でも読めるという罠。

178 :デフォルトの名無しさん:03/06/28 14:36
意味が正反対になるような表現って無いと思うんだけど。




179 :デフォルトの名無しさん:03/06/28 14:45
一般的な英語と違うってのがわかっていながら英検二級を自慢か?
そんなんだから煽られるんだっちゅーの

おまえらも久しぶりに叩きがいのある奴紛れ込んできたからって騒ぎすぎ。


180 :デフォルトの名無しさん:03/06/28 14:53
それにしても、>>160は見事な釣りだな・・・。
>>179までで10数匹釣り上げた。
もっとも、バカ丸出しの雑魚ばかりだけど。


181 :デフォルトの名無しさん:03/06/28 14:55
180=160

182 :デフォルトの名無しさん:03/06/28 14:59
>>180
わかったからsageろよ160。


183 :180:03/06/28 15:02
>>181,182

おいおい、俺は160じゃないぞ。
さらに2匹追加かよ・・・・。


184 :デフォルトの名無しさん:03/06/28 15:03
┐(´ー`)┌ どっちでもいいよアフォ

185 :180:03/06/28 15:05
まあ、

186 :あのな〜。一応僕は英検2級なんだよ。:03/06/28 15:06
あのな〜。一応僕は英検2級なんだよ。

187 :デフォルトの名無しさん:03/06/28 15:07
とりあえず、>>160-186はしょうもない○×ってことで終了!
あとは放置ね。


188 :デフォルトの名無しさん:03/06/28 15:13
また英語談義か

189 :160(英検二級):03/06/28 16:22
そんなにうらやましいのか・・・

190 :デフォルトの名無しさん:03/06/28 17:39
すみません、この一文っておかしいでしょうか?
猫のC言語のところではこの書き方で書いてあったのですが
bccでコンパイルしようとしたらエラーがでてきて
'void *'型は'HPEN__*'型に変換できないってなるんです

HPEN oldpen,hpen;
(省略)
oldpen=SelectObject(hdc, hpen);


191 :デフォルトの名無しさん:03/06/28 17:40
>>190
あなたがC言語を使っていない可能性があります

192 :デフォルトの名無しさん:03/06/28 17:41
oldpen=(HPEN__ *)SelectObject(hdc, hpen);
こうするとエラーが出なくなるかもしれないわよ

193 :デフォルトの名無しさん:03/06/28 17:45
何も基本型の方でキャストしなくても・・・

194 :デフォルトの名無しさん:03/06/28 17:49
コンパイル通りました、有難うございます

195 :デフォルトの名無しさん:03/06/28 17:59
俺、一応工業英検2級だけど、MSDNのドキュメントくらい辞書見ながら読んだら理解できると思うぞ。

196 :デフォルトの名無しさん:03/06/28 18:00
辞書なんかいらないだろ

197 :デフォルトの名無しさん:03/06/28 18:03
思い立って辞書を引くとプログラミング用語と英語では意味が違って混乱することもたまに

198 :デフォルトの名無しさん:03/06/28 18:04
用語は日本語訳されてもカタカナに変換されるだけなので、
結局その用語を知らなければ意味は通りません

199 :名無し@沢村:03/06/28 18:07
おまいらはコンピュータ用語辞典のサイトも知らないのか。
あー、嘆かわしい・・・・

200 :デフォルトの名無しさん:03/06/28 18:08
>>199
教えてくれ

201 :デフォルトの名無しさん:03/06/28 20:36
プログラム言語が読めれば、何してるかはわかるんだから英語だろうが中国語だろうが
特に問題にはならないと思うけど。

202 :デフォルトの名無しさん:03/06/28 20:40
要は、コードを見た時に「マシンの気持ち」になって、マシンに共感しながらその処理内容を実感できれば最強のプログラマになれる、ってことなんだよね。


203 :デフォルトの名無しさん:03/06/28 21:06
エロいな

204 :デフォルトの名無しさん:03/06/28 21:33
つまり女を扱いたかったら、女の気持ちになって、一度男に犯られてみろと?

205 :デフォルトの名無しさん:03/06/28 21:50
   | |/ノ二__‐──ァ   ヽニニ二二二ヾ } ,'⌒ヽ
  /⌒!|  =彳o。ト ̄ヽ     '´ !o_シ`ヾ | i/ ヽ

206 :デフォルトの名無しさん:03/06/28 22:23
>>205
そんな目で見るな

207 :デフォルトの名無しさん:03/06/29 09:20
盛りあがっている?
ところすいませんどうしても解決できないことがあります。

コントロールパネルの「マウス」の「速度」の設定値を取得する方法あるのでしょうか?

欲を言えば変更もできるといのですが。
あの速度の設定で加速される量というのは何処かに定義されているのでそうか?

ご存知の方、教えていただけないでしょうか?






208 :デフォルトの名無しさん:03/06/29 09:28
>>207
レジストリ内をくまなく探せ
REGMONを併用すると楽に見つかる

209 :95371:03/06/29 09:57


18禁ふりま http://www.freepe.com/ii.cgi?furima0323


210 :デフォルトの名無しさん:03/06/29 10:00
64ビット用のWindowsならWIN64APIになるの?

211 :デフォルトの名無しさん:03/06/29 10:52
対応コンパイラを使えば

212 :デフォルトの名無しさん:03/06/29 11:03
「Alquade」というソフトの
ttp://hp.vector.co.jp/authors/VA028199/alquade/help/combinedhelp.html
>Alquade では Windows API で保証されていない手法を一部使用しております。

ってどんな手法かわかりますか?

213 :デフォルトの名無しさん:03/06/29 11:04
非公開APIでも使っているんじゃないの?

214 :デフォルトの名無しさん:03/06/29 12:09
>>208
アリガト、必要な情報を得ることができたよ。
マウスの情報 取得 とかで検索掛けてもまったく見つからなかったけど、
マウスの高速化で検索するといっぱいありました。

調べた情報も還元しておきます。
HKEY_CURRENT_USER→Control Panel→Mouse

MouseSpeed 加速スピードを設定。1で2倍速、2で4倍速、それ以外の数値は加速無しになる。
MouseThreshold1 加速度有効までの距離。2倍速になるまでのドット数を入力。MouseSpeed1か2を設定していないと無効になる。
MouseThreshold2 加速度有効までの距離。4倍速になるまでのドット数を入力。MouseSpeed1か2を設定していないと無効になる。

この部分はスレ違いですが...
DirectIMPUTでデバイスから直接データ取得しても、この部分は加味されていないので
自前で計算が必要なんですね。

某ROでウインドモードでマウスが遅くなるというのは、(この件を検索する段階で多く見かけたので)
この辺を計算していないからな。(現在の対応は知りませんが、このゲーム名前しか知らないので)



215 :デフォルトの名無しさん:03/06/29 13:16
>>214
これは
SystemParametersInfo
SPI_GETMOUSE, SPI_GETMOUSESPEED
で取得できる情報とは違うの?


216 :デフォルトの名無しさん:03/06/29 14:53
>>215
そのようですね。
取りあえず、数値の意味が調べられてので
前の件で調べたことは無駄にはなりませんでしたが。
レジストリ取得のデバック開始したとこでした。こちらのほうが楽ですね。

>>215,208さん
どうもありがとう


217 :デフォルトの名無しさん:03/06/29 19:15

SDKドキュメントを読み始めたのですが、何だか項目を選択するとそのまた下に項目が
出て、それを選択するとそのまた下に項目が出てって感じて延々と続くんですけど、
しかも複数の項目が出るならまだ分かるんですが一つだけの項目の下にまた一つだけって
感じで、何だか箱を空けたらその中にまた箱が入ってたっていう笑い話みたいなんですけど、
もしかしてこれって不良品なんですか?全然説明文にたどり着けません。
誰か教えてください。



218 :デフォルトの名無しさん:03/06/29 19:24
とりあえず必要は情報はキーワード検索にかけてみる
あと、MSDN再インスコ

219 :デフォルトの名無しさん:03/06/29 19:24
必要は情報->必要な情報

220 :デフォルトの名無しさん:03/06/29 19:26
釣られ損ねた。

MSDNに限って言えば日本語訳はかなり怪しいので原文を見たほうが良いと思う。
日本語訳の方は内容古いし、よく情報が欠けてる。


221 :デフォルトの名無しさん:03/06/29 19:58
SystemParametersInfo
追加情報 これは標準マウスのデータしか返さないようです。
トラックパッド トラックポイントはまた別のようです 鬱だ


222 :デフォルトの名無しさん:03/06/29 20:58
ダイアログの表示完了を知りたいのですが、どんな方法がありますか?
ダイアログにWMメッセージを送信したいのですが、ダイアログの表示命令を出した直後に、
PostMessageするためダイアログが開ききっておらず無効になっているようなのです。
Sleep関数以外でよい方法があったら教えてください。おねがいします。

223 :デフォルトの名無しさん:03/06/29 21:13
>>222
文意が今ひとつはっきりしないがWM_INITDIALOGじゃだめなのか?

224 :貧乏脱出!これであなたはお金持ち:03/06/29 21:24
普通に働いてお金持ちになれるのは全体の1%のみって本当!?
本当にお金持ちになるにはやはり「副収入」が必要!
一日30分 おうちでコピペ、コピペ!
嘘だと思うんならランキング見てみてくださいよ↓↓
(直リン不可)
http://www.adultshoping.com/addclickport.cgi?pid=1053353765(直リン不可)



225 :デフォルトの名無しさん:03/06/29 22:43
>>222
ダイアログ プロシージャのcase WM_INITDIALOGで
SendMessage(GetParent(hDlg), WM_COMMAND, 0, (LPARAM)hDlg);
とかは?

226 :デフォルトの名無しさん:03/06/30 04:27
shellapi.hの最新版はどこでダウンロードできるのですか?
教えてください


227 :デフォルトの名無しさん:03/06/30 09:27
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/

228 :デフォルトの名無しさん:03/06/30 11:14
教えてください。
ウィンドを持たないプログラム(xxx.exe)を
強制終了させたいです。
xxx.exe のプロセスIDに TerminateProcess をすれば良い
というところまでは解ったのですが、
プロセスIDを取得する方法がわかりません。
お願いします

229 :デフォルトの名無しさん:03/06/30 11:23
プロセスを列挙するだけ

230 :デフォルトの名無しさん:03/06/30 15:47
win9xの"C:\Program Files"内で
GetCurrentDirectory、もしくはGetModuleFileName
を利用した所、\Program Filesの部分が化けました。
ただし、Api使用はDelphi6経由です。


p:pchar;
GetModuleFileName(0,255,p);
writeln(string(p));

半角スペース部分を何とかすればよいと思うのですが…

231 :230:03/06/30 15:55
うっ、自己解決しました。
メモリ割り当てを
new(p)
なんぞしておった。

p:=allocmem(255);
だな。

スレ違いスマン。

232 :デフォルトの名無しさん:03/06/30 15:55
いきなりスレ違いですいません。ただ今祭り開催中です。
先日、6月27日、埼玉県の大宮で「年上好き男年下好き女神」というオフが開催されました。
このオフは、幹事も参加者もオフ初心者ばかりでした。このオフは一度開催され、
今回は新規メンバーを入れての二回目でした。
これは、オフを勘違いしてるねらーがいて、それが当たり前だと思っている人達を紹介します。
【登場人物紹介】
  モチッコ:このオフの幹事、セクハラばっか、幹事特権行使する
  ヘルシア:自称オフ板常連者、個人プレーが得意、目立ちたがりや
  inagawadonn:不細工セクハラ王、酔ったふりで女を口説く、脱いで受け狙い
  太平洋:メガネヒッキー、会話ができないキモヲタ、ナルシスト、スカシ
  せん:いい年して落ち着きの無い典型的ダメ人間、ノリでセクハラ、馬鹿
  ゆうや:浪人生、テニスラケット持ってくる不思議君を演じる奴、未成年
  キュービック:女にやたら年を聞き、年齢の話題が大好き、悪ノリ
 この男達が参加メンバーです。その日、オフ参加初めての気の弱そうな男性が来ました。
その方はちょっと変わった服装で上着に帯のような物が着いていました。参加者は
それを見て、柔道着だと馬鹿にし、彼が席を立つ度に大爆笑しました。
しまいには本人の前で柔道の話をして女性から笑いをとりました。
自分達こそそんなおしゃれでもないのに彼を馬鹿にし、ある者はこっそり写メールまで
撮りました。みんな初対面なのに、いじめで仲良くなるオフ会、私も、輪からはみ出るのが
怖くて一緒に馬鹿にしてしまった加害者です。彼は勿論気づいていてとても悲しそうな顔で帰りました
後日、オフレポを読もうと思いレスを見ると、みな、柔道の話題が含んでありました。いい大人が
人を馬鹿にしてまだ楽しんでいます。「これから柔道着オフにする?」とちっとも反省していません。
それはおかしいと第三者の意見を言ってあげてください。また7月11日に開催されます。
※もし、ご協力いただけるならば、この文をコピペして他のスレに書き込んでください。できるだけ多くの方に
 考えていただいたいので、面倒ではありますがよろしくお願いします。
http://ex3.2ch.net/test/read.cgi/offreg/1055133705/l50


233 :デフォルトの名無しさん:03/07/01 20:35
スクリーンセーバーのON/OFFをするAPIとかないですかね?
漏れの中には50秒ごとにMouseMoveとかKeyDownとかの
メッセージ投げるぐらいのことしか
見つからなかった&浮かばなかったもので・・・。

234 :デフォルトの名無しさん:03/07/01 20:46
>>233

自アプリがアクティブな時だけの話なら、WM_SYSCOMMAND/SC_SCREENSAVEを
握りつぶす。

んじゃなきゃ、今の通りにやるしか無いだろね。

235 :デフォルトの名無しさん:03/07/01 20:47
ネットで稼ぐならこれ。完全無料!!
リンクスタッフに登録すれば小遣い稼ぎができます!!

[報酬について]
クリック報酬・・・1クリックされる度に10円の報酬
バナー紹介料・・・リンクスタッフ登録の度に500円の報酬
プレミアム・・・優秀サイトには、報酬に応じてボーナス有り
別に自分のホームページがなくてもできます。(URLを書く欄は適当でいいです)

単純に考えて1日100人クリックしたとすると、100人×10円×30日=30000円(一ヶ月)
そこらへんの掲示板に貼り付けていけば100クリックなんてスグです。
その他、自分の貼り付けた広告から誰かがスタッフになると500円もらえるので
1日5人スタッフを紹介したとして500×5×30=75000円
30000+75000=105000!!しかも間接報酬などもありますので一ヶ月に10万円以上稼げます!!
http://www.hptouroku.com/cgi-bin/affiliates/clickthru.cgi?id=252
超おすすめです!!ぜひ一度のぞいて見てはいかがでしょうか?

236 :デフォルトの名無しさん:03/07/01 21:10
>>233
SetThreadExecutionState じゃだめか?
スリープ状態に入るのを阻止する API だけど、
ES_DISPLAY_REQUIRED フラグはまだ試したこと無いんだよな。


237 :デフォルトの名無しさん:03/07/01 21:11
(;´Д`)ハァハァ ボッキしますた
http://homepage3.nifty.com/coco-nut/

238 :デフォルトの名無しさん:03/07/01 21:16
#define STRICT

ってどういうときに使うんですか?

239 :デフォルトの名無しさん:03/07/01 21:19
>>233
SystemParametersInfoのSPI_SETSCREENSAVEACTIVEは?
Tipsサイトとかによく出てると思うんだが……なんか漏れ勘違いしてる???

240 :238:03/07/01 21:22
>>238
ttp://www7.plala.or.jp/keny01/win32/01-10.html

自己解決しました。
ありがとさん(だれにだよ)

241 :デフォルトの名無しさん:03/07/01 21:37
>>240
型チェックが厳密になる。
実際にはHANDLEだったのがHWNDとかHDCとかに再定義されたりするわけだが。

MSDNで「STRICT を使った型チェックの改善」見とくといいよ。

あと、VC6あたりからはデフォルトでプロジェクトにSTRICT定義が入ってるはず。

242 :デフォルトの名無しさん:03/07/01 21:42
>>239

「システムの設定を変えるためのプログラム」を作っているんでなければ、
勝手にシステム設定をいじるのは邪道だと思うのは漏れだけかなあ?

243 :デフォルトの名無しさん:03/07/01 21:45
システムの設定をいじる必要など無い
存在するスクリーンセーバーのプログラムを手当たり次第に消すようにすればいい
これ王道

244 :238:03/07/01 22:03
>>241
ありがとう

245 :デフォルトの名無しさん:03/07/01 22:18
MessageBox を使って、スクリーンセーバーの設定を切ってくださいとユーザーに頼む

246 :デフォルトの名無しさん:03/07/01 22:40
PeekMessageでCPUを使い切るとか
それなら50秒ごとにメッセージ投げたほうがまだマシだな

247 :239:03/07/01 22:55
>>242
むぅ、確かにその通りだ。軽率なレススマソ。

するとやはり50秒ごとにメッセージ投げるしかないのかなぁ。
ざっとぐぐった感じだと、みんなそういう対処だね。
なんか気に入らないけど、一時的に無効にするような手段が用意されてないなら
それしかないのかな。

248 :デフォルトの名無しさん:03/07/02 00:01
>>247
スクリーンセーバーをソフト側で抑止する方法ならあるですよ。

WM_SYSCOMMANDで、wParamがSC_SCREENSAVEの時に
0以外を返すとスクリーンセーバーが起動しなくなります。
SC_MONITORPOWERならモニタオフもしなくなるよ。

Windowsが問い合わせてきてダメならダメと言えば良いらしい。
ゲームとかで割と便利だったり。

249 :233:03/07/02 00:02
レスくれたしとたち>
 ありがとござました。
 SystemParametersInfoで逝きます。
 てか、それで逝ってって言われた。
 てか、その前に、スクリーンセーバがかかると
 落ちるシステムを何とかしる!・・・いや、もう言うまい

250 :デフォルトの名無しさん:03/07/02 00:55
>>248
それは>>234が「自アプリがアクティブな時だけ」と書いているんだが。

>>249
設定変えたまま異常終了されたらいやだな。

251 :デフォルトの名無しさん:03/07/02 01:19
>>250
スマソ

252 :デフォルトの名無しさん:03/07/02 02:03
ちなみに、メッセージ投げるんでなくて、SetCursorPosするだけで
スクリーンセーバは防げるという話は聞いたことあるぞ。


253 :デフォルトの名無しさん:03/07/02 09:34
勝手にカーソル位置変えられるより
見た目無害なメッセージのほうがよさげ

254 :名無し@沢村:03/07/02 12:16
>>253
ヌヒよ、現在のカーソル位置を取得して、その値でSetCursorPos()すればいいんじゃないのか?
ヌヒよ、現在のカーソル位置を取得して、その値でSetCursorPos()すればいいんじゃないのか?
ヌヒよ、現在のカーソル位置を取得して、その値でSetCursorPos()すればいいんじゃないのか?

255 :デフォルトの名無しさん:03/07/02 12:28
いや、カーソル位置は変えないのよ。
GetCursorPosで取ってきた座標にSetCursorPosするだけ。

たしか、同じようにスクリーンセーバで悩んでたやつが
最終的にそういう手法を見つけたんだと思う。

256 :デフォルトの名無しさん:03/07/02 12:49
スクリーンセーバ解除用に昔つくった関数(w

//移動量が小さかったり、SetCursorPosを単発で呼んだだけだとスクリーン
//セーバは一度解除されるものの、0.5秒後ぐらいに復帰してしまう
POINT cur;
GetCursorPos(&cur);

for(UINT i=1; i<=5; ++i) {
 if(!::SetCursorPos(cur.x+i, cur.y+i) ) //画面の端で移動に失敗
  ::SetCursorPos(cur.x-i, cur.y-i);
 ::Sleep(5);
}
Sleep(20);
SetCursorPos(cur.x, cur.y);

257 :デフォルトの名無しさん:03/07/02 21:18
最初ウィンドウサイズを100*100にしておいて、
スペースボタンを押すと100*200になって、
更にスペースを押すと100*100に戻る。
(以降スペースを押すたびに100*100と100*200が入れ替わる)

というウィンドウを作るにはどうすればいいか教えて下さい。

258 :デフォルトの名無しさん:03/07/02 21:31
>>256
画面の右上か左下にいたら失敗しそうに見えるが…

259 :デフォルトの名無しさん:03/07/02 21:39
>257
どうすればいいって、そのまんまじゃん。
判らない事は1つずつ尋ねるべし!

260 :デフォルトの名無しさん:03/07/02 21:42
>>259
最初ウィンドウサイズを100*100にしておいて、

261 :デフォルトの名無しさん:03/07/02 21:51
スタティックテキストのフォントサイズをかえるにはどうすればいいんですか?

262 :257:03/07/02 22:24
レス有難うございます

CreateWindow関数のパラメータで最初のウィンドウを100*100にする方法は分かります
スペースキーを押す事でWM_KEYDOWNメッセージがアプリケーションに送られて、
(wparam==VK_SPACE)が真か偽かを判定することによって、
押されたキーがスペースである事を判別する方法は知っています

ただ、スペースキーが押された時にどういった関数を呼び出す事によって、
ウィンドウサイズを変更できるかが良く分からないのです

263 :デフォルトの名無しさん:03/07/02 22:26
>262
どうすればいいって、そのまんまじゃん。
判らない事は1つずつ尋ねるべし!


264 :デフォルトの名無しさん:03/07/02 22:45
>>262
あなたの言う「ウインドウサイズ」とは
もしかして「クライアント領域のサイズ」のことか

265 :257:03/07/02 22:50
>264
そうです

266 :デフォルトの名無しさん:03/07/02 22:52
>>264
なんだと思ったんだ?(w

267 :デフォルトの名無しさん:03/07/02 22:55
エディットボックスにタブを入れようとすると次のコントロールが
アクティブになっちまう。なんかいい方法ないでつか?

あとタブをコピーしてペーストしたらタブが八文字ぶんになっちまう。
これもなんかいい解決法キボン

268 :デフォルトの名無しさん:03/07/02 23:04
Windowsではウィンドウサイズとクライアントサイズは別物だぞ

269 :デフォルトの名無しさん:03/07/02 23:38
AdjustWindowRect

270 :デフォルトの名無しさん:03/07/02 23:39
んでMoveWindow

271 :デフォルトの名無しさん:03/07/03 02:25
ツールバーやステータスバーなどの上下に張り付くウィンドウを差し引いた
クライアント領域を自動で取得する関数ってつくれまつか?
ステータスバー等の有無も自動で認識してくれるといいんですが。
おながいします。



272 :デフォルトの名無しさん:03/07/03 02:44
>>269&270
以前、
http://pc2.2ch.net/test/read.cgi/tech/1055864305/154
こういうのを作ったんだけど、ちゃんと関数あったんだね・・・。
うかつだった。。。
鳥がナクナクこけこっこ〜。はぁ・・・。


273 :デフォルトの名無しさん:03/07/03 07:21
よくインストーラでタスクバーを消して画面いっぱいに描画している
のを見ますが、あれは
1、タスクバーを消しているのではなくウインドウを最前面に表示して
いるだけのでしょうか?だとしたら、タスクバーの部分まで隠して画面サイズに合わせて
最大化するAPIなんかあるのでしょうか?
教えてください。

274 :デフォルトの名無しさん:03/07/03 10:38
yes > 273

275 :デフォルトの名無しさん:03/07/03 11:31
<274
ありがとうございます!!
あなたはこのような経験をされたことございますか?
もしよろしかったら手順を教えてください。

276 :デフォルトの名無しさん:03/07/03 11:47
>275
hWnd = CreateWindow(szAppName, szTitle, WS_OVERLAPPED ,
  0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), ......


277 :デフォルトの名無しさん:03/07/03 11:56
>>276
CreateWindowEx(WS_EX_TOPMOST, ...)
でないとタスクバーは隠せないと思うが。

278 :名無し@沢村:03/07/03 13:19
>>267
> エディットボックスにタブを入れようとすると次のコントロールが
> アクティブになっちまう。なんかいい方法ないでつか?
WM_GETDLGCODEのハンドラが返す値をいろいろいじってみる。

> あとタブをコピーしてペーストしたらタブが八文字ぶんになっちまう。
> これもなんかいい解決法キボン
WM_SETTEXTのハンドラで好きなようにする。

279 :デフォルトの名無しさん:03/07/03 20:32
<<276
<<277
すばらしいですね!やっぱりデベロッパーはすごいですね。
関心してしまいます。



280 :276:03/07/03 20:36
>277
そうすか。環境や状況依存かも。一応、自分とこは隠れるのでウソつきじゃないって事で...

281 :デフォルトの名無しさん:03/07/03 21:36
>>276
私はVBでプログラムしておりますが、フォームを新規に作成してコードで
ボタンなど追加しなくてもいいようにVS.NETで作成したフォームでウインドウ
の最大化だけをAPIに任せるような使い方はできないのでしょうか?



282 :デフォルトの名無しさん:03/07/03 21:39
>>281
できます。

283 :デフォルトの名無しさん:03/07/03 21:51
>>272
GetSystemMetricsなんてのもあるな

284 :デフォルトの名無しさん:03/07/03 22:27
エディットコントロールに文字を約60KB以上表示しようとしたら
表示されなくなってしまいました。
EM_SETLIMITTEXTあたりかなと思いましたが、ダメなようです。
何か良い方法はないでしょうか?


285 :デフォルトの名無しさん:03/07/03 22:32
いつまでも9X使ってないで、NT technologyにしなさい。

286 :デフォルトの名無しさん:03/07/03 22:38
>>284
つりですか?


287 :デフォルトの名無しさん:03/07/03 23:47
   おっ、なんか来た。
   ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ,/ヽ
                ,/   ヽ
       ∧_∧  ,/      ヽ
      ( ´∀`),/          ヽ
      (  つつ@            ヽ
  __  | | |                ヽ
 |――| (__)_)                ヽ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|                ヽ
⌒\/⌒\/⌒\|彡~゚ ゜~ ~。゜ ~ ~ ~ ~~ ~ ~~ ~ ~~
⌒\/⌒\/⌒\彡 〜 〜〜 〜〜 〜〜 〜 〜
                           |
                           |<<286

288 :デフォルトの名無しさん:03/07/04 00:08
API を使ってフラッシュムービー(swf ファイル)を再生するような方法を
知ってる方いませんか?
もしくはそれに似た方法でも・・・なにかありませんか?

289 :デフォルトの名無しさん:03/07/04 00:14
>>288
ShellExcuteを使ってIEを.swfファイルを引数にして呼べば
うまくいくかもしれない。試してないけど。


290 :デフォルトの名無しさん:03/07/04 00:24
>>289
ヒント感謝します。
さっそくShellExcute を検索してみます。

291 :デフォルトの名無しさん:03/07/04 00:37
どっかにATL使ってCOM経由でFlash再生するってネタならあったが。

292 :デフォルトの名無しさん:03/07/04 00:37
開けました。大感謝です。
ついでに呼び出したウィンドウと同一ウィンドウ内で開く方法とかも・・・
・・・自分で探してみます。

293 :デフォルトの名無しさん:03/07/04 00:40
>>291
普通最初にそれを思いつくだろ・・・

294 :デフォルトの名無しさん:03/07/04 08:48
おしえてください
アイコンの指定はウィンドウクラスでhIconメンバーですが
ファイルに付くアイコンの指定方法がわかりません、
ビルドによってアイコンを変えたいのですが・・

295 :_:03/07/04 08:55
http://homepage.mac.com/hiroyuki44/hankaku02.html

296 :デフォルトの名無しさん:03/07/04 09:02
今日はここで(;´Д`)ハァハァ
http://homepage3.nifty.com/coco-nut/

297 :デフォルトの名無しさん:03/07/04 11:11
リストビューの項目で全ての文字列を表示できない場合はツールチップ表示にはどうすればいいんですか?

298 :デフォルトの名無しさん:03/07/04 11:46
>>294
スレ違いだと思うが…
リソースの中で番号がいちばん若いアイコン

299 :デフォルトの名無しさん:03/07/04 11:47
LVM_SETTOOLTIPS
wParam = 0;
lParam = (LPARAM)(HWND)hwndToolTip;



300 :297:03/07/04 12:34
>>299
これだけでいいんですか…
ありがとうございます。

301 :デフォルトの名無しさん:03/07/04 13:29
>>298
すみません。スレ違いですか APIで命令があると思って・・・


302 :デフォルトの名無しさん:03/07/04 14:02
起動する前の状態のファイルからどうやってAPIを使うの?
ファイルがあるだけで発動するウイルスでも作るの?

303 :デフォルトの名無しさん:03/07/04 15:34
>>282
できるのですか!!!
教えてください。
でもWIN32APIを使ったことがありませんのでこの機能で感動したいと思います。
よろしくお願いします。


304 :デフォルトの名無しさん:03/07/04 15:54
物理HDD(\\.\PHYSICALDRIVE)と、ドライブレター(C: D:等)との対応付けを知るためのAPIや
方法はありますでしょうか?

DeviceIoControl(IOCTL_DISK_GET_DRIVE_LAYOUT) で、物理HDD内のパーティション情報
は取れたんですが、各パーティションのドライブレターまでは載っていないみたいでした。

それとも、レジストリのどこかに書かれているのかな?

305 :デフォルトの名無しさん:03/07/04 16:26
>>266
ふつうウィンドウサイズといったらタイトルバーや枠を含めた大きさのことでしょ
区別するためにわざわざ「クライアント領域」という言葉があるんだし

306 :デフォルトの名無しさん:03/07/04 19:55
「MS、Windows 2000 の ShellExecute 関数にあった脆弱性を修正」だってさ

ttp://japan.internet.com/webtech/20030704/12.html

307 :デフォルトの名無しさん:03/07/04 20:56
OutputDebugStringからのメッセージを受け取るデバッガを作っているのだが
どうにも全てのプロセスからのメッセージを受け取れるようにできない.
WaitForDebugEventだと一つしか受け取れないようだし...
何かよい方法は無いでしょうか?

308 :デフォルトの名無しさん:03/07/04 21:01
CPUの周波数によって表示を変えたり
メモリーの容量で表示を変えたり
HDDの容量で表示変えたり
OSによって表示変えたり実行できるOS制限したり

できませんか?

309 :デフォルトの名無しさん:03/07/04 21:04
できる

310 :デフォルトの名無しさん:03/07/04 21:07
どうやって?

311 :デフォルトの名無しさん:03/07/04 21:28
マルチには教えられません

312 :じゃー:03/07/04 21:39
ここ一本で


おしえてくれ

313 :デフォルトの名無しさん:03/07/04 21:53
>>308
漠然としすぎだよ。

それらのデータを得る方法がわからないの?
それらのデータによって処理を振り分ける方法がわからないの?
表示を変えるって何をどう変えるの?

314 :デフォルトの名無しさん:03/07/04 21:55
>>313
全部が解らぬ

変えるのはメッセージとか

315 :デフォルトの名無しさん:03/07/04 21:57
(´-`).。oO(何で検索しないのこの人…)

316 :デフォルトの名無しさん:03/07/04 22:02
>>315
してもねぇぇぇぇんだよ

317 :デフォルトの名無しさん:03/07/04 22:06
すぐみつかったが何か?

318 :デフォルトの名無しさん:03/07/04 22:08
>>316
どんなキーワードで検索したか言ってみな

319 :デフォルトの名無しさん:03/07/04 22:11
>>317
どう検索したんだYO

320 :デフォルトの名無しさん:03/07/04 22:23
全部かよ……


普通に簡単なアプリケーションは作れるの?
まずはそこからのような気がしてきだぞ。

とりあえず周波数とかの代わりに現在時刻なり乱数なりで作ってみろよ。
それから周波数の取得方法探して差し替えればよかろう。


321 :デフォルトの名無しさん:03/07/04 22:27
>>320
>普通に簡単なアプリケーションは作れるの?
>まずはそこからのような気がしてきだぞ。
時刻取得とか関数とかあるからわかるけど

周波数とかその他に取得の関数。・・・・有ると思うが解らない・・・

322 :デフォルトの名無しさん:03/07/04 22:37
CPU 周波数 取得 tips

検索の方法も知らないんですね

323 :デフォルトの名無しさん:03/07/04 22:42
>>322
ありがたぅ

324 :デフォルトの名無しさん:03/07/04 22:51
どんな言葉で検索したのか俺も知りたい

325 :デフォルトの名無しさん:03/07/04 22:55
>>324
だから検索なんかしていないんだよ

326 :デフォルトの名無しさん:03/07/04 22:57
>>325
したわバーカ

327 :デフォルトの名無しさん:03/07/04 22:59
>>326
じゃぁ言ってみな 検索もせずにマルチしたんだろ?

328 :デフォルトの名無しさん:03/07/04 23:04
>>327
巫女 ナース 煮込み小茄子

329 :デフォルトの名無しさん:03/07/04 23:05
( ゚д゚)ポカーン

330 :デフォルトの名無しさん:03/07/04 23:06
>>327
セントリーノ (・∀・)イイ! キター

331 :デフォルトの名無しさん:03/07/04 23:11
真面に相手しちゃった>>322が馬鹿だったと言う事で。

あれ、322俺だ…ヽ(`Д´)ノ ウワァァァン

332 :デフォルトの名無しさん:03/07/04 23:17
>>331
本当に馬鹿ですね(笑)

というと怒るんですよね。

333 :デフォルトの名無しさん:03/07/04 23:29
333get

334 :デフォルトの名無しさん:03/07/05 09:49
「プログラミングWindows 第5版(上) Charls Petzold著」のp.652,653に、
「WindowsNTでデフォルトプリンタのデバイスコンテキストを取得する方法」として、
下のようなコードがあります。

PRINTER_INFO_4 *pinfo4;
EnumPrinters(PRINTER_ENUM_LOCAL,NULL,4,(PBYTE)pinfo4,dwNeeded,&dwNeeded,&dwReturned);
hdc = CreateDC(NULL,pinfo4->pPrinterName,NULL,NULL);
(省略あり)

この場合、デフォルトプリンタの設定を変えた直後など、
うまくデフォルトプリンタが拾えないないことがあるんですが、
このコードは間違いですか?
「EnumPrinter()で取得した配列の先頭はデフォルトプリンタである」
という仕様は特にないですよね?

335 :デフォルトの名無しさん:03/07/05 12:51
ふと気になったんですが、一番文字数の長いAPIはなんですか?

336 :デフォルトの名無しさん:03/07/05 13:26
…ExExExExExExExExExExExExExExExExExExExExExExExExExExExExExExExExExEx()

337 :デフォルトの名無しさん:03/07/05 14:41
CoMarshalInterThreadInterfaceInStream

338 :デフォルトの名無しさん:03/07/05 14:41
>>335
自分で調べてみようよ。
俺も以前Javaで一番名前の長い例外クラスってなんだろうと思って調べたことある。

ただJavaの場合rt.jarの中身を見ればいいけど、Win32APIだと大変そうだなw

339 :デフォルトの名無しさん:03/07/05 15:05
FindClosePrinterChangeNotification
うーん、負けた>>337




340 :デフォルトの名無しさん:03/07/05 16:24
SetupRemoveInstallSectionFromDiskSpaceList

341 :デフォルトの名無しさん:03/07/05 17:15
なげーよ

342 :デフォルトの名無しさん:03/07/05 17:26
鼻毛ーよ

343 :デフォルトの名無しさん:03/07/05 18:01
エディットボックスに入力されたテキストの文字数を返す API
ってありますか?

GetDlgItemText で strlen だと効率が悪いです。

344 :デフォルトの名無しさん:03/07/05 18:09
それがコンマ1ミリの時間にもならないとしても効率が悪いのか?

345 :デフォルトの名無しさん:03/07/05 18:24
たぶん 100000 回くらい使うんだろう。

346 :デフォルトの名無しさん:03/07/05 18:34
GetWindowTextLengthでいいんじゃ?

347 :デフォルトの名無しさん:03/07/05 18:42
>>344
何文字入力されるか分からないんでとりあえず 10 MB 確保したあと
realloc してたんですよ。まあメモリの掃除になって良かったのかも
しれないけど

>>345
INT_MAX 回繰り返す可能性もあるので、、、

>>346
グッジョブ!!
マジサンクスっす。。。
早速使わせて頂きます

348 :名無し@沢村:03/07/05 19:59
>>347
> グッジョブ!!
おまいはなんか勘違いしてないか

349 :デフォルトの名無しさん:03/07/05 20:08
恐ろしく厨房な予感。放置に限る。

350 :デフォルトの名無しさん:03/07/05 20:45
>>307
DbMonのソース見れ

351 :デフォルトの名無しさん:03/07/05 21:11
>>348
え??勘違いって何すか?

352 :デフォルトの名無しさん:03/07/05 21:42
>350
おう,激しくビンゴのようだ...サンクス

353 :デフォルトの名無しさん:03/07/06 20:49
お手軽に mixer* な API でボリュームメーター表示ってできないんでしょうか。
http://www.microsoft.com/japan/support/kb/articles/181/5/50.asp
ってのがあって、試してみたんですが、ミキサーコントロールを取得できずに失敗します。

ってーか上のページのソース
> if (MMSYSERR_NOERROR == rc) {
> // ミキサーをオープンできない
> }
とか書いてる時点でどうかと思うんですがまぁそれはともかく。

354 :デフォルトの名無しさん:03/07/06 23:37
アプリの起動と終了の監視をする、
グローバルフックのプログラムを作ってみたんですが、重くて話になりません(T_T
インストールするフックの種類はWH_CALLWNDPROCです。

http://www.kumei.ne.jp/c_lang/sdk2/sdk_163.htm
この辺見ながらやってるんですけど、メッセージ全部受け取っちゃうのが
遅くなる原因みたいです。(タスクマネージャ開いてスクロールバーぐりぐりすると
CPU使用率がはねあがるので)

どうにか早くする方法はないものでしょうか…



355 :デフォルトの名無しさん:03/07/07 00:55
あるディレクトリー下の階層を含めたファイル群を自動的に
圧縮・任意のディレクトリーに展開するライブラリでオススメって
ありますか?
参考ソースの場所などがあれば教えていただければ助かります。
よろしくお願いします


356 :デフォルトの名無しさん:03/07/07 01:27
MessageBox関数は、windows.hに定義されているのでしょうか?

357 :デフォルトの名無しさん:03/07/07 01:28
(;´Д`)Kanbe Site YO!!

358 :デフォルトの名無しさん:03/07/07 02:37
>>357
tyotto gurai iide syo!!

359 :デフォルトの名無しさん:03/07/07 12:20
>>334
>「EnumPrinter()で取得した配列の先頭はデフォルトプリンタである」
>という仕様は特にないですよね?

見当たらないね・・・
デフォルトプリンタを取得したいときはGetProfileString使えと
EnumPrintersのドキュメントにも書いてることだし、
素直にそっち使っては?

サンプル
http://www.microsoft.com/japan/developer/winds/Sdk/Samples/SDKSample03.htm
ドキュメント
http://www.microsoft.com/japan/msdn/library/ja/jpgdi/html/_win32_enumprinters.asp

360 :334:03/07/07 15:52
>>359
サンクス!


361 :デフォルトの名無しさん:03/07/07 17:31
>>354
フックDLLからインポートするDLLは最小限にする
関係ないメッセージのときは可及的速やかに抜け出すよう
フックコールバックを見直す

362 :デフォルトの名無しさん:03/07/07 18:17
CreateStreamOnHGlobalの第二引数がTRUEで実行して、
失敗した場合には、
第一引数のメモリオブジェクトのハンドルは自動的に開放されますか?


363 :r:03/07/07 18:51
なぜ BOOL GetMessage() APIは、負数、0、正数の3種類の値をとるのでしょう?
つーか、なんで BOOL にしてあるんでしょうか?

364 :デフォルトの名無しさん:03/07/07 19:29
>363
昔からBOOLだった。

365 :デフォルトの名無しさん:03/07/07 20:14
>>354
どういうことをしたいのか分からないですが、
終了を検知したいプロセスのハンドルを取得して
適当な待機関数で待つのが妥当じゃないでしょうか?
プロセスの起動も自前でするならCreateProcessした後に
WaitForInputIdle(GUIのみ)あたりで入力待ちになるまでなるまで
待ってもいいかもしれない。
とりあえずプロセスのハンドルさえ取得すればいろいろできる。

そうそう、プロセスのハンドルの取得方法くらいは他人に頼らず
自力で調べましょう。



366 :デフォルトの名無しさん:03/07/07 20:42
>>354
漏れが思うに、勘違いしてるだけなんじゃねーのかなぁ。

「そのプログラムを動かした状態でぐりぐりやると重いが、
そのプログラムを動かしていない状態でぐりぐりやると軽い」
ならばそのプログラム自体に問題があるという事。

そう言うチェックはしてみた?

367 :名無し@沢村:03/07/07 22:19
皆々様方〜、教えてくださらんか、皆々様方〜♪
タイトルバーが赤や黄色のwindowをつくるにはどうしたら、いいかな〜?
教えてくださらんか、皆々様方〜♪

368 :デフォルトの名無しさん:03/07/07 22:27
普通赤だろ?

369 :デフォルトの名無しさん:03/07/07 23:16
先輩方。
Win32に疎いもので申し訳ないですが
プログラムAで表示したメッセージボックスのイベントを
プログラムBで拾って、メッセージ内容を取得することって可能でしょうか。
できそうだとは思うのですが、具体的な方法がわかりません。。
ご存知の方がいらっしゃいましたら、ご教授願います。
一応ネットも調べたのですが,,

370 :デフォルトの名無しさん:03/07/07 23:20
>>369
もっと沢村風に書け

371 :デフォルトの名無しさん:03/07/07 23:23
メッセージボックスのイベント..って、なに?
意味がわかんないよ。
そもそも「メッセージボックス」っていっても、色々な種類があるんだが...。

適当なカタカナ言葉で誤魔化さずに、
もっと具体的かつ正確に条件を定義してください。


372 :名無し@沢村:03/07/07 23:29
先輩方〜、教えてくださらんか、先輩方〜♪
Win32に疎いもので申し訳ないのだけどよ。
プログラムAで表示したメッセージボックスのイベントを
プログラムBで拾って、メッセージ内容を取得することって可能なのかよ?
できそうだとは思のだが、具体的な方法がわからないよ。
ご存知の方がいたら、ご教授願うよ。
一応ネットも調べたよ。
教えてくださらんか、先輩方〜♪

373 :デフォルトの名無しさん:03/07/07 23:43
>>370,371

先輩方〜、教えてくださらんか、先輩方〜♪
Win32に疎いもので申し訳ないのだけどよ。
プログラムAのウィンドウ上で情報を入力後、
確認MsgBoxを表示したタイミングでイベントを拾って
別プログラムBでMsgBoxのメッセージ内容(String文字列)を取得することって
可能なのかよ?
できそうだとは思のだが、具体的な方法がわからないよ。
ご存知の方がいたら、ご教授願うよ。
一応ネットも調べたよ。
教えてくださらんか、先輩方〜♪

374 :デフォルトの名無しさん:03/07/07 23:48
>Win32に疎いもので申し訳
んじゃ、Win32以外の方法で書いて見せれ!

375 :デフォルトの名無しさん:03/07/07 23:59
私の自信作♪
http://endou.kir.jp/betu/linkvp/linkvp.html
http://s-rf9.free-city.net/page003.html

376 :デフォルトの名無しさん:03/07/08 00:00
>>374

え。。ここ、他の道きわめてないと質問しちゃいけないんすか?
あるいは別の情報を提示しないといけないとか、トレード必要すか?
なら出直します。

377 :デフォルトの名無しさん:03/07/08 00:10
>376
そうじゃなくて、他人が読んで理解できるように具体的に書く必要があるかと。
解ってもいない用語を無理に使っているから文章が破綻しているんだよ。
素直に何をしたいのかをまず書きなさいって。


378 :デフォルトの名無しさん:03/07/08 00:48
プログラムAと同じフォルダにダミーのuser32.dllをおいて横取り。



379 :デフォルトの名無しさん:03/07/08 01:26
http://members.tripod.com/~masapico/doc_ApiSpy.html
>下記サンプルはtest.exeを起動し、このプロセスのMessageBox関数の呼び出しを監視する。
>test.exeがMessageBox関数を呼び出したら、呼び出した際に与えられた引数を表示する。

だそうだ。多分別のことやりたいんだろうけど。

380 :デフォルトの名無しさん:03/07/08 13:25
自分で書かなきゃいけないフォント列挙のコールバック関数の作り方を教えて下さい

フォントの列挙をしたいのですが、EnumFontFamiliesEx()で呼び出される
コールバック関数は自分で作れとあるのですがどうすればいいのかさっぱり判りませぬ。
・1回EnumFontFamiliesEx()を呼ぶ度にコールバック関数も呼び出される。
・コールバック関数は列挙を続ける時は0以外、終わる時は0を返す。
上記の理屈は判るんですが…

int CALLBACK EnumFontTest00(ENUMLOGFONTEX *lpelfe, NEWTEXTMETRICEX *lpntme,
int FontType, LPARAM lParam )
{
//試しにリストボックスにフォント名を追加
SendMessage((HWND)lParam,LB_ADDSTRING,0,(long)lpelfe->elfFullName);
return 0;
}

#↑実装方法がわからんので今は常に0を返してます。
渡される値はENUMLOGFONTEXとかNEWTEXTMETRICEXのポインタですが、この情報から
どうやって”列挙すべき内容が残っているのか”の判断をすればいいのやら…

ちなみに上記のコードでフォント名を取得しようとすると常に"System"のみが
返ってきて列挙になりません。
厨な質問すまんですが教えて下され。


381 :デフォルトの名無しさん:03/07/08 14:00
>>380
> ・コールバック関数は列挙を続ける時は0以外、終わる時は0を返す。
> 上記の理屈は判るんですが…

> ちなみに上記のコードでフォント名を取得しようとすると常に"System"のみが
> 返ってきて列挙になりません。

分かってないじゃんかよヽ(`Д´)ノ
0返したら列挙終了なんだろ? 1個で終わって当前だろう。


382 :380:03/07/08 14:15
>>381
いや、コールバック関数内で”1を返すときの条件”をどう判断してよいのやら
判らんのれす…

383 :デフォルトの名無しさん:03/07/08 14:24
>>382
全部列挙したければ1、何らかの理由で列挙をやめたいなら0

384 :380:03/07/08 14:24
×”1を返すときの条件”
○”0以外を返す時の条件”

スマンコ

385 :デフォルトの名無しさん:03/07/08 14:31
(;´Д`)感動した
http://homepage3.nifty.com/coco-nut/

386 :380:03/07/08 14:32
>>383


マジで理解できん…
”コールバック関数が返す値”をどうやって決めるかってな質問なんだけど的外れなんか?

387 :デフォルトの名無しさん:03/07/08 14:46
>>386
コールバック関数は自作だろう?
10個で止めたいならカウンタでも作って10回呼ばれたら0を返すようにif文入れる。
そういうこった。


388 :デフォルトの名無しさん:03/07/08 14:50
>>386
n個フォントがインストールされてれば
n回コールバック関数が呼ばれるはずですが?

で、ENUMLOGFONTEXを調べて、条件(例えば等幅フォントとか日本語フォントとか)
に合うフォントを適当なコントロールに追加する処理をすればいいかと。


389 :380:03/07/08 14:53
>>387
質問の仕方が悪いんだろうな…

列挙する物がある間は0以外を返して、無くなったら0を返したい。
しかし、「まだ列挙する物が存在するという判断」をどうやって実現するのかが
判らんのよ…

>10個で止めたいならカウンタでも作って10回呼ばれたら0を返すようにif文入れる。
>そういうこった。

これは違うだろうと…

390 :デフォルトの名無しさん:03/07/08 14:56
なくなったら勝手に終わるって

391 :デフォルトの名無しさん:03/07/08 15:04
lParamに構造体かなにかのポインタでも入れてヒントに使えや

392 :380:03/07/08 15:07
>>388
>n個フォントがインストールされてれば
>n回コールバック関数が呼ばれるはずですが?

ズガーン!!
EnumFontFamiliesEx()一回につき1度しか呼ばれないものだと勘違いしてました。
#EnumDisplaySettings()みたいに何度も自分で呼び出すものとばかり…

コールバック関数で常に0以外を返すようにしたら列挙できました。
アフォな質問に的確な回答マリガトウ御座いました。

393 :388:03/07/08 15:22
>>392
コールバックとはそういうもんですよ

出前のときの確認電話とかあるでしょ。
こっちから電話するんじゃなくて
必要な分だけ向こうから電話をかけてくるんです。




394 :デフォルトの名無しさん:03/07/08 15:24
無言電話で困ってます

395 :デフォルトの名無しさん:03/07/08 16:44
>>394
全部DefWindowProcにお任せしよう!
緊急の時だけWM_RESCUEとかw

396 :デフォルトの名無しさん:03/07/08 18:57
だ、だれか >>353 に答えてやっては下さらぬか。。。

397 :名無し@沢村:03/07/08 20:22
皆々様方〜、教えてくださらんか、皆々様方〜♪
タイトルバーが赤や黄色のwindowをつくるにはどうしたら、いいかな〜?
教えてくださらんか、皆々様方〜♪


398 :デフォルトの名無しさん:03/07/08 20:49
画面のプロパティーのデザインのところで赤や黄色を指定する
直接レジストリをいじっても良いけど

399 :初心者だけど:03/07/08 21:12
>>380
ず〜っと前、漏れもEnum系APIでの自前コールバックを引数にして・・・
ってやつで何がどうなってるのかよく分からなくて苦労したことあるなぁ〜。

そういう時はとりあえず、自分で呼ぶ側と呼ばれる側を作って
練習してみるのがいいかも。同じような仕様にして作ってみて動作を
理解するのが一番の早道かもしれませんよ。


400 :名無し@沢村:03/07/08 21:18
>>398
それだと、全部赤や黄色になってしまうのですが…?
自分でつくったソフトのタイトルバーだけを赤や黄色にしたいのですが…?

401 :デフォルトの名無しさん:03/07/08 21:39
後から条件を追加するな

402 :デフォルトの名無しさん:03/07/08 21:39
LRESULT CALLBACK MainWndProc( HWND hWnd, UINT msg, UINT wParam, LONG lParam )

関数って、
最後のreturn文は何を返すのが一番いいんでしょうかね?

403 :デフォルトの名無しさん:03/07/08 21:50
状況によりけり
返す物が固定なら戻り値を返すようになどなっていない

404 :デフォルトの名無しさん:03/07/08 22:03
WM_NCPAINT〜♪

405 :名無し@沢村:03/07/08 23:59
皆々様方〜、自己解決しました〜♪
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q99/0/46.asp&NoWebContent=1
上のURLを参考にすればいいことが分かりました〜♪

こんな掲示板をあてにせずに、最初から自分で調べた方が良かったみたいですね〜♪
とても勉強になったよ〜、皆々様方ありがとうございました〜♪

406 :r:03/07/09 00:04
>>405
おめでとう!

407 :デフォルトの名無しさん:03/07/09 01:18
>>402
普通DefWindowProc()の返り値では。
そういうことじゃない?


408 :デフォルトの名無しさん:03/07/09 04:29
>>402
[7]がいいよ![7]!
ぼくならぜったいに7!!!

409 :デフォルトの名無しさん:03/07/09 19:42
変な質問なのですがお願いします。

IllustratorやPhotoshopには、レイヤー処理をするダイアログがあったと思いますが、
あそこでレイヤー名を表示しているのは、リストボックスやツリービューでしょうか?
それともコモンコントロールは使ってないでしょうか。

自分で調べるべきですが、該当アプリが手元に無くて…。
プログラマで持っている人は少なそうですが、もし御存知でしたら是非…。

410 :デフォルトの名無しさん:03/07/09 20:00
>409
独自クラスっぽい、SPI++でみるとPSViewCとか出る。
PhotShop7..0ね。


411 :デフォルトの名無しさん:03/07/09 20:01
>>408
7゚ッ

412 :409:03/07/09 20:38
>>410
うわぁ、ダイアログに独自コントロールですか。
ちらつき防止とか面倒そうですねぇ…。

レスありがとうございました。アレっぽい実装にして欲しいと、
要望を出されていたところでして、本当に助かりました。

413 :デフォルトの名無しさん:03/07/09 20:46
>412
別に真似しなくてもいいんじゃないかな?
リストボックスをオナードローにしてもほぼ同じ物が出来ると思うよ。
まぁ面倒なのは変わらないか(w


414 :デフォルトの名無しさん:03/07/09 20:52
ホトショは、mac由来のコードとか結構あると思う。

415 :デフォルトの名無しさん:03/07/09 23:51
頭痛いです

416 :デフォルトの名無しさん:03/07/10 06:44
Windows9x or 2000にて、仮想CDドライブのようなプログラムを作りたいんですが
どう検索して良いか、分からないんですが・・・(デバイス?ハードウェア?)
資料(本)とか購入したいんですが、お勧めのものありますか?
(なるべくC++関係で)

417 :デフォルトの名無しさん:03/07/10 07:52
>>416
MSDN

418 :デフォルトの名無しさん:03/07/10 07:53
>>416
スレ違い
その程度の事を質問するようでは作るのは無理だから諦めろ
だまってDaemonTools使っとけ

419 :デフォルトの名無しさん:03/07/10 10:26
wavファイルを再生するAPIを教えてください

420 :デフォルトの名無しさん:03/07/10 10:27
API初心者です。よろしくお願いします。
質問なんですが、
別プロセスのハンドルを取得するにはどうすれば良いのでしょうか?
実行しているEXEの名前は解っている状態です。

421 :デフォルトの名無しさん:03/07/10 10:28
ShellExecute

422 :デフォルトの名無しさん:03/07/10 10:29
プロセスを列挙して、OpenProcess.

423 :デフォルトの名無しさん:03/07/10 11:00
>422さん
ありがとうございます。
さっそく使ってみます。

424 :419:03/07/10 16:46
PlaySound()というそのままのAPIがありました。
情けないです。もう二度とここへは来ません。

425 :デフォルトの名無しさん:03/07/10 19:45
PeekMessage( &msg, NULL, 0, 0, PM_REMOVE );

の引数は皆さんどうしています?
僕はこんな感じにしているのですが(DirectXゲーム作成時)

426 :デフォルトの名無しさん:03/07/10 19:45
>>424
また来いよ

427 :名無し@沢村:03/07/10 20:49
皆々様方〜、教えてくださらんか、皆々様方〜♪
自分がつくったwindowのタイトルバーを赤や黄色にするにはどうしたら、いいかな〜?
教えてくださらんか、皆々様方〜♪


428 :デフォルトの名無しさん:03/07/10 20:59
しつこい、ほれ
ttp://hp.vector.co.jp/authors/VA016117/bmpcap1.html

429 :デフォルトの名無しさん:03/07/10 21:47
もったいないので、むしろこれで>>405

430 :デフォルトの名無しさん:03/07/11 01:25
ここで聞いていいのかわからないのですが、

#define STRICT

は1回だけ宣言すれば全部のファイルで共通に作用するのでしょうか?

431 :デフォルトの名無しさん:03/07/11 01:30
頭に#が付くのはプリプロセッサで処理される。

と言えばわかるか?


432 :デフォルトの名無しさん:03/07/11 01:33
>>431
わかりそうでわからない・・・

例えば、
#define ONE 1

と書いても、これが書いていないファイルではONEと書いてもだめだよね

433 :デフォルトの名無しさん:03/07/11 01:39
>>431
君の無駄な試みに乾杯

434 :デフォルトの名無しさん:03/07/11 01:40
>>432
ネタ?
#define STRICT

#define ONE 1
にどれほどの違いがあるってんだ?

435 :デフォルトの名無しさん:03/07/11 01:48
>>434
ということは、すべてのファイルに書けと

436 :デフォルトの名無しさん:03/07/11 01:58
>>435
コンパイル時、どのファイルが読み込まれるかを勉強して下さい

437 :デフォルトの名無しさん:03/07/11 02:05
>>436
全ファイル共通のヘッダーファイルに書けと?

438 :デフォルトの名無しさん:03/07/11 02:15
>>437
漏れは困らないから勝手に書けば?

439 :デフォルトの名無しさん:03/07/11 02:17
大抵のコンパイラはオプションで定義できるだろうから、それを使えば?
-DSTRICT こんな感じで。

440 :デフォルトの名無しさん:03/07/11 02:17
>>438
実際の所どういう動きをするのでしょうか?

441 :デフォルトの名無しさん:03/07/11 02:24
>>440
#define が定義された次の行から適用される
後は、#include 等、他のマクロ(プリプロセッサ命令)が
どのように展開されるかを考える

442 :デフォルトの名無しさん:03/07/11 02:25
誰もスレ違いだとつっこまないね

443 :デフォルトの名無しさん:03/07/11 02:28
>>442
普通に気付かなかった…鬱

444 :デフォルトの名無しさん:03/07/11 11:01
プログラムの実行中,特定の処理を関数化してその関数をひたすら実行させ
続けたいのですが,どこでよんでやればいいんでしょうか(キー入力があれば
関数で使う変数の値を変えるとか…も入れるもりでつ)?
CPU使用率が100%になってもかまわないので.
LRESULT CALLBACK WndProcのswitchのdefault:のreturn DefWindowProc
の上でいいんですか?

445 :_:03/07/11 11:12
http://homepage.mac.com/hiroyuki44/jaz09.html

446 :デフォルトの名無しさん:03/07/11 12:17
>>444
ひたすらというのがどの程度の頻度を指すか分からんが、
SetTimerでタイマつくってWM_TIMERの中とか
スレッドつくって、そこで延々実行させるとか

>LRESULT CALLBACK WndProcのswitchのdefault:のreturn DefWindowProc
とかだと何かのメッセージが来なければ、実行されない可能性あるし

447 :444:03/07/11 12:26
>446
関数を一回実行するのに数十〜数百msかかるのをCPUフル回転で回し
続けるみたいな感じです.スマソ
WM_TIMERかスレッド作って,ですか.
時間が毎回同じでもない(変数によって結構変わる)のでスレッド作ってやってみます.
ありがとうございますた.

448 :デフォルトの名無しさん:03/07/11 13:35
CPUの温度を調べるような関数はありますでしょうか?
CPUファンの動作状況なども調べることが出来ればなお良いのですが。

449 :デフォルトの名無しさん:03/07/11 16:25

他のプロセスの値(例:他アプリのフォーム上に書かれているテキスト等)を取得したく、
FindWindowでハンドルを取得した後、
ReadProccesMemoryを用いてメモリを直接読み取ろうと思うのですが、
(プロセスのハンドル、
読み取り開始アドレス、
データ格納バッファ、
読み取りたいバイト数、
読み取ったバイト数)
という引数があり、
2番目の読み取り開始アドレスの取得方法が分かりません。
恐らくプロセスのハンドルを用いて、そのプロセスが使用している開始アドレスを取得するのでしょうが、その方法が解る方いますでしょうか?
よろしければご教授ください。

450 :デフォルトの名無しさん:03/07/11 16:53
そのフォームとやらが使ってるのが標準のEDITコントロールなら
普通にWM_GETTEXTで取るのが一番楽だと思うが。

451 :デフォルトの名無しさん:03/07/11 18:16
猫の83〜85章を見ながらMDIアプリを作っています。

やりたいのはMDIクライアントウィンドウにBitmapをBltしたいのですが、猫のサンプルを
見ると個々のMDIクライアントウィンドウのハンドラはstaticに保持とかしてないように
見えるんですが…
#単純にMDIClientのハンドラからDC取得して、そこにBltしたいのれす。

MDIクライアントウィンドウが複数ある場合、既に出来ているMDIクライアントウィンドウの
ハンドラを取得するにはどうすれば良いのでしょうか?


452 :デフォルトの名無しさん:03/07/11 18:18
>>449
450さんの意見に禿同
わざわざデバッグ系APIを使う必要なし

453 :デフォルトの名無しさん:03/07/11 18:36
>>451
WM_MDIGETACTIVEとかのメッセージでHWNDを取得できる

454 :デフォルトの名無しさん:03/07/11 19:16
>>453
有難う御座います。確かにヘルプには
Return Value
The return value is the handle of the active MDI child window.

とあるので間違いないのですが、WM_MDI…メッセージの戻り値ってとこが解りません…(無知)
SendMessageの戻り値でしょうか?

455 :453:03/07/11 19:48
>>454
>SendMessageの戻り値でしょうか?
その通り
てか、猫の85章にも書いてあるはずだが・・・

それはさておき、
>#単純にMDIClientのハンドラからDC取得して、そこにBltしたいのれす。
だとすると、
MDIクライアントウィンドウのプロシージャのWM_PAINTで描画しないと、
再描画が発生すると、「 マ ズ ー 」になりそうだが・・・

456 :名無し@沢村:03/07/11 20:10
>>448
CPUに温度センサーをつけて、センサーか送られてくるデータを取得する。
関数だけでは無理。

457 :デフォルトの名無しさん:03/07/11 20:46
一応CPUその他の温度やファンの回転数を監視するチップは大抵のPCに
組み込まれてるが。
その辺を自力で叩く根性がないならMBMでも入れてそっから情報貰え。

458 :デフォルトの名無しさん:03/07/11 21:01
はいはい

459 :デフォルトの名無しさん:03/07/11 21:12
ほいほい

460 :デフォルトの名無しさん:03/07/11 22:56
CStaticにこちらの希望のフォーマットのビットマップを選択させるにはどうすればいいですか?
たとえば画面のプロパティーでRGB32でもCStaticはRGB8にしたい。など。
RGB8のDIBをそのままBitBltしたいので。

おねがいします。

461 :デフォルトの名無しさん:03/07/12 02:30
WM_SYSCOMMANDが来た時は、breakで処理を終えないで、
return DefWindowProc();

をするべきなんでしょうか?
もしそうならば、その理由はどういうものなんですか?

462 :_:03/07/12 02:33
http://homepage.mac.com/hiroyuki44/jaz09.html

463 :デフォルトの名無しさん:03/07/12 02:37
あるサイトで

case WM_DESTROY:
ShowWindow(hWnd, SW_HIDE);
PostQuitMessage(0);
break;

としていて、コメントにMicrosoftが仕様と主張するOSのバグの対策をしていますと書いてあるのですが、
どういうバグへの対策が施されているのでしょうか?

464 :デフォルトの名無しさん:03/07/12 03:23
タスクバーに空のボタンが残るってやつだっけ

465 :デフォルトの名無しさん:03/07/12 04:58
えっと、フックについて質問です。あるプロセス内でインストールされたフックを
ローカルフック、ライブラリ(DLL)によってインストールされたフックを
グローバルフックという呼び方でいいんですよね?

で、本題ですが、プロセス内でグローバルフックをインストールする方法って
ないんでしょうか?理由としては単に DLL を作るのが面倒なんですが…

466 :デフォルトの名無しさん:03/07/12 12:02
>>465
微妙に理解が間違ってると思うが、詳細は下を読め。
http://www.kab-studio.com/Programing/Codian/DLL_Hook_SClass/06.html
他プロセスやシステム全体のメッセージをフックしたいならDLLは必須だよ。


467 :465:03/07/12 12:03
>>466
なるほど。解りました。ありがとう

468 :デフォルトの名無しさん:03/07/12 12:12
スレッドフック 単一のスレッドに対するフック
グローバルフック 全てのスレッドに対するフック
ローカルフック そんな名称は存在しない?
システムフック グローバルフックの旧名称

スレッドフックのうち同一プロセスに対するものの場合のみDLLにしなくても良い

469 :465:03/07/12 12:21
DLLってなんと読むんですか?

470 :デフォルトの名無しさん:03/07/12 12:22
どるる

471 :デフォルトの名無しさん:03/07/12 12:24
どぅるる

472 :デフォルトの名無しさん:03/07/12 13:52
>>464
検索したら、

この引数にSW_HIDEを入れて呼び出せば、そのウィンドウは見事に消え去り、タスクバーにも表示されなくなります。

と書いてありました。
でもこれ書いていない時でもそんな現象にあったことないんだけどなぁ・・・

473 :デフォルトの名無しさん:03/07/12 14:01
Win95とか98とかでは、たまに起こってた記憶が。

474 :デフォルトの名無しさん:03/07/12 16:02

◆◇◆◇ 海外サイトだから安心無修正 ◇◆◇◆
http://upbbs.s2.x-beat.com/linkvp/linkvp.html

 ↑ 
ココは丸見え! 今ならまだ消されてないよ。たぶん・・・

475 :デフォルトの名無しさん:03/07/12 16:18
>>470 >>471
アフォ

476 :デフォルトの名無しさん:03/07/12 16:54
>>475
ヴァカ

477 :デフォルトの名無しさん:03/07/12 18:37
>465 ダイナマイト・ロング・レディー

478 :デフォルトの名無しさん:03/07/12 20:06
ディーエルエルって言ってる俺



479 :デフォルトの名無しさん:03/07/12 20:22
>>478
激しく同意

480 :デフォルトの名無しさん:03/07/12 20:29
どぅーどぅるびー

481 :デフォルトの名無しさん:03/07/12 20:31
ドゥードゥルバグ

482 :デフォルトの名無しさん:03/07/12 21:17
ダ、ダ、ダ、ダイナミック・リンク・ライヴラリー

483 :デフォルトの名無しさん:03/07/12 21:56
でぃーいれぶん

484 :デフォルトの名無しさん:03/07/12 22:41
まじレスするとデルだろ


485 :デフォルトの名無しさん:03/07/12 23:57
DLLのアイコンは、初心者には「花」に見えるらしい

486 :デフォルトの名無しさん:03/07/13 01:07
>>485
俺には触れてはいけないものに見えたが

487 :デフォルトの名無しさん:03/07/13 02:27
while( 1 )
{
if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) {
if( msg.message == WM_QUIT ) break;
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else {
メイン処理
}
}

という形をとった場合、メイン処理で処理を終了させたい場合
break;
でwhile文を抜けるのが良いのか、return 0;でプログラムを終わるべきなのかどちらでしょうか?

488 :デフォルトの名無しさん:03/07/13 11:28
MessageBeepは

&Hffffffff
MB_ICONASTERISK
MB_ICONEXCLAMATION
MB_ICONHAND
MB_OK

↑これ以外の音はならせないんですか?

MailBeepに設定されてる音とかをならしたいんですが

489 :デフォルトの名無しさん:03/07/13 11:29
実行中の他のプログラムのコマンドライン文字列を取得する方法はありますか。
実行ファイルAが実行ファイルBを起動するのですが、その実行ファイルBに
渡されたコマンドライン文字列をコソーリ見たいのです。


490 :デフォルトの名無しさん:03/07/13 11:37
>>488
PlaySound()か?


491 :デフォルトの名無しさん:03/07/13 11:51
B.exeのフリしてAに立ち上げてもらえ。
その後、改めてBを立ち上げろ。

492 :デフォルトの名無しさん:03/07/13 12:13
>>489
BがGUIアプリなら、中に潜り込んでGetCommandLineだろ。


493 :488:03/07/13 12:30
>>490
PlaySoundですか、

PlaySoundは非同期に再生したときかってに終わってくれるのかな?
ちょっとためしてみます。

494 :デフォルトの名無しさん:03/07/13 12:42
>>492
ありがとうございます。
しかし、どのようにして潜り込むのでしょうか(@_@)
関数名だけでもヒントをください…m(__)m

495 :デフォルトの名無しさん:03/07/13 15:53
>494(489)
VBプログラマ質問スレとのマルチポストの上にさらにヒント請求か。
厚 か ま し い な !

496 :デフォルトの名無しさん:03/07/13 17:17
>>494
エッ!? ぶっ、ぶいびぃ・・・ですか。
・・・あなたには多分、無理です。


497 :デフォルトの名無しさん:03/07/13 17:59
エディットボックスコントロールに、
テキストをドラッグアンドドロップするには、
どうすればいいの?
なぁんか、できないんだよね。
CreatWindowのとこでなんかするの?


498 :デフォルトの名無しさん:03/07/13 18:30
このスレって参考図書は載ってないですね
参考図書もいくつか載ってると良いですよね

499 :デフォルトの名無しさん:03/07/13 18:34
別に

500 :デフォルトの名無しさん:03/07/13 18:34
このスレって参考図書は載ってないですね
使えないですよね

501 :デフォルトの名無しさん:03/07/13 18:36
このスレって使えないですよね。

502 :デフォルトの名無しさん:03/07/13 18:40
使えない

503 :デフォルトの名無しさん:03/07/13 19:44
>>496
いいえ、一応C言語でのWin32APIプログラミングは心得ているつもりです。
(プログラミングWindows第5版上巻の内容はすべて理解しています)
それでも無理なのでしょうか(汗)

504 :デフォルトの名無しさん:03/07/13 19:46
>>503
>>491で分からないならまず無理。あきらめろ。

505 :デフォルトの名無しさん:03/07/13 19:51
>>504
実行中のプログラムについて知りたいので、>>491ではだめなのです。

506 :デフォルトの名無しさん:03/07/13 19:54
Aは実行中でもBが実行される前なら問題ないだろう

507 :デフォルトの名無しさん:03/07/13 19:59
このスレって使えないですよね。

508 :デフォルトの名無しさん:03/07/13 20:24
そりゃPlatform SDK Documentation見ればほとんど解決するからね

509 :デフォルトの名無しさん:03/07/13 21:04
いやいや喪前には負けますよハゲ

510 :デフォルトの名無しさん:03/07/13 22:49
>>503 <<465

511 :デフォルトの名無しさん:03/07/13 23:09
> (プログラミングWindows第5版上巻の内容はすべて理解しています)

「すべて」「理解」してるなんてスゲー!

512 :デフォルトの名無しさん:03/07/13 23:23
結局このスレには489の質問に答えられる香具師はいないってことだな。
もちろん漏れもだが。

513 :デフォルトの名無しさん:03/07/13 23:31
492の「潜り込む」というのは、システムフック(グローバルフック)のことかと。
とりあえずDLLと共有メモリの作り方を知らないとできない。


514 :489です:03/07/13 23:34
>>513
ありがとうございます。勉強してみます。

515 :デフォルトの名無しさん:03/07/13 23:37
>>489
Win32API 質問箱 Build6
http://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
の740からの書き込みがまぁまぁ参考になるかと。
ほぼそのまんまみたいだし。でもVBだときつそうだな。

516 :デフォルトの名無しさん:03/07/13 23:44
↑741からの書き込みだった。。。

517 :デフォルトの名無しさん:03/07/13 23:45
つか、素直にAdvanced Windowsでも読んだほうが早いと思うが。

518 :デフォルトの名無しさん:03/07/13 23:47
あるサンプルソースでCreateThread関数で、

int d;

hThread1=CreateThread(NULL,0,fnThread1,0,0,&d);
hThread2=CreateThread(NULL,0,fnThread2,0,0,&d);

とあったのですが、
最後の引数は、

lpThreadId
1 個の変数へのポインタを指定します。関数から制御が返ると、この変数に、スレッド識別子が格納されます。

とあるんですが、スレッド識別子が格納されるというっことは、別々の変数を関数側に渡したほうが良いん&ですよね?
&d1,&d2のように。

519 :デフォルトの名無しさん:03/07/13 23:56
>>518
スレッドハンドルだけ使って、スレッドIDは使わないなら、
518のような書き方も構わない。
dは便宜上セットしているというだけ。


520 :デフォルトの名無しさん:03/07/13 23:56
スレッド識別子を使わないなら、特に別々にする必要は無いかと。
ちなみに、Cランタイムな関数使うときは_beginthreadが推奨だけど、
その辺はOK?

521 :デフォルトの名無しさん:03/07/13 23:58
_beginthread/_beginthreadexはAPIじゃないけどな。
まぁ、普通はこっち使うけど。

522 :デフォルトの名無しさん:03/07/14 00:10
LPDWORDって、unsigned long*
だったんですか?
int型のポインタ渡そうとしたら起こられましたけど

523 :デフォルトの名無しさん:03/07/14 00:11
>>518
戻ってきた値をなにかに使うんじゃなければ、単に空の箱だけ用意し
とけばいいじゃない。

524 :518:03/07/14 00:20
>>519
>>520
>>521
>>523
情報ありがとうございました。
難関に思えたスレッドというものがこんなに簡単に実現できるとは・・・。
注意点とかありますか?
スレッドあんまり作成しないほうが良いみたいですが

525 :デフォルトの名無しさん:03/07/14 00:24
>>522
typedef unsigned long DWORD;
typedef DWORD *LPDWORD;
だな。WTypes.h を参照

526 :デフォルトの名無しさん:03/07/14 00:30
>>524
作るのは簡単。
しかし、使いこなして問題が起こらないように維持するのは、
規模が少し大きくなるだけで、絶望的に難しくなる。

527 :522:03/07/14 01:02
>>525
おお、そうですか
そういうのって、コンパイラのある場所(puroguramフォルダ)にあるんですかね?

528 :デフォルトの名無しさん:03/07/14 01:10
>>518
ちなみに、最後の引数、NT系はNULLでも動いちゃう。
それで安心してたら、95系でコケてNULLは使えないと気づく・・・

529 :デフォルトの名無しさん:03/07/14 01:31
>>527
WTypes.h より windif.h の方が一般的かもしれない。
場所は開発環境、Win32SDKなんかをインストールした場所によって異なる。
検索しろ。

530 :デフォルトの名無しさん:03/07/14 01:34
>>529
windef.hじゃなくて?

531 :デフォルトの名無しさん:03/07/14 01:42
>>530
windef.hでした。非常に恥ズイ…
指摘感謝。

532 :デフォルトの名無しさん:03/07/14 07:00
http://www.sm.rim.or.jp/~shishido/wavbuf.html
ここでビープウェブをドレミファソラシドと鳴らすプログラムがあるのですが、
ぷつぷつと途切れないようにするには、どうすればよいのですか?

533 :デフォルトの名無しさん:03/07/14 15:55
リソースでつまずいた・・・

534 :デフォルトの名無しさん:03/07/14 23:42
LoadImage関数って、NTでは使えないみたいだね
でもXPでは使えるみたいだね

535 :デフォルトの名無しさん:03/07/15 09:08
>>534
そうなの?
NTの環境ないから試せないけど、
MSDN読む限りでは、使えそうだけどな・・・

536 :デフォルトの名無しさん:03/07/15 09:18
APIの関数の使い方みたいなの乗ってるサイトで便利なとこありますか?
お薦め教えてください。

537 :デフォルトの名無しさん:03/07/15 09:24
>>536
>>2よめ

538 :山崎 渉:03/07/15 09:39

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

539 :デフォルトの名無しさん:03/07/15 10:23
NT系のマルチモニタ(デュアルディスプレイ)の制御をする
APIを知りませんか?
手がかりもないのでMSDNライブラリの検索にも全然
引っかからなくて。

お願いします。

540 :デフォルトの名無しさん:03/07/15 11:11
ホイ
ttp://sysneitf.hp.infoseek.co.jp/monitors.html

541 :デフォルトの名無しさん:03/07/15 11:38
>>534
4.0以降と書いてあるが。

もしかしてLR_LOADFROMFILEのこと?
日本語版の古いMSDNだとNTではサポートされないようなこと書いてあるけど、
英語版や最新の日本語版ではそんなことどこにも書いてない。

>>539
この辺の階層かな。
ttp://www.microsoft.com/japan/msdn/library/ja/jpgdi/html/_win32_EnumDisplayMonitors.asp

542 :デフォルトの名無しさん:03/07/15 11:40
>>540
ありがd!!
こいつを手がかりにまた捜してみます。

543 :山崎 渉:03/07/15 14:02

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

544 :ケン:03/07/15 14:12
VBAのユーザーフォームのイメージコントロールに貼り付けた画像の、
例えば、上から10ポイント左から20ポイントのドットの色の情報を
取得する方法があれば、教えてほしいのですが・・・
API関数のなかにありますか?


545 :デフォルトの名無しさん:03/07/15 14:16
>>544
GetPixel?

546 :デフォルトの名無しさん:03/07/15 19:37
http://jbbs.shitaraba.com/computer/7345/

547 :デフォルトの名無しさん:03/07/15 19:44
>>534
日本語版MSDNヘルプが古いだけ(NT 3.5では使えなかったという意味)
NT4以降なら使える
がいしゅつにもほどがある

548 :デフォルトの名無しさん:03/07/15 21:48
>>547
だが、4.0以降と書いてあるにも関わらず、サポートしてねぇよ、とも書いてあるので
3.5では使えないけど4.0以降なら使える、という情報は読み取れない。

まぁ、日本語版は信用するなってこった。

549 :デフォルトの名無しさん:03/07/16 07:11
英語版見ればNT4以降で使えるのは明らかだがな
もっとも最近英語版の記述も怪しい

550 :デフォルトの名無しさん:03/07/16 08:25
Cのisspaceに代わるAPIってありますか?

551 :デフォルトの名無しさん:03/07/16 12:29
そのフォルダが存在していなくても、フォルダパスであれば真になるようなAPIはあるでしょうか。
PathIsDirectoryはフォルダが存在していないと偽を返してしまいます。

552 :デフォルトの名無しさん:03/07/16 12:32
>>551
拡張子のないファイルとフォルダが
両方とも存在しないとして、それをどうやって区別するの?

553 :デフォルトの名無しさん:03/07/16 12:53
>>552
その場合はファイルとして判定してくれればいいです。
単純に言うとパスの最後に\があるか否かを判定するAPIがあればいいんですが・・・
やはりパスの先頭からIsDBCSLeadByteを使って走査していき、
最後が\か否かを判定する関数を自作するしかないんでしょうか。


554 :デフォルトの名無しさん:03/07/16 13:01
>>553
そんな君専用のようなAPIが存在するわけが無いだろう
Windowsではドライブ以外はフォルダの最後に\はつかないのが普通

555 :デフォルトの名無しさん:03/07/16 13:19
>最後が\か否かを判定する関数を自作するしかないんでしょうか。
その部分だけなら作るのに30秒かからないが・・・

556 :デフォルトの名無しさん:03/07/16 13:26
というかそんなチェックが本当に必要なのか?
APIに丸投げしてエラーをチェックした方がよっぽどまし。ということもありえるぞ。

557 :553:03/07/16 13:44
リストビューにファイルパス(フォルダパスではない)を一覧していまして、
 1. リストにファイルパスを与えた場合はそのままファイルパスをリストに追加
 2.リストにフォルダパスを与えた場合はフォルダ内のファイルパスをリストに追加
とし、
 3.ファイルが存在する場合はそのまま表示
 4.ファイルが存在しない場合は追加したファイルパスを赤く表示
としたいのです。
このとき存在しないフォルダパスを与えてしまうと、4.の処理のために
この存在しないフォルダパスがリストに追加されてしまいます。
自分でやるしかないみたいですね・・

558 :デフォルトの名無しさん:03/07/16 13:56
CRT使ってよくて MBCSなら、ch='\\'として

BOOL IsLastChar(LPCTSTR str, UINT ch)
{
 BYTE* pLast = _mbsrchr((const BYTE *)str, ch);
 return (pLast && (*_mbsinc(pLast) == '\0'));
}


559 :デフォルトの名無しさん:03/07/16 14:11
こういうパターンは想定しないの?
c:\
\\servername\

560 :デフォルトの名無しさん:03/07/16 15:24
>>557
>この存在しないフォルダパスがリストに追加されてしまいます。

↓この定義からすると何ら問題ない動作のような気がするんだが。
>>553>その場合はファイルとして判定してくれればいいです。


561 :デフォルトの名無しさん:03/07/16 16:12
>>560
ファイルパスなのかフォルダパスなのか区別のしようが無い場合は
ファイルパスとして判定してくれれば良いということです。

(パス末尾に\をつけて)フォルダパスとして与えたつもりなのに
ファイルパスとして判定されるから困るのです。


562 :デフォルトの名無しさん:03/07/16 16:22
HDDスリープさせたいんだけど、
Linuxの「hdparm -Y」と同じ働きをする関数ある?


563 :デフォルトの名無しさん:03/07/16 16:24
>>561
>(パス末尾に\をつけて)フォルダパスとして与えたつもりなのに

フォルダパスであることがわかってるならわざわざ判定させる必要ないじゃん。

564 :デフォルトの名無しさん:03/07/16 16:30
>>563
それをパスだけで判定できないかという話です。

565 :デフォルトの名無しさん:03/07/16 16:37
>>563
そんなこと言ってたらPathIsRootやPathIsFileSpecやPathIsDirectoryがいらないなw

566 :デフォルトの名無しさん:03/07/16 16:43
>>565
それは「実在するかどうか」という判断をするための物だろ。
「実在しないがフォルダパスである」とわかっているものの何を判定しろというのか。

567 :デフォルトの名無しさん:03/07/16 16:49
>>566
C:\hoge\
↑これはフォルダパス?

568 :デフォルトの名無しさん:03/07/16 17:05
>>567
C:\hogeというフォルダが実在すればフォルダパス。
C:\hogeというファイルが実在すればファイルパス。
ファイルもフォルダもなかったら自分で決める。

569 :デフォルトの名無しさん:03/07/16 17:24
>>568
ではC:\にhogeというファイルを作ってPathFileExists(_T("C:\\hoge\\"))を実行するとTRUEが返ってくるはずだな

570 :デフォルトの名無しさん:03/07/16 17:29
やってみりゃイインジャネーノ

571 :デフォルトの名無しさん:03/07/16 17:30
漏れのパソコンではFALSEが返ってきますたがバグですか?

572 :デフォルトの名無しさん:03/07/16 17:32
569が何を言いたいのかサッパリわからない。

573 :デフォルトの名無しさん:03/07/16 17:35
>>568がこっそり最後の\を省いてる罠

574 :デフォルトの名無しさん:03/07/16 17:39
>>568
C:\hogeというファイルが実在しててもファイルパスじゃねーじゃん。

575 :デフォルトの名無しさん:03/07/16 17:47
>>574
だからどうしたとしか言いようがない。
自分でわかっている(末尾に\を付与する)なら判定させる必要ないじゃん。

576 :デフォルトの名無しさん:03/07/16 17:53
>>575
おい、知ったか。嘘を言っておいてそれか。

577 :デフォルトの名無しさん:03/07/16 18:03
>>576
何ですかこの粘着は。568は別にPathFileExistsの挙動について述べたわけじゃねえだろ。

578 :デフォルトの名無しさん:03/07/16 18:08
>>575
自分では判っているから末尾に\をつけるの!

579 :553:03/07/16 18:10
あのですね、
void run(char* path)
{
  if(isdir(path))

}

580 :553:03/07/16 18:14
途中で投稿してしまった・・・
void run(char* path)
{
  if(isdir(path))
    >>557の2の処理 ;
  else
    >>557の1の処理 ;
}
簡単に言うとこんなことをしたくて、isdirに該当するAPIはあるかという質問なんですよ。
んで無いみたいなので自作するしかななという結論にとっくに至りました。

>>575
あなたもういいです。

581 :デフォルトの名無しさん:03/07/16 18:17
>>580
GetFileAttribute?

582 :デフォルトの名無しさん:03/07/16 18:19
...butes

583 :デフォルトの名無しさん:03/07/16 18:25
APIじゃ無いけど、_splitpath でいいんじゃねーかと

584 :デフォルトの名無しさん:03/07/16 18:26
>>580
>>557の仕様を実現するのにそういう機能のAPIを要求するお前のセンスに問題がある
ような気がするよ。

585 :デフォルトの名無しさん:03/07/16 18:28
そうかなぁ。MakeSureDirectoryPathExistsは\がパスの最後にあればディレクトリだとみなすのでそんなAPIがあってもいいと思ったんだけど

586 :デフォルトの名無しさん:03/07/16 18:30
>>581をためせよ

587 :デフォルトの名無しさん:03/07/16 18:31
>>584
splitpathがあるんだからWin32APIに求めてもそれほど変でもあるまい。

588 :デフォルトの名無しさん:03/07/16 18:32
>>585
MakeSureDirectoryPathExistsは「末尾に\を付与することを要求」しているだけで
「\がパスの最後にあればディレクトリだとみなす」わけじゃないだろ。
\が付いてなければ「不正な引数」と判断してるだけだ。

589 :デフォルトの名無しさん:03/07/16 18:34
>>588
違うだろ。
末尾が\じゃ無い場合は、その前の\までのディレクトリしか作らない。

590 :デフォルトの名無しさん:03/07/16 18:34
>>586
ログちゃんと読めよ

591 :デフォルトの名無しさん:03/07/16 18:36
>>588
MSDN読めよ

592 :デフォルトの名無しさん:03/07/16 18:37
頼む。今後のためにも知ったか厨は消えてくれ。

593 :デフォルトの名無しさん:03/07/16 18:37
>>590
ほぼisdirそのものだけど

594 :デフォルトの名無しさん:03/07/16 18:38
if (!pathというファイルが実在する) {
    if (pathというディレクトリが実在する)
        >>557の2の処理;
    else
        >>557の4の処理;
else
    >>557の1の処理;


595 :デフォルトの名無しさん:03/07/16 18:39
>>593
今話してるのは「存在しないフォルダパス」の話だ。

596 :デフォルトの名無しさん:03/07/16 18:42
>>595
C:\dir D
C:\dir\ D
C:\file F
C:\file\ -1
C:\notexist -1
C:\notexist\ -1


597 :デフォルトの名無しさん:03/07/16 18:42
>>587
いや、>>557にある3つの動作(条件)を実現するのに、最初に「ディレクトリかどうか」を
判断しようとするセンスに問題があるって事だろ。

598 :デフォルトの名無しさん:03/07/16 18:43
>>594
それだと4の処理で存在しないフォルダパスが追加されてしまう。
追加するのは「ファイルパス」。

599 :デフォルトの名無しさん:03/07/16 18:44
>>596
存在しなくてもDになるようなAPIの話だ、ってログ読めよ!

600 :594:03/07/16 18:47
>>598
>>553より、4の処理で必ずファイルパスとして追加するようにすればよい。

601 :デフォルトの名無しさん:03/07/16 18:49
>>600
渡されるパスに末尾\がついてて「これはフォルダパスだ」と主張してる場合でもか

602 :デフォルトの名無しさん:03/07/16 18:49
すでにAPIに無いのはわかっているんだから、藻前らみんなスレ違いですよ。

603 :594:03/07/16 18:55
>>601
「実在しないフォルダパス」をどうするか仕様として与えられておりませんので(w

604 :デフォルトの名無しさん:03/07/16 18:57
>>599
すみませんでした

605 :デフォルトの名無しさん:03/07/16 18:59
>>603
リストにはファイルパスを表示する仕様なのでフォルダパスは表示しない。
たとえ存在しないフォルダパスだとしても。

606 :デフォルトの名無しさん:03/07/16 19:02
実在しないパス文字列をどうやって生成するのか知らんが、「フォルダパスの末尾には必ず\が
ある」ってのがわかってるなら、フォルダかファイルかの判定は済んでいるも同然だよな?

なら
末尾に\がある→実在すれば557の2、しなければ何もしない
末尾に\がない→実在すれば557の1、しなければ557の4

でいいんじゃねえの?
なんでひとつのAPIで済ませようとするのか不思議だ。

607 :デフォルトの名無しさん:03/07/16 19:06
>>606
>>553でマンドクセっていったけど仕方ないので自分でもう作ったといっている

608 :元質問者:03/07/16 19:06
>>606
そういうAPIがあるなら使いたいというだけで無いなら自作するとかなり前に結論が出てます。

609 :デフォルトの名無しさん:03/07/16 19:09
>>608
それにしても
>先頭からIsDBCSLeadByteを使って走査
ってのはやっぱりセンスねえんだなぁ・・・

610 :デフォルトの名無しさん:03/07/16 19:11
>>609
CRT無しでもっと良い方法がありますか?

611 :デフォルトの名無しさん:03/07/16 19:19
>>610
(末尾のバイト=='\' && !IsDBCSLeadByte(末尾の1個前))
ならフォルダパス。
なお、文字列の長さが不明の時はlstrlen APIで調べる。

612 :デフォルトの名無しさん:03/07/16 19:19
おれに言わせりゃノーセンス

613 :デフォルトの名無しさん:03/07/16 19:22
>>611
文字列の途中でIsDBCSLeadByteを使っちゃいかんよ

614 :デフォルトの名無しさん:03/07/16 19:22
そもそも>557なアプリの仕様に問題があるのだ。
論点がずれてるぞ。

615 :デフォルトの名無しさん:03/07/16 19:24
>>611
SJISの場合二バイト目でもIsDBCSLeadByteに引っかかる場合があるぞ。
"C:\最後がそういう文字な名前\" の場合誤診する。
後ろから行きたければIsDBCSLeadByteがFALSEを返すとこまで戻って
戻った字数が偶数か奇数かで判定

616 :デフォルトの名無しさん:03/07/16 19:29
今日は知ったかぶりが多いよねえ

617 :デフォルトの名無しさん:03/07/16 19:29
>>615
WTLの_IsDBCSTrailByteがまさにそんなコードだったと思う。

618 :デフォルトの名無しさん:03/07/16 19:29
MultiByteToWideCharでUnicodeに変換してから末尾の文字を拾えばいいじゃん。

619 :デフォルトの名無しさん:03/07/16 19:30
>>609=>>611

620 :デフォルトの名無しさん:03/07/16 19:31
>>618
本末転倒な気が・・・

621 :デフォルトの名無しさん:03/07/16 19:44
>>620
そかな。頭から走査するよりはマンドクサクは無いような…
int mbcslen = lstrlen(path);
int widelen = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, path, mbcslen, NULL, 0);
LPWSTR widepath = new WCHAR[widelen];
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, path, mbcslen, widepath, widelen);
if (widepath[widelen-1] == L'\\') { // pathはフォルダパスである





622 :デフォルトの名無しさん:03/07/16 20:11
bool IsLastBackslash(LPCTSTR lpszPath)
{
 bool bTail = false;

#ifndef _UNICODE
 int nChar = lstrlen(lpszPath);
 for(int i=nChar; i>0; i--){
  if(!::IsDBCSLeadByte(lpszPath[i - 1]))
   break;
 }
 bTail = ((nChar > 0) && (((nChar - i) & 1) != 0));
#endif //_UNICODE

 if(bTail)
  return false;
 else
  return (lpszPath[lstrlen(lpszPath) - 1] == _T('\\'));
}


623 :デフォルトの名無しさん:03/07/16 20:46
質問する場所ここであってるかどうか分かりませんが。。。

コンパイルの仕方が分かんないです
OSウインドウズXP使ってるんですが
とりあえずBorland C++ Compiler 5.5落としてきて
#include <stdio.h>

maim()
{
printf("TEST");
}
てファイルをメモ帳で書いてtest.cって名前で保存してみたら
一応test Cファイルって出来ました。

コマンドプロンプト
C:\Document ***>bcc32 text.c
て入力してみたんですが
'bcc32' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
とかでます。


624 :デフォルトの名無しさん:03/07/16 20:59
あまりにすれ違いだからみんな固まってるよ。
Cスレでちょっと前に同じ話題が出てたから、そっちを見てきなさい

625 :デフォルトの名無しさん:03/07/16 20:59
>>623
質問する場所が間違っている。
そのエラーに関する情報はWindows一般の使用法に関するものだ。

626 :デフォルトの名無しさん:03/07/16 21:03
スマソ逝ってきます

627 :デフォルトの名無しさん:03/07/16 21:23
>>566
PathIsFileSpecは「実在するかどうか」は関係ないわけだが

628 :デフォルトの名無しさん:03/07/17 00:01
はー、ファイルパスとかフォルダパスとか…。
そんな単純な要求で、こんなに会議になるとは…。
ここの人達のPG能力がわかるレスだね。(;´Д`)

まさか、それで趣味じゃなくて仕事にしてるの??<PG
…まさかね。( ´∀`)アハハ


629 :デフォルトの名無しさん:03/07/17 00:23
とりあえず質問する前にMSDNを見るのは当然のことながら回答する方もMSDNを見るべきだ。

630 :デフォルトの名無しさん:03/07/17 00:39
このスレが物凄く情けなく見えた瞬間に立ち会えた

631 :デフォルトの名無しさん:03/07/17 01:07
>>580
CreateFile()があるだろう

632 :デフォルトの名無しさん:03/07/17 01:15
またログを読まない奴が一人来たか

633 :631:03/07/17 01:18
_| ̄|○ ログ読んどけばよかった・・・・・つか違う

634 :デフォルトの名無しさん:03/07/17 01:24
デスクトップのアイコンを詳細表示にしたいんだけど
どうしてもできません。
ListView_InsertColumnがうまくいかない・・・
誰かヒント教えれ〜 (T T

635 :デフォルトの名無しさん:03/07/17 02:02
SubItemはどうしてるんだ?
自分で入れてるのか、それともデスクトプーが勝手に入れてくれるのか

636 :デフォルトの名無しさん:03/07/17 11:56
末尾"\"判定のもっともAPIスレらしい答えは
CharPrev(path, path + lstrlen(path))
じゃないの

637 :デフォルトの名無しさん:03/07/17 16:02
CreateProcess()でアプリを起動し、WaitForSingleObject() で終了待ちしてる
んですが、その起動したアプリで

int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int nCmdShow )
{
 HWND hFgWnd = ::GetForegroundWindow();
 ::MessageBox( hFgWnd, "キタ━━━(゚∀゚)━━━ !!", NULL, MB_OK);

ってやると、双方が固まってデッドロック状態(?)になります。
MessageBox( NULL, ...) とすると問題なく hFgWnd を調べると CreateProcess
をした側のメインウィンドウ(WaitForSingleObject()で待機中)なんですが、
これってまずいのでしょーか?

638 :デフォルトの名無しさん:03/07/17 16:34
まずいね

639 :デフォルトの名無しさん:03/07/17 16:41
>>637
つーかそういう場合、待機関数を別スレッドにせずに使うか?

ウィンドウハンドルを指定するとそのウィンドウを保持するプロセスに何らかのアクセスを
するとかじゃないのかな?

なんにしろ、ウィンドウを構築しているスレッドでプロセス終了を待つと
起動中はそのウィンドウが反応しなくなるんだから、別スレッドで待つべきだと思う。


640 :デフォルトの名無しさん:03/07/17 16:44
そもそも他プロセスのハンドルをMessageBoxとかに渡していいものなの?

641 :デフォルトの名無しさん:03/07/17 18:45
パスがディレクトリかどうか判定

・PathRemoveFileSpec にパスを食わせて、その戻り値をしらべる。

ではダメなのか?



642 :デフォルトの名無しさん:03/07/17 18:48
「いまさら何を言っているのかね、君は。」

643 :デフォルトの名無しさん:03/07/17 18:58
>>641
戻り値がどうなったらファイルでどうなったらフォルダなのか問い詰めたい。

644 :デフォルトの名無しさん:03/07/17 20:02
機器でSRAMカード(ATAじゃなくて、ただのSRAMカード)をメモリとして使ってます。
WindowsでSRAMカードの内容を読みたいのですが、どうすれば良いのでしょうか?

お願いします。

645 :デフォルトの名無しさん:03/07/17 20:07
>>644
何で読もうとしてるんだよ。

646 :ところでSRAMカードってなんだ?:03/07/17 21:19
>>645
愚問だな。
そこにSRAMカードがあるからに決まってる。

647 :デフォルトの名無しさん:03/07/17 22:03
>>644
リニアなメモリカードなんか普通は使わんから
ツールがその辺に転がってるわけない罠。
ADTECのCardUTとか専用のツール買え。

648 :634:03/07/17 23:01
>>635
亀レスすまそ。
そもそもLVCOLUMN構造体の中身をどうして良いのか
わからんです。
SubItemやTextは、windowsが決めてると思うんだけど
どうやってそれを反映させるのかがわからない・・・
自分で適当に列を追加してもうまくいかない〜 (T T

649 :デフォルトの名無しさん:03/07/17 23:11
>>648
デスクトップは普通詳細表示しないから
使いもしないSubItemはわざわざ追加してないと思うナリ
っつかまず普通のリストビューで実験してみれ

650 :デフォルトの名無しさん:03/07/18 02:59
Windows API 版 atexit() みたいなのってないですか?
プロセス終了時に呼ばれるコードをフックしておけるみたいなやつ。

651 :デフォルトの名無しさん:03/07/18 04:31
>>640
USERオブジェクトはウィンドウステーションとデスクトップが
同じならプロセス間共有可能であることが保証されてるから問題ない。
それがShatter系のセキュリティホールの原因にもなってるわけだが

652 :644:03/07/18 08:49
ツールでSRAMカードを読みたいんでなく、
アプリを作りたいんですが、こういう場合にどうしてます?

653 :デフォルトの名無しさん:03/07/18 09:01
DDKってダウソ出来ないんでしょうか?

VC++なら買ってますが。

654 :デフォルトの名無しさん:03/07/18 09:08
リッチエディットコントロールで、
右クリックするにはどうすればいいか、おしえてぽ。

655 :デフォルトの名無しさん:03/07/18 09:12
フェチのためのサイト
http://www.k-514.com/fe/ero.html

656 :644:03/07/18 09:47
RAMDISK.SYSとかいうのがありますね。

でも、使い方が分からないんですが、何を調べれば分かりますか?

657 :デフォルトの名無しさん:03/07/18 09:59
>>654
リッチエディットコントロールからマウスカーソルが外れないように気を
つけながら、マウスの右ボタンを注意深く押す。

658 :デフォルトの名無しさん:03/07/18 10:01
RAMDISK.sysは、メインメモリからいくらか割り当てて、
それを仮想ディスクとするものですヨ

659 :デフォルトの名無しさん:03/07/18 10:03
http://win32lab.com/tips/tips6.html

↑のようなページを見つけたんだけど、掲載されてるソースでIsDBCSLeadByteのif文て必要?
'\\'、 '/'、':' は全部ASCIIとかぶってるからいらなくない?

660 :デフォルトの名無しさん:03/07/18 10:04
>659
Shift_JISの2Byte目の範囲を言ってみ。

661 :660:03/07/18 10:06
ああそうか。CharNextがあるから、2byte目には当たらない、という話か。
たしかに、IsDBCSLeadByteのところは要らないネ

662 :デフォルトの名無しさん:03/07/18 10:07
>>660
それはCharNextでスキップできるじゃん

663 :662:03/07/18 10:07
あ、かぶった

664 :デフォルトの名無しさん:03/07/18 10:10
>>659のページはWinamp日本語化キットの作者のページみたいなんだけど、
キット使ってる自分としてはなんか微妙な気持ちになった


665 :デフォルトの名無しさん:03/07/18 10:19
それからDBCSネタついでにもう一つ質問。
Str系API(StrStrとか)ってDBCSを考慮してるっぽいんだけど、それが明記されたドキュメントってどっかにある?

StrStr("も", "\\")の結果で考慮してるっぽいって思っただけなんだけど・・・

666 :デフォルトの名無しさん:03/07/18 10:34
いまさら感が拭えんけど。

>>643
MSDNより
> PathRemoveFileSpec
> Removes the trailing file name and backslash from a path, if it has them.
で、
> Returns nonzero if something was removed, or zero otherwise.
なので、パスと思われるものを与え、戻り値が FALSE ならば
削除すべきファイル名が入っていなかった。
つまりディレクトリパスとして妥当であるといえるのではないかね。

if( !PathIsFileSpec( path ){
 if( !PathRemoveFileSpec( path ) ){
  パスはディレクトリであるという処理
 }
}

うまくいくかは知らん!

667 :デフォルトの名無しさん:03/07/18 10:39
>>666
やってみりゃわかることだが、

   それ以上醜態を晒すのはやめとけ・・・・


668 :デフォルトの名無しさん:03/07/18 10:43
近頃、回答者のレベルが著しく下がった気がする

669 :デフォルトの名無しさん:03/07/18 11:09
>>652
何にも知らないならまずJEIDAのPCカード規格書でも買うべきだな。

ドライバが必要なので、DDKも必要だ。
またはドライバ/ライブラリだけ調達汁。
95系のWindows用ならフリーで見つけたが、NT系は見たことないな。


670 :デフォルトの名無しさん:03/07/18 11:09
>>668
おまえよりはマシだけどな。

671 :デフォルトの名無しさん:03/07/18 11:23
>>670
そういうこと書くからレベル低いって言われるんだよヽ(`Д´)ノ ウワァァァン!!!!

672 :デフォルトの名無しさん:03/07/18 12:00
DBCS系のAPIって、日本語Windowsでは動作するけれど、英語Windowsでは動作しませんね。
それで、ShiftJIS文字列を扱う時は、いまだに昔ながらのISKANJIを使ってたりします。
でも、もしかするとDBCS系のAPIで処理する文字コードを設定するAPIってあるのかな?


673 :デフォルトの名無しさん:03/07/18 12:06
久しぶりに香ばしくて(゚д゚) ウマーでした


674 :デフォルトの名無しさん:03/07/18 15:14
>>646
>>645の「何で」はwhyでは無く、「what do you use」だと思う所存。

675 :デフォルトの名無しさん:03/07/18 21:27
>>672
> DBCS系のAPIって、日本語Windowsでは動作するけれど、英語Windowsでは動作しませんね。
> それで、ShiftJIS文字列を扱う時は、いまだに昔ながらのISKANJIを使ってたりします。
そういうことをするとヨーロッパ人から余計なことをするなと言われたりする。
欧州に藻前さんのアプリを使う人は誰一人いないのかもしれんが

> でも、もしかするとDBCS系のAPIで処理する文字コードを設定するAPIってあるのかな?
たとえばIsDBCSLeadByteExやCharNextExAはコードページを指定できる。
つーかCharNextEx「A」ってどういうこっちゃ?
サロゲートの範囲はハードコードせいってこと?

676 :デフォルトの名無しさん:03/07/18 22:00
>>672
IsDBCSLeadByteは…引数の文字がASCII(&半角カナ)か、
ASCII(&半角カナ)以外かを判断しているだけで、
APIに無ければ、自分で関数作れるような気がするが。
オレの気のせいだったか?

677 :デフォルトの名無しさん:03/07/18 22:06
> いまだに昔ながらのISKANJIを使ってたりします。
って言ってるじゃん。で、自作ではコードページに応じて
動作を変えるなんて芸当はできないでしょ。

678 :デフォルトの名無しさん:03/07/19 00:19
>>675
Aは機能拡張版です

・・・ということではないのかな

679 :デフォルトの名無しさん:03/07/19 00:56
CreateWindow関数の最初の引数って、何を渡せばいいのですか?
これは何か使われたりするのですか?

680 :デフォルトの名無しさん:03/07/19 01:03
>>679
WINCLASSで登録したクラス名
使われるかどうかは知らん

681 :デフォルトの名無しさん:03/07/19 01:38
MSDNで検索したのですが、CWnd::InvalidateRectしか検索できませんでした(voidの戻り値でした)。
InvalidateRectは、戻り値はあるのでしょうか(VC6.0ではintらしいですが)?
ある場合はどういう値が帰ってくるのでしょうか?

682 :デフォルトの名無しさん:03/07/19 01:54
>>681
ttp://www.microsoft.com/japan/msdn/library/ja/jpgdi/html/_win32_invalidaterect.asp

683 :デフォルトの名無しさん:03/07/19 02:07
>>678
頼むからMSDNくらい読んでください
「Ex」が機能拡張版という意味で
「A」がANSI文字版、「W」がUnicode版という意味です。
つまりこの関数はUnicode版がないということで、
> サロゲートの範囲はハードコードせいってこと?
というレスにつながるわけです。

684 :デフォルトの名無しさん:03/07/19 03:12
Windowsで普段ユニコードと呼んでるエンコーディングはサロゲートを含まないんじゃなかったっけ?

685 :デフォルトの名無しさん:03/07/19 04:01
>>684
2000以降はUTF-16でサロゲートに対応してる。

686 :デフォルトの名無しさん:03/07/19 09:12
>>683
つか、そもそも引数がTCHAR/TSTRじゃないからな。

687 :654:03/07/19 09:38
>>657
そうゆうネタじゃなくて、まじめに教えてぽ。
ポップアップメニューが出ないのはなぜ?。


688 :デフォルトの名無しさん:03/07/19 09:45
>>687
>>654の質問内容がどう考えてもネタだろ

689 :デフォルトの名無しさん:03/07/19 11:32
WM_MOUSEMOVEのメッセージがきたら
ウィンドウの位置と大きさを取得したい
っつーか、
WM_NCLBUSTTONDWONでnHITTESTがHTMINBUTTONの時に
ウィンドウの位置と大きさを取得したい

そんなAPIはなんですか?

690 :デフォルトの名無しさん:03/07/19 11:40
USB機器取り外すときに、いちいちタスクバーにマウスを持っていって
停止操作しなくちゃいけないのが面倒なので、なんとかしたいと考えています。
USB機器を取り外すにはどの辺りのAPI叩けばいいでしょうか?


691 :デフォルトの名無しさん:03/07/19 11:49
>>689
GetWindowRectではいけない理由があるなら教えてくれ。

692 :689:03/07/19 11:55
>>691
アプリケーションが終了した位置をiniに保存するという処理を
しています。
しかし、WM_NCLBUSTTONDWONでnHITTESTがHTMINBUTTONで
最小化し、さらにその状態で終了されたら次回にアプリを
立ち上げたときとんでもない位置にウィンドウが配置される

この問題を回避するためにいろいろ考えてるわけです


693 :デフォルトの名無しさん:03/07/19 11:56
GetWindowPlacement

694 :デフォルトの名無しさん:03/07/19 11:56
検索すりゃそのためのAPIがすぐ見つかるけどな

695 :689:03/07/19 12:24
GetWindowPlecementを見たがウィンドウの状態がわかっても
使い方がわからん。確かに最小化の状態から最小化の前の
ウィンドウ位置に戻っているがどうやって使うんだ?

GetMessageを使ったとして小生はVBで使うことを想定して
質問しているからウィンドウプロシージャメッセージで受け取る
タイミングがわからんし

VBのイベントハンドラって限られてるし
すれ違いかどうかわからんが
ヒントくれ

696 :デフォルトの名無しさん:03/07/19 12:35
>>695
VBはわからんが、
俺のプログラムでは、WM_CLOSEなどの、ウィンドウが破棄される前にGetWindowPlacementでゲットしたデータをiniに保存しておき、
WM_CREATEで、SetWindowPlacementで復元してる。
最小化の問題があるから、復元する前に WINDOWPLACEMENT.showCmd を適切に修正してる。

697 :689:03/07/19 12:52
>>696
VCではそうするのか。参考になったよ
WINDOWPLACEMENT構造体の中に最小化であるという情報と
復元の位置が入っていると信じて使ってみるぽ

しかし、GetWindowPlacementでは日本語のくせに
WINDOWPLACEMENTからいきなり英語で解説してるからMSDNは苦手だ、、

698 :デフォルトの名無しさん:03/07/19 13:09
VC++6.0付属のMSDNライブラリですら、MFCのほうで引けばWINDOWPLACEMENT
も日本語で説明してあったりするが。

ちなみにGetWindowPlacement/SetWindowPlacementを使うと、タスクバーが上なんか
にあったりすると見事にずれるらしい。

699 :デフォルトの名無しさん:03/07/19 13:12
GetWindowPlacementで位置とサイズだけ保存しておいて復元にはSetWindowPosを使ってる漏れ

700 :デフォルトの名無しさん:03/07/19 13:31
700

701 :689:03/07/19 13:46
>>697-698
日本語解説もあったしあとは打ち込むだけぽ
感謝汁

702 :デフォルトの名無しさん:03/07/19 14:48
BCCでリソーススクリプトを使う方法が全然分かりません。

RCファイルをを拾ってきてcppファイルと一緒にメイクしたら
以下のようなエラーが出てきて上手くいきませんでした。

Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照)

cppファイルは単独でobjファイルにコンパイルできるし、
RCファイルも単独でRESファイルにコンパイルできます。
何がいけないのか良く分からないのです。

>2の猫のC言語のサイトではマイクロソフトのやつを使ってるみたいで、
なんかよく分からないんです。
BCC系の詳しいサイトを教えて下さい。
お願いします。

703 :デフォルトの名無しさん:03/07/19 14:58
>感謝汁
おまえがな

704 :デフォルトの名無しさん:03/07/19 15:19
耳から感謝汁が垂れてきたという意味だろ

705 :デフォルトの名無しさん:03/07/19 15:25
>>702
main 関数はあるのか?
WinMain なら -tW を付けてみる

706 :690:03/07/19 15:37
USB機器を取り外すAPIに関して情報ありませんかー?
どこそこのスレで聞けとか、実現してるフリーウェアがあるよ、
などでもいいのでプリーズ。

707 :デフォルトの名無しさん:03/07/19 16:40
CM_Request_Device_Ejectを発行しませう。

708 :デフォルトの名無しさん:03/07/19 16:43
>705
ありがとうございます
なんか設定がおかしかったみたいです

709 :690:03/07/19 17:50
>>707
ありがとうございます!大変参考になりました!

710 :デフォルトの名無しさん:03/07/19 19:16
>>707
おおー、こんなのあったのか。

漏れもいちいちトレイから操作するのが面倒で、
なんとかできんかなーと思ってたところだ。

ハードウェア寄りの面倒なコーディングが必要なら、
そこまでする気にもなれんなーと思ってたんだが。

711 :654:03/07/19 22:57
>>688
ネタじゃないってば。
やっぱり、エディットコントロールの
ポップアップメニューの出し方はわからないまま。
コピペのメニューを出したいんだけど、出ない。

とりあえず、クリップボードを使って
コピーすることにしましたが。


712 :デフォルトの名無しさん:03/07/19 23:28
>>711
処理系をBCBかDelphiかVBにしたら?

713 :デフォルトの名無しさん:03/07/19 23:36
>>711
っていうか、リッチエディットコントロールにそんなものないから自分で
実装しないと駄目だよ。聞くまでもない。

714 :デフォルトの名無しさん:03/07/20 00:27
LoadImage関数の戻り値はなにになるんでしょうか?
MSDNで調べたのですが、LoadBitmap関数しか見つかりませんでした

715 :デフォルトの名無しさん:03/07/20 01:52
いったいどこを探したんですか?
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/introductiontoresources/resourcereference/resourcefunctions/loadimage.asp

716 :デフォルトの名無しさん:03/07/20 01:52
>>714
いつの時代のMSDN Libraryをお使いですか。

ttp://www.microsoft.com/japan/msdn/library/ja/jpwinui/html/_win32_loadimage.asp

717 :デフォルトの名無しさん:03/07/20 03:27
>>714
char です。

718 :デフォルトの名無しさん:03/07/20 11:59
>>714
画像ファイルを読み込みたいんなら
戻り値は単にHBITMAPにキャストすればいい

719 :デフォルトの名無しさん:03/07/20 17:36
turb C++でCを使ってプログラミングもどきをしているものです。
MIDIや、WAVのファイルが再生できるDLLやヘッダー無いですか?
あちらこちらのサンプルコード使ってみたり、ぐぐってみたりしたけど見つかりません。
教えてください。

720 :デフォルトの名無しさん:03/07/20 18:36
本当に探したのかと問いたい。問い詰めたい。小一時間問い詰めたい。
おまえただ「ぐぐってみた」って言いたいだけちゃうんか、と。

721 :デフォルトの名無しさん:03/07/20 18:45
>>720
いや、どうやら本当に無いようだ!
http://www.google.co.jp/search?q=MIDI%82%E2%81AWAV%82%CC%83t%83%40%83C%83%8B%82%AA%8D%C4%90%B6%82%C5%82%AB%82%E9DLL%82%E2%83w%83b%83_%81%5B%82%AA%97%7E%82%B5%82%A2%82%C5%82%B7&ie=Shift_JIS&hl=ja&btnG=Google+%8C%9F%8D%F5

722 :デフォルトの名無しさん:03/07/20 19:04
7ラタ

723 :デフォルトの名無しさん:03/07/21 00:36
コマンドプロンプトから起動されたWinMainで始まるアプリが、
コマンドプロンプトの標準出力に出力する方法ってあります?

724 :デフォルトの名無しさん:03/07/21 01:04
>>723
無理だと思われ

725 :デフォルトの名無しさん:03/07/21 01:05
CreateWindowの最後の引数は、NULL固定ですよね?
将来的に使われるかもしれないってことですよね

726 :723:03/07/21 01:16
>>724
そうですか。残念…。
お答えありがとうございました。

>>725
ttp://www.microsoft.com/JAPAN/developer/library/jpuipf/_win32_createwindow.htm
CreateWindowでぐぐると最初にひっかかりますよ

727 :デフォルトの名無しさん:03/07/21 02:05
ShowWindowの戻り値について質問なんですが、

ウィンドウが以前から表示されていた場合は、0 以外の値が返ります。

ウィンドウが以前は非表示だった場合は、0 が返ります。

とあるのですが、ウィンドウが以前から表示されていた場合とは、どんな場合なんでしょうか?

728 :デフォルトの名無しさん:03/07/21 02:15
ShowWindow(hWnd, SW_SHOW);
ShowWindow(hWnd, SW_HIDE);

729 :デフォルトの名無しさん:03/07/21 04:48
WS_VISIBLEスタイル(ry

730 :デフォルトの名無しさん:03/07/21 06:35
>>725
WM_CREATEでLPARAMをLPCREATESTRUCTにキャストして->lpCreateParamsで使うユーザ定義の引数
用途はキミ次第

731 :ケン:03/07/21 12:36
ディスプレイに画像を表示しないで、色の情報を
取得することはできますか?
たとえば、あるbitmapの上から10ポイント、左から30ポイント
の位置の色の情報を取得したいのですが・・・
ディスプレイから取得しない方法を教えていただきたいのですが・・・

732 :デフォルトの名無しさん:03/07/21 13:01
Bitmapリソースなら、CompatibleDC使えばいい。
Bitmapファイルなら、自分で解析しろ。

733 :ケン:03/07/21 18:53
>732

>Bitmapファイルなら、自分で解析しろ。
まんどくそい。
API一発でなんとかならないですか?

734 :デフォルトの名無しさん:03/07/21 19:00
>>733
LoadImageで読んでSelectObject→GetPixel、ただし画面の色数に影響されるかも

735 :デフォルトの名無しさん:03/07/21 19:01
解析するしかない。
CreateDIBitmap BITMAPINFOHEADER あたりでググれば
わかるかもね。

ひょっとして>>733はフィッシャーマンだった?

736 :デフォルトの名無しさん:03/07/21 20:40
>>734
LoadImageはリソースしか読めん。
出直してまいれ。

737 :デフォルトの名無しさん:03/07/21 20:53
えっと…。

キャラクタベースの文字列とか文字表示APIってどんな名前ですか?
win32 コンソールアプリで使いたいんです。具体的には色表示したり
したいんです。

エスケープシーケンス使えと言われそうですが、NT/2000/XP の
コマンドプロランプとではサポートしていないのです

738 :737:03/07/21 20:54
× コマンドプロランプとではサポートしていないのです
○ コマンドプロンプトではサポートしていないのです

739 :デフォルトの名無しさん:03/07/21 21:19
>>737
2000などでもエスケープシーケンスなら使えるっちゅうに。
まあ、それだけではなんだから、「猫でもわかる」でぐぐりれ。

740 :デフォルトの名無しさん:03/07/21 21:20
>>737 MSDNライブラリの目次から[Windows 開発]-[Windows ベース サービス]-[ファイルおよび入出力]-[SDK DQメント]-[ファイル入出力]-[コンソール]を見れ

741 :デフォルトの名無しさん:03/07/21 21:29
>>736 LR_LOADFROMFILEは?

742 :名無し@沢村:03/07/21 21:37
>>736 ( ´_ゝ`)フーン 

743 :デフォルトの名無しさん:03/07/21 21:48
>>737
しょうがない、マジレスしてやるか。

printf("<COLOR=0xFF0000>Hello world</COLOR>\n");

で色が変わる。
あ、そうそう、
#include <html.h>
忘れるなよ。

744 :デフォルトの名無しさん:03/07/21 21:50
>>733

BMPをAPIでDIBSectionなどに読み込むと、デバイスコンテキストの属性の影響を受ける可能性があるから、自分で解析したほうが確実だよ。
横幅が4の倍数ピクセルの24bitBMPなら、そんなに難しくはない。

BITMAPFILEHEADER内(+10バイト)にあるRGBデータの先頭アドレスにx*3+y*横幅*3を加えれば、(x,y)のRGB(バイトイメージではBGR)のデータを得られる。ただし、デフォルトの座標系はGDIとは上下逆だから要注意。
横幅や高さなどはBITMAPINFOHEADER内にあるから、そこを読めばよい。


745 :デフォルトの名無しさん:03/07/21 23:00
>>733
その程度の大した作業でないことすら面倒くさいのか?
適正無いから早めに身を引いた方が楽だよ

746 :デフォルトの名無しさん:03/07/21 23:13
>>745
もしもAPI一発呼び出すだけで色が取れたら?
ビットマップファイルを解析するなんて時間の無駄だよね?

下調べせずに無駄なコードばっかり書いて納期を守れない>>745
邪魔で仕方ない。
はよこの業界から去れや。

747 :_:03/07/21 23:15
http://homepage.mac.com/hiroyuki44/jaz09.html

748 :デフォルトの名無しさん:03/07/21 23:17
>>745-746
醜いですよ


749 :デフォルトの名無しさん:03/07/21 23:17
>>746
素人が業界語るなよ

750 :デフォルトの名無しさん:03/07/21 23:23
>>749
プロの無職が業界語るなよ(w

751 :デフォルトの名無しさん:03/07/21 23:25
>>ナナハン

ワラタ

752 :デフォルトの名無しさん:03/07/21 23:28
>>751=>>745が知能障害を起こして誤魔化そうとしていらっしゃいます。

753 :751:03/07/21 23:28
しかし、情報隠蔽が『アフォのふりをすること』ってのが
わかってない昨今のバカガキにうんざりってとこは確かにある。

754 :デフォルトの名無しさん:03/07/21 23:29
業界なんか語りたがるのはいつだって素人だ

755 :デフォルトの名無しさん:03/07/21 23:35
>>746
納期を守れない奴はアホの馬鹿だが邪魔でも迷惑でも無いが、
2chで下調べするようはアホの馬鹿は邪魔で迷惑だから去ってくれよ。

ビットマップファイルの特定座標(ピクセルではなくポイント!!)の色を取得するなんていう応用性のかけらも無いAPIが存在するわけ無いだろ。

756 :デフォルトの名無しさん:03/07/21 23:40
>>736
LoadImage(NULL, pathAndName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);

757 :デフォルトの名無しさん:03/07/21 23:41
>>755
日本語が不自由な人は日本から去って韓国に去ってくれ。

758 :デフォルトの名無しさん:03/07/21 23:45
>>757は感感俺俺

759 :デフォルトの名無しさん:03/07/21 23:45
>>757
この日本語も怪しいと思いますが

760 :デフォルトの名無しさん:03/07/21 23:46
ワラタ

761 :デフォルトの名無しさん:03/07/22 00:02
>>753
痛い

762 :デフォルトの名無しさん:03/07/22 00:09
>>746
だったら、その一発呼び出すだけで色が取れるというAPIを提示してみせろよ。
それができたらお前が正しいと認めてやるよ(w
但し納期に間に合うように見つけてこいよな
納期は7/22 の正午まで待ってやる

763 :デフォルトの名無しさん:03/07/22 00:10
猫でもわかるプログラミング
とやらで勉強しようと始めたんですけど
正直意味不明、これで十分分かり易いのでしょうか?
サンプルも実行できないし…

764 :デフォルトの名無しさん:03/07/22 00:38
>>763
ある程度わかってる人がみる所だとおもうが。

765 :デフォルトの名無しさん:03/07/22 01:08
>>762
よーく読め。

まず、DIBファイルの解析がめんどいというレス。>>733

これに対して、めんどいなら業界を辞めろというレス。>>745

更にそのレスに対して、とにかく調べて無駄な事はしないべきだというレス。>>746


めんどくさがって如何にして簡単に仕上げるかってのもプログラマの適正であって、
簡単だろうが何だろうが車輪の再発明やる奴はダメだという話だよね。
>もしもAPI一発呼び出すだけで色が取れたら?  
と言ってるのは、そんな簡単なの書けよって意見に反対するための例だよね。
”もしも”って書いてるだろ、もしも既にあるのなら作り直すのは無駄だよね、と言ってる。

もしこうなら、って話の趣旨からズレた部分に対してツッコミを入れるというか
ナンクセ付ける>>762に乾杯♪

さぁ、君の論点ずらしも見破られたワケだが。
反省文なら7/22の朝まで待ってやる。

766 :デフォルトの名無しさん:03/07/22 01:15
質問しまん。

GetWindowTextで取得した文字列「hogehoge」と

char sv[]="hogehoge";

↑は何が違うんですか?改行されてるんですか?
その辺教えてください。

ちなみにえでぃっとぼっくす↓
hEWnd1 = CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", (LPSTR)NULL,
WS_OVERLAPPED | WS_CHILD | WS_VISIBLE |
ES_LEFT | ES_WANTRETURN | ES_NOHIDESEL,
0, 0, 150, 25, hwnd, (HMENU)Edit1, g_hInstance, NULL);

767 :デフォルトの名無しさん:03/07/22 01:16
どっかにテンプレなかったっけ?
ありえない仮定を持ち出す・・・とかいう奴。

しかも
> 下調べせずに無駄なコードばっかり書いて納期を守れない>>745が邪魔で仕方ない。

納期を守れない根拠もないし、無いとわかっているAPIを自分でコーディングするのは無駄でもない。
質問者として回答者を侮辱するのはどうかと思うよ。

しかもむしろ探し回る時間が無駄。
実際、733がこのスレで聞いて無駄に消費した時間があれば自分で書いたほうがましなのは言うまでも無い。


768 :デフォルトの名無しさん:03/07/22 01:16
有りもしないAPIを探すより、そんな簡単なモノは自分でさっさと作ってしまった方が早いのだが。
少なくとも相当な馬鹿でない限りは、最初の質問をした時点から今の時間まででの間に、
余裕で目的を達成している。

769 :デフォルトの名無しさん:03/07/22 01:18
要するに自分でAPIを探す能力もなければ、目的物を作成する能力もない
それを指摘されて逆ギレ
プログラムどころかどの業界にも向いていない

770 :デフォルトの名無しさん:03/07/22 01:24
そんなAPIがあるわけないとわからない人は(プログラムを作るのは)難しい。

771 :名無し@沢村:03/07/22 01:25
>>769
人工無能にはなれるんじゃないか。

772 :デフォルトの名無しさん:03/07/22 01:28
つーか、ファイル読んでDIB構造体をメモリに作るコードは、
Webにいくつでも転がっている。
それをコピペで(w

773 :デフォルトの名無しさん:03/07/22 01:46
最も優秀な方法>>772

774 :デフォルトの名無しさん:03/07/22 01:51
>>766
誰にも相手にされず少しかわいそうなので答えるが。


   ま っ た く 質 問 の 意 味 が わ か ら な い 。


国選エスパーを雇うか一般人にもわかる言葉で聞いてくれ。

775 :名無し@沢村:03/07/22 01:58
>>766
おまいはUNICODEビルドで開発してるんだろ。
だからGetWindowsText()で取得した文字列はchar型ではなく
wchar_t型の文字列なんだよ。

776 :デフォルトの名無しさん:03/07/22 02:02
エスパー

777 :デフォルトの名無しさん:03/07/22 02:25
あんまプログラマの適正がどうだとか(他には英語が読めないだろ、学歴無いだろなど)書かないで欲しいよ。
無駄なやり取り増えるから。

778 :デフォルトの名無しさん:03/07/22 02:30
>>775

それにしては、
CreateWindowEx(..., "EDIT"...) が UNICODE になってないようだ。
なぞがなぞを呼ぶ・・・

779 :デフォルトの名無しさん:03/07/22 03:09
Cスタイルの文字列を==演算子で比較していたに35カノッサ

780 :デフォルトの名無しさん:03/07/22 03:12
>>779
なんか問題ある?

781 :デフォルトの名無しさん:03/07/22 03:21
>>781
問題しかないが。

782 :デフォルトの名無しさん:03/07/22 04:22
>>781

783 :デフォルトの名無しさん:03/07/22 04:40

781 名前:デフォルトの名無しさん :03/07/22 03:21
>>781
問題しかないが。


784 :デフォルトの名無しさん:03/07/22 05:49
夏だなぁ・・・・・


785 :デフォルトの名無しさん:03/07/22 12:53
質問です。
一度値の入った DDL のグローバル変数、およびグローバルな static 変数は、
どの時点で無効になりますか。

786 :785:03/07/22 12:56
念のために言っておきますが
DDLとはData Definition Laguageのことです。
Domain Definition Languageや
Dynamic Declaration Languageでは
ありません。

787 :デフォルトの名無しさん:03/07/22 17:12
教えて頂きたいのですが、>>785はWin32APIと関係があるのでしょうか?

788 :デフォルトの名無しさん:03/07/22 18:20
/////////////////////////////////////////////////


    「夏厨が大量に沸いています」

したがってこのスレは8月いっぱい休止致します。
皆さんまた9月にお会いしましょう。


                    See you again

/////////////////////////////////////////////////

789 :デフォルトの名無しさん:03/07/22 18:24
さようなら、788さん(だけ)…

790 :デフォルトの名無しさん:03/07/22 18:30
教えて頂きたいのですが、>>787って知障ですか?

791 :デフォルトの名無しさん:03/07/22 18:45
こいつら迷惑メール業者です
懲らしめて下さい

info@one4tune.com
info@pure-in.com
tikitiki@mth.biglobe.ne.jp
dmdmdmaj@docomo.ne.jp



792 :デフォルトの名無しさん:03/07/22 18:48
785が暴れとる・・・

793 :デフォルトの名無しさん:03/07/22 18:53
>>790
教えてあげよう。
知障なのはお前だ!
差別用語使うな。ヴォケ

794 :デフォルトの名無しさん:03/07/22 18:58
本当に 私のお願いを 全部叶えてくれた  先生を紹介します。
こんな 凄い人がいるのに 知らないで 悩んでる人が いると

思うと  いてもたっても いられなくて!!

是非 相談してみて ADは http://ainenjyukai.hp.infoseek.co.jp/ です


すごいでしょーーー!


795 :デフォルトの名無しさん:03/07/22 19:01
すげー(゚σ ゚)ホジホジ

796 :デフォルトの名無しさん:03/07/22 19:35
すげー(゚σ ゚)ホジホジ




797 :デフォルトの名無しさん:03/07/22 19:35
すげー(゚σ ゚)ホジホジ 1




798 :デフォルトの名無しさん:03/07/22 19:36
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ






799 :デフォルトの名無しさん:03/07/22 19:36
すげー(゚σ ゚)ホジホジ


すげー(゚σ ゚)ホジホジ


すげー(゚σ ゚)ホジホジ




800 :デフォルトの名無しさん:03/07/22 19:36
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ








801 :デフォルトの名無しさん:03/07/22 19:37
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ





802 : :03/07/22 19:37
質問です〜。

ShowHtmlDialog(Ex) で frameset 使ったページを表示すると、
A タグの target属性を初めとして、兄弟フレームへのアクセスが
一切できないのは仕様ですか?


803 :デフォルトの名無しさん:03/07/22 19:39
>>787
ワラタ

804 :デフォルトの名無しさん:03/07/22 20:10
誰も785に回答しようとしないね。意地悪だね。

805 :デフォルトの名無しさん:03/07/22 20:23
>>804
マジレスすると、Win32APIの質問じゃないから。
Win32APIとどう関係があるのか教えてくれたら回答してあげる。

806 :デフォルトの名無しさん:03/07/22 20:32
>>805
そう思っているのはあなただけみたいですよ?

807 :デフォルトの名無しさん:03/07/22 20:39
>>806
DDLってSQLで使う奴って事くらいしか知らないのですが、
Win32API(=Windowsのシステムコール)とどのような関係があるのか
良ければ教えてもらえますか?

あー、煽りじゃなくて、私はDDLを知らないので勉強の為に。

808 :デフォルトの名無しさん:03/07/22 20:42
>>788,>>790,>>803がアホってこと?

809 :785:03/07/22 20:42
すいません DLL の間違いです。
Win32API とはちょっと範疇外れるけど
Windows でのプログラミングということでお聞きしたかったんですが・・・

static やめました☆

810 :デフォルトの名無しさん:03/07/22 20:45
釣りの相手はやめましょう。

811 :デフォルトの名無しさん:03/07/22 20:46
>>808
釣られた787がアホってこと

812 :デフォルトの名無しさん:03/07/22 20:46
>>811
なるほど!

813 :デフォルトの名無しさん:03/07/22 20:49
要するに785!=786で、786は釣り師ってことか。

814 :デフォルトの名無しさん:03/07/22 20:52
もう何が何やら・・・

815 :デフォルトの名無しさん:03/07/22 21:01
LoadImage関数で、ビットマップの(100,100)から(200,200)を読み込ませる方法はありますか?

816 : :03/07/22 21:01

IPアドレス 218.123.72.69
ホスト名 YahooBB218123072069.bbtec.net


817 :デフォルトの名無しさん:03/07/22 21:05
>>815
LoadImageのどこにそんなパラメータがありますか?(ピュア

818 :デフォルトの名無しさん:03/07/22 21:30
>>817
0,0のやり方しか見たことないから、こういう場合はどうするのかなと思いまして

819 :デフォルトの名無しさん:03/07/22 21:41
LoadImageした後に必要な部分を切り出す。

820 :デフォルトの名無しさん:03/07/22 22:32
>>793
差別用語使うな。ヴォケ

821 :デフォルトの名無しさん:03/07/22 22:49
WindowsでCOMを使ったマルチスレッドのプログラミングをしているうちに、

・スレッドとウィンドウ(メッセージキュー)の関係
・ワーカースレッドと、UIスレッド
・モーダルダイアログとスレッド
・メッセージループとスレッド

とかの関係が良く分からなくなってしまいました・・・。

ここら辺のトピックについて、解説しているサイト、書籍などはありませんでしょうか?


822 :デフォルトの名無しさん:03/07/22 22:51
>>821
さらに
・COMオブジェクトとスレッド
に重要な関係があったような気がするのでそこも調べてみた方がいいと思う。

・・・詳しいサイトは知らん、ごめんよ。

823 :デフォルトの名無しさん:03/07/22 23:05
gethostname()でFQDN形式で取得できるの。
またそれはどこから取得するの?

824 :デフォルトの名無しさん:03/07/22 23:27
>>822
アパートの事?

すみません、COMってWin32APIの範疇に(ry

825 :821:03/07/22 23:39
コメントありがとうございます。 822、824さま

もちろん、アパートも問題なのですが、アパートについて調べるうちに、
そもそも、「自分は、スレッドとウィンドウの関係が分かっていない!」
ということに気づいたのです。

ウィンドウは、特定のスレッドの配下にいるらしいということは分かったのですが、
いかんせん複雑怪奇なWin32故、知識の整理ができません。
それで、ここらへんについて、説明をしているサイトや書籍を探している次第です。


826 :デフォルトの名無しさん:03/07/23 00:37
>>820
「知的障害者」「知障」が差別用語だとすると、正しくはなんて呼べばいいのでしょうか?

827 :デフォルトの名無しさん:03/07/23 00:40
知恵遅れ

828 :デフォルトの名無しさん:03/07/23 00:46


829 :デフォルトの名無しさん:03/07/23 00:56
>>826
「様」をつけろ

830 :デフォルトの名無しさん:03/07/23 01:14
>>829
知的障害様者

831 :デフォルトの名無しさん:03/07/23 01:16
>>821

832 :デフォルトの名無しさん:03/07/23 01:33
>>821,825
>ウィンドウは、特定のスレッドの配下にいるらしいということは分かったのですが、
ここでかなーり勘違いしてるっぽい。
#オレも昔はそんな風に勘違いしてた
きちんと解説しているサイトや書籍は知らないが…

まずはみっちりシングルスレッドの普通のWin32アプリについて勉強すること!
メッセージループってのは要するに「GetMessageしてDispatchMessage」
を延々と繰り返してるだけなんだが、この二つの関数が何をやってるのか
把握しさえすればなんとかなる。分かってしまえば「なーんだ」って感じ。

833 :デフォルトの名無しさん:03/07/23 01:36
>>832
「TranslateMessage」は何でふか?

834 :デフォルトの名無しさん:03/07/23 01:42
飾りだよ

835 :デフォルトの名無しさん:03/07/23 01:45
かざりじゃないのよ涙は…

836 :デフォルトの名無しさん:03/07/23 01:51
某サイトのリソーススクリプトを使ってビットマップを表示するサンプルを試したいのですが
画像が表示されません

リソーススクリプトの組み込みって具体的にどうやるんでしょうか?

使ってるのはMicrosoft Visual C++ 6.0です

837 :デフォルトの名無しさん:03/07/23 01:57
>>832
どう勘違いなんだ?
ウィンドウは作成したスレッドに属していると思うが。


838 :821:03/07/23 02:07
特に分からないのが、
同一のスレッドにモーダルウィンドウがあるときの動作です。
モーダルウィンドウを出すと、親ウィンドウのメッセージプロシージャは実行されない?
メッセージボックスでは???


839 :デフォルトの名無しさん:03/07/23 02:13
親WindowがDoModal関数を呼んだら、そのモーダルウィンドウが閉じられるまで
制御は戻らないよね?

840 :デフォルトの名無しさん:03/07/23 02:23
832 の言う通りか。
スレッド以前にイベントドリブンを勉強したほうが良いな。

841 :デフォルトの名無しさん:03/07/23 09:02
>833
>「TranslateMessage」は何でふか?

キーボートからの入力をキーボードの状態に応じて(WM_CHAR用に)変換するだけ。
メッセージを利用してキーボードの入力を処理しなければ関係ない。


842 :デフォルトの名無しさん:03/07/23 11:17
PostThreadMessageわ〜?

843 :デフォルトの名無しさん:03/07/23 12:28
ウインドウの右上にある最大化ボタンを押して最大化したあと
もう1度押すと最大化が解除されますよね?
このときに再描画の処理を行いたいのですが、どんなメッセージが送られて
きているのでしょうか?
WM_PAINTもWM_GETMINMAXINFOも飛んできません。


844 :843:03/07/23 12:36
失礼しました。OSはWindows2000です。

845 :デフォルトの名無しさん:03/07/23 12:40
WM_SIZEじゃねーの?

846 :843:03/07/23 13:36
>>848
それが来ないんですよ。。。

847 :デフォルトの名無しさん:03/07/23 13:39
↓責任重大

848 :デフォルトの名無しさん:03/07/23 13:44
>>846
ちゃんとSpy++で確認した?
今OpenJaneで試してみたけど、ちゃんとWM_SIZE飛んできてたよ。

849 :デフォルトの名無しさん:03/07/23 13:49
無限ループに陥った

850 :845:03/07/23 13:50
>>846
VC付属ツールのSPY++使って、
メッセージ拾ってみるとかしてみそ?

851 :デフォルトの名無しさん:03/07/23 16:25
>>843
WM_SHOWWINDOWにSW_OTHERUNNZOOMが乗っかってくる。

852 :デフォルトの名無しさん:03/07/23 21:01
特定のレジストリキーに入ってる値とタイトル?を取得するために
RegEnumValueを使いたいのですが…MSDNを見てもよくわかりません(TT
んで,いろいろやってみたのですがうまくいかないのです…

どなたかデーターの値とタイトルを列挙するサンプルあげてくれませぬか…
おねがいいたします

853 :デフォルトの名無しさん:03/07/23 21:04
>>852
誰かとかぶるかもしれないが、、
ググりなさい。

http://www.google.com/search?hl=ja&inlang=ja&ie=Shift_JIS&q=RegEnumValue+Declare&lr=lang_ja

854 :デフォルトの名無しさん:03/07/23 21:30
>>852
つか、MSDN読んでもワカランのなら適性無いから転職しろ。

855 :デフォルトの名無しさん:03/07/23 21:36
ビットマップ画像ファイル(またはicoファイル)を読み込んで
アイコンハンドルを取得する関数ってありますか?
または、サンプルソースがある場所を教えていただければ幸いです
よろしくお願いします



856 :デフォルトの名無しさん:03/07/23 21:38
>>854
ごめんなさい,学生なんです(TT

857 :直リン:03/07/23 21:38
http://homepage.mac.com/maki170001/

858 :デフォルトの名無しさん:03/07/23 21:53
また適正厨かよ・・・

859 :デフォルトの名無しさん:03/07/23 22:01
CreateThread で取得したハンドルは CloseHandle で閉じるんだよね?


860 :デフォルトの名無しさん:03/07/23 22:03
>>855
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=%E3%83%93%E3%83%83%E3%83%88%E3%83%9E%E3%83%83%E3%83%97%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%80+%E3%83%8F%E3%83%B3%E3%83%89%E3%83%AB+%E5%8F%96%E5%BE%97+API&lr=

861 :デフォルトの名無しさん:03/07/23 23:25
MsgWaitForMultipleObjectsって
WaitForMultipleObjectsと同じように待って、
その間にメッセージがきたら
WndProcを呼んでメッセージを処理してくれる関数なの?

862 :デフォルトの名無しさん:03/07/23 23:28
>>855
CreateIcon()
CreateIconIndirect()
CreateIconFromResource()
などを検索。
ビットマップのバイナリデータを扱えないと難しいね。



863 :デフォルトの名無しさん:03/07/24 01:05
>>861
メッセージが来た時の対応はPeekMessageと同じ。
IsDialogMessageしてTranslateAcceleratorして
TranslateMessage通してDispatchMessageしてやらなくちゃだめぽ

864 :832:03/07/24 02:59
>>837-840
う!?ああそうか、そう読むと832の段階では早とちりだった。
「各ウィンドウが個別のスレッドに属している」と>>821氏が
勘違いしていると思ったのだが、やっぱりそうであったか。

VisualC++使ってるなら
DispatchMessageの呼び出しとWindowProcの先頭、
DoModalの呼び出しの直前と直後あたりにブレークポイントを
置いてデバッガ上で動かしてみて、
コールスタック(呼び出し履歴)を見てみると面白いかも。

865 :デフォルトの名無しさん:03/07/24 04:31
一つのスレッドに一つ以上のウィンドウが属している、であってますか?

866 :デフォルトの名無しさん:03/07/24 09:57
他ウィンドウに対してキー情報を送る場合、
SendMessage(PostMessage)でWM_KEYDOWN、WM_CHARを使う
SendInput(keybd_event)を使う
これ以外の方法はありますか?


867 :デフォルトの名無しさん:03/07/24 10:59
外部物理デバイスに、「キーを押せ」と指令を出す

868 :デフォルトの名無しさん:03/07/24 11:27
>>866
漏れならキーが押されたときに発生するメッセージを直接送信する。

PostMessage(l_hDialog, WM_COMMAND, MAKELONG(GetDlgCtrlID(l_hButton), BN_CLICKED), l_hButton);

869 :デフォルトの名無しさん:03/07/24 11:29
開店セール見に来てーーーーーーーーーー!DVDを見ようー!GO!
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
開店セール1枚 500円より→→→http://www.dvd-exp.com 
アダルトDVDが激安販売→→→http://www.dvd-exp.com 
アダルトDVDの価格はなーんと1枚900円→→→http://www.dvd-exp.com 
最短でご注文いただいた翌日にお届け!→→→http://www.dvd-exp.com 
セルビデオ店の人気商品が24時間お買い物が出来ます。
        時間をかけてゆっくり選んでください!
          http://www.dvd-exp.com←へGO!
           DVDエクスプレス


870 :デフォルトの名無しさん:03/07/24 12:46
>>866
keybd_event()

871 :デフォルトの名無しさん:03/07/24 22:30
>>868
MAKEWPARAM
(LPARAM)

872 :デフォルトの名無しさん:03/07/24 22:47
助けて!waveInResetがフリーズする!

音声認識処理を組み込んだActiveXコントロールを作ってるけど、
ウェーブフォームオーディオ入力デバイスを閉じようとすると
フリーズしちゃう!

waveInStop→waveInReset→waveInUnPrepareHeader→waveInClose
の順で閉じてるけど、waveInStopは0を返してる。それまでの
Openとかは問題なし。

ぐぐってみたけど、こんな症例はどこにもない。
だれか助けて!お願い!


873 :832:03/07/25 00:35
>>865
あってる。大抵のプログラムでは全てのウィンドウが
メインスレッドに属してる。
「属する」って言い方もナンだが、そのスレッドのメッセージループの
配下で各ウィンドウのウィンドウプロシージャが動いてる。

874 :デフォルトの名無しさん:03/07/25 10:31
>>871
添削ありがとう。
そんな小洒落たAPIがあったんだね。
今後はそっちを使わせてもらうよ。

875 :デフォルトの名無しさん:03/07/25 11:07
>>874
MAKELPARAM,MAKEWPARAMは単なるマクロです

876 :デフォルトの名無しさん:03/07/25 11:31
>>875
ありがとう。
ここはソフト開発の本質が学べるね。

まー、細かいことをいうなら>>868のコードは実際にはPascalなので
マクロでもAPIでもなくDelphiの単なるライブラリ関数なわけだが。

877 : :03/07/25 11:46
>>873
属するっていう言い方で良いんじゃない?実際に各ウィンドウは、
Create されたスレッドに属していて、

・そのウィンドウに関するメッセージは、そのウィンドウが属するスレッドの
 メッセージキューに加えられる。
・別のスレッドからSendMessage されると、スレッド間通信が行われて、
 WindowProc はウィンドウが属するスレッドで実行される。

てな動作になります。

後者のようなスレッド間通信は、COM コンポーネントがアパートを超えて
メソッド呼び出しされる場合なんかにも使われる仕組みです。

面白いのは、こうしたスレッド間呼び出しで呼び出し元スレッドがブロック
している間にも、他スレッドからの呼び出しには応じられるということ。
STA の COM コンポーネント A, B があって、 A が B->hoge() を呼び出して
一見ブロックしていても、その間に B からの A->hage() なんかにはちゃんと
応じてくれます。

面白くないのは COM のスレッド間通信でタイムアウトを明示する簡単な方法
が無さそうなこと。。。

878 :デフォルトの名無しさん:03/07/25 12:03
別スレッドのウインドウに親子関係を持たせると、
不安定になってなかなか楽しい
とくに標準コントロールの部類

879 :まこと:03/07/25 13:29
プログラム2:10進数の整数の桁数を表示する

880 :デフォルトの名無しさん:03/07/25 13:30
>>879
APIとの関係を200字以内で記せ

881 :デフォルトの名無しさん:03/07/25 15:23
>>872
CALLBACK をどうやってるかが気になるが。
CALLBACK_FUNCTION で waveInOpen を呼び出していて、
callback 関数の中でデッドロックしてるとかじゃないよね?

882 :デフォルトの名無しさん:03/07/25 19:54
もしかしたら、C++スレかもしれませんがそうだった場合ごめんなさい

SECURITY_ATTRIBUTES構造体って使っていますか?
もし使っているならば、どういうときに使っていますか?

883 :デフォルトの名無しさん:03/07/25 20:39
>>875
関数だけがAPIではない。
マクロだって立派なAPI

884 :デフォルトの名無しさん:03/07/25 20:40
>>882
サービスとログオンユーザーでカーネルオブジェクトを共有する必要があるときとか

885 :デフォルトの名無しさん:03/07/25 21:34
こんなサイトあるよ♪

http://www2.free-city.net/home/angelers/page008.html

886 :872:03/07/25 22:51
>881
CALLBACK関数waveInProcではWIM_OPEN,WIM_CLOSE,WIM_DATAの
切り分けをして、OnWimData(もともと単体動作のものを流用)
を呼び出しているだけです。
呼び出しも、グローバルでCOleControlのポインタを持たせて
おいて->OnWimOpenを実行するだけで、デッドロックするよう
な要素が見当たりません。(><)


887 :デフォルトの名無しさん:03/07/26 01:28
あー俺 waveInStop って使ったこと無かった。
終了時は waveInReset しか呼んでないよ。


888 :デフォルトの名無しさん:03/07/26 01:41
>>882
インストーラから呼び出すDLLで一部のファイルを制限ユーザでも更新させるために、
ファイルのパーミッションを変更したいとか、
レジストリの一部のキーを制限ユーザで更新させたいとか。

とにかく既存のアプリを無理やり XP ロゴに適用させようと悪さする時かな(w


889 :デフォルトの名無しさん:03/07/27 01:49
質問させていただきます。

エディットボックスを任意に「無効」にしたいのですが、EM_の中にそれらしきものが発見できません
EM_SETREADONLYをとりあえず使っているのですが、
フォーカスをあわせられるのがちょっと困り者です
「無効」にするメッセージはないでしょうか?

890 :デフォルトの名無しさん:03/07/27 01:50
EnableWindow

891 :デフォルトの名無しさん:03/07/27 01:50
EnableWindow() は目的と違う?

892 :デフォルトの名無しさん:03/07/27 01:55
(゚д゚) EM_メッセージを使うという先入観に捕らわれてました

灯台下暗し。ありがとうございました

893 :デフォルトの名無しさん:03/07/27 11:02
こんにちは。質問があります。

すでに画面上に表示されているフォームがあるのですが、
固定サイズになっていてサイズ変更や最大化が出来ない状態です。
これを可能にするにはどうしたらよいのでしょうか?

ちなみに左上のコントロールボックスの「サイズ変更」と「最大化」は
共にグレーアウトされています。

894 :デフォルトの名無しさん:03/07/27 11:20
>>893
開発環境を書こう。
つーか、たぶんそこはかとなくスレ違い。

895 :デフォルトの名無しさん:03/07/27 11:24
>>893
hWndを取得して、ウインドウのモードを書き換えてしまえばOKだと思われる
hWndを取得する方法としては、
タイトルバーの文字で一致を探すとか、対象座標で一番上にあるウインドウのhWndをとるとか
色々ある

896 :デフォルトの名無しさん:03/07/27 11:24
>>893
開発環境はVCもしくはVBです。
APIで変更できた記憶があったのでこちらで質問しました。

897 :デフォルトの名無しさん:03/07/27 11:26
>>895
ハンドルは取得できています。
その後のウィンドウのモードを書き換えるにはどうしたらよいのでしょうか?

898 :デフォルトの名無しさん:03/07/27 11:52
>>897
SetWindowLongだな

>いくつかの種類のデータはキャッシュされていて、
>SetWindowLong 関数で変更されたそのデータは SetWindowPos 関数が
>呼び出されるまで反映されません。
>特に、データの変更によってウィンドウフレームのスタイルが変更される場合には、
>SWP_FRAMECHANGED フラグを指定して SetWindowPos 関数を呼び出して、
>キャッシュを更新しなければなりません。
>転載元 ttp://yokohama.cool.ne.jp/chokuto/urawaza/api/SetWindowLong.html

これに注意しる

899 :デフォルトの名無しさん:03/07/27 12:46
>>898
レスありがとうございます。
さっそく、教えていただいたサイトを参考に組んでみました。
VBで書いたのですが

 Dim h As Long
 h = FindWindow("foo", vbNullString)
 Call SetWindowLong(h, GWL_STYLE, WS_THICKFRAME)
 Call SetWindowPos(h, 0, 0, 0, 0, 0, SWP_FRAMECHANGED)

以上のようなコードを実行するとウィンドウそのものが消えてしまいました。
タスクバーにはアイコンが残っていますがコンテキストメニューは出ません。
ただ実行はされているようです。
間違っている点があったら指摘していただけますでしょうか。

900 :デフォルトの名無しさん:03/07/27 12:59
>>899
> 間違っている点があったら指摘していただけますでしょうか。
嫌だね。

901 :デフォルトの名無しさん:03/07/27 13:00
>>900
了解しました。
いろいろ教えてくださってありがとうございました。


902 :デフォルトの名無しさん:03/07/27 14:10
>>899
GetしてからちょこっといじってSetせよ

903 :デフォルトの名無しさん:03/07/27 14:46
>>899
元のスタイルを考慮しなければそうなるだろ

904 :デフォルトの名無しさん:03/07/27 15:09
SetWindowPosのフラグも何個か足りないような

905 :デフォルトの名無しさん:03/07/27 19:18
getしたウィンドウスタイルに新たに追加する場合には or 演算子を使いますが
あるスタイルだけ削除したり、あるスタイルが適用されているかどうかを
判断するにはどうしたらよいのでしょうか?

906 :デフォルトの名無しさん:03/07/27 19:35
判定:if(style&&WS_FOO)
削除:style&&~WS_FOO

907 :デフォルトの名無しさん:03/07/27 19:57
何故&二回・・・

908 :デフォルトの名無しさん:03/07/27 19:58
&でescapeする言語なの加奈?

909 :デフォルトの名無しさん:03/07/27 20:06
ここからは>>906の使っている言語を当てるスレになりました

910 :デフォルトの名無しさん:03/07/27 20:07
>>906
判定 (style and WS_FOO) > 0
削除 style = style not WS_FOO
ということでしょうか?

911 :デフォルトの名無しさん:03/07/27 20:47
>style = style not WS_FOO
なんすかそれ。notて二項演算子?
style = style and not WS_FOO

912 :デフォルトの名無しさん:03/07/27 21:13
判定後なら xor でもよし

913 :デフォルトの名無しさん:03/07/28 00:30
>>911
C++のキーワード一覧みてみ。

914 :デフォルトの名無しさん:03/07/28 20:49
EXEファイルの最後に別データを埋め込んで取り出す、という
自己解凍書庫のようなことをやりたいのですが
WindowsのEXEファイルのファイルサイズ(EXE部分)を取得するにはどうすれば良いでしょうか?
取得しないとデータの取り出しが出来ないので(汗

DOSであれば
02〜03H 最後のページに入っているバイト数
04〜05H 512バイト単位のファイルの大きさ(ヘッダも含む)。
らしいのですが、Windows上で動く32bitEXEの場合
常に同じ値になってしまいファイルサイズが取得出来ません。

ちなみにWin32コンソールアプリケーションで作成しています。

915 :名無し@沢村:03/07/28 21:14
おまいらよ、WinAPIでTVウェアをつくってみないか?

http://pc2.2ch.net/test/read.cgi/tech/1059262203/l50


916 :デフォルトの名無しさん:03/07/28 21:26
>>914
リソースに突っ込んじまえば?

917 :デフォルトの名無しさん:03/07/28 21:35
>>914
検索したらPEファイルのフォーマットが見つかったけど・・・
けっこう面倒っぽいです。
http://msdn.microsoft.com/msdnmag/issues/02/02/PE/http://msdn.microsoft.com/msdnmag/issues/02/02/PE/


918 :917:03/07/28 21:37
うがーURL貼り付け失敗
http://msdn.microsoft.com/msdnmag/issues/02/02/PE/


919 :デフォルトの名無しさん:03/07/28 21:53
そういうプログラムはウィルスとみなされる昨今。

920 :デフォルトの名無しさん:03/07/28 21:59
HSPはウィルスか?
詳しく知らんがアレも似たようなことしてそうだけど

921 :デフォルトの名無しさん:03/07/28 22:00
>>914
データ部にヘッダか何かつけて、それで判別ってのはダメ?


922 :デフォルトの名無しさん:03/07/28 23:29
現在特殊な用紙に印刷をしています(プリンタの設定で新しく定義した用紙)
で、その新しい名称と番号は別々にAPIで取得できるんだけど、その両者を結びつけてコンボなりリストなりから選択できるようにしたいんですが・・・
現在は定義した用紙の登録前後で定義の番号を取得し、その前後で違うのがあれば、それをINIファイルに書き込むようにしています。

登録前 登録後
12   12
22   22
     33
で、調べたあとで33をINIファイに書き込んで使用

さて・・・出来るんだろうか・・・
VB6 & Win2000です




923 :デフォルトの名無しさん:03/07/28 23:34
何が聞きたいのかわからん。

924 :922:03/07/28 23:37
要はAPIで現在登録してある用紙を取得設定できませんか?って事です
説明下手でごめんなさい(__)

925 :無料動画直リン:03/07/28 23:38
http://homepage.mac.com/miku24/

926 :デフォルトの名無しさん:03/07/28 23:53
普通にDeviceCapabilitiesで列挙できるけど。

927 :名無し:03/07/29 00:31
>>920
HSPはデータにヘッダみたいのがついてたからそれで判別してたっぽい。
逆汗して確かめたわけじゃないから断定はできないけど

928 :デフォルトの名無しさん:03/07/29 01:18
>>914
http://www.geocities.jp/buin2gou2/delphi/DelphiFAQ.htm
そんなに面倒じゃないよ。


929 :デフォルトの名無しさん:03/07/29 01:43
C++でnew と delete を繰り返していると、タスクマネージャーで見ると
2Gバイトまで500Mバイト以上空きがあるのに、1Mバイトの塊も取得
できなくなった。
ガーベージコレクタみたいなものってあるの?
ちなみに、Windows2000

930 :デフォルトの名無しさん:03/07/29 01:52
>new と delete を繰り返していると、
繰り返してないからメモリが足りなくなるんじゃないの。
GCよりもリークのチェックツールでdeleteし忘れを検出してみたら。

931 :デフォルトの名無しさん:03/07/29 02:36
deleteしたからといってOSにメモリを返すとは限らないわけだが。
メモリ空間が断片化しまくって連続した1MBの領域が存在しなくなったんだろ。

932 :デフォルトの名無しさん:03/07/29 02:43
>>928
914さんとは別人ですが、そのサンプルって問題ないんですか?
オプションヘッダのサイズを固定値にしてるし、最後のセクションヘッダが
ファイルの末尾のデータを指していると仮定しているし…。

文句つけているわけじゃなくて、ちょうどEXEを編集・作成するようなライブラリでも
作ろーかなーとか何となく思ってPEフォーマット勉強中なのですが、
そういう一般的な約束があるんなら気をつけなきゃな、と思ったので。

あと、>>914は、単純にファイルの末尾に「データ」+「データ長情報」を加えて、
ファイル末尾のデータ長情報を読んでからデータ位置を逆算すれば簡単だと思うのですが…。

933 :デフォルトの名無しさん:03/07/29 10:53
>>914
何故リソースを使いませんか?

934 :デフォルトの名無しさん:03/07/29 12:04
>>933
それって簡単にできるもんなの?
漏れには想像もつかないんだが。

コンパイル時に全て作成するならリソースでもいいけど、
自己解凍みたいなものは、実行モジュールが予めあって、
それに圧縮したファイルを結合するわけから、
リソースとして格納するとなると、それこそフォーマット解析して
いじくって組み込む……ってことになるような気がするんだけど。

935 :デフォルトの名無しさん:03/07/29 13:12
UpdateResource

936 :デフォルトの名無しさん:03/07/29 13:17
>>934
解凍するモジュールはコンパイル時に作成されるんだから、結合前に圧縮対象の
モジュールを圧縮して.rc2にでもinclude書いておけばいいんじゃねえの。
解凍モジュール側のプロジェクトに圧縮対象のモジュールへの依存関係張って
カスタムビルドで圧縮、.rc2でinclude。

937 :デフォルトの名無しさん:03/07/29 13:39
>>936
それは違うのではないか

938 :914:03/07/29 14:08
皆さんレスありがとうございました^^

別ファイルを追加する際に実行部分の最後にヘッダをつけて
それ以降をデータ部として、実行時に自身のバイナリからヘッダ部分を
スキャンした後でデータを取り出すということに成功しました。

今はもう少し改良を加えて複数のファイルの追加、及びDLL等のパッキング
が出来ないかどうかを考え中です。


939 : :03/07/29 19:35
一番最後に「データを負荷する前のファイルサイズ」を付けとけば、複数追加しても
後ろから芋づる式に取り出せるよ。

940 :デフォルトの名無しさん:03/07/29 19:37
ユーザ領域内にファイルをインストールする必要のあるツールを開発していて、パスの取得(w2kだとc:\Documents and Settings\hogehoge.network以下みたいな感じ)のためにPlatform SDKのGetUserProfileDirectory()を使おうと思ってます。
が、MSDNのサイトを見てもぐぐっても必要とされるuserenv.lib/hのことについては情報がなく、自分のマシン(w2k+VisualStudio6.0SP3)にも入っていないため困ってます。
米MSDNにはSDKのCD買えやとか書いてあるんですが、それ以外にどこかで落とせないんでしょうか?
今週中には修正しないといけないため、時間がなくてとても取り寄せてる時間もないっす(´Д`)

941 :デフォルトの名無しさん:03/07/29 20:50
>>940
MSDNサブスクライバダウンロードはつかえないのけ?
それ以前に、SDKって普通にダウンロードできなかったっけ?

942 :デフォルトの名無しさん:03/07/29 21:01
>>941
ばかでかいけど普通に落とせる

943 :デフォルトの名無しさん:03/07/29 21:04
もはや馬鹿でかいとは感じなくなったな。

944 :デフォルトの名無しさん:03/07/29 23:17
>>935
NT系のみ
まあMeのサポートが切れたらそれもありかな

945 :デフォルトの名無しさん:03/07/30 07:03
WinAPIのみでODBCアクセスしたいのですが参考になるサイトありませんでしょうか?


946 :デフォルトの名無しさん:03/07/30 08:29
>>940
引数と関数名が分かってるなら、
ヘッダファイルは自作、
ライブラリはDLLを動的に呼び出せばいいと言ってみるてすつ

947 :デフォルトの名無しさん:03/07/30 08:40
userenv.h
BOOL WINAPI GetUserProfileDirectoryA(HANDLE hToken, LPSTR lpProfileDir,LPDWORD lpcchSize);
BOOL WINAPI GetUserProfileDirectoryW(HANDLE hToken, LPWSTR lpProfileDir,LPDWORD lpcchSize);

userenv.def
LIBRARY USERENV.dll
EXPORTS
_GetUserProfileDirectoryA@12
_GetUserProfileDirectoryW@12

みたいにdefファイルからlib生成すればいいんでないか?

948 :デフォルトの名無しさん:03/07/30 09:57
ピクチャコントロールにラインを描画して、そのラインをマウスクリック
で捕まえて,マウスドラッグで移動させたいんですが、
ラインの描画にはどの関数を使えばよいのでしょうか。
ただラインを描くだけだとアニメーションさせにくいと思うのですが。。。

949 :デフォルトの名無しさん:03/07/30 10:06
>>948
MoveTo
LineTo

VB厨か?


950 :デフォルトの名無しさん:03/07/30 10:07
>>948
そりゃ普通にMoveTo()、LineTo()じゃないのか?

951 :デフォルトの名無しさん:03/07/30 10:07
イヤンかぶった。

952 :948:03/07/30 11:12
>>949,950
ありがとうございます。
やってみます。

953 :デフォルトの名無しさん:03/07/30 11:13
>>950
次スレよろ

954 :940:03/07/30 13:58
どうにかSDKのダウソサイトハケーンしますた。
最新版で500Mらしい・・・(´Д`;)
あと、DLLを呼び出すライブラリの作り方は非常に参考になりました。
ありがとうございました。

955 :デフォルトの名無しさん:03/07/30 16:07
>>953
ゴメン。できない。>953可能ならヨロ。

956 :953:03/07/30 16:16
建てますた

Win32API質問箱 Build13
http://pc2.2ch.net/test/read.cgi/tech/1059549320/


957 :デフォルトの名無しさん:03/07/30 18:55
こんなに見えちゃってヤバクない???
抜いても抜いても また勃起しまくり・・・
 ↓ ↓ ↓

☆★☆★ 海外サイトだから安心無修正 ★☆★☆
http://upbbs.s2.x-beat.com/linkvp/linkvp.html
http://upbbs.s2.x-beat.com/linkvp/linkvp.html
☆★☆★ 本気汁丸出しのお○○こが! ★☆★☆


958 :デフォルトの名無しさん:03/07/30 21:28
>>WinAPIのみでODBCアクセスしたいのですが参考になるサイトありませんでしょうか?
http://homepage1.nifty.com/kojama/works/rdbms/conn.html
ここは、ODBC3
ばば ODBC 検索 は2のコード

959 :デフォルトの名無しさん:03/07/31 10:22
>>958
さんきゅーさー
面倒そうなのでMFCのほうを使うことにしました。
参考になりました。

960 :デフォルトの名無しさん:03/08/01 00:26
非MFCのGUIアプリから、MFC DLLを呼び出す方法ってない?
おしえてください。

961 :デフォルトの名無しさん:03/08/01 00:57
MFCなCOMのEXEでも経由すれば?

962 :デフォルトの名無しさん:03/08/01 01:15
MFC.DLL の何を呼び出すんだ?

963 :デフォルトの名無しさん:03/08/01 08:54
普通にできるよ。

964 :デフォルトの名無しさん:03/08/01 23:34
標準DLLにして、おまじないを唱えたら大丈夫でした。
ども。

965 :山崎 渉:03/08/02 02:03
(^^)

966 :デフォルトの名無しさん:03/08/03 05:18
ドロップダウンリストで初期状態ではリストの中にない文字列を表示して
おきたいんですけど、それってサブクラス化しないで出来ます?
ユーザからは編集不可のコンボボックスって感じです。

967 :デフォルトの名無しさん:03/08/03 12:20
出来る。

968 :デフォルトの名無しさん:03/08/03 19:09
どうやればできます?
ドロップダウンリストにしちゃうと、SetWindowTextとかやっても
何も表示してくれないんですけど。

969 :デフォルトの名無しさん:03/08/03 20:31
ドロップダウンリストじゃ無理でしょ。
リスト中にないと。

970 :532:03/08/04 11:30
できました。ありがとうございました。

971 :デフォルトの名無しさん:03/08/05 20:23
オーナードローすればいーんじゃないの?無理かな?

972 :デフォルトの名無しさん:03/08/06 22:26
972

973 :デフォルトの名無しさん:03/08/07 10:31
埋め

974 :デフォルトの名無しさん:03/08/07 10:40


975 :デフォルトの名無しさん:03/08/07 11:53


976 :みんなで誘い合って東京ドームへ行こう:03/08/07 11:57
おじゃまします。宣伝スマソ。

みんなで日ハム−オリックス戦を満員にしよう
8月11日(月)東京ドーム18:00〜
http://off.2ch.net/test/read.cgi/offmatrix/1059573009/
まとめサイト
http://takemetotheballgame.hp.infoseek.co.jp/

おじゃましました。

977 :デフォルトの名無しさん:03/08/07 13:10
生め

978 :_:03/08/07 13:14
http://homepage.mac.com/hiroyuki45/hankaku09.html

979 :デフォルトの名無しさん:03/08/07 13:19
宇目

980 :デフォルトの名無しさん:03/08/07 13:57
産め

981 :デフォルトの名無しさん:03/08/07 14:05
梅図

982 :デフォルトの名無しさん:03/08/07 14:56
膿め

983 :デフォルトの名無しさん:03/08/07 14:58
藻前ら、スレの埋め立てでageるなよ

984 :age:03/08/07 15:07
age

985 :デフォルトの名無しさん:03/08/07 15:32
次スレ誘導うめうめ。

Win32API質問箱 Build13
http://pc2.2ch.net/test/read.cgi/tech/1059549320/

986 :デフォルトの名無しさん:03/08/07 15:56
んじゃ 1000までWin32APIで「しりとり」でもしようかのう。

CreateWindowEx →

987 :デフォルトの名無しさん:03/08/07 16:01
XcvOpenPort() ->

988 :デフォルトの名無しさん:03/08/07 16:02
TextOut ->

989 :デフォルトの名無しさん:03/08/07 16:03
tapiGetLocationInfo() ->

990 :デフォルトの名無しさん:03/08/07 16:05
XactAttributeEnum

991 :デフォルトの名無しさん:03/08/07 16:06
>>990
遅い。w

992 :デフォルトの名無しさん:03/08/07 16:07
OEMDeviceCapabilities() ->

993 :990:03/08/07 16:07
すまん。
OpenDesktop→

994 :デフォルトの名無しさん:03/08/07 16:07
OpenPeinter

995 :デフォルトの名無しさん:03/08/07 16:07
盛大にケコーン

996 :デフォルトの名無しさん:03/08/07 16:09
>>993
またしても遅い。w

997 :デフォルトの名無しさん:03/08/07 16:09
>>992から
ScrollConsoleScreenBuffer

998 :デフォルトの名無しさん:03/08/07 16:12
RpcAsyncInitializeHandle() ->

999 :デフォルトの名無しさん:03/08/07 16:15
EnumWindows() ->

1000 :デフォルトの名無しさん:03/08/07 16:15
SendMessageCallback() ->

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

216 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)