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

Win32API 質問箱 Build11

レス数が1000を超えています。これ以上書き込みはできません。
0001980 ◆oqSJWu4Ch2 NGNG
スレ立てるまでもない、Win32APIについての質問はこちらへどうぞ。
やさしい お兄ちゃん 達が答えてくれるかも。
でも、質問する前に検索ぐらい汁!!
過去スレ・参考は>>2 ぐらいにあるといいな。
0002980 ◆oqSJWu4Ch2 NGNG
● MSDN Online
http://www.microsoft.com/japan/msdn/default.asp
● 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/index.html

● 過去スレ
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
乙
0005デフォルトの名無しさんNGNG

  ヽ,,.'"                      ,           ゙、 【お洒落】女の子に大人気の東京急行【お洒落】
:::::::;:::',i゙i、,_   ,.'  ,     ,   .,  ,  .:,.' .:    ',..             、 ゙、 上品・美麗な田園都市生活
. :/::::::}r'、 `゙ ,'  .,'  .: ,' ,,、-/‐,ッ、:::/..:;:  .. l l;:..;.         ',. ',
./:: :::/::. ヽ i  l .::l:,、r'゙ ::,.'i../,'.:::,'i.:::;,'. .:,':''7i'it、l!:. ,       i,. !
'.::::::/:l::::::..  l.   l. ::;r':i l .:::,' l  l:::,' !::,',' .::;': /,'/ !:l'l;::. i  ,' l:.  i  !!,'
::::::/::!:',::::::::::l.   ::',/i l:|. l::;;!、ェ、,,l:i l::,'.!:..::,,'::/ / l:i l:゙:.,' /:. l::  | j.l'
::::,'!::::'::゙、:::::::!   ::::i、l. 'l,,;ン',,、ぃ,゙ヾ l:l l::::/,ソ.r''"ヾl, l:::/ン゙l:::: l::: i /l'
:::j ',:::::::::::::::::!. ! :::::l、゙,,ilr' ,il゙ _,,!i.   'l l::/ '  ,r゙゙'i;.ヾlン''/: l:::: ,'l:: ,'j ./ l
::i. ゙、::::::::r''''!. ! :::::!'''゙li. l;:゙'illlr;::!   ゙    i:!、r:'l. ;シ./::: .!:,r!,':;/,',.'l j
:l   ゙、:::i゙''、゙!. ! ::::|.  ゙. 'r,ン::::ソ       l;: ''゙:;' ' ,':::: .r' /ツ::ジ j j
:|.    ヾ゙、 '、i. ! ::::!   ''‐゙゙'='゙-       . ゞ-'',、 i:::::: j '"!:i::  j .,'
:l     `゙' 、', i :;::l          r‐‐‐-,.  ̄`  .j:::: ,'  l:,i:  ,' /
';!       ',.i. ';:!,_          |   /      , ':::: ,'  ,ソ!: ,'./ おかあさま
,ヽ       ゙、, ';ヘ!ヽ、       ',. ,.'    ,、‐l:l::::: /  /.,' ,'/ ヴァイオリンのお稽古に逝って参ります
:!          ',.',',l,_  ゙'ヽ 、,,_.  ゙'" ,、 ‐'"  ,',i::: /   / ,.シ
':',         '、',゙、゙''ー- 、、、、゙゙i,゙''''"     /'i::/     /,.'
ヾ、     ,,、 - '゙::ヾ,ヽ:...:...:...:...:...:{          ,'/    ,ン゙
   ,、- '"゙~ヽ、:...:...:..::゙、:...:...:...:...:...:.lヽ、 _     /
. 、r''ヽ、     ヽ:...:...:...:...:...:...:...:...:...:...:.゙j ゙''‐ 、 '
0006デフォルトの名無しさんNGNG
すみません、質問させてください。
AプロセスとBプロセスで同期を取るために、
AプロセスがBプロセスをwaitさせたいとします。
その場合、Aプロセス内でWin32APIのSuspendThread関数を用いて、
Bプロセスをwaitさせる例が、 
「Advanced Windows(Jeffrey Richter著・MicrosoftPress ASCII」
に記述されていました。
 この例の中ですでに起動されているスレッドのハンドルを取得するため、
OpenThread関数を用いたコーディングを行ってるのですが、
このOpenTread関数はWindows2000からのサポートのため、
WindowsNT4.0には対応していません。
 そこでWindowsNT上で、すでに起動されているプロセスをwaitさせるためには
どのような方法またはAPIが存在するでしょうか。
 ぜひお願いしますm(_ _)m
0007デフォルトの名無しさんNGNG
WaitForSingleObject
その他
0008デフォルトの名無しさんNGNG
>>6
まあ、不注意なんだろうけど...、マルチかよ !!
0009デフォルトの名無しさんNGNG
OpenMutexで名前指定、とか。
0010デフォルトの名無しさんNGNG
プロセスAからプロセスBにメモリーを確保してデータを読み書きするのに
WriteProcessMemory、ReadProcessMemoryを使うのは、うまくいくのですが、
下のプログラムで、確保したpBaseアドレスはプロセスBのリニアアドレスに
なります。
そこで、FS:[EAX]、GS:[EAX]のように、セレクタ修飾でプロセスAからアク
セスできるように、プロセスAのセレクタのアドレスに変換するAPIや、
その方法はあるのでしょうか。

HWND Wnd = FindWindowEx(NULL, 0, NULL, "XXX");
GetWindowThreadProcessId(Wnd, &dwPID);
HANDLE hProcess = OpenProcess(PROCESS_VM_OPERATION
| PROCESS_VM_READ
| PROCESS_VM_WRITE,
FALSE, dwPID);
DWORD pBase = (DWORD)VirtualAllocEx(hProcess, NULL, 10240,
MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
0011デフォルトの名無しさんNGNG
あるウィンドウの状態(最大化、標準、最小化)を調べるAPIを訓えて( ゚д゚)ホスィ
ウィンドウハンドルは既知です。
0012デフォルトの名無しさんNGNG
GetWindowPlacement
0013デフォルトの名無しさんNGNG
>>6
NtOpenThread
非公開だが今後NT4のサービスパックが新たに出ることは
ないだろうから大丈夫だろう多分
>>10
「プロセスAのセレクタ」なんてものは存在しない
(IA64やAlphaやPPCやMIPSではどうなってると思ってるんだ?)
仮想メモリについてちゃんと勉強しろ
0014デフォルトの名無しさんNGNG
>>12
( ゚д゚)アリガトウ
0015デフォルトの名無しさんNGNG
>>10
メモリの共有が目的なら、
明示的に共有メモリを使ったほうがいいんじゃない?

それともデバッガ作ってるの?
0016デフォルトの名無しさんNGNG
>>15
ReadProcessMemoryとWriteProcessMemory使うのが
マンドクセイから直接アクセスする裏技はないのかという
質問に見えた。
0017デフォルトの名無しさんNGNG
MSDN Onlineって見辛いなー
0018デフォルトの名無しさんNGNG
Microsoft Plans Windows API Cleanup
ttp://www.internetweek.com/breakingNews/showArticle.jhtml?articleID=9400498
>"Win32 has like 76,000 APIs, and they're taking it down to 8,000 with Longhorn technology,"
> said one source familiar with the plans.

あぼーん
0019デフォルトの名無しさんNGNG
>>18
乱立関数をあぼーんしたいってのはわかるが
アップグレード品の売れ足くらい考えてやるだろ
0020デフォルトの名無しさんNGNG
>>18
互換性があればどうでもいいわな。
(互換性なきゃLonghorn死滅だが。)
0021デフォルトの名無しさんNGNG
互換性なくすんだったらWindowsの名前捨てろよな
0022デフォルトの名無しさんNGNG
Win3.1との互換性について問い詰めたい。小一時間問い詰めたい。・・・・・・・・21を。
0023デフォルトの名無しさんNGNG
マウスフックしてる間はマウスカーソルを独自のものに変更したいのですが、
どうすれば良いのでしょうか?
0024デフォルトの名無しさんNGNG
>>22
一応3.1アプリは動くのでは?
0025デフォルトの名無しさんNGNG
質問です….
配列で持っているYUV形式のカラー画像データをビットマップにしてウインドウに
表示するには,どうすればいいんでしょうか?
とりあえずRGBに変換して(これはOKです),その後なんですが.
(YUVのまま使えればその方がいいですけど)

検索してみても,ビットマップファイルをウインドウに表示するは見つかった
のですが,メモリ上のRGBデータを表示するのは見つけられませんですた・・・.
0026デフォルトの名無しさんNGNG
SetPixel
0027デフォルトの名無しさんNGNG
DIBを作って自分で変換するか、SetPixelで1ピクセルずつ描画だな。
0028デフォルトの名無しさんNGNG
前者が普通だろな
0029デフォルトの名無しさんNGNG
3.1のも一応動くことになってるぞ。
やったことないので分からんが。
0030デフォルトの名無しさんNGNG
lstrcpy と StrCpy を一本化するとか、〜Ex系に統一するとか、そういうことでないの?
0031デフォルトの名無しさんNGNG
複数のスレッドから、同じEnumWindowsを呼び出すとやばいですか?
0032デフォルトの名無しさんNGNG
ぜんぜん
0033デフォルトの名無しさんNGNG
MSには、2005年といわず、とっととロングホーン出してもらいたい。
で、瞬くうちに普及して欲しい。
そうなれば、WM_PAINT や Invalidate* + UpdateWindow のない
健全な世界になることだろう。


0034デフォルトの名無しさんNGNG
>>33
どういうのが健全なの?
よくわからん。
0035デフォルトの名無しさんNGNG
>>34
再描画が楽になったらいいなと思ってるんじゃないか?

ロングホーンがそうなるなんて聞いたことないが
DirectX9使うことを勘違いしてるのか
0036デフォルトの名無しさんNGNG
>>35
要は1枚1枚単独のWindowを別のメモリ空間上に描画して行って
重ね合わせ等々はOSがやるってことでしょ?

互換性上、WM_PAINT(GDI)がなくなるとは思えないが
Windowの影になったりして再描画が必要になることは
実質なくなるんじゃない?
0037デフォルトの名無しさんNGNG
どっちにしろ、WM_SIZEで再描画しないと、いけない訳だが…
0038デフォルトの名無しさんNGNG
ものすごい勢いで再描画されるのかな。
「俺のマシンは デスクトップに電卓ソフトを1つ開いた状態で xxfpsでるよ!」
とか、そういう会話が世間で繰り広げられる・・・。
0039デフォルトの名無しさんNGNG
Mac OS Xみたいになるのカー
0040デフォルトの名無しさんNGNG
>>30
どのみち動かなくなるアプリ多発
互換モードまで付けてるメーカーの所業とも思えん
0041デフォルトの名無しさんNGNG
8年前のバイナリがそのままが動いてるのって、Windowsぐらいじゃないか?
0042デフォルトの名無しさんNGNG
68kのコードって動かないのん? @MacOSX
0043デフォルトの名無しさんNGNG
コマンドライン引数を分割する関数って公開されていませんか?
0044デフォルトの名無しさんNGNG
void cmdlinesprit(LPSTR CmdLin){
  int i=0, p=0, inflag=0;
#ifdef WIN32
  argc=0;
#else
  argc=1;
#endif
  for(;;){
    if (CmdLin[i]=='\0'){
      argv[argc]=(char*)malloc(i-p+1);
      if (argv[argc]==NULL) break;
      qu_strncpy(argv[argc],&CmdLin[p],i-p);
      break;
    }
    if (CmdLin[i]=='"' && (i==0 ||
      (CmdLin[i-1]!='\\' || _fnthctype(CmdLin, i-1)==CT_KJ2))) inflag=!inflag;
    if (inflag==0 && (CmdLin[i]=='/' || (CmdLin[i]==' ' && (argc==0 || CmdLin[p]=='/')))){
      argv[argc]=(char*)malloc(i-p+1);
      if (argv[argc]==NULL) break;
      qu_strncpy(argv[argc],&CmdLin[p],i-p);
      argc++;if (argc>=ARGCMAX-1) break;
      do{
        p=i;i++;
      }while (CmdLin[p]==' ');
    }else i++;
  }
  argc++;
}
0045デフォルトの名無しさんNGNG
>>44
なんじゃこりゃ
0046デフォルトの名無しさんNGNG
http://pc.watch.impress.co.jp/docs/2003/0514/mobile201.htm

>もちろんLonghornでも、レガシーのWin32 APIを用いたアプリケーションを動かす
>必要があるが、古いAPIで描画するアプリケーションは内部的に96dpiで処理。それ
>を任意のサイズに3Dグラフィックチップで拡大表示することにより対応する

(´_ゝ`) ふ〜ん
0047デフォルトの名無しさんNGNG
HFONT hFont, hFontOld;
//...
hFontOld = SelectObject(hdc, hFont);
とやると型変換ができませんみたいなエラーになってしまいます。
もし解決法がわかる方がいらっしゃいましたらアドバイスお願いします。
0048デフォルトの名無しさんNGNG
(HFONT)SelectObject(hdc, hFont);
0049デフォルトの名無しさんNGNG
くだすれDelphi(超初心者向け)
http://pc2.2ch.net/test/read.cgi/tech/1051882835/
で質問したところ、

このスレで質問してみるといいということなので質問します。
http://pc2.2ch.net/test/read.cgi/tech/1051882835/484
>484 名前:デフォルトの名無しさん [] 投稿日:03/05/14 14:42
>他のアプリを操作するツールバーみたいなソフト作りたいんですが、
>直前にアクティブだったウィンドウを取得する方法教えてください。
0050デフォルトの名無しさんNGNG
>>48
ありがとうございました。
SelectObject(hdc, (HFONT)hFont)とやっていた俺はオオヴァカなわけで…
色々調べていたところ、HFONT変数はひとつで
SelectObject(hdc, GetStockObject(SYS_FONT))ってのがあったのですが、
上記のhFont, hFontOldを使う方とどっちがいいのでしょうか?
0051デフォルトの名無しさんNGNG
>>50
どっちがいいっちゅーか、hFontOld が何のためにあるかを理解したほうがよいと思われ。
0052デフォルトの名無しさんNGNG
HFontOldは最後にデフォルトに戻すため とは違うのですか?
GetStockObjectでもデフォルトに戻せるのかと思ってたのですが…
0053デフォルトの名無しさんNGNG
>>44
まだまだ修行が足りんぞ

↓こんなのでも見て勉強しる
ttp://www.ioccc.org/
0054デフォルトの名無しさんNGNG
>>52
SelectObject(hdc, hFont);
//描画...
SelectObject(hdc, GetStockObject(SYS_FONT));
DeleteObject(hFont);

こういうことか。どっちの方がいいんだろうね(w
0055デフォルトの名無しさんNGNG
HFONT hFont, hFontOld;

// -- hFont取得 --

hFontOld = (HFONT )SelectObject(hdc, (HGDIOBJ)hFont);

// -- 描画処理 --

SelectObject(hdc, (HGDIOBJ)hFontOld);

hdcが必ず以前にGetStockObject(SYS_FONT)を持っていたとも
限らない。ついでに言うと、漏れの環境ではキャストしなくても
エラーでないよ?エラーレベルが高いんでないかい?
0056デフォルトの名無しさんNGNG
エラーレベルじゃなくて、STRICTでしょ。
っていうか、STRICTを指定しても(HGDIOBJ)はいらんでしょ。
0057デフォルトの名無しさんNGNG
猫プロHP27章でCreateFont関数を簡単にするためSetMyFont関数を作成してますが、
その引数にHDCを含めているのはなぜでしょうか?
HDCなしでも一応エラーがでませんでしたが、何かあるのかと思い質問させてもらいました。
0058デフォルトの名無しさんNGNG
             ∩
        ∧_∧   | |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (  ´Д`)//  < 先生! 今年は犯珍優勝できそうでつか?
      /       /    |
     / /|    /      \  去年の今頃も調子良かったのですが。 ( ´,_ゝ`)プッ
  __| | .|    |         \
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\     \_____________
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
0059(;´Д`)NGNG
>>58
満身創痍の虚塵ファン、ミジメダネ
0060デフォルトの名無しさんNGNG
逆から読んだらジンキョ(腎虚)ファンだしね
もうグダグダ
0061デフォルトの名無しさんNGNG
>>57
なんだろう?
次章ではさらに引数減ってるね。
0062デフォルトの名無しさんNGNG
>>57
>>61
漏れが推測するに、最初は
void DrawMyText(HDC hdc, int x, int y, LPSTR str, LPCTSTR face)
こんな感じだったのでは無いだろうか?
それを途中で、テキストの大きさも…角度も…色も…とか考えて
フォント作成用のSetMyFontに変えた。しかし、HDCを消し忘れた。

まぁ、単なる揚げ足取りだね。無くても何も問題無いよ。
0063名無し@沢村NGNG
>>57
ヌヒよ、フォントのポイント数をフォントの高さに変換するために用意していたと見た。

HFONT CreateMyFont(HDC hDC, int nPoint, LPCTSTR lpszFace);
0064デフォルトの名無しさんNGNG
ウインドウをEnumWindowsで列挙して、ボタンをGetDlgItemで取得して
SendMessageでBM_CLICKを送ってボタンを押しているんだけど
時々アクセスバイオレーションになったり、何も言わず落ちたりする。
なにか原因考えられますか?
0065デフォルトの名無しさんNGNG
>64
まずは IsWindow() かな?
0066デフォルトの名無しさんNGNG
Win32APIの文字列を渡す関数でよく、文字列といっしょに
文字数を渡しますがこれって何の意味があるのでしょうか?
0067デフォルトの名無しさんNGNG
バッファオーバーフロー対策


と思ってみるテスト
006866NGNG
>>67
ありがとうございます。
os側はszで待つのでただのロスだとおもうのですが...
0069デフォルトの名無しさんNGNG
部分文字列を指定し易いとか
0070デフォルトの名無しさんNGNG
void hoge(char* szText)
{
  lstrcpy(szText, "1234567890");
}
:
:
char a[5];
hoge(a);

こんなふうだと困るから。
0071デフォルトの名無しさんNGNG
Win32 APIが本当の文字列を使うようにすればよかったのにね。
おかげでバグてんこもり。
0072デフォルトの名無しさんNGNG
>>66
少なく指定すれば任意に削ることが出来る
その程度のことすら思いつかないほど思考が堅いのなら
プログラムを作るのは諦めた方がいい
0073デフォルトの名無しさんNGNG
TextOut みたいのじゃなくて LoadString みたいなののことを言ってるのかな。
007466NGNG
>>73
いやまさにTextOut、DrawTextとかそんなのです。。。
0075デフォルトの名無しさんNGNG
>>72
あんた。馬鹿。
0076デフォルトの名無しさんNGNG
>>74
だから>>70が答え。
0077デフォルトの名無しさんNGNG
>>76も馬鹿だな。
0078デフォルトの名無しさんNGNG
>>77
なんでやねん。hoge関数がWin32APIだと思って。
0079デフォルトの名無しさんNGNG
TextOut って文字列を他のバッファにコピーしてるの?
008066NGNG
>>74
いや、であれば70さんの例は答えではないと思います。
73さんのLoadStringと同様にバッファのポインタを渡してそこに値を
もらう(itoaとかも)のであれば理解できます。
が、TextOutとかはWin32の規約でszで渡すと決まっている以上
文字数を指定するのは意味がないと思います。(むしろ72さんの指摘
が正しいかと...)
008166NGNG
↑
>>76ですた
0082デフォルトの名無しさんNGNG
要するに文字列の中から先頭の一文字だけ
表示したい場合などに利用できるということ
0083デフォルトの名無しさんNGNG
TextOutはszと決まっていない。馬鹿ばかりだな(藁
0084デフォルトの名無しさんNGNG
>>80
TextOutに渡す文字列の終端は\0ある必要はないんだよ?
文字数渡さなかったらOSがどこまで表示していいかわからないじゃん?
008566NGNG
>>83
008666NGNG
>>83-84
MSDNにはLPCSTRとなってますが...
0087デフォルトの名無しさんNGNG
すまん。>>84の訂正
×\0ある必要はない
○\0である必要はない
0088デフォルトの名無しさんNGNG
>>86
MSDNに
>この文字列はゼロ文字 ('\0') で終わっている必要はありません。
となってますが...
0089デフォルトの名無しさんNGNG
>>86
違う
WindowsのAPIの文字列系は基本的にLPCTSTRで
009066NGNG
>>88
Pointer to a constant null-terminated string
of 8-bit Windows (ANSI) characters.
となってますが...
0091_NGNG
  ∋8ノノハ.∩  
   川o・-・)ノ <先生!こんなのがありました!
http://www.hiroyuki.zansu.com/moe/hankaku07.html
http://hiroyuki.zansu.com/moe/hankaku10.html
http://www.hiroyuki.zansu.com/moe/hankaku08.html
http://hiroyuki.zansu.com/moe/hankaku09.html
http://www.hiroyuki.zansu.com/moe/hankaku06.html
http://hiroyuki.zansu.com/moe/hankaku05.html
http://www.hiroyuki.zansu.com/moe/hankaku01.html
http://hiroyuki.zansu.com/moe/hankaku02.html
http://www.hiroyuki.zansu.com/moe/hankaku03.html
http://hiroyuki.zansu.com/moe/hankaku04.html
0092デフォルトの名無しさんNGNG
Tって何か知ってるのかな?
0093デフォルトの名無しさんNGNG
>>86
MSDNのはLPCTSTR。よく見てみ。
009466NGNG
>>92
ワイド文字ですか?
szであることにはかわりないと思うのですが
0095デフォルトの名無しさんNGNG
>>90
英語ヘルプにも
The string does not need to be zero-terminated,
と書いてある
\0を終端と見なさないため、文字列途中にわざと\0を入れて
それ以降も表示されるように文字数を設定すれば
\0より後ろの文字も描画される
0096デフォルトの名無しさんNGNG
>>94
途中にも\0がでてくるから(略
0097デフォルトの名無しさんNGNG
>>94
>ワイド文字ですか?
違う
こんなことを書いている時点でAPIの仕様どころか型の意味も分かっていない
0098デフォルトの名無しさんNGNG
まぁまぁ。完全に何もわかってないから質問したんだろうし。
0099デフォルトの名無しさんNGNG
なんの話しているのか知らないけど、strcpyとmemcpyの違いみたいなものでしょ?
\0を末尾として見れば便利だけど、文字列しか扱えなくなってしまう。
010066NGNG
>>96
それは分かるのですが、それはTextOutA、TextOutWを使い分けで
対応できますよね。

>>97
教えてください。お願いします。
0101デフォルトの名無しさんNGNG
まぁとりあえずMSDNでTextOutの解説読めってこった。
010299NGNG
見当違いだったみたい(鬱)
0103デフォルトの名無しさんNGNG
>>100
設定によって可変
型のヘルプくらい目を通せよ
0104デフォルトの名無しさんNGNG
>この文字列はゼロ文字 ('\0') で終わっている必要はありません。

これ読んだのかな?
0105デフォルトの名無しさんNGNG
>>103
それは解ってるんでないかい?それより TextOut がどうして
そんな仕様になってるかなんだが、俺は>>99で納得してしまった。
がしかし>>102でまた分からなくなった。
010666NGNG
>>95
MSDNの英文のTextOutの解説を読むと確かにそうなっていました。
(MSDNが少し古いからでしょうか)
僕が完全に誤っていました。
レスをくださったみなさんお騒がせしました。m(__)m
0107デフォルトの名無しさんNGNG
世の中には文字列が\0で終わらない言語があるからでないかい
AdaとかDとかそのへん。
そういう言語のことも考えるなら、本来全てのAPIで長さを渡すべきなんだろうけど、
やはりC優先で文字列そのものが重要なAPI以外は\0終端にしてると思ってた。
(VB、Delphiは言語がサービスで\0入れてくれるけど)
0108デフォルトの名無しさんNGNG
Delphiは知らんが、VBの文字列は最後は\0が二つ連続すると決まっている。
0109デフォルトの名無しさんNGNG
>>108
VBはBSTRなので\0終端ではないのでは?
0110デフォルトの名無しさんNGNG
>>109
他の環境と連携させるときに>>66みたいな勘違いがバグを出すので
ウザイからわざわざ付けているだけ
011166NGNG
↑すんませんね。

またのこのこ来ますた。
MSDNの2001年10月リリースを入れたのですが、日本語の解説も
「\0で終端する必要はない」となっていますた。
すみませんでした。。。

0112デフォルトの名無しさんNGNG
矩形を描画したいのですが、Rectangleだと内部を塗られてしまいます。
ただの四角形を書きたいのですが、クリッピングとかするしか方法は
ないのでしょうか?
0113デフォルトの名無しさんNGNG
>>112
ラインを4回引けばすむのにそうしない理由は何故ですか?
何か深い理由があるんですか?
是非教えてください
0114デフォルトの名無しさんNGNG
NULL_BRUSH
0115デフォルトの名無しさんNGNG
>>113
遅いかなと思いまして
0116デフォルトの名無しさんNGNG
>>113
ラインを複数引けば必要ないRectangleがある理由を考えてみなさい。
0117デフォルトの名無しさんNGNG
>>113
こういう、何も考えないでレスする馬鹿、どこにでもいるな。
0118名無し@沢村NGNG
ボタンを押したとき値を変数に代入して、ボタンを離したときそれを配列に書き込んで配列のインデックスをインクリメントしたいのです。
この処理はボタンを押したときか離したときどちらかにまとめてはされず、押したときと、離したときに別別にしなければ、どうしてもいけないのです。
でもそうすると、ボタンを早く押しすぎたり、離したときにマウスがボタンからずれてしまうと、配列の値がおかしくなってしまうのです…。
離したときにマウスがボタンがずれてしまうほうの問題は何とか解決したのですが、ボタンを早く押しすぎるときの解決法がどうしてもわからないのです。
ボタンを早く押しすぎても上手く値が配列に書き込めるようにするには、どうしたらいいのですか?
0119デフォルトの名無しさんNGNG
>>118
ボタンコントロールをサブクラス化して
マウスのアップダウンメッセージを取得すればすむ
0120112NGNG
>>114
ヌルブラシっていうのがあるんですね。
グリッドを書いているのですが、セルごとにクリッピングをかけるのは
イヤだなと思っていたのでとても助かりました。
ありがとうございました。m(__)m
0121デフォルトの名無しさんNGNG
win32apiを使わずにウインドーを出したり文字を出したりしたいのですが
どうやってやりますか?
マイクロソフトのAPIは使いたく無いので自分で考えたウインドーを出したいのです

0122デフォルトの名無しさんNGNG
サグクラス化について質問があります。
wavが鳴らされたときにキャッチできるメッセージってあるのでしょうか?
よろしくお願いします。
0123デフォルトの名無しさんNGNG
>>121
DOS で、自分で VRAM に直書きするか。
自分で OS + Window System 作れ。
0124デフォルトの名無しさんNGNG
>>123
DOSで自分でVRAMに書くってどうやってかくんですか?
windowsで出来るんですか?
0125デフォルトの名無しさんNGNG
windows上でウインドウを作りたかったらM$のAPI使え
0126デフォルトの名無しさんNGNG
>>124
VRAMのアドレスは絶対値なので、場所さえわかれば簡単です
0127デフォルトの名無しさんNGNG
winapiって本当に使いずらいですね
ユーザーインターフェースが少なすぎて
使い物になりませんよ
せめてユーザーにもウインドーが作れるようにして欲しいです
だからMSはアホなんですよ
0128デフォルトの名無しさんNGNG
そうですね。
0129デフォルトの名無しさんNGNG
>>127
結局、なにがやりたいんだ。
四角形でないウィンドウを作りたいんだったら
「リージョン ウィンドウ」でもキーにして検索しろ。
0130デフォルトの名無しさんNGNG
リージョン ウィンドーってMSのウインドーじゃありませんか
見た目が変わってもウィンドーの中でやってることは同じだから意味が無いです
0131デフォルトの名無しさんNGNG
そうですね。
0132デフォルトの名無しさんNGNG
つーか、MSのウインドーは出すのがめんどくさすぎる
自分で作ったほうがまだまし
0133デフォルトの名無しさんNGNG
はいはい。
0134デフォルトの名無しさんNGNG
頼んでも無いのにウインドーにタイトルバーとか×とか_とか口つけるのマジ
勘弁してもらいたいもんです
何もしなければは真っ白な箱が出来るもんなのに、
一体どういう考えで作ってるのか不明すぎます
金儲けの事しか考えて無いからアホなんですよ
0135デフォルトの名無しさんNGNG
つまんねぇよsageろ
0136デフォルトの名無しさんNGNG
お前がつけろと言わん限り、タイトルバーも_□×もつけないが?
0137名無し~3.EXENGNG
ウインドウスタイルで思いっきり頼んでるはずなんだけど
0138デフォルトの名無しさんNGNG
ウインドースタイルを使わなければ真っ白になりますか?
私が言ってるのはこの事を言ってるんですよ
0139デフォルトの名無しさんNGNG
>>138
オイオイ
0140デフォルトの名無しさんNGNG
そもそもAPI使いたくないのになんでこのスレで質問してんだろう
0141デフォルトの名無しさんNGNG
釣り師警報発令中
0142デフォルトの名無しさんNGNG
アナルを使わなければ気持ちよくSEX出来ますか?
私が言ってるのはこの事を言ってるんですよ
0143デフォルトの名無しさんNGNG
足なんてただの飾りです。
偉い人たちにはそれがわからんのです。
0144デフォルトの名無しさんNGNG
なんのために非クライアント領域がWindowsによって提供されてるのかわかってんのか
0145デフォルトの名無しさんNGNG
GUIなんてただのおもちゃです。
消費者にはそれがわからんのです。
0146デフォルトの名無しさんNGNG
人生なんて玩具です。
人間にはそれがわからんのです。
0147デフォルトの名無しさんNGNG
遅レスだが。
>>100
LPC"T"STR の "T" は "Translate" ってことだよ。
UNICODE が #define されていれば LPCWSTR, そうでなければ LPCSTR に
VC++ が読み替えてくれる。
0148147NGNG
印刷に関して質問させて下さい。

EXCELファイルを右クリックして、自動印刷実行をしますと、
EXCELファイルを開いた際に設定した印刷設定、例えばトレイ・用紙サイズ
が反映されます。この手法は、SetPrinterでデフォルトのプリンターの設定
を変更することなく、各ファイル毎の印刷設定で印刷がなされています。

ではこの手法を実現するためにどのようなAPIとレジストリを用いているの
でしょうか?

EXECELと同じように新規アプリケーションでファイル毎にトレイ選択・用紙選択
などを行い、デフォルトのプリンタ設定を変えることなく済ませたい考えです。

(プリンターのデフォルトの設定を変更するやり方は各ドライバーごとの
DEVMODE構造体を扱う方法と認識しています。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers
直下のドライバー毎の設定が保存されています。)

0149デフォルトの名無しさんNGNG
>>148
なんでおまいが147を騙ってるんだよ。
0150148NGNG
>>148
投稿する段階では、147のつもりでしたが投稿したら148に
なってました。済みませんです。
0151148NGNG
>>150

「>>149」
の間違えですすみません。視力が悪くて、、
0152デフォルトの名無しさんNGNG
>>150-151
最初に書くときは名無しでいいと思うが・・・
0153148 ◆Kg.N7J02zE NGNG
>>152
これからは気を付けます。
0154デフォルトの名無しさんNGNG
>>148
OpenPrinter(), SetPrinter()でいけそうだが。
0155148 ◆Kg.N7J02zE NGNG
>>154
SetPrinterはドライバーのデフォルトの設定を直接変更してしまう
ので、148の手法には使えないと認識しています。
0156デフォルトの名無しさんNGNG
>>155
いや、印刷後もとの設定に戻せばいいだけでは?
0157148 ◆Kg.N7J02zE NGNG
>>154
補足しますと、EXECELの場合ファイルを開いてプリンタのトレイを変更し、
用紙サイズを変更しても、プリンターのドライバーのデフォルトの設定は変わ
りません。・・・(1)
プリンターフォルダで設定できるのがドライバーのデフォルトの設
定です。(2)
SetPrinterは(2)の設定は変更しますが、(1)のような変更がきかないのです。
0158148 ◆Kg.N7J02zE NGNG
>>156
同一プリンタドライバでの印刷を、同時に複数のユーザが
行った場合、ドライバのデフォルトの設定が変わってしまうと、
ユーザの思ったような印刷ができません。
0159デフォルトの名無しさんNGNG
>>157
(1) OpenPrinter():ハンドル取得
(2) Getprinter():現在の設定を取得
(3) SetPriner():印刷設定
(4) 印刷実行
(5) SetPriner():(2)で取得した設定に戻す
(6) ClosePrinter():終わり
でダメなの?
0160148 ◆Kg.N7J02zE NGNG
>>159
レスありがとうございます
(4)印刷実行の間に,他ユーザから Getprinterされてしまうと,
もとの設定には戻らないと思います.
0161デフォルトの名無しさんNGNG
>(4)印刷実行の間に,他ユーザから Getprinterされてしまうと
他のユーザーが戻してくれるのを期待汁!てか、Open 〜 Close の間に
割り込むことはできるんか?ちょっと調べてくれや>148
0162デフォルトの名無しさんNGNG
TextOut関数を使うよりDrawText,DrawTextExを使った方がいいのでしょうか?
TextOut関数について調べていたらDrawTextなるものを見つけて迷っています
0163148 ◆Kg.N7J02zE NGNG
>>161
調べてみます.実は印刷用アプリが別で以下のような構成です.
ご指摘で問題点が見えて来ました.これが原因かもです.

(1) OpenPrinter():ハンドル取得
(2) Getprinter():現在の設定を取得
(3) SetPriner():印刷設定
(4) ClosePrinter():終わり

(5) 印刷用アプリで印刷実行

(6) OpenPrinter():ハンドル取得
(7) Getprinter():現在の設定を取得
(8) SetPriner():(2)で取得した設定に戻す
(8) ClosePrinter():終わり
0164デフォルトの名無しさんNGNG
>>49
遅レス申し訳ないけど、GetNextWindowを使うとwindowのz-orderが取得できます。
最前面の一つ下のwindowが *概ね* 直前にアクティブです。。
最小化などでフォーカスを失った場合は直前のwindowが次のz-orderを持つとは
限りませんが、解法は私には分からないです。エロイ方はもっといい方法をお願いします。
0165デフォルトの名無しさんNGNG
>>162 ExtTextOutというのもあるよ(と更に困惑させてみる)
0166デフォルトの名無しさんNGNG
APIがイッパイあるってし・あ・わ・せ(はぁと





なわけねーだろゴルァ!
0167デフォルトの名無しさんNGNG
WM_PAINT時にCreateWindowでWS_VISIBLE指定したり、
ShowWindowで表示させようとしたりしてるのですが、表示ができません。
無理なんでしょうか?
0168_NGNG
  ∧_∧   
 ( ・∀・)/< こんなのみつけたっち♪ 
ttp://www.yamazaki.90.kg/hankaku/hankaku04.html
ttp://yamazaki.90.kg/hankaku/hankaku10.html
ttp://www.yamazaki.90.kg/hankaku/hankaku09.html
ttp://yamazaki.90.kg/hankaku/hankaku08.html
ttp://www.yamazaki.90.kg/hankaku/hankaku06.html
ttp://yamazaki.90.kg/hankaku/hankaku05.html
ttp://www.yamazaki.90.kg/hankaku/hankaku01.html
ttp://yamazaki.90.kg/hankaku/hankaku02.html
ttp://www.yamazaki.90.kg/hankaku/hankaku07.html
ttp://yamazaki.90.kg/hankaku/hankaku04.html
0169デフォルトの名無しさんNGNG
>>167
子ウィンドウをクリップしたいのなら親に WS_CLIPCHILDREN
スタイルを追加すればいいのだが、そういうことやりたいのとは
違うんかな
017066NGNG
>>147
ありがとうございます。昨晩の66です。
LPCTSTRはUnicodeマクロが定義されているかどうかで
VCがASCII変数、Unicode変数に読み替えてくれるというこですよね。
それと同じ意味でTextOutもUnicodeのときはTextOutW、でないときは
TextOutAに読み替えられるから、いづれにせよOSは文字数を受け取ら
なくてもszを検知できるはずということを書いたのですが、
昨日はうやむやになってしまいました。間違っているのでしょうか?
0171デフォルトの名無しさんNGNG
>>170
最後は0じゃなくていいってはじめからいってんだろ!
0172デフォルトの名無しさんNGNG
win16apiのライブラリーとかヘルプのダウンロード出来るところ教えてください
0173デフォルトの名無しさんNGNG
>>170
\0を終端とみなさないから文字数を入れてやらないと
どこまで表示していいか判断できなくなる
昨日から言われているのに未だに分かってないのか
久々に本当の馬鹿を見た
0174デフォルトの名無しさんNGNG
>>167
問題点をはぐらかすような質問は止めれ。
どうせ WM_PAINT じゃなくても表示できんのだろ?
0175デフォルトの名無しさんNGNG
GetThreadSelectorEntry ってどう使うんだ。(具体的に)
あまり情報がないんだが
0176デフォルトの名無しさんNGNG
386のセグメントが分かってればすぐに使えると思うけど。
0177デフォルトの名無しさんNGNG
>147
さらに遅レス。LPCTSTRって
Long Pointer Const To STRing
だと思ってた。
0178デフォルトの名無しさんNGNG
TはTinyのT
0179デフォルトの名無しさんNGNG
TはTinkoのT
0180デフォルトの名無しさんNGNG
Q. What's the meaning of `T'?
A `T' means `Tamachan'.(He is the most popular animal in Japan.)
Reference:
ANSI Sec. 123.4; ISO Sec. 5.67
0181デフォルトの名無しさんNGNG
>>174
は?意味がわからんのですが…
WM_CREATEではできたけど、WM_PAINT時に表示できなかったから聞いてるのですが?
日本語読めますよね?

ちなみにShowWindowでは表示できました。
CreateWindowでWS_VISIBLEをしても表示できない理由はまだわかってませんが。
0182デフォルトの名無しさんNGNG
>>181
WM_PAINT のたびに CreateWindow() してるの?
0183デフォルトの名無しさんNGNG
どういう仕様なのか分からんけど EndPaint() の後に書いても駄目だろうか。
0184デフォルトの名無しさんNGNG
>>182
あ…そうなっちゃいますね…まずいヨカン

ではCreateWindow時に今後表示させる場所にWindowを全部非表示で作成しておいて
SW_SHOW, SW_HIDEで表示、非表示を切り替えるのがいいのでしょうか?
0185デフォルトの名無しさんNGNG
○WM_CREATE
×CreateWindow

でした
0186デフォルトの名無しさんNGNG
少なくとも WM_PAINT でウィンドウを作るなんてのはナンセンス。
サイズ変更枠をドラッグさせるだけでウィンドウが作られるなんて
考えるだけで。。
0187デフォルトの名無しさんNGNG
>>186
ありがとうございました!
今後気をつけます。
0188デフォルトの名無しさんNGNG
WM_PAINT時にウィンドウのリージョンを更新するような処理は禁止
WM_PAINT時にウィンドウのリージョンを更新するような処理は禁止
WM_PAINT時にウィンドウのリージョンを更新するような処理は禁止
0189デフォルトの名無しさんNGNG
EndPaintじゃねーよなw
SetWindowRgnのことか?
0190デフォルトの名無しさんNGNG
BeginPaintだろアフォ
0191デフォルトの名無しさんNGNG
ところでHDCの取得には
BeginPaint()とGetDC()があるの?
使い分けってしてますか?
0192デフォルトの名無しさんNGNG
用途分かれてる気がするケド
0193デフォルトの名無しさんNGNG
>>191
BeginPaint()はWM_PAINTハンドラ内専用。
WM_PAINT内でGetDC()を使うと無効領域がクリアされないから
永遠にWM_PAINTを受け取ることになる。
0194デフォルトの名無しさんNGNG
wm_paint内ではbeginpaint それ以外はgetdc
0195デフォルトの名無しさんNGNG
TはTakeshiのT
0196デフォルトの名無しさんNGNG
Typename
0197名無し@沢村NGNG
おまいらよwin32APIでプログラムをつくるのはいいが、レジスタやメモリには予約ビットというのがあるのを知っているか?
おまいらよ、予約ビットというのはプログラマが勝手に使ってはいけない領域だ。
おまいらよ、この予約ビットの存在を知らずにプログラミングすると、プログラムが暴走したりシステムがハングアップしたりして、大変危険だよ。
例えばmallocで1000バイトばかりメモリを確保した場合、その中に予約ビットが含まれていると、プログラムはどこもおかしくないのに、突然フリーズしてしまったという不思議な現象が起るのよ。
不正なメモリアクセスというやつだな。
この予約ビットというのはメモリのそこかしこに散りばまられているから、正常にメモリを確保するのは至難の技だぞ!!
プログラミングって大変だぞ、おまいらよ!!
0198デフォルトの名無しさんNGNG
沢村よ、最初の頃の元気がないな。

> 例えばmallocで1000バイトばかりメモリを確保した場合、その中に予約ビットが含まれていると

確保したのに、
予約されてて使えないビットがあるというのはいかがなものか。
0199デフォルトの名無しさんNGNG
WinSock2 使ってちょっとしたサーバプログラムを作ってる。

socket() → bind() → listen() の後に...
WSAAsyncSelect(Socket, Window, Accepted, FD_ACCEPT) ってやって、外部から接続に行くとちゃんと WindowProc() が呼ばれる。
で WindowProc() の中で accept() するんだけど、accept() が失敗したら MessageBox() でメッセージを出すようにしてた。
で、最初動かした時に accept() の引数が間違っててメッセージが出るのはいいんだけど、1つだけじゃなくいっぱいでて異常終了する。
デバッガで追っかけると、MessageBox() 呼んだ時に、WindowProc() が呼び出されて、もう一回 MessageBox() が呼ばれて...
で、最終的にスタックオーバーしている。

これって仕様なの ?
0200デフォルトの名無しさんNGNG
スタックオーバーフローを防ぐのはプログラマの責任です
0201デフォルトの名無しさんNGNG
>>199
WINAPIでの話しだけど、
WM_PAINTでMessageBox()を書くと、無限ループになる。
  (最終的には止まるが)
よく、winsockについては知らんが
MessageBoxが怪しいと感じる。
MessageBoxがでたら次はWM_PAINTでWindowProcが呼び出されている説は?
0202デフォルトの名無しさんNGNG
>>201 あふぉ。>>186,>>188 嫁
0203201NGNG
>>202
前、デバッグでMessageBoxをWM_PAINTに書いて
びっくりするくらいMessageBoxがなかなか消えなかったので、
>>199さんがもし、知らないならと思って書いた。
>>186,>>188は知ってたよ。けど、書いた。念のため。
0204デフォルトの名無しさんNGNG
>>201
プログラム上は、WM_PAINT とか (と言うか、Socket 関係以外) が来たらそのまま DefWindowProc に渡しているだけ。
ウィンドは作ってるけど、非表示だから WM_PAINT は来ていない。
タスクトレイ常駐させて、左クリックで表示するようにしているのでその時にはじめて WM_PAINT が来ていることも確認した。

どうも、accept で失敗しているので再度メッセージが飛んできているみたい...、でも誰も DispatchMessage() してないはずなんだが。
MessageBox() 内で DispatchMessage() されちゃうのかなぁ...。

>>202
荒れるからアフォと書くなよ。
ちょっと上にも出てたんだから WM_PAINT の件ぐらいはみんな理解してると思う。
0205デフォルトの名無しさんNGNG
>>201
それはチミ、こういうことかね?

WM_PAINT → MessageBoxをウィンドウの上に出す → MessageBoxが消えると再描画発生
  ↑                                        ↓
  └―――――← ヽ(`Д´)ノ ウワァァン―←―――――――――――┘
0206デフォルトの名無しさんNGNG
>204
>MessageBox() 内で Dispatch...
これは無いだろ。独自のモーダルループに入るはず。
こういう場合はデバッガじゃなくトレースした方が良かろう。
それとMessageBox()の親を自分(非表示の)にしてない?
呼んだ時は知らんが、閉じた時に無条件に親が生かされたと思うから、この場合はデスクトックなどにするべきじゃろう。
0207デフォルトの名無しさんNGNG
はあ?上のメッセージボックス(や他のアプリ)が移動しただけでも、
Enable/Disableに関係無くWM_PAINTは来るでしょ。
0208デフォルトの名無しさんNGNG
>>206
「独自のモーダルループ」は別にウィンドウを制限してないから
しっかりDispatchされる
0209デフォルトの名無しさんNGNG
ウインドーの中に四角いウインドーじゃ無い箱作ってドラッグさせたり
その箱クリックしてメニュー出したり糸をくっつけてくるくる回したりしたいんだけど
一番効率的なやり方教えてください
0210デフォルトの名無しさんNGNG
>>209
WS_PUPOPWINDOW
そうすればドラッグ、クリック時にメッセージ。
描画は自己責任。
メニューは自作。またはオーナードロー。
が多分一番楽。
0211デフォルトの名無しさんNGNG
エディットコントロールを2つ並べて、
その境界線をドラッグで動かせるようにするにはどうすればいいですか?
0212デフォルトの名無しさんNGNG
>>211
エディットコントロールを包括するフレームウインドウを作り、エディットビューを形成する
0213デフォルトの名無しさんNGNG
>>206
> それとMessageBox()の親を自分(非表示の)にしてない?

MessageBox(0, ...) としてるから問題ないと思うんだけど。

>>207
EnableWindow() と混乱してない ?
ShowWindow(SH_SHOW or SH_HIDE) だよ。

>>208
ごめん理解できない。
MessageBox() 表示すると、システムが勝手に俺のウインドメッセージまで Dispatch しちゃうってことなの ?
メインループには戻ってないのに ?
0214デフォルトの名無しさんNGNG
スワップファイルとページファイルはどのように違う物なのですか?
俺は今までずっと一緒だと思い込んでいたのですが、↓を読むと別物のよう。
ttp://www.microsoft.com/japan/developer/library/vccore/_core_.2f.swaprun.htm

どこで聞いたらいいか分からなかったけど、ここが最も近そうに思えたので、
ここに書き込みました。より適切なスレが他にありましたら誘導をお願いします。
0215デフォルトの名無しさんNGNG
>>213
MessageBoxはシステムが勝手にユーザーのウインドウをDispatchするよ。
メッセージループしてなくてもMessageBoxが表示されてる間はしてるのと同じ状態になる。

多分MessageBoxで隠れた部分を再描画するためにWM_PAINTを呼び出す必要があるからなんだろうけど、
俺の場合はWM_PAINTとかじゃなく、WM_TIMERが呼び出されちゃってはまったからなぁ・・・
0216デフォルトの名無しさんNGNG
>>214
9x系だとスワップファイル、NT系だとページファイル
じゃなかったっけな
0217デフォルトの名無しさんNGNG
>>214
確かに、別物であるかのように呼び分けてるね。
誤訳かと思って米MSを確認したら、そちらでも呼び分けてた。
>>216
リンク先に「これはNT4.0の機能」とあるので、9x系は関係無いっぽい。
0218デフォルトの名無しさんNGNG
ページファイルが仮想メモリのことでスワップファイルは実際に作られるファイルのこと
0219じいさまNGNG
セグメント: 1つのベースアドレスにオフセットを加えてアクセスする主記憶装置の論理範囲
スワッピング: セグメント全体を2次記憶装置にバックアップ/リストアすること
ページング: セグメントの部分を一定のサイズを単位としてバックアップ/リストアすること
0220デフォルトの名無しさんNGNG
>>215
なるほど確かに普通のアプリケーションでもダイアログボックスの後ろの領域の再描画はされてるから、WindowProc は呼び出されないとダメだね。
つーことは、WindowProc 内で MessageBox は使うのは要注意と言うことだな。

> 俺の場合はWM_PAINTとかじゃなく、WM_TIMERが呼び出されちゃってはまったからなぁ・・・

だねぇ、WM_PAINT とかならすぐ気付きそうなもんだけど、WM_TIMER とか Socket なんかだと関係なさそうだったから気付きにくいよね。

ありがと、1つ経験値が上がったよ。
0221デフォルトの名無しさんNGNG
矩形内に文字列を出力するのにDrawText()を使っているのですが
エクセルのような「縮小して全体表示」をするのにフォントサイズを
0.1ポイントづつ減らしてループで矩形内に収まるかを計算しているの
ですが、これって専用のAPIで提供されているのでしょうか?
0222デフォルトの名無しさんNGNG
Dispatchするというのは
日本語で言うとどんな意味ですか?
0223デフォルトの名無しさんNGNG
>>222
殺す
もっと一般的な意味があったと思うけど・・・
0224デフォルトの名無しさんNGNG
>>222-223
dispatch[dispトv]
v.t.
1 [III 名(副)]〈使者・軍隊などを〉(…に)急派[派遣]する;〈手紙などを〉(…に)急送[発送]する《to...》:〜 the Foreign Minister to the U.N. General Assembly 国連総会に外務大臣を(急いで)派遣する.
2 〈面会人などを〉さっさと送り出す;《話》〈仕事を〉手ぎわよくかたづける;〈食事を〉手早く済ませる:〜 a salesman セールスマンにお引き取りを願う.
3 〈人・動物を〉(とどめを刺して)殺す,「かたづける」:〜 a wounded deer 手負いのシカにとどめを刺す / 〜 to eternity 殺す.
-n.
1 U (使者などの)派遣,特派;(手紙などの)発送,投函(かん).
2 UC (人の)殺害,死刑執行.
3 U すばやい処理;迅速さ.
4 速達便;(軍事・外交などに関して送られる)公文書;(新聞記者の)特電;〔商〕(急行)運送;貨物(運送会社):the New York Times 〜 from Tokyo ニューヨークタイムスの東京からの特電.

語源 イタリア語より.もとはスペイン語 despachar(des-離れて+pachar 固定する=固定から離れる→急ぐ)
0225デフォルトの名無しさんNGNG
win2000です。
ファイルからビットマップを読み込んで印刷したいと思っています。
その途中の、LoadImageを使ってbmpを読み込むところで苦戦しています。
下のようなコードなのですが、どうやってもNULLしかかえってきません。
当然、ファイルは存在しています。。。
なにかミスしてます?

char *fname = "c:\\temp.bmp";
hbmp=(HBITMAP)LoadImage (
NULL,fname,IMAGE_BITMAP,
0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
0226デフォルトの名無しさんNGNG
>>225
第一引数
0227デフォルトの名無しさんNGNG
>>223
じゃあダブルディスパッチは心中?
0228デフォルトの名無しさんNGNG
>>227
二重派遣だな(゚∀゚)



                                 (´Д⊂ ウウ…
0229デフォルトの名無しさんNGNG
>>225
とりあえずFormatMessageしてみそ
0230デフォルトの名無しさんNGNG
>>221
DrawTextで裏画面に描画、
StretchBltで裏のを表に縮小コピーの方がいいと思いますが。
0231225NGNG
ヘルプは何度も読んだのですが、第1引数は第6引数にLR_LOADFROMFILEを指定していれば無視されるようなことが書かれていたのでNULLにしていました。
一応GetModuleHandle( NULL )と(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE )で試しましたが同じでした。

FormatMessageでは、「この操作は正しく終了しました」と出ます。
もちろん、LoadImageではNULLが返ります。

誰か助けてー
0232225NGNG
DirectXのAPIで作成したBMPだったんだけど、そっちがおかしかったみたいです。
ペイントだと表示できるのに。
BMPのバージョンとかあるの?どうすりゃいいんだろう?(泣)
0233デフォルトの名無しさんNGNG
>>225
もうちょっと長めのコードを書いてみそ。他の所に間違いがあるのかも。
コードが長いなら以下のところに書くといいよ。
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
0234デフォルトの名無しさんNGNG
>>232
Yes。BMPには複数のバージョンがある。
0235225NGNG
>>233
LoadImageに失敗するコードを貼り付けておきます。
ペイントで適当に作ったBMPでは成功しています。

>>234
その場合、LoadImage以外のAPIを使えば解決するの?

char *fname = "c:\\tempsurface.bmp";
LPDIRECT3DSURFACE9 backbuf;
AGlobal::GetD3DDevice()->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&backbuf);
D3DXSaveSurfaceToFile(fname,D3DXIFF_BMP,backbuf,NULL,NULL);
backbuf->Release();
if((hbmp=(HBITMAP)LoadImage (
NULL,
fname,
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE|LR_CREATEDIBSECTION
))==NULL)
{
GetLastError()...
}
0236233NGNG
>>234
バージョンってどんな?16色、256色、1670万色の事?それとも他にある?
>>232>>235
ペイントで開くと言うことはプログラムでの開き方がおかしいと言うこと。
僕が使うのはCleateFileか標準Cだから、LoadImageは余り分からないけど
最後の引数をLR_CREATEDIBSECTION|LR_LOADFROMFILE|LR_DEFAULTSIZE
にすると動?
0237デフォルトの名無しさんNGNG
ステータスバーのサイズ変更用グリップのサイズって固定なんでしょうか?
それともデスクトップの設定によって可変なんでしょうか?
可変ならばグリップサイズを取得するAPI、もしくは方法を教えてください。
今のところグリップ幅15程度にハードコーディングしてしまっています。
0238デフォルトの名無しさんNGNG
接続されてるジョイパッドの情報を取得するAPI教えてください。
お願いします。
0239デフォルトの名無しさんNGNG
>>238
http://www.google.co.jp/search?q=%E3%82%B8%E3%83%A7%E3%82%A4%E3%83%91%E3%83%83%E3%83%89+api&ie=UTF-8&oe=UTF-8&hl=ja&lr=
なぜこの程度も出来ない?
インターネット上にいくら情報があるといっても、使う奴が無能である限り宝の持ち腐れ
0240デフォルトの名無しさんNGNG
>>239

掲示板で質問すれば、君みたいな親切くんが検索の仕方まで
教えてくれるからなあ。
0241221NGNG
>>230
そんな方法があるんでつね。
やってみます。ありがとう。。。
0242デフォルトの名無しさんNGNG
windowsフォルダーの中の起動に必要な重要なファイルとかを
使っている人にばれないように消去する方法教えてください
0243デフォルトの名無しさんNGNG
>>236
LoadImageはDDB型。
CreateFile,標準CはDIB型。
DirectXは知らんが、編集はDIB型がいい。
DIB使うなら検索でBMPフォーマットから知れ。
0244デフォルトの名無しさんNGNG
>>242
削除プログラム作って、
レジストリのキー「RUN」に追加する。
書き方は他のを参照。
スタートアップに入れる方法をあるが、
ばれやすそうなんで、そっちオススメ
0245デフォルトの名無しさんNGNG
マルチデスクトップ環境で、マウスカーソルがあるモニタの
左上のスクリーン座標かスクリーン座標系のRECTを取得したいのですが、
何かいい方法はありませんか?

POINT p;
MONITORINFOEX monInfo;
GetCursorPos(&p);
monInfo.cbSize =sizeof(monInfo);
GetMonitorInfo(MonitorFromPoint(p,MONITOR_DEFAULTTONEAREST), &monInfo);

として、
MONITORINFOEX構造体のrcMonitorでうまく取得できると思ったのですが、
実際作ってみるとうまくいってないみたいです。
よろしくお願いします。

0246デフォルトの名無しさんNGNG
>>245
GetClientRectでデスクトップのハンドル使っても
駄目なのか?
0247デフォルトの名無しさんNGNG
>>246
それだとクライアント座標系での取得になってしまうので、
左上の座標は必ず(0,0)になってしまうと思いますし、
モニタの座標ではなく、すべてのモニタを囲む長方形(VirtualDesktop)の
左上、右下の座標が取れるだけだと思うのですが間違ってますか?

スクリーン座標で
(0,0) (1600,0) (2400,0)
┌───┬──┐
│1    │2 │
│ ├──┘(2400,600)
└───┘
(0,1200)(1600,1200)
のようなモニタ配置だとして、「2」のモニタのスクリーン座標(1600,0)-(2400,600)が
ゲットしたいのです。なにかよい方法はないでしょうか・・・。
0248デフォルトの名無しさんNGNG
激しくずれました。
すいません。
0249デフォルトの名無しさんNGNG
>>248
レジストリにその情報がある可能性が高いと思われ。
あるかは知らんが。
0250214NGNG
>>216-219
ありがとうございます。おかげで理解できました。
0251デフォルトの名無しさんNGNG
Windowsのデスクトップ上のどこかで
IMEがON/OFFされたことを検出する方法はありますか?
0252デフォルトの名無しさんNGNG
ホイールマウスのホイールを無効にするにはどうしたら良いでしょうか?
0253デフォルトの名無しさんNGNG
レジストリーを完全に破壊するにはどうやったら良いですか?
バックアップとかあるのも壊したいのです
0254デフォルトの名無しさんNGNG
そのマシンの前に立つ。
次に
0255デフォルトの名無しさんNGNG
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>254
0256デフォルトの名無しさんNGNG
>>252
ホイールのメッセージを無視するとか
0257(;´Д`)NGNG
>>243
LoadImageでDIBも問題なく開けますが・・・
0258動画直リンNGNG
http://homepage.mac.com/hitomi18/
0259デフォルトの名無しさんNGNG
LoadBitmap と勘違いしたんでしょ
0260デフォルトの名無しさんNGNG
>>243 悲惨だな
0261デフォルトの名無しさんNGNG
MSDN ライブラリ Visual Studio 6.0 には
Windows NT : LR_LOADFROMFILE はサポートされていません。
なんて事が書いてあるが
これってNT3.1の事だろうか…
0262デフォルトの名無しさんNGNG
>>261
あまり気にするな
0263デフォルトの名無しさんNGNG
>>245
GetMonitorInfoで駄目ならEnumDisplayMonitors使ってみたら?
あと、一応MonitorFromPointの戻り値を確認してみては?
0264デフォルトの名無しさんNGNG
>>252
詳細オプションで検出しない、にする。
0265デフォルトの名無しさんNGNG
AMDのOpteronで、Win32から
64ビットアプリケーションを作りたいんだが、アセンブラプログラムが必要?
C++Builderでできる?
0266デフォルトの名無しさんNGNG
64bit対応の命令含んだプログラムを作ることと
64bitアプリを作ることは違うのだが理解しているのだろうか?
DOSプログラムで32bit命令を使ったからといって
32bitアプリを作ったことにはならないのだが
馬鹿そうだから理解していないんだろうな
0267デフォルトの名無しさんNGNG
後ろにExって付いてるやつと付いてないやつはどっちがいいんですか?
効果はほぼ同じですよね?Exの方が優れているのでしょうか?
0268デフォルトの名無しさんNGNG
>>267
ヘルプに書いてあるに何故読まない?
いくら盲目でも読み上げソフトぐらいあるだろう。
0269デフォルトの名無しさんNGNG
ヘルプにはAPIのことについて書いてないです
Delphi6per
0270デフォルトの名無しさんNGNG
>>269
何故MSDNのオンラインサイトを見ない?
0271デフォルトの名無しさんNGNG
>>268 >>270
このまえから、どうでもいい質問(ネタ)かいて、
かまってもらおうとしている奴だから、相手しないほうがいいよ。
0272デフォルトの名無しさんNGNG
このスレの存在意義がなくなるからです
自分で調べたんですけど、書いてあげようかなと思って^^;
0273148 ◆Kg.N7J02zE NGNG
こんにちは,先日プリンタ設定の方法について質問した者です.
結局,OpenPrinterで開いてSetPrinterで設定しても,OpenPrinter
しているうちに他のクライアントがOpenPrinterしてSetPrinterできて
しまうことが分かりました.

(1) OpenPrinter():ハンドル取得
(2) Getprinter():現在の設定を取得
(3) SetPriner():印刷設定
(4) 印刷実行
(5) SetPriner():(2)で取得した設定に戻す
(6) ClosePrinter():終わり

の過程の途中で他クライアントから同じ過程を実行されてしまうことも
可能ということなんです。
プリンターの設定を変える過程で、他のクライアント
から同じPGで変更されてしまうと、プリンタ設定が元に戻らないという現象です。

識者の方、よろしければご教授下さい。
0274デフォルトの名無しさんNGNG
>>273
ヘルプに書いてあるに何故読まない?
いくら盲目でも読み上げソフトぐらいあるだろう。
0275デフォルトの名無しさんNGNG
>>273
てめーはプリンター使うなアホ
0276デフォルトの名無しさんNGNG
ボタンがフォーカスを得たときの点線を描画されないようにしたいのですが、
オーナードロー使わずにできる方法があれば教えて頂けないでしょうか。
0277デフォルトの名無しさんNGNG
k i e r o
0278デフォルトの名無しさんNGNG
>>276
http://www.geocities.co.jp/MusicStar-Bass/6678/bero.html
0279デフォルトの名無しさんNGNG
オーナードローしか方法は知らんが、どんなわけありでそんな奇妙な仕様にしたいのだ。
0280デフォルトの名無しさんNGNG
>278
何だこれ! CD-ROMがイジェクトされたぞ。
0281デフォルトの名無しさんNGNG
ほんとだ。
ブラクラの類だろうけど、面白そうだからクリックしちゃったよ。
0282デフォルトの名無しさんNGNG
>>281
おいおい。これウィルスだぞ
0283デフォルトの名無しさんNGNG
んなわけない。
ソース見ればわかる。
ただのVB厨のいたずらw
0284276NGNG
>>279
ボタンが幾つか並んでいる状態でクリックを繰り返すと
点線が残って見た目がきれいでなかったので・・・
点線はとりあえずこのにしておきます。

スレの流れにばっちりはまった書き込みしてしまった
ようですみません。逝ってきます。
0285デフォルトの名無しさんNGNG
set cdaudio door open
0286デフォルトの名無しさんNGNG
アイドル処理ってどうやってますか?
メッセージループにPeekMessageを使うとCPU使用率が100%になってしまうので
100ミリ秒でタイマーセットしたんですが、他に常套手段てありますか?
0287デフォルトの名無しさんNGNG
>>286
GetMessage() じゃ何か不満でもあるのか ?
0288デフォルトの名無しさんNGNG
GetMessage使ったらメッセージが来るまでブロックされてアイドル処理もあったもんじゃない
0289デフォルトの名無しさんNGNG
>>287
MSG msg;
while(GetMessage(&msg, NULL, 0, 0) > 0){
OnIdle(); // アイドル関数
TranslateMessage(&msg);
DispatchMessage(&msg);
}

こういうことでしょうか?
ペゾルド本5版(P235)にデッドタイムを利用するためにPeekMessageを使う方法が
あったのでてっきりPeekMessageを使うものだと思ってました。
GetMessageだとキューからメッセージを取り出すまで制御を返さないのですが
問題ないんでしょうか。
0290デフォルトの名無しさんNGNG
>>287のメール欄見ると切なくなってくる
0291デフォルトの名無しさんNGNG
ttp://www2.bbspink.com/test/read.cgi/erog/1050908540/l50
390あたりからどうぞ。
※低レベル注意
0292あいNGNG
★グチョ濡れだけど見てくれる?★
オマンコを見たい人は画像をクリックして下さい

腿   \_  |  _/
彡彡彡
         ミミミミ クリトリス
          ミミミミ / ̄ ̄ ̄ ̄
         ノ σ ヽ 尿道
      / / ゜ヽ ̄ ̄ ̄ ̄
大陰唇  / //\\ \ 
 ̄  ̄    ( ( 膣 ) ── 小陰唇
       \ \\// /
         `   \/  '
\       *──肛門
  \_____/\_____/
http://jbbs.shitaraba.com/computer/2100/jsweb_1.html
0293デフォルトの名無しさんNGNG
>>289
Peekしてメッセージが着てなかったら
Sleep(0);しる。
0294デフォルトの名無しさんNGNG
>>291
アイドル処理とあんま関係ないような。
0295デフォルトの名無しさんNGNG
ふつうWaitFor系使うだろ
0296デフォルトの名無しさんNGNG
WaitFor系って待機は出来るけどアイドル処理挟めたっけ?
0297デフォルトの名無しさんNGNG
みんな「CPU使用率が100%」にばかり目がいって「アイドル処理」を忘れてやしないか…
0298デフォルトの名無しさんNGNG
>297
ヒントはでてるから無問題。
0299デフォルトの名無しさんNGNG
WaitForMultipleObjectsExでタイムアウトに100ミリ秒セットすればいいんじゃないか?
MFCのようにメッセージ後に一気に走らせるタイプならそもそもPeek/GetMessageで十分だし。
0300デフォルトの名無しさんNGNG
>>299
それなら別にGetMessageとタイマー使えばいいんでは
0301デフォルトの名無しさんNGNG
ゲームならまだしも普通のWinアプリでメインスレッドにSleepやWaitForを入れるもん?
0302デフォルトの名無しさんNGNG
>>300
同意
0303デフォルトの名無しさんNGNG
ちなみにMFCのアイドル処理は特定のメッセージ後はアイドル関数を呼ばないようにしたり、フラグ使ったりして呼び出し回数を抑制してるっぽいね
0304デフォルトの名無しさんNGNG
286はどういう処理がしたいんだ?
OnIdleは定期的に呼んで欲しいのか?
定期的に呼んで欲しいならSetTimerでも使った方がいいかと。
0305デフォルトの名無しさんNGNG
>>304
MFCがアイドル時にしてるようなこと、例えばメニューやコントロールの更新ハンドラを
実行したいと思っています。
具体的にはリストビュー内のアイテム数をステータスバーに表示させるといったことです。

そのため、定期的に呼ばれる必要はありますが、精度はそれほど気にしません。
なので、今のところタイマーで100ミリ秒程度にしてるんですが、もっと良い方法や
常套手段があるのなら教えて欲しいと思い質問しました。
0306デフォルトの名無しさんNGNG
>>305の用途だとSleep/WaitFor〜は使いませんよね?
0307デフォルトの名無しさんNGNG
>>305
それならそうとはじめから書け。
あまり感心しないぞ。
0308デフォルトの名無しさんNGNG
>>278
Set oWMP = CreateObject("WMPlayer.OCX.7" )
Set colCDROMs = oWMP.cdromCollection

if colCDROMs.Count >= 1 then
  For i = 0 to colCDROMs.Count - 1
    colCDROMs.Item(i).Eject
  Next
End If

ダサッ!For Each 使えよ。
0309デフォルトの名無しさんNGNG
>>308
(´-`).。oO(…使えたかなぁ?)

なんか前やってみてダメだった記憶があるんだ
0310デフォルトの名無しさんNGNG
>>305
PeekMessageでメッセージが無かったらOnIdleを呼んでからWaitMessageしる
0311デフォルトの名無しさんNGNG
int CWinApp::Run(void)
{
 bool bIdle;
 long lCount;
 MSG Msg;

 bIdle = true;
 lCount = 0;

0312デフォルトの名無しさんNGNG
 while(1){
  if (::PeekMessage(&Msg, NULL, 0, 0, PM_NOREMOVE)){
   if(!::GetMessage(&Msg, NULL, 0, 0))
    break;

   if(!this->PreTranslateMessage(&Msg)){
    ::TranslateMessage(&Msg);
    ::DispatchMessage(&Msg);
   }

   bIdle = true;
   lCount = 0;
  }
  else if(bIdle){
   if(!this->OnIdle(lCount))
    bIdle = FALSE;
   else
    ++lCount;
  }
  else
   ::WaitMessage();
 }

 return Msg.wParam;
}
0313デフォルトの名無しさんNGNG
bool CWinApp::PreTranslateMessage(MSG *pMsg)
{
 return false; // trueを返すとディスパッチしない
}
bool CWinApp::OnIdle(LONG lCount)
{
  return false; // trueを返すと処理を続ける
}
0314デフォルトの名無しさんNGNG
おっと間違い

>>if(!::GetMessage(&Msg, NULL, 0, 0))
>>break;
if(Msg.message == WM_QUIT)
 break;
0315デフォルトの名無しさんNGNG
たびたび訂正

>>if(Msg.message == WM_QUIT)
>> break;

↑にすると動作がおかしくなる
↓のままでよかった

if(!::GetMessage(&Msg, NULL, 0, 0))
 break;
0316デフォルトの名無しさんNGNG
みなさん、JPEGの保存てどうやってますか?
標準APIじゃでいないよね?ライブラリは何使ってる?
0317名無し@沢村NGNG
libjpeg
GDI+
0318316NGNG
http://www.smalleranimals.com/jpegfile.htm
のを試したんだけど、RGBのバッファから作成する方法が変な動作するんで
他のを使おうかと迷ってる。

DGI+は、↓にあるのを参考にやったら固まりまくったんで
抵抗あるっす。
http://user.ecc.u-tokyo.ac.jp/~rr26303/develop/gdiplus/gdiplus.html
0319デフォルトの名無しさんNGNG
フォルダを選択するダイアログってありますが
そのダイアログにフォルダを作成するボタンつきのが
ありますよね。
あれってどうやったらできるのでしょうか?
0320デフォルトの名無しさんNGNG
>>319
CreateWindowでボタンを直接作成、ダイアログをサブクラス化してメッセージを処理。
0321デフォルトの名無しさんNGNG
>>274-275
設定の衝突を避ける方法は
MSDNにも載っていないことが分かってないDQN発見。
0322319NGNG
>>320
なるほどー
やってみまつ
0323デフォルトの名無しさんNGNG
>>316

VCL
0324デフォルトの名無しさんNGNG
>>315
>動作がおかしくなる
PeekMessageのPM_NOREMOVEをPM_REMOVEにすればいいんでないかい
0325305NGNG
>>310、>>311
ありがとうございます。WaitMessageがキーのようですね。
それで検索したところhttp://msdn.microsoft.com/library/en-us/dnwui/html/msdn_getpeek.asp
のようなページもみつかりました。(ページの一番下の内容)
>>311さんのはMFC実装のようにアイドル処理をやめたりメッセージをディスパッチする前に
何かしたりと、より細かく制御できるというものですね?
自分の用途の場合は>>310さんの方法で十分かもしれませんのでこちらでいきたいと思います。
0326デフォルトの名無しさんNGNG
広末涼子はアイドルか田舎
0327デフォルトの名無しさんNGNG
>>326 ?
0328デフォルトの名無しさんNGNG
>>311
一生懸命書いて憐れというかアホだな
0329デフォルトの名無しさんNGNG
プリンタのspooler設定を自分でしなければいけないのはけっこう妙な仕様の気もするが
下位APIなら当然か…

>>325
WaitMessageのかわりに
MsgWaitForMultipleObjectsでタイムアウト値を指定すれば
ある程度定期的にOnIdleを実行できる
別にタイマでもいいけど
0330デフォルトの名無しさんNGNG
editorの窓の中に行番号ふるにはどうしたら
いいですかね。
もしかしたら、別窓
0331デフォルトの名無しさんNGNG
■ VisualC++(MFC限定)相談室 MFC7.dll■
http://pc2.2ch.net/test/read.cgi/tech/1047949606/l50
0332デフォルトの名無しさんNGNG
ReadProcessMemoryの第2引数に渡す
ベースアドレスと言うのはどういうものなのでしょうか?

恥ずかしながら、とあるエロゲーのデータを個人的に
変えてみたくて色々調べたのですが、どうも良く分からなくて。
GameHackというシェアウェアの試用版で、目的の箇所の
アドレスっぽいのは分かったのですが、これをそのまま使っても取得できませんでした。
(「メモリロケーションへのアクセスが無効です」と出ます)

昔で言うオフセットとセグメントみたいなのが必要なのか、
あるいは0x400000辺りを引かなきゃとか・・・、
そのツールのアドレスが汎用的では無いのか・・・
自分なりに調べたのですが、さっぱりでして。

厨房エロパワー丸出しですが、本人至って真剣です。レス頂ければ幸いです。
0333デフォルトの名無しさんNGNG
DWORD val;

val=1;
if(WSAIoctl(sock,SIO_RCVALL,&val,sizeof(val),NULL,0,&d,NULL,NULL)==SOCKET_ERROR){
 printf("WSAIoctlErr:%d\n" ,WSAGetLastError());
}

を実行するとWSAEINVAL(10022)が帰って来るんですが、何故でしょうか?
unsigned intでやっても同じエラーです。どなたかヒント頂けないでしょうか?
0334デフォルトの名無しさんNGNG
>>333
アドミニ権限は?
0335デフォルトの名無しさんNGNG
エロは最大のモチベーションなり
0336デフォルトの名無しさんNGNG
>>334
レスthx
当然Administratorです。
WinXP/Win2000でテストしましたが、結果は同じです(´・ω・`)
0337デフォルトの名無しさんNGNG
Windowのサイズ変更をある単位ごとに制限する方法がよく分かりません。
つまり、例えば枠を掴んで8pxごとにカクカクとサイズを変えるような…
0338デフォルトの名無しさんNGNG
ウィンドウフックしてサイズ変更捕まえる。
0339デフォルトの名無しさんNGNG
WM_WINDOWPOSCHANGINGで弄るとか。
0340デフォルトの名無しさんNGNG
WM_SIZINGとか
0341デフォルトの名無しさんNGNG
>>335
まったくです<(*´∀`)
帰ってまでPCに向かうのは久しぶり
しかし、やはりレス無いですねぇ…

>>337
340さんも仰ってますが、WM_SIZINGで
wParamの値(WMSZ_RIGHTとか)を調べて、
場合分けでサイズ変えてくのが良いかも

lParam(=LPRECT)の値を変えると、そのままウィンドウサイズになりまする
0342デフォルトの名無しさんNGNG
>>332
普通に読みたいアドレスを渡すだけだよ。
他の引数に問題あるだけかと。
そのプロセスに対してアクセス権はあるの?
0343デフォルトの名無しさんNGNG
>>342
いやはや、おつき合いありがとうございます。

PROCESS_ALL_ACCESSで開いてはいます。
しかし、見当違いの値が入ってるとかならともかく、
エラーがでるってことは、仰るとおり他がダメそうですねぇ。

普通のアドレスで良いと、分かっただけでも助かりました。
もう一度ハァハァしながら見直してみます。レスありがとうございました。
0344デフォルトの名無しさんNGNG
そもそもアドレスが間違っているのではないかと…
あるいはnSizeがおかしいとか(0だとエラーになるのかな?)
0345デフォルトの名無しさんNGNG
質問ですが、
InsertMenu等でシステムメニューを追加したのですが
その追加したメニューにサブメニューって作る事はできますか?
0346 NGNG
どうでもいい事なんだがテンプレの、その3へのリンクが間違ってるぞ。
Build5から代々Duild11まで気付かないのは、それだけ過去ログを見ない人が多いのか・・・
正しくは
http://pc.2ch.net/tech/kako/1017/10170/1017072275.html

で過去ログさらっと見たところ無かったので質問させてください。
名前付きmutexの名前一覧を取得する方法はありますか?
何か過去ログ見ると、SPYでmutexの文字列見つけて・・・っていうのが
あったので、SPYで出来るんならAPIがあると思うんですが。。。
0347 NGNG
>>345
CreatePopupMenu()でサブメニュー作る。
で InsertMenuItem() でメニューにサブメニューを追加、かな?
0348デフォルトの名無しさんNGNG
メニューバーとツールバーの境界線を消す方法は無いですか?
メニューを付けずにツールバーだけを付けたウィンドウの場合、
あの境界線が見えてしまってかっこ悪いです。
0349デフォルトの名無しさんNGNG
>>347
ありがとうございます。
早速試してみます。
0350デフォルトの名無しさんNGNG
spy++のファインダーのアイコンですが、
ドラッグして他のウインドウの上にあわせたりできますよね
あれってどうやって実現してるんですか?
0351デフォルトの名無しさんNGNG
>>350
多分だけど、ドラッグされたらカーソルをファインダーのアイコンに変えて
逐一WindowFromPointあたりの関数使ってターゲットされてるウインドウを取得して
そのウインドウにドラッグ判定させて枠表示・・・みたいな感じじゃないかなぁ
Spy++の中身見てみないと分からないが
0352デフォルトの名無しさんNGNG
>>350
猫にそのものズバリが有ったりする
0353デフォルトの名無しさんNGNG
Windows2000やXPでタスクトレイに吹き出し型のメッセージボックスって
出せますよね。
あれをやりたいのですが、参考になるサイトとかありませんでしょうか?
0354デフォルトの名無しさんNGNG
http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/tooltip/usingtooltips.asp?frame=true
下のほうにあるよ。
0355デフォルトの名無しさんNGNG
>>354
さんくす。やってみます。
0356質問NGNG
質問です。
親窓に子窓をはりつけて、子窓のウィンドウプロシージャ内で
WM_KEYを待っているのですが送られてきません。親窓に送られて
いるようです。マウスイベントは子窓で受け取れているのですが、
キーイベントはどうしたら受け取れますか?
0357名無し@沢村NGNG
>>356
SetFocus()
0358デフォルトの名無しさんNGNG
FILE_FLAG_DELETE_ON_CLOSEって
後から取り消すことはできないのですか?
0359デフォルトの名無しさんNGNG
ハードリンクしてもだめ?
0360デフォルトの名無しさんNGNG
>>671, >>681
Digital Mars C++がメインでOpenWatcomも入れてる。

OpenWatcomはコンパイラの他にIDE, vi風エディタ(日本語非対応),
アセンブラ, obj逆アセンブラ, リソースエディタと一通りそろっている。

各コンパイラの詳細は専用スレで聞いた方が早い。

タダで使えるBorland C++ part2
http://pc2.2ch.net/test/read.cgi/tech/1030493157/l50
OpenWatcom C++
http://pc2.2ch.net/test/read.cgi/tech/1033433728/l50
"Code of the Nerds" Digital Mars C/C++
http://pc2.2ch.net/test/read.cgi/tech/1044210976/l50
MinGWを使おう
http://pc2.2ch.net/test/read.cgi/tech/1042611308/l50
GCCについて part2
http://pc2.2ch.net/test/read.cgi/tech/1046179115/l50
タダで最強!フリーC/C++コンパイラ
http://pc2.2ch.net/test/read.cgi/tech/1035882599/l50
0361デフォルトの名無しさんNGNG
ぎゃあ、誤爆した・・・
スマソ。
0362デフォルトの名無しさんNGNG
VisualC++のWin32 ApplicationでRECT,POINT,SIZEの構造体をグローバル変数
として使うのは無理なんでしょうか?(関数内では使えることを確認してます)
インクルードファイルがwindows.hだけではだめとか?
0363デフォルトの名無しさんNGNG
>>362
できる。
なぜ、できないと思ったのかは知らんが・・・
0364デフォルトの名無しさんNGNG
ソンナおかしなことはないと思う。
0365デフォルトの名無しさんNGNG
ハンドル、デバイスコンテキスト
この二つの言葉の意味を教えてください。
0366デフォルトの名無しさんNGNG
ハングルと出歯亀コンテストの別名です
0367デフォルトの名無しさんNGNG
デバイスコンテキストのハンドルが必要になるファンクションとはどういったものですか
0368デフォルトの名無しさんNGNG
描画関連色々
0369デフォルトの名無しさんNGNG
デバイスコンテキストに対して何らかの操作を行うもの。
0370 NGNG
>>365
ハンドルってかなり抽象的だよね。何にでも使えるし。
ようするに、ある何かのデータ空間の1つのデータに対する一意なindexの事だよ。
0371デフォルトの名無しさんNGNG
ハンドルっていうのは、車に付いてるハンドルと同じだよ
その車のハンドルが分かれば、その車を操作できるようになるよ
0372デフォルトの名無しさんNGNG
netapi32.dllを動的リンクして
lngReturn = NetMessageBufferSend(NULL,address,fromname,(BYTE *)msg,sizeof(WCHAR) * lstrlenW(msg));
とした時にlngReturnの値がAPI本と合いません。
相手(送信先)が存在しない場合にlngReturn == 2273になるはずですが
225が帰ってきます。
何故でしょう?

0373デフォルトの名無しさんNGNG
デバイスコンテキストハンドルのビギンペイントが
ゲットディーシーの意味など分かりやすく説明してください
ゲットディーシーが何をしてオブジェクトと構造体の関係なども教えてください
helpみろとか自分で調べろみたいな荒らしは放置でよろしくお願いします
0374動画直リンNGNG
http://homepage.mac.com/hitomi18/
0375デフォルトの名無しさんNGNG
>>373
ネタにひねりがない
0376デフォルトの名無しさんNGNG
MessageBoxで表示されるウィンドウの右上の閉じるボタンを灰色(無効)にするにはどれを指定すればいいんでしょうか
0377 NGNG
>>373
なるほど、高度な釣りとはこうやるのか。
質問の回答ではないけどマジレスすると、
「何が分からないのか分かってから質問を書く」
「何から何まで全ていっぺんに教えてもらおうとする」
事はしない方がいいと思うよ。社会でもネットでも。
0378 NGNG
「何が分からないのか分かってから質問を書く」
↓
「何が分からないのか分かってないのに質問を書く」
0379デフォルトの名無しさんNGNG
http://www.kenmon.net/
↑
これってアリ?

0380デフォルトの名無しさんNGNG
>>373
簡単に言うとHDCを値を返すもの。
あとの1H5Wは自分で調べろ。
Google逝け。
 >>377-378の言うとおりだ

0381 NGNG
ビットマップのフォーマットを考えた奴は誰ですか?
爆弾を投げつけたいです。
0382デフォルトの名無しさんNGNG
>>381
どうぞ
0383デフォルトの名無しさんNGNG
>>379−383
0384362NGNG
POINT giko = {2, 2};
だとうまくいきました.

POINT mona;
giko.x = 2;
giko.y = 2;
だとerror C2501,C2371が出るのは正常なんでしょうか?
0385デフォルトの名無しさんNGNG
>>384
gikoなのかmonaなのかはっきりせい。…というのはどーでもいいが、
グローバルでは変数/関数の"宣言"以外のことはできない。
> giko.x = 2;
> giko.y = 2;
代入とか禁止。
0386デフォルトの名無しさんNGNG
MessageBoxで表示されるウィンドウの右上の閉じるボタンを灰色(無効)にするにはどれを指定すればいいんでしょうか
0387362NGNG
>385
なるほど.ありがとうございますた.
#monaはgikoの間違いでした.スマソ
0388デフォルトの名無しさんNGNG
>>379
誤爆なんかな?
でも、
・例えば検問を知らずにシートベルトしない
・検問をしているのを知っているので、せめてその間はシートベルトする
では、どちらが本当に正しいのか。
0389デフォルトの名無しさんNGNG
VC.NET みたいなインターフェースって
どんな風に実装されているの?ポインタだけでもいいんで教えてください。
0390デフォルトの名無しさんNGNG
質問おながいします。m(__)m
ウィンドウのクライアント領域を任意に操作することは
できるのでしょうか?
例えばコントロールで上下左右に10ピクセルの非クライアント領域
を設けてそこはPGから触れないようにしたいのですが。。。
0391デフォルトの名無しさんNGNG
>>390
描画の制限だけならSelectClipRgn
0392390NGNG
>>391
レスありがとうございます。
PGにはあくまで左上を原点として描画させたいので、できれば
リージョンではなくクライアント領域を変更したいのですが。。。
0393デフォルトの名無しさんNGNG
>>392
WM_NCシリーズで色々するんじゃなかったかな。
とりあえずクライアント領域のサイズ変えるのはWM_NCCALCSIZE。
0394デフォルトの名無しさんNGNG
>>392
それではSetViewportExtEx とか SetWindowExtEx とか。
0395394NGNG
394を訂正
SetViewportOrgEx か SetWindowOrgEx
0396390NGNG
>>393
スゴイ!APIではなくてWMなのですね。MSDNでも日本語訳のSDKドキュメント
がなく全く知りませんでした。

>>394-395
クライアント領域を触らずに実現する方法もあるんですネ。
PGはクライアント、非クライアントを区別せず、ただDCに
描画するだけなので、十分にいけそうです。

両方の方法で試してみたいと思います。
レスをくださった皆さんどうもありがとうございました。m(__)m
0397デフォルトの名無しさんNGNG
ネットのバイト見つけた。バナー収入登録したら1000円くれるってさ。
http://members.goo.ne.jp/home/madcap0  
0398デフォルトの名無しさんNGNG
>>396
WM(Window Message)はAPIに送るメッセージ(定数)。てか、釣られちゃった?
0399デフォルトの名無しさんNGNG
>>398
?
0400390NGNG
>>398
いえ、僕の書き方が紛らわしかったです。
クライアント領域に十分なウィンドウサイズを計算する
AdjustWindowRect()みたいな関数があるので、クライアント領域
サイズを変更するSetWindowRect()、SetClientRect()みたいな関数
もあるのかと思ったもので。。。
0401372NGNG
372ですが、どなたもおわかりになりませぬか、残念
失礼しました<m(__)m>
0402デフォルトの名無しさんNGNG
「ご迷惑をおかけして申し訳ありません」のエラーウィンドウを意図的に出すことってできますか?
0403デフォルトの名無しさんNGNG
>>402
RaiseException
0404デフォルトの名無しさんNGNG
ありがとうございます。さっそく調べてやってみます
0405デフォルトの名無しさんNGNG
コマンドプロンプトに文字列を表示するにはどうすればよいのでしょうか。

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
if(hConsole != INVALID_HANDLE_VALUE){
 TCHAR szMessage[] = "hello";
 DWORD dwWritten;
 WriteFile(hConsole, szMessage, lstrlen(szMessage), &dwWritten, NULL);
}

このようなプログラムをコマンドプロンプトから実行しても、dwWrittenは0で
何も表示されませんでした。
0406デフォルトの名無しさんNGNG
subsystemはconsoleでないといかんよ。
0407405NGNG
>>406
てことは普通にexeをダブルクリックするとGUIアプリ、DOS窓から起動するとコンソールアプリ、
といったようなプログラムは不可能ということですか・・・ガクリ
0408デフォルトの名無しさんNGNG
ふつうに起動すると、GUIアプリ、
DOS窓から起動すると、「別のDOS窓を開く」コンソールアプリは
可能かもしらんが。
0409デフォルトの名無しさんNGNG
他のスレから誘導されてやってきました。
よろしくおながいします。

DOS窓が起動しないコンソールアプリを作りたいのですが、
可能でしょうか。可能でしたら、ぜひやり方を知りたいのですが…。
VC++6.0です。
0410デフォルトの名無しさんNGNG
MFC-MLにも同じような質問が来た罠
0411デフォルトの名無しさんNGNG
>>409
AppWizardで「ダイアログアプリケーション」のスケルトンを作成し、CxxxApp::InitInstanceの
dlg.DoModal()付近をばっさり削除。
0412デフォルトの名無しさんNGNG
hBitmap = LoadBitmap(hInst, "MYBMP");

猫でもわかるプログラミングでこのように使われていたのですが、
どうもこれではビットマップのハンドルが得られないみたいなんです。
何が間違ってるんでしょうか、どなたかアドバイスをお願いします。m(_ _)m
0413デフォルトの名無しさんNGNG
>>412
http://www.microsoft.com/japan/developer/library/jpgdipf/_win32_loadbitmap.htm

"MYBMP"はリソース名
IDB_BITMAP1はリソースID、おわかりか?

しかし何ゆえ"IDB_BITMAP1"を"MYBMP"に変更したんだ?
それじゃ的確なレスは得られないぞ。
0414412NGNG
失礼、猫でもわかるプログラミングさんの記載をそのまま書いてしまいました。
しかしIDB_BITMAP1にしてもうまくいかないです……どうしてでしょうか。

hBitmap = LoadBitmap(hInst, "IDB_BITMAP1");
0415デフォルトの名無しさんNGNG
>>414
お前少しは読め。
0416デフォルトの名無しさんNGNG
>>414
引数の意味がわかってないと思われ。
0417デフォルトの名無しさんNGNG
>>414
413のリンク先のパラメータのとこ見てみ。
0418デフォルトの名無しさんNGNG
>>414
エラーコードくらい調べろ。
0419デフォルトの名無しさんNGNG
現在、小型のweb用の小型アクティブXを作成しています。
現在は、IPictureを用いて画像を読み込んでいます。

要件
1.IE5.01以降がインストールされているwindowsマシン上で動作すること。
2.PNGをHDCに書き込めること。
3.サイズが極力小さいこと(20kB位)。
4.できれば、IPictureのものは拡大縮小するとジャギーが目立つので目立たないよ
うにしたい。
5.jpeg、gifも表示したい。

以上のことをするには、windows内の機能を使うしかないと思っています。
IEはPNGを表示することが可能ですので、IEコンポーネントを使えばできそうなので
すが、、、。

なにか、ご存知の方いらっしゃいましたら、ご教授ください。
よろしくお願いします。
0420デフォルトの名無しさんNGNG
CloseHandle(>>414);
0421デフォルトの名無しさんNGNG
>>407
XPならAttachConsoleでできるかも
0422 NGNG
>>407
現在の状態がコンソールかGUIかが分かれば、
それに合わせて別々のexeを起動させればいいんだけどな。
そういうAPIあるのかな。
0423デフォルトの名無しさんNGNG
判断するプログラムはどっちで(console/windows)つくるの?
0424デフォルトの名無しさんNGNG
フォアグラウンドウィンドウがコマンドプロンプトならば、CUIを起動
そうでなければGUIを起動で良いんじゃないの?
Launch.exe:起動時のフォアグランドウィンドウによってGUI.exe或いは
GUI.EXEを起動して終了するプログラム
CUI.EXE:CUIベースのプログラム
GUI.EXE:GUIベースのプログラム
COMMON.DLL:CUI.EXE,GUI.EXEで共通に使う
0425デフォルトの名無しさんNGNG
それじゃあ解決にならないよ。問題の先送り。

1.Launch.exeがsubsystem:consoleのばあい。
1.1.cmd.exeから起動した場合 ..OK
1.2.explorerから起動した場合
  Launch.exeの起動準備として、コマンドプロンプトが出現する..NG

2.Launch.exeがsubsystem:windowsのばあい
2.1.cmd.exeから起動した場合
  launch.exeの起動準備として、現在のコマンドプロンプトと切り離される..NG
2.2.explorerから起動した場合 ..OK
0426吉岡美穂NGNG
>>419
GDI+なんかどうかしら。
gdiplus.dllは1600kB以上あるけど。
0427デフォルトの名無しさんNGNG
>>414

禿げしくガイシュツ
0428デフォルトの名無しさんNGNG
>>426

GDI+は上司にだめといわれてしまいました。
IEは、IMGUTIL.DLLと、PNGFILT.DLLを使っていることはわかったのですが、
情報が公開されていないので、Dependency Warkerでこんな関数があるのかぁ。
ってところまでしか調べられませんでした。
PNGFILT.DLLもどっかのサイトでみたら,
zlibを使っているようなことは書いてありました。
MSがサポートしていないのであれば、やめたほうがよいといわれたので、
とりあえず、普通に、zlibとlibpngを入れて、エンコード部分は
削ろうかなぁと考えています。

0429デフォルトの名無しさんNGNG
>>419

ATLのCImageにpng/jpg/gif読み書き機能が一通りあったはず。
拡大縮小は、HDCとってGDIでやれば良い(SetStretchBltModeを
忘れずに)。
0430デフォルトの名無しさんNGNG
429
CImageはGDI+だが。
0431409NGNG
>>411
上手く行きました。
ありがとうございました。
助かりました。
0432デフォルトの名無しさんNGNG
>>425
subsystem:windowsで作って、コマンドプロンプトから起動されたことさえ判別できれば、
AttachConsoleで親のコマンドプロンプトに再接続できる。
0433デフォルトの名無しさんNGNG
XPならね・・・
0434デフォルトの名無しさんNGNG
HelloWorldアプリケーションを作って
WM_CREATE:で以下の処理をしたのですが、バルーンツールチップが
表示されません。どこがまずいのでしょうか?

InitCommonControls();
hwndToolTips = CreateWindow(TOOLTIPS_CLASS,
NULL,
WS_POPUP | TTS_NOPREFIX | TTS_BALLOON,
0, 0,
0, 0,
NULL, NULL,
hInst,
NULL);
if (hwndToolTips)
{
// Do the standard ToolTip coding.
TOOLINFO ti;

ti.cbSize = sizeof(ti);
ti.uFlags = TTF_TRANSPARENT | TTF_CENTERTIP;
ti.hwnd = hWnd;
ti.uId = 0;
ti.hinst = NULL;
ti.lpszText = "TEST";

GetClientRect(hWnd, &ti.rect);
SendMessage(hwndToolTips, TTM_ADDTOOL, 0, (LPARAM) &ti );
SendMessage(hWnd, TB_SETTOOLTIPS, (WPARAM)hwndToolTips, 0);
}
0435デフォルトの名無しさんNGNG
>>432
再接続はできるけど
cmd.exeはすでにプロンプトに戻ってるから何か不具合あるかも
0436デフォルトの名無しさんNGNG
cmd.exeが仮にWaitForInputIdleしてくれてたら、
タイムアウト前に接続できればうまいことやってくれるんじゃ?

…今度試してみよ
0437山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0438デフォルトの名無しさんNGNG
タスクトレイアイコンのウィンドウハンドルはどうやって取得したらよいでしょう?
0439デフォルトの名無しさんNGNG
_age
0440デフォルトの名無しさんNGNG
VisualC++6.0のSDKをバージョンアップしたいのですが、どこからダウンロードすればよいでしょうか?
ひょっとして既にサポート外でしょうか?
0441デフォルトの名無しさんNGNG
ttp://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
0442デフォルトの名無しさんNGNG
3Dはどうやって表示するの?
0443デフォルトの名無しさんNGNG
赤と青のフィルムが必須。
0444デフォルトの名無しさんNGNG
いくら山盛りのWinAPIでもそこまで面倒見てくれません
0445デフォルトの名無しさんNGNG
>>442

DIBSectionさえ作れば、後はGDIなりフレームバッファ直接操作なりで
何でも自由に描画・表示できるよ。
0446デフォルトの名無しさんNGNG
システムフックしたツール作ってるのですが、
常駐していた状態で他のアプリケーションがでフリーズするとOS巻き込んで落ちてしまいます。
何か対策はありませんか?

システムフックは
アクティブウィンドウの変更を通知してるだけです。
0447>>446NGNG
まず全裸になり、自分の尻を両手でバンバン叩きながら白目をむき
「びっくりするほどユートピア!びっくりするほどユートピア!」
とハイトーンで連呼しながらベットを昇り降りする
これを10分程続ければOK!
0448デフォルトの名無しさんNGNG
スミマセン質問です
IEの選択文字の取得をしたいのですが
WM_GETTEXTが使えません。(当然なのかな…?)
クリップボード経由は可能ですがなるべく直接APIでたたきたいとおもっています。
0449デフォルトの名無しさんNGNG
>>448

>>447
0450デフォルトの名無しさんNGNG
>>442
擬似的に立体的に見えるように、輝度を上下させる(光の当り、影)。
2Dだろうが、3Dだろうが、所詮は点の集まり。だが、表示するまでの
計算がものすごく大変。
0451デフォルトの名無しさんNGNG
なんで誰もDirect3Dって答えてあげないの?
0452デフォルトの名無しさんNGNG
>>446
漏れもフックで悩んでる。
SetWindowsHookExでフックしてるんだけど
VCのデバッグモードに移行すると固まってしまう。
デバッグ時にはフックしないで開発してるんだけど
なんか、根本的な対策は無いのかな?
0453デフォルトの名無しさんNGNG
>>442
Direct3D
0454デフォルトの名無しさんNGNG
ほんとに教えて下さい(泣
デバイスコンテキストの説明っていうか概念ていうか・・
淡々と説明しすぎ!そういう言葉を使えばいいってのは理解したけど、
頭で想像できないんだYO!
ハンドルはなんとなーくわかってきたんだけどね・・・
0455デフォルトの名無しさんNGNG
才能無い、やめろ
0456デフォルトの名無しさんNGNG
才能とかじゃなくて、
検索したらいっぱい出てくるような気がするんだけど。
デバイスコンテキストの説明
0457デフォルトの名無しさんNGNG
>>454
このへん、買って読め

プログラミングWindows第5版〈上〉〈下〉
http://www.amazon.co.jp/exec/obidos/ASIN/4756136001/qid%3D1054194286/250-6035787-5681835
http://www.amazon.co.jp/exec/obidos/ASIN/475613601X/qid%3D1054194329/250-6035787-5681835
0458デフォルトの名無しさんNGNG
>>457
おまいが買って、教えてくれよ
0459デフォルトの名無しさんNGNG
みんな飯代をうかせて本を買って勉強してるのだよ。
ネットを引けば分かる程度のこともする気力がないのかチミは
0460デフォルトの名無しさんNGNG
まあ、入門者にはプログラミングWindows第5版〈上〉は本気でオススメ。
最近だとWebだけでも結構知識を得られるものだが、それでもなお一読をすすめる。
値段以上の収穫は>>461が保証してくれる。
0461デフォルトの名無しさんNGNG
三年保証は別料金になりますが?
0462デフォルトの名無しさんNGNG
もちろん金利・手数料はジャパネット負担ですよね?
0463デフォルトの名無しさんNGNG
プログラミングWindows第5版〈上〉
タケ−し、古いし、読み図例
図書館で十分
0464デフォルトの名無しさんNGNG
>>446,452
漏れも同じ事で悩んでる。フックはDLLにして使う場合が多いけど
今、WH_JOURNALRECORDでアプリの中に実装してるんだけど
ブレークポイントとか指定してデバッグモードに入ると落ちる(固まる)

でも、ここには、この問題を解決できる人がいない罠(w
0465デフォルトの名無しさんNGNG
YOU IS FOOL
0466デフォルトの名無しさんNGNG
>>464
あきらめてリモートデバッグしる。
0467デフォルトの名無しさんNGNG
>>465
そのネタなつかしい
0468デフォルトの名無しさんNGNG
YOU IS FOOD
0469デフォルトの名無しさんNGNG
>>467
You is a big fool man.だったっけ?>>元ネタ
0470デフォルトの名無しさんNGNG
>>442
OpenGL
0471デフォルトの名無しさんNGNG
>>470
DirectXは?
0472デフォルトの名無しさんNGNG
>>471
ガイシュツだからひねったんだろ
0473デフォルトの名無しさんNGNG
Shell_NotifyIcon で Win2000(Shell 5.0) 以降なら
バルーンのメッセージ取れるって MSDN に書いてるけど、

試したところ WM_CONTEXTMENU, NIN_SELECT, NIN_KEYSELECT は取れるが
NIN_BALLOONSHOW とかは XP(Shell 6.0) 以降じゃないと取れません。
何かやり方あるんでしょうか?

msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shell_notifyicon.asp
0474デフォルトの名無しさんNGNG
>>473
まず全裸になり、自分の尻を両手でバンバン叩きながら白目をむき
「びっくりするほどユートピア!びっくりするほどユートピア!」
とハイトーンで連呼しながらベットを昇り降りする
これを10分程続ければOK!
0475デフォルトの名無しさんNGNG
>>474
これって実際にやったことある奴は何人ぐらいいるんだろうね。
0476デフォルトの名無しさんNGNG
>>473
そこに書いてあるNIM_SETVERSIONとかいうのはどうよ
0477デフォルトの名無しさんNGNG
スクリーンセーバーが終了したり、モニタが省電モードから戻ったりしたことを知るには
どうすればよいですか?
0478デフォルトの名無しさんNGNG
最近の、このスレって
低レベルな質問->ぐぐれ or 本読め
中レベルな質問->まず全裸になり(以下略)
高レベルな質問->無視
って方向だね。
ム板の中で漏れでも住人になれる数少ないスレだよ。
0479デフォルトの名無しさんNGNG
┐(´ー`)┌
0480デフォルトの名無しさんNGNG
>>477
まず全裸になり、自分の尻を両手でバンバン叩きながら白目をむき
「びっくりするほどユートピア!びっくりするほどユートピア!」
とハイトーンで連呼しながらベットを昇り降りする
これを10分程続ければOK!
0481デフォルトの名無しさんNGNG
遅レス申し訳ないです。ネット繋げなかったもんで。
で、参照してくださって書籍はすでに持っています。上・下両方ね。
でもわかんなくない?サイトも、たんたんとデバイスなんたらかんたらハンドルとは〜〜
とか書いてあるけど、全然頭で浮かび上がらない。どんな風にCPUが働いてOSが教えてくれるのかとか
みんな頭で絵を浮かびながらコーディングしてない?俺はそうしてるんだけど
で、マジでわかんないんすよ(泣
ご指導お願いします
0482JOJOの奇妙なAPINGNG
第1回:ウィンドウハンドル(1)
講師:吉良吉影

フウウウウウウ〜〜〜
わたしは…子供のころ…チャールズ ペゾルド の「プログラミングWindows第5版」って
ありますよね…あの本…Laoxザコン館で見たときですね。

あの「オブジェクト」が必ず持ってる識別子・・・「ウィンドウハンドル」…
あれ…初めて見た時…なんていうか…その…下品なんですが…
フフ…勃起…しちゃいましてね…
「ウィンドウハンドル」のとこだけ切り抜いてしばらく…部屋にかざってました。

(第1回終了)
0483デフォルトの名無しさんNGNG
>>481
>どんな風にCPUが働いてOSが教えてくれるのかとか

そんなことを考える必要がなくていいようになってる。
今は、
「  考  え  る  な  」

最初にCをやったときに、
とりあえず「#include <stdio.h>」を書いとけ、と言われたろ?
それと一緒だ。
0484デフォルトの名無しさんNGNG
>>464
グローバルフックを止めたらすべてのアプリに影響が及ぶんだから、無理だと思うのが普通でしょ。
0485win32APIミッドナイトNGNG
講師:ACE後藤

>>481
windowsのウィンドウハンドルは識別子ですヨ
これからも全てのオブジェクトを指定するのはハンドルです
JAVA使ってる奴からみればハンドルなんて意味ないですヨ
でもやっぱりwin32API使う以上は必要だと思ってるワケです

各オブジェクトを確実に指定できる型でありたい
ただ ただそれだけですヨ――――

ハンドルはあってあたり前
それを特殊と思わない心なんですヨ

プログラム中どこで参照しても破綻はナイと思ってるんです
windowsというアンダーグランドな世界で
オブジェクトを指定できる型でいたいんですヨ
0486デフォルトの名無しさんNGNG
>>483
さんくす。他のレスくれたみなさんもありがとー。
そうういことにしときます。すいませんでした〜
0487デフォルトの名無しさんNGNG
ついに発覚、2chでレスを消す方法。
解析により、ついに管理人コマンド割り出しに成功した模様。
鯖が認識するとそのスレッドナンバーがあぼーんされる。

以下方法。
名前に『山崎渉』、メールに『ds8g15EG8h1r9R9g9d7E』。←暗号化されたパスワード
本文に、
command dell レスナンバー(ここに消したいレスナンバー記入)
end

こう記入して書き込み。
山崎って言う人はどうやらcgiなんかの管理人さんの本名らしい。
おそらく早急な対策が打たれると思うので、消したいレスがある人は急げ。
0488473NGNG
>>476
レスありがとう。
NIM_SETVERSION 設定してるんですが
WinMe (5.50.4134.100) なら可能だったので
やっぱり shell32.dll のバージョンが足りない様です
5.0.3502.6144 なのに...
0489山­崎渉NGNG
command dell 487
end
0490デフォルトの名無しさんNGNG
>>487
dellだって。学がないね。激藁
0491デフォルトの名無しさんNGNG
突っ込みどころが違う。絶対に違う。
0492デフォルトの名無しさんNGNG
質問おながいします。m(__)m
Excel等でMDIの最小化、アイコン化ボタンがメニューバーにくっついて
いますが、これってどうやって実現しているのでしょうか?
0493デフォルトの名無しさんNGNG
http://life.fam.cx/

0494デフォルトの名無しさんNGNG
>>490
「DELete Line」の略なんだよ。多分。
0495デフォルトの名無しさんNGNG
GetGlyphOutlineでアンチェリのかかったビットマップフォントを取得したはいいんですが、
その後に文字をうまくアンチェリをかけて描画することができません

これって1ビットづつチマチマ調べて描くしかないんでしょうか?
できれば例なんかいただけると嬉しいです
0496デフォルトの名無しさんNGNG
>>492
? MDIの仕様に文句言いたいって事?
あそこ以外のどこに描けと...
0497デフォルトの名無しさんNGNG
>>496
どうやったらそんな解釈が・・・
0498デフォルトの名無しさんNGNG
>>495
テクスチャに転送してレンダリングすれば自動
0499デフォルトの名無しさんNGNG
ツールバーのボタンを自力で描画したいのですが、方法がわかりません。
ボタンのウィンドウハンドルも取れないみたいですし、
どうやったらオーナードローができるのでしょうか。
0500デフォルトの名無しさんNGNG
SDKプログラミングでMFCのCArrayに相当する物は用意されていないのでしょうか?
0501デフォルトの名無しさんNGNG
>>499
>>500
まず全裸になり、自分の尻を両手でバンバン叩きながら白目をむき
「びっくりするほどユートピア!びっくりするほどユートピア!」
とハイトーンで連呼しながらベットを昇り降りする
これを10分程続ければOK!
0502吉岡美穂NGNG
>>500
ないこともないわ
0503デフォルトの名無しさんNGNG
普通C++ならSTLコンテナ使うけどあれはAPIとは何の関係もないよな。
0504デフォルトの名無しさんNGNG
VARIANTの配列使うやつなかったっけ。

まあ、普通はstd::vectorだな
0505デフォルトの名無しさんNGNG
VC++のCreateWindowExでリストボックスのスタイルを
dwStyle:
WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | WS_TABSTOP | LBS_NOTIFY
dwExStyle:
WS_EX_CLIENTEDGE
で作成したんですがスクロールが遅いです。
MSDNライブラリの「キーワード」みたいな
高速にスクロールするリストボックスはどの指定で行うのですか?
0506デフォルトの名無しさんNGNG
コンソールアプリからウインアプリSDKに移ってプログラムを組んでいるのですが、
ウインアプリだと、文字のサイズが一定でないので困っています。同じにする方法
を教えてください。
0507名無し@沢村NGNG
>>506
HFONT
0508デフォルトの名無しさんNGNG
>>506
フォントにはプロショーナルフォントと等幅フォントの二種類があるのじゃよ。
↓続き
0509デフォルトの名無しさんNGNG
>506
どう困っているのよ?
0510デフォルトの名無しさんNGNG
DLLの中の関数が提供するダイアログボックスをタスクモーダルにする

(MessageBoxでMB_TASKMODALが指定された状態と同様の効果を得る)には

どのようにしたらよいですか?
0511デフォルトの名無しさんNGNG
お答えありがとうございます。

>>507
それで調べて見ると、猫の所にいけました。どこを変えれば出来るかは
分かりませんが。
>>508
TrueTipeのことですか?フォント自体にそれが決まっているのか、フォント
には関係なく、属性として与えるのかわからないです。
>>509
うまく説明できませんが、背景の色を変えた文字を使用していて、その位置
に同じバイト数の文字列を持ってきた時、コンソールなら前のがきれいに
消えて新しく表示されますが、サイズが変わって特に後のほうが小さい時は
前野が消えずに残ってしまいます。
0512デフォルトの名無しさんNGNG
>>511
ま、Windowsプログラミングの基礎からやっていけや
0513デフォルトの名無しさんNGNG
>>511
たとえば
「MS Pゴシック」とかがプロポーショナルフォントで、文字ごとに幅が違うの。
「MS ゴシック」は等幅フォントで、文字の幅が全部同じ。
0514デフォルトの名無しさんNGNG
>>512
はい。がんがります。
>>513
CreateフォントでMS ゴシックにしてもダメでした。他のパラメータが
違うのでしょうか。
hFont = CreateFont(32,//フォント高さ
32,//文字幅
0,//テキストの角度
0,//ベースラインとx軸との角度
FW_REGULAR,//フォントの重さ(太さ)
FALSE,//イタリック体
FALSE,//アンダーライン
FALSE,//打ち消し線
SHIFTJIS_CHARSET,//文字セット
OUT_DEFAULT_PRECIS,//出力精度
CLIP_DEFAULT_PRECIS,//クリッピング精度
PROOF_QUALITY,//出力品質
FIXED_PITCH | FF_MODERN,//ピッチとファミリー
"MS ゴシック");//書体名
0515デフォルトの名無しさんNGNG
>コンソールなら前のがきれいに 消えて新しく表示されますが、
>サイズが変わって特に後のほうが小さい時は
>前野が消えずに残ってしまいます。

これってプロポーショナル云々じゃなくて前回の描画領域を背景で塗りつぶせってことじゃないの?
0516デフォルトの名無しさんNGNG
「サイズが変わって」の意味がどうも分からない感じ。
フォントサイズが変わる、なの?
0517デフォルトの名無しさんNGNG
例えば100ポイントの文字を表示して、その上に10ポイントの文字を重ねて表示すると、
先に表示した100ポイントの文字が後ろからはみ出て見えてしまう、ということでは?
0518デフォルトの名無しさんNGNG
>>515
そうです。それを解決したいのもありますが、とにかく同じサイズに表示
したいんです。他の問題点としては文字列サイズを指定したものを縦に並
べて表示していく時、ベこぼこになってしまいます。
0519デフォルトの名無しさんNGNG
>>516
コンソールのはABCDEを表示、改行、abcdeと表示するとCとcは同じ位置に
表示されますよね。ただ、ウインの方は、かなりずれます。インターネット
でも同じですが。それを利用して面白いAAができたと言う利点もありますが。
ABCDE
abcde
>>517
そうです。1文字32ピクセルの"ABCDE"の上に、同サイズの"abcde"を上書き
すると、コンソールではabcdeのみ表示されますが、ウインだとabcdEと
なります。
0520デフォルトの名無しさんNGNG
DrawTextで矩形を指定じゃないか
0521デフォルトの名無しさんNGNG
>>519
それ見る限り、ちゃんとMSゴシックが表示されてないんじゃないかと
0522デフォルトの名無しさんNGNG
あぁわかった。>>514の書体名、「MS」は全角じゃないとダメだよ。
0523デフォルトの名無しさんNGNG
>>520
問題はそれではありませんでした。次に書きますが。
>>521
やってしまっていました。SelectObjectを入れ忘れていました。入れたら
出来ました。すいません。本当にごめんなさい。答えてくださったみなさま、
どうもありがとうございました。逝って来ます。
0524デフォルトの名無しさんNGNG
>>522
それは大丈夫みたいです。スペースを入れまくったりしても大丈夫でした。
0525デフォルトの名無しさんNGNG
システム登録済みの固定幅フォントを使うと簡単
HFONT hFont = (HFONT) GetStockObject(SYSTEM_FIXED_FONT);
HFONT hFontOld = (HFONT) SelectObject(hDC, hFont);
TextOut(〜);
SelectObject(hDC, hFontOld);
0526デフォルトの名無しさんNGNG
>>525
おおっいいですね。簡単にできます。ありがとうございました。
0527510NGNG
>>510
自己レスっす。
手でガリガリ書くしかないようです。
EnumThreadWindows()でウィンドウ一覧を獲得し、
自分以外のウィンドウをEnableWindow(FALSE)して解決しました。
0528デフォルトの名無しさんNGNG
Windows画面(どのアプリでも)で
押されたキーボードのキーが何が押されたか監視し、
そのキーが押されたときに他のキーが押されたと認識されるやり方が解る方いますでしょうか?
よければ教えてください。

例:F12キーが押された場合CTRL+Numberキーが押された事にする。
という感じです。
0529デフォルトの名無しさんNGNG
>>528
SetWindowsHookExでWH_KEYBOARDを引っかける。
0530デフォルトの名無しさんNGNG
質問させてください。
任意のアプリケーションが呼び出すWin32APIを監視(?)して、
自分で作成したDLL内の関数にすりかえる方法ってあるでしょうか?
自作DLLの注入は出来ても、Win32APIを偽装することは無理なんでしょうか?
0531529NGNG
>>529
訂正。
WH_KEYBOARD_LLじゃないとダメかも。
0532名無し@沢村NGNG
エクセルのようなワークシートをつくるWin32APIはどれですか?
0533デフォルトの名無しさんNGNG
>>532
MoveTo
LineTo
など
0534名無し@沢村NGNG
>>533
MoveToとLineToの升目の中に文字や計算式を入力するWin32APIは?
0535デフォルトの名無しさんNGNG
>>534
APIつーかエディットコントロールでも貼り付ければ?
0536デフォルトの名無しさんNGNG
沢村の質問キタ━━━━━━(゚∀゚)━━━━━━ !!
0537名無し@沢村NGNG
>>535
MoveToとLineToの間の升目の数だけエディットコントロールを貼り付けるのか?
膨大な数のエディットコントロールができるな…
0538名無し@村沢NGNG
>>537
ハローワールドの次の作品作っているのかな?
期待してるよん。
0539デフォルトの名無しさんNGNG
すみません、質問があります。
プロセスの使用メモリを小さくする、最も一般的な方法を教えてください。
単にウィンドウを開くだけのプログラムでも、
2MB近く消費しているようなのですが…。
0540デフォルトの名無しさんNGNG
>>539
・スタートアップコードを自分で書く
・スタックを極限まで減らす
0541デフォルトの名無しさんNGNG
>>539
ウインドウを作成し表示したらいったん最小化して戻す
0542539NGNG
早速のお返事をどうもありがとうございます。
>>540
スタートアップコードはいじったことがありませんでした。勉強してみます。
スタックを減らすというのは、具体的には何をすればいいんでしょう…。
>>541
画面表示状態によって使用メモリが変化するんですね。これは知りませんでした。
よく考えてみると、使用メモリが小さいプロセスというのは、
ウィンドウが表示されていないものばかりでした。
タスクマネージャを見ると使用メモリが小さなものがあったので、特別な方法が
あるものと思い込んでしまったのですが、私の早とちりだったかもしれません。
0543デフォルトの名無しさんNGNG
見えないダイアログを作成しようとして

case WM_INITDIALOG: {
ShowWindow(hWnd, SW_HIDE);

のようにしていますが消えてくれません。
Windowを表示しないようにするにはどうしたらいいですか。
0544 NGNG
Windowsの音量を調整(ボリューム)するAPIってわかりますか?
0545デフォルトの名無しさんNGNG
>>532
リストビューコントロールにLVS_EDITLABELSのスタイルを指定すると
エディット可能になるよ。
LVS_EX_GRIDLINESも指定するとグリッド線が描かれる。

>>543
ダイアログがメインウィンドウだと非表示にしようとしても、勝手に表示
された記憶がある。そうでないなら、普通に消せたかと。
0546505NGNG
くっ、やはり高速リストボックスは無理なのか!?

>>543
その後、UpdataWindow( hWnd );
かな?(w
スペル間違えてたらスマソ
0547530NGNG
ここで聞いたのは間違いだったようです。
0548Win32SDK勉強中 ◆Win32BkCJ. NGNG
>>546
うん、間違えてる。
UpdateWindowだね
0549デフォルトの名無しさんNGNG
>>543
それ、俺も昔悩まされた

DoModal()ではなくCreate()を使ってウィンドウ作成すれば表示されない
表示するときはShowWindowする

それとそのウィンドウ閉じたときは
OnCancel()は呼ばれずWM_DESTROYが送られる
その後DestroyWindow()してメモリ解放
0550デフォルトの名無しさんNGNG
>>547=530
APIフックなんてググればすぐに出てくると思うが?
0551デフォルトの名無しさんNGNG
>>537
いま編集対象になってる升にだけあればいいんでは。
升ごとにテキストバッファを持っとかないといけないけど。
0552名無し@沢村NGNG
>>530
「Advanced Windows」買え
0553デフォルトの名無しさんNGNG
>>552
Windows 2000 Advanced Server?
0554名無し@沢村NGNG
>>553
本
0555デフォルトの名無しさんNGNG
>>552
Advanced には載ってない
0556デフォルトの名無しさんNGNG
「画面上の座標(x, y)で左クリック」という処理をプログラム適に実行するには、
どうすればよいでしょうか?
デスクトップのハンドルを取得して、WM_LBUTTONDOWNメッセージを
SendMessageで送信してみたのですが、上手くいきません。
おおざっぱでいいので教えてください。よろしくおねがいします。
0557デフォルトの名無しさんNGNG
>>543
http://pc2.2ch.net/test/read.cgi/tech/1047949606/l50

で似たような質問があった。答えもあった。
0558デフォルトの名無しさんNGNG
>>556
デスクトップではなくて、メッセージを送りたいウインドウのハンドルを取得しないとダメなんじゃない?
0559直リンNGNG
http://homepage.mac.com/yuuka20/
0560デフォルトの名無しさんNGNG
>>556
mouse_event
0561デフォルトの名無しさんNGNG
>>556 よく質問の意味が分からないのですが、位置指定なら。
const int y=100,x=100;
case WM_LBUTTONDOWN:
if(LOWORD(lParam)!=x||HIWORD(lParam)!=y)break;
hdc=GetDC(hWnd);
TextOut(hdc,x,y,"指定した位置を押しました",24);
ReleaseDC(hWnd,hdc);
break;
0562530NGNG
>>552
改訂第4版に追記されてたんですね。
以前の版を持ってるんで、買いたくないんですけど・・・。
どなたかソース貼って貰えませんか?
0563デフォルトの名無しさんNGNG
>>562
DLLの注入までできているなら
後はインポートテーブルを書きかえるだけじゃないか
GetProcAddressの返り値の加工も必要かもしれないが
0564530NGNG
>>563
インポートテーブルの書きかえですか。
なるほど。ありがとうございます。
それくらいならAdvancedWindows買わなくてもなんとか出来そうです。
AdvancedWindowsでも同様の方法が記述されているんでしょうかね?
0565デフォルトの名無しさんNGNG
タイトルの所にFPS表示させるのって
相当オーバーヘッド大きい?
0566デフォルトの名無しさんNGNG
>>505
そのスタイルだけ見てわかるかw
項目が1万くらいあるっていうなら仮想リストボックス、
5億ぐらいあるんだったら仮想リストビューにしとけ
0567デフォルトの名無しさんNGNG
一応。
ttp://www.codeguru.com/system/apihook.html
0568デフォルトの名無しさんNGNG
>>530

ttp://www.geocities.co.jp/SiliconValley-Oakland/7565/

あと、
ttp://www.geocities.co.jp/Playtown-Domino/8282/

とかか?まぁ、クラックガンガレ
0569デフォルトの名無しさんNGNG
ツリービューのノードがドラッグ中というメッセージをとらえるには
どうやったらよいのでしょうか?
0570530NGNG
563>>567>>568
ありがとうございます。おかげさまで解決しました。

>>568
このように利用されているんですね。
ちなみに私はクラックではなくお仕事で使います。w
0571デフォルトの名無しさんNGNG
>530
そのAPIを提供しているDLLをこういうの http://www.dependencywalker.com/ とかを
使って特定し、そのDLLに被さるDLLを作って乗っ取ればOKでは?
0572デフォルトの名無しさんNGNG
質問です。
VB6 SP5
Win2000
Exe起動直後にALT+F4を押し、そこで起きるイベント(QueryUnload)時に
GetMenuItemInfoを使って閉じるメニューの情報を取得しているのですが、
うまく情報を取得することができないです。
一度メニューバーをクリックした後にALT+F4をするとうまく取得できるのですが。
起動直後にうまく情報を取得するにはどうしたら良いでしょうか?

'×ボタンのメニュー情報を取得
With Mnu
.cbSize = Len(Mnu)
.dwTypeData = String(80, 0)
.cch = Len(.dwTypeData)
.fMask = MnuM_STATE
.wID = SC_CLOSE
lngRet = GetMenuItemInfo(hMenu, .wID, False, Mnu)
End With
0573デフォルトの名無しさんNGNG
>>542
SetProcessWorkingSetSize
最小化されたときはDefWindowProcか何かがこれを呼んでる
0574 NGNG
mixer系APIを使って、ボリュームを調整したいのですが詳しく解説しているページとかありませんか?
言語はVC++6.0でMFCのウィザードを使ってます。
0575539NGNG
>>573
おお、どうもありがとうございます。
でも、これが使えるのってNT系だけみたいですね…。
0576デフォルトの名無しさんNGNG
自分で作ったウィンドウの表示/非表示が変更されたことを知るにはどうすればよいのでしょう。
WM_SHOWWINDOW では表示/非表示が変更されようとしているタイミングで送られてくるので少しタイミングが早すぎます。
WM_SHOWWINDOW を DeWindowProc 関数に通した後でも変更はまだ反映されていないようです。
御存知の方どうか宜しくお願いします。
0577デフォルトの名無しさんNGNG
>>576
SPYでメッセージを追え
0578528NGNG
>529さま
たいへん遅くなりましたが、ご回答ありがとうございますm(_ _)m
0579デフォルトの名無しさんNGNG
>>576
少し早いと思ったら、何か適当なメッセージを自分にPostしとくのはどうか
0580デフォルトの名無しさんNGNG
>>576
表示ならWM_PAINTとか
でもLonghornでだめぽになりそうな予感
0581デフォルトの名無しさんNGNG
>>576
WM_WINDOWPOSCHANGED
でWINDOWPOSのflagみればいい気もするが。
0582デフォルトの名無しさんNGNG
ここでいいのか不安ですが質問させていただきます
WindowsでEXE単体で動くちょっとしたツールを作りました
ただちょっとだけセーブデータを保存したくなったんですが、datファイルなどをつくりたくありません
exeファイルのお尻に勝手にデータをくっつけて平気でしょうか

保存する(exeの最後にくっつける)データはおそらく文字列です
0583デフォルトの名無しさんNGNG
>>577-581
ありがとうございます。
>>577 氏の発言にしたがいSPYでメッセージを追っていたところ
WM_WINDOWPOSCHANGED が目的に適したメッセージのように思えましたので
WM_WINDOWPOSCHANGED を処理する方向で実装することにしました。
こんなにもたくさんのレスどうもありがとうございました。
0584デフォルトの名無しさんNGNG
>>574
ページとかは知らないけど多分mixer系APIを使う。
mixerOpenとかmixerGetLineInfoとか。
0585584NGNG
と思ったらそこから先を知りたかったのね…、スマン
これくらいしか分かりません。

えーと。Windowsにはn個(大抵はサウンドカードの枚数)の
ミキサーデバイスがあって、各mixerデバイス毎にm個
(サウンドカードの種類による)のミキサーラインがあって、
とかいう概念が基本かな。

どのミキサーラインがWAVEなのかCDなのかLineInなのかというのが
サウンドカードの種類によって違ったりするので、
きっちりやるなら色んな環境でテストしないといけないとか。
0586デフォルトの名無しさんNGNG
>582
答える前にdatファイルを作りたくない理由を聞きたいと思うのはオレだけかな?
0587デフォルトの名無しさんNGNG
いじられたくないとか・・・

予めくっつけておいて、そこを書きかえればいいんじゃないかな。
とかいいつつできないけど。
0588デフォルトの名無しさんNGNG
CreateDIBSectionでビットマップのビットへのアドレスは分かったんですけど、
ピクセルのRGBを取り出す方法が分かりません。
24bitで。
0589586NGNG
偉そうに書いたけど自分も解らないです。
でも個人用に作るとしてもリビルドしたら、それまでのが消えちゃうよなぁ。
普通に考えるとマズイと思うんだが...
0590デフォルトの名無しさんNGNG
平気かどうか以前に自分自身を書き換えられるの?
実行中のexeはシステムが開いていて書き込みオープンできないでしょ
>>588
24ビット.bmpのヘッダを除いた部分と同じ
0591デフォルトの名無しさんNGNG
∩( ・ω・)∩モニュアゲ
0592デフォルトの名無しさんNGNG
>>588

「DIBSection」で愚愚ればサンプルが見つかると思うが?
0593デフォルトの名無しさんNGNG
>>586-587
本当に「ちょっとしたツール」なので、ファイルが2個になるのが嫌なだけです
ぶちゃけ「ドラッグインしたファイルを、リストとしてtxtに吐き出すツール」なのですが
出力先の設定を保存しておきたいのです
0594デフォルトの名無しさんNGNG
レジストリは嫌いなん?
0595デフォルトの名無しさんNGNG
普通はiniファイルかレジストリだよなー
0596デフォルトの名無しさんNGNG
レジストリにせよiniにせよ、アンインストーラつきでないソフトで使うのはアレだが。
つことで、ちょっとしたツールには余計向かない気がするな。
0597デフォルトの名無しさんNGNG
>>596
じゃあ、何がいいの?
0598デフォルトの名無しさんNGNG
>>596
ツール自体に設定情報の削除機能を入れておけばいいだけの話
アンインストーラーなど必要ない
0599デフォルトの名無しさんNGNG
じゃあ、NTFS限定やけど、NTFSストリームにでも保存したら?
0600デフォルトの名無しさんNGNG
iniファイルだったら専用APIで読み書きできるし、datよりいいと思います。
0601名無し@沢村NGNG
最近の流行はXMLだな
0602_NGNG
http://homepage.mac.com/hiroyuki43/moe/hankaku06.html
0603デフォルトの名無しさんNGNG
>>593
おいらだったらレジストリだな
インストーラやアンインストールは簡便に WSH で作っちゃえばよろし
0604名無し@沢村NGNG
>>593
おまいがネット上にサーバを立ち上げて、全ユーザの設定情報を一括管理しろ。
0605デフォルトの名無しさんNGNG
>>593
exeA(本体)のリソースにexeB(Aをいじくってから自殺)を仕込んどく。
exeAの終了時にTempにセーブデータとexeBを切り離し、exeA終了。
exeBはexeAの終了(ファイル書き込みが可能になる)を待って
セーブデータの内容をexeAに書き込み、セーブデータを削除してから
exeBは自殺。

どーよ?
0606デフォルトの名無しさんNGNG
>>605
どう考えてもiniファイルの方が簡便。
0607デフォルトの名無しさんNGNG
そういうケースなら ini ファイルだろ。
インストーラのないソフトでレジストリは勘弁してくれ。
ここらへんは個人の好みなのかもしれないが。
0608デフォルトの名無しさんNGNG
>>607
おなじく。ちょっとしたツールなら迷うことなくINI。
レジストリはいくつもソフトを作ってて
しかもそれが関連してあるときしか意味が無い。

Aというソフトがインストールされていたら実行できるとかね。

ちなみにOSをよく再インストールするので
しょうもないレジストリの使い方をするソフトは
使わないようにしてる。
0609605NGNG
>>606
いや、俺もそう思うけど、593の要望に遵ったまで。
0610デフォルトの名無しさんNGNG
( ・ω・)∩<先生。604は何が言いたいのかわからないです。
0611デフォルトの名無しさんNGNG
>>610
知障?
0612デフォルトの名無しさんNGNG
>>609
593の要望は
>ファイルが2個になるのが嫌なだけです
なので、>>609はその要望を満たしていないと思うがどうか。
0613デフォルトの名無しさんNGNG
設定はBIOSに保存
どうよ?
0614デフォルトの名無しさんNGNG
さらに、exeBがexeAを呼び出して、
exeAはexeB終了と同時にこれを削除し
exeAは、安心して終了
0615デフォルトの名無しさんNGNG
レジストリ人気ないですなぁ
オイラはちょっとしたツールにも MRU リストが欲しいからすぐ
CRecentFileList 、ファイル名以外の設定を保存したい時はそれを
派生させたクラスを使う
すると必然的にレジストリに書き込むことになるわけで

.NET の実装見てると、DLL のシェアとレジストリって実はMSも後悔
しるようにも見えるが、オイラは↑で特に困った経験はないなぁ
0616デフォルトの名無しさんNGNG
>>615
開発者が困るんじゃなくてユーザが困るって話だろう。
0617デフォルトの名無しさんNGNG
だからツールに使ったレジストリの消去機能を入れておけばいいんだって
0618デフォルトの名無しさんNGNG
>>615
CRecentFileList使うときでもレジストリじゃなくてiniに保存できますよ。
CWinApp::InitInistance()で何かいじくればよかったはず。
0619デフォルトの名無しさんNGNG
M$はWin32以降レジストリの使用を推奨しているけど、本来レジストリは
COMやOCXのためのもので一般のアプリが使うのは良いとは思わない。
(シェルはバシバシ使ってるけど)
基本的には.ini形式だろな。これが何だかんだ言って一番安全。
レジストリの場合、こわれたら他のアプリも道連れ。
.INIファイルを秘密の奥深いフォルダーに隠しておく。すべてhidden属性
にセット。同時に100個位、多数ダミーを作る。一回毎にファイル名を
変える。他人にいじられないようにする方法なんていくらでもあるだしょ。
0620デフォルトの名無しさんNGNG
>>619
> .INIファイルを秘密の奥深いフォルダーに隠しておく。すべてhidden属性
> にセット。同時に100個位、多数ダミーを作る。一回毎にファイル名を
> 変える。他人にいじられないようにする方法なんていくらでもあるだしょ。

アフォということでいいですか ? > ALL
0621デフォルトの名無しさんNGNG
レジストリファイルの構造わかりますか?
0622デフォルトの名無しさんNGNG
>>620
同意。
593はファイルを増やしたくないと言っているのに100個もファイル増やしてどうするよ?
それに論点は「設定を何処にどのように記録するか」であって「如何にしてファイルの改竄を防ぐか」ではない。
0623デフォルトの名無しさんNGNG
>>621
Windowsのバージョンによって違う。(95系、NT系では記録されるファイルから違う)
違いを吸収する為にWindows APIがある。
0624デフォルトの名無しさんNGNG
>>620
いいよ。
0625デフォルトの名無しさんNGNG
>>619
俺のマシン以外ならそれもあり。
0626デフォルトの名無しさんNGNG
一番最初に「暗号化」を思いつかない時点で>>619は(略
0627デフォルトの名無しさんNGNG
ていうか「いじられたくない」なんて誰も言ってねえし。
0628デフォルトの名無しさんNGNG
暗号化と一言で言っても実際やってみればわかるが、非常に面倒で
後々必ず後悔する。真に有効な設定ファイルがどこにあるかさえ
アプリが知っていれば、設定ファイル方式にするのが良いと思われる。
ダミーを作る作らないは自由。作るのは万が一消された場合のバックアップ
の意味が大きいだろうね。
ただ意外に絶対に消されないような安全なフォルダーを発見するのが難し
い。
0629解決補完マン ◆eW8C0JkO9w NGNG
>>626で(略された部分

「天才に違いない。」
0630デフォルトの名無しさんNGNG
>>628
元の論点から外れるが、俺には暗号化の方が圧倒的に簡単に思える。
619のやり方ではプログラムはどうやって正しいファイルを知る事が出来るんだ?
ダミーが無数にあり、ファイル名が不定なんだぞ。

大体データの改変はユーザの自己責任で行われるもので
「絶対に消されないような安全なフォルダー」等を意識するのはおかしい。
それに暗号化が必要な情報は消されても全然困らない。
困るのは情報が漏れる事であり、そんなファイルを一般的な形式で記録するのは
危険極まりない。
0631デフォルトの名無しさんNGNG
暗号化ってXORするだけで効果ある?
0632デフォルトの名無しさんNGNG
ビット反転だけで十分
0633デフォルトの名無しさんNGNG
>>631
昔レインガルドというネットゲーがあったが
ローカルに保存するファイルにそれをやっていて
速攻でクラックされていた
0634デフォルトの名無しさんNGNG
>>631
632も言っているが、効果はある。
プログラミング出来る位の人間には解かれるかもしれないが、絶対に解けない暗号は
在り得ないので、データの重要性に応じて暗号化方式を変えるしかない。
タンスに隠すか、隠し金庫に保管するかで例えると、ビット反転はタンスに隠すかな。

0635デフォルトの名無しさんNGNG
>>628
>ただ意外に絶対に消されないような安全なフォルダーを発見するのが難し
>い。

NTFS限定だけどSystem Volume Informationとか。
0636デフォルトの名無しさんNGNG
皆の衆、これ使え。
http://www.ntl.co.jp/2/product/plugin/
0637デフォルトの名無しさんNGNG
IPアドレスからホスト名って取得できますか?
0638デフォルトの名無しさんNGNG
>>637
GetHostName()を使いなされ。
0639デフォルトの名無しさんNGNG
>>619=>>629
恥の上塗り。
0640デフォルトの名無しさんNGNG
629はただのネタだろ
つまらんけど
0641デフォルトの名無しさんNGNG
>>637
gethostbyaddrかWSAAsyncGetHostByAddr。
0642デフォルトの名無しさんNGNG
つか、レジストリ使うソフトを公開するのは止めろよな。
個人で使ってろ。
0643デフォルトの名無しさんNGNG
レジストリーを使わないソフトって安いっぽいから俺は
レジストリーを使うソフトしか使いたく無いよ
レジストリーの使い方の分からない初心者がINIを使え
0644デフォルトの名無しさんNGNG
変な奴
0645デフォルトの名無しさんNGNG
設定をバックアップしやすいから.iniがいい。
0646デフォルトの名無しさんNGNG
もう完全にスレ違いだな
0647デフォルトの名無しさんNGNG
こんばんは。
さっそくですが、ファイルが変更されたのを通知してもらうような
API はありますでしょうか?
数秒ごとにファイルが変更されたかチェックするのではなく
変更を OS から知らせてもらうようなイメージです。
よろしくお願いします。
0648デフォルトの名無しさんNGNG
>>605
「ちょっとしたツール」でそこまでやるのって
本末転倒というか目的のために手段を選ばないというか
手段が目的化してるというか
0649デフォルトの名無しさんNGNG
>>647
FindFirstChangeNotification
ReadDirectoryChangesW
でぐぐれ
0650デフォルトの名無しさんNGNG
実行可能ファイル書き換えると
ウィルスチェッカーに文句言われる可能性があるし
実行可能ファイルを読み出し専用の場所におけないし
あまりいいことないと思う
0651デフォルトの名無しさんNGNG
>>649
ありがとうごじあます。
さっそくぐぐります。
とりあえずお礼だけ先に^^
0652デフォルトの名無しさんNGNG
現在 SwitchDesktop でデスクトップ切り替えをするツールを作っています
はじめのデスクトップをA、新しいデスクトップをBとしたとき
デスクトップをAからBに切り替えても消えないウィンドウを作るには
どうしたら良いのでしょうか?
SetWindowPosでできそうな気がしたんだけどできない...
0653605NGNG
>>648
>本末転倒というか目的のために手段を選ばないというか
>手段が目的化してるというか
なんか普段の自分の事言われてるみたい…
自分への戒めとします。ありが�d
0654デフォルトの名無しさんNGNG
Hook ってクラス化できるの?
他のコールバック関数みたいに
パラメータ渡せないっぽいし

0655593NGNG
皆様、たくさんのレスありがとうございます
大変勉強になりました

INI→ファイルが2つになる
レジストリ→嫌いな人が多い。ちょっとしたアプリ程度でレジいじくるなー
複雑な方法→複雑(;´д`)

なかなかままならないものですね
素直に毎回うたせるかな・・・
0656デフォルトの名無しさんNGNG
>>655
「ドラッグインしたファイルを、リストとしてtxtに吐き出すツール」

ショートカットにドラッグする。
本体はtxtと一緒に別のフォルダに置く。
0657デフォルトの名無しさんNGNG
Win32コンソールのアプリケーションを作っています。
で、興味本位でウィンドウを隠して、インジケータに
アイコンを登録してみました。ここまではいいのですが
うまく登録メッセージを受け取ることができません。
サブクラス化もできないし、メッセージのフックも
インストールまではできるのですが結局呼ばれないようです。

だれか、いい方法知りませんか?
0658デフォルトの名無しさんNGNG
>657
意味が分からん
・登録メッセージとは何か
・何のサブクラス化なのか
・何を対象にしたメッセージのフックか
ちゃんと書いてくれ
つかインジケータってタスクトレイのことか?
0659デフォルトの名無しさんNGNG
しかも、コンソールアプリケーションでか?
できんの?
0660デフォルトの名無しさんNGNG
質問の仕方が悪かった
HOOKした時に
SetWindowsHookExの引数に渡した、
HOOKPROC あるでしょ

あのコールバック関数内で、
GetWindowLongみたいに、
ユーザー側で指定した
パラメータ受け取ることって出来ますか?
0661デフォルトの名無しさんNGNG
         ∧_∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        (´∀` )  < 教えておながい
        (    ),,,,,  \____________
     / ̄ ̄ ̄ ̄ ̄/|
    ∧ ∧     / /|
  /_(  ,,)__/ / ┌──────
 || ̄/  | ̄ ̄||/  < ヤダ 
 ||, (___/   ||    └──────
  /
0662デフォルトの名無しさんNGNG
>660
GetWindowLongだったら、ウィンドウハンドルを取れていればできると思うが
0663657NGNG
なんか適当に書きすぎたみたいで・・・スマソ

やっていることは

コンソールのウィンドウハンドル取得

ShowWindowでSW_HIDEを使って隠す

Shell_NotifyIconでタスクバーにアイコン登録
んで、このときにマウス関連のメッセージを受けるために
WM_APPあたりをNOTIFYICONDATA構造体の
uCallbackMessageにセットしておく

ここからが問題で
ウィンドウプロシージャは自前じゃないので
コンソールのウィンドウハンドルからサブクラス化して
メッセージをもらおうとしたけどだめ。サブクラス化できない。
(SPY++で見てもだめっぽい)

んじゃ、SetWindowsHookEx + WH_GETMESSAGEで
メッセージをフックしてみようと。今度はインストールはできるけど、
フックプロシージャを呼んでもらえないみたい。

んで、なんか他にいい方法思いつく人いませんか?

ってことなんですが、うまくできた人とかいます?(長文スマソ
0664デフォルトの名無しさんNGNG
>>663
隠しウィンドウを一個クリエイトしとけばいいんでないの?
しらんけど。
0665デフォルトの名無しさんNGNG
>フックプロシージャを呼んでもらえないみたい。
DLLにフックプロージャを置いてるか?
0666デフォルトの名無しさんNGNG
>>655
ちなみにその手のデータを置くべきフォルダの、Microsoftによるお勧めは
shfolder.dll内のSHGetFolderPathを使ってフォルダを取得せよ、ってことになってる。
CSIDL_APPDATAかCSIDL_LOCAL_APPDATAでしょうな。

>663
>664の方法に一票。
0667657NGNG
いろいろレスサンクス
>664
>666
実はすでに隠しウィンドウのほうで実装は済んでるんだけど
コンソールでできないかなぁといろいろ試してみたかったんです。
もしできたら窓作る分のリソースの消費を抑えられるし。

>665
システムフックじゃないからいらないとは思うけど、一応作ってます。
あっ、もしかしたらシステムのフックにすればいいのかな?
試してみます。
↓
やっぱだめみたい。

どうもコンソールは普通の窓とは仕組みが違うみたい。
0668デフォルトの名無しさんNGNG
どう考えても自前のWS_POPUPウィンドウ一枚のほうが
コンソールウィンドウよりリソース食わないと思うが
0669デフォルトの名無しさんNGNG
ListBoxを作成したんですが、途中で複数選択出来るようにするために
SetWIndowLongを実行したんですが、内容が変更できません。
・↑を実行した直後、GetWindowLongを送ると、どうやらちゃんと書きかえられているようです。
・InvalidataRect、UpdateWindowは指定しましたが、駄目でした。

// 複数選択
::SetWindowLong( hList1, GWL_STYLE, GetWindowLong( GWL_STYLE ) | LBS_EXTENDEDSEL ) );

::UpdateWindow( hList1 );
::UpdateWindow( hMainWin );
::InvalidateRect( hMainWin, NULL, TRUE );
::InvalidateRect( hMainWin, NULL, FALSE );
::InvalidateRect( NULL, NULL, TRUE );
::InvalidateRect( NULL, NULL, FALSE );
// ↑を送っても複数選択できず


もしかして、Window自体作り直すしかない?(^〜^;
0670669NGNG
>>SetWindowLong
書き間違えた。
::SetWindowLong( hList1, GWL_STYLE, ::GetWindowLong( hlist1, GWL_STYLE ) | LBS_EXTENDEDSEL ) );
0671デフォルトの名無しさんNGNG
>669
仕様です。
0672669NGNG
>>671
ノ---------]TOT[----------!!
0673LBS_MULTIPLESELNGNG
>>669
俺のことを忘れていないかい・・・
0674669NGNG
>>673
無理でした。
最初から複数選択可能「LBS_MULTIPLESEL」or「LBS_EXTENDEDSEL」を付けて
ListBox作ると、途中変更が効かない。
何故だ……確かに、変わっているはずなのに…
0675669NGNG
↑の付けたし。
一度、Windowを作ると、「複数選択」⇔「単一選択」への変更が出来ない。
0676デフォルトの名無しさんNGNG
>669
だから仕様だって。仕様っつうかSDKにちゃんと
「後でスタイル変更しても無効だよ」って書かれている。
取扱説明書を読むのは基本中の基本だよ。
0677669NGNG
>>676
うそ!?ほんとですか!?
どこに書いてありました?
0678デフォルトの名無しさんNGNG
>>677
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listboxes/listboxreference/listboxstyles.asp
After the control has been created, these styles cannot be modified, except as noted.
0679デフォルトの名無しさんNGNG
>>678
>except as noted.
がポイントだな。
0680デフォルトの名無しさんNGNG
システムフックについて質問です。
CallNextHookExはいったい何をする関数なんでしょうか?
「次のフックを呼び出す」の意味がイマイチ分かりません。
アドバイスお願いします。
0681デフォルトの名無しさんNGNG
>680
ttp://www.kab-studio.com/Programing/Codian/DLL_Hook_SClass/07.html
嫁
0682669NGNG
>>678-679
激しくサンクス!
勉強不足だな…オレ。英語ニガテだし。
0683デフォルトの名無しさんNGNG
ユーザーインターフェースをwin32api以外のなかに無い奴とかダウンロードできますか?
あるとこ教えてください
例えば丸いつまみを回すやつとか
0684無料動画直リンNGNG
http://homepage.mac.com/norika27/
0685_NGNG
http://kame.kakiko.com/hiroyuki/hankaku_b01.html
0686デフォルトの名無しさんNGNG
>>683
MSDNを見れば、丸だろうが三角だろうが、好きな形のカスタムコントロールを
作成できるだけの情報は詰まっていると思います。
どこが出来ないかを聞いたほうがいいのではないでしょうか?
0687デフォルトの名無しさんNGNG
>>686
初めから出来てる奴を使いたいのです
0688デフォルトの名無しさんNGNG
>>687
用意はされていないよ。凝ったコントロールは
そこの会社のプログラマが一生懸命作ったものだから。
そこに尋ねるのがいいと思います。
0689デフォルトの名無しさんNGNG
>>687
じゃあ、スレ違い。
0690デフォルトの名無しさんNGNG
>>689

これではまるで役所のたらいまわしだな(w
0691デフォルトの名無しさんNGNG
Windowsで ファンの回転数等を知るにはどうしたらよいのでしょうか?
Linuxでは Lm_sensorの出力を加工して使っていました。
0692デフォルトの名無しさんNGNG
みんな、だまされるな!
> win32api以外のなかに無い奴
だからつまりwin32apiのなかにある奴ってことだ!
0693デフォルトの名無しさんNGNG
ASM
0694デフォルトの名無しさんNGNG
InvalidateRect()とInvalidateRgn()はどう使い分けるんでしょうか??
またUpdateWindow()とは。
0695デフォルトの名無しさんNGNG
Rgn+=Rect
Rgn+=Rgn

InvalidateRect(h,0,1);
SendMessage(h,WM_PAINT);
0696デフォルトの名無しさんNGNG
複数のスレッドからアクセスされるintのグローバル変数にはvolatileを
指定したりしますよね。
でもなぜか基本型以外のグローバル変数にはvolatileをつけているのを見ません。
なぜですか?
0697デフォルトの名無しさんNGNG
それ本当にこのスレで質問する内容なん?
0698デフォルトの名無しさんNGNG
>>694
InvalidateRect()は、
指定した矩形を更新リージョンに追加する関数
InvalidateRgn()は、
指定した非矩形(矩形も可)を更新リージョンに追加する関数

UpdateWindow()は、
指定されたウィンドウの更新リージョンが空ではない場合、
ウィンドウへ WM_PAINT メッセージを送信し、
そのウィンドウのクライアント領域を更新する関数
0699デフォルトの名無しさんNGNG
>>697
そういうレスはいらないです。あなたの発言でみんなが関わり合いを
避けて結局回答が得られなくなります。

省いてますがintはvolatileなのに、クリティカルセクションやイベントハンドルなどが
volatileでなかったことから質問しているのです。だから安心してください。
0700デフォルトの名無しさんNGNG
>>699
いや、そういうレスもらわないように最初からそう書けよ。
0701デフォルトの名無しさんNGNG
ではそういう事情ですのでよろしくお願いします。
0702デフォルトの名無しさんNGNG
クリティカルセクションやイベントハンドルは
ユーザーの最適化コードが複数のスレッドから
直接触るわけじゃないから。
0703デフォルトの名無しさんNGNG
回答ありがとうございます。
つまりクリティカルセクションやイベントハンドルはそれらを扱う
APIが内部でそのことを考慮してうまく設計されてるからOK。
ということでしょうか?
0704デフォルトの名無しさんNGNG
Yes
0705デフォルトの名無しさんNGNG
非常に良く分かりました。ありがとうございます。
どうもお騒がせしました。

0706デフォルトの名無しさんNGNG
とまぁ、696はvolatileの意味を誤解したまま終わってしまったわけだが。
0707デフォルトの名無しさんNGNG
それはこのスレの守備範囲外だから
このスレ的にはクリティカルセクションやイベントハンドル
についてだけ答えてればOKでしょ
070851NGNG
API が考慮していようといまいと、自分でコードを追えない部分に volatile
が必要なほど過激な最適化は、少なくともMSのコンパイラではやらないと思うが
→じゃあ逆に int の引数については API が考慮してないって事か?
0709デフォルトの名無しさんNGNG
コンパイラの最適化対策とAPIの内部動作の問題は全く別なのだが
スレ違いだから誤解したままでいてもらおう
0710デフォルトの名無しさんNGNG
>>708
スレ違いだから微細は省くが最適化による無限ループにはまって悩むが良かろう
>少なくともMSのコンパイラではやらないと
馬鹿は痛い目を見なければわからん
0711デフォルトの名無しさんNGNG
すれ違いというルールを厳格に主張する奴は目的を見失ってるね。
例えそれが純粋にAPIに関することから始まり、最終的にはコンパイラや
OSの内部の問題になったとしてもそこまで指摘することは自然なことだし
議論としては継続しているじゃないですか。
そのことがスレッドを読みにくくするんですか。

スレ違いなどというものを厳密に守った結果、助言としては誤解を与え得る
中途半端なものになっては本末転倒だが、妙なこだわりに取り付かれた人たちに言っても無駄か。

0712デフォルトの名無しさんNGNG
>>711

どこかで見たようなバカだな。
0713デフォルトの名無しさんNGNG
マルチスレッドの実行では volatile よりも何よによりも
ミューテックスやセマフォでロックかけてデータアクセスの同期
取る方が先に来るんじゃ
volatile 付けときゃOKというわけではあるまい
0714694NGNG
>>698
遅レスですみません。
MSDNよりずっとよくわかりました。
どうもです。
0715デフォルトの名無しさんNGNG
>>712
あんたのほうがバカっぽいよ。
0716デフォルトの名無しさんNGNG
よーしパパ、スレ違いな質問をしまくっちゃうぞぉ。
0717デフォルトの名無しさんNGNG
>>696は明らかにスレ違いだぞ。
> 複数のスレッドからアクセスされるintのグローバル変数にはvolatileを
> 指定したりしますよね。
> でもなぜか基本型以外のグローバル変数にはvolatileをつけているのを見ません。
> なぜですか?
と問われても、基本型にvolatileの記述が強制されている訳でもないし、基本型以外に
volatileの記述が禁止されている訳でもないから、意図など分かる訳がない。
コーディングした奴に聞けとしか言えん。

> 省いてますがintはvolatileなのに、クリティカルセクションやイベントハンドルなどが
> volatileでなかったことから質問しているのです。だから安心してください。
何が安心してくださいだ。逝って良し!!
0718デフォルトの名無しさんNGNG
>>711
コピペに使えるな。もらっておこう。
0719_NGNG
http://homepage.mac.com/hiroyuki44/hankaku06.html
0720デフォルトの名無しさんNGNG
>>715
この板から出てって下さい。ウザイです。
0721デフォルトの名無しさんNGNG
>718
ワロタ。オレももらうよ。早く使える日が来ないかな。
0722デフォルトの名無しさんNGNG
ファイルの存在チェックとリネームの良いやり方ってありますか?
ShellExecuteとSHFileOperationをつかってたんだけど
もっとスマートな方法がありそうなきがして…
0723デフォルトの名無しさんNGNG
>>722
FindFirstFileとかMoveFileはどうよ?
0724デフォルトの名無しさんNGNG
>>722
それでいいんじゃないの。
俺もFindFirstFile使うけど、別にこれがスマートって訳じゃないし。
0725デフォルトの名無しさんNGNG
すいません、質問させて下さい。
Windows2000のDocuments and Settingsフォルダのパス情報を取得するAPIってあるのでしょうか?
テンポラリフォルダのパスを取得するAPIがあるのは知っているので、このAPIで取得したパスから
フォルダ階層をさかのぼっていけば取れるとは思うのですが、もっとスマートな方法をご存知でしたら
アドバイス下さい。
よろしくお願いします。
0726デフォルトの名無しさんNGNG
>>725
SHGetSpecialFolderLocation
SHGetPathFromIDList
このへんを調べてみたら
0727デフォルトの名無しさんNGNG
>>725
GetProfilesDirectoryはどうよ?
0728デフォルトの名無しさんNGNG
>>725
SHGetSpecialFolderLocationでCSIDL_PROFILESが使えるはず・・・
0729デフォルトの名無しさんNGNG
>>722
存在チェックはPathFileExists使ってる。
Windows NT/2000: Requires Windows 2000 (or Windows NT 4.0 with Internet Explorer 4.0 or later).
Windows 95/98/Me: Requires Windows 98 (or Windows 95 with Internet Explorer 4.0 or later).
だけど。
0730デフォルトの名無しさんNGNG
>>722
GetFileAttributesがエラー返したら存在しない。強引かも
0731デフォルトの名無しさんNGNG
>>725
CSIDL_PROFILES てのがあるではないか。
OSのバージョン知らないけど。
0732デフォルトの名無しさんNGNG
つーか、普通 FileExists じゃねえの?
0733デフォルトの名無しさんNGNG
>>732
どこの普通だ
0734デフォルトの名無しさんNGNG
>>733
WSHじゃない?
0735デフォルトの名無しさんNGNG
>>732
おまえみたいなのがいるからVB厨と言われるんだヽ(`Д´)ノウワァァァン!
0736デフォルトの名無しさんNGNG
>>735
いや、VCL厨かもよ
0737デフォルトの名無しさんNGNG
CSIDL_PROFILE
のすぐ上がすべてのユーザのルートだと思うよ。
0738725NGNG
726、727、728、731、737さん、アドバイスありがとうございます。
まだ試してないんですが、まずはお礼を。
0739デフォルトの名無しさんNGNG
>>711
同意
0740デフォルトの名無しさんNGNG
迷惑だからスレ違い野郎を弁護しないでくれ
0741デフォルトの名無しさんNGNG
質問お願いします。
SetBkColorで背景色を設定することは背景ブラシの色を(ブラシの種類は
そのままに)変更することと同じではないのでしょうか?
というのはRectangle()のときに内部の塗りつぶし色にSetBkColor()で
設定した色が反映されないもので...。
MSDNからでは読み取れないものでよろしくお願いいたします。
0742デフォルトの名無しさんNGNG
>>741
ttp://www.microsoft.com/JAPAN/developer/library/jpgdipf/_win32_setbkcolor.htm
この関数は、CreatePen 関数を使って作成したペンで描いたスタイル付きの複数の線の
隙間を塗りつぶします。しかし、ExtCreatePen 関数を使って作成したペンで描いたスタイル
付きの複数の線の隙間は塗りつぶしません。また、SetBKColor 関数は、TextOut と
ExtTextOut の各関数の背景色も設定します。

背景モードが OPAQUE の場合、背景色は、スタイル付きの複数の線の隙間、ブラシの
ハッチ線の隙間、文字の背景を塗りつぶすのに使われます。また、ビットマップをカラー
からモノクロームまたはその逆へ変換するときにも使われます。
0743デフォルトの名無しさんNGNG
SetBkColorはテキストの背景色だな
0744デフォルトの名無しさんNGNG
>>742-743
テキストの背景色だけなんですね。
ずっとVBをやってたもので背景色全部だと思ってしまいました。
ありがとうございました。
0745デフォルトの名無しさんNGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉




(^^)
0746デフォルトの名無しさんNGNG


   彡川川川三三三ミ〜
   川|川/  \|〜 プゥ〜ン
  ‖|‖ ◎---◎|〜        / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  川川‖    3  ヽ〜      < (*´д`*)ハァハァハァ
  川川    ∴)д(∴)〜       \_______________
  川川      〜 /〜 カタカタカタ
  川川‖    〜 /‖ _____
 川川川川___/‖  |  | ̄ ̄\ \ ←>>1-1000
   /       \__|  |    | ̄ ̄|
  /  \___      |  |    |__|
  | \      |つ   |__|__/ /
  /     ̄ ̄  | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕
 |       | ̄


0747デフォルトの名無しさんNGNG
>>737
移動プロファイルでZ:\になっていた罠とかないの?
0748732NGNG
ぐぁ、スレ間違えてたよ(;´Д`)
逝ってくる。
0749デフォルトの名無しさんNGNG
CreateThreadによって作成された複数のスレッドから
外部のDLLにある関数を呼ぶときは関数の呼び出しの前後を
クリティカルセクションで囲む必要があるのでしょうか?
0750デフォルトの名無しさんNGNG
>>749
ということはAPIを一つ呼ぶのにいちいちクリティカルセクションで囲んでいるのか?
クリティカルセクションを使うためには、それ自体も外部のDLLにある関数を使う必要があるが、
クリティカルセクションを使うためにクリティカルセクションを使うのか?
クリティカルセクションを使うためにクリティカルセクションを使うためにクリティカルセクションを使うのか?
クリティカルセクションを使うためにクリティカルセクションを使うためにクリティカルセクションを使うためにクリティカルセクションを使うのか?
0751デフォルトの名無しさんNGNG
>>749
その関数がやることに依存するんじゃないかな。
たとえば、グローバル変数やそれに類するものに全く触れない、
純粋な意味での関数ならば囲む必要はないだろうね。

それよか、どれかのスレッドが実行してる最中に
DLLがアンロードされないように注意したほうがいいと思う。
0752デフォルトの名無しさんNGNG
そのDLLの取扱説明書にスレッドセーフかどうかとか書いてませんか
0753名無し@沢村NGNG
>>724
FindFirstFile()を使うのがスマートでないことは事実。
0754デフォルトの名無しさんNGNG
>>753
直接、プライマリブロックを読めるはず。
プライマリブロックは10年後でも変わんないよ。
0755名無し@沢村NGNG
>>754
おまいはファイルの存在を確かめるだけのために、
ハンドルを開いて閉じるのはスマートではないと思わないか?
0756デフォルトの名無しさんNGNG
>>755
ごめん人それぞれ、でももっと早いのがキャッシュしているのが一番。
ごめん。
0757デフォルトの名無しさんNGNG
FindFirstFile以外で、もっとスマート(?)なやり方ってあるんですか?
今までずっとこれでやってきたんだが…
0758デフォルトの名無しさんNGNG
GetFileAttributes() は「属性の読み取り」権が無いと失敗するかなー
なんて思ったけど、そうでもないっぽい。
0759デフォルトの名無しさんNGNG
OSがアップデートされたときなどに右下のタスクバーに吹き出しが
でるけど、あれってどうやって表示させればよいのですか?
なるべく自分で調べますので関連するキーワードをAPI名で
教えてください。
0760デフォルトの名無しさんNGNG
>>759
ウ・・・ザ・・・イ・・・
シ・ン・デ・・・
0761デフォルトの名無しさんNGNG
確かにあれはうざい
0762デフォルトの名無しさんNGNG
>>759
禁止しする方法をユーザーが知っているなら、
教えてあげても良いぞ。
0763デフォルトの名無しさんNGNG
WindowsUpdateの禁止の仕方も知らない馬鹿どもが、
WindowsUpdateがウザイからって、
タスクバーの吹き出し自体を嫌がっている。
こんなやつらはPGになってほしくない。
今PGなら今すぐやめろ。
0764デフォルトの名無しさんNGNG
ナニコノヒト?
0765デフォルトの名無しさんNGNG
いまコントロール上にマウスが数秒放置されたらポップアップヘルプを
表示するっていうの作ってるんですけど、マウスが数秒動かずに放置さ
れたことが分かるメッセージってあるんですか?
0766デフォルトの名無しさんNGNG
>>755 >>757
つーかさ、BOOL Exist(LPCTSTR pszEntry); みたいなライブラリ作ってないの?
細かい手段云々よりそっちのがよっぽどスマートじゃないやん。
0767デフォルトの名無しさんNGNG
>>766
そういうライブラリを作るためにもどんなAPIを使ってスマートに実装するかって話だろうが
0768デフォルトの名無しさんNGNG
タスクトレイのポップアップメニューについて質問があります。

以下のように TrackPopupMenuEx を使って表示させようとしているのですが
ウンともスンとも言いません。
どこか記述の面でおかしい所とかあるのでしょうか?
よろしくお願いします。


Call SetForegroundWindow(frmMain.hWnd)

Dim hMenu As Long
Dim hSubMenu As Long
hMenu = GetMenu(frmMain.hWnd)
hSubMenu = GetSubMenu(hMenu, 0)

Dim TPMPARAMS As TPMPARAMS
Call TrackPopupMenuEx(hSubMenu, TPM_RETURNCMD Or TPM_RECURSE, 0, 0, frmMain.hWnd, TPMPARAMS)

Call PostMessage(frmMain.hWnd, WM_NULL, 0, 0)
0769デフォルトの名無しさんNGNG
>768
戻り値を見て調べるという手順は踏まないのかい?
0770デフォルトの名無しさんNGNG
>>769
マンドクサイので踏みません。
0771デフォルトの名無しさんNGNG
じゃああてずっぽで答えるしかないが
TPMPARAMSは初期化してるの?
0772デフォルトの名無しさんNGNG
>>765
TrackMouseEvent
0773デフォルトの名無しさんNGNG
>>757
普通は GetFileAttribute() != -1 か PathIsExist()だろう。

>>766
わざわざそんなライブラリ必要ないよ。
0774デフォルトの名無しさんNGNG
FindFirstFileだとディレクトリの読み取り権がなくて
Traverseしか許されてないときに失敗するね
UsersでWINDOWS\TEMPを見るときとか
0775759NGNG
バルーンの実装がわかるプログラマいないよねえ
なかなか
このQ&Aではレベル高すぎたか?
0776デフォルトの名無しさんNGNG
>>775
ttp://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/tooltip/usingtooltips.asp?frame=true#tooltip_sample_balloon

>このQ&Aではレベル高すぎたか?
二度と来るな。
0777デフォルトの名無しさんNGNG
マルチして煽って・・・最悪な厨だな
0778デフォルトの名無しさんNGNG
>>775
なんかむかつくけど教えてやるよ。
http://homepage1.nifty.com/~okapon/download/delphi/tips1.html
0779759NGNG
>>778
ありがとうございます
delphiのようですがvisual C++に応用できますか?
0780デフォルトの名無しさんNGNG
めちゃくちゃ初歩的な事なんですが、

メッセージボックスに変数の中身を表示させるにはどう書いたらいいんでしょうか?

つまり、a=3でメッセージボックスに3と表示させたい
MessageBox(NULL, ?????? , "Title" , MB_OK);って感じなんですが・・・
0781デフォルトの名無しさんNGNG
|u^=)・・・
0782デフォルトの名無しさんNGNG
>>780
ちょっとやってみりゃいいじゃん
MsgBox(a)
って書くだけじゃないか
0783デフォルトの名無しさんNGNG
>>782
VBとまちがえてませんか?
0784デフォルトの名無しさんNGNG
>>780
面倒だけど。
char buff[256];
wsprintf(buff, "%d", a);
MessageBox(NULL, buff, ....

てやってる。もっといい方法あるのかなー
0785デフォルトの名無しさんNGNG
>>783
>>780において処理系の特定はなされていない
0786デフォルトの名無しさんNGNG
>>785
>>780で特定はされていないが>>783は渡し値の数からして.
VBじゃないと思ったんだろう。っていうかこのスレがWinAPIの
MessageBoxだろと思う気持ちで書いたと思うけどな>>783は
0787デフォルトの名無しさんNGNG
>>786
アチキなら
ShoeMessage(a);
と書いてしまいます

てか>>780で行末に;があるからC系だとわかるだろ
これだからVB厨は・・・
というツッコミでよろしいでしょうか?
0788787NGNG
ウッ タイポ・・・
ShoeMessage(a); ではなく
ShowMessage(a); でした
チツレイ
0789_NGNG
http://homepage.mac.com/hiroyuki44/hankaku05.html
0790デフォルトの名無しさんNGNG
結局VBでもWinApi使えるからいいけどな
おれはVB使ってない。
0791沢村NGNG
>>780
if (a==3) MessageBox(NULL, "3" , "Title" , MB_OK);
でいいだろ。
0792450NGNG
aは実はchar a[255]とかだったら・・・
0793デフォルトの名無しさんNGNG
>>450みすった
名前に入れっぱなしだったすまんそん
0794デフォルトの名無しさんNGNG
>>793
オチケツ >>450でなくて>>792な
0795デフォルトの名無しさんNGNG
画面をクリップボードを通さずにに、
キャプチャする方法はありませんか?

見付けたページでは、サンプルソースが削除されてました。
探し方が悪いのかMSDNからも見付けられませんでした。

どなたかお教え頂ければ幸いです。
0796デフォルトの名無しさんNGNG
>>795
HDC hDC = GetDC(NULL);
でスクリーン全体のDCが取れる。
このDCを送り側、メモリDCを受け側に指定してBitBltすれ。
後始末はReleaseDC(NULL, hDC);
0797デフォルトの名無しさんNGNG
>788
SHOW-Aタンは元気にしてるだろうか・・・
0798デフォルトの名無しさんNGNG
>>790
使えるけどMsgBoxはAPIじゃなくてVBの機能だし
0799デフォルトの名無しさんNGNG
昨日からVB厨がいるな
0800デフォルトの名無しさんNGNG
Win2000 VB6.0
InitiateSystemShutdownを使って
リモートシャットダウンをしたいのですが、
シャットダウンはできるものの
「安全に電源を切ることができます。」という画面が出てきて
電源が自動切断されないんです。
何か設定があるのでしょうか?


0801デフォルトの名無しさんNGNG
>>800
HAL?
0802デフォルトの名無しさんNGNG
>>800
それはシャットダウンさせられる側のBIOS設定ではないかと
0803デフォルトの名無しさんNGNG
だから、なんでVBの質問をここでするんだよ。
0804デフォルトの名無しさんNGNG
InitiateSystemShutdown使ってるからじゃない?
0805デフォルトの名無しさんNGNG
VBのメソッドとWin32APIと混同したり
Win32APIの質問をVBと混同したり
最近ぐだぐだだな、このスレ。
0806デフォルトの名無しさんNGNG
1つのexeを、スタートアップに組み込んで自動起動させたか、
その後にユーザーが任意で起動したかを判断する方法って
ありますか?なんかいいアイディアください。
よろしくお願いします
0807デフォルトの名無しさんNGNG
何処に逝ってもVB厨はウザイな
0808デフォルトの名無しさんNGNG
>>806
根本的に無理。
スタートアップのショートカットに専用のコマンドラインオプションを仕込くらいしか。
0809デフォルトの名無しさんNGNG
そうするとスタートメニューからたどられたときにアウト
自動起動させるのならスタートアップではなくサービスプログラムにすべき
0810デフォルトの名無しさんNGNG
>>803 >>807
APIの問題だろ。なんでそんなにつっかかる。
0811デフォルトの名無しさんNGNG
>>809
ターゲットはWindows95なのです・・・
0812デフォルトの名無しさんNGNG
>>810
5番目の引数の説明をよく読めや、このVB厨。

MSDNライブラリより
===============================
bRebootAfterShutdown
シャットダウン後、即座にコンピュータを再起動させるかどうかを指定します。
TRUE を指定すると、コンピュータは再起動します。FALSE を指定すると、
コンピュータは、電源を切っても安全な状態になったことを示すメッセージを
表示します。
0813デフォルトの名無しさんNGNG
>>811
Windows95ならレジストリに登録するだけでサービスとして動くが何か問題が?
0814デフォルトの名無しさんNGNG
>>812
いちいちVB厨ってつけるな。それに俺は第三者だ。
もうちょっと頭を冷やせ。
0815デフォルトの名無しさんNGNG
>>813
それもサービスと呼ぶとは知りませんでした。
己の無知を恥じ入ります。
0816デフォルトの名無しさんNGNG
登録位置がRunServicesだし
0817デフォルトの名無しさんNGNG
>>814
いいんだよ、気に入らない奴にはなんでもVB厨のレッテルを貼って貶めて安心するんだから
0818デフォルトの名無しさんNGNG
VB厨もウザいが、頭の悪いアンチVB厨はもっとウザいな
0819800NGNG
困ったなあ…
自PCだけならExitWindowExで電源断までできるんだけどね…
APIでリモートシャットダウン(自動電源断)は無理ですか?




0820806NGNG
>>808
なるほど。でもbatファイルでコマンドを指定する方法ですと、
起動時に、コマンドラインの画面がでちゃいますよね・・・
0821デフォルトの名無しさんNGNG
>>820
bat処理ではなく、専用のexeスターターを作って
コマンドラインを与えれば解決できるのでは?
0822デフォルトの名無しさんNGNG
だからサービスとして常駐させればいいんだって
そうすれば多重起動したかどうかで区別できる
Windows95ならレジストリに登録するだけ
0823デフォルトの名無しさんNGNG
そんなもの見分けてどうするんだろ。
explorerのデスクトップとファイラの切り替えみたいなことをさせたいんだろうか。
0824デフォルトの名無しさんNGNG
>>823
それもプロセスを殺してみれば分かるが、判別方法は多重起動しているか否か
0825812NGNG
>>819
ExitWindowsEx()を呼び出すためのプロセスをリモートマシンで走らせといて
そのプロセスとソケット通信するってのはどうよ。
0826795NGNG
>>796
ありがとうございました。
解決致しました。
0827806NGNG
>>822
サービスとして常駐させる方法を教えてください!!
API教えてくだされば自分で調べます!!
0828デフォルトの名無しさんNGNG
>>827
RegCreateKeyEx
0829デフォルトの名無しさんNGNG
他のアプリケーションの起動や終了を検地する方法はありますか?
0830名無し@沢村NGNG
>>829
SetWindowsHookEx()
0831デフォルトの名無しさんNGNG
太閤検地
刀狩り
0832名無し@沢村NGNG
>>829
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3+%E8%B5%B7%E5%8B%95+%E7%B5%82%E4%BA%86+%E6%A4%9C%E5%9C%B0&lr=
0833デフォルトの名無しさんNGNG
ついでなので便乗質問。
WindowHookExで、Window作成をフックできるのは使ってみてわかったんだが、
プロセス開始そのものをフックすることもできるのか?

投入されたプロセスがウインドウを作らないとフックできない気がしてるんだが。
0834757NGNG
>>773
??
PathIsExist()な関数無いんだけど…間違っているような気がするが
わからない。
0835デフォルトの名無しさんNGNG
>>833
WH_CBTでフックをインストールした後、
DllMain()がDLL_PROCESS_ATTACHでコールされたときがプロセスの起動、
DLL_PROCESS_DETACHでコールされたとき(UnHookした後は除く)が終了と
すればいいんじゃなかろうか。
0836835NGNG
コンソールアプリがフックできるかどうかは忘れたけどね。

>>834
PathFileExists()の書き間違いだと思うよ。
0837デフォルトの名無しさんNGNG
GetTcpTable というAPIを使うために
iphlpapi.h というヘッダファイルを入手しなければならないのですが
PlatformSDK(?)はどこで入手すればよいのでしょうか?
0838デフォルトの名無しさんNGNG
>>837
ttp://www.microsoft.com/msdownload/platformsdk/sdkupdate/
ここでええんじゃないかい。
0839デフォルトの名無しさんNGNG
>>835
フックDLLは最初にフックイベントが実行されるまでロードされない。
起動よりずっと後になる可能性がある。
デバッグしたほうが確実だな
0840デフォルトの名無しさんNGNG
>>838
日本語用があるわけではないのですね。
こっちはすでにダウンロード済みだったのでラッキーでした。
ありがとうございました。
0841デフォルトの名無しさんNGNG
自分自身がランチャー等から起動されているかどうか知る方法はありますか?
子プロセスから親プロセスのIDやハンドルを取る方法ってあるのでしょうか?
0842デフォルトの名無しさんNGNG
DQNな質問で申し訳ありません
CALLBACK関数で

int height=200;

switch(message){
case WM_PAINT:
dc=BeginPaint(hw,&ps);
TextOut(dc,100,height,"漏れはDQNだ!",13);
EndPaint(hw,&ps);
return 0;

case WM_KEYDOWN:
if(wparam=='D'){
height=height-20;
}
return 0;
(省略)
}
みたいにやろうとしたら上手くいきませんでした。
どう解決すればいいでしょうか?
0843デフォルトの名無しさんNGNG
DQNすぎて何を答えてやればいいかわからん。
CALLBACK関数って何だ?何に使ってる?
コードを見る限りじゃウィンドウプロシージャか?
0844デフォルトの名無しさんNGNG
>>842
多分
>if(wparam=='D'){
>height=height-20;
InvalidateRect(hw,NULL,TRUE);
>}
0845デフォルトの名無しさんNGNG
そもそもheightが静的な変数じゃなかったりせんか。
0846デフォルトの名無しさんNGNG
>>841
Toolhelp32
0847デフォルトの名無しさんNGNG
ツールチップの TTF_TRANSPARENT って何なの?
ググって見ても英語ばっかりで分からん、、、
0848デフォルトの名無しさんNGNG
真型フォントの背景を透過
0849デフォルトの名無しさんNGNG
すみません、スプレッドシートコントロール(名前を間違って
覚えているかもしれません。表計算で使われる、罫線が引いてあり、
その中に文字や数値を入力する奴です。)
を作るには、CreateWindowEx()のクラス名に何を指定すれば良いのでしょうか。

WC_SPREADSHEETのような物があるかと思ったのですが、無いようなので…。
Googleしても、MSDN調べても、Excel/SQL/VBばかりでした……。
0850841NGNG
>>846
ありがとうございます。

Toolhelp32やPSAPIでプロセスIDの列挙は出来るのは解りましたが。
自身との親子関係を判別するにはどうしたらよいのでしょうか?

Windowsにはプロセスの親子関係はないとの検索結果もあったのですが、
ProcessWalkerではツリー表示が出来ているので、継承関係みたいなものは
判別できると思うのですが…。
0851デフォルトの名無しさんNGNG
>>841
親プロセスのIDなら
CreateToolhelp32Snapshotでハンドル取得、
Process32First&Process32Nextで情報取得。
あとは取得したPROCESSENTRY32構造体の
メンバth32ParentProcessIDを
調べれば分かるんじゃない?

これでいいのか知らんがなぁ。
0852デフォルトの名無しさんNGNG
>843-845

static int h;
とすれば解決することが分かりました
有難うございます
0853842NGNG
あ、

「InvalidateRect」の読み方教えて下さい
おながいします
0854841NGNG
>>851
ありがとうございます。
XPを含めたNT系ではToolHelp32が利用できないという情報があちこちにあって、
PSAPIだとID(とそれから開くハンドル)しか取れないのでどうするのかと思いましたが、
試してみたらXPでも2000でもToolHelp32が使えますね…。
PSAPIを使用しなければいけないのはNT4以前ってことでしょうか?
0855デフォルトの名無しさんNGNG
>>853
http://dictionary.goo.ne.jp/search.php?MT=validate&kind=ej
0856842NGNG
>855
有難うございます
0857デフォルトの名無しさんNGNG
InvalidateRectで追加した更新領域を無効にするにはどうしたらいいのですか?
更新領域の追加はできても削除や、クリアは出来ないの?
0858デフォルトの名無しさんNGNG
ValidateRect()
0859デフォルトの名無しさんNGNG
>>841

PSAPIなるものが何なのか初心者の漏れにゃ
分からんがMSDNに

Windows NT: Requires version 5.0 or later.
Windows: Requires Windows 95 or later.
Windows CE: Unsupported.
Header: Declared in tlhelp32.h.
Import Library: Use kernel32.lib.

ってかいてあるからそうなんじゃないの?
0860デフォルトの名無しさんNGNG
明らかに違うだろ >> 848
0861849ですNGNG
リストビューコントロールが使えそうなので、格闘してみます。
お騒がせしました。
0862デフォルトの名無しさんNGNG
MSDNにビットマップオブジェクトはメモリDCにしか
SelectObject()できないとなっていますが、これは
なんででしょうか??
0863デフォルトの名無しさんNGNG
デバイスが存在するDCに関連づけたら、出力先がビットマップになって、
デバイスが存在する意味がないから
0864デフォルトの名無しさんNGNG
>>863
なるへそ(・∀・)!!
0865デフォルトの名無しさんNGNG
_| ̄|○...
SleipnirとかOfficeXPの様なメニューを作りたくて
オーナードローまわりいじくってるんだけど
CreatePopupMenuで作ったメニューのメニューアイテムがオーナードローできる範囲より外側の部分
つまり、フレームの部分をフラットっぽくするやり方がわからない・・・

どなたか助けてー
0866デフォルトの名無しさんNGNG
>>865
これってシステムのメニューでなく自力でCreateWindow()するしか
ないんじゃないの?
LongHornだとサポートされるかもしれないけど...
0867デフォルトの名無しさんNGNG
CodeGuruあたりにOfficeXP風のメニュークラスのサンプルがあった気がするが。
0868866NGNG
あるけど漏れの見たサンプルはエッジは3Dばっかみたい...
3DでもそんなにOfficeXPやVS.NETのメニューと見分けつかないけど。
NC系のmsgがあるのだろうか
0869865NGNG
オーナードローじゃできんのか・・・
CreateWindowから作るのってかなり面倒だよね
メニューひとつ作るのもダルそう
MSも作り方ぐらいMSDNで公開してくれてもいいじゃないか!ヽ(`Д´)ノ

guru見回ってたらこんなもん見つけたよ。
ttp://codeguru.earthweb.com/menu/FlatPopUpMenu.shtml
これ見て色々やってみる!(゚∀゚)

つーことはレバーコントロールとかツールバーとかも
描画周り制御出来ない部分があったら、やっぱり自前か・・・?Σ(゚д`*;)
0870デフォルトの名無しさんNGNG
買え
http://www.codejock.com/
0871デフォルトの名無しさんNGNG
>>865
メニューウィンドウに対してGetWindowDC でhdcを取得すればどこでも描画できます。
0872デフォルトの名無しさんNGNG
外部アプリケーションをSendMessageでメッセージを送って操作する
プログラムを書いています。

操作対象のウィンドウが画面に表示されている時は問題ないのですが、
対象がタスクトレイに収納されている時に、FindWindowでハンドルが
取得できなくなります。
対象アプリのウィンドウが非表示になってるわけで、ハンドルが取れない
のも頷けるんですが、このままでは目的を達せません。

そこで、とりあえず対象アプリをタスクトレイから引っ張り出したいの
ですが、この方法がわからずハマってしまっています。
どなかた判る方いらっしゃいましたら、ヒントいただけないでしょうか?
よろしくお願いします。
0873851NGNG
EnumWindows関数を使って全トップレベルウィンドウを列挙すればいい。

その際、851に書いた方法で、あらかじめ全プロセスを列挙して、ほしい
プロセスのIDを得ておく。プロセスのパスは知っていないとだめだけど。

この辺の関数とかをうまく組み合わせてほしいウィンドウハンドルを特定、取得できれば
あとは、煮るなり焼くなり好きにできる。

ホントはもっといいやり方があるだろうけど漏れが知ってるのはこれだけ。

あと未知のソフトにNotifyメッセージを送るなら
PostMessageの方が安全かもしれないよ?

じゃ、寝よ。
0874デフォルトの名無しさんNGNG
特定のプログラムに対してフックをかけるには、どんな方法がありますか?
全てのプログラムにかけるシステムフックはある程度使えるのですが・・・

おおまかでいいので、よろしくおねがいします。
0875デフォルトの名無しさんNGNG
特定のプログラムと同じフォルダにフック用APIラッパーDLLを置く
0876デフォルトの名無しさんNGNG
>>874

>>568
0877872NGNG
>>873
その後わかったんですが、ウィンドウが非表示になっているからハンドルが
取れないわけではなく、対象アプリが、タスクトレイ収容と同時にウィンドウを
破棄、復帰時にまたウィンドウを作成、といった手順を踏んでいるのが
FindWindowが空ぶる原因でした。

で、結局、自分でマウスをクリックしてタスクトレイから対象アプリを引っ張り
出す様子を Spy++ で調べて、同じメッセージを送ってやることで目的を達し
ました。

どうもでした。
0878デフォルトの名無しさんNGNG
RedrawWindow()という関数がありますが、これはどんなとき
に使うものなのですか?
UpdateWindow()とは違うのですか?
(MSDNを読んでもよく分からない(日本語訳もないため)ので
よろしくおながいします)
0879デフォルトの名無しさんNGNG
>>878
redrawは再描画だよね
Updateは更新だよね。
の違い
0880878NGNG
>>879
再描画するにも更新するにもOSはアプリに
WM_PAINTを送る必要があるのでいっしょの
ように思えるのですが。。。
0881デフォルトの名無しさんNGNG
>>880
879が言ってるのはリビルドとビルドのような関係
0882878NGNG
>>881
なるほど!!
0883デフォルトの名無しさんNGNG
ケアルとケアルラの違いか!?
0884デフォルトの名無しさんNGNG
>>883
なるへそ!!
0885デフォルトの名無しさんNGNG
>>883
パパサンゲトーおめ
0886デフォルトの名無しさんNGNG
論理ドライブ名から、物理デバイス名を取得するAPIとかってあるの?
0887デフォルトの名無しさんNGNG
>>886
それは、俺も知りたい。
どちらかと言うと、どのアダプタのどのターゲットにあるかだけでも知りたい。
(物理的な位置)
0888デフォルトの名無しさんNGNG
>>878
いったい、いつのMSDNを見てるんだ?
日本語のドキュメントはちゃんとあるだろ?
http://www.microsoft.com/japan/msdn/library/ja/jpgdi/html/_win32_updatewindow.asp
http://www.microsoft.com/japan/msdn/library/ja/jpgdi/html/_win32_redrawwindow.asp
0889デフォルトの名無しさんNGNG
>いつのMSDN
ワラタ
0890デフォルトの名無しさんNGNG
>>889
わらいダケでも食ったのか?
0891デフォルトの名無しさんNGNG
>>890
いや、リアルで強烈に古いリリース読んで騙されてた香具師を目撃したばかりで
0892デフォルトの名無しさんNGNG
>886
QueryDosDevice
0893デフォルトの名無しさんNGNG
>>887
SCSIデバイスに関してはASPIかSPTIで取れる
0894デフォルトの名無しさんNGNG
あるプロセスがどんなポートを使用しているか調べるAPIはありますか?
WinXPのnetstat -oだとプロセスIDが見れるので
そこから調べることができるそうですが
そのような機能を持ったものでもかまいません。
0895デフォルトの名無しさんNGNG
>>894
AllocateAndGetTcpExTableFromStack
0896デフォルトの名無しさんNGNG
>>895
レスありがとうございます。
わからなかったことが1点ありました。
これはMSの公式ドキュメントはないのでしょうか?
いちおうサンプルはいくつか見つけることができました。
第4と第5引数ともに"2"をセットしている例が多かったのですが
第4と第5引数の意味が理解できませんでした。
どういった意味があるのでしょうか?
0897デフォルトの名無しさんNGNG
>>896
非公開APIなのでドキュメント化はされてないね。
引数の意味に関してもサンプルを参考するか、
あとは自分で試すしかないと思うが
0898デフォルトの名無しさんNGNG
>>897
なるほど、やはり非公開でしたか。
もうすこし試行錯誤してみます。
ありがとうございました。
0899デフォルトの名無しさんNGNG

 わしは886じゃよ

>>892

 QueryDosDeviceだと\\HardDriveXだっけ?
 そんなのが返ってくる。
 それではなく、PhysicalDriveXという形で
 返ってきてほしい。
 だれか、知らん?

>>887,893

 IOCTLでSCSI_THROUGH_DIRECTを投げる
 そのとき、CDBでSCSIコマンドのなんか(ちと失念)をセットしておく
 MtFujiを読めば、CDBで投げるコマンドはのっている


0900デフォルトの名無しさんNGNG
> IOCTLでSCSI_THROUGH_DIRECTを投げる

 SCSI_PASS_THROUGH_DIRECT

 
0901デフォルトの名無しさんNGNG
ファイルをコピーする前にディスクの空き容量を厳密にチェックしたい。
GetDiskFreeSpaceEx()で空き容量を取得できるけど、あれは単純な
空き領域が得られるだけで、実際にファイルをコピーできる限界は
セクタ単位で考えるとFAT32かNTFSかで微妙に違うはずですよね?

たとえばGetDiskFreeSpaceEx()で 100kB空いてるからといって、
99.9kBバイトのファイルをコピーできるとは限らないですよね?

0902デフォルトの名無しさんNGNG
コーディングのお供に
http://mypage.odn.ne.jp/home/dongrico
0903901NGNG
それとも、GetDiskFreeSpaceEx()で 100kB空いてるならば、
単純に残りクラスタ×クラスタあたりのバイトが100kB空いてると
考えてよい?


・・・ような気がしてきた。いいのかな。
0904874NGNG
>876

すいません。もう少し詳しくおねがいします。
自分が予想するに、フックプロシージャが格納されるDLLに、プログラムを判別する値を
グローバル変数として保存しておくのではないかと思うのですが、実際にやろうとすると
上手くいきません。
0905デフォルトの名無しさんNGNG
>>903
大体、100KB空いていたとして、その瞬間に違うプロセスが使ったら…どうすんの?
0906デフォルトの名無しさんNGNG
>>901
圧縮ドライブの場合もっと大変だよ。がんばってね。
0907901NGNG
>>905
とりあえず俺はSEサソの言いなりのヘポーコPGです。
>>906
はい。

今1kBほどのテキストファイル作って差を見たら
きっちり空き領域が8,192Byte減ってますた。
逝ってきます。
0908デフォルトの名無しさんNGNG
>>907
話がかみ合っていないね
0909887NGNG
>>893 >>899 >>900
情報ありがとうございます。
やっぱ、ASPIか、SPTIですか。ASPIは最近勉強したんでわかるんですが
SPTIとは何でしょうか?
おそらくWin2000等のNTで使用するのだとは分かるんですが…
DDKとかインストールする必要あるんですか?
SPTIの情報が少なくって……
0910デフォルトの名無しさんNGNG
SCSI Pass Through Interfaceの頭字語。そのまんま。
IOCTL_SCSI_PASS_THROUGH_DIRECTでぐぐったら解説が出てきた。
オープンソースのCD焼きソフト(cdrecord)のソースも参考になるかも
0911887NGNG
>>910
ぐわぁ〜そっちか…MSDNとかでDDK直接探してて泣きを見ていました。
参考になりました。
サンクス!
0912デフォルトの名無しさんNGNG
PlatformSDKはローカルにファイルを保存してセットアップできないんでしょうか?
PCを変えたんですが、もう一度Webからインストールするのはめんどうです。
0913デフォルトの名無しさんNGNG
>>912
過去スレにURL載ってたはず
0914913NGNG
>>912
ttp://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm

スクリプトonにしないとダメ
0915デフォルトの名無しさんNGNG
ああ!専用DLページがあったんですね!ありがとうございます!
0916デフォルトの名無しさんNGNG
SetTimerを使った後にKillTimerを使わないと何か弊害があるのでしょうか?
0917デフォルトの名無しさんNGNG
ネットで稼ぐならこれ。完全無料!!
リンクスタッフになれば小遣い稼ぎができます!!(左下に詳しい説明があります)
[報酬について]
クリック報酬・・・1クリックされる度に10円の報酬
バナー紹介料・・・リンクスタッフ登録の度に1000円の報酬
キャンペーン・・・今なら登録するだけで1000円プレゼント
間接報酬・・・紹介者が得た報酬の25%を加算いたします
プレミアム・・・優秀サイトには、報酬に応じてボーナス有り

単純に考えて1日100人クリックしたとすると、100人×10円×30日=30000円(一ヶ月)
そこらへんの掲示板に貼り付けていけば100クリックなんてスグです。
その他、自分の貼り付けた広告から誰かがスタッフになると1000円もらえるので
1日5人スタッフを紹介できたとして1000×5×30=150000円
30000+15000=180000!!間接報酬などもありますのでどんなに悪くても一ヶ月に10万円以上は必ず稼げます!!
          http://www12.ocn.ne.jp/~sihori/
       ぜひ一度覗いて見てはいかがでしょうか?
0918デフォルトの名無しさんNGNG
>>917
とてもよさそうですね(^^)
10万円稼げなかったときはどんな保証があるんでしょうか。
0919デフォルトの名無しさんNGNG
>>917
やって損しました。
0920デフォルトの名無しさんNGNG
システムトレイにアイコン表示されるアプリをつくったんですが、
アイコンの色が256colorになっているようです。
フォルダにある状態では24bitcolorなのですがなぜ減色してしまうのでしょう。
おしえてちょ
0921デフォルトの名無しさんNGNG
16x16サイズなら256色で全ピクセルが表現できるから。
とか?
0922デフォルトの名無しさんNGNG
>>920
win2000以下は256も出ないよ。たしか16色くらい。
xpだけでしょ256も出るのは
0923デフォルトの名無しさんNGNG
アイコンって最大256色じゃないか?
0924デフォルトの名無しさんNGNG
すみません。うそを書いたかもしれません。
要するにフォルダで見るとスモールアイコンはきれい
↓
ダイアログの左上にあるスモールアイコンもきれい
↓
でもシステムトレイに入れると色が化ける

です。スモールアイコンは256colorで書き直したほうがよいですか?
あとVisualStadioでアイコンのフォーマットの追加はできるけど削除
どうやりますか?
0925デフォルトの名無しさんNGNG
タスクトレイのアイコンは2000以下は16色だよ。
0926デフォルトの名無しさんNGNG
ちょっとお聞きしたいのですが、
特定の文字が現在のフォントにあるかどうか調べるAPIってありますか?
(TextOutしたときに、きちんと表示されるか、空白 or "・"になるか)
0927 NGNG
VC.NETで、ダイアログボックスでActiveXコントロールを張りつけるのではなく、
自分で作ったウィンドウにActiveXコントロールを張りつけるのは
どのようにすればよいでしょう?
CWnd::CreateControl()かなと思ったんですが、
落ちてうまく動かなかったです・・・・
0928デフォルトの名無しさんNGNG
>>926

無い。
0929デフォルトの名無しさんNGNG
>>928

そんなあ
0930デフォルトの名無しさんNGNG
GetGlyphIndices
0931デフォルトの名無しさんNGNG
>>926
メモリDCに書いてみてドット調べて・かどうかチェックすれ。
0932デフォルトの名無しさんNGNG
>>931
それじゃ・自体が判別できん
0933916NGNG
教えてちょ!
0934デフォルトの名無しさんNGNG
>>930
おおー、サンクスです
0935デフォルトの名無しさんNGNG
>>933
いらないタイマイベントが発生しまくる
0936916NGNG
有難うございます
アプリ終了後もタイマイベントが発生するでしょうか?
それともアプリが終了すれば大丈夫でしょうか?
0937デフォルトの名無しさんNGNG
>>936
普通ならタイマは停止する。
でも、Killで止めといたほうがスッキリヽ(´ー`)/
0938876NGNG
>>874  亀レスでスマソ

875のやり方の手助けとして書いたつもりだったんだが・・・。

フックって何をフックしたいのかがよく分からん。
そのソフトが呼び出すAPIとかを横取りしたいのなら
568のリンクにそれ用のソフトがあるからそれを使えば
簡単に作れる。

それとも特定のメッセージとかを横取りしたいのか?
だったらSetWindowsHookEx + WH_GETMESSAGEとか。
0939デフォルトの名無しさんNGNG
あなたが探してるのってこれだよね?この中にあったよ♪
http://endou.kir.jp/betu/linkvp/linkvp.html
0940吉岡美穂NGNG
>>874
GetModuleFileName()で呼び出し側のファイルパスを取得して、
フックしたくないならDllMain()でFALSEを返せばいいのでは?

http://www.aderans.co.jp/
0941916NGNG
>937
有難うございます
0942デフォルトの名無しさんNGNG
論理フォント作成で質問です

stNCMetrics.cbSize = sizeof( NONCLIENTMETRICS );
::SystemParametersInfo( SPI_GETNONCLIENTMETRICS, sizeof( NONCLIENTMETRICS ), &stNCMetrics, 0 );
memcpy(&defFont,&stNCMetrics.lfMessageFont,sizeof(defFont));
defFont.lfWeight=FW_BOLD;
defFont.lfHeight=72;
defFont.lfItalic=true;
defFont.lfQuality=PROOF_QUALITY;
lstrcpyn(defFont.lfFaceName,"MS 明朝",15);//取りあえずこれで
hStatusFont=CreateFontIndirect(&defFont/*&stNCMetrics.lfMessageFont*/);//論理フォントの選択&作成

HDC DC=GetDC(GetWinWND());
SelectObject(DC,phStatusFont_);
TextOut(DC,0,128,"漢字",4);

イタリック名明朝が出るはずなんですが、普通(正体)のシステムフォントしかでてこない...

::SystemParametersInfo( SPI_GETNONCLIENTMETRICS, sizeof( NONCLIENTMETRICS ), &stNCMetrics, 0 );
このプロセスは元のFONTの一部を変えたいという意図からきています。
最初から全部値を入れても同じ結果なのです。なにが問題なのでしょうか?
0943デフォルトの名無しさんNGNG
hStatusFont=CreateFontIndirect
...
SelectObject(DC,phStatusFont_);

phStatusFont_って何?
0944デフォルトの名無しさんNGNG
>943
hHANDLEです。
サンプルコード書く時のミスです。すいません。
その部分での問題ではないです。
0945デフォルトの名無しさんNGNG
パラメータに誤りがあるか、指定したフォントが無い場合
最も近いフォントをかってに選んで返す。


と思った。
0946デフォルトの名無しさんNGNG
だからLOGFONTには自分で値を入れないで
列挙してきた中から選べ
0947デフォルトの名無しさんNGNG
しかしMS 明朝のボールド・イタリックが無いとは思えないぞ
0948デフォルトの名無しさんNGNG
stNCMetrics.lfMessageFont が変なフォントになっているとか?

942のコードを試してみたけど、普通に斜体太明朝になるけどなあ。
0949デフォルトの名無しさんNGNG
自己解決できました。ハンドルの参照が間違ってました(死
hhande型なのに何故ポインタ型で通ったんだ?w

スレ汚してすいません。
取りあえずそのミスを除いてはこのコードで論理フォントが作れるようです
0950デフォルトの名無しさんNGNG
フォント列挙がめんどくせーんだよな。
一度classつくりゃすむっちゃあすむことだが。
0951デフォルトの名無しさんNGNG
>>950
愚痴で950ゲットおめ。次スレよろ。
0952デフォルトの名無しさんNGNG
zipfldr.dllを操作するAPIって公開されていますか?
0953950NGNG
>このホストでは、しばらくスレッドが立てられません。
>またの機会にどうぞ。。。

だそうだ。
後は頼む。
0954デフォルトの名無しさんNGNG
普段はユーザインターフェースを持たないプログラムとして
稼動してるけども、必要なときに応じてGUI画面を
表示させたいプログラムってどうやって作るんだろう…
タスクトレイ常駐型レベルじゃなくて、たとえばIISのような。
0955デフォルトの名無しさんNGNG
>>949
やっぱりphStatusFont_が原因じゃねーか、さっさと氏ね
0956デフォルトの名無しさんNGNG
サービスとして作ればいいのでは?
0957デフォルトの名無しさんNGNG
>>942
おれはいつもこうやって作っているんだが…
// フォントオブジェクト作成
hnewFont1 = ::CreateFont( 12, /* キャラクタセルの高さ(ピクセル) */
0,/* キャラクタの平均的な幅 */
0,/* 傾斜ベクトルとデバイスのx軸との間の角度(1/10度単位) */
0,/* 各キャラクタの基線とデバイスのx軸との間の角度(1/10度単位) */
FW_NORMAL,/* フォントの必要な幅 */
0,/* イタリック体ならTRUE */
0,/* 下線をつけるならTRUE */
0,/* 取り消し線をつけるならTRUE */
SHIFTJIS_CHARSET,/* キャラクタセット */
OUT_DEFAULT_PRECIS,/* 必要な出力精度 */
CLIP_DEFAULT_PRECIS,/* 必要なクリッピング精度 */
DEFAULT_QUALITY,/* 必要な出力品質 */
DEFAULT_PITCH | FF_DONTCARE, /* フォントのピッチとファミリの指定 */
"MS ゴシック" );/* フォント名 */
0958アイアンバトライガーNGNG
質問いいでしょうか.わかる方いらしたら,一発返答お願いしやす.
Win32コンソールアプリでキー入力をチェックしたりできますでしょうか?
コマンドプロンプトでどこまでやれるのか気になりまして.
getchar使うとか,そうゆうのではなく,,,ってなると,
結局イベントを扱えるかどうかにかかってきますね.
そうゆうAPIあるのかどうか,教えてえらい人!
0959デフォルトの名無しさんNGNG
vcならkbhitとか
0960アイアンバトライガーNGNG
>>959
どうもゴッツァンっす! 答えてくれてありがとう.アイリスペクトユー!
0961デフォルトの名無しさんNGNG
このスレ的にはReadConsoleInputとか言ってほしいところだが
0962アイアンバトライガーNGNG
>>961
押忍! kbhitでいろいろ調べていたら,
ReadConsoleInputにも自然とたどり着いたです.ありがとう〜
0963デフォルトの名無しさんNGNG
すいません、質問させてください。

フォルダ内のファイル一覧を得るためのWin32APIはありますでしょうか。

ご存知の方、申し訳ございませんが、教えていただけたらうれしいです。
0964デフォルトの名無しさんNGNG
ある。以上。
0965デフォルトの名無しさんNGNG
>963
FindFirstGirl
FindNextGirl
0966デフォルトの名無しさんNGNG
>>965
FindFirstGirlが失敗するんですがどうしてでしょうか
0967デフォルトの名無しさんNGNG
>966
どっちで失敗してるんだ?
0968デフォルトの名無しさんNGNG
*.* ウフッ
0969デフォルトの名無しさんNGNG
>>967
どちらもリンクエラーになりまつ
0970デフォルトの名無しさんNGNG
もてない奴は探すだけ無駄ということだろう
0971デフォルトの名無しさんNGNG
FindFirstFile/FindNextFile
0972デフォルトの名無しさんNGNG
>969
冗談のつもりだったのだが・・・

俺の負けだ!


Girl(女の子/少女の意味、知らんのか?)をFileに置き換えよ!
さすれば汝は救われる。

つーかヘルプ読め!
0973デフォルトの名無しさんNGNG
リンクエラーの前にプロトタイプが無くて叱られると思うのだが・・・
0974デフォルトの名無しさんNGNG
Cならプロトタイプなくてもコンパイルとおらんか? 一応
0975デフォルトの名無しさんNGNG
>>954
IISと同じように…っつーなら、IISと同じようにサービスにすりゃよかろ。
0976デフォルトの名無しさんNGNG
IIS自体にUIはないけどな。
0977デフォルトの名無しさんNGNG
いいから次スレを・・・
0978デフォルトの名無しさんNGNG
>>977
では君に頼もう、次スレ立ててくれたまえ
0979デフォルトの名無しさんNGNG
痔スレですか?
イタイタシイデスネ
0980デフォルトの名無しさんNGNG
.NET Framework一回使うともうWin32APIには戻れないね。
0981デフォルトの名無しさんNGNG
戻れないというか、MFCと同じで結局足りない部分をWin32APIで補わないとやっていけない
0982デフォルトの名無しさんNGNG
>>965
良い関数だ…でも、俺の場合…

「0 個のGirlが発見されました」

になるのは何ででしょうか?(why
0983デフォルトの名無しさんNGNG
PCで利用可能なCOMポートを全て確認(列挙)したいのですが、
全てのポートについてオープンを試みる単純な方法以外に
より正当な方法をご存知の方が居ましたら教授ください。
Webサイトドキュメント等へのポインタでも構いません。
0984983NGNG
CodeProjectで見つかりました。
0985デフォルトの名無しさんNGNG
>>981
MFCよりも便利で、足りない部分をWin32APIで補うだけだからいいってことでしょ。
全部MFCやAPIでやる方法には戻れないよ。
0986デフォルトの名無しさんNGNG
次スレたてますた。

Win32API 質問箱 Build12
http://pc2.2ch.net/test/read.cgi/tech/1056033645
0987デフォルトの名無しさんNGNG
1000
0988デフォルトの名無しさんNGNG
1000!
0989デフォルトの名無しさんNGNG

σ   _、_
ヽ ( ,_ノ` )σ  989ゲッツ!!
 (    )ノ
   〉 〉
0990デフォルトの名無しさんNGNG
990BX
0991デフォルトの名無しさんNGNG
今だ! 991ゲットオォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
0992デフォルトの名無しさんNGNG
992ゲットだな
          ∧_∧
    ∧_∧  (´<_`  )さすがは兄者、中途半端だな
   ( ´_ゝ`) /   ⌒i
   /   \     | |
  /    / ̄ ̄ ̄ ̄/ |
__(__ニつ/  FMV  / .| .|____
    \/____/ (u ⊃
0993デフォルトの名無しさんNGNG
              ∧_∧  〔^^〕
               _,( ´∀`)⌒ i  |
          (⌒ ー  一 r.、!  〉
           ヽ弋 。 人 。 イ(` ー'
           〔勿\     ヽ
               )  r⌒丶 )  ドカ
     ドカ   ドカ  /   !  |'´
       ドカ    /   /|  |‖ ドカ
             (    く  !  ||‖  ドカ
           ドカ   \  i   | ‖|‖|
            ,__>  ヽヽ从/∧∧
            ⊂⌒ヽ从/ つ ゚д゚) <993ゲトー
0994デフォルトの名無しさんNGNG
ノノハヽo∈
从 `,_っ´) プッ
0995デフォルトの名無しさんNGNG
('A`) 995マンドクセ
0996デフォルトの名無しさんNGNG
誰か!
0997デフォルトの名無しさんNGNG
987 名前:デフォルトの名無しさん :03/06/20 04:06
1000


988 名前:デフォルトの名無しさん :03/06/21 14:46
1000!
0998デフォルトの名無しさんNGNG
1000 (σ・∀・)σ ゲッツ!!
0999デフォルトの名無しさんNGNG
1000かよ!
1000デフォルトの名無しさんNGNG
1000!!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。