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

Win32API 質問箱 Build12

レス数が1000を超えています。これ以上書き込みはできません。
0001SDKNGNG
.NET Framework!? 知らんな!!
そんなヤル気のあるネィティブプログラマ集まれ!
スレ立てるまでもない、Win32APIについての質問はこちらへどうぞ。
やさしい お兄ちゃん 達が答えてくれるかも。
でも、質問する前に検索ぐらい汁!!
過去スレ・参考は>>2 ぐらい...
0002SDKNGNG
● 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
0003デフォルトの名無しさんNGNG
乙
0004デフォルトの名無しさんNGNG
甲
0005BフレッツァーNGNG
MSDN Online巡回して根こそぎローカルにダウンロードする方法教えて。
0006デフォルトの名無しさんNGNG
貧乏人は大変だな(w
0007デフォルトの名無しさんNGNG
うpロダ巡回して根こそぎローカルにダウンロードする方法教えて。
0008デフォルトの名無しさんNGNG
>>7
Win32 APIを使えば出来ます。
0009デフォルトの名無しさんNGNG
がばっりまーーーーす
0010デフォルトの名無しさんNGNG
もまいら暑いですが元気ですか!!
おせてくさい。m(__)m
VBとかDelphiのコンボボックスをSpy++で見ると
独自のウィンドウクラスを使用していますが、
コンボのドロップダウンの部分とかはOS実装だと
思うので"ComboBox"を使用しないと実現できないと
僕は思うのですが(また独自実装だとOSがEditとか
ComboBoxとかのコモンクラスを提供する意味がない)
これってどうやっているのでしょう??
0011デフォルトの名無しさんNGNG
>>10
実は俺も知りたい。
コンボボックスのドロップダウンや、ポップアップメニューは、
ポップアップウィンドウなのに、表示されてもオーナーウィンドウのキャプションバーが青いままなんだよなぁ。
自前のウィンドウクラスでやろうとしてもなかなかうまく行かない。
0012デフォルトの名無しさんNGNG
クリックしてもアクティブにならないようにするだけじゃないの?
0013デフォルトの名無しさんNGNG
他のウィンドウの遠隔操作をするのに
クラス名を指定してマウスの左クリックを送信したいのですが
WIN32APIはに関しては初心者のためあまりわかりません。
今までは、SetForegroundWindowを送った後にTABキーとエンターキーだけで左クリックの
代わりをしていたのですがそれでは動作が不安定がちになり困っています。
だれか教えていただけないでしょうか?
使用している言語はHSPです
0014デフォルトの名無しさんNGNG
>>13
WIN32APIでボタン押すなら
PostMessage(hwnd,WM_LBUTTONDOWN,0,0)
これでだめならHSPスレで
0015デフォルトの名無しさんNGNG
>10
独自のウィンドウクラスって言ったってクラス名だけだろ。
ドロップダウン部のクラス名は変わってなさそうだからサブクラスされていると思われ。
0016デフォルトの名無しさんNGNG
mciSendString 使って、あるスレッドでオープンした曲を
他のスレッドで操作することはできないのかな?
ちょっとやってみたかんじ、うまくいかないんだけど。
0017デフォルトの名無しさんNGNG
>>14
ありがとうございます。
今から試してみたいと思います
0018デフォルトの名無しさんNGNG
以下のコードを音声を再生しながら、
ループさせると音声にノイズが入ります。
原因がまったくわからず、困ってます。
みなさんの、お力を貸してください。

OS:Windows2000pro
SOUND:Creative Sound Blaster Live!
GRAPHIC:Matrox Parhelia 128MB
0019デフォルトの名無しさんNGNG
つづき
-- 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;
0020デフォルトの名無しさんNGNG
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;
0021デフォルトの名無しさんNGNG
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は、間違いました。無視してください。
0022デフォルトの名無しさんNGNG
>>18-21
そのコードがなければ正しく再生されるんだな?
って事はそのコードの負荷が多すぎるってことじゃね?
ループ内の
bits = malloc(width*height*4);
memdc = CreateCompatibleDC(dc);
bitmap = CreateCompatibleBitmap(memdc,width,height);
は外に持ってった方がいいんじゃ無いか?
0023デフォルトの名無しさんNGNG
省電モードでディスプレイの電源がオフになっているかをしらべるには
どのAPIをつかえば良いのですか?
0024デフォルトの名無しさんNGNG
>>22
ありがとうございます。
そうです。このコード以外は問題はありません。
普通に何もないWinMainに、このコードを書いても
ノイズがのるので。ノイズは主に
>BitBlt(memdc,0,0,width,height,dc,0,0,SRCCOPY);
と
>GetDIBits(dc,bitmap,0,height,bits,&bi,DIB_RGB_COLORS);
でノイズが発生しているっぽいです。
(ここをコメントアウトするとノイズは無くなる)
ノイズは「ブッ」って感じの音でループすると「ブッツブッツ・・・」
という感じになります。

他の環境で、この問題が起こらなければ「自分の環境の問題」と
して、この問題は無かった事にしようと思うのですが・・・。
0025デフォルトの名無しさんNGNG
「自分の環境の問題」でも、もしかしたら「他でも起こる問題」かもしれないので、やっぱり対処しておいた方がいい。
問題が起きたときに、「お前のところ出てるのに(ry」とかいわれると困る。
0026デフォルトの名無しさんNGNG
BitBltで発生してるのに対処のしようがあるの?
0027デフォルトの名無しさんNGNG
質問です。フルパス名と相対パス名で処理を分岐させたいのですが
以下のような判別方法で良いでしょうか?

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

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

もしかして簡単に調べるAPIがあるのでしょうか…?
よろしくお願いします。
0028デフォルトの名無しさんNGNG
2文字目が「:」
002927NGNG
>>28
ご教示ありがとうございます。
なるほど…、ドライブ名は1文字固定でした。

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

これでいいのかな…。
0030デフォルトの名無しさんNGNG
ネトワークのパスは?
\\client\SharedDoc
0031デフォルトの名無しさんNGNG
>>27
PathIsRelative()

パス関係は自前でやろうとすると
ttp://www.ipa.go.jp/security/awareness/vendor/programming/b08_01_main.html
とか見て鬱になる。UNCパスもあるし。
003227NGNG
>>30
あ…、ネットワークドライブのことを考えていませんでした。
なかなか一筋縄ではいきませんね。

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

皆様にご教示いただいて、助かりました。
ありがとうございます。
0033デフォルトの名無しさんNGNG
HSPを使っているのですがGetForegroundWindowで
ハンドルを取得してそのハンドルから子ハンドルを
取得取得しようとしているのですがうまくいきません
一応ネットなどで探してみたのですがHSPでの子ハンドル
の取得方法が書いてあるページが無くて困っています
だれかこんな私に力を貸していただけないでしょうか?

↓ソースです
00341/2NGNG
#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
00352/2NGNG
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
0036デフォルトの名無しさんNGNG
このスレでHSP絡みってあんまり見ないな…
0037デフォルトの名無しさんNGNG
まぁ、HSPでAPIをいじってる人ってごく一部だと思うから…
0038デフォルトの名無しさんNGNG
>>24
waveOut系の処理がウィンドウ任せなら優先順位高めのスレッドに擦り付けてみれ。
0039デフォルトの名無しさんNGNG
HSP読めん
0040デフォルトの名無しさんNGNG
>>33 その取得したフォアグラウンドウィンドウが子ウィンドウを持っていない罠とか
004133NGNG
>>40
そうでもないんですよ・・。
上のソースをexeにしてみたので誰か確認おねがいします。
http://proxy.ymdb.yahoofs.jp/users/76095b11/bc/sample.exe.exe?bcY5gR_ASpwWU7dH

何度もすみません。
0042お〜いNGNG
ダウンロードするとき時計みたいのがでるんですけど・・・
なんででしょう?
004333NGNG
>>42
私のことでしょうか?
もしそうでしたら直接リンクをクリックするとYahoo側で拒否されるので
アドレスをブラウザにコピペしてダウンロードしてみてください。
0044デフォルトの名無しさんNGNG
>>33

#define GW_CHILD 5

が必要。
0045デフォルトの名無しさんNGNG
sample.exeってファイル名を見るとウイルスを連想してしまうな(w
0046デフォルトの名無しさんNGNG
>>33
ところで MSDNには
|すべての子ウィンドウを取得する場合、EnumChildWindows 関数を使った方が
|GetWindow 関数をループ処理で呼び出すよりも信頼性の高い結果が得られます。
|GetWindow 関数を呼び出してウィンドウを列挙すると、無限ループに陥ったり、
|すでに破棄されているウィンドウのハンドルを参照する危険性がでてきます。
ってあるけど、いいのかな?
0047デフォルトの名無しさんNGNG
HSPでコールバック関数って使えるの?
0048デフォルトの名無しさんNGNG
配列変数にマシンコードを書いて、配列のアドレスを
関数ポインタとして渡すという暴挙を使います。
0049デフォルトの名無しさんNGNG
ちょい質問。
1.マルチCPUにおいて、CPU負荷を分散させるには、
 A.別スレッドにする
 B.別プロセスにする
2.デュアルCPUにおいて、軽い処理二つと重い処理二つの計4つをほぼ同時に開始した時、
 片方のCPUに重い処理二つが集中するのを防ぐ方法は?

APIとはちと違う質問だと思うが、知ってる奴いたら教えてくれ。
0050デフォルトの名無しさんNGNG
CPUの割り当てを制御するAPIがあったような
えーとSetThreadAffinityMask
0051デフォルトの名無しさんNGNG
>>49
>1
別プロセスなら確実かと。スレッドの場合は
共有メモリの関係でキャッシュに気をつけないと
CPUに無駄に負荷がかかりそう。
>2
処理をある程度小さく分割してスレッド数を監視しながら
並列に処理するように工夫するくらいしか思いつかないですが・・。

その手の方面ではインテルが並列処理のためのCコンパイラを
開発していたような。
005214NGNG
>>33
46が言うようにGetWindowはあんまり当てにならないから
EnumChildWindowsかFindWindowExで。
あとAPI使うようになったらCやC++に変えたほうがいいよ。

お節介スマソ
0053デフォルトの名無しさんNGNG
駄質問スマソ、

char *buffer;

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

このbufferの10文字目から20文字目までを別の変数に入れたい場合、
どのようにすればよいのでしょうか?
0054デフォルトの名無しさんNGNG
>>53
memcpyでいいのでは...
0055デフォルトの名無しさんNGNG
>>53
まずCの勉強をしろ。
0056デフォルトの名無しさんNGNG
スレてきにはCopyMemoryだな
0057デフォルトの名無しさんNGNG
ありがとう!逝っちゃってきます!
0058デフォルトの名無しさんNGNG
lstrcpyn

ここいらのAPIをいまだに使ってるヤシっているのかな?
0059デフォルトの名無しさんNGNG
>>58
何が言いたいのかわからん
0060デフォルトの名無しさんNGNG
Cのライブラリじゃなく、Win APIの文字列操作関数を使っている
ヤシはいるか、という話なんだが、わかりにくかったか?
0061デフォルトの名無しさんNGNG
ちっちゃいプログラムを作るために使うかもしれん。
0062デフォルトの名無しさんNGNG
「いまだに」の意味が。別に流行で使い分けるものでもなかろうに。
0063デフォルトの名無しさんNGNG
フックdll使うときは可能な限りMFCもRTも使わないようにしてるな。
006433NGNG
>>44 >>46
アドバイスありがとうございました。
GW_CHILD 5を定義したらうまく取得できました。

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

みなさん本当にありがとうございました。
0065デフォルトの名無しさんNGNG
>>64
将来仕事に使うならともかく、趣味の範囲ならHSPで十分だと思うが…
まぁ、人それぞれだし(HSPが理解不能で逃げてきただめ人間な折れ)
0066rNGNG
タイマの使い方がわかんねぇ!誰か教えてくれ!
使ってるのは 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!!!
0067デフォルトの名無しさんNGNG
>>66
タイマーの精度によるんじゃない?
0068デフォルトの名無しさんNGNG
TLS を自前で実装しようとしとるんだども、カレントスレッドの識別子を高速に取得する方法がわかんねべ。
技術的にはスタックさの一番奥にでも入れておけばいんはずだがら
きっと簡単に取れるはずだべ?
いい方法はないっぺか?
0069デフォルトの名無しさんNGNG
精度とかいうレベルじゃないような・・
007068NGNG
# Win32 的には,fs レジスタがスレッド固有領域のセレクタです。
あぎゃ、これか?これでええのんか?
で、これをお行儀よく取得するにはどうしたらいいんじゃ?
0071デフォルトの名無しさんNGNG
>>66
5*60*10000%65536 = 37856
というわけで、きっと16ビットに切り捨てられてるよ。
0072デフォルトの名無しさんNGNG
> 66

5 * 60 * 1000
= 300000
= 0x493E0

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

UINT が 16 bits 扱い?
0073rNGNG
71-72
そうだったのかあああ!
ありがとう!
二人の永遠の幸せをお祈りします♪
0074デフォルトの名無しさんNGNG
つかなんで16bitなんだろ・・・すげー気になる
0075デフォルトの名無しさんNGNG
よー分からんがtimerSetEventは使うのやめといた方がいい。
0076デフォルトの名無しさんNGNG
じつはWin3.1愛用者だたりとかw
0077rNGNG
>>75
しかし、SetTimerはウィンドウハンドルが必要だし、
WaitForSingleObjectとかで待つのは、
本質的に「イベントの擦違い」の危険を孕んでしまうし、
Sleepだと途中でとめるの難しいし....

つーか、

なんでたかだかタイマごときでこんなに苦労するんだ!
0078デフォルトの名無しさんNGNG
>>77
> しかし、SetTimerはウィンドウハンドルが必要だし、

別にウィンドウハンドルは必須じゃないよ
0079r/77NGNG
>>78
まじですか?
なんか漏れ、そのへん誤解してるな。
もいっかいドキュメントよんでみます。サンキュ
0080デフォルトの名無しさんNGNG
>>74
Win9xのマルチメディアサブシステムは16ビット側に
実装があるからだと思われ
>>78
ウィンドウハンドルはいらないけど
DispatchMessageは必要という罠が
0081デフォルトの名無しさんNGNG
>>80
>>DispatchMessageは必要という罠が

SetTimer()の4つ目の引数を指定するだけじゃだめなの?
0082デフォルトの名無しさんNGNG
マルチメディアタイマを複数起動させた場合、
タイマのスケジューリングはどうなってんのか
教えてください。

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

OS=Win2K
0083デフォルトの名無しさんNGNG
WinMain関数の場合、
return msg.wParam;
の代わりに
return TRUE;
でもいいんですか?
0084_NGNG
http://homepage.mac.com/hiroyuki44/
0085デフォルトの名無しさんNGNG
>>81
SetTimerの場合たとえコールバック関数を使っても
メッセージポンプを回してないと呼ばれない。詳しくはこちら
http://www.microsoft.com/msj/0397/hood/hood0397.aspx
(timeSetEventの場合はコールバックが別スレッドなので呼ばれる)
0086デフォルトの名無しさんNGNG
>>83
たぶんだめぽ(´・ω・`)
手持ちの本っていうか「プログラミングWindows」によると
PostQuitMessage(0)でWM_QUITを発生させてなんやらかんやらで
return msg.wParamは終了時に0を返してアプリを終了させる
でも、TRUEは0以外って規定してあるから…
そんな感じ
0087デフォルトの名無しさんNGNG
>>86
ありがとう
その本かって見ます
0088デフォルトの名無しさんNGNG
>>86
> return msg.wParamは終了時に0を返してアプリを終了させる

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

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

だから、正常終了の意味でTRUEはダメだが。
0089デフォルトの名無しさんNGNG
>>88
たしかに渡した数がreturnされるけど0以外みたことないっすよ

>>87
この本たかいよ(つд`)
ちなみに、書いてたのはP96だから参考までに
0090デフォルトの名無しさんNGNG
>>89
確かに高いよなー
漏れ上官しか持ってないし
009187NGNG
やっぱり高いのか
書店で見かけてスルー下記憶があるからなー(つд`)
0092デフォルトの名無しさんNGNG
昔は終了コードでバッチ内分岐とかやったけど、今はどうでもいいのかもね。
009382NGNG
TRACE して分かりました。
一晩寝て頭がリフレッシュされました。

失礼しました。
009413NGNG
>>13でWIN32APIで左クリックの送信方法を質問したものですが
ひとつ問題が発生してしまいました。
クリックイベントは送信されているのですが
送信した後に別なウィンドウを開いてしまうと(ファイルを開くなど)
スクリプトが途中で止まってしまい、なかなか次の作業をしてくれません
何が悪いのでしょうか?(ちゃんとWM_LBUTTONDOWNも送信しています。)
0095デフォルトの名無しさんNGNG
ネットワークの検索ダイアログを表示したいのですが
次のコードで表示されません。

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
です。
よろしくおねがいします。
0096DQNNGNG
switch(msg){
case WM_TIMER:
if(上矢印が押されている)処理1;
break;

(省略)
}

WM_TIMERメッセージが呼び出された時に特定のキーが押されているか
どうかを判定するにはどうすればいいか教えて下さい
0097デフォルトの名無しさんNGNG
>>96
たぶん、

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

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

という感じでは?
最近winプログラムやってないのでうろ覚えだが
最近といっても2年ぐらいだが
009813NGNG
>>94
もう少し簡単に説明しますと

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

という現象がおきてしまいます。これはHSPが悪いんでしょうか?
それとも命令の仕方が何か足りないのでしょうか?
0099デフォルトの名無しさんNGNG
>>96
GetKeyState関数の引数に↑の仮想キーコード"VK_UP"を
セットして戻り値を調べる。MSDNでこのあたりのAPIを調べれば
他にもいろいろと調べる方法はあるはず。









ひょっとしてネタなのか?
0100デフォルトの名無しさん NGNG
100get's
0101デフォルトの名無しさんNGNG
>>99
なんでもネタというのはだめだよ


ネタか?
0102DQNNGNG
>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;
(略)
0103DQNNGNG
>97
それだといちど右矢印キーを押したら
WM_TIMERメッセージが来るたびに処理1をする形になると思うのですが
私がやりたいのは、WM_TIMERメッセージが来た時に
キーが押されていれば処理1をしてキーが押されていなければ
処理1をしないようにしたいのです。
分かりにくくて申し訳ありません。
0104デフォルトの名無しさんNGNG
if (r < 0)
だろ
0105デフォルトの名無しさんNGNG
そんなときはDirectXだ!!
0106デフォルトの名無しさんNGNG
>>102
r!=0って・・・。

戻り値くらいちゃんと調べろよ。
0107デフォルトの名無しさんNGNG
>>102
GetKeyState()はメッセージキューにKeyDownがたまってしまうからね(多分)

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

で。
0108デフォルトの名無しさんNGNG
あ VK_SHIFT じゃなかった。
0109DQNNGNG
>104,>106
上手くいきました、ありがとうございます

教科書をみたら(r<0)の形で書いてあったのですが
「最上位ビットが1なら指定されたキーが押されている、0なら押されていない」
という説明が教科書に書いてあったので、
0じゃなければ押されている状態だと思って>102のように書いたのです。
なんかすごい勘違いしてたみたいです。
0110デフォルトの名無しさんNGNG
しかも
× GetKeyState()はメッセージキューにKeyDownがたまってしまう
○ GetKeyState()はメッセージキューにたまったKeyDownを見る

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

LPMALLOC pMalloc = NULL;

SHGetMalloc(&pMalloc);
pidlSelected = SHBrowseForFolder(&bi);
pMalloc->Free(pidlRoot);
pMalloc->Release();
0112デフォルトの名無しさんNGNG
■■■かわいそうな「ゲーム君」を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
でいままで送信されたコメントが見えるよ!(けっこう笑える)                 
0113デフォルトの名無しさんNGNG
pMalloc->lpVtbl->Release(pMalloc);
0114111NGNG
>>113
ありがとうございました。
呼び出し方が違うんですね。
http://www.hidecnet.ne.jp/~sinzan/tips/vc/vc_tip05.htm
0115デフォルトの名無しさんNGNG
>>98

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

↑を実行すればわかるかと…
0116デフォルトの名無しさんNGNG
>>113 の隣(?)のページに個人的に凄く不思議なことが書いてあるんだけど

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

なんでリンクできて動作しちゃうの?
ポインタと参照って内部的には同じ扱いなの?
誰か知ってる人いたら教えてくれます?
0117デフォルトの名無しさんNGNG
>>116
誤) >>113
正) >>114
0118デフォルトの名無しさんNGNG
>>116
同じ
011913NGNG
>>115
こんな感じになりました。
ファイルをを開くボタンをWM_LBUTTONDOWNで送信
               ↓ →「処理OK」
     ファイルを開くウィンドウが開く
               ↓ →「処理OK」
     WM_LBUTTONDUPでボタンを戻す
               ↓ →音沙汰なし。
               ↓  (だけど、クリックして開いたウィンドウを閉じると処理が再開する)

こんな感じです。

0120デフォルトの名無しさんNGNG
ちと板違いかもですが、VC.NET買って現在勉強中なんですが
で、自分なりに勉強の仕方考えてるんですが、
WINAPI>STL>MFC
って感じに勉強していったらいいんですかね??
今は「猫でも分かる」でWINAPIで勉強中です
0121デフォルトの名無しさんNGNG
■■■かわいそうな「ゲーム君」を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
でいままで送信されたコメントが見えるよ!(けっこう笑える)  
0122デフォルトの名無しさんNGNG
現在の CPU の位相と角速度を求める API はありますか?
0123デフォルトの名無しさんNGNG
>>122

そのAPIを実行した途端、「現在」ではなくなりますが。
0124デフォルトの名無しさんNGNG
>>123
アアムジョウ
0125デフォルトの名無しさんNGNG
>>119
115の言いたい事分かってる?
あと
WM_LBUTTONUP
はこの場合特に必要ない
0126デフォルトの名無しさんNGNG
>>120
君が何を将来的にしたいかによる
0127デフォルトの名無しさんNGNG
将来というかプログラマになるのなら、
開発環境がなんであっても対処できるようにならなければ駄目
0128デフォルトの名無しさんNGNG
すみません、ジョイパッドってどうやって処理すればいいのでしょうか?
WM_KEYDOWNでやってみたら上手くいなかったです
0129デフォルトの名無しさんNGNG
WM_KEYDOWNはキーボードのメッセージです
ジョイパッドでうまくいかなかったのは当然です
心配する必要はありません
0130デフォルトの名無しさんNGNG
joyGetDevCaps、joyGetPosで出来まふよ
0131デフォルトの名無しさんNGNG
有難うございます
0132デフォルトの名無しさんNGNG
自前でBMP画像を印刷する関数を作りました。
普通にプリンタのDC取得して、SetPixel()で左上からピクセルを
コピーしていくような単純なルーチンです。

Win付属のペイントと比べ、印刷時の時間が格段に遅くイライラしてしまいます。
ビットマップ印刷用のAPIなどが用意されているのでしょうか?
ちなみに環境はWindows2000/VC6/VC7です。
0133デフォルトの名無しさんNGNG
DIBを使ってください
0134デフォルトの名無しさんNGNG
DIB?ツカットコトナイヨー!!
それで早くなるならやってみます!!
0135デフォルトの名無しさんNGNG
>133
もうちょい情報ください。なかなか検索ひっかからんです。API名とか
0136デフォルトの名無しさんNGNG
無茶苦茶引っかかるんだが、どうやって検索しているんだ?
まずは検索方法を晒せ
0137デフォルトの名無しさんNGNG
よくわかんないんだけど、BYTE型とかのRGBの配列をDIBって言うの??
今も内部データはそんな感じなんだけど、そのまんま使えるのかな?
0138デフォルトの名無しさんNGNG
>>136
DIBは引っ掛かるけどどのAPI使えばいいか分からん、ということでは
0139デフォルトの名無しさんNGNG
プリンタでDIBは使っちゃだめー
DDBを使いなさい
0140デフォルトの名無しさんNGNG
パレットの問題ってこと?
0141デフォルトの名無しさんNGNG
>>132
・プリンタのDCを取得
・そのDCを元にDDBを作成(CreateCompatibleBitmap等)
・作成したDDBにピクセルを設定(GetDIBits等)
・プリンタのDCにDDBを描画(Bitblt等)

これでも、不満か?
0142ちよNGNG
よろしく!!
http://www1.free-city.net/home/kotarou/page006.html
0143デフォルトの名無しさんNGNG
>>132

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

というやり方でできる気がする。
プリンタは解像度に注意。
DIBは、BITMAPFILEHEADERからピクセルまで、自分で読み込んで
作るのが確実かな(それほど難しくはない)。拡大モードの設定
をしてもStretchDIBitsできれいに拡大できない場合は、自分で
適当な拡大処理をすべし。
0144デフォルトの名無しさんNGNG
ダットファイルの2行目をCharNextExA を使用して
取り出す方法教えてください。
ただし、2行目半角ずれてます。
データは char bufbuf[1024]に読み込んであります。
32APIアプリ文字列関数なくて困ってます。
■黄色.dat
佐藤
めぐみ
小池
eof
w2000,BCC5.5
0145デフォルトの名無しさんNGNG
>>144
> 32APIアプリ文字列関数なくて困ってます。
lstrlen, lstrcmp とかあるけど。
というか、普通に strchr とか使うのはダメなのか?
0146デフォルトの名無しさんNGNG
予めダットファイル中身は見れませんが
10字100行程度です。
ヒントがつかめたら、CSVやTAB成型列に
朝鮮したいです。
長さと比較でどうやって2列目切り出すのですか?
0147_NGNG
http://homepage.mac.com/hiroyuki44/
0148デフォルトの名無しさんNGNG
もしかして、俺が無知なのかも
BCC5.5でWINアプリ(コンソールでない)
作る場合
#include <string.h> がOK牧場ですか。
0149デフォルトの名無しさんNGNG
可能
0150デフォルトの名無しさんNGNG
>149 感謝感謝
がんばってDAT読み取り、3つのリストBOXの
アイテムに入れてみます。
 テンプレ提供歓迎です。
リストBOX1、中井、香取、稲垣
リストBOX2、佐藤、めぐみ、小池
リストBOX3、嘉門、はにわ、てつとも

0151_NGNG
http://homepage.mac.com/hiroyuki44/
0152_NGNG
http://homepage.mac.com/hiroyuki44/
0153_NGNG
http://homepage.mac.com/hiroyuki44/
0154_NGNG
http://homepage.mac.com/hiroyuki44/
0155_NGNG
http://homepage.mac.com/hiroyuki44/
0156デフォルトの名無しさんNGNG
(3)タモリの話し方が気に食わない、などが浮上している。

w
0157_NGNG
http://homepage.mac.com/hiroyuki44/
0158デフォルトの名無しさんNGNG

プラットフォームSDKのドキュメントが、構造体の部分が全て未訳で英語なのですが
どこかに日本語訳されてるドキュメントがないでしょうか?
教えてください。
0159デフォルトの名無しさんNGNG
>>158
あきらめましょう。
0160デフォルトの名無しさんNGNG

やはりそうなんですか・・・。JAVAなんかではある程度しっかりと訳してくれてるのに〜
本当に、マイクロソフトって殿様商売ですね〜
ドキュメントも手抜きかつ超冗長な階層ディレクトリですし・・・。訳し方も明らかにプログラミングを
した事がない人が、ただ訳してるという文章も一部ありますし・・・
ボーランドやサンを見習ってほしいです。
0161デフォルトの名無しさんNGNG
スレ違いで恐縮ですが…
VNCの使い方についてたてられてるスレがあったら
どなたかおしえていただけないでしょうか?
0162デフォルトの名無しさんNGNG
>>160
つ、釣られないぞ!
0163デフォルトの名無しさんNGNG
>>161
VNC使ってますか?
http://pc2.2ch.net/test/read.cgi/software/1018166669/
0164デフォルトの名無しさんNGNG
釣られてみよう

>>160
あの程度の英語も読めないの?
コンピュータ使うの辞めた方がいいよ。
0165デフォルトの名無しさんNGNG
釣られてみよう

>>164
英語が分からなければコンピュータを使うべきではないのですか?
0166デフォルトの名無しさんNGNG
別に英語が読めなくても問題はない
それよりも翻訳ソフトなり翻訳サイトなりを利用するという、その程度の頭も働かないところが問題
0167デフォルトの名無しさんNGNG
>>165
>英語が分からなければコンピュータを使うべきではないのですか?

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

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

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

0169デフォルトの名無しさんNGNG
( ´,_ゝ`)プッ
0170デフォルトの名無しさんNGNG
英検2級であの程度の文が読めないっての…?
それは変だろ
中卒か高校一、二年程度の英語だぞ
0171160NGNG

今の所は読めるよ。でもこれからもっといろいろ読む様になった時の
誤訳の可能性が怖いんだよ。
0172デフォルトの名無しさんNGNG
言い訳ばっかりだな
翻訳された物が正しい保証など無い
0173デフォルトの名無しさんNGNG
専門用語は数当たるしかないだろうなあ
0174デフォルトの名無しさんNGNG
日本語に訳す必要がない。英語そのまま理解すれば良し。
0175160NGNG

素人(自分)よりは信用できるよ。
じゃあドキュメントには、プログラミング分野での特有の意味や言い回しってのは少ないのか。
0176デフォルトの名無しさんNGNG
用語はあるが、文学小説のような無駄に比喩的な言い回しは無い
用語は訳されていてもカタカナになっているだけ
0177デフォルトの名無しさんNGNG
誤訳されてて原文の意味がまったくわからなくなってる時が一番困る。

MS のドキュメントは Basic english だかなんだかっていうルールに従って書かれてるから
馬鹿でも読めるという罠。
0178デフォルトの名無しさんNGNG
意味が正反対になるような表現って無いと思うんだけど。


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

おまえらも久しぶりに叩きがいのある奴紛れ込んできたからって騒ぎすぎ。
0180デフォルトの名無しさんNGNG
それにしても、>>160は見事な釣りだな・・・。
>>179までで10数匹釣り上げた。
もっとも、バカ丸出しの雑魚ばかりだけど。
0181デフォルトの名無しさんNGNG
180=160
0182デフォルトの名無しさんNGNG
>>180
わかったからsageろよ160。
0183180NGNG
>>181,182

おいおい、俺は160じゃないぞ。
さらに2匹追加かよ・・・・。
0184デフォルトの名無しさんNGNG
┐(´ー`)┌ どっちでもいいよアフォ
0185180NGNG
まあ、
0186あのな〜。一応僕は英検2級なんだよ。NGNG
あのな〜。一応僕は英検2級なんだよ。
0187デフォルトの名無しさんNGNG
とりあえず、>>160-186はしょうもない○×ってことで終了!
あとは放置ね。
0188デフォルトの名無しさんNGNG
また英語談義か
0189160(英検二級)NGNG
そんなにうらやましいのか・・・
0190デフォルトの名無しさんNGNG
すみません、この一文っておかしいでしょうか?
猫のC言語のところではこの書き方で書いてあったのですが
bccでコンパイルしようとしたらエラーがでてきて
'void *'型は'HPEN__*'型に変換できないってなるんです

HPEN oldpen,hpen;
(省略)
oldpen=SelectObject(hdc, hpen);
0191デフォルトの名無しさんNGNG
>>190
あなたがC言語を使っていない可能性があります
0192デフォルトの名無しさんNGNG
oldpen=(HPEN__ *)SelectObject(hdc, hpen);
こうするとエラーが出なくなるかもしれないわよ
0193デフォルトの名無しさんNGNG
何も基本型の方でキャストしなくても・・・
0194デフォルトの名無しさんNGNG
コンパイル通りました、有難うございます
0195デフォルトの名無しさんNGNG
俺、一応工業英検2級だけど、MSDNのドキュメントくらい辞書見ながら読んだら理解できると思うぞ。
0196デフォルトの名無しさんNGNG
辞書なんかいらないだろ
0197デフォルトの名無しさんNGNG
思い立って辞書を引くとプログラミング用語と英語では意味が違って混乱することもたまに
0198デフォルトの名無しさんNGNG
用語は日本語訳されてもカタカナに変換されるだけなので、
結局その用語を知らなければ意味は通りません
0199名無し@沢村NGNG
おまいらはコンピュータ用語辞典のサイトも知らないのか。
あー、嘆かわしい・・・・
0200デフォルトの名無しさんNGNG
>>199
教えてくれ
0201デフォルトの名無しさんNGNG
プログラム言語が読めれば、何してるかはわかるんだから英語だろうが中国語だろうが
特に問題にはならないと思うけど。
0202デフォルトの名無しさんNGNG
要は、コードを見た時に「マシンの気持ち」になって、マシンに共感しながらその処理内容を実感できれば最強のプログラマになれる、ってことなんだよね。
0203デフォルトの名無しさんNGNG
エロいな
0204デフォルトの名無しさんNGNG
つまり女を扱いたかったら、女の気持ちになって、一度男に犯られてみろと?
0205デフォルトの名無しさんNGNG
   | |/ノ二__‐──ァ   ヽニニ二二二ヾ } ,'⌒ヽ
  /⌒!|  =彳o。ト ̄ヽ     '´ !o_シ`ヾ | i/ ヽ
0206デフォルトの名無しさんNGNG
>>205
そんな目で見るな
0207デフォルトの名無しさんNGNG
盛りあがっている?
ところすいませんどうしても解決できないことがあります。

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

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

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




0208デフォルトの名無しさんNGNG
>>207
レジストリ内をくまなく探せ
REGMONを併用すると楽に見つかる
020995371NGNG


18禁ふりま http://www.freepe.com/ii.cgi?furima0323
0210デフォルトの名無しさんNGNG
64ビット用のWindowsならWIN64APIになるの?
0211デフォルトの名無しさんNGNG
対応コンパイラを使えば
0212デフォルトの名無しさんNGNG
「Alquade」というソフトの
ttp://hp.vector.co.jp/authors/VA028199/alquade/help/combinedhelp.html
>Alquade では Windows API で保証されていない手法を一部使用しております。

ってどんな手法かわかりますか?
0213デフォルトの名無しさんNGNG
非公開APIでも使っているんじゃないの?
0214デフォルトの名無しさんNGNG
>>208
アリガト、必要な情報を得ることができたよ。
マウスの情報 取得 とかで検索掛けてもまったく見つからなかったけど、
マウスの高速化で検索するといっぱいありました。

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

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

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

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

0215デフォルトの名無しさんNGNG
>>214
これは
SystemParametersInfo
SPI_GETMOUSE, SPI_GETMOUSESPEED
で取得できる情報とは違うの?
0216デフォルトの名無しさんNGNG
>>215
そのようですね。
取りあえず、数値の意味が調べられてので
前の件で調べたことは無駄にはなりませんでしたが。
レジストリ取得のデバック開始したとこでした。こちらのほうが楽ですね。

>>215,208さん
どうもありがとう
0217デフォルトの名無しさんNGNG

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

0218デフォルトの名無しさんNGNG
とりあえず必要は情報はキーワード検索にかけてみる
あと、MSDN再インスコ
0219デフォルトの名無しさんNGNG
必要は情報->必要な情報
0220デフォルトの名無しさんNGNG
釣られ損ねた。

MSDNに限って言えば日本語訳はかなり怪しいので原文を見たほうが良いと思う。
日本語訳の方は内容古いし、よく情報が欠けてる。
0221デフォルトの名無しさんNGNG
SystemParametersInfo
追加情報 これは標準マウスのデータしか返さないようです。
トラックパッド トラックポイントはまた別のようです 鬱だ
0222デフォルトの名無しさんNGNG
ダイアログの表示完了を知りたいのですが、どんな方法がありますか?
ダイアログにWMメッセージを送信したいのですが、ダイアログの表示命令を出した直後に、
PostMessageするためダイアログが開ききっておらず無効になっているようなのです。
Sleep関数以外でよい方法があったら教えてください。おねがいします。
0223デフォルトの名無しさんNGNG
>>222
文意が今ひとつはっきりしないがWM_INITDIALOGじゃだめなのか?
0224貧乏脱出!これであなたはお金持ちNGNG
普通に働いてお金持ちになれるのは全体の1%のみって本当!?
本当にお金持ちになるにはやはり「副収入」が必要!
一日30分 おうちでコピペ、コピペ!
嘘だと思うんならランキング見てみてくださいよ↓↓
(直リン不可)
http://www.adultshoping.com/addclickport.cgi?pid=1053353765(直リン不可)

0225デフォルトの名無しさんNGNG
>>222
ダイアログ プロシージャのcase WM_INITDIALOGで
SendMessage(GetParent(hDlg), WM_COMMAND, 0, (LPARAM)hDlg);
とかは?
0226デフォルトの名無しさんNGNG
shellapi.hの最新版はどこでダウンロードできるのですか?
教えてください
0227デフォルトの名無しさんNGNG
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
0228デフォルトの名無しさんNGNG
教えてください。
ウィンドを持たないプログラム(xxx.exe)を
強制終了させたいです。
xxx.exe のプロセスIDに TerminateProcess をすれば良い
というところまでは解ったのですが、
プロセスIDを取得する方法がわかりません。
お願いします
0229デフォルトの名無しさんNGNG
プロセスを列挙するだけ
0230デフォルトの名無しさんNGNG
win9xの"C:\Program Files"内で
GetCurrentDirectory、もしくはGetModuleFileName
を利用した所、\Program Filesの部分が化けました。
ただし、Api使用はDelphi6経由です。

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

半角スペース部分を何とかすればよいと思うのですが…
0231230NGNG
うっ、自己解決しました。
メモリ割り当てを
new(p)
なんぞしておった。

p:=allocmem(255);
だな。

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

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

んじゃなきゃ、今の通りにやるしか無いだろね。
0235デフォルトの名無しさんNGNG
ネットで稼ぐならこれ。完全無料!!
リンクスタッフに登録すれば小遣い稼ぎができます!!

[報酬について]
クリック報酬・・・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
超おすすめです!!ぜひ一度のぞいて見てはいかがでしょうか?
0236デフォルトの名無しさんNGNG
>>233
SetThreadExecutionState じゃだめか?
スリープ状態に入るのを阻止する API だけど、
ES_DISPLAY_REQUIRED フラグはまだ試したこと無いんだよな。
0237デフォルトの名無しさんNGNG
(;´Д`)ハァハァ ボッキしますた
http://homepage3.nifty.com/coco-nut/
0238デフォルトの名無しさんNGNG
#define STRICT

ってどういうときに使うんですか?
0239デフォルトの名無しさんNGNG
>>233
SystemParametersInfoのSPI_SETSCREENSAVEACTIVEは?
Tipsサイトとかによく出てると思うんだが……なんか漏れ勘違いしてる???
0240238NGNG
>>238
ttp://www7.plala.or.jp/keny01/win32/01-10.html

自己解決しました。
ありがとさん(だれにだよ)
0241デフォルトの名無しさんNGNG
>>240
型チェックが厳密になる。
実際にはHANDLEだったのがHWNDとかHDCとかに再定義されたりするわけだが。

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

あと、VC6あたりからはデフォルトでプロジェクトにSTRICT定義が入ってるはず。
0242デフォルトの名無しさんNGNG
>>239

「システムの設定を変えるためのプログラム」を作っているんでなければ、
勝手にシステム設定をいじるのは邪道だと思うのは漏れだけかなあ?
0243デフォルトの名無しさんNGNG
システムの設定をいじる必要など無い
存在するスクリーンセーバーのプログラムを手当たり次第に消すようにすればいい
これ王道
0244238NGNG
>>241
ありがとう
0245デフォルトの名無しさんNGNG
MessageBox を使って、スクリーンセーバーの設定を切ってくださいとユーザーに頼む
0246デフォルトの名無しさんNGNG
PeekMessageでCPUを使い切るとか
それなら50秒ごとにメッセージ投げたほうがまだマシだな
0247239NGNG
>>242
むぅ、確かにその通りだ。軽率なレススマソ。

するとやはり50秒ごとにメッセージ投げるしかないのかなぁ。
ざっとぐぐった感じだと、みんなそういう対処だね。
なんか気に入らないけど、一時的に無効にするような手段が用意されてないなら
それしかないのかな。
0248デフォルトの名無しさんNGNG
>>247
スクリーンセーバーをソフト側で抑止する方法ならあるですよ。

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

Windowsが問い合わせてきてダメならダメと言えば良いらしい。
ゲームとかで割と便利だったり。
0249233NGNG
レスくれたしとたち>
 ありがとござました。
 SystemParametersInfoで逝きます。
 てか、それで逝ってって言われた。
 てか、その前に、スクリーンセーバがかかると
 落ちるシステムを何とかしる!・・・いや、もう言うまい
0250デフォルトの名無しさんNGNG
>>248
それは>>234が「自アプリがアクティブな時だけ」と書いているんだが。

>>249
設定変えたまま異常終了されたらいやだな。
0251デフォルトの名無しさんNGNG
>>250
スマソ
0252デフォルトの名無しさんNGNG
ちなみに、メッセージ投げるんでなくて、SetCursorPosするだけで
スクリーンセーバは防げるという話は聞いたことあるぞ。
0253デフォルトの名無しさんNGNG
勝手にカーソル位置変えられるより
見た目無害なメッセージのほうがよさげ
0254名無し@沢村NGNG
>>253
ヌヒよ、現在のカーソル位置を取得して、その値でSetCursorPos()すればいいんじゃないのか?
ヌヒよ、現在のカーソル位置を取得して、その値でSetCursorPos()すればいいんじゃないのか?
ヌヒよ、現在のカーソル位置を取得して、その値でSetCursorPos()すればいいんじゃないのか?
0255デフォルトの名無しさんNGNG
いや、カーソル位置は変えないのよ。
GetCursorPosで取ってきた座標にSetCursorPosするだけ。

たしか、同じようにスクリーンセーバで悩んでたやつが
最終的にそういう手法を見つけたんだと思う。
0256デフォルトの名無しさんNGNG
スクリーンセーバ解除用に昔つくった関数(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);
0257デフォルトの名無しさんNGNG
最初ウィンドウサイズを100*100にしておいて、
スペースボタンを押すと100*200になって、
更にスペースを押すと100*100に戻る。
(以降スペースを押すたびに100*100と100*200が入れ替わる)

というウィンドウを作るにはどうすればいいか教えて下さい。
0258デフォルトの名無しさんNGNG
>>256
画面の右上か左下にいたら失敗しそうに見えるが…
0259デフォルトの名無しさんNGNG
>257
どうすればいいって、そのまんまじゃん。
判らない事は1つずつ尋ねるべし!
0260デフォルトの名無しさんNGNG
>>259
最初ウィンドウサイズを100*100にしておいて、
0261デフォルトの名無しさんNGNG
スタティックテキストのフォントサイズをかえるにはどうすればいいんですか?
0262257NGNG
レス有難うございます

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

ただ、スペースキーが押された時にどういった関数を呼び出す事によって、
ウィンドウサイズを変更できるかが良く分からないのです
0263デフォルトの名無しさんNGNG
>262
どうすればいいって、そのまんまじゃん。
判らない事は1つずつ尋ねるべし!
0264デフォルトの名無しさんNGNG
>>262
あなたの言う「ウインドウサイズ」とは
もしかして「クライアント領域のサイズ」のことか
0265257NGNG
>264
そうです
0266デフォルトの名無しさんNGNG
>>264
なんだと思ったんだ?(w
0267デフォルトの名無しさんNGNG
エディットボックスにタブを入れようとすると次のコントロールが
アクティブになっちまう。なんかいい方法ないでつか?

あとタブをコピーしてペーストしたらタブが八文字ぶんになっちまう。
これもなんかいい解決法キボン
0268デフォルトの名無しさんNGNG
Windowsではウィンドウサイズとクライアントサイズは別物だぞ
0269デフォルトの名無しさんNGNG
AdjustWindowRect
0270デフォルトの名無しさんNGNG
んでMoveWindow
0271デフォルトの名無しさんNGNG
ツールバーやステータスバーなどの上下に張り付くウィンドウを差し引いた
クライアント領域を自動で取得する関数ってつくれまつか?
ステータスバー等の有無も自動で認識してくれるといいんですが。
おながいします。

0272デフォルトの名無しさんNGNG
>>269&270
以前、
http://pc2.2ch.net/test/read.cgi/tech/1055864305/154
こういうのを作ったんだけど、ちゃんと関数あったんだね・・・。
うかつだった。。。
鳥がナクナクこけこっこ〜。はぁ・・・。
0273デフォルトの名無しさんNGNG
よくインストーラでタスクバーを消して画面いっぱいに描画している
のを見ますが、あれは
1、タスクバーを消しているのではなくウインドウを最前面に表示して
いるだけのでしょうか?だとしたら、タスクバーの部分まで隠して画面サイズに合わせて
最大化するAPIなんかあるのでしょうか?
教えてください。
0274デフォルトの名無しさんNGNG
yes > 273
0275デフォルトの名無しさんNGNG
<274
ありがとうございます!!
あなたはこのような経験をされたことございますか?
もしよろしかったら手順を教えてください。
0276デフォルトの名無しさんNGNG
>275
hWnd = CreateWindow(szAppName, szTitle, WS_OVERLAPPED ,
  0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), ......
0277デフォルトの名無しさんNGNG
>>276
CreateWindowEx(WS_EX_TOPMOST, ...)
でないとタスクバーは隠せないと思うが。
0278名無し@沢村NGNG
>>267
> エディットボックスにタブを入れようとすると次のコントロールが
> アクティブになっちまう。なんかいい方法ないでつか?
WM_GETDLGCODEのハンドラが返す値をいろいろいじってみる。

> あとタブをコピーしてペーストしたらタブが八文字ぶんになっちまう。
> これもなんかいい解決法キボン
WM_SETTEXTのハンドラで好きなようにする。
0279デフォルトの名無しさんNGNG
<<276
<<277
すばらしいですね!やっぱりデベロッパーはすごいですね。
関心してしまいます。

0280276NGNG
>277
そうすか。環境や状況依存かも。一応、自分とこは隠れるのでウソつきじゃないって事で...
0281デフォルトの名無しさんNGNG
>>276
私はVBでプログラムしておりますが、フォームを新規に作成してコードで
ボタンなど追加しなくてもいいようにVS.NETで作成したフォームでウインドウ
の最大化だけをAPIに任せるような使い方はできないのでしょうか?

0282デフォルトの名無しさんNGNG
>>281
できます。
0283デフォルトの名無しさんNGNG
>>272
GetSystemMetricsなんてのもあるな
0284デフォルトの名無しさんNGNG
エディットコントロールに文字を約60KB以上表示しようとしたら
表示されなくなってしまいました。
EM_SETLIMITTEXTあたりかなと思いましたが、ダメなようです。
何か良い方法はないでしょうか?
0285デフォルトの名無しさんNGNG
いつまでも9X使ってないで、NT technologyにしなさい。
0286デフォルトの名無しさんNGNG
>>284
つりですか?
0287デフォルトの名無しさんNGNG
   おっ、なんか来た。
   ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ,/ヽ
                ,/   ヽ
       ∧_∧  ,/      ヽ
      ( ´∀`),/          ヽ
      (  つつ@            ヽ
  __  | | |                ヽ
 |――| (__)_)                ヽ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|                ヽ
⌒\/⌒\/⌒\|彡~゚ ゜~ ~。゜ ~ ~ ~ ~~ ~ ~~ ~ ~~
⌒\/⌒\/⌒\彡 〜 〜〜 〜〜 〜〜 〜 〜
                           |
                           |<<286
0288デフォルトの名無しさんNGNG
API を使ってフラッシュムービー(swf ファイル)を再生するような方法を
知ってる方いませんか?
もしくはそれに似た方法でも・・・なにかありませんか?
0289デフォルトの名無しさんNGNG
>>288
ShellExcuteを使ってIEを.swfファイルを引数にして呼べば
うまくいくかもしれない。試してないけど。
0290デフォルトの名無しさんNGNG
>>289
ヒント感謝します。
さっそくShellExcute を検索してみます。
0291デフォルトの名無しさんNGNG
どっかにATL使ってCOM経由でFlash再生するってネタならあったが。
0292デフォルトの名無しさんNGNG
開けました。大感謝です。
ついでに呼び出したウィンドウと同一ウィンドウ内で開く方法とかも・・・
・・・自分で探してみます。
0293デフォルトの名無しさんNGNG
>>291
普通最初にそれを思いつくだろ・・・
0294デフォルトの名無しさんNGNG
おしえてください
アイコンの指定はウィンドウクラスでhIconメンバーですが
ファイルに付くアイコンの指定方法がわかりません、
ビルドによってアイコンを変えたいのですが・・
0295_NGNG
http://homepage.mac.com/hiroyuki44/hankaku02.html
0296デフォルトの名無しさんNGNG
今日はここで(;´Д`)ハァハァ
http://homepage3.nifty.com/coco-nut/
0297デフォルトの名無しさんNGNG
リストビューの項目で全ての文字列を表示できない場合はツールチップ表示にはどうすればいいんですか?
0298デフォルトの名無しさんNGNG
>>294
スレ違いだと思うが…
リソースの中で番号がいちばん若いアイコン
0299デフォルトの名無しさんNGNG
LVM_SETTOOLTIPS
wParam = 0;
lParam = (LPARAM)(HWND)hwndToolTip;

0300297NGNG
>>299
これだけでいいんですか…
ありがとうございます。
0301デフォルトの名無しさんNGNG
>>298
すみません。スレ違いですか APIで命令があると思って・・・
0302デフォルトの名無しさんNGNG
起動する前の状態のファイルからどうやってAPIを使うの?
ファイルがあるだけで発動するウイルスでも作るの?
0303デフォルトの名無しさんNGNG
>>282
できるのですか!!!
教えてください。
でもWIN32APIを使ったことがありませんのでこの機能で感動したいと思います。
よろしくお願いします。
0304デフォルトの名無しさんNGNG
物理HDD(\\.\PHYSICALDRIVE)と、ドライブレター(C: D:等)との対応付けを知るためのAPIや
方法はありますでしょうか?

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

それとも、レジストリのどこかに書かれているのかな?
0305デフォルトの名無しさんNGNG
>>266
ふつうウィンドウサイズといったらタイトルバーや枠を含めた大きさのことでしょ
区別するためにわざわざ「クライアント領域」という言葉があるんだし
0306デフォルトの名無しさんNGNG
「MS、Windows 2000 の ShellExecute 関数にあった脆弱性を修正」だってさ

ttp://japan.internet.com/webtech/20030704/12.html
0307デフォルトの名無しさんNGNG
OutputDebugStringからのメッセージを受け取るデバッガを作っているのだが
どうにも全てのプロセスからのメッセージを受け取れるようにできない.
WaitForDebugEventだと一つしか受け取れないようだし...
何かよい方法は無いでしょうか?
0308デフォルトの名無しさんNGNG
CPUの周波数によって表示を変えたり
メモリーの容量で表示を変えたり
HDDの容量で表示変えたり
OSによって表示変えたり実行できるOS制限したり

できませんか?
0309デフォルトの名無しさんNGNG
できる
0310デフォルトの名無しさんNGNG
どうやって?
0311デフォルトの名無しさんNGNG
マルチには教えられません
0312じゃーNGNG
ここ一本で


おしえてくれ
0313デフォルトの名無しさんNGNG
>>308
漠然としすぎだよ。

それらのデータを得る方法がわからないの?
それらのデータによって処理を振り分ける方法がわからないの?
表示を変えるって何をどう変えるの?
0314デフォルトの名無しさんNGNG
>>313
全部が解らぬ

変えるのはメッセージとか
0315デフォルトの名無しさんNGNG
(´-`).。oO(何で検索しないのこの人…)
0316デフォルトの名無しさんNGNG
>>315
してもねぇぇぇぇんだよ
0317デフォルトの名無しさんNGNG
すぐみつかったが何か?
0318デフォルトの名無しさんNGNG
>>316
どんなキーワードで検索したか言ってみな
0319デフォルトの名無しさんNGNG
>>317
どう検索したんだYO
0320デフォルトの名無しさんNGNG
全部かよ……


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

とりあえず周波数とかの代わりに現在時刻なり乱数なりで作ってみろよ。
それから周波数の取得方法探して差し替えればよかろう。
0321デフォルトの名無しさんNGNG
>>320
>普通に簡単なアプリケーションは作れるの?
>まずはそこからのような気がしてきだぞ。
時刻取得とか関数とかあるからわかるけど

周波数とかその他に取得の関数。・・・・有ると思うが解らない・・・
0322デフォルトの名無しさんNGNG
CPU 周波数 取得 tips

検索の方法も知らないんですね
0323デフォルトの名無しさんNGNG
>>322
ありがたぅ
0324デフォルトの名無しさんNGNG
どんな言葉で検索したのか俺も知りたい
0325デフォルトの名無しさんNGNG
>>324
だから検索なんかしていないんだよ
0326デフォルトの名無しさんNGNG
>>325
したわバーカ
0327デフォルトの名無しさんNGNG
>>326
じゃぁ言ってみな 検索もせずにマルチしたんだろ?
0328デフォルトの名無しさんNGNG
>>327
巫女 ナース 煮込み小茄子
0329デフォルトの名無しさんNGNG
( ゚д゚)ポカーン
0330デフォルトの名無しさんNGNG
>>327
セントリーノ (・∀・)イイ! キター
0331デフォルトの名無しさんNGNG
真面に相手しちゃった>>322が馬鹿だったと言う事で。

あれ、322俺だ…ヽ(`Д´)ノ ウワァァァン
0332デフォルトの名無しさんNGNG
>>331
本当に馬鹿ですね(笑)

というと怒るんですよね。
0333デフォルトの名無しさんNGNG
333get
0334デフォルトの名無しさんNGNG
「プログラミング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()で取得した配列の先頭はデフォルトプリンタである」
という仕様は特にないですよね?
0335デフォルトの名無しさんNGNG
ふと気になったんですが、一番文字数の長いAPIはなんですか?
0336デフォルトの名無しさんNGNG
…ExExExExExExExExExExExExExExExExExExExExExExExExExExExExExExExExExEx()
0337デフォルトの名無しさんNGNG
CoMarshalInterThreadInterfaceInStream
0338デフォルトの名無しさんNGNG
>>335
自分で調べてみようよ。
俺も以前Javaで一番名前の長い例外クラスってなんだろうと思って調べたことある。

ただJavaの場合rt.jarの中身を見ればいいけど、Win32APIだと大変そうだなw
0339デフォルトの名無しさんNGNG
FindClosePrinterChangeNotification
うーん、負けた>>337


0340デフォルトの名無しさんNGNG
SetupRemoveInstallSectionFromDiskSpaceList
0341デフォルトの名無しさんNGNG
なげーよ
0342デフォルトの名無しさんNGNG
鼻毛ーよ
0343デフォルトの名無しさんNGNG
エディットボックスに入力されたテキストの文字数を返す API
ってありますか?

GetDlgItemText で strlen だと効率が悪いです。
0344デフォルトの名無しさんNGNG
それがコンマ1ミリの時間にもならないとしても効率が悪いのか?
0345デフォルトの名無しさんNGNG
たぶん 100000 回くらい使うんだろう。
0346デフォルトの名無しさんNGNG
GetWindowTextLengthでいいんじゃ?
0347デフォルトの名無しさんNGNG
>>344
何文字入力されるか分からないんでとりあえず 10 MB 確保したあと
realloc してたんですよ。まあメモリの掃除になって良かったのかも
しれないけど

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

>>346
グッジョブ!!
マジサンクスっす。。。
早速使わせて頂きます
0348名無し@沢村NGNG
>>347
> グッジョブ!!
おまいはなんか勘違いしてないか
0349デフォルトの名無しさんNGNG
恐ろしく厨房な予感。放置に限る。
0350デフォルトの名無しさんNGNG
>>307
DbMonのソース見れ
0351デフォルトの名無しさんNGNG
>>348
え??勘違いって何すか?
0352デフォルトの名無しさんNGNG
>350
おう,激しくビンゴのようだ...サンクス
0353デフォルトの名無しさんNGNG
お手軽に mixer* な API でボリュームメーター表示ってできないんでしょうか。
http://www.microsoft.com/japan/support/kb/articles/181/5/50.asp
ってのがあって、試してみたんですが、ミキサーコントロールを取得できずに失敗します。

ってーか上のページのソース
> if (MMSYSERR_NOERROR == rc) {
> // ミキサーをオープンできない
> }
とか書いてる時点でどうかと思うんですがまぁそれはともかく。
0354デフォルトの名無しさんNGNG
アプリの起動と終了の監視をする、
グローバルフックのプログラムを作ってみたんですが、重くて話になりません(T_T
インストールするフックの種類はWH_CALLWNDPROCです。

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

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

0355デフォルトの名無しさんNGNG
あるディレクトリー下の階層を含めたファイル群を自動的に
圧縮・任意のディレクトリーに展開するライブラリでオススメって
ありますか?
参考ソースの場所などがあれば教えていただければ助かります。
よろしくお願いします
0356デフォルトの名無しさんNGNG
MessageBox関数は、windows.hに定義されているのでしょうか?
0357デフォルトの名無しさんNGNG
(;´Д`)Kanbe Site YO!!
0358デフォルトの名無しさんNGNG
>>357
tyotto gurai iide syo!!
0359デフォルトの名無しさんNGNG
>>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
0360334NGNG
>>359
サンクス!
0361デフォルトの名無しさんNGNG
>>354
フックDLLからインポートするDLLは最小限にする
関係ないメッセージのときは可及的速やかに抜け出すよう
フックコールバックを見直す
0362デフォルトの名無しさんNGNG
CreateStreamOnHGlobalの第二引数がTRUEで実行して、
失敗した場合には、
第一引数のメモリオブジェクトのハンドルは自動的に開放されますか?
0363rNGNG
なぜ BOOL GetMessage() APIは、負数、0、正数の3種類の値をとるのでしょう?
つーか、なんで BOOL にしてあるんでしょうか?
0364デフォルトの名無しさんNGNG
>363
昔からBOOLだった。
0365デフォルトの名無しさんNGNG
>>354
どういうことをしたいのか分からないですが、
終了を検知したいプロセスのハンドルを取得して
適当な待機関数で待つのが妥当じゃないでしょうか?
プロセスの起動も自前でするならCreateProcessした後に
WaitForInputIdle(GUIのみ)あたりで入力待ちになるまでなるまで
待ってもいいかもしれない。
とりあえずプロセスのハンドルさえ取得すればいろいろできる。

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

0366デフォルトの名無しさんNGNG
>>354
漏れが思うに、勘違いしてるだけなんじゃねーのかなぁ。

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

そう言うチェックはしてみた?
0367名無し@沢村NGNG
皆々様方〜、教えてくださらんか、皆々様方〜♪
タイトルバーが赤や黄色のwindowをつくるにはどうしたら、いいかな〜?
教えてくださらんか、皆々様方〜♪
0368デフォルトの名無しさんNGNG
普通赤だろ?
0369デフォルトの名無しさんNGNG
先輩方。
Win32に疎いもので申し訳ないですが
プログラムAで表示したメッセージボックスのイベントを
プログラムBで拾って、メッセージ内容を取得することって可能でしょうか。
できそうだとは思うのですが、具体的な方法がわかりません。。
ご存知の方がいらっしゃいましたら、ご教授願います。
一応ネットも調べたのですが,,
0370デフォルトの名無しさんNGNG
>>369
もっと沢村風に書け
0371デフォルトの名無しさんNGNG
メッセージボックスのイベント..って、なに?
意味がわかんないよ。
そもそも「メッセージボックス」っていっても、色々な種類があるんだが...。

適当なカタカナ言葉で誤魔化さずに、
もっと具体的かつ正確に条件を定義してください。
0372名無し@沢村NGNG
先輩方〜、教えてくださらんか、先輩方〜♪
Win32に疎いもので申し訳ないのだけどよ。
プログラムAで表示したメッセージボックスのイベントを
プログラムBで拾って、メッセージ内容を取得することって可能なのかよ?
できそうだとは思のだが、具体的な方法がわからないよ。
ご存知の方がいたら、ご教授願うよ。
一応ネットも調べたよ。
教えてくださらんか、先輩方〜♪
0373デフォルトの名無しさんNGNG
>>370,371

先輩方〜、教えてくださらんか、先輩方〜♪
Win32に疎いもので申し訳ないのだけどよ。
プログラムAのウィンドウ上で情報を入力後、
確認MsgBoxを表示したタイミングでイベントを拾って
別プログラムBでMsgBoxのメッセージ内容(String文字列)を取得することって
可能なのかよ?
できそうだとは思のだが、具体的な方法がわからないよ。
ご存知の方がいたら、ご教授願うよ。
一応ネットも調べたよ。
教えてくださらんか、先輩方〜♪
0374デフォルトの名無しさんNGNG
>Win32に疎いもので申し訳
んじゃ、Win32以外の方法で書いて見せれ!
0375デフォルトの名無しさんNGNG
私の自信作♪
http://endou.kir.jp/betu/linkvp/linkvp.html
http://s-rf9.free-city.net/page003.html
0376デフォルトの名無しさんNGNG
>>374

え。。ここ、他の道きわめてないと質問しちゃいけないんすか?
あるいは別の情報を提示しないといけないとか、トレード必要すか?
なら出直します。
0377デフォルトの名無しさんNGNG
>376
そうじゃなくて、他人が読んで理解できるように具体的に書く必要があるかと。
解ってもいない用語を無理に使っているから文章が破綻しているんだよ。
素直に何をしたいのかをまず書きなさいって。
0378デフォルトの名無しさんNGNG
プログラムAと同じフォルダにダミーのuser32.dllをおいて横取り。

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

だそうだ。多分別のことやりたいんだろうけど。
0380デフォルトの名無しさんNGNG
自分で書かなきゃいけないフォント列挙のコールバック関数の作り方を教えて下さい

フォントの列挙をしたいのですが、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"のみが
返ってきて列挙になりません。
厨な質問すまんですが教えて下され。
0381デフォルトの名無しさんNGNG
>>380
> ・コールバック関数は列挙を続ける時は0以外、終わる時は0を返す。
> 上記の理屈は判るんですが…

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

分かってないじゃんかよヽ(`Д´)ノ
0返したら列挙終了なんだろ? 1個で終わって当前だろう。
0382380NGNG
>>381
いや、コールバック関数内で”1を返すときの条件”をどう判断してよいのやら
判らんのれす…
0383デフォルトの名無しさんNGNG
>>382
全部列挙したければ1、何らかの理由で列挙をやめたいなら0
0384380NGNG
×”1を返すときの条件”
○”0以外を返す時の条件”

スマンコ
0385デフォルトの名無しさんNGNG
(;´Д`)感動した
http://homepage3.nifty.com/coco-nut/
0386380NGNG
>>383
?

マジで理解できん…
”コールバック関数が返す値”をどうやって決めるかってな質問なんだけど的外れなんか?
0387デフォルトの名無しさんNGNG
>>386
コールバック関数は自作だろう?
10個で止めたいならカウンタでも作って10回呼ばれたら0を返すようにif文入れる。
そういうこった。
0388デフォルトの名無しさんNGNG
>>386
n個フォントがインストールされてれば
n回コールバック関数が呼ばれるはずですが?

で、ENUMLOGFONTEXを調べて、条件(例えば等幅フォントとか日本語フォントとか)
に合うフォントを適当なコントロールに追加する処理をすればいいかと。
0389380NGNG
>>387
質問の仕方が悪いんだろうな…

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

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

これは違うだろうと…
0390デフォルトの名無しさんNGNG
なくなったら勝手に終わるって
0391デフォルトの名無しさんNGNG
lParamに構造体かなにかのポインタでも入れてヒントに使えや
0392380NGNG
>>388
>n個フォントがインストールされてれば
>n回コールバック関数が呼ばれるはずですが?

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

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

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


0394デフォルトの名無しさんNGNG
無言電話で困ってます
0395デフォルトの名無しさんNGNG
>>394
全部DefWindowProcにお任せしよう!
緊急の時だけWM_RESCUEとかw
0396デフォルトの名無しさんNGNG
だ、だれか >>353 に答えてやっては下さらぬか。。。
0397名無し@沢村NGNG
皆々様方〜、教えてくださらんか、皆々様方〜♪
タイトルバーが赤や黄色のwindowをつくるにはどうしたら、いいかな〜?
教えてくださらんか、皆々様方〜♪
0398デフォルトの名無しさんNGNG
画面のプロパティーのデザインのところで赤や黄色を指定する
直接レジストリをいじっても良いけど
0399初心者だけどNGNG
>>380
ず〜っと前、漏れもEnum系APIでの自前コールバックを引数にして・・・
ってやつで何がどうなってるのかよく分からなくて苦労したことあるなぁ〜。

そういう時はとりあえず、自分で呼ぶ側と呼ばれる側を作って
練習してみるのがいいかも。同じような仕様にして作ってみて動作を
理解するのが一番の早道かもしれませんよ。
0400名無し@沢村NGNG
>>398
それだと、全部赤や黄色になってしまうのですが…?
自分でつくったソフトのタイトルバーだけを赤や黄色にしたいのですが…?
0401デフォルトの名無しさんNGNG
後から条件を追加するな
0402デフォルトの名無しさんNGNG
LRESULT CALLBACK MainWndProc( HWND hWnd, UINT msg, UINT wParam, LONG lParam )

関数って、
最後のreturn文は何を返すのが一番いいんでしょうかね?
0403デフォルトの名無しさんNGNG
状況によりけり
返す物が固定なら戻り値を返すようになどなっていない
0404デフォルトの名無しさんNGNG
WM_NCPAINT〜♪
0405名無し@沢村NGNG
皆々様方〜、自己解決しました〜♪
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q99/0/46.asp&NoWebContent=1
上のURLを参考にすればいいことが分かりました〜♪

こんな掲示板をあてにせずに、最初から自分で調べた方が良かったみたいですね〜♪
とても勉強になったよ〜、皆々様方ありがとうございました〜♪
0406rNGNG
>>405
おめでとう!
0407デフォルトの名無しさんNGNG
>>402
普通DefWindowProc()の返り値では。
そういうことじゃない?
0408デフォルトの名無しさんNGNG
>>402
[7]がいいよ![7]!
ぼくならぜったいに7!!!
0409デフォルトの名無しさんNGNG
変な質問なのですがお願いします。

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

自分で調べるべきですが、該当アプリが手元に無くて…。
プログラマで持っている人は少なそうですが、もし御存知でしたら是非…。
0410デフォルトの名無しさんNGNG
>409
独自クラスっぽい、SPI++でみるとPSViewCとか出る。
PhotShop7..0ね。
0411デフォルトの名無しさんNGNG
>>408
7゚ッ
0412409NGNG
>>410
うわぁ、ダイアログに独自コントロールですか。
ちらつき防止とか面倒そうですねぇ…。

レスありがとうございました。アレっぽい実装にして欲しいと、
要望を出されていたところでして、本当に助かりました。
0413デフォルトの名無しさんNGNG
>412
別に真似しなくてもいいんじゃないかな?
リストボックスをオナードローにしてもほぼ同じ物が出来ると思うよ。
まぁ面倒なのは変わらないか(w
0414デフォルトの名無しさんNGNG
ホトショは、mac由来のコードとか結構あると思う。
0415デフォルトの名無しさんNGNG
頭痛いです
0416デフォルトの名無しさんNGNG
Windows9x or 2000にて、仮想CDドライブのようなプログラムを作りたいんですが
どう検索して良いか、分からないんですが・・・(デバイス?ハードウェア?)
資料(本)とか購入したいんですが、お勧めのものありますか?
(なるべくC++関係で)
0417デフォルトの名無しさんNGNG
>>416
MSDN
0418デフォルトの名無しさんNGNG
>>416
スレ違い
その程度の事を質問するようでは作るのは無理だから諦めろ
だまってDaemonTools使っとけ
0419デフォルトの名無しさんNGNG
wavファイルを再生するAPIを教えてください
0420デフォルトの名無しさんNGNG
API初心者です。よろしくお願いします。
質問なんですが、
別プロセスのハンドルを取得するにはどうすれば良いのでしょうか?
実行しているEXEの名前は解っている状態です。
0421デフォルトの名無しさんNGNG
ShellExecute
0422デフォルトの名無しさんNGNG
プロセスを列挙して、OpenProcess.
0423デフォルトの名無しさんNGNG
>422さん
ありがとうございます。
さっそく使ってみます。
0424419NGNG
PlaySound()というそのままのAPIがありました。
情けないです。もう二度とここへは来ません。
0425デフォルトの名無しさんNGNG
PeekMessage( &msg, NULL, 0, 0, PM_REMOVE );

の引数は皆さんどうしています?
僕はこんな感じにしているのですが(DirectXゲーム作成時)
0426デフォルトの名無しさんNGNG
>>424
また来いよ
0427名無し@沢村NGNG
皆々様方〜、教えてくださらんか、皆々様方〜♪
自分がつくったwindowのタイトルバーを赤や黄色にするにはどうしたら、いいかな〜?
教えてくださらんか、皆々様方〜♪
0428デフォルトの名無しさんNGNG
しつこい、ほれ
ttp://hp.vector.co.jp/authors/VA016117/bmpcap1.html
0429デフォルトの名無しさんNGNG
もったいないので、むしろこれで>>405
0430デフォルトの名無しさんNGNG
ここで聞いていいのかわからないのですが、

#define STRICT

は1回だけ宣言すれば全部のファイルで共通に作用するのでしょうか?
0431デフォルトの名無しさんNGNG
頭に#が付くのはプリプロセッサで処理される。

と言えばわかるか?
0432デフォルトの名無しさんNGNG
>>431
わかりそうでわからない・・・

例えば、
#define ONE 1

と書いても、これが書いていないファイルではONEと書いてもだめだよね
0433デフォルトの名無しさんNGNG
>>431
君の無駄な試みに乾杯
0434デフォルトの名無しさんNGNG
>>432
ネタ?
#define STRICT
と
#define ONE 1
にどれほどの違いがあるってんだ?
0435デフォルトの名無しさんNGNG
>>434
ということは、すべてのファイルに書けと
0436デフォルトの名無しさんNGNG
>>435
コンパイル時、どのファイルが読み込まれるかを勉強して下さい
0437デフォルトの名無しさんNGNG
>>436
全ファイル共通のヘッダーファイルに書けと?
0438デフォルトの名無しさんNGNG
>>437
漏れは困らないから勝手に書けば?
0439デフォルトの名無しさんNGNG
大抵のコンパイラはオプションで定義できるだろうから、それを使えば?
-DSTRICT こんな感じで。
0440デフォルトの名無しさんNGNG
>>438
実際の所どういう動きをするのでしょうか?
0441デフォルトの名無しさんNGNG
>>440
#define が定義された次の行から適用される
後は、#include 等、他のマクロ(プリプロセッサ命令)が
どのように展開されるかを考える
0442デフォルトの名無しさんNGNG
誰もスレ違いだとつっこまないね
0443デフォルトの名無しさんNGNG
>>442
普通に気付かなかった…鬱
0444デフォルトの名無しさんNGNG
プログラムの実行中,特定の処理を関数化してその関数をひたすら実行させ
続けたいのですが,どこでよんでやればいいんでしょうか(キー入力があれば
関数で使う変数の値を変えるとか…も入れるもりでつ)?
CPU使用率が100%になってもかまわないので.
LRESULT CALLBACK WndProcのswitchのdefault:のreturn DefWindowProc
の上でいいんですか?
0445_NGNG
http://homepage.mac.com/hiroyuki44/jaz09.html
0446デフォルトの名無しさんNGNG
>>444
ひたすらというのがどの程度の頻度を指すか分からんが、
SetTimerでタイマつくってWM_TIMERの中とか
スレッドつくって、そこで延々実行させるとか

>LRESULT CALLBACK WndProcのswitchのdefault:のreturn DefWindowProc
とかだと何かのメッセージが来なければ、実行されない可能性あるし
0447444NGNG
>446
関数を一回実行するのに数十〜数百msかかるのをCPUフル回転で回し
続けるみたいな感じです.スマソ
WM_TIMERかスレッド作って,ですか.
時間が毎回同じでもない(変数によって結構変わる)のでスレッド作ってやってみます.
ありがとうございますた.
0448デフォルトの名無しさんNGNG
CPUの温度を調べるような関数はありますでしょうか?
CPUファンの動作状況なども調べることが出来ればなお良いのですが。
0449デフォルトの名無しさんNGNG

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

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

MDIクライアントウィンドウが複数ある場合、既に出来ているMDIクライアントウィンドウの
ハンドラを取得するにはどうすれば良いのでしょうか?
0452デフォルトの名無しさんNGNG
>>449
450さんの意見に禿同
わざわざデバッグ系APIを使う必要なし
0453デフォルトの名無しさんNGNG
>>451
WM_MDIGETACTIVEとかのメッセージでHWNDを取得できる
0454デフォルトの名無しさんNGNG
>>453
有難う御座います。確かにヘルプには
Return Value
The return value is the handle of the active MDI child window.

とあるので間違いないのですが、WM_MDI…メッセージの戻り値ってとこが解りません…(無知)
SendMessageの戻り値でしょうか?
0455453NGNG
>>454
>SendMessageの戻り値でしょうか?
その通り
てか、猫の85章にも書いてあるはずだが・・・

それはさておき、
>#単純にMDIClientのハンドラからDC取得して、そこにBltしたいのれす。
だとすると、
MDIクライアントウィンドウのプロシージャのWM_PAINTで描画しないと、
再描画が発生すると、「 マ ズ ー 」になりそうだが・・・
0456名無し@沢村NGNG
>>448
CPUに温度センサーをつけて、センサーか送られてくるデータを取得する。
関数だけでは無理。
0457デフォルトの名無しさんNGNG
一応CPUその他の温度やファンの回転数を監視するチップは大抵のPCに
組み込まれてるが。
その辺を自力で叩く根性がないならMBMでも入れてそっから情報貰え。
0458デフォルトの名無しさんNGNG
はいはい
0459デフォルトの名無しさんNGNG
ほいほい
0460デフォルトの名無しさんNGNG
CStaticにこちらの希望のフォーマットのビットマップを選択させるにはどうすればいいですか?
たとえば画面のプロパティーでRGB32でもCStaticはRGB8にしたい。など。
RGB8のDIBをそのままBitBltしたいので。

おねがいします。
0461デフォルトの名無しさんNGNG
WM_SYSCOMMANDが来た時は、breakで処理を終えないで、
return DefWindowProc();

をするべきなんでしょうか?
もしそうならば、その理由はどういうものなんですか?
0462_NGNG
http://homepage.mac.com/hiroyuki44/jaz09.html
0463デフォルトの名無しさんNGNG
あるサイトで

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

としていて、コメントにMicrosoftが仕様と主張するOSのバグの対策をしていますと書いてあるのですが、
どういうバグへの対策が施されているのでしょうか?
0464デフォルトの名無しさんNGNG
タスクバーに空のボタンが残るってやつだっけ
0465デフォルトの名無しさんNGNG
えっと、フックについて質問です。あるプロセス内でインストールされたフックを
ローカルフック、ライブラリ(DLL)によってインストールされたフックを
グローバルフックという呼び方でいいんですよね?

で、本題ですが、プロセス内でグローバルフックをインストールする方法って
ないんでしょうか?理由としては単に DLL を作るのが面倒なんですが…
0466デフォルトの名無しさんNGNG
>>465
微妙に理解が間違ってると思うが、詳細は下を読め。
http://www.kab-studio.com/Programing/Codian/DLL_Hook_SClass/06.html
他プロセスやシステム全体のメッセージをフックしたいならDLLは必須だよ。
0467465NGNG
>>466
なるほど。解りました。ありがとう
0468デフォルトの名無しさんNGNG
スレッドフック 単一のスレッドに対するフック
グローバルフック 全てのスレッドに対するフック
ローカルフック そんな名称は存在しない?
システムフック グローバルフックの旧名称

スレッドフックのうち同一プロセスに対するものの場合のみDLLにしなくても良い
0469465NGNG
DLLってなんと読むんですか?
0470デフォルトの名無しさんNGNG
どるる
0471デフォルトの名無しさんNGNG
どぅるる
0472デフォルトの名無しさんNGNG
>>464
検索したら、

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

と書いてありました。
でもこれ書いていない時でもそんな現象にあったことないんだけどなぁ・・・
0473デフォルトの名無しさんNGNG
Win95とか98とかでは、たまに起こってた記憶が。
0474デフォルトの名無しさんNGNG

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

 ↑ 
ココは丸見え! 今ならまだ消されてないよ。たぶん・・・
0475デフォルトの名無しさんNGNG
>>470 >>471
アフォ
0476デフォルトの名無しさんNGNG
>>475
ヴァカ
0477デフォルトの名無しさんNGNG
>465 ダイナマイト・ロング・レディー
0478デフォルトの名無しさんNGNG
ディーエルエルって言ってる俺

0479デフォルトの名無しさんNGNG
>>478
激しく同意
0480デフォルトの名無しさんNGNG
どぅーどぅるびー
0481デフォルトの名無しさんNGNG
ドゥードゥルバグ
0482デフォルトの名無しさんNGNG
ダ、ダ、ダ、ダイナミック・リンク・ライヴラリー
0483デフォルトの名無しさんNGNG
でぃーいれぶん
0484デフォルトの名無しさんNGNG
まじレスするとデルだろ
∂
0485デフォルトの名無しさんNGNG
DLLのアイコンは、初心者には「花」に見えるらしい
0486デフォルトの名無しさんNGNG
>>485
俺には触れてはいけないものに見えたが
0487デフォルトの名無しさんNGNG
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;でプログラムを終わるべきなのかどちらでしょうか?
0488デフォルトの名無しさんNGNG
MessageBeepは

&Hffffffff
MB_ICONASTERISK
MB_ICONEXCLAMATION
MB_ICONHAND
MB_OK

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

MailBeepに設定されてる音とかをならしたいんですが
0489デフォルトの名無しさんNGNG
実行中の他のプログラムのコマンドライン文字列を取得する方法はありますか。
実行ファイルAが実行ファイルBを起動するのですが、その実行ファイルBに
渡されたコマンドライン文字列をコソーリ見たいのです。
0490デフォルトの名無しさんNGNG
>>488
PlaySound()か?
0491デフォルトの名無しさんNGNG
B.exeのフリしてAに立ち上げてもらえ。
その後、改めてBを立ち上げろ。
0492デフォルトの名無しさんNGNG
>>489
BがGUIアプリなら、中に潜り込んでGetCommandLineだろ。
0493488NGNG
>>490
PlaySoundですか、

PlaySoundは非同期に再生したときかってに終わってくれるのかな?
ちょっとためしてみます。
0494デフォルトの名無しさんNGNG
>>492
ありがとうございます。
しかし、どのようにして潜り込むのでしょうか(@_@)
関数名だけでもヒントをください…m(__)m
0495デフォルトの名無しさんNGNG
>494(489)
VBプログラマ質問スレとのマルチポストの上にさらにヒント請求か。
厚 か ま し い な !
0496デフォルトの名無しさんNGNG
>>494
エッ!? ぶっ、ぶいびぃ・・・ですか。
・・・あなたには多分、無理です。
0497デフォルトの名無しさんNGNG
エディットボックスコントロールに、
テキストをドラッグアンドドロップするには、
どうすればいいの?
なぁんか、できないんだよね。
CreatWindowのとこでなんかするの?
0498デフォルトの名無しさんNGNG
このスレって参考図書は載ってないですね
参考図書もいくつか載ってると良いですよね
0499デフォルトの名無しさんNGNG
別に
0500デフォルトの名無しさんNGNG
このスレって参考図書は載ってないですね
使えないですよね
0501デフォルトの名無しさんNGNG
このスレって使えないですよね。
0502デフォルトの名無しさんNGNG
使えない
0503デフォルトの名無しさんNGNG
>>496
いいえ、一応C言語でのWin32APIプログラミングは心得ているつもりです。
(プログラミングWindows第5版上巻の内容はすべて理解しています)
それでも無理なのでしょうか(汗)
0504デフォルトの名無しさんNGNG
>>503
>>491で分からないならまず無理。あきらめろ。
0505デフォルトの名無しさんNGNG
>>504
実行中のプログラムについて知りたいので、>>491ではだめなのです。
0506デフォルトの名無しさんNGNG
Aは実行中でもBが実行される前なら問題ないだろう
0507デフォルトの名無しさんNGNG
このスレって使えないですよね。
0508デフォルトの名無しさんNGNG
そりゃPlatform SDK Documentation見ればほとんど解決するからね
0509デフォルトの名無しさんNGNG
いやいや喪前には負けますよハゲ
0510デフォルトの名無しさんNGNG
>>503 <<465
0511デフォルトの名無しさんNGNG
> (プログラミングWindows第5版上巻の内容はすべて理解しています)

「すべて」「理解」してるなんてスゲー!
0512デフォルトの名無しさんNGNG
結局このスレには489の質問に答えられる香具師はいないってことだな。
もちろん漏れもだが。
0513デフォルトの名無しさんNGNG
492の「潜り込む」というのは、システムフック(グローバルフック)のことかと。
とりあえずDLLと共有メモリの作り方を知らないとできない。
0514489ですNGNG
>>513
ありがとうございます。勉強してみます。
0515デフォルトの名無しさんNGNG
>>489
Win32API 質問箱 Build6
http://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
の740からの書き込みがまぁまぁ参考になるかと。
ほぼそのまんまみたいだし。でもVBだときつそうだな。
0516デフォルトの名無しさんNGNG
↑741からの書き込みだった。。。
0517デフォルトの名無しさんNGNG
つか、素直にAdvanced Windowsでも読んだほうが早いと思うが。
0518デフォルトの名無しさんNGNG
あるサンプルソースでCreateThread関数で、

int d;

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

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

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

とあるんですが、スレッド識別子が格納されるというっことは、別々の変数を関数側に渡したほうが良いん&ですよね?
&d1,&d2のように。
0519デフォルトの名無しさんNGNG
>>518
スレッドハンドルだけ使って、スレッドIDは使わないなら、
518のような書き方も構わない。
dは便宜上セットしているというだけ。
0520デフォルトの名無しさんNGNG
スレッド識別子を使わないなら、特に別々にする必要は無いかと。
ちなみに、Cランタイムな関数使うときは_beginthreadが推奨だけど、
その辺はOK?
0521デフォルトの名無しさんNGNG
_beginthread/_beginthreadexはAPIじゃないけどな。
まぁ、普通はこっち使うけど。
0522デフォルトの名無しさんNGNG
LPDWORDって、unsigned long*
だったんですか?
int型のポインタ渡そうとしたら起こられましたけど
0523デフォルトの名無しさんNGNG
>>518
戻ってきた値をなにかに使うんじゃなければ、単に空の箱だけ用意し
とけばいいじゃない。
0524518NGNG
>>519
>>520
>>521
>>523
情報ありがとうございました。
難関に思えたスレッドというものがこんなに簡単に実現できるとは・・・。
注意点とかありますか?
スレッドあんまり作成しないほうが良いみたいですが
0525デフォルトの名無しさんNGNG
>>522
typedef unsigned long DWORD;
typedef DWORD *LPDWORD;
だな。WTypes.h を参照
0526デフォルトの名無しさんNGNG
>>524
作るのは簡単。
しかし、使いこなして問題が起こらないように維持するのは、
規模が少し大きくなるだけで、絶望的に難しくなる。
0527522NGNG
>>525
おお、そうですか
そういうのって、コンパイラのある場所(puroguramフォルダ)にあるんですかね?
0528デフォルトの名無しさんNGNG
>>518
ちなみに、最後の引数、NT系はNULLでも動いちゃう。
それで安心してたら、95系でコケてNULLは使えないと気づく・・・
0529デフォルトの名無しさんNGNG
>>527
WTypes.h より windif.h の方が一般的かもしれない。
場所は開発環境、Win32SDKなんかをインストールした場所によって異なる。
検索しろ。
0530デフォルトの名無しさんNGNG
>>529
windef.hじゃなくて?
0531デフォルトの名無しさんNGNG
>>530
windef.hでした。非常に恥ズイ…
指摘感謝。
0532デフォルトの名無しさんNGNG
http://www.sm.rim.or.jp/~shishido/wavbuf.html
ここでビープウェブをドレミファソラシドと鳴らすプログラムがあるのですが、
ぷつぷつと途切れないようにするには、どうすればよいのですか?
0533デフォルトの名無しさんNGNG
リソースでつまずいた・・・
0534デフォルトの名無しさんNGNG
LoadImage関数って、NTでは使えないみたいだね
でもXPでは使えるみたいだね
0535デフォルトの名無しさんNGNG
>>534
そうなの?
NTの環境ないから試せないけど、
MSDN読む限りでは、使えそうだけどな・・・
0536デフォルトの名無しさんNGNG
APIの関数の使い方みたいなの乗ってるサイトで便利なとこありますか?
お薦め教えてください。
0537デフォルトの名無しさんNGNG
>>536
>>2よめ
0538山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0539デフォルトの名無しさんNGNG
NT系のマルチモニタ(デュアルディスプレイ)の制御をする
APIを知りませんか?
手がかりもないのでMSDNライブラリの検索にも全然
引っかからなくて。

お願いします。
0540デフォルトの名無しさんNGNG
ホイ
ttp://sysneitf.hp.infoseek.co.jp/monitors.html
0541デフォルトの名無しさんNGNG
>>534
4.0以降と書いてあるが。

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

>>539
この辺の階層かな。
ttp://www.microsoft.com/japan/msdn/library/ja/jpgdi/html/_win32_EnumDisplayMonitors.asp
0542デフォルトの名無しさんNGNG
>>540
ありが�d!!
こいつを手がかりにまた捜してみます。
0543山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0544ケンNGNG
VBAのユーザーフォームのイメージコントロールに貼り付けた画像の、
例えば、上から10ポイント左から20ポイントのドットの色の情報を
取得する方法があれば、教えてほしいのですが・・・
API関数のなかにありますか?
0545デフォルトの名無しさんNGNG
>>544
GetPixel?
0546デフォルトの名無しさんNGNG
http://jbbs.shitaraba.com/computer/7345/
0547デフォルトの名無しさんNGNG
>>534
日本語版MSDNヘルプが古いだけ(NT 3.5では使えなかったという意味)
NT4以降なら使える
がいしゅつにもほどがある
0548デフォルトの名無しさんNGNG
>>547
だが、4.0以降と書いてあるにも関わらず、サポートしてねぇよ、とも書いてあるので
3.5では使えないけど4.0以降なら使える、という情報は読み取れない。

まぁ、日本語版は信用するなってこった。
0549デフォルトの名無しさんNGNG
英語版見ればNT4以降で使えるのは明らかだがな
もっとも最近英語版の記述も怪しい
0550デフォルトの名無しさんNGNG
Cのisspaceに代わるAPIってありますか?
0551デフォルトの名無しさんNGNG
そのフォルダが存在していなくても、フォルダパスであれば真になるようなAPIはあるでしょうか。
PathIsDirectoryはフォルダが存在していないと偽を返してしまいます。
0552デフォルトの名無しさんNGNG
>>551
拡張子のないファイルとフォルダが
両方とも存在しないとして、それをどうやって区別するの?
0553デフォルトの名無しさんNGNG
>>552
その場合はファイルとして判定してくれればいいです。
単純に言うとパスの最後に\があるか否かを判定するAPIがあればいいんですが・・・
やはりパスの先頭からIsDBCSLeadByteを使って走査していき、
最後が\か否かを判定する関数を自作するしかないんでしょうか。
0554デフォルトの名無しさんNGNG
>>553
そんな君専用のようなAPIが存在するわけが無いだろう
Windowsではドライブ以外はフォルダの最後に\はつかないのが普通
0555デフォルトの名無しさんNGNG
>最後が\か否かを判定する関数を自作するしかないんでしょうか。
その部分だけなら作るのに30秒かからないが・・・
0556デフォルトの名無しさんNGNG
というかそんなチェックが本当に必要なのか?
APIに丸投げしてエラーをチェックした方がよっぽどまし。ということもありえるぞ。
0557553NGNG
リストビューにファイルパス(フォルダパスではない)を一覧していまして、
 1. リストにファイルパスを与えた場合はそのままファイルパスをリストに追加
 2.リストにフォルダパスを与えた場合はフォルダ内のファイルパスをリストに追加
とし、
 3.ファイルが存在する場合はそのまま表示
 4.ファイルが存在しない場合は追加したファイルパスを赤く表示
としたいのです。
このとき存在しないフォルダパスを与えてしまうと、4.の処理のために
この存在しないフォルダパスがリストに追加されてしまいます。
自分でやるしかないみたいですね・・
0558デフォルトの名無しさんNGNG
CRT使ってよくて MBCSなら、ch='\\'として

BOOL IsLastChar(LPCTSTR str, UINT ch)
{
 BYTE* pLast = _mbsrchr((const BYTE *)str, ch);
 return (pLast && (*_mbsinc(pLast) == '\0'));
}
0559デフォルトの名無しさんNGNG
こういうパターンは想定しないの?
c:\
\\servername\
0560デフォルトの名無しさんNGNG
>>557
>この存在しないフォルダパスがリストに追加されてしまいます。

↓この定義からすると何ら問題ない動作のような気がするんだが。
>>553>その場合はファイルとして判定してくれればいいです。
0561デフォルトの名無しさんNGNG
>>560
ファイルパスなのかフォルダパスなのか区別のしようが無い場合は
ファイルパスとして判定してくれれば良いということです。

(パス末尾に\をつけて)フォルダパスとして与えたつもりなのに
ファイルパスとして判定されるから困るのです。
0562デフォルトの名無しさんNGNG
HDDスリープさせたいんだけど、
Linuxの「hdparm -Y」と同じ働きをする関数ある?
0563デフォルトの名無しさんNGNG
>>561
>(パス末尾に\をつけて)フォルダパスとして与えたつもりなのに

フォルダパスであることがわかってるならわざわざ判定させる必要ないじゃん。
0564デフォルトの名無しさんNGNG
>>563
それをパスだけで判定できないかという話です。
0565デフォルトの名無しさんNGNG
>>563
そんなこと言ってたらPathIsRootやPathIsFileSpecやPathIsDirectoryがいらないなw
0566デフォルトの名無しさんNGNG
>>565
それは「実在するかどうか」という判断をするための物だろ。
「実在しないがフォルダパスである」とわかっているものの何を判定しろというのか。
0567デフォルトの名無しさんNGNG
>>566
C:\hoge\
↑これはフォルダパス?
0568デフォルトの名無しさんNGNG
>>567
C:\hogeというフォルダが実在すればフォルダパス。
C:\hogeというファイルが実在すればファイルパス。
ファイルもフォルダもなかったら自分で決める。
0569デフォルトの名無しさんNGNG
>>568
ではC:\にhogeというファイルを作ってPathFileExists(_T("C:\\hoge\\"))を実行するとTRUEが返ってくるはずだな
0570デフォルトの名無しさんNGNG
やってみりゃイインジャネーノ
0571デフォルトの名無しさんNGNG
漏れのパソコンではFALSEが返ってきますたがバグですか?
0572デフォルトの名無しさんNGNG
569が何を言いたいのかサッパリわからない。
0573デフォルトの名無しさんNGNG
>>568がこっそり最後の\を省いてる罠
0574デフォルトの名無しさんNGNG
>>568
C:\hogeというファイルが実在しててもファイルパスじゃねーじゃん。
0575デフォルトの名無しさんNGNG
>>574
だからどうしたとしか言いようがない。
自分でわかっている(末尾に\を付与する)なら判定させる必要ないじゃん。
0576デフォルトの名無しさんNGNG
>>575
おい、知ったか。嘘を言っておいてそれか。
0577デフォルトの名無しさんNGNG
>>576
何ですかこの粘着は。568は別にPathFileExistsの挙動について述べたわけじゃねえだろ。
0578デフォルトの名無しさんNGNG
>>575
自分では判っているから末尾に\をつけるの!
0579553NGNG
あのですね、
void run(char* path)
{
  if(isdir(path))

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

>>575
あなたもういいです。
0581デフォルトの名無しさんNGNG
>>580
GetFileAttribute?
0582デフォルトの名無しさんNGNG
...butes
0583デフォルトの名無しさんNGNG
APIじゃ無いけど、_splitpath でいいんじゃねーかと
0584デフォルトの名無しさんNGNG
>>580
>>557の仕様を実現するのにそういう機能のAPIを要求するお前のセンスに問題がある
ような気がするよ。
0585デフォルトの名無しさんNGNG
そうかなぁ。MakeSureDirectoryPathExistsは\がパスの最後にあればディレクトリだとみなすのでそんなAPIがあってもいいと思ったんだけど
0586デフォルトの名無しさんNGNG
>>581をためせよ
0587デフォルトの名無しさんNGNG
>>584
splitpathがあるんだからWin32APIに求めてもそれほど変でもあるまい。
0588デフォルトの名無しさんNGNG
>>585
MakeSureDirectoryPathExistsは「末尾に\を付与することを要求」しているだけで
「\がパスの最後にあればディレクトリだとみなす」わけじゃないだろ。
\が付いてなければ「不正な引数」と判断してるだけだ。
0589デフォルトの名無しさんNGNG
>>588
違うだろ。
末尾が\じゃ無い場合は、その前の\までのディレクトリしか作らない。
0590デフォルトの名無しさんNGNG
>>586
ログちゃんと読めよ
0591デフォルトの名無しさんNGNG
>>588
MSDN読めよ
0592デフォルトの名無しさんNGNG
頼む。今後のためにも知ったか厨は消えてくれ。
0593デフォルトの名無しさんNGNG
>>590
ほぼisdirそのものだけど
0594デフォルトの名無しさんNGNG
if (!pathというファイルが実在する) {
    if (pathというディレクトリが実在する)
        >>557の2の処理;
    else
        >>557の4の処理;
else
    >>557の1の処理;
0595デフォルトの名無しさんNGNG
>>593
今話してるのは「存在しないフォルダパス」の話だ。
0596デフォルトの名無しさんNGNG
>>595
C:\dir D
C:\dir\ D
C:\file F
C:\file\ -1
C:\notexist -1
C:\notexist\ -1
0597デフォルトの名無しさんNGNG
>>587
いや、>>557にある3つの動作(条件)を実現するのに、最初に「ディレクトリかどうか」を
判断しようとするセンスに問題があるって事だろ。
0598デフォルトの名無しさんNGNG
>>594
それだと4の処理で存在しないフォルダパスが追加されてしまう。
追加するのは「ファイルパス」。
0599デフォルトの名無しさんNGNG
>>596
存在しなくてもDになるようなAPIの話だ、ってログ読めよ!
0600594NGNG
>>598
>>553より、4の処理で必ずファイルパスとして追加するようにすればよい。
0601デフォルトの名無しさんNGNG
>>600
渡されるパスに末尾\がついてて「これはフォルダパスだ」と主張してる場合でもか
0602デフォルトの名無しさんNGNG
すでにAPIに無いのはわかっているんだから、藻前らみんなスレ違いですよ。
0603594NGNG
>>601
「実在しないフォルダパス」をどうするか仕様として与えられておりませんので(w
0604デフォルトの名無しさんNGNG
>>599
すみませんでした
0605デフォルトの名無しさんNGNG
>>603
リストにはファイルパスを表示する仕様なのでフォルダパスは表示しない。
たとえ存在しないフォルダパスだとしても。
0606デフォルトの名無しさんNGNG
実在しないパス文字列をどうやって生成するのか知らんが、「フォルダパスの末尾には必ず\が
ある」ってのがわかってるなら、フォルダかファイルかの判定は済んでいるも同然だよな?

なら
末尾に\がある→実在すれば557の2、しなければ何もしない
末尾に\がない→実在すれば557の1、しなければ557の4

でいいんじゃねえの?
なんでひとつのAPIで済ませようとするのか不思議だ。
0607デフォルトの名無しさんNGNG
>>606
>>553でマンドクセっていったけど仕方ないので自分でもう作ったといっている
0608元質問者NGNG
>>606
そういうAPIがあるなら使いたいというだけで無いなら自作するとかなり前に結論が出てます。
0609デフォルトの名無しさんNGNG
>>608
それにしても
>先頭からIsDBCSLeadByteを使って走査
ってのはやっぱりセンスねえんだなぁ・・・
0610デフォルトの名無しさんNGNG
>>609
CRT無しでもっと良い方法がありますか?
0611デフォルトの名無しさんNGNG
>>610
(末尾のバイト=='\' && !IsDBCSLeadByte(末尾の1個前))
ならフォルダパス。
なお、文字列の長さが不明の時はlstrlen APIで調べる。
0612デフォルトの名無しさんNGNG
おれに言わせりゃノーセンス
0613デフォルトの名無しさんNGNG
>>611
文字列の途中でIsDBCSLeadByteを使っちゃいかんよ
0614デフォルトの名無しさんNGNG
そもそも>557なアプリの仕様に問題があるのだ。
論点がずれてるぞ。
0615デフォルトの名無しさんNGNG
>>611
SJISの場合二バイト目でもIsDBCSLeadByteに引っかかる場合があるぞ。
"C:\最後がそういう文字な名前\" の場合誤診する。
後ろから行きたければIsDBCSLeadByteがFALSEを返すとこまで戻って
戻った字数が偶数か奇数かで判定
0616デフォルトの名無しさんNGNG
今日は知ったかぶりが多いよねえ
0617デフォルトの名無しさんNGNG
>>615
WTLの_IsDBCSTrailByteがまさにそんなコードだったと思う。
0618デフォルトの名無しさんNGNG
MultiByteToWideCharでUnicodeに変換してから末尾の文字を拾えばいいじゃん。
0619デフォルトの名無しさんNGNG
>>609=>>611?
0620デフォルトの名無しさんNGNG
>>618
本末転倒な気が・・・
0621デフォルトの名無しさんNGNG
>>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はフォルダパスである
:
:

0622デフォルトの名無しさんNGNG
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('\\'));
}
0623デフォルトの名無しさんNGNG
質問する場所ここであってるかどうか分かりませんが。。。

コンパイルの仕方が分かんないです
OSウインドウズXP使ってるんですが
とりあえずBorland C++ Compiler 5.5落としてきて
#include <stdio.h>

maim()
{
printf("TEST");
}
てファイルをメモ帳で書いてtest.cって名前で保存してみたら
一応test Cファイルって出来ました。

コマンドプロンプト
C:\Document ***>bcc32 text.c
て入力してみたんですが
'bcc32' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
とかでます。
0624デフォルトの名無しさんNGNG
あまりにすれ違いだからみんな固まってるよ。
Cスレでちょっと前に同じ話題が出てたから、そっちを見てきなさい
0625デフォルトの名無しさんNGNG
>>623
質問する場所が間違っている。
そのエラーに関する情報はWindows一般の使用法に関するものだ。
0626デフォルトの名無しさんNGNG
スマソ逝ってきます
0627デフォルトの名無しさんNGNG
>>566
PathIsFileSpecは「実在するかどうか」は関係ないわけだが
0628デフォルトの名無しさんNGNG
はー、ファイルパスとかフォルダパスとか…。
そんな単純な要求で、こんなに会議になるとは…。
ここの人達のPG能力がわかるレスだね。(;´Д`)

まさか、それで趣味じゃなくて仕事にしてるの??<PG
…まさかね。( ´∀`)アハハ
0629デフォルトの名無しさんNGNG
とりあえず質問する前にMSDNを見るのは当然のことながら回答する方もMSDNを見るべきだ。
0630デフォルトの名無しさんNGNG
このスレが物凄く情けなく見えた瞬間に立ち会えた
0631デフォルトの名無しさんNGNG
>>580
CreateFile()があるだろう
0632デフォルトの名無しさんNGNG
またログを読まない奴が一人来たか
0633631NGNG
_| ̄|○ ログ読んどけばよかった・・・・・つか違う
0634デフォルトの名無しさんNGNG
デスクトップのアイコンを詳細表示にしたいんだけど
どうしてもできません。
ListView_InsertColumnがうまくいかない・・・
誰かヒント教えれ〜 (T T
0635デフォルトの名無しさんNGNG
SubItemはどうしてるんだ?
自分で入れてるのか、それともデスクトプーが勝手に入れてくれるのか
0636デフォルトの名無しさんNGNG
末尾"\"判定のもっともAPIスレらしい答えは
CharPrev(path, path + lstrlen(path))
じゃないの
0637デフォルトの名無しさんNGNG
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()で待機中)なんですが、
これってまずいのでしょーか?
0638デフォルトの名無しさんNGNG
まずいね
0639デフォルトの名無しさんNGNG
>>637
つーかそういう場合、待機関数を別スレッドにせずに使うか?

ウィンドウハンドルを指定するとそのウィンドウを保持するプロセスに何らかのアクセスを
するとかじゃないのかな?

なんにしろ、ウィンドウを構築しているスレッドでプロセス終了を待つと
起動中はそのウィンドウが反応しなくなるんだから、別スレッドで待つべきだと思う。
0640デフォルトの名無しさんNGNG
そもそも他プロセスのハンドルをMessageBoxとかに渡していいものなの?
0641デフォルトの名無しさんNGNG
パスがディレクトリかどうか判定

・PathRemoveFileSpec にパスを食わせて、その戻り値をしらべる。

ではダメなのか?

0642デフォルトの名無しさんNGNG
「いまさら何を言っているのかね、君は。」
0643デフォルトの名無しさんNGNG
>>641
戻り値がどうなったらファイルでどうなったらフォルダなのか問い詰めたい。
0644デフォルトの名無しさんNGNG
機器でSRAMカード(ATAじゃなくて、ただのSRAMカード)をメモリとして使ってます。
WindowsでSRAMカードの内容を読みたいのですが、どうすれば良いのでしょうか?

お願いします。
0645デフォルトの名無しさんNGNG
>>644
何で読もうとしてるんだよ。
0646ところでSRAMカードってなんだ?NGNG
>>645
愚問だな。
そこにSRAMカードがあるからに決まってる。
0647デフォルトの名無しさんNGNG
>>644
リニアなメモリカードなんか普通は使わんから
ツールがその辺に転がってるわけない罠。
ADTECのCardUTとか専用のツール買え。
0648634NGNG
>>635
亀レスすまそ。
そもそもLVCOLUMN構造体の中身をどうして良いのか
わからんです。
SubItemやTextは、windowsが決めてると思うんだけど
どうやってそれを反映させるのかがわからない・・・
自分で適当に列を追加してもうまくいかない〜 (T T
0649デフォルトの名無しさんNGNG
>>648
デスクトップは普通詳細表示しないから
使いもしないSubItemはわざわざ追加してないと思うナリ
っつかまず普通のリストビューで実験してみれ
0650デフォルトの名無しさんNGNG
Windows API 版 atexit() みたいなのってないですか?
プロセス終了時に呼ばれるコードをフックしておけるみたいなやつ。
0651デフォルトの名無しさんNGNG
>>640
USERオブジェクトはウィンドウステーションとデスクトップが
同じならプロセス間共有可能であることが保証されてるから問題ない。
それがShatter系のセキュリティホールの原因にもなってるわけだが
0652644NGNG
ツールでSRAMカードを読みたいんでなく、
アプリを作りたいんですが、こういう場合にどうしてます?
0653デフォルトの名無しさんNGNG
DDKってダウソ出来ないんでしょうか?

VC++なら買ってますが。
0654デフォルトの名無しさんNGNG
リッチエディットコントロールで、
右クリックするにはどうすればいいか、おしえてぽ。
0655デフォルトの名無しさんNGNG
フェチのためのサイト
http://www.k-514.com/fe/ero.html
0656644NGNG
RAMDISK.SYSとかいうのがありますね。

でも、使い方が分からないんですが、何を調べれば分かりますか?
0657デフォルトの名無しさんNGNG
>>654
リッチエディットコントロールからマウスカーソルが外れないように気を
つけながら、マウスの右ボタンを注意深く押す。
0658デフォルトの名無しさんNGNG
RAMDISK.sysは、メインメモリからいくらか割り当てて、
それを仮想ディスクとするものですヨ
0659デフォルトの名無しさんNGNG
http://win32lab.com/tips/tips6.html

↑のようなページを見つけたんだけど、掲載されてるソースでIsDBCSLeadByteのif文て必要?
'\\'、 '/'、':' は全部ASCIIとかぶってるからいらなくない?
0660デフォルトの名無しさんNGNG
>659
Shift_JISの2Byte目の範囲を言ってみ。
0661660NGNG
ああそうか。CharNextがあるから、2byte目には当たらない、という話か。
たしかに、IsDBCSLeadByteのところは要らないネ
0662デフォルトの名無しさんNGNG
>>660
それはCharNextでスキップできるじゃん
0663662NGNG
あ、かぶった
0664デフォルトの名無しさんNGNG
>>659のページはWinamp日本語化キットの作者のページみたいなんだけど、
キット使ってる自分としてはなんか微妙な気持ちになった
0665デフォルトの名無しさんNGNG
それからDBCSネタついでにもう一つ質問。
Str系API(StrStrとか)ってDBCSを考慮してるっぽいんだけど、それが明記されたドキュメントってどっかにある?

StrStr("も", "\\")の結果で考慮してるっぽいって思っただけなんだけど・・・
0666デフォルトの名無しさんNGNG
いまさら感が拭えんけど。

>>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 ) ){
  パスはディレクトリであるという処理
 }
}

うまくいくかは知らん!
0667デフォルトの名無しさんNGNG
>>666
やってみりゃわかることだが、

   それ以上醜態を晒すのはやめとけ・・・・
0668デフォルトの名無しさんNGNG
近頃、回答者のレベルが著しく下がった気がする
0669デフォルトの名無しさんNGNG
>>652
何にも知らないならまずJEIDAのPCカード規格書でも買うべきだな。

ドライバが必要なので、DDKも必要だ。
またはドライバ/ライブラリだけ調達汁。
95系のWindows用ならフリーで見つけたが、NT系は見たことないな。
0670デフォルトの名無しさんNGNG
>>668
おまえよりはマシだけどな。
0671デフォルトの名無しさんNGNG
>>670
そういうこと書くからレベル低いって言われるんだよヽ(`Д´)ノ ウワァァァン!!!!
0672デフォルトの名無しさんNGNG
DBCS系のAPIって、日本語Windowsでは動作するけれど、英語Windowsでは動作しませんね。
それで、ShiftJIS文字列を扱う時は、いまだに昔ながらのISKANJIを使ってたりします。
でも、もしかするとDBCS系のAPIで処理する文字コードを設定するAPIってあるのかな?
0673デフォルトの名無しさんNGNG
久しぶりに香ばしくて(゚д゚) ウマーでした
0674デフォルトの名無しさんNGNG
>>646
>>645の「何で」はwhyでは無く、「what do you use」だと思う所存。
0675デフォルトの名無しさんNGNG
>>672
> DBCS系のAPIって、日本語Windowsでは動作するけれど、英語Windowsでは動作しませんね。
> それで、ShiftJIS文字列を扱う時は、いまだに昔ながらのISKANJIを使ってたりします。
そういうことをするとヨーロッパ人から余計なことをするなと言われたりする。
欧州に藻前さんのアプリを使う人は誰一人いないのかもしれんが

> でも、もしかするとDBCS系のAPIで処理する文字コードを設定するAPIってあるのかな?
たとえばIsDBCSLeadByteExやCharNextExAはコードページを指定できる。
つーかCharNextEx「A」ってどういうこっちゃ?
サロゲートの範囲はハードコードせいってこと?
0676デフォルトの名無しさんNGNG
>>672
IsDBCSLeadByteは…引数の文字がASCII(&半角カナ)か、
ASCII(&半角カナ)以外かを判断しているだけで、
APIに無ければ、自分で関数作れるような気がするが。
オレの気のせいだったか?
0677デフォルトの名無しさんNGNG
> いまだに昔ながらのISKANJIを使ってたりします。
って言ってるじゃん。で、自作ではコードページに応じて
動作を変えるなんて芸当はできないでしょ。
0678デフォルトの名無しさんNGNG
>>675
Aは機能拡張版です

・・・ということではないのかな
0679デフォルトの名無しさんNGNG
CreateWindow関数の最初の引数って、何を渡せばいいのですか?
これは何か使われたりするのですか?
0680デフォルトの名無しさんNGNG
>>679
WINCLASSで登録したクラス名
使われるかどうかは知らん
0681デフォルトの名無しさんNGNG
MSDNで検索したのですが、CWnd::InvalidateRectしか検索できませんでした(voidの戻り値でした)。
InvalidateRectは、戻り値はあるのでしょうか(VC6.0ではintらしいですが)?
ある場合はどういう値が帰ってくるのでしょうか?
0682デフォルトの名無しさんNGNG
>>681
ttp://www.microsoft.com/japan/msdn/library/ja/jpgdi/html/_win32_invalidaterect.asp
0683デフォルトの名無しさんNGNG
>>678
頼むからMSDNくらい読んでください
「Ex」が機能拡張版という意味で
「A」がANSI文字版、「W」がUnicode版という意味です。
つまりこの関数はUnicode版がないということで、
> サロゲートの範囲はハードコードせいってこと?
というレスにつながるわけです。
0684デフォルトの名無しさんNGNG
Windowsで普段ユニコードと呼んでるエンコーディングはサロゲートを含まないんじゃなかったっけ?
0685デフォルトの名無しさんNGNG
>>684
2000以降はUTF-16でサロゲートに対応してる。
0686デフォルトの名無しさんNGNG
>>683
つか、そもそも引数がTCHAR/TSTRじゃないからな。
0687654NGNG
>>657
そうゆうネタじゃなくて、まじめに教えてぽ。
ポップアップメニューが出ないのはなぜ?。
0688デフォルトの名無しさんNGNG
>>687
>>654の質問内容がどう考えてもネタだろ
0689デフォルトの名無しさんNGNG
WM_MOUSEMOVEのメッセージがきたら
ウィンドウの位置と大きさを取得したい
っつーか、
WM_NCLBUSTTONDWONでnHITTESTがHTMINBUTTONの時に
ウィンドウの位置と大きさを取得したい

そんなAPIはなんですか?
0690デフォルトの名無しさんNGNG
USB機器取り外すときに、いちいちタスクバーにマウスを持っていって
停止操作しなくちゃいけないのが面倒なので、なんとかしたいと考えています。
USB機器を取り外すにはどの辺りのAPI叩けばいいでしょうか?
0691デフォルトの名無しさんNGNG
>>689
GetWindowRectではいけない理由があるなら教えてくれ。
0692689NGNG
>>691
アプリケーションが終了した位置をiniに保存するという処理を
しています。
しかし、WM_NCLBUSTTONDWONでnHITTESTがHTMINBUTTONで
最小化し、さらにその状態で終了されたら次回にアプリを
立ち上げたときとんでもない位置にウィンドウが配置される

この問題を回避するためにいろいろ考えてるわけです
0693デフォルトの名無しさんNGNG
GetWindowPlacement
0694デフォルトの名無しさんNGNG
検索すりゃそのためのAPIがすぐ見つかるけどな
0695689NGNG
GetWindowPlecementを見たがウィンドウの状態がわかっても
使い方がわからん。確かに最小化の状態から最小化の前の
ウィンドウ位置に戻っているがどうやって使うんだ?

GetMessageを使ったとして小生はVBで使うことを想定して
質問しているからウィンドウプロシージャメッセージで受け取る
タイミングがわからんし

VBのイベントハンドラって限られてるし
すれ違いかどうかわからんが
ヒントくれ
0696デフォルトの名無しさんNGNG
>>695
VBはわからんが、
俺のプログラムでは、WM_CLOSEなどの、ウィンドウが破棄される前にGetWindowPlacementでゲットしたデータをiniに保存しておき、
WM_CREATEで、SetWindowPlacementで復元してる。
最小化の問題があるから、復元する前に WINDOWPLACEMENT.showCmd を適切に修正してる。
0697689NGNG
>>696
VCではそうするのか。参考になったよ
WINDOWPLACEMENT構造体の中に最小化であるという情報と
復元の位置が入っていると信じて使ってみるぽ

しかし、GetWindowPlacementでは日本語のくせに
WINDOWPLACEMENTからいきなり英語で解説してるからMSDNは苦手だ、、
0698デフォルトの名無しさんNGNG
VC++6.0付属のMSDNライブラリですら、MFCのほうで引けばWINDOWPLACEMENT
も日本語で説明してあったりするが。

ちなみにGetWindowPlacement/SetWindowPlacementを使うと、タスクバーが上なんか
にあったりすると見事にずれるらしい。
0699デフォルトの名無しさんNGNG
GetWindowPlacementで位置とサイズだけ保存しておいて復元にはSetWindowPosを使ってる漏れ
0700デフォルトの名無しさんNGNG
700
0701689NGNG
>>697-698
日本語解説もあったしあとは打ち込むだけぽ
感謝汁
0702デフォルトの名無しさんNGNG
BCCでリソーススクリプトを使う方法が全然分かりません。

RCファイルをを拾ってきてcppファイルと一緒にメイクしたら
以下のようなエラーが出てきて上手くいきませんでした。

Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照)

cppファイルは単独でobjファイルにコンパイルできるし、
RCファイルも単独でRESファイルにコンパイルできます。
何がいけないのか良く分からないのです。

>2の猫のC言語のサイトではマイクロソフトのやつを使ってるみたいで、
なんかよく分からないんです。
BCC系の詳しいサイトを教えて下さい。
お願いします。
0703デフォルトの名無しさんNGNG
>感謝汁
おまえがな
0704デフォルトの名無しさんNGNG
耳から感謝汁が垂れてきたという意味だろ
0705デフォルトの名無しさんNGNG
>>702
main 関数はあるのか?
WinMain なら -tW を付けてみる
0706690NGNG
USB機器を取り外すAPIに関して情報ありませんかー?
どこそこのスレで聞けとか、実現してるフリーウェアがあるよ、
などでもいいのでプリーズ。
0707デフォルトの名無しさんNGNG
CM_Request_Device_Ejectを発行しませう。
0708デフォルトの名無しさんNGNG
>705
ありがとうございます
なんか設定がおかしかったみたいです
0709690NGNG
>>707
ありがとうございます!大変参考になりました!
0710デフォルトの名無しさんNGNG
>>707
おおー、こんなのあったのか。

漏れもいちいちトレイから操作するのが面倒で、
なんとかできんかなーと思ってたところだ。

ハードウェア寄りの面倒なコーディングが必要なら、
そこまでする気にもなれんなーと思ってたんだが。
0711654NGNG
>>688
ネタじゃないってば。
やっぱり、エディットコントロールの
ポップアップメニューの出し方はわからないまま。
コピペのメニューを出したいんだけど、出ない。

とりあえず、クリップボードを使って
コピーすることにしましたが。
0712デフォルトの名無しさんNGNG
>>711
処理系をBCBかDelphiかVBにしたら?
0713デフォルトの名無しさんNGNG
>>711
っていうか、リッチエディットコントロールにそんなものないから自分で
実装しないと駄目だよ。聞くまでもない。
0714デフォルトの名無しさんNGNG
LoadImage関数の戻り値はなにになるんでしょうか?
MSDNで調べたのですが、LoadBitmap関数しか見つかりませんでした
0715デフォルトの名無しさんNGNG
いったいどこを探したんですか?
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/introductiontoresources/resourcereference/resourcefunctions/loadimage.asp
0716デフォルトの名無しさんNGNG
>>714
いつの時代のMSDN Libraryをお使いですか。

ttp://www.microsoft.com/japan/msdn/library/ja/jpwinui/html/_win32_loadimage.asp
0717デフォルトの名無しさんNGNG
>>714
char です。
0718デフォルトの名無しさんNGNG
>>714
画像ファイルを読み込みたいんなら
戻り値は単にHBITMAPにキャストすればいい
0719デフォルトの名無しさんNGNG
turb C++でCを使ってプログラミングもどきをしているものです。
MIDIや、WAVのファイルが再生できるDLLやヘッダー無いですか?
あちらこちらのサンプルコード使ってみたり、ぐぐってみたりしたけど見つかりません。
教えてください。
0720デフォルトの名無しさんNGNG
本当に探したのかと問いたい。問い詰めたい。小一時間問い詰めたい。
おまえただ「ぐぐってみた」って言いたいだけちゃうんか、と。
0721デフォルトの名無しさんNGNG
>>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
0722デフォルトの名無しさんNGNG
7ラタ
0723デフォルトの名無しさんNGNG
コマンドプロンプトから起動されたWinMainで始まるアプリが、
コマンドプロンプトの標準出力に出力する方法ってあります?
0724デフォルトの名無しさんNGNG
>>723
無理だと思われ
0725デフォルトの名無しさんNGNG
CreateWindowの最後の引数は、NULL固定ですよね?
将来的に使われるかもしれないってことですよね
0726723NGNG
>>724
そうですか。残念…。
お答えありがとうございました。

>>725
ttp://www.microsoft.com/JAPAN/developer/library/jpuipf/_win32_createwindow.htm
CreateWindowでぐぐると最初にひっかかりますよ
0727デフォルトの名無しさんNGNG
ShowWindowの戻り値について質問なんですが、

ウィンドウが以前から表示されていた場合は、0 以外の値が返ります。

ウィンドウが以前は非表示だった場合は、0 が返ります。

とあるのですが、ウィンドウが以前から表示されていた場合とは、どんな場合なんでしょうか?
0728デフォルトの名無しさんNGNG
ShowWindow(hWnd, SW_SHOW);
ShowWindow(hWnd, SW_HIDE);
0729デフォルトの名無しさんNGNG
WS_VISIBLEスタイル(ry
0730デフォルトの名無しさんNGNG
>>725
WM_CREATEでLPARAMをLPCREATESTRUCTにキャストして->lpCreateParamsで使うユーザ定義の引数
用途はキミ次第
0731ケンNGNG
ディスプレイに画像を表示しないで、色の情報を
取得することはできますか?
たとえば、あるbitmapの上から10ポイント、左から30ポイント
の位置の色の情報を取得したいのですが・・・
ディスプレイから取得しない方法を教えていただきたいのですが・・・
0732デフォルトの名無しさんNGNG
Bitmapリソースなら、CompatibleDC使えばいい。
Bitmapファイルなら、自分で解析しろ。
0733ケンNGNG
>732

>Bitmapファイルなら、自分で解析しろ。
まんどくそい。
API一発でなんとかならないですか?
0734デフォルトの名無しさんNGNG
>>733
LoadImageで読んでSelectObject→GetPixel、ただし画面の色数に影響されるかも
0735デフォルトの名無しさんNGNG
解析するしかない。
CreateDIBitmap BITMAPINFOHEADER あたりでググれば
わかるかもね。

ひょっとして>>733はフィッシャーマンだった?
0736デフォルトの名無しさんNGNG
>>734
LoadImageはリソースしか読めん。
出直してまいれ。
0737デフォルトの名無しさんNGNG
えっと…。

キャラクタベースの文字列とか文字表示APIってどんな名前ですか?
win32 コンソールアプリで使いたいんです。具体的には色表示したり
したいんです。

エスケープシーケンス使えと言われそうですが、NT/2000/XP の
コマンドプロランプとではサポートしていないのです
0738737NGNG
× コマンドプロランプとではサポートしていないのです
○ コマンドプロンプトではサポートしていないのです
0739デフォルトの名無しさんNGNG
>>737
2000などでもエスケープシーケンスなら使えるっちゅうに。
まあ、それだけではなんだから、「猫でもわかる」でぐぐりれ。
0740デフォルトの名無しさんNGNG
>>737 MSDNライブラリの目次から[Windows 開発]-[Windows ベース サービス]-[ファイルおよび入出力]-[SDK DQメント]-[ファイル入出力]-[コンソール]を見れ
0741デフォルトの名無しさんNGNG
>>736 LR_LOADFROMFILEは?
0742名無し@沢村NGNG
>>736 ( ´_ゝ`)フーン 
0743デフォルトの名無しさんNGNG
>>737
しょうがない、マジレスしてやるか。

printf("<COLOR=0xFF0000>Hello world</COLOR>\n");

で色が変わる。
あ、そうそう、
#include <html.h>
忘れるなよ。
0744デフォルトの名無しさんNGNG
>>733

BMPをAPIでDIBSectionなどに読み込むと、デバイスコンテキストの属性の影響を受ける可能性があるから、自分で解析したほうが確実だよ。
横幅が4の倍数ピクセルの24bitBMPなら、そんなに難しくはない。

BITMAPFILEHEADER内(+10バイト)にあるRGBデータの先頭アドレスにx*3+y*横幅*3を加えれば、(x,y)のRGB(バイトイメージではBGR)のデータを得られる。ただし、デフォルトの座標系はGDIとは上下逆だから要注意。
横幅や高さなどはBITMAPINFOHEADER内にあるから、そこを読めばよい。
0745デフォルトの名無しさんNGNG
>>733
その程度の大した作業でないことすら面倒くさいのか?
適正無いから早めに身を引いた方が楽だよ
0746デフォルトの名無しさんNGNG
>>745
もしもAPI一発呼び出すだけで色が取れたら?
ビットマップファイルを解析するなんて時間の無駄だよね?

下調べせずに無駄なコードばっかり書いて納期を守れない>>745が
邪魔で仕方ない。
はよこの業界から去れや。
0747_NGNG
http://homepage.mac.com/hiroyuki44/jaz09.html
0748デフォルトの名無しさんNGNG
>>745-746
醜いですよ
0749デフォルトの名無しさんNGNG
>>746
素人が業界語るなよ
0750デフォルトの名無しさんNGNG
>>749
プロの無職が業界語るなよ(w
0751デフォルトの名無しさんNGNG
>>ナナハン

ワラタ
0752デフォルトの名無しさんNGNG
>>751=>>745が知能障害を起こして誤魔化そうとしていらっしゃいます。
0753751NGNG
しかし、情報隠蔽が『アフォのふりをすること』ってのが
わかってない昨今のバカガキにうんざりってとこは確かにある。
0754デフォルトの名無しさんNGNG
業界なんか語りたがるのはいつだって素人だ
0755デフォルトの名無しさんNGNG
>>746
納期を守れない奴はアホの馬鹿だが邪魔でも迷惑でも無いが、
2chで下調べするようはアホの馬鹿は邪魔で迷惑だから去ってくれよ。

ビットマップファイルの特定座標(ピクセルではなくポイント!!)の色を取得するなんていう応用性のかけらも無いAPIが存在するわけ無いだろ。
0756デフォルトの名無しさんNGNG
>>736
LoadImage(NULL, pathAndName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
0757デフォルトの名無しさんNGNG
>>755
日本語が不自由な人は日本から去って韓国に去ってくれ。
0758デフォルトの名無しさんNGNG
>>757は感感俺俺
0759デフォルトの名無しさんNGNG
>>757
この日本語も怪しいと思いますが
0760デフォルトの名無しさんNGNG
ワラタ
0761デフォルトの名無しさんNGNG
>>753
痛い
0762デフォルトの名無しさんNGNG
>>746
だったら、その一発呼び出すだけで色が取れるというAPIを提示してみせろよ。
それができたらお前が正しいと認めてやるよ(w
但し納期に間に合うように見つけてこいよな
納期は7/22 の正午まで待ってやる
0763デフォルトの名無しさんNGNG
猫でもわかるプログラミング
とやらで勉強しようと始めたんですけど
正直意味不明、これで十分分かり易いのでしょうか?
サンプルも実行できないし…
0764デフォルトの名無しさんNGNG
>>763
ある程度わかってる人がみる所だとおもうが。
0765デフォルトの名無しさんNGNG
>>762
よーく読め。

まず、DIBファイルの解析がめんどいというレス。>>733

これに対して、めんどいなら業界を辞めろというレス。>>745

更にそのレスに対して、とにかく調べて無駄な事はしないべきだというレス。>>746


めんどくさがって如何にして簡単に仕上げるかってのもプログラマの適正であって、
簡単だろうが何だろうが車輪の再発明やる奴はダメだという話だよね。
>もしもAPI一発呼び出すだけで色が取れたら?  
と言ってるのは、そんな簡単なの書けよって意見に反対するための例だよね。
”もしも”って書いてるだろ、もしも既にあるのなら作り直すのは無駄だよね、と言ってる。

もしこうなら、って話の趣旨からズレた部分に対してツッコミを入れるというか
ナンクセ付ける>>762に乾杯♪

さぁ、君の論点ずらしも見破られたワケだが。
反省文なら7/22の朝まで待ってやる。
0766デフォルトの名無しさんNGNG
質問しまん。

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);
0767デフォルトの名無しさんNGNG
どっかにテンプレなかったっけ?
ありえない仮定を持ち出す・・・とかいう奴。

しかも
> 下調べせずに無駄なコードばっかり書いて納期を守れない>>745が邪魔で仕方ない。

納期を守れない根拠もないし、無いとわかっているAPIを自分でコーディングするのは無駄でもない。
質問者として回答者を侮辱するのはどうかと思うよ。

しかもむしろ探し回る時間が無駄。
実際、733がこのスレで聞いて無駄に消費した時間があれば自分で書いたほうがましなのは言うまでも無い。
0768デフォルトの名無しさんNGNG
有りもしないAPIを探すより、そんな簡単なモノは自分でさっさと作ってしまった方が早いのだが。
少なくとも相当な馬鹿でない限りは、最初の質問をした時点から今の時間まででの間に、
余裕で目的を達成している。
0769デフォルトの名無しさんNGNG
要するに自分でAPIを探す能力もなければ、目的物を作成する能力もない
それを指摘されて逆ギレ
プログラムどころかどの業界にも向いていない
0770デフォルトの名無しさんNGNG
そんなAPIがあるわけないとわからない人は(プログラムを作るのは)難しい。
0771名無し@沢村NGNG
>>769
人工無能にはなれるんじゃないか。
0772デフォルトの名無しさんNGNG
つーか、ファイル読んでDIB構造体をメモリに作るコードは、
Webにいくつでも転がっている。
それをコピペで(w
0773デフォルトの名無しさんNGNG
最も優秀な方法>>772
0774デフォルトの名無しさんNGNG
>>766
誰にも相手にされず少しかわいそうなので答えるが。


   ま っ た く 質 問 の 意 味 が わ か ら な い 。


国選エスパーを雇うか一般人にもわかる言葉で聞いてくれ。
0775名無し@沢村NGNG
>>766
おまいはUNICODEビルドで開発してるんだろ。
だからGetWindowsText()で取得した文字列はchar型ではなく
wchar_t型の文字列なんだよ。
0776デフォルトの名無しさんNGNG
エスパー
0777デフォルトの名無しさんNGNG
あんまプログラマの適正がどうだとか(他には英語が読めないだろ、学歴無いだろなど)書かないで欲しいよ。
無駄なやり取り増えるから。
0778デフォルトの名無しさんNGNG
>>775

それにしては、
CreateWindowEx(..., "EDIT"...) が UNICODE になってないようだ。
なぞがなぞを呼ぶ・・・
0779デフォルトの名無しさんNGNG
Cスタイルの文字列を==演算子で比較していたに35カノッサ
0780デフォルトの名無しさんNGNG
>>779
なんか問題ある?
0781デフォルトの名無しさんNGNG
>>781
問題しかないが。
0782デフォルトの名無しさんNGNG
>>781
0783デフォルトの名無しさんNGNG

781 名前:デフォルトの名無しさん :03/07/22 03:21
>>781
問題しかないが。
0784デフォルトの名無しさんNGNG
夏だなぁ・・・・・
0785デフォルトの名無しさんNGNG
質問です。
一度値の入った DDL のグローバル変数、およびグローバルな static 変数は、
どの時点で無効になりますか。
0786785NGNG
念のために言っておきますが
DDLとはData Definition Laguageのことです。
Domain Definition Languageや
Dynamic Declaration Languageでは
ありません。
0787デフォルトの名無しさんNGNG
教えて頂きたいのですが、>>785はWin32APIと関係があるのでしょうか?
0788デフォルトの名無しさんNGNG
/////////////////////////////////////////////////


    「夏厨が大量に沸いています」

したがってこのスレは8月いっぱい休止致します。
皆さんまた9月にお会いしましょう。


                    See you again

/////////////////////////////////////////////////
0789デフォルトの名無しさんNGNG
さようなら、788さん(だけ)…
0790デフォルトの名無しさんNGNG
教えて頂きたいのですが、>>787って知障ですか?
0791デフォルトの名無しさんNGNG
こいつら迷惑メール業者です
懲らしめて下さい

[email protected]
[email protected]
[email protected]
[email protected]

0792デフォルトの名無しさんNGNG
785が暴れとる・・・
0793デフォルトの名無しさんNGNG
>>790
教えてあげよう。
知障なのはお前だ!
差別用語使うな。ヴォケ
0794デフォルトの名無しさんNGNG
本当に 私のお願いを 全部叶えてくれた  先生を紹介します。
こんな 凄い人がいるのに 知らないで 悩んでる人が いると

思うと  いてもたっても いられなくて!!

是非 相談してみて ADは http://ainenjyukai.hp.infoseek.co.jp/ です


すごいでしょーーー!
0795デフォルトの名無しさんNGNG
すげー(゚σ ゚)ホジホジ
0796デフォルトの名無しさんNGNG
すげー(゚σ ゚)ホジホジ


0797デフォルトの名無しさんNGNG
すげー(゚σ ゚)ホジホジ 1


0798デフォルトの名無しさんNGNG
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ




0799デフォルトの名無しさんNGNG
すげー(゚σ ゚)ホジホジ


すげー(゚σ ゚)ホジホジ


すげー(゚σ ゚)ホジホジ


0800デフォルトの名無しさんNGNG
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ






0801デフォルトの名無しさんNGNG
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ
すげー(゚σ ゚)ホジホジ



0802 NGNG
質問です〜。

ShowHtmlDialog(Ex) で frameset 使ったページを表示すると、
A タグの target属性を初めとして、兄弟フレームへのアクセスが
一切できないのは仕様ですか?
0803デフォルトの名無しさんNGNG
>>787
ワラタ
0804デフォルトの名無しさんNGNG
誰も785に回答しようとしないね。意地悪だね。
0805デフォルトの名無しさんNGNG
>>804
マジレスすると、Win32APIの質問じゃないから。
Win32APIとどう関係があるのか教えてくれたら回答してあげる。
0806デフォルトの名無しさんNGNG
>>805
そう思っているのはあなただけみたいですよ?
0807デフォルトの名無しさんNGNG
>>806
DDLってSQLで使う奴って事くらいしか知らないのですが、
Win32API(=Windowsのシステムコール)とどのような関係があるのか
良ければ教えてもらえますか?

あー、煽りじゃなくて、私はDDLを知らないので勉強の為に。
0808デフォルトの名無しさんNGNG
>>788,>>790,>>803がアホってこと?
0809785NGNG
すいません DLL の間違いです。
Win32API とはちょっと範疇外れるけど
Windows でのプログラミングということでお聞きしたかったんですが・・・

static やめました☆
0810デフォルトの名無しさんNGNG
釣りの相手はやめましょう。
0811デフォルトの名無しさんNGNG
>>808
釣られた787がアホってこと
0812デフォルトの名無しさんNGNG
>>811
なるほど!
0813デフォルトの名無しさんNGNG
要するに785!=786で、786は釣り師ってことか。
0814デフォルトの名無しさんNGNG
もう何が何やら・・・
0815デフォルトの名無しさんNGNG
LoadImage関数で、ビットマップの(100,100)から(200,200)を読み込ませる方法はありますか?
0816 NGNG

IPアドレス 218.123.72.69
ホスト名 YahooBB218123072069.bbtec.net
0817デフォルトの名無しさんNGNG
>>815
LoadImageのどこにそんなパラメータがありますか?(ピュア
0818デフォルトの名無しさんNGNG
>>817
0,0のやり方しか見たことないから、こういう場合はどうするのかなと思いまして
0819デフォルトの名無しさんNGNG
LoadImageした後に必要な部分を切り出す。
0820デフォルトの名無しさんNGNG
>>793
差別用語使うな。ヴォケ
0821デフォルトの名無しさんNGNG
WindowsでCOMを使ったマルチスレッドのプログラミングをしているうちに、

・スレッドとウィンドウ(メッセージキュー)の関係
・ワーカースレッドと、UIスレッド
・モーダルダイアログとスレッド
・メッセージループとスレッド

とかの関係が良く分からなくなってしまいました・・・。

ここら辺のトピックについて、解説しているサイト、書籍などはありませんでしょうか?
0822デフォルトの名無しさんNGNG
>>821
さらに
・COMオブジェクトとスレッド
に重要な関係があったような気がするのでそこも調べてみた方がいいと思う。

・・・詳しいサイトは知らん、ごめんよ。
0823デフォルトの名無しさんNGNG
gethostname()でFQDN形式で取得できるの。
またそれはどこから取得するの?
0824デフォルトの名無しさんNGNG
>>822
アパートの事?

すみません、COMってWin32APIの範疇に(ry
0825821NGNG
コメントありがとうございます。 822、824さま

もちろん、アパートも問題なのですが、アパートについて調べるうちに、
そもそも、「自分は、スレッドとウィンドウの関係が分かっていない!」
ということに気づいたのです。

ウィンドウは、特定のスレッドの配下にいるらしいということは分かったのですが、
いかんせん複雑怪奇なWin32故、知識の整理ができません。
それで、ここらへんについて、説明をしているサイトや書籍を探している次第です。
0826デフォルトの名無しさんNGNG
>>820
「知的障害者」「知障」が差別用語だとすると、正しくはなんて呼べばいいのでしょうか?
0827デフォルトの名無しさんNGNG
知恵遅れ
0828デフォルトの名無しさんNGNG
厨
0829デフォルトの名無しさんNGNG
>>826
「様」をつけろ
0830デフォルトの名無しさんNGNG
>>829
知的障害様者
0831デフォルトの名無しさんNGNG
>>821様
0832デフォルトの名無しさんNGNG
>>821,825
>ウィンドウは、特定のスレッドの配下にいるらしいということは分かったのですが、
ここでかなーり勘違いしてるっぽい。
#オレも昔はそんな風に勘違いしてた
きちんと解説しているサイトや書籍は知らないが…

まずはみっちりシングルスレッドの普通のWin32アプリについて勉強すること!
メッセージループってのは要するに「GetMessageしてDispatchMessage」
を延々と繰り返してるだけなんだが、この二つの関数が何をやってるのか
把握しさえすればなんとかなる。分かってしまえば「なーんだ」って感じ。
0833デフォルトの名無しさんNGNG
>>832
「TranslateMessage」は何でふか?
0834デフォルトの名無しさんNGNG
飾りだよ
0835デフォルトの名無しさんNGNG
かざりじゃないのよ涙は…
0836デフォルトの名無しさんNGNG
某サイトのリソーススクリプトを使ってビットマップを表示するサンプルを試したいのですが
画像が表示されません

リソーススクリプトの組み込みって具体的にどうやるんでしょうか?

使ってるのはMicrosoft Visual C++ 6.0です
0837デフォルトの名無しさんNGNG
>>832
どう勘違いなんだ?
ウィンドウは作成したスレッドに属していると思うが。
0838821NGNG
特に分からないのが、
同一のスレッドにモーダルウィンドウがあるときの動作です。
モーダルウィンドウを出すと、親ウィンドウのメッセージプロシージャは実行されない?
メッセージボックスでは???
0839デフォルトの名無しさんNGNG
親WindowがDoModal関数を呼んだら、そのモーダルウィンドウが閉じられるまで
制御は戻らないよね?
0840デフォルトの名無しさんNGNG
832 の言う通りか。
スレッド以前にイベントドリブンを勉強したほうが良いな。
0841デフォルトの名無しさんNGNG
>833
>「TranslateMessage」は何でふか?

キーボートからの入力をキーボードの状態に応じて(WM_CHAR用に)変換するだけ。
メッセージを利用してキーボードの入力を処理しなければ関係ない。
0842デフォルトの名無しさんNGNG
PostThreadMessageわ〜?
0843デフォルトの名無しさんNGNG
ウインドウの右上にある最大化ボタンを押して最大化したあと
もう1度押すと最大化が解除されますよね?
このときに再描画の処理を行いたいのですが、どんなメッセージが送られて
きているのでしょうか?
WM_PAINTもWM_GETMINMAXINFOも飛んできません。
0844843NGNG
失礼しました。OSはWindows2000です。
0845デフォルトの名無しさんNGNG
WM_SIZEじゃねーの?
0846843NGNG
>>848
それが来ないんですよ。。。
0847デフォルトの名無しさんNGNG
↓責任重大
0848デフォルトの名無しさんNGNG
>>846
ちゃんとSpy++で確認した?
今OpenJaneで試してみたけど、ちゃんとWM_SIZE飛んできてたよ。
0849デフォルトの名無しさんNGNG
無限ループに陥った
0850845NGNG
>>846
VC付属ツールのSPY++使って、
メッセージ拾ってみるとかしてみそ?
0851デフォルトの名無しさんNGNG
>>843
WM_SHOWWINDOWにSW_OTHERUNNZOOMが乗っかってくる。
0852デフォルトの名無しさんNGNG
特定のレジストリキーに入ってる値とタイトル?を取得するために
RegEnumValueを使いたいのですが…MSDNを見てもよくわかりません(TT
んで,いろいろやってみたのですがうまくいかないのです…

どなたかデーターの値とタイトルを列挙するサンプルあげてくれませぬか…
おねがいいたします
0853デフォルトの名無しさんNGNG
>>852
誰かとかぶるかもしれないが、、
ググりなさい。

http://www.google.com/search?hl=ja&inlang=ja&ie=Shift_JIS&q=RegEnumValue+Declare&lr=lang_ja
0854デフォルトの名無しさんNGNG
>>852
つか、MSDN読んでもワカランのなら適性無いから転職しろ。
0855デフォルトの名無しさんNGNG
ビットマップ画像ファイル(またはicoファイル)を読み込んで
アイコンハンドルを取得する関数ってありますか?
または、サンプルソースがある場所を教えていただければ幸いです
よろしくお願いします

0856デフォルトの名無しさんNGNG
>>854
ごめんなさい,学生なんです(TT
0857直リンNGNG
http://homepage.mac.com/maki170001/
0858デフォルトの名無しさんNGNG
また適正厨かよ・・・
0859デフォルトの名無しさんNGNG
CreateThread で取得したハンドルは CloseHandle で閉じるんだよね?
0860デフォルトの名無しさんNGNG
>>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=
0861デフォルトの名無しさんNGNG
MsgWaitForMultipleObjectsって
WaitForMultipleObjectsと同じように待って、
その間にメッセージがきたら
WndProcを呼んでメッセージを処理してくれる関数なの?
0862デフォルトの名無しさんNGNG
>>855
CreateIcon()
CreateIconIndirect()
CreateIconFromResource()
などを検索。
ビットマップのバイナリデータを扱えないと難しいね。

0863デフォルトの名無しさんNGNG
>>861
メッセージが来た時の対応はPeekMessageと同じ。
IsDialogMessageしてTranslateAcceleratorして
TranslateMessage通してDispatchMessageしてやらなくちゃだめぽ
0864832NGNG
>>837-840
う!?ああそうか、そう読むと832の段階では早とちりだった。
「各ウィンドウが個別のスレッドに属している」と>>821氏が
勘違いしていると思ったのだが、やっぱりそうであったか。

VisualC++使ってるなら
DispatchMessageの呼び出しとWindowProcの先頭、
DoModalの呼び出しの直前と直後あたりにブレークポイントを
置いてデバッガ上で動かしてみて、
コールスタック(呼び出し履歴)を見てみると面白いかも。
0865デフォルトの名無しさんNGNG
一つのスレッドに一つ以上のウィンドウが属している、であってますか?
0866デフォルトの名無しさんNGNG
他ウィンドウに対してキー情報を送る場合、
SendMessage(PostMessage)でWM_KEYDOWN、WM_CHARを使う
SendInput(keybd_event)を使う
これ以外の方法はありますか?
0867デフォルトの名無しさんNGNG
外部物理デバイスに、「キーを押せ」と指令を出す
0868デフォルトの名無しさんNGNG
>>866
漏れならキーが押されたときに発生するメッセージを直接送信する。

PostMessage(l_hDialog, WM_COMMAND, MAKELONG(GetDlgCtrlID(l_hButton), BN_CLICKED), l_hButton);
0869デフォルトの名無しさんNGNG
開店セール見に来てーーーーーーーーーー!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エクスプレス
0870デフォルトの名無しさんNGNG
>>866
keybd_event()
0871デフォルトの名無しさんNGNG
>>868
MAKEWPARAM
(LPARAM)
0872デフォルトの名無しさんNGNG
助けて!waveInResetがフリーズする!

音声認識処理を組み込んだActiveXコントロールを作ってるけど、
ウェーブフォームオーディオ入力デバイスを閉じようとすると
フリーズしちゃう!

waveInStop→waveInReset→waveInUnPrepareHeader→waveInClose
の順で閉じてるけど、waveInStopは0を返してる。それまでの
Openとかは問題なし。

ぐぐってみたけど、こんな症例はどこにもない。
だれか助けて!お願い!
0873832NGNG
>>865
あってる。大抵のプログラムでは全てのウィンドウが
メインスレッドに属してる。
「属する」って言い方もナンだが、そのスレッドのメッセージループの
配下で各ウィンドウのウィンドウプロシージャが動いてる。
0874デフォルトの名無しさんNGNG
>>871
添削ありがとう。
そんな小洒落たAPIがあったんだね。
今後はそっちを使わせてもらうよ。
0875デフォルトの名無しさんNGNG
>>874
MAKELPARAM,MAKEWPARAMは単なるマクロです
0876デフォルトの名無しさんNGNG
>>875
ありがとう。
ここはソフト開発の本質が学べるね。

まー、細かいことをいうなら>>868のコードは実際にはPascalなので
マクロでもAPIでもなくDelphiの単なるライブラリ関数なわけだが。
0877 NGNG
>>873
属するっていう言い方で良いんじゃない?実際に各ウィンドウは、
Create されたスレッドに属していて、

・そのウィンドウに関するメッセージは、そのウィンドウが属するスレッドの
 メッセージキューに加えられる。
・別のスレッドからSendMessage されると、スレッド間通信が行われて、
 WindowProc はウィンドウが属するスレッドで実行される。

てな動作になります。

後者のようなスレッド間通信は、COM コンポーネントがアパートを超えて
メソッド呼び出しされる場合なんかにも使われる仕組みです。

面白いのは、こうしたスレッド間呼び出しで呼び出し元スレッドがブロック
している間にも、他スレッドからの呼び出しには応じられるということ。
STA の COM コンポーネント A, B があって、 A が B->hoge() を呼び出して
一見ブロックしていても、その間に B からの A->hage() なんかにはちゃんと
応じてくれます。

面白くないのは COM のスレッド間通信でタイムアウトを明示する簡単な方法
が無さそうなこと。。。
0878デフォルトの名無しさんNGNG
別スレッドのウインドウに親子関係を持たせると、
不安定になってなかなか楽しい
とくに標準コントロールの部類
0879まことNGNG
プログラム2:10進数の整数の桁数を表示する
0880デフォルトの名無しさんNGNG
>>879
APIとの関係を200字以内で記せ
0881デフォルトの名無しさんNGNG
>>872
CALLBACK をどうやってるかが気になるが。
CALLBACK_FUNCTION で waveInOpen を呼び出していて、
callback 関数の中でデッドロックしてるとかじゃないよね?
0882デフォルトの名無しさんNGNG
もしかしたら、C++スレかもしれませんがそうだった場合ごめんなさい

SECURITY_ATTRIBUTES構造体って使っていますか?
もし使っているならば、どういうときに使っていますか?
0883デフォルトの名無しさんNGNG
>>875
関数だけがAPIではない。
マクロだって立派なAPI
0884デフォルトの名無しさんNGNG
>>882
サービスとログオンユーザーでカーネルオブジェクトを共有する必要があるときとか
0885デフォルトの名無しさんNGNG
こんなサイトあるよ♪

http://www2.free-city.net/home/angelers/page008.html
0886872NGNG
>881
CALLBACK関数waveInProcではWIM_OPEN,WIM_CLOSE,WIM_DATAの
切り分けをして、OnWimData(もともと単体動作のものを流用)
を呼び出しているだけです。
呼び出しも、グローバルでCOleControlのポインタを持たせて
おいて->OnWimOpenを実行するだけで、デッドロックするよう
な要素が見当たりません。(><)
0887デフォルトの名無しさんNGNG
あー俺 waveInStop って使ったこと無かった。
終了時は waveInReset しか呼んでないよ。
0888デフォルトの名無しさんNGNG
>>882
インストーラから呼び出すDLLで一部のファイルを制限ユーザでも更新させるために、
ファイルのパーミッションを変更したいとか、
レジストリの一部のキーを制限ユーザで更新させたいとか。

とにかく既存のアプリを無理やり XP ロゴに適用させようと悪さする時かな(w
0889デフォルトの名無しさんNGNG
質問させていただきます。

エディットボックスを任意に「無効」にしたいのですが、EM_の中にそれらしきものが発見できません
EM_SETREADONLYをとりあえず使っているのですが、
フォーカスをあわせられるのがちょっと困り者です
「無効」にするメッセージはないでしょうか?
0890デフォルトの名無しさんNGNG
EnableWindow
0891デフォルトの名無しさんNGNG
EnableWindow() は目的と違う?
0892デフォルトの名無しさんNGNG
(゚д゚) EM_メッセージを使うという先入観に捕らわれてました

灯台下暗し。ありがとうございました
0893デフォルトの名無しさんNGNG
こんにちは。質問があります。

すでに画面上に表示されているフォームがあるのですが、
固定サイズになっていてサイズ変更や最大化が出来ない状態です。
これを可能にするにはどうしたらよいのでしょうか?

ちなみに左上のコントロールボックスの「サイズ変更」と「最大化」は
共にグレーアウトされています。
0894デフォルトの名無しさんNGNG
>>893
開発環境を書こう。
つーか、たぶんそこはかとなくスレ違い。
0895デフォルトの名無しさんNGNG
>>893
hWndを取得して、ウインドウのモードを書き換えてしまえばOKだと思われる
hWndを取得する方法としては、
タイトルバーの文字で一致を探すとか、対象座標で一番上にあるウインドウのhWndをとるとか
色々ある
0896デフォルトの名無しさんNGNG
>>893
開発環境はVCもしくはVBです。
APIで変更できた記憶があったのでこちらで質問しました。
0897デフォルトの名無しさんNGNG
>>895
ハンドルは取得できています。
その後のウィンドウのモードを書き換えるにはどうしたらよいのでしょうか?
0898デフォルトの名無しさんNGNG
>>897
SetWindowLongだな

>いくつかの種類のデータはキャッシュされていて、
>SetWindowLong 関数で変更されたそのデータは SetWindowPos 関数が
>呼び出されるまで反映されません。
>特に、データの変更によってウィンドウフレームのスタイルが変更される場合には、
>SWP_FRAMECHANGED フラグを指定して SetWindowPos 関数を呼び出して、
>キャッシュを更新しなければなりません。
>転載元 ttp://yokohama.cool.ne.jp/chokuto/urawaza/api/SetWindowLong.html

これに注意しる
0899デフォルトの名無しさんNGNG
>>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)

以上のようなコードを実行するとウィンドウそのものが消えてしまいました。
タスクバーにはアイコンが残っていますがコンテキストメニューは出ません。
ただ実行はされているようです。
間違っている点があったら指摘していただけますでしょうか。
0900デフォルトの名無しさんNGNG
>>899
> 間違っている点があったら指摘していただけますでしょうか。
嫌だね。
0901デフォルトの名無しさんNGNG
>>900
了解しました。
いろいろ教えてくださってありがとうございました。
0902デフォルトの名無しさんNGNG
>>899
GetしてからちょこっといじってSetせよ
0903デフォルトの名無しさんNGNG
>>899
元のスタイルを考慮しなければそうなるだろ
0904デフォルトの名無しさんNGNG
SetWindowPosのフラグも何個か足りないような
0905デフォルトの名無しさんNGNG
getしたウィンドウスタイルに新たに追加する場合には or 演算子を使いますが
あるスタイルだけ削除したり、あるスタイルが適用されているかどうかを
判断するにはどうしたらよいのでしょうか?
0906デフォルトの名無しさんNGNG
判定:if(style&&WS_FOO)
削除:style&&~WS_FOO
0907デフォルトの名無しさんNGNG
何故&二回・・・
0908デフォルトの名無しさんNGNG
&でescapeする言語なの加奈?
0909デフォルトの名無しさんNGNG
ここからは>>906の使っている言語を当てるスレになりました
0910デフォルトの名無しさんNGNG
>>906
判定 (style and WS_FOO) > 0
削除 style = style not WS_FOO
ということでしょうか?
0911デフォルトの名無しさんNGNG
>style = style not WS_FOO
なんすかそれ。notて二項演算子?
style = style and not WS_FOO
0912デフォルトの名無しさんNGNG
判定後なら xor でもよし
0913デフォルトの名無しさんNGNG
>>911
C++のキーワード一覧みてみ。
0914デフォルトの名無しさんNGNG
EXEファイルの最後に別データを埋め込んで取り出す、という
自己解凍書庫のようなことをやりたいのですが
WindowsのEXEファイルのファイルサイズ(EXE部分)を取得するにはどうすれば良いでしょうか?
取得しないとデータの取り出しが出来ないので(汗

DOSであれば
02〜03H 最後のページに入っているバイト数
04〜05H 512バイト単位のファイルの大きさ(ヘッダも含む)。
らしいのですが、Windows上で動く32bitEXEの場合
常に同じ値になってしまいファイルサイズが取得出来ません。

ちなみにWin32コンソールアプリケーションで作成しています。
0915名無し@沢村NGNG
おまいらよ、WinAPIでTVウェアをつくってみないか?

http://pc2.2ch.net/test/read.cgi/tech/1059262203/l50
0916デフォルトの名無しさんNGNG
>>914
リソースに突っ込んじまえば?
0917デフォルトの名無しさんNGNG
>>914
検索したらPEファイルのフォーマットが見つかったけど・・・
けっこう面倒っぽいです。
http://msdn.microsoft.com/msdnmag/issues/02/02/PE/http://msdn.microsoft.com/msdnmag/issues/02/02/PE/
0918917NGNG
うがーURL貼り付け失敗
http://msdn.microsoft.com/msdnmag/issues/02/02/PE/
0919デフォルトの名無しさんNGNG
そういうプログラムはウィルスとみなされる昨今。
0920デフォルトの名無しさんNGNG
HSPはウィルスか?
詳しく知らんがアレも似たようなことしてそうだけど
0921デフォルトの名無しさんNGNG
>>914
データ部にヘッダか何かつけて、それで判別ってのはダメ?
0922デフォルトの名無しさんNGNG
現在特殊な用紙に印刷をしています(プリンタの設定で新しく定義した用紙)
で、その新しい名称と番号は別々にAPIで取得できるんだけど、その両者を結びつけてコンボなりリストなりから選択できるようにしたいんですが・・・
現在は定義した用紙の登録前後で定義の番号を取得し、その前後で違うのがあれば、それをINIファイルに書き込むようにしています。
↓
登録前 登録後
12   12
22   22
     33
で、調べたあとで33をINIファイに書き込んで使用

さて・・・出来るんだろうか・・・
VB6 & Win2000です


0923デフォルトの名無しさんNGNG
何が聞きたいのかわからん。
0924922NGNG
要はAPIで現在登録してある用紙を取得設定できませんか?って事です
説明下手でごめんなさい(__)
0925無料動画直リンNGNG
http://homepage.mac.com/miku24/
0926デフォルトの名無しさんNGNG
普通にDeviceCapabilitiesで列挙できるけど。
0927名無しNGNG
>>920
HSPはデータにヘッダみたいのがついてたからそれで判別してたっぽい。
逆汗して確かめたわけじゃないから断定はできないけど
0928デフォルトの名無しさんNGNG
>>914
http://www.geocities.jp/buin2gou2/delphi/DelphiFAQ.htm
そんなに面倒じゃないよ。
0929デフォルトの名無しさんNGNG
C++でnew と delete を繰り返していると、タスクマネージャーで見ると
2Gバイトまで500Mバイト以上空きがあるのに、1Mバイトの塊も取得
できなくなった。
ガーベージコレクタみたいなものってあるの?
ちなみに、Windows2000
0930デフォルトの名無しさんNGNG
>new と delete を繰り返していると、
繰り返してないからメモリが足りなくなるんじゃないの。
GCよりもリークのチェックツールでdeleteし忘れを検出してみたら。
0931デフォルトの名無しさんNGNG
deleteしたからといってOSにメモリを返すとは限らないわけだが。
メモリ空間が断片化しまくって連続した1MBの領域が存在しなくなったんだろ。
0932デフォルトの名無しさんNGNG
>>928
914さんとは別人ですが、そのサンプルって問題ないんですか?
オプションヘッダのサイズを固定値にしてるし、最後のセクションヘッダが
ファイルの末尾のデータを指していると仮定しているし…。

文句つけているわけじゃなくて、ちょうどEXEを編集・作成するようなライブラリでも
作ろーかなーとか何となく思ってPEフォーマット勉強中なのですが、
そういう一般的な約束があるんなら気をつけなきゃな、と思ったので。

あと、>>914は、単純にファイルの末尾に「データ」+「データ長情報」を加えて、
ファイル末尾のデータ長情報を読んでからデータ位置を逆算すれば簡単だと思うのですが…。
0933デフォルトの名無しさんNGNG
>>914
何故リソースを使いませんか?
0934デフォルトの名無しさんNGNG
>>933
それって簡単にできるもんなの?
漏れには想像もつかないんだが。

コンパイル時に全て作成するならリソースでもいいけど、
自己解凍みたいなものは、実行モジュールが予めあって、
それに圧縮したファイルを結合するわけから、
リソースとして格納するとなると、それこそフォーマット解析して
いじくって組み込む……ってことになるような気がするんだけど。
0935デフォルトの名無しさんNGNG
UpdateResource
0936デフォルトの名無しさんNGNG
>>934
解凍するモジュールはコンパイル時に作成されるんだから、結合前に圧縮対象の
モジュールを圧縮して.rc2にでもinclude書いておけばいいんじゃねえの。
解凍モジュール側のプロジェクトに圧縮対象のモジュールへの依存関係張って
カスタムビルドで圧縮、.rc2でinclude。
0937デフォルトの名無しさんNGNG
>>936
それは違うのではないか
0938914NGNG
皆さんレスありがとうございました^^

別ファイルを追加する際に実行部分の最後にヘッダをつけて
それ以降をデータ部として、実行時に自身のバイナリからヘッダ部分を
スキャンした後でデータを取り出すということに成功しました。

今はもう少し改良を加えて複数のファイルの追加、及びDLL等のパッキング
が出来ないかどうかを考え中です。
0939 NGNG
一番最後に「データを負荷する前のファイルサイズ」を付けとけば、複数追加しても
後ろから芋づる式に取り出せるよ。
0940デフォルトの名無しさんNGNG
ユーザ領域内にファイルをインストールする必要のあるツールを開発していて、パスの取得(w2kだとc:\Documents and Settings\hogehoge.network以下みたいな感じ)のためにPlatform SDKのGetUserProfileDirectory()を使おうと思ってます。
が、MSDNのサイトを見てもぐぐっても必要とされるuserenv.lib/hのことについては情報がなく、自分のマシン(w2k+VisualStudio6.0SP3)にも入っていないため困ってます。
米MSDNにはSDKのCD買えやとか書いてあるんですが、それ以外にどこかで落とせないんでしょうか?
今週中には修正しないといけないため、時間がなくてとても取り寄せてる時間もないっす(´Д`)
0941デフォルトの名無しさんNGNG
>>940
MSDNサブスクライバダウンロードはつかえないのけ?
それ以前に、SDKって普通にダウンロードできなかったっけ?
0942デフォルトの名無しさんNGNG
>>941
ばかでかいけど普通に落とせる
0943デフォルトの名無しさんNGNG
もはや馬鹿でかいとは感じなくなったな。
0944デフォルトの名無しさんNGNG
>>935
NT系のみ
まあMeのサポートが切れたらそれもありかな
0945デフォルトの名無しさんNGNG
WinAPIのみでODBCアクセスしたいのですが参考になるサイトありませんでしょうか?
0946デフォルトの名無しさんNGNG
>>940
引数と関数名が分かってるなら、
ヘッダファイルは自作、
ライブラリはDLLを動的に呼び出せばいいと言ってみるてすつ
0947デフォルトの名無しさんNGNG
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生成すればいいんでないか?
0948デフォルトの名無しさんNGNG
ピクチャコントロールにラインを描画して、そのラインをマウスクリック
で捕まえて,マウスドラッグで移動させたいんですが、
ラインの描画にはどの関数を使えばよいのでしょうか。
ただラインを描くだけだとアニメーションさせにくいと思うのですが。。。
0949デフォルトの名無しさんNGNG
>>948
MoveTo
LineTo

VB厨か?
0950デフォルトの名無しさんNGNG
>>948
そりゃ普通にMoveTo()、LineTo()じゃないのか?
0951デフォルトの名無しさんNGNG
イヤンかぶった。
0952948NGNG
>>949,950
ありがとうございます。
やってみます。
0953デフォルトの名無しさんNGNG
>>950
次スレよろ
0954940NGNG
どうにかSDKのダウソサイトハケーンしますた。
最新版で500Mらしい・・・(´Д`;)
あと、DLLを呼び出すライブラリの作り方は非常に参考になりました。
ありがとうございました。
0955デフォルトの名無しさんNGNG
>>953
ゴメン。できない。>953可能ならヨロ。
0956953NGNG
建てますた

Win32API質問箱 Build13
http://pc2.2ch.net/test/read.cgi/tech/1059549320/
0957デフォルトの名無しさんNGNG
こんなに見えちゃってヤバクない???
抜いても抜いても また勃起しまくり・・・
 ↓ ↓ ↓

☆★☆★ 海外サイトだから安心無修正 ★☆★☆
http://upbbs.s2.x-beat.com/linkvp/linkvp.html
http://upbbs.s2.x-beat.com/linkvp/linkvp.html
☆★☆★ 本気汁丸出しのお○○こが! ★☆★☆
0958デフォルトの名無しさんNGNG
>>WinAPIのみでODBCアクセスしたいのですが参考になるサイトありませんでしょうか?
http://homepage1.nifty.com/kojama/works/rdbms/conn.html
ここは、ODBC3
ばば ODBC 検索 は2のコード
0959デフォルトの名無しさんNGNG
>>958
さんきゅーさー
面倒そうなのでMFCのほうを使うことにしました。
参考になりました。
0960デフォルトの名無しさんNGNG
非MFCのGUIアプリから、MFC DLLを呼び出す方法ってない?
おしえてください。
0961デフォルトの名無しさんNGNG
MFCなCOMのEXEでも経由すれば?
0962デフォルトの名無しさんNGNG
MFC.DLL の何を呼び出すんだ?
0963デフォルトの名無しさんNGNG
普通にできるよ。
0964デフォルトの名無しさんNGNG
標準DLLにして、おまじないを唱えたら大丈夫でした。
ども。
0965山崎 渉NGNG
(^^)
0966デフォルトの名無しさんNGNG
ドロップダウンリストで初期状態ではリストの中にない文字列を表示して
おきたいんですけど、それってサブクラス化しないで出来ます?
ユーザからは編集不可のコンボボックスって感じです。
0967デフォルトの名無しさんNGNG
出来る。
0968デフォルトの名無しさんNGNG
どうやればできます?
ドロップダウンリストにしちゃうと、SetWindowTextとかやっても
何も表示してくれないんですけど。
0969デフォルトの名無しさんNGNG
ドロップダウンリストじゃ無理でしょ。
リスト中にないと。
0970532NGNG
できました。ありがとうございました。
0971デフォルトの名無しさんNGNG
オーナードローすればいーんじゃないの?無理かな?
0972デフォルトの名無しさんNGNG
972
0973デフォルトの名無しさんNGNG
埋め
0974デフォルトの名無しさんNGNG
梅
0975デフォルトの名無しさんNGNG
楳
0976みんなで誘い合って東京ドームへ行こうNGNG
おじゃまします。宣伝スマソ。

みんなで日ハム−オリックス戦を満員にしよう
8月11日(月)東京ドーム18:00〜
http://off.2ch.net/test/read.cgi/offmatrix/1059573009/
まとめサイト
http://takemetotheballgame.hp.infoseek.co.jp/

おじゃましました。
0977デフォルトの名無しさんNGNG
生め
0978_NGNG
http://homepage.mac.com/hiroyuki45/hankaku09.html
0979デフォルトの名無しさんNGNG
宇目
0980デフォルトの名無しさんNGNG
産め
0981デフォルトの名無しさんNGNG
梅図
0982デフォルトの名無しさんNGNG
膿め
0983デフォルトの名無しさんNGNG
藻前ら、スレの埋め立てでageるなよ
0984ageNGNG
age
0985デフォルトの名無しさんNGNG
次スレ誘導うめうめ。

Win32API質問箱 Build13
http://pc2.2ch.net/test/read.cgi/tech/1059549320/
0986デフォルトの名無しさんNGNG
んじゃ 1000までWin32APIで「しりとり」でもしようかのう。

CreateWindowEx →
0987デフォルトの名無しさんNGNG
XcvOpenPort() ->
0988デフォルトの名無しさんNGNG
TextOut ->
0989デフォルトの名無しさんNGNG
tapiGetLocationInfo() ->
0990デフォルトの名無しさんNGNG
XactAttributeEnum
0991デフォルトの名無しさんNGNG
>>990
遅い。w
0992デフォルトの名無しさんNGNG
OEMDeviceCapabilities() ->
0993990NGNG
すまん。
OpenDesktop→
0994デフォルトの名無しさんNGNG
OpenPeinter
0995デフォルトの名無しさんNGNG
盛大にケコーン
0996デフォルトの名無しさんNGNG
>>993
またしても遅い。w
0997デフォルトの名無しさんNGNG
>>992から
ScrollConsoleScreenBuffer
0998デフォルトの名無しさんNGNG
RpcAsyncInitializeHandle() ->
0999デフォルトの名無しさんNGNG
EnumWindows() ->
1000デフォルトの名無しさんNGNG
SendMessageCallback() ->
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。