■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

Win32API質問箱 Build24
751 名前:デフォルトの名無しさん :04/11/19 11:35:00
>>749
確かにね。仕事で引き合い貰って客先の案件要求見ると、言語の欄に.NET、VB、VC、C/C++、JAVAなんて書いてあったりするからね。
#VBって書いてあってExcelVBAだったりJAVAって書いてあってDeveloper2000なんか出てきた日にゃぁ…

752 名前:デフォルトの名無しさん :04/11/19 11:40:57
MFCだとActiveXベースになってニッチもサッチもいかなくなるからやめるべし。

753 名前:デフォルトの名無しさん :04/11/19 12:05:28
VCは開発言語でいいんじゃないか?
Cだってライブラリも言語のうちだし、
C++のクラス、テンプレートも言語のうちだろ

あとVisualStudioの開発ツール使わないでコーディングする場合もあるから
開発環境とは直接関係ないし

754 名前:デフォルトの名無しさん :04/11/19 12:11:22
>>748
現在ログオンしているユーザーと違うアカウントで
起動したいのでなければ>>731-732

755 名前:デフォルトの名無しさん :04/11/19 13:21:44
もう面倒くさいから"特技パソコン"でいいよ。

756 名前:デフォルトの名無しさん :04/11/19 13:25:11
>>751
仕事や人事にでてくるそーゆー用語は
言語かどうかでは選んでないだろ

757 名前:デフォルトの名無しさん :04/11/19 13:32:49
すいません。質問です。
Platform SDKとNET Framework SDKをインストールして
#include<windows.h>が使えるようになるんでしょうか??


758 名前:デフォルトの名無しさん :04/11/19 13:37:33
環境に関係なくwindows.h持ってれば使えるだろ

759 名前:デフォルトの名無しさん :04/11/19 13:43:03
windows.h持っててもコンパイルできるコンパイラがないと使い物にならないけどね。
VC++互換の言語拡張されてるやつ。

760 名前:デフォルトの名無しさん :04/11/19 13:59:29
>>759
たしか、>>757にvc.exeが入ってたよね。
ヘッダは無かった気がするけど。

761 名前:デフォルトの名無しさん :04/11/19 14:00:28
>>756
「言語」って書いてあるから>751のように書いたんだが。

762 名前:デフォルトの名無しさん :04/11/19 14:00:32
ヘッダはPlatform SDKのほうに入ってる

763 名前:デフォルトの名無しさん :04/11/19 14:11:55
>>758
>>759
レス、dクスです。
コンパイラはbccの無料のやつを使ってるんですが。互換言語のところに、VC++と確か書いてありました。
今ボーランドのファイルを調べてみたら<windows.h>、ありやしたYO-!

764 名前:デフォルトの名無しさん :04/11/19 14:18:50
とりあえずPlatform SDKのcoreSDKとやらを落としてみます

765 名前:デフォルトの名無しさん :04/11/19 14:20:28
ありがとうございました。また来ます。

766 名前:デフォルトの名無しさん :04/11/19 16:15:34
「プリプロセッサの定義」のところで,
_UNICODE を設定したとき,
Unicode にもいろいろありますが,
どのコードが使われるのでしょうか?


767 名前:デフォルトの名無しさん :04/11/19 16:16:15
UTF-16

768 名前:デフォルトの名無しさん :04/11/19 16:19:49
UCS-2じゃねの

769 名前:デフォルトの名無しさん :04/11/19 16:23:00
UniscribeとかはWin9xでもUTF-16受け付けるけど
データ型が違うわけじゃないから(全部WCHAR)

770 名前:デフォルトの名無しさん :04/11/19 17:26:37
>>767
正確にはUTF-16からサロゲートペアを取り除いた物、だったはず。

771 名前:デフォルトの名無しさん :04/11/19 17:42:01
それをUCS-2っていうんじゃないのか?
Win2k以降ならサロゲートにも対応してるしWin9xでも>>769

772 名前:デフォルトの名無しさん :04/11/19 17:42:52
あ、漏れの環境で試した限りではWin95だけは
どうあがいてもサロゲート文字が出せなかった

773 名前:デフォルトの名無しさん :04/11/19 22:37:58
文字集合と転送形式は違うだろ

774 名前:デフォルトの名無しさん :04/11/19 23:31:37
質問です。
WS_EX_TOOLWINDOWを使って作ったウィンドウを
子ウィンドウとして、出しているのですが、
Xボタンを押すとウィンドウを隠すのではなくて
完全に消去されてしまっていてShowWindow(hwnd,SW_SHOW)で
また表示することができません。
Xボタンの処理内容を変更するにはどうしたらよいでしょうか?

775 名前:デフォルトの名無しさん :04/11/20 00:01:18
>>774
WM_CLOSE
で ShowWindow(hwnd, SW_HIDE) でウィンドウ消して
DefWindowProc を呼び出さない。


776 名前:デフォルトの名無しさん :04/11/20 00:34:09
>>775
そーやってんだけどなぁ・・・ああ?ん?へ?
って、ソースが汚すぎてインデントが腐ってて
よくみるとbreakで抜けていましたw
ごめいわくおかけしました。逝ってきまつ。
レスありがとうございました。おかげで解決しました。

777 名前:デフォルトの名無しさん :04/11/20 13:21:55
Cで、リソーススクリプトやMFCを使わずに、
ツールバーを使う方法がありましたら教えてください。
ボタンやメニューなどは分かったのですが、ツールバーは見つかりませんでした。

778 名前:デフォルトの名無しさん :04/11/20 13:41:20
>>777
スリーセブンおめ!
いや、普通にCreateWindowExで作れるんじゃねぇ?
ぐぐっといたぞ。
猫さんが一番上にきてるね。
http://www.google.co.jp/search?hl=ja&q=%E3%83%84%E3%83%BC%E3%83%AB%E3%83%90%E3%83%BC+CreateWindowEx&lr=

779 名前:デフォルトの名無しさん :04/11/20 13:44:22
>>773
質問がそもそも曖昧だし
UCS-2は転送形式をも含んだ意味で使われる場合もあるし

780 名前:777 :04/11/20 13:53:32
>>778
ありがとうございます。
確かに乗っていますが、リソーススクリプトを使っています。
ボタンの章では使わずに作られているのですが。
http://www.kumei.ne.jp/c_lang/sdk/sdk_28.htm

781 名前:デフォルトの名無しさん :04/11/20 13:58:18
>>780
自作ライブラリから適当に抜き出した
構造体名とかから、ググれば解説ページも出ると思う

 TBBUTTON *tbButton
 TBADDBITMAP tb;

 hWnd=GetParent(hwToolbar);
 tb.hInst=(HINSTANCE)GetWindowLong(hWnd,GWL_HINSTANCE);
 tb.nID=IDD_BMP_BBOARD;
 iIndex=SendMessage(hwToolbar,TB_ADDBITMAP,1,(LPARAM)&tb);
 tbButton[1].iBitmap=iIndex;
 SendMessage(hwToolbar,TB_ADDBUTTONS,1,(LPARAM)&tbButton[1]);

782 名前:777 :04/11/20 14:01:34
>>781
ありがとうございます。調べてみます。

783 名前:デフォルトの名無しさん :04/11/20 14:13:49
マルチメディアタイマー(timeSetEventなど)を使ってプログラムを組んでいるのですが、
処理が軽い時は一定のタイミングでコールバックが来るので良いのですが、
重くなった時は呼び出し回数が減り、その後に大量にコールバック関数が呼ばれます
重くなった時は回数が減っても良いのですが、軽くなった時に元通りのタイミングに戻って欲しい場合はどうすれば良いですか?

timeGetTime辺りで呼び出し間隔を記録して、
・前回からの呼び出し間隔が設定値よりかなり短い時は、丁度良い感覚のもの以外はすぐにreturnする
というだけの処理で良いのでしょうか?
重い状態が長続きした場合に、バッファがたまってオーバーフローを起こしたりしないのでしょうか?

784 名前:デフォルトの名無しさん :04/11/20 14:19:12
>>780
え?
猫さんの63章は使って無いんじゃない?
リソーススクリプトはビットマップを読んでるだけでしょ。

785 名前:デフォルトの名無しさん :04/11/20 14:24:06
>>783
それって単純にやっちゃ駄目なんじゃない?

つまり、重くなったときは処理が間に合わなくてメッセージだけ
蓄積されてて軽くなったら一気に処理しちゃってるってことでしょ?

こういうの解決するのってメッセージの送信側と受信側で
メッセージの蓄積状態を管理しなきゃ駄目なんじゃない?
よう知らんけどw

786 名前:デフォルトの名無しさん :04/11/20 14:29:38
>>785
マルチメディアタイマーはWindowsが管理してるんで、送信側の管理が良く分からんのですよ
今実験してたら、しばらく負荷かけてたら、プログラムが落ちた…そのままでは問題みたいです
マルチメディアタイマーでは無理な場合は、自作タイマーで行くしか無いかな…

787 名前:777 :04/11/20 14:35:58
>>784
ホントですか?
結構いろんな所を調べていて、リソースとか、.rcとか見つけると、
またかと思い他のページに行くとかしていました。差し替えてやってみます。

788 名前:777 :04/11/20 14:53:35
>>784
できました。後は>>781さんのも参考にして理解を深めたいと思います。
お答えくださった方、ありがとうございました。

789 名前:デフォルトの名無しさん :04/11/20 16:32:59
こんばんわ

今Windows内で開いてあるウィンドウのハンドルを全て得たいのですが、
どのAPIを使えばいいのでしょうか?

教えていただけると助かります。

790 名前:デフォルトの名無しさん :04/11/20 16:47:08
>>789
EnumWindows

791 名前:733 :04/11/20 16:55:22
>>734-735
ありがとうございます。
色の値をへこへこ書く方法に挑戦しているのですが、
COLORREF rgb;に色の値が入っていて、
LPBYTE lpPixel;がピクセルビットの先頭を指しているという場合、
ここからどうすればいいのでしょうか。カラービットは24です。

792 名前:789 :04/11/20 17:04:47
>>790
ご返答ありがとうございました。


あと、一点ほど質問があるのですが、
人様のウィンドウハンドルを取得したとします。
そのウィンドウ(ハンドル)にイベントを送信できるのでしょうか?

たとえば、メモ帳が開いてあるとして、
そのメモ帳に自分が作ったアプリケーションからイベント(文字入力や改行など)を送ることができるのでしょうか?

もしできるとするなら、どのAPIを使えばいいのでしょうか?
再度の質問になりますが、ご返答いただけたらとても助かります。

申し訳ございませんが、よろしくお願いいたします。

793 名前:デフォルトの名無しさん :04/11/20 17:09:45
>>792
できる。
イベントを送るにはPost/SendMessageを使う。
戻り値を知る必要のあるときと引数にポインタを渡すときにはSendMessage()。
どちらにも当てはまらないときにはPostMessage()。迷ったらSendMessage()。

ちなみにメモ帳はメモ帳自身のウィンドウにエディトボックスが子ウィンドウとして張り付いていることに注意。

794 名前:デフォルトの名無しさん :04/11/20 17:10:29
ただし、文字列の送信は非常に面倒くさい。

795 名前:デフォルトの名無しさん :04/11/20 17:31:39
質問です
MessageBox()のオーナーウィンドウのハンドルをNULLにした場合で
プロシージャからMessageBox()を呼び出し、無視してオーナーウィンドウを操作して終了させた場合
MessageBox()を呼び出しているプロシージャが終了しないまま
実行ファイルが終了することになると思うんですが

プロシージャが終了していない=WinMain()のメッセージループに制御が戻っていない にもかかわらず
どうやってプロシージャが終了のメッセージを受け取り、実行ファイルが終了しているんでしょうか

796 名前:デフォルトの名無しさん :04/11/20 17:32:54
>>792
便利なAPIがあるぞ。
GetWindowThreadProcessId
GetGUIThreadInfo
これで得たフォーカスを持ったウィンドウに
SendMessageを送る。


797 名前:デフォルトの名無しさん :04/11/20 17:42:29
>>795
MessageBoxの中でメッセージループが回ってるから
そいつが終了イベントを拾ってウィンドウプロシージャが呼ばれる。

798 名前:デフォルトの名無しさん :04/11/20 17:55:34
MessageBox 内部のメッセージループは WM_QUIT がポストされると、
処理を終了するけど、もう一度アプリに WM_QUIT を送りなおしてたか
キューから取り除かなかったかしてたと思う。
その挙動を利用して MessageBox を自動的に閉じるテクニックがあったような。

で、MessageBox 関数から戻ってきた時にプログラムがどこまで解体されているかが
問題だね。WM_QUIT まで処理は進んでるんで、MessageBox 関数後の
処理でクラッシュするかもしれない。運良く本来のメッセージループまで
もどれたら、アプリは正常終了できるんじゃないかな。


799 名前:733 :04/11/20 18:31:40
自己解決しました。

800 名前:デフォルトの名無しさん :04/11/20 18:47:03
>>797
>>798
THX
結局MessageBoxってWinMainのような
ウィンドウを生成してメッセージボックスをもつ仕様なんですね

801 名前:デフォルトの名無しさん :04/11/20 19:56:54
EnumWindowsでウィンドウハンドルを取得すると、
タスクバーに無い(見えない)ウィンドウらしきものも取得されるみたいですね。

デスクトップには実際に3つしかウィンドウを開いていないのですが、
100個ちかくのウィンドウが取得されます。

タスクバーにあるウィンドウ(アプリケーション含め)だけを取得したい場合はどうすればいいのでしょうか?

802 名前:デフォルトの名無しさん :04/11/20 20:02:40
// EnumWindows()ではIME等、不可視のウィンドウも全て列挙されるので
//ふるいにかける必要がある
if( ( IsWindowVisible( hWnd ) ) && // 可視状態か
( GetWindow( hWnd, GW_OWNER ) == NULL ) && // トップレベルウィンドウか
( lstrlen( szWindowName ) > 0 ) && // キャプションを持っているか
( lstrcmp( szClassName, "Progman" ) != 0 )) // シェルでないか
{


803 名前:デフォルトの名無しさん :04/11/20 20:07:30
>802
お前・・・それ試したか?

804 名前:デフォルトの名無しさん :04/11/20 20:10:43
試すのは >>801 の仕事

805 名前:デフォルトの名無しさん :04/11/20 20:10:58
猫サンネコネコネコミミモード♥

806 名前:デフォルトの名無しさん :04/11/20 20:36:32
>804
つまりお前の思い込みで書いたってことね。
納得。

807 名前:デフォルトの名無しさん :04/11/20 20:37:46
>>801
ITaskBar とかっていうインターフェイスなかったっけ?

808 名前:デフォルトの名無しさん :04/11/20 20:43:49
http://www1.harenet.ne.jp/cgi-bin/cgiwrap/unaap/bbs2/bbsdsp_itm.cgi?genrekey=api&logmode=2&tpckey=1035518663

809 名前:デフォルトの名無しさん :04/11/20 21:25:40
IInternetProtocol を実装して、独自の情報をIEコンポーネントに表示することは出来るのですが。
URLOpenBlockingStream / URLDownloadToFile / ATL::CBindStatusCallback::Download
など、データを取得する関数がことごとく失敗します。
(URLDownloadToFile にいたっては失敗したくせに成功コードを返してきます)
それぞれ 結果の Stream が NULL / ファイルが作成されない / OnDataAvailable が呼ばれない
という症状が出ています。
IEコンポーネントでは表示できるし、
実際にプロトコルハンドラの方にリクエストが来ていることは確認しました。
http などの定義済みプロトコルではこれらの取得関数は成功します。

どなたか成功したことのある方がいらっしゃったらお知恵をお貸しください。

810 名前:789 :04/11/20 21:44:36
>>793
ご返答ありがとうございます。
試してみます。

ありがとうございました。

811 名前:デフォルトの名無しさん :04/11/21 04:46:28
あるウィンドウに文字を送信したい場合、
SendMessegeの引数をどうすればいいのでしょうか?

ウィンドウハンドルは、hWnd
送信したい文字は「a」とするならば、どうなるでしょう?

教えていただきたいのですが、ご存知の方はいますか?

812 名前:デフォルトの名無しさん :04/11/21 04:59:25
MSDN の WM_CHAR を調べればいいと思う。

813 名前:デフォルトの名無しさん :04/11/21 05:30:10
>812
質問はそういう意味だったのか。よく分かるな。

814 名前:デフォルトの名無しさん :04/11/21 08:31:17
>>812 は細木数子
普通は SendMessage(hWnd, WM_HOGE, TEXT('a'), 0); って思うのが関の山

815 名前:デフォルトの名無しさん :04/11/21 09:00:49
GetWindowText
SetWindowText


816 名前:デフォルトの名無しさん :04/11/21 09:38:09
質問です。
VisualBasic6.0でAPI呼び出す方法を勉強したいのですが
解説されているサイトでお勧めなのを教えてください。

817 名前:デフォルトの名無しさん :04/11/21 09:42:35
http://www.google.co.jp/search?hl=ja&q=VisualBasic6.0%E3%81%A7API%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99&lr=lang_ja

818 名前:816 :04/11/21 09:51:35
ありがとうございます。
でもgoogleは文章で検索するのは精度落ちるのであまりいい方法ではないですよ。
詳しくはこちらで
http://kagakuteki.poke1.jp/jokyu/google-shikumi.html

引き続きお勧めサイトの情報お待ちしております。

819 名前:デフォルトの名無しさん :04/11/21 10:31:17
>818
うーん、お前は死んだ方がいいぞ。
自分の書き込みをよく見直してから投稿しろ。

820 名前:デフォルトの名無しさん :04/11/21 11:02:24
>>818
このキーワードならどう?
http://www.google.co.jp/search?as_q=&num=100&hl=ja&c2coff=1&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=Win32API&as_oq=VB+VisualBasic&as_eq=&lr=lang_ja&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=

821 名前:デフォルトの名無しさん :04/11/21 11:16:02
ちょっと調べてわからないんで、安直ですが、教えて。
モニタの色の設定が 256 とか 24 bit color とか調べる API はなんですか。

822 名前:デフォルトの名無しさん :04/11/21 11:28:43
>821
あんま自信ねーんだけど
GetPixelFormat と DescribePixelFormat でどうよ。

823 名前:デフォルトの名無しさん :04/11/21 11:59:04
今アクティブにしているウィンドウから、別にウィンドウへ切り替えたらときに出るWMメッセージってなんでしたっけ?
忘れてしまいました。
教えてください。すいません。

824 名前:デフォルトの名無しさん :04/11/21 12:20:11
>>821
GetDeviceCapsかな?

825 名前:デフォルトの名無しさん :04/11/21 12:21:18
>>823
ttp://www.geocities.jp/winapi_database/Message/WM/index.html

826 名前:デフォルトの名無しさん :04/11/21 12:26:54
>>816
このスレにはVBプログラマあんまりいないんじゃねえの…?
基本がわかってるなら「ダニエル・アップルマンのWin32 APIパズルブック」という本が面白かった。本だけど。
http://www.amazon.co.jp/exec/obidos/ASIN/4881357905/

>>821
GetDeviceCapsでどう?

>>823
SPYで調べろよ。WM_ACTIVATE

827 名前:816 :04/11/21 13:26:28
>>826
ありがとうございます。
早速三省堂へ行ってきます。

>>819
在り来たりな言葉だが

  厨 房 必 死 だ な w

828 名前:デフォルトの名無しさん :04/11/21 13:50:04
うわ (;´Д`)y-~~ なんか俺と同じニオイがするな

829 名前:821 :04/11/21 14:13:41
>>824, >>826 ありがとうございます。
MSCN のサンプルに 1<<GetDeviceCaps(hDC, BITSPIXEL) で色数を求めている例が
ありました。24 bit 前提でソフト組んでて違うモニタで一瞬びっくりでした。
>>822
どうもありがとうございました。取り合えず多数意見に従いました。
ご指摘の API も知りませんので、後で、勉強させてもらいます。

830 名前:デフォルトの名無しさん :04/11/21 14:21:57
ListViewの選択されているアイテムの選択色を
カスタムドローで変えるにはどうすれば良いのでしょうか?

CDDS_ITEMPREPAINTで(何故かuItemStateが全てCDIS_CHECKED | CDIS_SELECTED)
選択アイテムとそれ以外を区別する所までは上手くいっているのですが
選択アイテムの時に新しいカラーを指定しても反映されず、元の反転色のままで困っています。

831 名前:デフォルトの名無しさん :04/11/21 14:38:52
>>827
819では無いが、Googleを使いこなす努力は必要だろ
適切なキーワードを入れれば、精度は上がるし、その努力が足りない事をGoogleの性にするのはどうかと思うぞ

832 名前:デフォルトの名無しさん :04/11/21 14:48:41
わざわざ本など買わんでも
>>820の最初のリンク先で十分じゃん。

833 名前:デフォルトの名無しさん :04/11/21 14:50:38
自作自演

834 名前:デフォルトの名無しさん :04/11/21 14:54:45
>823
忘れたんじゃなくて元々知らないんでしょ。
見栄張らなくていいよ。ま、見栄にもなってないけど。

835 名前:デフォルトの名無しさん :04/11/21 15:20:12
>>831
質問しに来て逆切れするのはそれ以前の問題だろ

836 名前:デフォルトの名無しさん :04/11/21 15:24:19
>>831
よく分からん。誰に言ってるんだ?

837 名前:デフォルトの名無しさん :04/11/21 15:26:38
いや 816 は逆ギレもしてねえぞ
ごく平静に礼儀をもって話しているつもりがあのとおり
要するに人格障害だ
一番苦しいのは本人てとこで許してやろうぜ(・∀・)ニヤニヤと

838 名前:デフォルトの名無しさん :04/11/21 16:31:27
>>836
>>816>>817>>818>>819>>827
質問→ググれ→Googleは精度悪い、ちゃんとサイト出せ→煽り→煽り
って流れ。
>>818でGoogleがダメだから見つからないって言い訳してるが、
>>820のようにキーワードを工夫する事無く、サイトが見つからないのをGoogleの性にするのは問題ありって話
本質的には、>>835の言うように問題外だけど

839 名前:デフォルトの名無しさん :04/11/21 17:57:51
SysMsgProcでMSGF_MENUなメッセージを捕まえてあれこれしようと思ったんですが、IEの「お気に入り」とか「スタートメニュー」は「メニュー」じゃないらしくて、メッセージが来ないんですよ(とりあえず、手元のW2K+SP4+IE6ではそうでした)。
こういう偽物(?)をひっくるめたメニュー由来のメッセージを扱う方法はないものでしょうか?
メニューも子ウィンドウの一種らしいんで、ウィンドウのハンドルからそれがメニューっぽいかどうか判別できれば良いんじゃないかと思うんですが…

840 名前:デフォルトの名無しさん :04/11/21 19:11:13
エディットテイストで文字列を設定するのは、SetWindowText( HWND hwnd, LPCSTR lpString)ですが、
今エディットテキスト内にあるテキストの指定した部分に文字列を挿入したい場合は、どのAPIをつかえばいいのでしょうか。

申し訳ございませんが教えていただきたいです。

841 名前:デフォルトの名無しさん :04/11/21 19:25:41
>840
GETしてSET

842 名前:デフォルトの名無しさん :04/11/21 19:30:13
>>840
EM_REPLACESEL

843 名前:デフォルトの名無しさん :04/11/21 19:52:40
>>841
ハッととしてグー

844 名前:デフォルトの名無しさん :04/11/21 20:17:57
>>728
そろそろ、誰か答えてもらえないかのぉ

845 名前:デフォルトの名無しさん :04/11/21 20:39:21
>844
まだ誰も答えてなかったんだ。
GetPageMemSize
でしょ。

846 名前:モウモウ :04/11/21 20:44:15
>>845 そんな API あるんですかい?
GetProcessMemoryInfo じゃないのか?
NT系限定だけど。

847 名前:モウモウ :04/11/21 20:48:00
あと、VirtualQueryEx でもできたような気がする。
こちらは 9x系でも使える。

848 名前:816 :04/11/21 21:03:19
>>826
本購入しました。少し難しいですけど頑張って勉強することにします。
どうもありがとうございました。

>>838
少々誤解されているので一応補足します。
>Googleは精度悪い、ちゃんとサイト出せ
これは全く的外れです。
Googleは精度悪いなど言ってません。
>>818で述べたように「文章で検索するのは精度落ちるから
「キーワードで検索するほうがよい」といった意味で教示したまです。
リンク先を読めば理解できると思うのですが。
私が希望したサイトの情報の回答がこの時点で得られてないので引き続き回答を
受け付けていると言ったまでです。
本当に意図が理解できなかったのか、それとも揚げ足を取りたかったのかどちらでしょう?
いずれにしても非常識極まりないですし、こちらとしても不愉快です。
長い間このスレにいますが、少々良識ない人間が最近入り込んでいて残念に思います。

849 名前:816 :04/11/21 21:05:50
もう一つ補足。
「文章で検索するのは精度落ちる」というのは
>>817に対するレスです。
「VisualBasic6.0でAPI呼び出す」という文章で検索してるので
キーワード絞って検索したほうがいいといった意味で
参考までに>>818のリンクを貼りました。
>>817が少しでも正しくgoogleを使えるようになるといいと思います。

850 名前:デフォルトの名無しさん :04/11/21 21:21:36
>849
やっぱ死んだ方がいいよ、君は。
同じ失敗をまた犯している。もう救いようがないな。

851 名前:デフォルトの名無しさん :04/11/21 21:30:52
>>850
死ななくて良いけど、ネットはしない方が良いな
人付き合いも問題がありそうだから、プログラミングよりそっちの勉強をした方が良い
最近は職業訓練所とか行けばやってくれるのか?

852 名前:デフォルトの名無しさん :04/11/21 21:40:49
まぁ>>816の意図はどうあれ大抵の人は
「またカキコしてるようぜぇな」とレスを読んでません

853 名前:デフォルトの名無しさん :04/11/21 21:56:50
バカって API 呼び出すのもいちいち本買わなきゃならんのか。
大変ですな。

854 名前:デフォルトの名無しさん :04/11/21 22:04:15
全くもって残念極まりないです

855 名前:デフォルトの名無しさん :04/11/22 00:44:42
ム板をリファレンス代わりにするのが天才。

856 名前:デフォルトの名無しさん :04/11/22 01:22:02
調査方法の基本を知らんDQNがカメレオン現象でわめくから・・・

857 名前:デフォルトの名無しさん :04/11/22 09:10:27


858 名前:デフォルトの名無しさん :04/11/22 11:57:19
カメレオン現象ってなんだろ?Googleさんも15件しか知らない言葉だ

859 名前:デフォルトの名無しさん :04/11/22 12:47:53
>858
つか、相手にするな。

860 名前:デフォルトの名無しさん :04/11/22 15:20:56
>>846
さんくすこ

861 名前:デフォルトの名無しさん :04/11/22 16:09:47
MFCを使用せずに、リッチエディットコントロールを使った簡単なテキストエディタを作成しています。
文中に特定のワードが現れたときに、その部分だけ色を変えたいのですが、うまくいきません。

普通に入力していき、特定ワードが完成した瞬間にその部分の色が変わり、
逆に一文字削除したらその瞬間に元の色に戻るようにしたいのです。

特定ワードをハイライトする部分は完成したので、
「テキストファイルを読み込んだ直後、一度だけ色付けする」
というようなことなら出来ていますが、リアルタイムに変更させることができません。

具体的には、
1)メインウィンドウの中にリッチエディットコントロールを貼り付ける
2)ウィンドウメッセージを監視して、WM_KEYDOWNの瞬間にリハイライトルーチンを呼ぶ
ということを行っていますが、
リッチエディットウィンドウ内で一度マウスをクリックして、カーソルが「I」の形に変化した状態になると、
いくら文字を入力してもWM_KEYDOWNを検知することができません。

C/C++は15年くらい経験があるのですが、Windowsプログラミングは全くの初心者なので、
根本的に違っていたらご指摘ください。


862 名前:デフォルトの名無しさん :04/11/22 16:23:47
>>861
リッチエディトコントロールの中で起こる事はリッチエディトコントロールのウィンドウプロシージャが処理するから、
親ウィンドウではいくら待ってもWM_KEYDOWNは来ない。
代わりにWM_COMMANDでEN_CHANGE通知メッセージが来るのをを待てば良いんじゃないかな。
そしてEN_CHANGEが来るようにするにはリッチエディトコントロールへEM_SETEVENTMASKメッセージを送る必要がある。

863 名前:デフォルトの名無しさん :04/11/22 16:33:45
>862
ありがとうございます。

864 名前:861 :04/11/22 16:42:50
>>862
ありがとうございます。
>>863
私の代わりにどうもです(w


865 名前:デフォルトの名無しさん :04/11/22 16:49:27
#define UNICODE
#define _UNICODE
ではなにが違うのでしょうか?

866 名前:デフォルトの名無しさん :04/11/22 16:55:55
ヘッダからのコピペ

#ifdef _UNICODE
#ifndef UNICODE
#define UNICODE // UNICODE is used by Windows headers
#endif
#endif

#ifdef UNICODE
#ifndef _UNICODE
#define _UNICODE // _UNICODE is used by C-runtime/MFC headers
#endif
#endif


867 名前:デフォルトの名無しさん :04/11/22 16:58:38
>>865
UNICODEはWindows.h以下でAPIやTEXT/__TEXTマクロ、TCHARなどの切替。
_UNICODEはTChar.hでCライブラリ関数や_tmain/_tWinMain、_TEXT/_Tマクロ、_TCHARなどの切替。

868 名前:デフォルトの名無しさん :04/11/22 17:26:33
>>866-867
レスありがとうございます。
CライブラリやMFCを使っている場合は_UNICODEもしろって感じですかね(自信なしです

869 名前:デフォルトの名無しさん :04/11/22 17:28:31
>>868
>>866読め。どっちかが定義してあればもう片方も定義されるようになっている。

870 名前:デフォルトの名無しさん :04/11/22 17:50:53
常に両方指定してても問題無いですよね?

871 名前:デフォルトの名無しさん :04/11/22 17:55:58
>870
全部聞くなよ。最近この手の新人多いんだよなー
全ての判断を人に委ねる奴。
ひどい評価付けてやってるけどね。

872 名前:865 :04/11/22 18:09:19
>>870は私じゃありません
_UNICODEでコンパイルしてみたら「wsprintf・lstrlen・DrawText」が通らなかったので調べてました
とりあえず私は両方使います orz

873 名前:デフォルトの名無しさん :04/11/22 19:38:48
>>872
単に渡してる文字列がcharになってるだけだな。
間違いない。

874 名前:デフォルトの名無しさん :04/11/22 19:44:29
>873
うーん、それはありうりますなぁ

875 名前:デフォルトの名無しさん :04/11/22 19:55:35
ありうりそがりいまそがり

876 名前:デフォルトの名無しさん :04/11/22 20:56:20
>875
アホ

877 名前:デフォルトの名無しさん :04/11/22 21:46:25
>>875-876
s/う/お/
古典スレ池


878 名前:デフォルトの名無しさん :04/11/22 21:47:10
s/う/を/

879 名前:デフォルトの名無しさん :04/11/22 22:06:53
>877-878
くだらん

880 名前:デフォルトの名無しさん :04/11/22 22:54:51
「はべり」を指摘してないので全員アホ

881 名前:デフォルトの名無しさん :04/11/22 22:56:35
>880
アホじゃないけど存在不要

882 名前:デフォルトの名無しさん :04/11/23 04:05:27
ここはひどいインターネッツですね

883 名前:デフォルトの名無しさん :04/11/23 07:02:31
>882
アホ

884 名前:デフォルトの名無しさん :04/11/23 07:42:23
そろそろこのスレも閉鎖かな?

885 名前:デフォルトの名無しさん :04/11/23 08:47:06
>884
そうだな。どうせろくな回答もないし。

886 名前:デフォルトの名無しさん :04/11/23 08:54:25
じゃあスレ住民の総意で次スレは無しということで。

887 名前:デフォルトの名無しさん :04/11/23 09:05:16
>>885
そもそもまともな質問がないからな。

888 名前:デフォルトの名無しさん :04/11/23 09:05:46
>886
いいとも

>887
ごもっとも

889 名前:デフォルトの名無しさん :04/11/23 13:32:59
次スレ
http://pc5.2ch.net/test/read.cgi/tech/1057225723/


890 名前:デフォルトの名無しさん :04/11/23 13:56:04
質問です。

switch(msg)
case WM_COMMAND:
 //処理(ボタンとかメニューとかを処理)

 return 0;
case WM_NOTIFY:
 //処理(リストビューとかの処理)

 return 0;
}

ってやってたんですけど。
これってやっぱりreturnしちゃまずいですかね?
HIWORD(wp)とかLOWORD(wp)とかある場合だと自分が処理する以外の
他のメッセージとかDefWindowProcにいかないので処理されないですかね?

891 名前:デフォルトの名無しさん :04/11/23 14:20:14


892 名前:デフォルトの名無しさん :04/11/23 15:41:08
>>890
それ、動かしてみたか?
まともに動くわけ無いだろ。

893 名前:デフォルトの名無しさん :04/11/23 15:44:33
>892
この手の質問する奴ってまともに動いてるかどうかの
判断もできてないから問題ないんじゃない?

894 名前:デフォルトの名無しさん :04/11/23 15:45:03
>>890
場合による

895 名前:581 :04/11/23 16:19:37
>>581を教えて下さいお願いします。

896 名前:デフォルトの名無しさん :04/11/23 16:36:31
素直にダイアログボックス作って貼れ

897 名前:デフォルトの名無しさん :04/11/23 16:37:22
>>892
実際はDefWindowProcが一番下にあって
switch文のWM_COMMANDの中身は
switch(HIWORD(wp)とか判断してBN_CLICKとか
switch(LOWORD(wp)とかIDC_XXXとかあるわけですよ。

んで、実際に動いてます。
いまのところなんの支障もありません。
また、return 0で返してしまおうが、breakでぬけて
DefWindowProcに渡そうが動作はまったく変わりません。

898 名前:デフォルトの名無しさん :04/11/23 16:51:35
WM_COMMAND に関してはシステムは何もしないから、
return で帰ろうと、DefWindowProc に渡しても違いは無いよ。


899 名前:デフォルトの名無しさん :04/11/23 16:52:25
switch文の勉強しような

900 名前:デフォルトの名無しさん :04/11/23 16:55:52
返却値はメッセージによって違う
同じメッセージでもSDIかMDIかによって変わる
ヘルプ読む

901 名前:デフォルトの名無しさん :04/11/23 17:01:19
>>898,900
そうなんですか。
いまのところSDIのアプリしか作ったことがないので
その辺気にしたことがありませんでした。
ありがとうございます。


902 名前:デフォルトの名無しさん :04/11/23 20:06:02
WINE って Win32 API を独自に実装しているのでしょうか?
それとも Windows のシステム DLL を逆アセして、
C 言語で書き直しているんでしょうか?

903 名前:デフォルトの名無しさん :04/11/23 20:33:41
>902
アホ

904 名前:デフォルトの名無しさん :04/11/23 20:35:09
こんばんわ

Winsockでヤフーのサーバwww.yahoo.co.jpへGET送信したんですけど、
返答してきたデータが文字化けをしてるんですね。
これってなぜこうなるのかご存知でしょうか?

HTTP/1.1 200 OK
Date: Tue, 23 Nov 2004 11:29:45 GMT
Cache-Control: private

(一部省略)

Content-Type: text/html;charset=euc-jp
Content-Encoding: gzip

domain=.yahoo.co.jp

25aa
・ミソノ・1」Xル^+<-箕tウ葎クmxョ・rヲ・ロ厩ロ]鑒/lレ哩・@ュrq
&Y1i
ー諢ュ3ャヘT=JS^忸07ヘU

・4#2仕!フh暮ォR)9「。リリ&ォ帥Rエャ 1ocW^?e+{・ィ3H煬ア4y・ハラェTa・8蘇3・dA慢埒8&イ_・A ・リ

v咽「ェjゥ0オ<フク=E{BC}Gナヲゥ-マHュ・K)9)%g・゚ヤエョコタE「
゚Fタt・S・・エサΜ怯設オ(t綉驕E

=zgV」ソbレXPGqヒ!イ啓~カ求EqW'Nコ+ケ~%p&恩・・

905 名前:デフォルトの名無しさん :04/11/23 20:37:57
> Content-Type: text/html;charset=euc-jp
> Content-Encoding: gzip

これ見た?

906 名前:デフォルトの名無しさん :04/11/23 20:56:20
>904
すげーな。わかんないところは適当に読み飛ばしか。

907 名前:デフォルトの名無しさん :04/11/23 20:59:08
>>904
Content-Type: text/html;charset=Shift_JIS
をつけてGETすれば、おk

908 名前:デフォルトの名無しさん :04/11/23 21:00:02
>>907
なんか勘違いしてないか?

909 名前:デフォルトの名無しさん :04/11/23 21:07:53
>>904
GET送信する際、恐らくAccept-Encoding: gzipと入れてるのでしょうか?

Accept-Encodingは圧縮されて受信しますので、そのような文字化けされた形になります。
Accept-Encodingを削除してGET送信してみてください。
プレーンのテキストで受信されますよ。

910 名前:デフォルトの名無しさん :04/11/23 21:18:42
>>902 だれか知らない?

911 名前:デフォルトの名無しさん :04/11/23 21:23:43
>>910
たぶん(最悪でも建前上は)前者じゃないと駄目だろ。

912 名前:デフォルトの名無しさん :04/11/23 21:25:38
>>911
でも、相互運用のための逆アセは合法だって聞いたよ。

913 名前:デフォルトの名無しさん :04/11/23 21:29:37
>912
誰に?

914 名前:デフォルトの名無しさん :04/11/23 21:30:34
米国の話。
実際にそれをやった企業があるらしいし、
裁判になって勝った例もあるらしいよ。

915 名前:デフォルトの名無しさん :04/11/23 21:33:09
EU の例だけど、↓ここを「相互運用」で検索すれば出てくる。
http://www.cric.or.jp/houkoku/h6_5/h6_5_main.html


916 名前:デフォルトの名無しさん :04/11/23 21:34:05
>915
サンクス

917 名前:916 :04/11/23 22:03:25
    ヽ、  `;、                     .;            丿  ノ
      ` 、_,{ `‐、_                 ,*           ,、' ~`y'
         )  r' ~`'rr-、、,,,_          ,ノ"§        _,、<   ,;;ゝ
        `~`i'   ,'r´:::::::::`;丶、 ,_    _,,、-'´,ノ ,ノ      ,、 ‐'"`, ';‐'"
          ,'  ,','::::::::::::::,'    `````  `"´ `"´~`''''''''''T´::::::::::::::',', |
          i   ,','::::::::::::::,'         ( ) (ブリブリッ',::::::::::::::::::ii :!
         ,r'"  ,','::::::::::::: ,'           ).∧  )   ',::::::::::::::::::!! i、
       r''"'  ノノ:::::::::::: ,'            (:::::::::)    ',::::::::::::::::',', i!ヽ
       {____,、-'/:::::::::::::;;'     ポルポト  (:::::::::::::::)   ',:::::::::::::::::ヾ、__)

918 名前:デフォルトの名無しさん :04/11/23 23:44:00
Win32APIのリファレンス本として「Win32 APIオフィシャルリファレンス改訂3版 グラフィック/GUI編 Ascii books」を買おうかと思うのですが、
どうでしょうか?
ほかにもっといいリファレンスなどありますでしょうか?
(MSDNライブラリなどは入っていますが、持ち歩きたいので)

http://www.amazon.co.jp/exec/obidos/ASIN/4756137482/qid=1101220486/sr=1-1/ref=sr_1_10_1/249-3121052-5258703

919 名前:デフォルトの名無しさん :04/11/23 23:49:48
>>918
MSDNライブラリを持ち歩け

920 名前:デフォルトの名無しさん :04/11/24 00:16:42
携帯用 MSDN ビューワ
http://www.vaio.sony.co.jp/Products/VGN-U50/
どぞ。

921 名前:デフォルトの名無しさん :04/11/24 00:21:56
そんなお金があればうれしいのですが・・・・

922 名前:デフォルトの名無しさん :04/11/24 06:05:34
>>918
それ買ってみたけど損したよ
関数の解説だけで構造体の解説が載ってないのがリファレンスとして片手落ち。
構造体の解説を読むにはMSDNを開く必要がある… 結局MSDNしか使ってない罠。

923 名前:デフォルトの名無しさん :04/11/24 09:00:32
コンボボックスで、ボタンを押してアイテムを選ぶのではなく
何かメッセージを送って任意のアイテムを選択させるやり方を教えてください

924 名前:デフォルトの名無しさん :04/11/24 09:43:26
CB_SETCURSEL

925 名前:デフォルトの名無しさん :04/11/24 10:35:10
>>924
ありがとうございました

926 名前:デフォルトの名無しさん :04/11/24 11:38:28
例えば20秒ごとにプログラムを動かす時に使うような
経過した秒数がわかるようなAPIを教えてください

927 名前:デフォルトの名無しさん :04/11/24 11:40:59
GetTickCount



928 名前:デフォルトの名無しさん :04/11/24 11:50:40
でも、起動には SetTimer() を使ってねっ♥

929 名前:デフォルトの名無しさん :04/11/24 12:05:35
>>927
>>928
レスありがとうございます
GetTickCountとSetTimer()の長所と短所を教えてください
どっちを使った方がいいのか迷ってしまいました

930 名前:デフォルトの名無しさん :04/11/24 12:10:38
>>929
両方やってみろ

それで分からなかったら、頭悪すぎだからプログラムやめとけ

931 名前:デフォルトの名無しさん :04/11/24 12:10:48
火を見るより明らか
GetTickCount() 無限ループ
SetTimer() イヴェントドリヴン


932 名前:デフォルトの名無しさん :04/11/24 12:39:37
>931
それは>929に対する回答にはなってないですね。

933 名前:デフォルトの名無しさん :04/11/24 13:14:57
>>929
両者は、使用目的が違うので比較するようなものではないです。
ループで GetTickCount() の値の変化を待つのは
CPU時間の浪費につながるので、あまり望ましくないのです。

934 名前:デフォルトの名無しさん :04/11/24 13:37:14
>>932
それがどうかしましたか?

935 名前:デフォルトの名無しさん :04/11/24 13:48:40
>934
いいえ

936 名前:デフォルトの名無しさん :04/11/24 13:49:55
すべてはわたしがつくったモノなのです

937 名前:デフォルトの名無しさん :04/11/24 16:14:11
マルチメディアタイマー

938 名前:デフォルトの名無しさん :04/11/24 17:27:38
TextOut (hdc, (22 * cxCaps) + (40 * cxChar), cyChar * i,
szBuffer,
wsprintf (szBuffer, TEXT ("%5d"),GetSystemMetrics (sysmetrics[i].iIndex)));
というコードがあったのですが%5dってどういう言う意味なんでしょうか。
%dとの違いがよくわからず困ってます。


939 名前:デフォルトの名無しさん :04/11/24 17:37:11
APIの説明の width のところを読め

940 名前:デフォルトの名無しさん :04/11/24 17:37:12
5桁

941 名前:939 :04/11/24 17:41:33
すいません。訂正します。
APIの説明の width のところを読んでください。

942 名前:本物の939 :04/11/24 18:01:20
騙るな、この野郎
訂正なんかしねえぞ

943 名前:938 :04/11/24 18:05:20
荒れ気味なのでほかで聞きます。

944 名前:940 :04/11/24 18:27:10
俺は無視かよ

945 名前:デフォルトの名無しさん :04/11/24 18:32:06
当然無視

946 名前:939 :04/11/24 18:33:19
すいません。今精神が不安定で通院中なんです。
本当にすいません。病気なので許してください。

947 名前:デフォルトの名無しさん :04/11/24 19:43:53
>>944
とりあえず、これからも頑張ってくれ

948 名前:デフォルトの名無しさん :04/11/24 20:43:42
フォルダ選択ダイアログの出し方を教えてください。

開発環境はC言語、ボーランドです。

949 名前:デフォルトの名無しさん :04/11/24 20:46:57
>948
SHBrowseForFolder でググってください。

950 名前:デフォルトの名無しさん :04/11/24 20:47:24
SHFolderなんとかを使う

951 名前:デフォルトの名無しさん :04/11/24 20:50:58
>949
それそれ

952 名前:デフォルトの名無しさん :04/11/24 21:05:08
>>948
VisualC++逆引き大全500の極意
って本がかなりいいよ。
MSDNの100倍役に立つ。
これからは「MSDNの100倍役に立つVisual(以下略
って出してもいいくらい。

最近MSに下記原文まんま(ハゲ抜かしてw)で送ってみた。

おい!MS!てめぇんところにもう何年投資してやってるとオモテンだ!ハゲ!
いつになったらWin32APIが日本語訳されんだよ!ハゲ!
全然進歩してねぇよ。ハゲ!
最近じゃ英語ヘルプも含めて、日に日にWin32APIにヒットしなくなってるのは
どういうことだよ。ハゲ!
日本語訳そっちのけで、新機能なんか追加してんじゃねぇよ!ハゲ!
フィルタの種類ももニーズにあってないんだよ!ハゲ!
センスの悪さがMSDNからにじみ出てんだよ!ハゲ!

まだ、レスが返ってこないよw

953 名前:デフォルトの名無しさん :04/11/24 21:11:56
>>952
ゲイツ「これだから英語も出来ない極東の小国の民は困る」

954 名前:デフォルトの名無しさん :04/11/24 21:27:22
>>952
VisualC++逆引き大全500の極意
買ったけど損した。
使えるサンプルコードが少なすぎ。

たとえばSHBrowseForFolder の所なんかサンプルコードないだろ

955 名前:デフォルトの名無しさん :04/11/24 21:45:11
>>954
でも、ここまで詳しく書いてあれば十分だよ。
俺はその存在をしっただけでもよかった。

956 名前:デフォルトの名無しさん :04/11/24 21:46:05
逆引き大全、俺も VC++ を始めたての頃に買った。
誤植も多いけど、結構役に立ったよ。初心者にはいいと思う。

957 名前:デフォルトの名無しさん :04/11/25 00:52:04
htmlでルビ付きの文字列を作成し、それをVB6で
WebBrowserを使用してフォーム上に表示してますが、
WebBrowserは透過が出来ないため、WebBrowserの背景が
長方形型にくっきりと残ってしまいます。
どうしても、枠を消してフォームの背景上にWebBrowserの
ルビ付き文字だけを表示させたいのです。

VBでWebBrowserを透過表示させる方法を教えてくらはい

958 名前:デフォルトの名無しさん :04/11/25 05:42:16
たしかにMSDNは逆引きには向いてないな。
とくにShell/OLE/COM周りは。

959 名前:デフォルトの名無しさん :04/11/25 05:57:27
>>957
特に簡単な手はないです。get_Documentでドキュメントを手に入れて、
body の style を操作して背景イメージを適切に設定するのが良いと思います。

960 名前:デフォルトの名無しさん :04/11/25 06:07:00
逆引きだったら
VC++によるWin32プログラミングTips
http://www.expertmg.co.jp/html/cti/vctips/

フォルダ選択ダイアログの実装もちゃんとコードつきで説明がある。



961 名前:デフォルトの名無しさん :04/11/25 07:26:01
なぁ?
ディレクトリリストボックスってなかったっけ?
なんか古いタイプのファイルオープンダイアログにはついてんだけどなw
単体では無いんだなw

962 名前:デフォルトの名無しさん :04/11/25 07:29:10
LB_DIRのことか?

963 名前:デフォルトの名無しさん :04/11/25 07:37:18
>>962
おお!それそれ!
なるほどリストボックスだったんか・・・
SHBrowseForFolderとどっちがいいかな?

964 名前:デフォルトの名無しさん :04/11/25 07:50:31
>>936
ワラタ

965 名前:デフォルトの名無しさん :04/11/25 09:48:35
コンボボックスのオプションで
HTMLのOPTGROUPの様なものはありますか?

966 名前:デフォルトの名無しさん :04/11/25 15:20:56
コマンドラインやD&Dで渡されたファイル名を全部取り出すには
GetCommandLine() の返り値を全部解析するしかないですか?

またコンソールプログラムの場合はmain() の argc, argv でいいんですか?

967 名前:デフォルトの名無しさん :04/11/25 15:27:58
Win2K、VB6で開発を行なっています。
NetUserGetLocalGroupsを使ってUserの所属するグループを取得しようとしているのですが、
同じUser名でドメインの違うユーザーの区別はどうすれば良いのでしょうか?

NetUserEnumでUser名を列挙すると、"UserName"、"VUSR_USERNAME"と区別されているよう
なので、返された名前をNetUserGetLocalGroupsに渡してみたのですが"VUSR_USERNAME"の
方で関数が失敗してしまいました。


968 名前:デフォルトの名無しさん :04/11/25 15:34:57
MSDNに
<DomainName>\<UserName>
て書いてるけど

969 名前:デフォルトの名無しさん :04/11/25 15:57:48
>>966
NT系ならCommandLineToArgvWがつかえる。

970 名前:デフォルトの名無しさん :04/11/25 16:12:02
>>968
ああ、本当だ。吊ってくる..(´・ω・`)ショボーン
グループは取得できました。ありがとうございました。

それと、USR_USRERNAMEは何の関係も無かったです。

971 名前:デフォルトの名無しさん :04/11/25 16:20:39
WriteFileにてテキストファイルを上書きするとき、
元々書いてあった文字列より短いものを上書きすると、
前の内容が残っているようです。

↓こんな感じになります。
ファイルの文字列「あいうえお」
上書きする文字列「OK」
更新後のファイル文字列「OKうえお」

解決法を賜りたいです。

972 名前:デフォルトの名無しさん :04/11/25 16:30:34
>>971
SetEndOfFile

973 名前:971 :04/11/25 16:33:01
>>972
ありがとうございます。
それを調べてみます。

974 名前:デフォルトの名無しさん :04/11/25 17:16:15
Windows XP 64-bit Edition上で32bitアプリから64bitアプリが
CreateProcess()で起動可能か検証したことのある方。
できましたでしょうか?

975 名前:デフォルトの名無しさん :04/11/25 17:18:28
>>969
ありがとうございます。

976 名前:デフォルトの名無しさん :04/11/25 18:06:05
例えばWindowsの検索を選んで、検索したいファイル名やフォルダを探すため、
エディットボックスのハンドルを得ようとしますよ。
その際、僕はVC++のSpyとか言うのを使って、子ウィンドウとなっているそれが
上から何番目になってるか調べてChildWindow(?)とかいう関数を使ってGW_NEXT
で順々にハンドルをとる、面倒で馬鹿な事やってるんですが、
これ以外にいい方法はありませんか?


なんかわかりにくいですが、要は一発で
検索のような入り組んだアプリケーションの、エディットボックスのハンドルを得たいんです。
無理でしょうか?

977 名前:デフォルトの名無しさん :04/11/25 18:15:35
>>976
ウィンドウクラスで検索して、GetDlgCtrlIDでコントロールIDを取得して
目的のものかどうか判断するってのはどうでしょう?

978 名前:デフォルトの名無しさん :04/11/25 18:59:12
前の方に出ていたOpenProcessToken()とCreateProcessAsUser()を使ってサービスからログオンユーザーの
デスクトップでアプリを実行させようと思ったんですが、ログオンユーザーのプロセスハンドルの取得
方法が分かりません。どうやってアカウント名からプロセスハンドルを引っ張ってこればよいですか?


979 名前:デフォルトの名無しさん :04/11/25 20:36:03
CreateWindowExでリストボックスを作っているのですが、
コレは・・・高さが文字の高さの整数倍にしかならないみたいなんですけど、
ウィンドウの幅にぴったり合わせるにはどうしたらいいでしょうか?
今はMoveWindowでウィンドウに合わせようとしています。

980 名前:デフォルトの名無しさん :04/11/25 20:50:47
>>978
LogonUser( "UserName", NULL, "Password", LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT,
& hToken );
でトークン作ったほうが簡単。

981 名前:デフォルトの名無しさん :04/11/25 22:13:36
>>980
その方法だとパスワード引っ張って来るのに、gina.dllに細工するとかちょっと仕掛が必要ですよね?
ちょっち、難易度が高い気がするです。

各アカウントのパスワードをユーザーに開示してもらうっていうのも現実的ではないですし…困り
ました。


982 名前:デフォルトの名無しさん :04/11/25 22:33:37
winsta0のプロセスと同じアカウントである必要はなしです。
適当な実行権があればCreateProcessAsUserはwinsta0\Default上に起動しますが。
(つかSIDからトークンにするやり方わからん)

983 名前:デフォルトの名無しさん :04/11/25 22:58:54
だから>>732だっつってるのに。
このスレだけで三度目だぞその質問

984 名前:デフォルトの名無しさん :04/11/25 23:04:02
ああ方法が分からないって言ってるのか。
現在ログオンしてるユーザーでいいんだろ?
だったら現在走行中のプロセス列挙してどれでもOpenProcessすればいい
どのプロセスもwinlogonが作成したトークンを引き継いでるはずだから
(Terminal Serviceや「ユーザーの切り替え」や「別のユーザーとして実行」は
考慮してないが)

985 名前: ◆Manna2uCLg :04/11/25 23:13:33
ちょっくら次スレたててきますよ。

986 名前: ◆Manna2uCLg :04/11/25 23:17:15
すまん、立てられなかった。orz

↓代わりによろしく

987 名前:デフォルトの名無しさん :04/11/25 23:27:49
まかせろ

988 名前:デフォルトの名無しさん :04/11/25 23:34:19
Win32API質問箱 Build25
http://pc5.2ch.net/test/read.cgi/tech/1101393155/

989 名前:デフォルトの名無しさん :04/11/25 23:34:52
ほれ
http://pc5.2ch.net/test/read.cgi/tech/1101393155/

990 名前:デフォルトの名無しさん :04/11/26 08:34:43
>>978
これじゃダメなんかい?
ttp://support.microsoft.com/default.aspx?scid=kb;ja;173687

991 名前:デフォルトの名無しさん :04/11/26 13:05:36
>>990
それだと権限がLocalSystemのままだから危なくない?
ってリンク先にも書いてるけど

992 名前:979 :04/11/26 15:26:50
もう一つ質問です。
リストボックスの文字色を変えるにはどうしたらいいんでしょうか?
エディットボックスの場合には、WM_CTLCOLOREDITをつらまえて
SetTextColorで変更できたのですが、
リストボックスの場合は、WM_CTLCOLORLISTBOXをつらまえて
SetTextColorをやっても変更されません。
フォントの種類は変更できました。

リストボックスの文字色は、部分的にではなく、
全体としての文字色を変えたいです。
検索してオーナードローが出てきたのですが、
オーナドロー時にSetTextColorをやっても変更できませんでした。
よろしくお願いします。

993 名前:デフォルトの名無しさん :04/11/26 15:31:31
>>992
    [SetWindowPos]
∀・)っ[カスタムドロー]

994 名前:デフォルトの名無しさん :04/11/26 17:04:00
>>992
UIの部分だけVBで作るっていう手もあるけど・・・

995 名前:デフォルトの名無しさん :04/11/26 17:15:11
指定したファイルが更新された場合に通知してくれる
APIがあったと思うんですが、関数名なんでしたっけ?

誰かご存知の方ご教授願います

996 名前:デフォルトの名無しさん :04/11/26 17:52:43
FindFirstChangeNotification?

997 名前:979 :04/11/26 18:24:29
ありがとうございます。

>>993
それで頑張ってみます。

>>994
VBは触ったことがないので分かりません。
ごめんなさい。

998 名前:デフォルトの名無しさん :04/11/26 18:32:54
リストボックスはカスタムドローできない。
できるのはリストコントロール。

999 名前:デフォルトの名無しさん :04/11/26 18:41:35
>>996
これです。ありがとうございました!

1000 名前:デフォルトの名無しさん :04/11/26 18:47:36
1000


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.