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


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

Win32API質問箱 Build14
751 名前:デフォルトの名無しさん :03/11/14 22:00
「言語はC言語です。」

752 名前:デフォルトの名無しさん :03/11/14 22:01
mciSendString()でmidiファイルを演奏中にsndPlaySound()でwavを鳴らそうとしても鳴りません。
どのようにすればmidiを演奏したままwavを鳴らせるでしょうか?

753 名前:730 :03/11/14 22:07
成功か失敗かは兎も角、事例を知っているからこそ書いたわけだが。
そうか、失敗したのか(謎

754 名前:デフォルトの名無しさん :03/11/14 22:10
マルチスレッドで、ソケット通信してるスレッドが一つあります。

そのスレッドがWSACleaupする前に、呼び出し元を終了させちゃマズイんでしょうか?
それとも自動的にDLLを開放してくれるんでしょうか?
(DLLの初期化と開放ってのも良くわかってないんですが……)

755 名前:747 :03/11/14 22:17
全くお前らつかえねー奴らだな。
自己解決したよ。でも教えない。

所詮POSIX互換なんだから
Cでも使えるやつがあるだろ。
これだからwinなんて嫌なんだ。




756 名前:デフォルトの名無しさん :03/11/14 22:18
まぁ、CでBeginThreadを使おうとしていないことを祈ってやろう。

757 名前:デフォルトの名無しさん :03/11/14 22:51
CreateThreadと勘違いしてない?

758 名前:745 :03/11/14 23:37
>>746
ありがとう。EnumProcessesを調べてみます。

何もしていないときは、スクリーンセーバを表示させておいて、
デジタル入力とか通信で計測開始されたら、
スクリーンセーバを消去しようと思っていたわけで。


759 名前:デフォルトの名無しさん :03/11/14 23:47
>>757
ワロタ

760 名前:デフォルトの名無しさん :03/11/15 00:23
初心者のためのwinsockの勉強サイト教えてください。
winsock2が使えるようなところがいいです。

761 名前:デフォルトの名無しさん :03/11/15 00:28
>>760
店頭で本を立ち読みしてよいものを選らべ
といいたいけど、>>760が何処までできるか知らないし。

762 名前:747 :03/11/15 00:28
>まぁ、CでBeginThreadを使おうとしていないことを祈ってやろう。
しょうがないな。このスレにいる知ったか厨に教えてやるよ。
_beginthread

感謝しな。

763 名前:デフォルトの名無しさん :03/11/15 00:33
>>761
ネットワークとかp2pとか使う側としての知識はいくらかありますが、
どう動いているのかほとんど分からない状態です。
サーバーとクライアントで何かやり取りするんですよね?知ってるのはそこまで。

764 名前:デフォルトの名無しさん :03/11/15 00:37
>>763
漏れよりはありそうだ。
C言語入門サイト>Win32API入門サイト>Winsock2とどんどん減ってるから探しにくいね

765 名前:761 :03/11/15 00:54
>>764
もしかしてwinsockより主流なライブラリとかあるんですかね?
winsockも名前を知ってるだけなんですが・・・

766 名前:デフォルトの名無しさん :03/11/15 01:00
>>765
誤解を与えたならごめん。
windowsでのネットワークライブラリはwinsockが一番でかいと思うよ。

んで、漏れはWin32APIが解らなかったから Winsock2 のソースを見て諦めた香具師です
winsock2 入門でぐぐってみた?

767 名前:デフォルトの名無しさん :03/11/15 01:01
winsock は Win32Api とは違うのかな?とも思ってみた

768 名前:デフォルトの名無しさん :03/11/15 01:05
WinSock2.0プログラミング。

769 名前:デフォルトの名無しさん :03/11/15 01:06
>>768
本ではなくサイトを聞いてるんだよ。
ちなみに漏れはソレを読んでWIN32APIが解らずリタイヤ

770 名前:デフォルトの名無しさん :03/11/15 01:10
>>769
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/

771 名前:デフォルトの名無しさん :03/11/15 01:12
おぉすごい
・・・
って思ったらところどころ英語じゃん

大事なところは英語・・・アーゴの法則か?

772 名前:デフォルトの名無しさん :03/11/15 01:15
つか、本はダメとか英語はダメとか本当に勉強する気あんのか

773 名前:デフォルトの名無しさん :03/11/15 01:16
>>772
漏れはサイト教えてっていった人とは別の人だよ

in 771

774 名前:デフォルトの名無しさん :03/11/15 01:18
元質問者がすでにいないんじゃ?だったらやめるべ。

775 名前:761 :03/11/15 01:19
>>766
うーむ、やっぱり主流なんですか。ググると本がいっぱい出るんですがあんましお金がないです。
>>770
ありがとうございます。

776 名前:デフォルトの名無しさん :03/11/15 03:10
例えばtxtファイルをCreateFileで開こうとして
ERROR_SHARING_VIOLATIONがでて開けなかったとき
誰が共有ロックしているか、ユーザ名やコンピュータ名を調べることはできるのでしょうか?

Excelなんかだと誰がロックしているか表示されますが特殊?

777 名前:デフォルトの名無しさん :03/11/15 03:32
>>776
特殊はありえない
ファイルにファイル情報があるわけだから、そこから取り出してるんだと思う

と、勝手な想像すまそ

778 名前:776 :03/11/15 03:42
>>777
レスどうもです。
そう思うんですが、それがみあたらないんですよ(TT
ファイル情報取得系のAPIを探してみたんですが・・・

で、Excelはファイル開いたときにファイル自身に情報保存したりしてるのかなぁ
なんて考えてたもので。

あ〜あ、ファイルそのまま開かずにロックファイルでも作って開くアプリ
作るしかないかなぁ・・・

仕事忘れてもう寝ます(泣

779 名前:デフォルトの名無しさん :03/11/15 03:44
>>778
なるほど、ファイルに個人情報を組み込むって手かぁ・・・
M$とか企業アプリならやりそうですね・・・

でもユーザーが違って開けないって言うのは、ファイルシステムの概念ではないですよね?

780 名前:デフォルトの名無しさん :03/11/15 03:51
Excelはファイル開いた時に隠しファイル作ってますよ

781 名前:デフォルトの名無しさん :03/11/15 04:41
ファイルを開いているのはプロセスなわけだが。

782 名前:デフォルトの名無しさん :03/11/15 07:29
これのことでしょ?
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/083opened_net_file/083opened_net_file.html

どうAPIを使えば実現できるのかはわからないけど、そういうツールはあった。
ttp://www.dr-hoiby.com/WhoLockMe/index.html

783 名前:デフォルトの名無しさん :03/11/15 07:36
>>782
上の記事を見た限り
CreateHandleだっけ?(ファイル操作まだやってないので。
アレの引数で指定すれば共有して開けないね

784 名前:デフォルトの名無しさん :03/11/15 08:33
>>782
そのファイルを開いているプロセスがローカルなのかリモートなのか
判断して処理を切り替えてやらんといかん分けだな。。。

そんなもんウイソの標準のコマンドかツールで用意していてホスイぞ。
つか、漏れが知らないだけ?


785 名前:デフォルトの名無しさん :03/11/15 08:56
>>745
ttp://pc2.2ch.net/tech/kako/1056/10560/1056033645.html
の233あたりから読みたまえ。

786 名前:745 :03/11/15 10:23
>>785
レスありがとう。

スクリーンセーバ設定を無効にしたりとか、
スクリーンセーバを表示させないのではなく、
スクリーンセーバが表示されていたら、消去したいのだが。

SystemParametersInfo(SPI_GETSCREENSAVERRUNNING)
keybd_event(VK_SHIFT)



MessageBox を使って、スクリーンセーバーの設定を切ってくださいとユーザーに頼む

が使えそうな気がするので、これで試してみます。

"WindowsScreenSaverClass"クラスのスクリーンセーバだったら、
9X, 2000の場合、
FindWindow("WindowsScreenSaverClass")
NT4の場合、
OpenDesktop("screen-saver")
と思っていたわけで、
XPでは特別な方法があるのではと思い質問しました。


787 名前:デフォルトの名無しさん :03/11/15 14:22
>>776
Wordの場合だと、隠しファイルが作られて
その中にユーザ名が書き込まれている。
Excelでもたぶん同様。
その隠しファイルからユーザ名を拾ってくればいいのでは?


788 名前:デフォルトの名無しさん :03/11/15 16:40
ウインドウラップライブラリを作ろうと思っています。
Java風にActionListenerを実装して各オブジェクトでイベントを受けとるようにするか、
それともメッセージが来たら自分の仮想関数を呼び出すようにするか迷っています。
どっちがいいでしょうか?

789 名前:776 :03/11/15 17:12
>>780
>>787
情報どうもです。
やはりそうでしたか、ちなみにどこに隠しファイル作っているかご存じでしょうか?

>>782
TIPSの方は知ってたんですが、全員に管理者権限渡すわけにもいかず・・・

ツールはまさにこれか!!と思ったのですが残念ながらだめでした。
ロックしていることはわかるのですがそれが誰かはわからないようです。

クライアントでサーバのxlsをロック。
 クライアント側でツールを使ってチェック
  Domain User ともに自分自身を示す。
 サーバ側でツールを使ってチェック
  Domain=NT AUTHORITY
  User=SYSTEM
となってしまい、ほかのPCからでは誰がロックしているかわからない状態です。

現状ファイルオープン時にロックファイルを作りそれをチェックするような
ツールを作るしかなさそうです・・・



790 名前:デフォルトの名無しさん :03/11/15 17:29
>>788
先ず第1にATL/WTLを使うことを考える。
それがダメなら.NETのように、先ず自分の仮想メソッドを呼び出し、そのメソッド内でリスナーにイベントを飛ばす。

>>789
同じフォルダに無いか?俺はよく見かけるが。

791 名前:788 :03/11/15 17:36
>>790
なるほど。両方とは思いつきませんでした。どうもありがとうございました。

792 名前:デフォルトの名無しさん :03/11/15 19:27
MSDNのWindows Shell Namespaceの説明を読んでいるんですが、
PIDLというのは{0x00,0x00}でターミネートするってことは中身Unicode
ってことですよね。
これはWin9x,NT系のどちらでも同じですか?

793 名前:デフォルトの名無しさん :03/11/15 19:34
ちょっと質問させてください。
自プログラムからファイルをドラッグ&ドロップしたときに、
自プログラムがドロップ先のフォルダを知るのはどのようにすればよいでしょうか?(SDKで)
何故このようなことがしたいのかと言うと、
ある暗号化されたファイルをドラッグ&ドロップで移動したら、
復号化してドロップ先に出力するようにしたいんです。

794 名前:デフォルトの名無しさん :03/11/15 19:37
>>792
> PIDLというのは{0x00,0x00}でターミネートするってことは中身Unicodeってことですよね。
飛躍しすぎ。

>>793
ドロップ先のフォルダを知る事は出来ない(なにせドロップ先がエクスプローラのフォルダビューであるかどうかすら分からないのだから)
どこかに複合化して、それをドラッグしたことにすれば良い。

795 名前:デフォルトの名無しさん :03/11/15 19:37
>>784
> そんなもんウイソの標準のコマンドかツールで用意していてホスイぞ。
> つか、漏れが知らないだけ?
うん。あんたが知らないだけ。


796 名前:793 :03/11/15 19:44
>>794
そうですか…。
OLEとか使えばなんとかなるのかもしれないと思っていたのですが、残念です。
WinZIPとかWinRARとかみたいにしたかったんですが、
あれもいったんどこかに一時的に展開してるっぽいですね。
そのわりにどのドライブに展開しても速度が変わらないような気がするのですが…。


797 名前:デフォルトの名無しさん :03/11/15 20:22
VC6でGDIリークまたはリソースリークを検出する関数ってありますか??
crtdbg.hにはそういう記述はみあたらなかったので。

798 名前:デフォルトの名無しさん :03/11/15 20:39
>>797
いや、君の調べが足りない。
ctrdbgをもっと解析しる。

799 名前:デフォルトの名無しさん :03/11/15 20:51
>>794
すると、PIDLの中身ってどういうものが格納されているのでしょう。

800 名前:デフォルトの名無しさん :03/11/15 21:00
>>799
PIDLで検索してでないの?
うにこーどは0xffefだったはず

801 名前:デフォルトの名無しさん :03/11/15 22:13
shlobj.hにSHGetFolderLocation()が無いのですが、
これは古すぎですか?

802 名前::03/11/15 22:14
質問!  2重起動防止で

HANDLE hMutex;
hMutex = CreateMutex(NULL, TRUE, "UniqueName");
if(!hMutex)
return FALSE;
if(GetLastError() == ERROR_ALREADY_EXISTS) {
return FALSE;
}

が正しくて

HANDLE hMutex;
hMutex = OpenMutex(MUTEX_ALL_ACCESS, FALSE, "UniqueName");
if(hMutex)
return FALSE;
CreateMutex(NULL, TRUE, "UniqueName");

これは理論的に誤りとあるんですが、
下のは何所に割り込める余地があるのか教えてください!

803 名前:デフォルトの名無しさん :03/11/15 22:20
>>802
openが失敗してcreateする間

804 名前:デフォルトの名無しさん :03/11/15 22:22
>>802
プロセス1が、OpenMutex() して CreateMutex() する前に、プロセス2が割り込んで OpenMutex() したら両方のプロセスの OpenMutex() が失敗するから、両方とも起動してしまう。

基本だと思うが...。

805 名前::03/11/15 22:24
ああ、そおゆうことか。

806 名前:デフォルトの名無しさん :03/11/15 22:36
CreateMutexを使った2重起動の防止と
FindWindowでやった2重起動の防止、どっちが推奨なんでしょうか?

807 名前:デフォルトの名無しさん :03/11/15 22:47
>>789
WhoLockMe はロックしてるユーザIDが出てるが。。。

808 名前:デフォルトの名無しさん :03/11/15 22:52
>>806
CreateMutex だと思う。
FindWindows だと両方とも2重起動だと思って終了する可能性があるような気がする。

809 名前:デフォルトの名無しさん :03/11/15 22:58
>>808
逆じゃねぇのか?
FindWindowsで確認してからウィンドウ作るまで時間がかかる。


810 名前:デフォルトの名無しさん :03/11/15 23:02
>>809
逆かも知れん。(つーか、作り方次第。)
まあ、結局ウィンドの作成と FindWindow でチェックする間の隙間があるから、ダメってことだ。

811 名前:807 :03/11/15 23:12
他のPCからオープンされているとSystemプロセスのユーザIDが表示されるのね・・・


812 名前:797 :03/11/15 23:16
>798
僕の環境に"ctrdbg"はなかったです。
gdiで検索しても出ないし、resouceでも出ませんでした。
ヒントでも良いのでご存知ありませんか?


813 名前:デフォルトの名無しさん :03/11/15 23:23
>>808-810
レスありがとうございます。言われて自作の手持ちツールを
連打して起動したら見事に複数起動してくれました。

全部作り直します・・・。

814 名前:デフォルトの名無しさん :03/11/15 23:35
複数起動すると何かマズイことが起こるツールなんか?
複数起動しても問題無いツールなら、複数起動できる方が便利だが。


815 名前:801 :03/11/15 23:41
馬鹿なこと言ってたらすみません。
プロトタイプ宣言を手書きしてみたところ、当然のようにリンクエラーになりました。
Systemフォルダのshell32.dllの中には確かにSHGetFolderLocation
というシンボルがあります。しかしVC98/Libのshell32.libの中を検索すると
こっちにはシンボルがありません。

.libの方を更新しなければならないと思うのですが、どうすればいいのでしょう?
使っているVC++が大昔(3年近く前)に購入したパッケージなのですが、
サービスパックをインストールしてみても変化ないのです。

816 名前:デフォルトの名無しさん :03/11/15 23:45
>>815
・付属のツールでインポートライブラリを作る(VC++もってないからやり方はしらん、BCBはimplibでできる)
・最新のPlatformSDKからインポートライブラリを持ってくる(最新のヘッダも入ってるのでこっちをおすすめ)



817 名前:デフォルトの名無しさん :03/11/15 23:45
キーワードはPlatformSDK


…でいいんだったかなw

818 名前:801 :03/11/15 23:59
>>816,817
ありがとうございます。
現在ダウンロード中です。

ツールの方はドキュメント見ないとわかりませんが、
MinGWのimpdef.exeみたいなもんでしょうか。

819 名前:デフォルトの名無しさん :03/11/16 01:11
>>814
ゴミレスやめろ

820 名前:デフォルトの名無しさん :03/11/16 01:21
下記のように矩形を設定してから DrawText しても、文字列が半角英数がひたすら連続するものだと右端で折り返してくれずにそのままどこまでも逝ってしまいます(DT_NOCLIPつけて確認しました)

これを何とか、指定した幅に収まるようにできないでしょうか。高さはDT_CALCRECTして再設定してあげればいいんですが、幅は固定じゃなきゃいけない仕様なのでとても困り果てています。

// *** 下のソースだと折り返してくれません ***//
RECT r;
SetRect(&r, 0, 0, 50, 50);
TCHAR c[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
DrawText(hdc, c, lstrlen(c), &r, DT_LEFT | DT_WORDBREAK);


821 名前:デフォルトの名無しさん :03/11/16 02:12
>>797
前にこのスレで同じ質問したけど、なかなか難しいっぽい。
9xで動く、それ用のツールがある模様。
結局タスクマネージャでGDIオブジェクト数とか観察して、「んー増えてるなー。
リークしてるなー?」って感じで検出してるけどね(;´Д`)

>>819
DT_EDITCONTROL?

822 名前:820 :03/11/16 02:30
>>821
ありがとう、それで無事できました。
見おとしてたー

823 名前:デフォルトの名無しさん :03/11/16 04:41
>>819
ゴミレスかな?

824 名前:デフォルトの名無しさん :03/11/16 07:55
>>823
ゴミレスだろ。

825 名前:デフォルトの名無しさん :03/11/16 11:25
>>824
いや、ゴミスレだろ。


826 名前:デフォルトの名無しさん :03/11/16 11:26
>>825
いや、ゴミ板だろ。

827 名前:デフォルトの名無しさん :03/11/16 11:31
ゴミサイト

828 名前:デフォルトの名無しさん :03/11/16 11:34
ゴミネット

829 名前:デフォルトの名無しさん :03/11/16 11:36
ここは、ファミレスではありませんよー。


830 名前:デフォルトの名無しさん :03/11/16 11:42
ファンレス

831 名前:デフォルトの名無しさん :03/11/16 11:46
ダイアログボックスだけのプログラム作ろうと思ってます。
ウィンドウクラス定義したダイアログボックスだけのプログラムです。
だけどリソースで定義した PUSHBUTTON(アイコンボタン) にアイコンをロードするときに
WM_CREATEで拾うと PUSHBUTTON が定義されていないせいか、アイコンをセットできません。

このボタンを押すと自身にアイコンセットのメッセージを送る用に作るとうまく行きました。
あと、通常のウィンドウで CreateWindow でボタンを作ってそのボタンにアイコンセットのメッセージを送ってもうまく行きました。

でも、作りたいのは
〔ダイアログボックスをリソースで定義〕〔ウィンドウクラスをプログラムで登録〕コレを利用してプログラムを起動したときにボタンにアイコンをセットするプログラムが作りたいのですが
どのようにすれば解決するでしょうか?ヨロシクお願いします

832 名前:デフォルトの名無しさん :03/11/16 12:09
WM_INIT_DIALOG(だっけ?)

833 名前:デフォルトの名無しさん :03/11/16 12:16
>>832
独自のウィンドウプロシージャ・ウィンドウクラスを使用しているせいか WM_INITDIALOG が送られてきません><;
(今メッセージボックスが出るか確認しました。
ちなみにウィンドウクラスは
winc.style = CS_HREDRAW | CS_VREDRAW; // サイズ変更されたら再描画
winc.lpfnWndProc = WndProc; // ウィンドウプロシージャアドレス
winc.cbClsExtra = 0;
winc.cbWndExtra = DLGWINDOWEXTRA; //ダイアログアプリケーション必須です
winc.hInstance = hInstance; // hInstance
winc.hIcon = LoadIcon(hInstance , AppName); // アイコン
winc.hCursor = LoadCursor(NULL , IDC_ARROW); // カーソル
winc.hbrBackground = (HBRUSH) (COLOR_BTNFACE + 1); // 背景
winc.lpszMenuName = NULL; // めミューなし
winc.lpszClassName = AppName; // クラス名
です

834 名前:デフォルトの名無しさん :03/11/16 12:21
お手上げでしょうか?つдT

835 名前:814 :03/11/16 12:29
>>819
そうか・・・
正直スマンカッタ

カチャ
  ;y=ー( ゚д゚)・∵. ターン
  \/| y |)


836 名前:デフォルトの名無しさん :03/11/16 12:30
解決法も見つからず・・・かといって知識があれば質問してないしどしよ

837 名前:デフォルトの名無しさん :03/11/16 12:30
下げるからダメなのか!?age

838 名前:デフォルトの名無しさん :03/11/16 12:56
寝てるのかなぁ?・・・
やすみ〜

839 名前:デフォルトの名無しさん :03/11/16 13:03
出来ました。
ウィンドウクラスを使わないでやったら動きました。そーす汚してすみませんでした

840 名前:デフォルトの名無しさん :03/11/16 17:15
DrawTextで DT_NOFULLWIDTHCHARBREAK を描画オプションで指定すると、
「'DT_NOFULLWIDTHCHARBREAK' : 定義されていない識別子です。」と言われてコンパイルできません。
↓にはちゃんと書いてあるんですが。
http://www.microsoft.com/japan/developer/library/jpgdipf/_win32_drawtext.htm

必要なヘッダとかあるんでしょうか?
Win2k + VC++6.0sp5 で開発してます。

841 名前:デフォルトの名無しさん :03/11/16 17:17
>>840
Windows98/200以上専用です。
適切なOSバージョン定数を定義してください。

842 名前:デフォルトの名無しさん :03/11/16 17:23
>>841
2kって言ってるよ

843 名前:デフォルトの名無しさん :03/11/16 17:24
>>842
「定数を定義してください」

844 名前:デフォルトの名無しさん :03/11/16 17:24
DT_WORDBREAKを入れろと書いてある

845 名前:デフォルトの名無しさん :03/11/16 17:25
定義しろなら必要なヘッダが読み込まれてない。

846 名前:840 :03/11/16 17:36
ありがとうございます。書き方が悪くてすみません。
環境は Windows 2000 で VisualC++ の SP5 です。

DT_WORDBREAK も一緒に指定してあげてますが、こちらは問題ないです。
必要なヘッダファイルが何なのか、ご存知なら教えていただけませんか?

847 名前:デフォルトの名無しさん :03/11/16 17:38
もしかして>>817と同じパターンか

848 名前:デフォルトの名無しさん :03/11/16 17:42
>>846
>ヘッダー:Winuser.h で宣言、Windows.h をインクルード
>インポートライブラリ:User32.lib を使用
この辺は大丈夫?

849 名前:デフォルトの名無しさん :03/11/16 17:47
そうだね、たぶん817と同じパターンだとおもうよ。
includeディレクトリをgrepしてみたけど、PlatformSDKの方に
しか定義されてなかった。

850 名前:840 == 846 :03/11/16 17:49
>>847, 847
ありがとうございます。
Winuser.h, Windows.h どっちも include してますが相変わらずです。
User32.lib もリンカに設定されています。

とりあえず
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dx8_vb/directx_vb/graphics_enum_d3dxvb_9dcy.asp
にあった定数「 DT_NOFULLWIDTHCHARBREAK = 524288 (&H80000) 」を無理やりはめてみました。
でも効果あるのかないのかよくわからない・・・

851 名前:デフォルトの名無しさん :03/11/16 17:57
>>850
いや、最新のPlatformSDKインストールしろよ

852 名前:797 :03/11/16 18:06
>821
情報Thx!
今一番危惧していることは、HDCがはじめから持ってるHBITMAPのリークです。
デバッグしたアプリを閉じてもリソースが起動前よりも減るばっかりでかなり恐ろしい感じです。
何か安心する方法が無いかもうちょっと探してみます。

853 名前:840 == 846 == 850 :03/11/16 18:28
>>849, 851
ありがとう、今やっとダウンロード終わってインストールしました。
無事できたよう!(´∀`)

854 名前:デフォルトの名無しさん :03/11/16 18:31
>>852
http://msdn.microsoft.com/msdnmag/issues/01/03/leaks/default.aspx


855 名前:デフォルトの名無しさん :03/11/16 22:07
ちょいと質問。
3つの数値をCOLORREF型にしてくれるマクロがRGB。
じゃあ、逆にCOLORREFの値を3つにわけてくれるマクロって無いの?

856 名前:デフォルトの名無しさん :03/11/16 22:10
RGBマクロの説明のとこに書いてるだろ。

857 名前:デフォルトの名無しさん :03/11/16 22:12
>>855
COLORREFの説明のとこに書いてるだろ。ボケ。

858 名前:デフォルトの名無しさん :03/11/16 22:19
>>831
WM_SHOWWINDOWは?

859 名前:デフォルトの名無しさん :03/11/16 22:22
>>858
プログラムが終了するんですよね。
ちなみに今は
winmain()
{
Dialogbox(hInst,"TestDialog",0,(DLGPROC)WndProc);
return 0;
}
にて動いています。

で動かなかった理由はリソース定義部のダイアログボックスで
CLASS "〜"
を入れていたからでした。(この時はもうウィンドウクラスを消してしまった頃です

860 名前:855 :03/11/16 22:24
失礼つかまつりました。

861 名前:デフォルトの名無しさん :03/11/16 22:26
>>860
わかってよかったね

862 名前:デフォルトの名無しさん :03/11/16 22:27
ところで、存在がわからないものについてはどう質問すればいいのかなぁ?

いつも質問の内容は普通にわかるだろ見たいなのがあるけどさぁ・・・
自分も解らないものばかりで、質問したらシカトとかいやだし。
存在するかどうかわからない関数についてはどういうふうに質問すればいいのでしょうか?

863 名前:デフォルトの名無しさん :03/11/16 22:48
欲しい機能を「人にわかるように」説明するしかあるまい。

864 名前:デフォルトの名無しさん :03/11/16 22:48
こんなことできないかな〜

865 名前:デフォルトの名無しさん :03/11/16 22:49
目的志向で聞く
当然ながら凄まじい煽りの嵐を呼ぶことになるが
そこでくじける人は有料のサポートを買いなさい

866 名前:デフォルトの名無しさん :03/11/16 22:50
>>863
ソレがもし atoi とかでも?そういう人なら嬉しいんだけど。人間違うから叩かれるよねぇ?・・・

867 名前:デフォルトの名無しさん :03/11/16 22:56
まずは「Win32PAIに含まれるような物かどうか」くらい考えることはして欲しいもんだが。

868 名前:デフォルトの名無しさん :03/11/16 23:06
>>867
たとえ悪くてすみませんでした。

ところで>>831見たいな質問は許されますか?

869 名前:デフォルトの名無しさん :03/11/16 23:19
>>855
COLORREF自体が単なるDWORDなので、

union{
 COLORREF colorref;
 R,G,B:BYTE;
}

こんな共用体を使えばわざわざ変換する必要もなくなる。


870 名前:デフォルトの名無しさん :03/11/17 00:21
>>867
狙ってないだろうが、激しくワラタ

871 名前:デフォルトの名無しさん :03/11/17 00:33
>>869
アラインをバイト単位にするオプション忘れんなよ。

872 名前:デフォルトの名無しさん :03/11/17 00:59
普通のGDI APIで GradientFill() 使わずに、長方形をグラデーションで
塗りつぶします。

少なくとも CreatePen() をたくさん呼び出す場合よりは ExtTextOut() の方が
速かったんだけど、それより速い方法ってあり?

873 名前:デフォルトの名無しさん :03/11/17 01:05
DDSURFACEDESCとかのDESCってなんて訳してます?
記述子?なんかしっくりこない。

874 名前:デフォルトの名無しさん :03/11/17 09:44
>>869
GetRValue、GetGValue、GetBValueを使おうぜ。

875 名前:デフォルトの名無しさん :03/11/17 09:47
それってダサくない?

876 名前:デフォルトの名無しさん :03/11/17 14:36
rebarとかに乗せずに普通にツールバーを作ると
メニューやキャプションの間に境界ができますよね?
確かあの境界を作らないようにする方法があったと思うのですが思い出せません
どなたかご存知ありませんか?

877 名前:876 :03/11/17 14:41
ageます

878 名前:デフォルトの名無しさん :03/11/17 18:39
>>875
なら自分でマクロつくれ
いちいち無駄なことに反応すな

879 名前:デフォルトの名無しさん :03/11/17 19:52
お、釣れた釣れた

880 名前:デフォルトの名無しさん :03/11/17 20:16
根拠の薄い煽り、放置不能、、釣りと称した言い訳


881 名前:デフォルトの名無しさん :03/11/17 20:18
質問する人は取とってほしいね

882 名前:デフォルトの名無しさん :03/11/17 21:04
モーダルダイアログでアイドル処理するにはどうすればいいですか?

883 名前:デフォルトの名無しさん :03/11/17 21:30
>>882
DialogBox()の中でメッセージループいじってるので不可能

884 名前:デフォルトの名無しさん :03/11/17 21:47
アイドル処理というのは、メッセージを受けなかったりスリープ状態ということでしょうか?・・・無知ですみません><;

885 名前:デフォルトの名無しさん :03/11/17 22:23
>>884
みなさ〜ん、ぼくを煽ってくださ〜い!

という、まさに今のおまいのような状態を言う

886 名前:デフォルトの名無しさん :03/11/17 22:27
タイトルの分かっているウインドウを最大化/もとのウインドウサイズに戻すプログラムを組んでいます。
まず、最大化させようと、次のようなプログラムを書き、動作しました。

HWND hwnd;
UINT msg;
WPARAM wparam;
LPARAM lparam;

/* ウィンドのタイトルを得る */
hwnd = FindWindow(NULL, "ウィンドウのタイトル");

/* 最大化メッセージを送る */
msg = WM_SYSCOMMAND;
wparam = SC_MAXIMIZE;
PostMessage(hwnd, msg, wparam, lparam);

もとのサイズに戻すには、wparam = SC_RESTOREとすればよいと考えています。

ここから、質問なのですが、ウインドウが現在、最大化されているかを調べる方法ってどうやるんでしょう?
識者の方、よろしくお願いします。



887 名前:デフォルトの名無しさん :03/11/17 22:28
IsZoomed

888 名前:886 :03/11/17 22:30
>887
すばやい反応ありがとうございます。なるほど、そのままの名前のAPIですね(^^;;

889 名前:デフォルトの名無しさん :03/11/17 23:19
MFCのダイアログでアイドルハンドラ無かったっけ。

890 名前:デフォルトの名無しさん :03/11/17 23:24
MFCのあれはモーダルではない。
MFC製とOS謹製のモーダルだと動作が違うらしいけど
詳しいことは知らない。

891 名前:デフォルトの名無しさん :03/11/18 00:04
>>889
MFC のは擬似モーダルだね。
まさに、アイドルメッセージを処理するために
擬似にしているような気がするが。
ソースを追って見たら?


892 名前:デフォルトの名無しさん :03/11/18 00:13
RunModalLoop()なるものを回してた。んでアイドルメッセージWM_KICKIDLEを送る機会を与えてた。

893 名前:860 :03/11/18 00:24
結局、こういうマクロにしときますた。

#define COLORREFTORGB(c,r,g,b) r=(BYTE)c;g=(BYTE)(c>>8);b=(BYTE)(b>>16);

でも共用体のほうが美しいと思った。
みなさんレスどもでした。

894 名前:デフォルトの名無しさん :03/11/18 00:34
>>893
if(なんたら)
COLORREFTORGB(c,r,g,b);

なんてことすると…(・∀・)

895 名前:デフォルトの名無しさん :03/11/18 00:40
>>893
#define COLORREFTORGB(c,r,g,b) (r=(BYTE)c,g=(BYTE)(c>>8),b=(BYTE)(b>>16))

ところで質問なんですが
MFCのフローティングツールバーとか、
フロート中はWS_POPUPスタイルを持っているんですが
親ウインドウのタイトルバーも青いまま=ウインドウがアクティブな状態
になってますよね、これってどうやってるんですか?

WM_NCACTIVATEで親ウインドウにフォーカスを移すようにしてみると
ポップアップに乗っけたコントロールが動かなくなるのですが。

896 名前:デフォルトの名無しさん :03/11/18 01:40
VCのSDKでダイアログベースのプログラムつくってるんすけど
GetOpenFileNameで拾ってきたファイルネームをダイアログの
EDITボックスに入れたいんです。
この場合どこをいぢればいいんでしょうか?

897 名前:デフォルトの名無しさん :03/11/18 01:43
>>896
はWin32APIの入門書のコントロールの章を読むべきだね

ちなみに
SetWindowText (HWND,LPSTR)だった希ガス

898 名前:896 :03/11/18 02:00
>897
すいません、事故解決しました
SetDlgItemText
であっさりうまくいきました
申し訳ないっす

899 名前:デフォルトの名無しさん :03/11/18 02:02
>>886
そうやって直接メッセージを送るのは好かんな。
ShowWindowあたりを使った方がスマートかと。

900 名前:デフォルトの名無しさん :03/11/18 02:03
>>898の中の人の>>898
SendMessageのが好きだけど、なんでPostMessage?

901 名前:デフォルトの名無しさん :03/11/18 02:03
>>900
間違い・・・・

>>886向けです><;

902 名前:886 :03/11/18 02:35
886です。
プログラム中のコメント、間違っていました。
「ウインドゥのタイトルを得る」→「タイトルからウインドウハンドルを得る」

>>899
確かにスマートですね。
ShowWindow(hwnd, SW_MAXIMIZE); で最大化できました。

>>900-901
メッセージを送る側のプログラムは、最大化メッセージを送った後、即終了します。
メッセージを送った後はプログラム間の同期は不要なので、PostMessage()にしました。

つたない質問&プログラムにレスつけてくださって、感謝です。

903 名前:デフォルトの名無しさん :03/11/18 03:26
長くてすいません。
class SETMP3{
public:
HWND hwnd;
static OPENFILENAME ofn = {0};
static TCHAR *strFile[MAX_PATH];
static TCHAR *strCustom[256] = TEXT("Before files\0*.*\0\0");
static TCHAR *strMove;MAX_PATH] = TEXT("C:/backup/test.dat");
public:
〜〜〜〜
}
んで、メンバ関数から参照とかしてるんですが
main.obj : error LNK2001: 外部シンボル ""public: static char * SETMP3::strFile" (?strFile@SETMP3@@2PADA)" は未解決です
とでてしまいます。
これっていったいどうやればいいのでしょうか?
いままでだましだましやってたんですけど、しっかりわかっときたいんです
おねがいします。

あと上のソースで
static OPENFILENAME ofn = {0};
の部分で初期化できないかんじで、引っかかるんですが、Winmain関数に直に書くと
なぜか通ります
classの中でこの手の構造体の初期化って出来ないんですか?
コンストラクタで
ofn={0};
でもダメでした。

904 名前:デフォルトの名無しさん :03/11/18 03:32
char *str[128]とかやめた方がよくない?

strはTCHARのポインタのポインタが128個て意味?
*strCustom[256] = TEXT("Before files\0*.*\0\0"); の代入ができるの?
strMove;MAX_PATH]
は開始が無いのに ] 閉じをしてる

905 名前:デフォルトの名無しさん :03/11/18 03:33
C++やったこと無いけど public: は二つもハイって平気なの?
連レススマソ

906 名前:903 :03/11/18 03:37
うげ、貼り付けたソースが手直し中のごちゃごちゃのでした
static OPENFILENAME ofn = {0};
static TCHAR strFile[MAX_PATH];
static TCHAR strCustom[256] = TEXT("Before files\0*.*\0\0");
static TCHAR strMove[MAX_PATH] = TEXT("C:/backup/test.dat");
こんな感じです。
このコードだと初期化が出来ないようなエラーがでて
初期化の部分試しに引っこ抜いてみたら、外部参照エラーでて
staticも取ってみたら変なメモリ読もうとして強制終了してしまいます

907 名前:デフォルトの名無しさん :03/11/18 03:48
クラス内で初期化は コンストラクタ でしか無理じゃないの?

908 名前:903 :03/11/18 03:50
コンストラクタで初期化しようとしても

ofn={0};
strCustom = TEXT("Before files\0*.*\0\0");
strMove = TEXT("C:/backup/test.dat");
とコンストラクタにかいたら

: error C2059: 構文エラー : '{'
: error C2143: 構文エラー : ';' が '{' の前に必要です。
: error C2143: 構文エラー : ';' が '}' の前に必要です。
: error C2440: '=' : 'char [19]' から 'char [256]' に変換することはできません。(新しい動作 ; ヘルプを参照)
この変換が可能なコンテキストはありません。
: error C2440: '=' : 'char [19]' から 'char [260]' に変換することはできません。(新しい動作 ; ヘルプを参照)
この変換が可能なコンテキストはありません。

てな感じでエラーがでてしまうんです。
class使わないで直に書けば動くのですが、なんとかclassを使いたいと
思ってまして……

909 名前:デフォルトの名無しさん :03/11/18 03:51
>>906
というかそれC++の質問。初期化と代入も混同してるようだからCからやり直しかな。

910 名前:デフォルトの名無しさん :03/11/18 03:52
>>908
それ初期化じゃなくて代入。

911 名前:903 :03/11/18 03:56
わかりました、出直してきます......_| ̄|○

912 名前:デフォルトの名無しさん :03/11/18 04:01
// SETMP3.h
class SETMP3{
public:
  SETMP3();
  static OPENFILENAME ofn;
  static TCHAR strFile[MAX_PATH];
  static TCHAR strCostom[256];
  static TCHAR strMove[MAX_PATH];
};

// SETMP3.cpp
OPENFILENAME SETMP3::ofn = {0};
TCHAR SETMP3::strFile[MAX_PATH];
TCHAR SETMP3::strCostom[256] = _T("Before files\0*.*\0\0");
TCHAR SETMP3::strMove[MAX_PATH] = _T("C:\\backup\\test.dat");

913 名前:デフォルトの名無しさん :03/11/18 04:06
変数の初期化以外では配列の代入はできません

wstrcpy (strCustom, TEXT("Before files\0*.*\0\0")) としてみましょう

914 名前:912 :03/11/18 04:07
コンストラクタの SETMP3(); は消して。

915 名前:デフォルトの名無しさん :03/11/18 04:13
横槍の質問。
よく見る
"Before files\0*.*\0\0"を
"Before files\0*.*\0"と書くのはダメ?

916 名前:デフォルトの名無しさん :03/11/18 04:17
903は答えを見ずに逝ったか・・・

917 名前:デフォルトの名無しさん :03/11/18 04:19
>>915
え〜とね・・・もともとは
"nnn\0*.*\0xxx\0*.*\0\0"見たいな感じで複数の文字列を格納しているんだと思うよ。
でその複文字列の終了が"\0\0"だと思う。

918 名前:903 :03/11/18 04:22
>912
やってみたのですが
error C2655: 'ofn' : 現在のスコープ内で識別子が再宣言あるいは再定義されています。
が4つ、それぞれの変数で、でてしまいます。
どこがダメなのか考え中です。

>913
ありがとうございます、かなり初歩的なところも解ってないみたいです……
あかんわ……

919 名前:デフォルトの名無しさん :03/11/18 04:24
>>918
>>912のように.hファイルと.cppファイルに分けて書いたか?

920 名前:デフォルトの名無しさん :03/11/18 04:29
"OPENFILENAME構造体"とか"OPENFILENAME"とかで検索汁

921 名前:903 :03/11/18 04:29
>919
はい、分けて書いています。

922 名前:デフォルトの名無しさん :03/11/18 04:31
>>921
書いてる場所は?グローバルで書いてる?

923 名前:デフォルトの名無しさん :03/11/18 04:34
SETMP3.cpp の4つの変数ってば、SETMP3.cppの
最上位で定義しないとイケマセンですねん。
関数の中に入れちゃダメよん。


924 名前:デフォルトの名無しさん :03/11/18 04:37
さっきから質問者じゃないageてる人、的外れなことばかり書いてます・・・

925 名前:903 :03/11/18 04:39
>922
すいません、グローバルで書いてませんでした(;´Д`)
とりあえずこの問題は解決したっぽいです
作ってる物自体は、微妙に動きませんが−−;

みなさま、こんな遅くなのにありがとうございました。

926 名前:デフォルトの名無しさん :03/11/18 05:28
>>917
\0\0と書かなくても最後は勝手に\0がつくんだから
\0だけでいいんじゃねーのってことじゃねーの?

927 名前:デフォルトの名無しさん :03/11/18 05:59
・・・よく考えたらそうだね>>926
今は使う機会ないから今度やってみるね。

928 名前:デフォルトの名無しさん :03/11/18 06:12
>>913
"Before files"までしかコピーされないと思う

929 名前:デフォルトの名無しさん :03/11/18 06:14
>>928
どうすればいいんだろ^^;

930 名前:デフォルトの名無しさん :03/11/18 08:57
memcpy(strCustom, "Before files\0*.*\0\0", sizeof("Before files\0*.*\0\0"));
ならいけそうな気がするけど。

931 名前:デフォルトの名無しさん :03/11/18 09:15
memcpy(strCustom, "Before files\0*.*\0\0", sizeof(TEXT ("Before files\0*.*\0\0")));
かなぁ?

932 名前:デフォルトの名無しさん :03/11/18 09:47
>>895の質問は誰も答えられないのね…。

漏れも、その問題は苦労した。
メッセージをフロート中のウィンドウと
親ウィンドウの間で複雑に操作する事によって解決した。
単純な解決方法はWM_NCPAINT等で自分でタイトルバーを再描画する。

どっちにしても、Windowsの各バージョンで試行錯誤しないといけないし
将来に渡って、挙動が同じになる可能性も低い。

ここ(2ch)で、この手の質問に答えられる人って少ないんじゃない?

933 名前:デフォルトの名無しさん :03/11/18 09:55
>>932
プロとか教授とかは忙しいんじゃないの?

934 名前:デフォルトの名無しさん :03/11/18 11:41
いつまでもスレ違いのC++講座を続けるバカがいるスレはここです。

935 名前:デフォルトの名無しさん :03/11/18 11:56
>>934
マトモに断言してる奴初めて見たよ(藁

>>934は責任を取って次スレを立てましょう

936 名前:デフォルトの名無しさん :03/11/18 11:58
WM_ENTERIDLEとかあったような>アイドル処理

937 名前:デフォルトの名無しさん :03/11/18 14:23
>>932
フローティングツールバーなら、
単に WS_EX_WOOLWINDOW だかなんだかなんじゃないの?


938 名前:デフォルトの名無しさん :03/11/18 14:29
ウールウィンドウ

939 名前:932じゃないけど :03/11/18 15:06
>>937

当然、それも指定するんだけど、Windowsの仕様上(なのかな?)
結局アクティブなウィンドウは1つに指定されるみたいで、それ以外は
非アクティブな状態になるからだめ。
で、最終的にはWM_NCACTIVATE(だっけ?)あたりで自前の処理を
追加しないといけなくなる。

漏れもこの問題で一晩ネットの海をさまよった記憶が・・・。
まぁ、どんな問題も、同じような問題に引っかかる人はいるもんだから
調べればいずれ出てくるんだよな。


940 名前:デフォルトの名無しさん :03/11/18 15:51
MFCがやってるなら、MFCのソースを見る手もあるけど。

941 名前:デフォルトの名無しさん :03/11/18 16:19
>>936
それってダイアログのアイドル処理に使える?
それ捕まえてみたけど、メニューを表示したときのMSGF_MENUしか飛んでこないような。

942 名前:デフォルトの名無しさん :03/11/18 16:27
>>939
MFCの
int CMiniDockFrameWnd::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message)
{
if (nHitTest >= HTSIZEFIRST && nHitTest <= HTSIZELAST) // resizing
return MA_NOACTIVATE;
return CMiniFrameWnd::OnMouseActivate(pDesktopWnd, nHitTest, message);
}

これは違うのか?


943 名前:WMP :03/11/18 17:08
MP3の入っているファイルからランダムで選んで再生させるほうほう教えてください。

944 名前:デフォルトの名無しさん :03/11/18 17:36
>>941
親を見てくれ。


945 名前:939 :03/11/18 17:43
>>942

悪い。MFCのことはぜんぜん知らん。
けどMFCにはフローティングウィンドウ用のクラスがあったんじゃ?
それのことかな?

とりあえず、上で言っているのはSDKのみでの実装方法なんだけど。


946 名前:デフォルトの名無しさん :03/11/18 17:48
>>945
MiniDockFrameWnd(フロートウインドウのフレーム)
で特別操作しているメッセージがWM_MOUSEACTIVATEだけだから
それでMA_NOACTIVATEを返せば目的が達成できるんじゃないか?

947 名前:932 :03/11/18 19:21
>>946
本当にそんなに簡単にできるのか?…ちょっと試してみた。↓

LRESULT CALLBACK ToolFrameWndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) {
 int nHitTest = LOWORD( lParam );
 switch( uMsg ) {
  case WM_MOUSEACTIVATE:
  if( nHitTest >= HTSIZEFIRST && nHitTest <= HTSIZELAST )
   return MA_NOACTIVATE;
  return DefWindowProc( hMainFrameWnd, uMsg, wParam, lParam );
 }
 return DefWindowProc( hWnd, uMsg, wParam, lParam );
}

全然、駄目だった。漏れもMFCは何も知らんが、内部で特別な事してるんじゃないの?
それとも、漏れの↑のソースが間違ってるのか?

948 名前:デフォルトの名無しさん :03/11/18 20:52
MFC話禁止

949 名前:デフォルトの名無しさん :03/11/18 20:55
はぁ?

950 名前:デフォルトの名無しさん :03/11/18 21:00
ひぃ!

■ VisualC++(MFC限定)相談室 MFC9.dll■
http://pc2.2ch.net/test/read.cgi/tech/1062098350/

951 名前:デフォルトの名無しさん :03/11/18 21:03
MSUで初日に習うこと:
「アクティブである」≠「フォーカスを持っている」
「例えば、MDIの親ウインドウ」

952 名前:デフォルトの名無しさん :03/11/18 21:30
>>951
MFCを主体とした話ではないからこっちでいいだろうが。

953 名前:デフォルトの名無しさん :03/11/18 21:39
Win32API話禁止

954 名前:932 :03/11/18 22:01
…ってか、話してるのはMFCだと簡単だけどAPIだと、どーやるんだ?
という話だから、おもいっきりコッチの話だと思うんだけど
>>947のソースも、MFC使ってないし…。

955 名前:デフォルトの名無しさん :03/11/19 03:26
>>895 俺もむかしハマった。
case WM_NCACTIVATE:
 return DefWindowProc(hWnd, WM_NCACTIVATE, TRUE, 0);

親ウインドウとフローティングウインドウでこのようにすれば、タイトルバーは見た目、
アクティブなままだよ。これはMFCのやりかた。
もっともこれだけだと、ほかのアプリに切り替わったときに破綻するから、上のTRUE/FALSEを上手に
タイミング良く制御する必要がある。

956 名前:903 :03/11/19 15:54
レジストリから値を読みたいのですが
グローバルで
char lin_inst[256];
として
reg(){
HKEY hKey;
DWORD dwPosition;
DWORD dwType = REG_SZ;
DWORD dwByte = 32;

RegCreateKeyEx(HKEY_LOCAL_MACHINE,
"Software\\XXXX\\YYYY",
0,
"",
REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,
NULL,
&hKey,
&dwPosition);

RegQueryValueEx(hKey,
"ExecutePath",
NULL,
&dwType,
(BYTE *)lin_inst,
&dwByte);
RegCloseKey(hKey);
}
でlin_instにHKEY_LOCAL_MACHINE\\Software\\XXXX\\YYYY"のExecutePath
の値を入れたいのですが、コレだと値が入ってくれないのです
どこが悪いのか教えていただけないでしょうか

957 名前:956 :03/11/19 16:01
すいません、自己解決しました
XXX\\YYYのところ、大文字と小文字勘違いしてた……
残りレス少ないのにすいません

958 名前:デフォルトの名無しさん :03/11/19 16:24
WritePrivateProfileStringってあるけど、これって文字列にするのがアレなんで
WritePrivateProfileIntとかって数値を書くAPIってありませんか?

959 名前:デフォルトの名無しさん :03/11/19 16:29
ありません。

960 名前:デフォルトの名無しさん :03/11/19 16:45
やっぱないですかないですかうんこですねありがとうございますうんこさんほんとどうもです

961 名前:デフォルトの名無しさん :03/11/19 16:49
>>960
くだらない質問した責任をとって次スレ立てなさい

962 名前:デフォルトの名無しさん :03/11/19 17:01
>>961
('д`)えーそんなぁ〜
つか、立てるのいいけど>>2いこうの点プレはおね〜

963 名前:デフォルトの名無しさん :03/11/19 17:03
あ、ごめん・・
このホストではしばらくスレ立てれないって何かでた(´・ω・`)

964 名前:デフォルトの名無しさん :03/11/19 17:31
MSDN LibraryがUnavailableになって利用できないんだけど、どう?
IE6SP1だとUnavailable
Firebirdだと日本語が文字化け
調べたいときはgoogleしかない?

965 名前:デフォルトの名無しさん :03/11/19 17:44
ん? 使えるみたいだけど、ここのことじゃなくて?
ttp://www.microsoft.com/japan/msdn/library/default.asp

966 名前:デフォルトの名無しさん :03/11/19 19:05
ダイアルアップ接続の接続時間を取得する方法を教えてください。

開発環境はbcc 5.5.1、WindowsNT4.0/98です。


967 名前:デフォルトの名無しさん :03/11/19 19:32
コンソールアプリのラッパーを作成してるのですが、
コンソール画面の出力文字列を取得する方法はありますでしょうか?
spyで覗けなくて手詰まりになってしまいました。

win2000、VC6で開発しています。


968 名前:デフォルトの名無しさん :03/11/19 19:35
>>965
マジですか?
左のツリーがUnavailableになって利用できないです。

969 名前:デフォルトの名無しさん :03/11/19 19:39
>>967
パイプで繋げ

970 名前:デフォルトの名無しさん :03/11/19 19:43
>>968
W2K、XPの二台で試したけど、大丈夫だよ。

971 名前:デフォルトの名無しさん :03/11/19 19:51
>>970
そうですか、ありがとうございました。
ttp://www.xxxx.nu/upload/upload/msdn.jpg
うちではこんな感じで表示されないんです
ページフィルタ・串は通してないんですけど。

なんでだろ

972 名前:デフォルトの名無しさん :03/11/19 19:58
>>971
セキュリティーレベルが高になってない?

973 名前:デフォルトの名無しさん :03/11/19 20:00
>>972
その辺は問題ないです。
普段はカスタムで、最低にしても試してみましたし。
ただ、他の人は正常に見えていると言うことで
もうこのスレからは逸脱しているので
ここから先はもういいです、ありがとうございました。

974 名前:966 :03/11/19 22:17
ちょっと調べたところ、

・自前で繋いで監視orファイルかレジストリに接続時間を記録して
 後でそれから逆算
・システムログを読んで直近のリモートアクセスの内容が接続
 だったらその記録時刻から逆算(当然NTのみ?)

という2つの方法があるっぽく、2番目のにしようと思ったのですが
もっとスマートな方法はあるでしょうか。

975 名前:デフォルトの名無しさん :03/11/19 22:31
Ras関係のAPIで取得できるんじゃないの?

976 名前:デフォルトの名無しさん :03/11/19 23:35
>>966
Windows 2000 以降なら、RasGetConnectionStatistics() で RAS_STATS 構造体の
dwConnectDuration フィールドにミリ秒単位で接続時間が得られる。


977 名前:デフォルトの名無しさん :03/11/19 23:43
現在の自分のアプリの通信速度を取得する方法ってある?


978 名前:デフォルトの名無しさん :03/11/20 00:05
受信バイト/時間ではかれば?

979 名前:デフォルトの名無しさん :03/11/20 01:03
time.hのtime_t time(time_t *)と同じ動きなAPIってありますか?

980 名前:デフォルトの名無しさん :03/11/20 01:12
全く同じ働きをするようなAPIは存在しません。
GetSystemTimeあたりが似たようなAPIでしょうか。

981 名前:デフォルトの名無しさん :03/11/20 01:42
>>980
やっぱりGetSystemTimeで得られたSYSTEMTIME構造体のメンバを
全部適当にかけたり足したりして総経過秒に直すんですか?

982 名前:デフォルトの名無しさん :03/11/20 01:47
VCのCRTはそうしてますよ。

983 名前:デフォルトの名無しさん :03/11/20 02:11
>>982
なるほど。ありがとうございました。

984 名前:デフォルトの名無しさん :03/11/20 02:48
>>973
MSDNインストールしてナイトだめなんじゃないの?

985 名前:デフォルトの名無しさん :03/11/20 21:06
TCHARやLPTSTRの「T」ってもしかしてTransportableのT?


986 名前:デフォルトの名無しさん :03/11/20 21:31
TEXTのT

987 名前:デフォルトの名無しさん :03/11/20 21:36
TarachanのT

988 名前:985 :03/11/20 22:34
>>986-987
そうだったんですか。初めて知りました。

989 名前:デフォルトの名無しさん :03/11/20 23:00
>>979
GetSystemTime()

SystemTimeToFileTime()

FileTime型からtime_t型へ変換


990 名前:デフォルトの名無しさん :03/11/20 23:15
>>979
2038年問題には気を付けろよ

991 名前:デフォルトの名無しさん :03/11/20 23:37
そろそろ次スレかな。

992 名前:デフォルトの名無しさん :03/11/20 23:38
74歳か。。。 たぶん俺の出る幕じゃなくなってるな

993 名前:デフォルトの名無しさん :03/11/20 23:48
順調に立つか分からないので、次スレ立ててくるな。


994 名前:デフォルトの名無しさん :03/11/21 00:10
Win32API質問箱 Build15
http://pc2.2ch.net/test/read.cgi/tech/1069339866/

995 名前:デフォルトの名無しさん :03/11/21 00:54
FILETIME -> time_t の変換は、両者の開始日時と
カウント単位が、全然違うことに気をつけましょう。

996 名前:デフォルトの名無しさん :03/11/21 05:48
>>992
いや、未だ定年していないし、年金は90歳からだ。。


997 名前:デフォルトの名無しさん :03/11/21 12:32
未来人キタ━━━━━━(゚∀゚)━━━━━━ !!

998 名前:デフォルトの名無しさん :03/11/21 13:14
は?

999 名前:デフォルトの名無しさん :03/11/21 13:16
↓1000オメ

1000 名前:デフォルトの名無しさん :03/11/21 13:16
↓1001オメ


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