1 :
デフォルトの名無しさん :
2006/08/20(日) 09:13:26 スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは
>>2-5 くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(
http://msdn.microsoft.com/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
以上テンプレ。
リストボックスに列挙したアイテムに右クリックしたら ポップアップウインドウを表示させていろいろと処理させたいんだけど、 都合のいいメッセージが見つからないよ。 つーか、あるの?
指定したウィンドウ(例えばデスクトップ)をウィンドウハンドルを元に アクティブ/非アクティブか調べたいのですがそれを判定するのにはどうすればいいでしょうか? 一発でそれが簡単に判定できる関数はあったりしませんか?
WH_MOUSEでグローバルフックしてマウスのボタンを監視&横取りしたいんだけど WM_BUTTONDOWNをこっちで拾って次へ回さなかった場合 ウィンドウ上でボタンが押されてから 同一ウィンドウ内で離した場合はUPが送られてくるのに ウィンドウ外へ移動して離したときはWM_BUTTONUPが送られてこないとです WM_TIMERで周期的にボタンの状態取得は避けたいんだが 誰か方法を知らないかい?
知らない
>Advenced いつになったらアドベンスドが直るんだろう?
>>13 ありがとうございます。
is の I が大文字の I でなんとかコンパイルが通りました。
これで頑張ってみます。
>>15 activeとenabledはちがうくない?
前スレの964です。 結局、SetupAPIを使ってデバイスをenable/disableすることで、ネットワーク接続の 有効/無効を切り替えることが出来ました。 DDKのリファレンスを見ても使い方がさっぱりわからなかったのですが、DDKの サンプルプログラムdevconに使い方が書いてありました。
>>11 SetCapture()でいいんじゃない?
あるAPPが起動したかどうかを監視するためには、 Desktopハンドラを取得してそこへのWM_CREATEメッセージを捕まえ、 そのメッセージが該当のAPPの起動だったらよしということでいいのでしょうか? DeskTopハンドラの取得はできたのですが、それを監視する方法がよくわかりません。 プログラムはあるAPP終了後に出るウィンドウを自動的に消すというもので、 プログラム起動中、消したいウィンドウが出ているときにメニュー選択によって 手動的に消すことはできてるのですが、デスクトップハンドラを監視するところが よくわかりません。どなたかHINTだけでもいいのでお助けを。
マルチ「はわわわわ」
WinExecって使わないほうがいいんですか? これ使わないのってどうやるのかな。
"C:\Program Files\foo" って…
>>19 デスクトップは関係ない。
メッセージフック辺りでググレ。
>24は要らない子
>>27 >>23 が馬鹿だと分かるお前は天才
俺は何が言いたいのかわからなかったぜ
何が言いたいのかわからんようなレスをする奴を、馬鹿と言うのだ。
どっちもどっち。 いつまでこの流れ続ける気ですか?
Spy++ でファインダーツールをドラッグしてるとき、 相手が自分以外のプロセスでも、ウィンドウの枠線を描画できてるんですが、 これってどうやって実現してるんでしょうか?
33 :
デフォルトの名無しさん :2006/08/22(火) 23:02:05
>>32 デスクトップのデバイスコンテキストにでも重ねてるんじゃない?
>>33 本当にそうしてるかどうかは、レジストリのwinlogonのshellに
explorer.exe以外のものを突っ込んでみて、デスクトップが無い
状態で試せば分かるな。
コモンダイアログをシェル代わりに使って。
実験が終わったらexplorer.exeを立ち上げればデスクトップが
出てくるので、レジストリを戻して一件落着。
35 :
デフォルトの名無しさん :2006/08/23(水) 00:16:29
winlogonいじらなくたってexplorer.exe殺せばいいんじゃね?
>>35 不死鳥のようによみがえったりしない?>explorer.exe
しない
38 :
34 :2006/08/23(水) 00:19:11
>>34 > 実験が終わったらexplorer.exeを立ち上げればデスクトップが
> 出てくるので、レジストリを戻して一件落着。
順番逆だったかもしれん。
レジストリ戻してからexplorer.exe起動だったかも。
39 :
34 :2006/08/23(水) 00:23:56
というわけで、不死鳥問題含めて試した人がいたらレポ待ってます。 (マカーなので試せない。)
>>18 なんだか他ウィンドウにはSetCaptureかけらないらしい
98は不死鳥の希ガス。 XPは棺桶行き。
XPで試してみたけど、 explorer殺してもspy++で普通にwindowとか取得できたよ。 窓枠の線も描画されてたよ
98=ゾンビ XPで異常終了=ゾンビ XPでタスクマネージャーから終了=終了
>>32 WindowのDCを得て、そこに描画する。
GetWindowDC()とか、そんな感じのヤシがあったはず。
46 :
デフォルトの名無しさん :2006/08/23(水) 01:59:56
今、16ビットカラーのBMPファイルを読み込むコードを書いたんだけど、 テストしたいんだけど、16ビットの BMP を作成できるツールってある? ペイントじゃ作成できないみたい。Visual Studio 内蔵の画像エディタもだめ、 PhotoShop でもだめ、XnVIEW でもだめだった。。
スレ違いだろボケ
48 :
デフォルトの名無しさん :2006/08/23(水) 02:11:04
>>47 適当なスレがないんだけど、どこか教えてくれないかな。
このスレ的には「自分で作ってしまえ」だ
なんでググルー使わないんだよ
53 :
デフォルトの名無しさん :2006/08/23(水) 10:38:47
exeファイルが実行された時のファイル名を取得するにはどういうAPIを使えばいいのですか?
54 :
32 :2006/08/23(水) 10:40:22
みんなありがとう。
とくに
>>45 さんはサンプルまで紹介してくれて
助かりました♥
>>53 EnumProcessModules
GetModuleBaseName
各ファイルをexeにまとめて、どこかテンポラリーに自己解凍してから実行するようにしたいんだけど、 どこかに参考になるサンプル無いですか?
処理手順が分かっているんだから、別にサンプルなんていらないだろ。
59 :
57 :2006/08/23(水) 15:47:09
BeginUpdateResource これでできそうだ。
60 :
デフォルトの名無しさん :2006/08/23(水) 21:12:04
初心者なので、ここでいいのかどうかわからないのですが ある問題(多分問題というと大袈裟過ぎるのかもしれません)で困りきっています。 その問題なんですが、UNICODEファイル(txtファイルです)をどうやって読みこんで その読み込んだデータをどのように処理したらいいかということで困っています。 もし、他のスレッドが適当なようでしたら、何分お導きいただけたらとおもいます。 hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); if(hFile == INVALID_HANDLE_VALUE) return FALSE; //ファイルを開けなかった場合 dwFileSize = GetFileSize(hFile, NULL); if(dwFileSize > MAX_READ) return FALSE; //ファイルがおおきすぎる場合 hGlobal = GlobalAlloc(GPTR, dwFileSize); OpenClipboard(hwnd); EmptyClipboard(); SetClipboardData(CF_TCHAR, hGlobal); CloseClipboard(); CloseHandle(hFile); GlobalFree(hGlobal); こんな感じでクリップボードに移すことはできるのですが、(変数の定義はスペースが限られていますので 省かせていただきました) ファイルから読み込んだデータを、普通の文字列に移すことが出来ません。 プリプロセッサの_UNICODEの定義や、TEXT(""),TCHAR 等はきちんと使用しているのですが・・・ どうかみなさん助けてください。 明日までにドイツ語ー日本語対応のフラッシュカードプログラムを作成しなければいけないです。
62 :
デフォルトの名無しさん :2006/08/23(水) 21:23:30
UNICODEでフォーマットされたテキストファイルを、ReadFile関数で読み込んでいます。 TCHAR szBuffer[1024]; hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); if(hFile == INVALID_HANDLE_VALUE) return FALSE; //ファイルを開けなかった場合 dwFileSize = GetFileSize(hFile, NULL); if(dwFileSize > MAX_READ) return FALSE; //ファイルがおおきすぎる場合 bReturn = ReadFile(hFile, szBuffer, dwFileSize, &dwRcv, NULL); if(bReturn == FALSE) return FALSE;//ファイルを読み込めなかった場合 szBufferにはUNICODE文字列を指すアドレス(ポインタ)が入っていると思うんですが、 lstrlen(szBuffer)の答えがいつも3になってしまいます。 どこがおかしいのかわかりません。
64 :
デフォルトの名無しさん :2006/08/23(水) 21:31:47
ICUでもつかえば?
そもそもUNICODEなんてテキストフォーマットはない。 UTF8なのかUCS2なのかUTF16なのかすら分かってないだろう。
>>62 winbase.h内で
#ifdef UNICODE
#define lstrlen lstrlenW
#else
#define lstrlen lstrlenA
#endif // !UNICODE
と記述しているから、
#define UNICODE
を追加するんじゃね?
>>66 便乗でお願いします。
こんどファイル関係操作を日・中・韓対応するために、
いままでxxxA系のAPIを使っていた処理をxxxW系に直す作業が
発生したのですが、xxxW系のAPIで使われるUNICODEは何なのでしょうか。
2バイトの固定長=UCS2ということでしょうか。
例えばFindFirstFileWで得られたファイル名を
TextOutW等で出力する必要があります。
それと、SJISにあった0x5c(='\')が漢字の2バイト目と認識されるような問題が、
このUNICODEでもあったりするんでしょうか。
固定長だから無さそうな気がするのですが、
何か特別な処理が必要かどうか知りたいのです。
今までUNICODEには関わるまいと思っていましたが、
とうとうこの日が来てしまいまし
Unicodeでやっている分には、0x5Cの問題は無い。 それよりも、文字=char=1バイト前提の箇所に悩まされる予感。
ありがとうございます。 そういえばフォントはどうなるんだろう。 日本語フォントをSelectObjectしている状態で 中国語が正しく表示されるわけないですよね。 UNICODE文字列から中国語かどうか判定して、 フォントを切り替える必要があるのでしょうか。 頭痛いです。
71 :
デフォルトの名無しさん :2006/08/24(木) 03:09:26
>>70 UNICODEのテキストファイル(
>>66 さんのいっているような難しいことはわかりませんが)
を読みこんで、表示する方法すらわからないです。
そうですか。
はい、そうです
いえいえ、どういたまして
>>70 FontLinkを当てにして、Tahomaで描画とか?
FontLinkに関しては、
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink
以下を参照しつつ、
IMEパッドの文字一覧でUnicodeを選んだ後、
フォントを切り替えてみれば雰囲気は解ると思う。
>>68 古いWindowsではUTC2だったかもしれないが、最近のWindowsではUTF-16になっている。
違いはサロゲートペアの有無だが、今のところそれを使うことなんてほとんどない。
77 :
デフォルトの名無しさん :2006/08/24(木) 09:18:14
協定世界時のバージョン2ですか?
VBでAPI使っててかなりいきづまったから質問したいんだけど ここでいいのかな?
ブビ厨は巣にお帰りください
>>78 VBだろうとperlだろうとWin32APIの質問なら無問題
81 :
デフォルトの名無しさん :2006/08/24(木) 22:24:52
このスレでよいか少し不安ですが・・・ ┏━━━━┳━┓ ┃ ┃ ┃ ┃ 描画 ┃ ┃ ┃ エリア ┃A ┃ ┃ ┃ ┃ ┣━━━━┫ ┃ ┃ B ┃ ┃ ┗━━━━┻━┛ ↑こういうウィンドウを作りたいのですが、 AやBはタブコントロールやエディットボックスの集まりで、 例えばAの場合は幅固定、Bの場合は高さ固定になっています。 この場合、ウィンドウを1つ作って、AとB用に子ダイアログを2つ作って、 ウィンドウ内でのダイアログの位置は固定、 ウィンドウのサイズが変わるたびにダイアログサイズも変える、という処理でよいでしょうか? WS_???やWS_EX_??等でのスタイル指定にお約束のものがあればコメント頂けるとありがたいです。
WM_SIZEがぶっ飛んできたら計算して普通にリサイズすればたぶんおk
83 :
81 :2006/08/24(木) 22:50:21
>>82 どうも。
では親ウィンドウのWM_CREATEを捉まえたときにそれぞれのダイアログを作り、
各ダイアログがWM_INITDIALOGを捉まえたときにMoveWindowで位置とサイズ調整、
あとは親ウィンドウのリサイズ時に各ダイアログに位置とサイズ調整のメッセージを送る、
という感じになるでしょうか。
あれ。親ウィンドウを動かす場合も子ダイアログに位置を変えるメッセージを
送らないといけないのでしょうか…。なんだか面倒ですね…。
画像の中から適合する部分があるかを探索して、その結果を返す関数やライブラリは公開されているでしょうか? またない場合はどのような手順をふむのが一番効率的でしょうか? 自分ではいまいちよく分かりません。分かる方教えてください。
>>84 俺の知る限りそんなAPIは無い。
やりたいことにもよるけど、論文読み漁るしかないんじゃね?
>>83 だったら親ウィンドウが動かされたらそこで子ウィンドウも動かしちゃうとか。
WM_CREATEの直後にもWM_SIZEが来ると思うからそこでも動かしてくれるだろうし。
チャイルドウインドウなら親が動けば一緒に動くだろ。 ごちゃごちゃ言う前に少しは自分で試せよ。
88 :
81 :2006/08/24(木) 23:09:51
>>86 わかりましたー。
では基本的には親ウィンドウのWM_SIZEやWM_MOVEを捉まえて
各ダイアログの位置とサイズを調整するということですね。
ありがとうございましたー。
続けて恐縮ですが…こういうものの場合、子ダイアログのスタイルは
タイトルバーを付けない、描画エリアと分ける適当な境界を作る(WS_EX_DLGMODALFRAME?)、
モードレスにする(?)、あたりを押さえておけば大丈夫でしょうか?
89 :
デフォルトの名無しさん :2006/08/24(木) 23:10:42
>>84 いやぁ〜んマッチングって奴だな。
マッチング 画像相関でググってみ
90 :
81 :2006/08/24(木) 23:11:12
>>87 どうもー。あれ?子ダイアログも親と一緒に動きますか?
なんかついてこなくて…。ソース見直してみます。
>>85 APIは当然ないですよねー・・・
このスレだったらだれかが作ったものを知ってる人がいらっしゃるかとおもったんですが
引き続き捜してみます
>>89 書いてる途中で入ってた・・
激しく難しい・・・ がんばって解読してみます
>>90 owned windowとchild windowは違うが、理解してるか?
94 :
81 :2006/08/24(木) 23:18:29
>>87 むぉー。ダイアログにWS_CHILD付けてませんでした。
ダイアログ作成時にオーナーのハンドルを指定するだけではいわゆる親子ではないのですね…。
というわけで移動に関しては簡単に解決…。
95 :
81 :2006/08/24(木) 23:19:25
>>93 そういうことなのですね。どうもありがとう。
>>92 画像ファイルを読み出して〜まで・・・はこのスレだけど。
そこからヒストグラムを起こすのは別スレなのよ。
ま、精進して。
98 :
デフォルトの名無しさん :2006/08/25(金) 17:03:33
半透明ウインドウの作り方はわかるんですが、 マウス動作を透過するウインドウはどのように設定するのか、教えてください。 半透明にしたり、完全透明職設定はできるんですが、半透明でマウス操作だけ透過 というのがわかりません。
>>98 普通に半透明にして自分のウィンドウがクリックされたら下にあるウィンドウにメッセージを送るとか?
まさにそれ!!!!!!!
>>100 WS_EX_LAYEREDがあるときにWS_EX_TRANSPARENTを付けると、
透明にしつつマウス操作は下のウィンドウへ行く。
デスクトップのSysListView32にLVM_GETITEM メッセージなんか送ったりして マウス直下のアイテム名を取得することはできたんですが、 そのアイテムそのもののパスかPIDLを取得することはできませんか?
デスクトップのフォルダを取得してしまえばどうにでもなる
104 :
デフォルトの名無しさん :2006/08/26(土) 12:52:42
エディットボックスの一行の文字の色を変えるにはどうしたら よいでしょうか?
Rich Edit を使えばいいな
106 :
デフォルトの名無しさん :2006/08/26(土) 13:16:15
ふつうのエデイットボックスでは不可能ですか?
いいえ
108 :
デフォルトの名無しさん :2006/08/26(土) 13:55:54
教えてくれませんか?
色セロファン、を、貼る。
懐かしいな。
111 :
デフォルトの名無しさん :2006/08/26(土) 14:32:07
マジで教えてくれません?
Gugurecus, 生没年未詳
色めがね、を、かける。
115 :
デフォルトの名無しさん :2006/08/26(土) 15:19:01
お断りです。Cつかってます。
116 :
104 :2006/08/26(土) 15:31:28
自己解決しました。有難うございました。
117 :
デフォルトの名無しさん :2006/08/26(土) 15:39:40
116は偽者ですまだ解決してません
117は偽物ですもう解決しました
119 :
デフォルトの名無しさん :2006/08/26(土) 15:42:41
118は偽者ですまだ解決してません
120は偽物ですもう解決しました
121 :
デフォルトの名無しさん :2006/08/26(土) 15:52:36
>>116-120 は違います。
Windows XPについてるインータネットリバーシの
チォット部分のように自分と相手の文の色を変えたいのです。
あれは普通のエディットじゃないのですか?
>>121 ちっとWindowClass見てみたが、RichEdit20Aってクラスになってるな。
素直にRichEdit使っとけってこった。
123 :
デフォルトの名無しさん :2006/08/26(土) 16:06:43
CreateFont()
>>123 CreateFont() がどうかしましたか?
CreateFont()かわいいよCreateFont()
つオーナードロー
独自のエディットコントロールでも作っちゃうとか
車輪の再発明
三角形の車輪を発明しました。真似しないでください
より優れた車輪を発明すればよい
131 :
デフォルトの名無しさん :2006/08/26(土) 16:35:24
つまり普通のエディットにSendMessage(hwnd, **, 行番号, font)
みたいにはできないということですね?
>>123 は偽者なので
132 :
デフォルトの名無しさん :2006/08/26(土) 16:38:24
偽者ってwww >123は誰かのふりなんかしてないだろwwwww
そんなに偽者いやなら名前にfusianasan入れろよw
134 :
デフォルトの名無しさん :2006/08/26(土) 16:53:54
135 :
デフォルトの名無しさん :2006/08/26(土) 16:54:24
>>104 直後に至極真っ当で、一般的に最良の答えをもらっているのに、
頑なに、リッチエディットの使用を拒むあなたの態度が、冷やかしレスを呼び込んでるのが、
わからないんでしょうか?
エディットコントロールだけで実現せよ。って、いう宿題ですか?
そうです。
ちがいます。
そうです
質問です ポップアップメニューの、ウィンドウとメニューアイテムとの隙間と メニューアイテムをスクロールさせる▼の背景の オーナードローは出来るんでしょうか?
142 :
デフォルトの名無しさん :2006/08/26(土) 22:08:17
サービスアプリから、他のアプリにpostmessageすることはできないのですか?
何を言ってるか分かりません。
145 :
142 :2006/08/26(土) 22:19:45
>144 サービスアプリから同じPCの他プロセスに PostMessageはできないということでしょうか?
「デスクトップが違うとできない」。
147 :
142 :2006/08/26(土) 22:26:20
何度もすいません。 デスクトップを同じにするということは可能なのですか? サービスアプリは、ログインユーザと同じアカウントで動かしています
「デスクトップが違うとできない」
デスクトップが違うとタンクトップ
トップレスの金髪美女
( ´д)ヒソ(´д`)ヒソ(д` )
>>145 Vistaになると、サービスからデスクトップのプロセスにメッセージ送信できなくなるから
注意しろよ。
154 :
デフォルトの名無しさん :2006/08/27(日) 00:42:36
ダイアログで取得した変数のセット(文字列とか実数とか)を親ウィンドウに送りたいのですが、 SendMessage(GetParent(hwnd),...)だとwparamやlparamしか使えないですよね。 こういう場合の定石ってあるんでしょうか? 親ウィンドウがダイアログとあるクラスAを管理していて、 ダイアログで取得した変数値をクラスAに渡したい、という状況なのです。
クラスのポインタを渡しておけばいいだけ。
うまくいったでやんす。どうもありがとう。
159 :
デフォルトの名無しさん :2006/08/27(日) 07:38:34
指定したファイルが更新されるまで、ロックするか 更新された時に指定したハンドラが呼ばれるようにしたいのですが、どうすればいいのしょうか? (FindFirstChangeNotificationという関数を見つけたのですが、 監視対象のファイル以外に、非常に更新頻度が高いファイルが同じディレクトリ内にあるので 負荷軽減のために、出来ればディレクトリ全体ではなく、 一つのファイルだけに対象を絞りたいので、この関数は不適と感じました。) ご教授お願いします。
>>159 ・そのファイルをタイマーあたりで定期ポーリングして監視するとか。
・FindFirstChangeNotificationで、まずファイル名をチェックして、
対象外なら何もしないとか。
FindFirstChangeNotificationはそんなにコスト高いんだっけ?
それほど大したこと無かったような希ガス。
つーか、更新頻度高いって、そもそもファイルアクセスは重いんだから、
その辺を何とかする方が負荷軽減に繋がったりして。:P
監視対象のファイルが数十分・数時間単位(不定期)の更新頻度なのに対して、 同ディレクトリ内の更新頻度の高いファイルが秒・分単位なので、 常駐用途として使うこともあってちょっと心配だったのですが、、、 おっしゃるとおり、検証してみると、意外と負荷は大したことありませんでした。 ご返答有難うございました。
夏休みもうすぐ終わっちゃうんで、 そろそろ教えてください!
よし、教えてあげよう!
>>162 君だけ学校来なくていいってさ。よかったね。
pgpdiskみたいなWindows上の仮想ドライブはWin32APIのレベルでできる? それともデバイスドライバ書いてATAコマンドをエミュレートする必要がある?
WNetAddConnection? のようなネットワークを仮想ドライブ化するのは WinAPI でいけるっぽ RAM Disk とか その他の手段でのドライブは DDK でドライバを書く。(別に ATAコマンドエミュレートする必要はないハズ)
167 :
デフォルトの名無しさん :2006/08/28(月) 22:36:31
質問させてください。 ワードで作成した仕様書のレビューを複数ノートPCで出来るツールを作ろうと思っています。 文書校正もできるようにしたいので、全員が見れて更に全員が編集できるようにしようと思っています。 また専用の編集ツール&ビューアを作るのもめんどうだし機能が限定されそうなので、 全員にワードを開かせ、SendMessageして編集者と同じ操作をさせようと思っています。 編集したデータは編集した部分だけ全員に流して、カーソル位置に挿入しようと思っているのですが、 こんなツールは作ることができるでしょうか? なにやらめんどくさい問題にぶち当たりそうで工程見積もりができません。 機能としては ・全員が編集できる ・誰かが編集しているとき、もしくはカーソルを動かしているときは他のPCは(ワードのみ)操作不可になる ・全員のカーソル位置を、最後に操作した人のカーソル位置にあわせる ・できれば挿入中の文字を変換しているところまでリアルタイムで見たい(ムリだろうけど) ・ワードの編集機能をほとんど使える 言語はなんだってかまいません。 ぶちあたりそうな問題、もっといいアイディアなどありましたらご教授ください。
>>167 どっかの塾とか予備校用!? はいA君やってみてとか?
たしか・・・メーカどこだっけ・・・
パソコン遠隔操作のソフトはある、ゼロから作るのはやばいと思う
169 :
167 :2006/08/28(月) 22:58:44
>>168 いや社内用です。あまり精度は要求されません(ちなみに本業は組み込み)
ワードが素直に言うことを聞いてくれるなら割と楽に作れると思ってはいるのですが、、
SendMessageして操作すること自体ヤバ気な感じがしますので、
いくら社内用とはいえ、もう少し安定した方法が欲しいところです。
>>167 やりたいことが、ようわからん。
ワードでやろうとすることじゃない。グループウェアとか使えよ。って思う。
>文書校正もできるようにしたいので、全員が見れて更に全員が編集できるようにしようと思っています。
みんなが開くファイルは、
(1) 各自のローカルにおいてある、同一バージョンの仕様書ファイル
(2) ネットワークドライブ上の(一つの)仕様書ファイル
(3) その他
のどれ?
(1) だと、各編集者同士で、同期とるのが大変。
(2) だと、そもそも Word側で、一人しか編集不可にされてしまう。
やっぱ、ワードでやる事じゃないな。
171 :
167 :2006/08/28(月) 23:11:55
>>170 仕様書のフォーマットがワードなので仕方ないのです。。
>文書校正もできるようにしたいので、全員が見れて更に全員が編集できるようにしようと思っています。
みんなが開くファイルは(1)ですかねー。
レビューイが起動したツールが、レビューイのファイルのデータをレビューアに流し、
レビューアのツールが受け取ったデータを元に自分用ファイルを生成するつもりです。
編集したときうまく同期取れますかねぇ。。。
172 :
デフォルトの名無しさん :2006/08/28(月) 23:19:33
全然仕方なくいないけどな
[案1] 編集者はひとり方式(うちの会社の場合) レビューは、レビュアーが同じ場所に集まってやる。 レビュアーが4〜6人くらいの場合は、小さな会議机に集まり、編集者のノートPCを19インチ くらいのLCDにつないで、編集が発生する場合は、全員が編集内容を確認しながらすすめていく、 レビュアーが多い場合は、プロジェクターにつないで、同様にやる [案2] 全員が編集者方式 ワードをあるPCで立ち上げておく。 レビュアー全員でそのPCをVNCを使って接続し、全員で編集をやる。 ただし、この方法だと編集作業を排他できないので、全員がそばにいる場合は声をかける などで回避する。離れている場合は、阿吽の呼吸で・・・。
174 :
167 :2006/08/28(月) 23:24:55
やっぱりカーソル位置に挿入ってきびしそうですよね。
例えば何かが入力されて、その後1秒以上入力がなかったら、
その時点で1回全員にデータを流し、全員が再表示とかだったらどうでしょ?
どこそこはどうやんの?お前そこんとこ考えてる?
みたいなつっこみをお願いいたします。
>>172 レビューですよ?
グループウェアってそこまでできるんですか?
何分知識不足なため、こいつぁアホだなと思って温かい目で見守ってやってください。
175 :
167 :2006/08/28(月) 23:31:00
>>173 [案1]はうちの会社でもやってます。
[案2]のVNCは初めて知りました。こんなのあるんですね。
ありがとうございます、参考にします。
VNCの動作は快適ですか?
176 :
173 :2006/08/28(月) 23:43:22
>>175 > VNCの動作は快適ですか?
すごく簡単にインストールできるから、明日会社でインストールしてみそ。
自宅にPCが2台以上あるなら、今試してもいいけど。
Wordの編集だと、「出来なくもない」という感じだと思う。高速タイプは無理。
案1で、超高速タイパーが編集を担当したほうが、全員が幸せになれる気が
するんだけど、これで駄目なのは何故?
177 :
167 :2006/08/28(月) 23:55:49
>>176 >案1で、超高速タイパーが編集を担当したほうが、全員が幸せになれる気が
レビューアが「ここんとここうやればいいんじゃない?」て言うときに便利だからです。
長い文章なら超高速タイパーで幸せになれそうですが、
ちょっとした細かくかつ微妙な表現をする点では、
「ちがう、こうだって、こうだよ!糞が!!」
そんな雰囲気になるからです。これは新人レビューイの時によく発生します。
まぁそこまで怒りませんけどね。
それでは明日早速試してみます。(使えれば工程1週間は削減できたかな?)
ありがとうございました。
>>175 その他の用途を思いつくかもしらんし、一度試してみろ。
某庁絡みの仕事でリモートメンテナンス用にVNC入れているけど、
インターネット(≠web)越しでも充分実用になるぞ。
#短気な香具師はダメだと思うが。
179 :
173 :2006/08/29(火) 00:09:30
>>177 ちなみにうちでは「リアルタイムな修正」はめったにやりません。
よくやるのは、議事の作成の場合です。全員が合意した議事録が会議終了後に
出来上がるので、すぐにメールで送れます。
他の会社のレビュー方法に口出しする気は毛頭ありませんが、一度
『ピアレビュー』という書籍を読んでみることをお勧めします。
今のレビュー方式だと、みんなレビューがいやで、なおかつプロセスのボトルネックに
なってたりしませんか?
180 :
167 :2006/08/29(火) 00:25:32
>>178 了解です。
情報提供ありがとうございます。
>>179 いえ、ちょっと言いすぎました。
リアルタイム修正というか、精々メモ程度です。
新人研修のせいで敏感になっているだけですので気にしないでください。
実際のところモニタ数やレビュー場所の制限のほうが大きいです。
レビュー場所が全て使用されているときに、
ノートPCを持ち寄ってレビューができかつ編集ログも取れたら便利かな、と。
『ピアレビュー』は今度読んで見ます。
情報ありがとうございました。
Win32API質問箱
>>167 の言うツールって、期待通りに作ると市販ソフトですら
実現してないような超高機能でしょ。
>>167 みたいな牧歌的な奴には
とても無理。素直に vnc で多重接続を許可して使いなさい。
ScreenToClientについて質問です。 GetClientRect(hWnd,&rc); //1 GetWindowRect(hWnd,&rc); //2 pt.x=rc.right; pt.y=rc.bottom; ScreenToClient(hWnd,&pt); 上の1と2を実行して得られる座標がなぜか1より2の方がxとy両方とも4ピクセル大きいのですが わかる方おられますか?
GetClientRect と GetWindowRect で rc に格納される値が違うやん。
>>183 2の方は枠の外側を指しているんじゃね。枠の幅分違うとか。
187 :
183 :2006/08/29(火) 06:59:06
>>185-186 ありがとうございます!まさにその通りでした。
MoveWindowで2のpt.xとpt.yを指定してボタンを動かしてみたら
微妙にボタンと外の青い枠が被ってしまいました。
実行中のExeファイル(自分のアプリ)のパスを得る方法を 知りたいのですが。よろしくお願いします
>>188 詳細は何を示しているのわからんけど、
GetCurrentDirectory, GetModuleFileNameの好きなほうで
>>189 あ、それです。API名GetModuleFileNameが思い出せなくて。。。
どうもありがとうございました。
GetCurrentDirectoryってカレントディレクトリが変えられたときに何かと不便ね
それ以前に、起動時からカレントディレクトリと実行ファイルパスが 同じである保証も無い。
質問者は問題ない方を選んでいるから、まぁいいんじゃまいか?
Windowsのメインのボリュームを設定するAPIって何ですか?
自己解決しました
>>189-192 俺はGetCommandLineをよく使うんだけど、
GetModuleFileNameとの違いって、パラメータの有無だけ?
>>196 それってユーザーが勝手に名前変えたりパラメータ渡してきたら分からなくね?
"C:\\Program Files\\foo.exe bar.exe"
とか
198 :
デフォルトの名無しさん :2006/08/29(火) 19:36:39
質問させてください。 ウィンドウ内にマウスポインタがあると マウスを全然触っていないのにWM_MOUSEMOVEがくるのですが、 そういうものなのでしょうか? 駄目元でウィンドウ生成時に if (GetCapture()==hwnd) ReleaseCapture(); なんてしてみたり…。キャプチャ云々は関係ないですよね??
そういうものでしょう。
200 :
198 :2006/08/29(火) 20:22:46
光学式でプルプル震えてるんでしょ
>>200 嘘じゃないでそ
画面更新とか頻繁にしてない?
WM_ERASEBKGNDとか関係なかったっけ
203 :
198 :2006/08/29(火) 20:35:28
>>202 TIMERで定期的に(1回/30msecくらい)InvalidateRect呼んでます。
そのタイミングで送られているということでしょうか?
マウスがクライアント領域にあるとき定期的にカーソル位置教えるためのメッセージじゃなかったっけ?
break;が消えてない? InvalidateRectは描画しろって言うだけじゃん。
206 :
198 :2006/08/29(火) 21:09:43
うーん。やっぱりどこの説明を読んでも
「マウスポインタがクライアント領域内を移動したときに送られるメッセージ」
としか読めないです。それから
>>203 のInvalidateRect云々は関係ありませんでした。
>>204 …
case WM_MOUSEMOVE: wmMouseMove(hwnd,wp,lp); break; // ←メッセージボックスを表示
default: break;
}
return DefWindowProc(hwnd_, msg_, wp_, lp_);
としてます。breakはちゃんと入っています(ちなみにreturn 0としても駄目でした)。
これを実行すると、マウスポインタがクライアントエリアにあるとき、
マウスを触っていなくてもメッセージボックスがバカバカと表示されて
最終的に落ちます。
207 :
198 :2006/08/29(火) 21:11:01
>>206 のアンカーは
>>205 の間違いでした。
あとDefWindowProcの引数のアンダースコアは誤記です。
>>196 PATHが通ってたりコマンドラインから相対パスで起動したりすると、
exeの場所は分からない。
「することがある」ってことはしないこともあるんだろ。
>>209 そんだけでかい口たたいといて、まさか自分が試してないってことはないよな。
ま さ か な
恥の上塗りをする暇があったら、首をつる方が賢明だろう。
>>212 もしかしてサポートの終わったWin95系だけで試してフルパスになったって言ってるのか。
結局のところ
>>210 なわけだが。
>>206 WM_MOUSEMOVEはマウスをキャプチャしているウィンドウ、
もしくは現在アクティブなウィンドウに送られる。
たとえマウスを動かしていなくても、
マウスのキャプチャ状態が変化したり
アクティブウィンドウ が切り替わったりすると
(要するにメッセージの受け取り先が変わると)
親切にもWM_MOUSEMOVEを送ってきてくれるよ。
メッセージボックスやめて別の方法で確認してみたら?
215 :
214 :2006/08/30(水) 00:58:47
訂正、アクティブウィンドウのわけないわな。 マウスカーソルの下にあるウィンドウだ。 今カーソルのある場所にポンと別のウィンドウが現れたら、 そのウィンドウに「アンタの上にカーソルがいるぜ」と 教える意味でWM_MOUSEMOVEが送られる。 それに引っかかってるんじゃないかってこと。
216 :
198 :2006/08/30(水) 01:56:40
>>214 > メッセージボックスやめて別の方法で確認してみたら?
あぁ…。ビンゴでした。WM_MOUSEMOVE、来てませんでした。
メッセージボックスを表示させたのが間違いだったのですね。
丁寧にありがとうございました。
GetPrivateProfileString() で 用意されたバッファサイズよりもキーの値が大きかった場合の戻り値は 用意されたバッファサイズと同じということで良いんでしょうか。
219 :
217 :2006/08/30(水) 09:48:25
各パラメータにNULLが用いられていない時 用意されたバッファサイズよりもキーの値が大きかった場合は バッファサイズ分返され、最後にNULL文字を入れられる。 その時の戻り値は、用意されたバッファサイズ -1 である。 でokでしょうか?
試してみれば分かるだろうに
>>219 戻り値は指定されたバッファにコピーされた文字の数を示します。
終端のNULL文字は含まれません。
lpszSectionパラメータとlpszKeyパラメータのどちらもNULLではなく、
転送先バッファが小さくてすべての文字列を含むことができない場合、
文字列は切り捨てられ、 NULLが最後に加えられます。
戻り値は、 cchReturnBufferから1を引いた値になります。
lpszSectionパラメータとlpszKeyパラメータのどちらかがNULLで、
転送先バッファが小さくてすべての文字列を含むことができない場合、
最後の文字が切り捨てられ、 2つのNULL文字が加えられます。
この場合の戻り値は、 cchReturnBufferから2を引いた値になります。
222 :
217 :2006/08/30(水) 10:31:48
ありがとうございます
いまどきGetPrivateProfileString・・・
書式さえ合ってればiniじゃなくてもいいので割と使ってる。
USBメモリに入れて持ち運ぶにはアプリには、iniファイルは便利だよね。
228 :
デフォルトの名無しさん :2006/08/30(水) 17:33:47
レジストリと比較してるのかと思った
230 :
196 :2006/08/30(水) 18:34:11
>>197 自分で試してみました。
C:\Program Files\AAA.EXEに
C:\BBB.TXTをドラッグ&ドロップした場合、
GetCommandLineの結果 : "C:\Program Files\AAA.EXE" C:\BBB.TXT
GetModuleFileNameの結果: C:\Program Files\AAA.EXE
後者はダブルクォーテーションが付かないようです。
俺様専用関数ではダブルクォーテーションで囲まれていない空白はパラメータ境界と見なすため、
GetModuleFileNameは使えませんな。
ダブルクォーテーションをつけたり取ったりするAPIがあったような…? 無くても自作すればいいと思うが。
>>230 GetModuleFileName には、実行時引数渡らない
俺様専用関数の仕様から GetCommandLine のほうが望ましい ってことだね
わざわざ取ったりつけたりしなくても GetCommandLine でいいじゃん。
>>231 PathQuoteSpaces()とかな。
GetModuleFileNameで取得するのはファイル名なんだから、 ""が付かないのは当然だろ。 空白があっても、それは当然pathの一部。 逆にGetCommandLineは引数との区別をつけなければいけないから (pathに空白が含まれていたら)""が付くのが当然。
>>230 ってさ、Program Filesがパスに入ってるからダブルクォーテーションがついてるけど、
パスに肺ってなかったらダブルクォーテーションつかなくね?
>>236 ディレクトリを除く実行ファイル名本体にスペース含んでても quote されてるね。
ex) "C:\foo test.exe"
こういうことは、NT系か9x系かで結果が異なることも考えられるぞ。
240 :
196 :2006/08/30(水) 20:20:03
>>238 >NT系か9x系かで結果が異なる
GetCommandLineで取得できるファイル名だったかな。
NT系ではロングファイル名だが9x系ではショートファイル名で、
ロングファイル名に直すにはFindFirstFileとか使ったりして。
間違ってたらスマソ。
目的が自身のフルパスファイル名の取得という限定された状況で、 なんでコマンドラインの情報まで入ってくる関数つかうのやら。 フルパスで入ってくることが確定しているGetModuleFileNameでいいじゃん。
MultiByteToWideCharで「文字列をUnicodeに変換します」とかあるけど、 これって実際はUTF-16なんですか? そしてそのことをアテにしてプログラムしてもいいんでしょうか?
GetCommandLine関数ってより、CreateProcess関数の話っぽいかもね
外部ウィンドウの中にあるボタンをポチっとプログラム側で押してやるのに必要な手順教えてくださいまし。 対象のボタンのhWndは取得できとります。
適当にPostMessageとか送ってみたけどやっぱり動かず。
座標に向かってクリッコメッセ
PostMessageのパラメータが"クリック"の指定になってませんでしたorz 直したらちゃんとできました。
>>246 色々なやり方があるんですね。
ありがとうございました。
以前に FindWindow で取得したハンドルが今も有効かどうか調べるのは IsWindow でOKですか? ハンドルの再利用とかされてたらどうしようか……(・ω・`)
FindWindowくらいもう一回やったらええがな
>>250 いや、複数合致するから、最初に取ったのと同じハンドルを指定したいんですわ(´・ω・`)
IsWindow + GetClassName で検査? IsWindow だけでも良いのか……?
GetWindowText GetClassName でいけるんじゃないかな
IWebBrowser2を使って、 IHTMLDocument2経由でメモリ上のhtmlをwriteしようとしています。 MultiByteToWideCharで UNICODEに変換することでwriteが成功するようになったのですが、 IHTMLDocument2ではshift jisやeucを直接writeすることはできないのでしょうか? ソースをメモ帳で開いた時にうにこーどだと空白だらけで格好悪くて…
>>253 NT系のメモ帳はUnicode対応だよと的外れなことを言ってみる。
>>253 うにこーど対応のエディタで開けばいいじゃん
>>256 case WM_DESTROY:の後に解放処理をいれればいいんじゃない?
×CaptureScreen();
○CaptureScreen(hwnd);
>>256 プロセス終了時にリソースが解放されることを期待してるんでしょ。
行儀がいいとは言えないけど。
HDCとHBITMAPの解放処理をしてないから
>>260 それがなぜ行儀がいいとはいえないのかを質問しているのですが・・・
>>261 その程度のことがわからないなら
危険なのでプログラミングしないでください。
借りたら返す
オナニーしたら後処理するだろ
つーか普通は解放すべき、ヘルプにもそう書いてある。
行儀という単語に集約されてる問題だな。 サンプルコードを参考にするのは処理系の仕様も把握してない初心者かもしれない。 そんな初心者がコード上で解放処理していないサンプルをどこかに埋め込んだ場合、 見事リソースリークという発見しづらいバグをも埋め込む事になる。
夏もそろそろ終わるのに元気な虫だ
普通、プロセスが終了するときは、リソースの解放はしなくていいよ。 逆にやってるとツッコミが入る可能性も。
まるでmalloc-free論争みたいだw
ウィンドウズはバグリィだから出来るだけ自分で解放するよ
ウィンドウズの自動的に解放する仕様とかどこかに書いてあるの?
リソースリーク起こしてないか調べるのに リソースメーター探したんだけど9x用しかないんだよな nt系はリソースリーク気にしなくていいみたい。
それはギャグで言って(ry
不思議だねぇ。 解放する必要がないならReleaseDCとかDeleteObjectとか なんで存在するんだろうねぇ。 不思議だねぇ。
277 :
デフォルトの名無しさん :2006/09/01(金) 13:15:40
IDC_AAAとか、IDM_BBBとか、 リソースIDってどんな型で保持するべき? unsigned int?unsigned long?
278 :
デフォルトの名無しさん :2006/09/01(金) 13:17:43
自己解決 WORDね。
死ぬ前に借金返す派と、 死ぬんだから別に良い派が居るな。
孫曾孫に借金を残せばいい
生きてる間はリークリークとうるさいけど、死ねばチャラ
>>276 ずーっと起動してたり何回も大量に作る時用じゃん
283 :
デフォルトの名無しさん :2006/09/01(金) 15:55:07
>>279 死ぬんだから別に良いんじゃなくて、死ぬときに神様が自動的に返してくれるから良いって言ってるの。
それをWindowsが「正しく」実行してくれる保証はどこにある? 異常終了したときは?
書きたくない奴は書かなければいいんじゃね? 俺は書くけど。
286 :
デフォルトの名無しさん :2006/09/01(金) 16:10:25
>>284 ReleaseDCとかDeleteObjectが「正しく」実行してくれる保証はどこにある?
正しい引数を渡しても関数が失敗したときは?
異常終了したときのことまで考えてられっかよ!!!!ヽ( `Д´)ノ
うわ、馬鹿だ。馬鹿がいる。
ここで究極奥義質問返しデターwwwwwwwwwwwwwwwwwww さあこの奥義が出たと言うことは宴もたけなわでございますが 皆様もうしばらくおつきあいください!
どうも脳内でリーク多発してる方がいらっしゃるようですが 再起動をおすすめします
>>271 >まるでmalloc-free論争みたいだw
「まるで」ではない。
何十年繰り返したか判らないループ。
世に脳足りんの種は尽きまじ。
>>290 俺の人生、リセットボタン無いんだよね。
電源ボタンならあるけど。
電源切っても誰も悲しまないから切っていんじゃね
アプリケーションを終了させるときにWindowsも一緒に落とせばOk
電源ボタン [応答無し]
俺は絶対解放しなきゃならない場所(長時間起動する場合とか) で解放忘れの無いように、終了する場合も解放してるよ
プロセス終了時にシステムが開放してくれることと、有限なシステムリソ ースを作り放題で、他のプロセスやシステムに割り当て可能なリソースを 無駄に消費することは別次元の話だよな。
C++にして、適当にクラスでラップして、デストラクタで解放するようにすればいいだろ。
それがMFCのCGdiObject派生クラスなわけだが?MFCすら使えない厨房が、 いまさら車輪の再発明でもしようってのかぃ?
MFCはMFCだろwここはMFCスレだったかw
SDKの話であってもMFCで使えば解決するんだから リソースの解放なんてしなくて良い ていうわけじゃないだろうけど…
303 :
問1 :2006/09/01(金) 19:52:27
指定したハンドルを持つウィンドウに子ウィンドウ追加するには・・・?
指定したハンドルを持つウィンドウに子ウィンドウを追加すればいいだろがヴォケ
SetParentとかそんな名前のが無かったっけ?
306 :
解1 :2006/09/01(金) 20:07:21
307 :
経過1 :2006/09/01(金) 20:27:09
>>305 ありがとう。SetParentで出来ました。
喪前らコンソールアプリ作るとき標準入力、標準出力、エラー出力は 終了前にクローズしてるよな?
あれはスタートアップルーチンが破棄するんじゃね?
自分で解放するのは、原則的に自分で確保したものだけだよ システムとかAPIが自動で確保したものは勝手に解放したらバグになってもおかしくない こちらで解放しなきゃならない仕様じゃなければ、だけど 例えば、AllocConsoleしたらFreeConsoleしてる
自分が開いたもの以外を閉じるのは越権行為です。
俺終わるときはちゃんとExitWindows呼び出してるよ!
MFCは結局コアな部分は隠蔽されてるから 便利なMFCで開発やってた奴がSDKやろうとすると戸惑う→結局MFCに戻る
つーことはSDKをもっと便利にラッパークラス作ればいいんだなっ
とりあえずMFCのソースでも読んどけ
>MFCは結局コアな部分は隠蔽されてる ソースが全てと思ってたけど、隠れてる部分てあるんだ?
いまいちapiの使い方がわからない時は MFCのソースを参考にすると解決することが多いな
>>316 隠蔽というのはカプセル化の一種としての隠蔽のことを指しているのでは。
>316 結局、SDK房はC++を理解できていないだけで、それを隠蔽するためにMFCは 糞とか、言ってるだけだろ。 MFC自体は、マイクロソフトが作ったC++のクラスライブラリで、Win32 API をC++でラップしたに過ぎず、MFCの全ソースも公開されているのにな。
その手の話はよそでやってくれんか?カス共よ
そこでATL+WTLですよと言ってみる。
でもよくわからずに便利な"物"(クラス)があるから使ってるって輩が多いのは事実だろ いや、これがある意味”オブジェクト”指向なのかもしれないなwwwwwwwwwwwwww
C++使いじゃないオレには激しくどうでも良い話ですね MFCは専用スレあるよ
>322 オマエが、オブジェクト指向を理解していないことはよくわかった。
同じような感じでFreeLibraryも必要無いよね
327 :
デフォルトの名無しさん :2006/09/02(土) 12:15:19 BE:382270346-2BP(0)
ウィンドウ外でもカーソルを変更するには どうすればいいのてじょうか?
それはやられると困るし
329 :
デフォルトの名無しさん :2006/09/02(土) 12:59:06 BE:238918853-2BP(0)
デスクトップ画面の左上にくるとカソールを変更するソフトを 作ってるんです。
迷惑だから教えない
331 :
デフォルトの名無しさん :2006/09/02(土) 13:44:59 BE:191135243-2BP(0)
左上にくるとある機能がon になる常駐アプリ んなんですけど自分のウィンドウを表示しないので カーソルを変更してユーザーに知らせる為に必要 なんです。どう迷惑なのでしょうか?
マウスが左上にきたら、カーソルの部分に小さなウィンドウ表示して合図にすればいいじゃない
>>331 デスクトップの左上のカーソルを変えたい領域に透明な窓を作れ。
全体の使い勝手に影響するアプリケーション作りはほどほどにな。
334 :
デフォルトの名無しさん :2006/09/02(土) 14:01:33
それは面倒なのでは? 変更といっても斜め矢印を立て矢印にするだけなんですけど
【今後の予想】
>>331 ↓
どう迷惑か答えられない。
↓
究極奥義質問返し
↓
まるでmalloc-free論争みたいだw
336 :
デフォルトの名無しさん :2006/09/02(土) 14:06:53
何に答えればいいの?
CreateHardLink しても只のコピーが作られるだけでハードリンクにならないんですけど何でですか? LinkName := ExtractFilePath(Application.ExeName) + 'hoge2.pas'; ExistName := ExtractFilePath(Application.ExeName) + 'hoge1.pas'; if CreateHardLink(PChar(LinkName), PChar(ExistName), nil) then ShowMessage('おk') else ShowMessage('(゚Д゚)');
nilなんて指定するヵらだ
>>337 hoge1.pasを編集してもhoge2.pasが変わらなかったってこと?
341 :
340 :2006/09/02(土) 14:57:37
何を指定すれば〜はおかしい気がしてきた。 SECURITY_ATTRIBUTES の各メンバはどうすればいいのですか?
ファイルシステムがFAT32だったりして
>>342 や、それは確認しました。
NTFSですた。
344 :
デフォルトの名無しさん :2006/09/02(土) 16:58:40
ディスプレイの明るさをプログラムで制御するにはどうしたらいいんでしょうか? 画面 ブライトネスとかでぐぐってもそれらしい記述が見つけられません。 コンシュマー機やUNIXでのプログラミング経験はあるのですが、 Windowsのプログラムは1,2本作ったぐらいの超初心者です。 テンプレのサイトも覗きましたがそれらしい項目が見当たりませんでした。 すいませんがご存知のかたはよろしくおながいします。
馬鹿な俺にはデスクトップにマスクかけるくらいしか思いつかない
汎用的な方法は無いんじゃない?
一部ディスプレイメーカやNotePCではAPIが公開されているが、 一般的な外部ディスプレイはAPIどころかプログラム制御する手段がそもそもない。
そういうソフトが存在するか調べればわかるだろ
349 :
337 :2006/09/02(土) 17:46:29
何故か解決しました。 コードは何も弄っていないのにもう一度実行したらちゃんと動きました。 なんでじゃ
350 :
337 :2006/09/02(土) 18:05:49
と思ったらまた出来なくなってる…(;・ω・) もう何がなんだか
337の検証の仕方が悪いとか
352 :
337 :2006/09/02(土) 18:12:47
実行した後、 元のファイルを適当に書き換えて、新しく出来たファイルを開く 又は新しく出来たファイルを書き換えて元のファイルを開く これではダメですか?
ツンデレAPI
開くアプリが、別名で保存、元ファイルを削除、元ファイルにリネームみたいなことやってるとか。
hoge2.pasが事前に存在するとか? CreateHarkLinkは上書きしてくれない
359 :
337 :2006/09/02(土) 18:26:45
>>355 それだー!
秀丸で書き換えたらダメでしたが、メモ帳でならおkでした。
まさかこんな所に落とし穴があったとは…
どうもありがとうございました。
明るさとガンマは違うだろ
362 :
331 :2006/09/02(土) 19:06:38
お願いします
>>362 無関係なウィンドウ上で勝手にカーソルが代わったらキモイじゃん。
>>362 ウィルスモドキには協力できません。
タスクバーの事なら猫を見てください。
>>364 当たり前のことで悩んでた奴がすぐ上にいるじゃん
γ関係はDirect3Dになにかあるんじゃないかな Lineage2 が画面のγ値変えてくれて非常に鬱陶しいから。
GetDeviceGammaRamp/SetDeviceGammaRamp
369 :
344 :2006/09/03(日) 09:10:10
370 :
デフォルトの名無しさん :2006/09/03(日) 12:02:44
不可視WINDOWの状態でタスクトレイにアイコン登録しただけのアプリを 起動したいのですが、 CreateWindowEXでdwExStyleにWS_EX_TOOLWINDOWを指定して、 dwStyleにWS_MINIMIZEを指定しても普通にWINDOWが現れた状態で起動してしまいます。 何かいい方法はないでしょうか?
CreateWindowExでWS_VISIBLE付けてたら外せ ShowWindowするな
>>371 さんどうもです。解決しました。
ShowWindowで見えないようにしないといけなかったのですね。
はじめまして.C++をはじめたばかりの者です. こちらの方へ誘導されたのですが, Win32APIや.NET Frameworkを使って 「どのプロセス」が「どのファイル」に変更を加えたか(アクセスしたか)を 取得する方法はあるのでしょうか? ReadDirectoryChangesWを使うことでファイルに変更が加えられたことは分かるのですが, どのプロセスが変更を加えたかがわかりません. 具体的な変数名や使い方を教えていただければ幸いです. どなたかご教授お願いします.
>>373 要件に合わんかもだがNTFSの監査でもそういう情報が残る気がする
376 :
375 :2006/09/04(月) 12:33:57
>374 ありがとうございます. これを自分で実装したいのですが, どのような関数が使われているのでしょうか?
>>376 Win32APIには存在しない。
>374のソフトはデバイスドライバと連動して目的の機能を実現している。
378 :
373 :2006/09/04(月) 12:48:37
↑名前まちがえてました;; >375 ありがとうございます.調べてみます.
379 :
373 :2006/09/04(月) 12:51:59
>>377 ありがとうございます.
デバイスドライバとなると自分には難しそうなので
もう少し勉強してみます.
ツリービューの使い方が分からなくて困っています。 ツリーのハンドルを取得して、 TVITEM ti; ti.mask = TVIF_STATE; ti.state = TVIS_SELECTED; TreeView_SetItem(hTree, &ti); とやっても選択されてくれないので困っています。 ti.state = TVIS_DROPHILITED; だったら反映されるのですが…。 よろしくお願いします。
tiを0クリアした方がいいんじゃない?
>>380 MSDNに書いてある通り、ti.hItemとti.stateMaskの指定が必要。
>>381 の処理もやっておいた方が良い。
383 :
373 :2006/09/05(火) 12:08:23
373です Filemonのソースを見てみたのですが自分には分かりそうにありません そこで,Filemonが出力する情報を利用したいのですが, 外部のプログラムからFilemonの出力をリアルタイムに取得する方法があれば 教えていただけませんか
ソースあったら表示データぐらいは取れるはずだが
385 :
380 :2006/09/05(火) 13:54:59
386 :
デフォルトの名無しさん :2006/09/05(火) 22:02:59
コンボボックスについて質問があります。 コンボボックスの高さはフォントの高さに依存しているのでしょうか? 高さ変更できません。
高さってなんだよDropDownCountの事か?
388 :
デフォルトの名無しさん :2006/09/05(火) 22:26:19
>>387 CreateWindow の引数でint nHeightのことでございます
>>386 とりあえずオーナードローにすれば変更できるんじゃ。
390 :
386 :2006/09/05(火) 22:49:51
ありがとうございます オーなどローのことを調べてがんばってみます
オーなど、ローの事?
392 :
プログラム自体初心者 :2006/09/06(水) 10:55:19
CreateProcessWithLogonを使用して一般ユーザーにAdmin権限でProcessを実行させようと思っています。 MSDNなどを見ても、C#でのソースコードの書き方がイマイチわかりません。 どなたかヒントだけでも頂けないでしょうか?差し出がましいですが、サンプル書いてもらえると助かります。 よろしくお願いいたします。
スレ違いじゃないか?
サンプルは書くの面倒だから検索するかRunAs使っとけ
395 :
プログラム自体初心者 :2006/09/06(水) 12:01:56
>>394 申し訳ありません。runasではユーザー操作が入るので無理なんです。
C言語でも結構です。どなたか神様、超簡単なサンプルをお願いします。
CreateProcessWithLogonW( Username // ユーザーの名前 Domain // ドメイン Password // ユーザーのパスワード ,LOGON_WITH_PROFILE // ログオン オプション ,0 // 実行可能モジュール名 ,CommandLine // コマンドライン文字列 ,CREATE_DEFAULT_ERROR_MODE // 作成フラグ ,0 // 新しい環境ブロック ,0 // カレントディレクトリの名前 ,&StartupInfo ,&ProcessInformation);
>>395 一般ユーザに Admin 権限でプロセスを実行させるのはとてつもなく面倒なので
簡単なサンプルなど示しようもないんだけど、既存の Admin 権限を持ったユーザとして
プロセスを作成するんだったら ProcessStartInfo.UserName とProcessStartInfo.Password を
指定してProcess.Start で超簡単にできるような気がする。
NotifyIcon にて、バルーンがタスクバーやウィンドウの後ろに表示されることがあるんですが…… バルーンを常に前面で表示させるオプションとかはないんですよね(;´Д`)?
399 :
デフォルトの名無しさん :2006/09/06(水) 16:29:10
ウィンドウに描画しない部分を作りたいのですが、SetWindowRgnだと、 描画しないだけではなく、マウスのクリックなどのイベントも受け取れなくなってしまいます。 描画しない部分を作り、マウスのイベントを受け取れるようにするにはどうしたらいいのでしょうか?
SelectClipRgn
どうもありがとう。
402 :
プログラム自体初心者 :2006/09/06(水) 20:52:39
>>396 >>397 ありがとうございます。
実はC#で・・・CreateProcessWithLogonWを使う場合の
using system
[Dll Import]
の最初の辺りが分からず苦戦しています。
その辺だけでも教えていただけないでしょうか?
>>402 System.Diagnostics.Process.Start (2.0以降)
キーボードフックで、wParamに入っているキー以外のキーが押されていない、 つまり単体で押されているかどうかを調べるにはどうすればよいでしょうか。
407 :
プログラム自体初心者 :2006/09/06(水) 22:04:24
>>406 必要に応じてGetKeyStateまたはGetAsyncKeyState。
>>392 >差し出がましいですが
ナメてんのか?w 差し出がましいたぁ「余計なお世話」ってことだぞ。
人様にやって頂く行為に付ける形容詞じゃねぇな。
「恐縮ですが」か「もしよろしければ」あたりにしとけ。
409が差し出がましい件について
>>409 逆恨みされるだけだから人に注意などしない方がいい。
特に同業者相手なら放置して潰れてもらうのを狙うのが得策。
>>409 基本的には相手の間違いを指摘してあげてるんだから相手も得になるはず。
しかしこの世の中、伝え方次第で好意も敵意につながるから怖いよ。
413 :
デフォルトの名無しさん :2006/09/07(木) 10:59:54
>>409 キレル年齢層は年々上がっているから注意が必要。
温和な人だと思っても一言で鬼のように変わる人もいる。
それだけ昨今の人間関係とは、はかなくもろい。
今は注意する側が頭を下げて下手に出なければならない。
世知辛い世の中になっちまったもんだ。
414 :
399 :2006/09/07(木) 11:11:26
SelectClipRgnを使ってみたのですが、 どうやらウィンドウには効果がないようです。ビットマップにはきくようですが。 一応やりたいことをもう一度書くと、SetWindowRgnで作った 透明部分と色のついた部分の市松模様になってるウィンドウがありまして、 この透明部分でマウスクリックしたときもイベントを受け取れるようにしたいのです。
>>413 >それだけ昨今の人間関係とは、はかなくもろい。
莫迦が増えただけの事でしょう。
差し出がましいですが、スレと関係ない話を続けるのはどうかと思いますよ
うるせーばか!
差し出がましいようですが、多少の脱線は許容しても宜しいのではありませんか?
初めましてdelphiで簡単なプログラムを作っているのですが 自作アプリケーションから他のアプリケーションのポップアップメニューを 選択できなくてつまづいています。 FindWindowでハンドルを取得した後、postMessageで選択したい相対座標を クリックしているのですがWM_LBUTTONDOWNでメニューが閉じてしまいます。 他のAPIを使うのではと想像しているのですが検索してもそれらしいものが出てこなくて・・・ どなたか教えていただけませんか? hChild1 := FindWindow('#32768',nil); if hChild1 > 0 then begin postMessage(hChild1, WM_LBUTTONDOWN,0,MakeLParam(10,15)); postMessage(hChild1, WM_LBUTTONUP,0,MakeLParam(10,15)); end;
メニューIDをおくりつけようぜ
>>419 ポップアップメニューを表示したウィンドウにメッセージを送りつけてもそのウィンドウの領域がクリックされたことになるだけで、
ポップアップメニューをクリックされたことにはならないんじゃないかと
多分、やるべきじゃないけどメッセージを送るなら、ポップアップメニューそのもののウィンドウハンドル(≠メニューハンドル)を取得する必要があると思う
(だけどサブメニューごとにもハンドルが違うとか、ポップアップのたびにハンドルが違うとか、やっちゃいけない)
その目的ならmouse_eventを使うべきかと
422 :
デフォルトの名無しさん :2006/09/07(木) 12:39:21
>>415 そう。その莫迦が今後も増加傾向にあるというのが問題なのです。
なんだっけ? 自分以外は全員馬鹿に思えるやつが増えてるんだってな
馬鹿なヤツらだな
425 :
デフォルトの名無しさん :2006/09/07(木) 13:06:22
キレるのが増えてるんじゃなく キレさせない言い回しが出来る奴が少ない
>>420 回答有難うございます
他アプリケーションのメニューIDを取得する方法が。。。
Resource Hackerを見つけて使って見たのですが見つけることが出来ませんでした。
>421
回答有難うございます
自動的にオペレーションを行いたくソフトを作成しているので
そのアプリケーションのメニューがアクティブになってるとは限らないのです。
助言いただいたのですがすいません。
そのアプリをspy++で wm_commandでも覗いてればコマンド分かるんでない?
元質問者は delphi らしいが… SPY++ 相当の メッセージログツール ってあるのかな
430 :
デフォルトの名無しさん :2006/09/07(木) 14:29:13
>>426 違うな。間違いの指摘程度で過敏に反応する輩が増えてるんだ。
ななな、なにを!
キレるとかキレないとかうるせー、キレるぞおらー。
KillTimer
わんわん
有効なファイル名か判断する(\や?や|や"なんかが混じってるか判断する)apiってありますか?
CreateFileEx
PathGetCharTypeとかもあるよ
windowsって名前付ける時、半角のエスケープシーケンス等を使用とするとエラー返されなかったっけ?
>>429 一応WinSightってのが付いてる。
??意味が分からん ところで22:00:00ジャストゲットおめでとう
ファイル名変更しようとした時に「:*,;....」は使えませんて。 自分でそういうファイルを作ったりするなら判断しても良いけど。 そうじゃない場合、無駄手間にならないかなと。
ファイル名として使えない文字のことじゃね?
Win32APIにURLエンコーディングやUTF-8にエンコーディングする関数ってあったかな。
あるよ。
おしえてよ・・・ぐぐったけど出てこないんだもん(´・ω・`)
UrlEscape と WideCharToMultiByte (CP_UTF8 を指定する)
サンクス!!めっちゃ助かった。UrlEscapeか。。。 ちなみにEUC-JPにエンコするのはどうするのかな。
PCのヘッドフォンジャックにヘッドフォンのプラグが刺さっているかどうかを 監視したいのですが、ヘッドフォンジャックの状態Win32APIで取得することはできますか?
無理
いったい何をつくるんだ?
無理といわずにお願いします
使っているPC付属のソフトで、ジャックを指すとそれに合わせて「設定変える?」と聞いてくるから Win32でできるのかなと思ったもので。 できるのなら今作っている俺様専用音楽再生ソフトで試してみようとしただけです。
ハード依存だと思う
ヘッドホンのスピーカにマイクをつけて、そのマイクからの音を監視してればいいんじゃねーかな。
むしろジャックをCMOSセンサーで監視(ry
ラジオボタンをデフォルトでチェックされた状態にするにはどうすればいいかな。 WM_INITDIALOGでBM_SETCHECK送っても意味はないし、チェック状態で作るスタイルとかあるのかな・・・
ラジオのボタンをONにしたのに音が鳴らないんですけど…
>>459 BM_SETCHECKのwParamにBST_CHECKED渡してるか?
CheckRadioButton使う方が良いかもしれない。
ラジオボタンは、コントロールIDの順番に依存している所があるので注意。
>>460 音量が0になっていませんか?
ヘッドフォン端子に何も刺していませんか?
電源コードが抜けていませんか?
>>461 パソコン超初心者向けのトラブルシューティング口調にワロタ
464 :
デフォルトの名無しさん :2006/09/08(金) 13:34:07
GetPrivateProfileStringでINIファイル形式のファイルを読み込もうとしています。 Key=value; ;コメント ↑の行を読み込むとセミコロン以降も読んでしまいます。 セミコロン以降はコメントではないのでしょうか。 valueのあとのセミコロンを見付け、その1バイト前までをvalueとする、などという処理が必要になるのでしょうか?
>>464 そもそも値の後ろにコメントが入っていること自体が間違っていると思う。
>>464 iniファイルは行頭セミコロンがコメント。
行中にあるセミコロンは有効な値として扱うよ。
>>464 >などという処理が必要になるのでしょうか?
などという処理が必要になりますね。
>>466 別にセミコロンでなくとも。
468 :
464 :2006/09/08(金) 14:44:37
どうもありがとうございました。 バイナリエディタでセミコロンの代わりに0x00を入れたら取れたので、それで回避しました。
469 :
デフォルトの名無しさん :2006/09/08(金) 15:23:10
ワロタ それって解決策なのかw
iniファイルの仕様って不便だよな。 値が複数行に対応してないし
そんなあなたにxml
"\" → "\\" CRLF → "\n"
iniなんていまどき使うもんじゃないな
xmlはライブラリ使うのが不便
APIでサポートされるようになったら使うよ
>>470 てか読み書き毎に総舐めしてた様な気がするから遅かったと思う。
Delphi/BCBはAPI呼ばないで独自実装クラス持ってるけど。
Dialogの中でDialogを作って消すと、呼び出し元のDialogまで消えるんですが、考えられる原因ってありますか? DialogはどちらもDialogBoxParamを使って作ってます。
>>461 ラジオボタンのハンドル取得して渡すの忘れてました。
CheckRadioButton関数使った方が楽だね。サンクス。
479 :
デフォルトの名無しさん :2006/09/08(金) 18:34:46
VC++6.0使ってます 子ウインドウを親ウインドウに合体(?)させる方法を教えてください Windowsの付属ペイントのツールボックスみたいな感じのやつです
ドッキングツールバーだろ
>>477です。自己解決できたようです PostQuitMessageって一度だけWM_QUIT投げてそれっきりだと思ってたのですが、 これを呼び出した後にダイアログを作成してもすぐにWM_DESTROYが飛んでくるんですね…
482 :
479 :2006/09/08(金) 19:12:26
>>480 ググってみましたが、難しそうですね
MFC使わないといけないみたいなので、ダイアログツールバーで我慢します
>>464 なんかどっかで、iniファイルを解析してソースを作成ってツールあったような
一周回って最近はini保存にしてるよん、単純なのがいい
いじられたくないなら拡張子変えればいいし
> INIファイルをもとに読み書き用C++ソースを自動生成する開発支援ソフト そんなに便利かなぁ?Iniファイルから解析だと、数値は全部「int」にされ ちまうんだろうし、INIに記述がない場合の、デフォルトの文字列や、デフォ ルトの期待値はINIファイルを解析してもわからんし、INIファイルのサンプル を書いてツールに解析させて、結局できたソースに手を加えるくらいなら、 最初からINIファイルを読み書きするコードを描くなりした方が早い気がする。
XMLは、MSXML使えば楽チンだろ?そうか、Win32坊はDOMを使えないのか。
strで読み込んで桁数を数えるってのもできるといえばできるね
でも、たかが、 x=10 y=10 width=300 height=600 を保存するために、xmlみたいな大仰しいのを使うのもちょっとな・・・
489 :
デフォルトの名無しさん :2006/09/09(土) 10:31:54
マウスの移動を監視しているソフトを作ってます。 自分のウィンドウを非表示です。 すべてのマウスの動きを得るにはDLLを使うしかないのでしょうか? 現在はタイマーを1秒単位で発行しマウスの位置を取得しています。 やはり動いた時だけ感知したいのです。
>>489 フック使うのが王道だし。
メッセージ取れるんだから、動いたときだけ感知できるよ?
素直にdll作っておきな。
日本語微妙におかしくね?
492 :
449 :2006/09/09(土) 12:53:25
UrlEscape()が日本語を全然変換してくれないんですが・・・ どうすればよいのでしょう。オプションかと思いましたがどうも違うようです。
あきらかにおかしい
>自分のウィンドウを非表示です。 日本語でどうぞ。
>>489 ずばり、クイックランチャー等でソース公開してるやつあるよ
・いわゆる hook.dll で特定のマウスで特定のソフトにメッセ送る
・タスクバーを消し、タスクトレイに入れる
496 :
489 :2006/09/09(土) 13:34:20
DirectInputで取得してるキーボードメッセージとかってフックできないんでしょうか?
wininetでHttpSendRequestExで非同期POSTをしてるんですが、 POSTした後にInternetReadFileExでサーバからの応答を取得すると メッセージが壊れてることがあります。なぜでしょうか?
どのように壊れるかを書け
500 :
498 :2006/09/09(土) 14:26:25
>>499 メッセージがところどころ抜けてるというか、
↓例えばこんな感じで。
<HTML>
<head>
<title>トップ画
</HTML>
↑この場合なら「トップ画面</title>」じゃないとおかしいです。
スニファで通信ログを調べると壊れて無いのでwininetがおかしいのか取得方法が間違ってるのかわからないのです。
・受信バイト数?にあたる戻り値をチェックしてない ・バイトストリームなのにstrlenで長さを取り出している あたりかなあ このへんのコード晒してみ
>>501 見当違いかも知れ無いですが受信部分です。outputはstring型です
INTERNET_BUFFERS inetbufs;
::memset(&inetbufs, 0, sizeof(INTERNET_BUFFERS));
inetbufs.dwStructSize = sizeof(INTERNET_BUFFERS);
do
{
inetbufs.lpvBuffer = datatop;
inetbufs.dwBufferLength = BUFSIZE;
BOOL ret = InternetReadFileEx(hfile, &inetbufs, IRF_ASYNC, (DWORD)this);
if(!ret)
{
if(::GetLastError() == ERROR_IO_PENDING)
return;
goto READERROR;
}
if(!inetbufs.dwBufferLength)
break;
output.append(datatop, inetbufs.dwBufferLength);
} while(true);
↑はGETときも同じ処理なんですが、このときはメッセージはきちんと取得できます。
メッセージが壊れるのはPOSTのときだけで、後関係有るのかわかりませんがPOSTを送った後サーバからHTTP_STATUS_REDIRECTが返って来て自動でRedirectしてました。
if(!inetbufs.dwBufferLength) break; ここがアヤシイ
inetbufs.lpvBuffer に値が正しくセットされていることを メモリ見て確認した?
>>502 > outputはstring型
そりゃまずいだろ
一旦byte arrayに全体を格納してから
headerのencodingにあわせてデコードするとかしないと。
>>503 breakの後はクローズ処理に飛ぶだけなんですがまずいですか?
>>504 正しくっていうのがよくわからないですが、
メッセージが壊れて無い場合はメモリにきちんと入ってました。
>>505 確かにそうですけど今はContent-Encoding(?)は考えずに
サーバからデータがきちんと受信できてるか確かめてる段階なので・・・
timeSetEventでタイマーを起動して、 タイマーの発動前のキャンセル、 何回も発動するタイマーのキャンセルは timeKillEventですが、 一回きりタイマーの設定で、 タイマーの発動後ではtimeKillEventしないといけないのですか?
>>506 > 確かにそうですけど今はContent-Encoding(?)は考えずに
考えないのなら、なおさらバイト配列にすべき。
stringもバイト配列だと思うが
>>506 >サーバからデータがきちんと受信できてるか確かめてる段階なので・・・
ならばなおさらstringなんて使わずにファイルにでもダンプしろと
timeSetEventτ〃勺ィマ→を起動Uτ、 勺ィマ→σ発動前σ≠ャ冫セ儿、 何回も発動する勺ィマ→σ≠ャ冫セ儿はtimeKillEventτ〃すか〃、 一回きり勺ィマ→σ設定τ〃、 勺ィマ→σ発動後τ〃はtimeKillEventUなぃとぃけなぃστ〃すか?
TIME_ONESHOTを与えてtimeSetEvent呼び出し、 時間が経ってタイマーが発動した後でも、 timeKillEventしないといけませんか?
>>509 いまだにこんな勘違いしてるのがいるのか
呆れる
ユニコードと非ユニコードで違うだろ。 つーかスレ違いだからよそでやれ
つまり、
>>502 は途中で0x00が入り、文字が途切れるオチ?
コメント キー = 値 にすれば解決
520 :
デフォルトの名無しさん :2006/09/10(日) 01:45:19
エディットコントロールに文字を入力すると どうやらエディットコントロールの上辺に文字がそろってしまいます。 自分は下辺に文字をそろえたいのですが、どうすればいいでしょうか?
fontの高さとeditコントロールの高さをあわせる
522 :
502 :2006/09/10(日) 05:12:51
BOOL ret = InternetReadFileEx(hfile, &inetbufs, IRF_ASYNC, (DWORD)this); ↑のIRF_ASYNCをIRF_NO_WAITに変えたらうまく行きました。何故かよくわかりませんが。
IRF_ASYNC は Windows CE用 InternetReadFileEx の引数 MSDNライブラリよく見れ
waveOut〜系の関数で、ストリーミング再生はできないのですか? バッファを最後まで終了したら続けて再生、となると、どうしても音がとぎれてしまいます。
526 :
デフォルトの名無しさん :2006/09/10(日) 15:51:49
>>521 できませんでした。
エクスプローラのアドレスバーはDEFAULT_GUI_FONT使っているので
自分のプログラムでDEFAULT_GUI_FONT使ったらエクスプローラのコンボボックスと同じ高さになりました。
しかし、やっぱり文字が上辺にそろってしまいます(; ;)
>>524 waveOut使うより、DirectSoundを使ったほうが解り易くていいぞ。
ストリーミング再生の機能あるしね でもwave再生するだけでDirectX要求されるのも使う立場からすると萎えるな
DSoundはDirectX5の時代から変わってないよ 今配ってるWindows全てで使える
535 :
524 :2006/09/10(日) 19:07:05
>>527 ,530
ありがとうございます。
DirectSoundでは既にやったことがありまして、
>>533 と同じ理由で、waveOutでの再生も勉強していました
>>488 スレ違いだが、Boostや.NET Frameworkなどのシリアライズ機構を使えば、
XMLの読み書きはものすごく楽。
下準備に何行か余計にかかるけど、実際の読み書きは1行程度で済む。
エディットウインドウ内でエンターを押すと文字を送信するという感じのプログラムを作ってるんですが、 エンターを押すと出るポンッという音を出さないようにする方法は無いでしょうか?
>>537 わからんけどES_WANTRETURNは関係ある?
スピーカーを引っこ抜け
>>538 一応一行のウィンドウなんですけど、複数行にしてES_WANTRETURNを入れてみたけど駄目でした。
ウィンドウスタイル見てもそれらしき物は無さそうなんで他に何かやり方があるんでしょうか。
541 :
デフォルトの名無しさん :2006/09/11(月) 01:23:11
コンソールアプリケーションで、矢印キーの入力を受け取りたいのですがどうしたらいいのでしょうか。 INPUT_RECORD ir; DWORD sz; ReadConsoleInput(stdin, &ir, 1, &sz); if( ir.EventType == KEY_EVENT){・・・ と書いてみたのですが、、、ifがTRUEにならないので間違っているみたいです。
kbhit
確かにkbhitのほうが簡単だがスレ違い
ユーザーが指定した時間後にある操作を行うように (例えば30分後に電源オフ)したいのですが、SetTimer 意外に何か方法はありませんか? 繰り返しではなく、一回しか実行しないので、SetTimerは 冗長な気がします。
30分後に実行されるタスクを作成すれば?
547 :
デフォルトの名無しさん :2006/09/11(月) 02:45:27
返信くださいまして、ありがとうございます。 kbhitでできるならば、やってみます。ありがとうございました。
>>545 待機関数WaitForSingleObject, WaitForMultipleObjectsと
イベントハンドルとの組み合わせ。
ただ、毎秒判定するとズレが生じるので、
日付の終了時間を作成し、それを経過したかどうかで判定で
イベントハンドルの判定スイッチを・・・などなど
549 :
デフォルトの名無しさん :2006/09/11(月) 10:09:08
NCだよね
NCMOUSEMOVEだとマウスが乗ってる窓が変わった時しかこない MOUSEMOVEでOKかと いったん全部メッセージログ出しして特徴掴むといい
ウィンドウにはクライアント領域と非クライアント領域があるのです
553 :
549 :2006/09/11(月) 11:36:58
デバック時なのでウィンドウを出してテストしているのですが WM_MOUSEMOVEの時に自ウィンドウを表示してたら支障がでますか?
自ウィンドウの下のウィンドウが困る
うーん どうしてもうまくいきません。 たまにしかこないようなのです。 どなたかWM_MOUSEMOVE をフックしているDLLのソースを 公開しているサイトをご存知ないですか?
>>537 それは、エディットではなくダイアログプロシジャが
デフォルトボタンがないよって鳴いている音だね。
IDOK を処理してあげれば鳴らなくなるけど、
送信ボタン作ってデフォルトのボタンに設定したほうがいいと思う。
すみませんC#でファイル・フォルダ・レジストリのACLを調査してログファイルに書きだしたいのですが GetAclInformationを使うというところまで来ましたが、書き方が分かりません。 どなたかサンプルをC#で書いてもらえないでしょうか? あつかましくて本当にすみません。
>>537 KeyDown/KeyUpイベントでエンターの入力取って処理してるなら、
イベントハンドラの引数KeyEventArgs.SuppressKeyPressをtrueにしておく。
ああああごめんC#スレと間違えたw
で、確かWM_KEYDOWN/UPでやってるなら、WndProcの戻り値をTRUEにして 「そのキーについては処理した」と教えてやればBEEP鳴らないはず。 KEYDOWNでそれやると、処理されたとしてその後のKEYUPが来なくなるけどな。
>>556 ウィンドウクラスをEDITで作った子ウィンドウなんです。
>>561 エディットウィンドウの動作をサブクラスにしてそこでWM_KEYDOWNを処理してます。
戻り値をTRUEにしてみたけど駄目でした。
>>562 その EDIT をサブクラス化したコントロールが Dialog に貼られてた場合
たとえ EDIT にフォーカスがあっても
メッセージループで IsDialogMeaage() を処理してれば Dialog側にメッセージ配送されてしまうんじゃないか?
564 :
537 :2006/09/11(月) 19:56:12
入力部にリッチエディットコントロールを使用すればなんとかなりそうなのでこれでやってみます。 色々と回答ありがとうございました。
Win2000以降のメモ帳の、ファイルを開くダイアログ のように、GetOpenFileNameで 文字コードの選択肢等をつけるには、どのようにするのか分かる方いましたら、教えてください
567 :
デフォルトの名無しさん :2006/09/11(月) 22:20:49
マウスフックはできたのですが IEの上を移動する時はメッセージがきません。なぜなのでしょうか?
フックされてる
Win2000以降のメモ帳のファイルを開くダイアログって文字コードの選択肢出てきたっけ?
DeteKonaiYo()
>>566 ヒント: OFN_ENABLETEMPLATE
572 :
567 :2006/09/11(月) 23:07:29
フックされてメッセージが来ないのですか? 対処法はありますか?
574 :
567 :2006/09/11(月) 23:49:24
私だけが使うソフトではないのですべてのマウスの移動を感知したいのです。 IEの上の時にWM_MOUSEMOVE がこない...
説明書にIEはやめてOperaを使うように書いておけばいいんじゃない?
そんなの絶対つかわねーw
577 :
567 :2006/09/12(火) 00:45:56
まじめにお願いできませんか?
IEが捕まえちゃってんじゃね
みんな親身になって相談に乗ってあげてるのにまじめにとか酷い言われようだな
580 :
567 :2006/09/12(火) 01:07:11
悪ふざけもいい加減にしてください!!
(;´Д`)ハァハァハァ
>>574 IEになんか仕込んでるんじゃないの?
フック止めるような行儀の悪いやつが
セキュリティの関係で、ユーザー操作を追跡できないようになってるのかも。
IEよりフックチェインの上位に登録すれば取得できるはず
もうめんどくせぇからDirectInputでDISCL_BACKGROUND | DISCL_NONEXCLUSIVEしる
「ご存知ないですか?」と聞かれたら 「ご存知ありますよ。」と答えるのが筋ではなかろうか。
×「ご存知ないですか?」 「ご存知ありますよ。」 ○「ご存知ないあるか?」 「ご存知あるあるよ。」
……頭が頭痛で痛む……
頭が腹痛じゃなくてよかったな
別のEXEのメッセージキューにメッセージ投げるのは 普通にハンドルとってPostMessage(trghwnd, WM_LBUTTONDOWN, ... で送られるんでしょか? なんか送っても反応してくれないです(´・ω・`)
>>591 yes
反応がないのは座標系間違ってるからとか?
あと、downだけ送ってupしてねーとかw
SendMessage(trghwnd, WM_LBUTTONDOWN, ...
594 :
591 :2006/09/12(火) 08:51:44
そうですか(´・ω・`) RegisterWindowMessageとかsendthreadとか必須なのかなと思ったんですが とりあえずごにょごにょ弄ってみます
595 :
567 :2006/09/12(火) 10:09:35
みなさまIEと書きましたが
メモ帳の上の時はメッセージがきませんでした。
cmd.exeの上なら来るのですが...
>>586 URLを教えてくれませんか?
596 :
567 :2006/09/12(火) 10:12:56
メモ帳の上の時もでした。 すみません。
>>596 WH_MOUSEはPostされたメッセージは取得できるけど
Sendされたのは駄目なんじゃなかったっけ?
今手元のフック習作のカスでためしたけどDLLからのSendでも問題なかったぞー
つまり567はカスということでよろしいか
600 :
567 :2006/09/12(火) 10:46:37
ね こだいすき
602 :
567 :2006/09/12(火) 12:23:25
この場合共有変数は関係ないですよね BCCにのですが
実家帰ったときマタタビとって来た
604 :
567 :2006/09/12(火) 12:26:21
なにかの暗号ですか??
また旅ねこ
606 :
567 :2006/09/12(火) 12:33:23
ここの人たちでは役に立たないことがわかりました。 他のところで同じ質問をしているので、そちらに期待することにします。 答えてくださった方々、ありがとうございませんでした。
607 :
567 :2006/09/12(火) 12:37:15
全ソース晒すか、諦めるかした方がいいな。
ほんとうにそのままなら、マウス動かすたびにメッセージボックスが出るはずだが
えー
>>585 がかなり良い線ついてると思うのだが。
どーせマクロ支援かなんかの実装だろ?
611 :
567 :2006/09/12(火) 14:49:56
構造体を指定しての ZeroMemory と memsetの0 と ={0} って同じ効果なんでしょうか?
613 :
567 :2006/09/12(火) 15:11:42
型によっては小数点とか関係してくるんじゃなかったけ?
615 :
567 :2006/09/12(火) 15:23:20
おれだよ
>>613 サンクス。とりあえずはあまり気にしなくてよさそう
あと良く考えたらC/C++関係スレで聞いたほうが適当かな
617 :
567 :2006/09/12(火) 16:16:11
がんばれよ
618 :
567 :2006/09/12(火) 16:26:17
で結局どうなん?早く
なんか567がリークしてるな
620 :
567 :2006/09/12(火) 16:41:25
>>618 誰だよ
567 で ageてるのは全部オレだよ
そろそろ答え教えてよ
621 :
567 ◆sVVR0Q7eM2 :2006/09/12(火) 16:44:40
偽者多いんで鳥つけます。
622 :
567 :2006/09/12(火) 16:45:10
午後5時までには知りたいんだが 頼むよマジで NCCだけど共有変数って関係ある?
623 :
567 :2006/09/12(火) 16:53:32
NCCではなくBCCです。
>BCCだけど共有変数って関係ある? 日本語でおk
>>622 おまえの挙げたサンプルをテストしてみたぞ。
BCC5.5.1環境。
で、結論から言うと、WM_MOUSEMOVEは問題なく取れる。
タイトルバーや、メモ帳のメニューなんかは取れないが、
これはNCL_MOUSEMOVEだろ?
クライアントエリアじゃないからな。
つまり、あのコードのままで取得可能。
俺は受け取り側のアプリに、WM_APP+10とかのメッセージで
適当にポストしてフック結果を取ったが、共有変数とか使うんなら、
また別の問題があるかもしれん。
これで満足か?w
626 :
567 :2006/09/12(火) 17:01:24
/ ̄\ | ^o^ | いいえ、それは不満足です \_/
627 :
625 :2006/09/12(火) 17:02:20
23秒前で5時に間に合ったなww
628 :
567 :2006/09/12(火) 17:02:24
>>おまえの挙げたサンプルをテストしてみたぞ。 猫の奴ですね? このソフトはすべてのマウスの動きを監視しするソフトなんですけど 他のウィンドウの上の時に NCL_MOUSEMOVE で取れるのですか?
629 :
567 :2006/09/12(火) 17:03:28
すべてのマウスの移動を監視していのですが wp == WM_MOUSEMOVE || wp == NCL_MOUSEMOVE こんな感じで可能?
630 :
625 :2006/09/12(火) 17:04:18
>>628 > 猫の奴ですね?
そそ。
WM_MOUSEMOVEはクライアントエリア上でのメッセージ。
NCL_〜はクライアントエリア外でのメッセージだろ?
だから全画面でやりたいなら、両方取らなきゃダメなんじゃね?
631 :
デフォルトの名無しさん :2006/09/12(火) 17:04:20
なんつーか微妙に日本語自体がおさっし気味だなw
632 :
567 :2006/09/12(火) 17:05:52
>キーボード苦手なんで wwwwwwww
634 :
625 :2006/09/12(火) 17:09:10
うはw俺超適当w WM_NCMOUSEMOVE だったw
635 :
567 :2006/09/12(火) 17:13:40
試したけどダメだったorz
WM_NCMOUSEMOVE は自分のウィンドウのタイトルバーとかの部分だろ?
DLL側でやってるんだけど他のウィンドウには反応しない
>>625 ソース見せてくんない?
636 :
625 :2006/09/12(火) 17:18:21
おいおいww 俺、猫のコードコピって動かしてまだ一時間経ってないのに、 何の問題もなく動いてるぞ? おまい、昨日から何やってたんだよwww
637 :
567 :2006/09/12(火) 17:18:39
まじで見せてよm(__)m
グローバルフックできてない予感
639 :
567 :2006/09/12(火) 17:21:39
いやいやcmd.exe上のウィンドウの上ではメッセージくるんだけど メモ長やIE上でこないんだよ
640 :
625 :2006/09/12(火) 17:21:39
あ、もしかして、メニューからフック開始やってないとかじゃないだろうな? そういや、俺メニューが出てこないからさりげなくバグ取ったw
641 :
567 :2006/09/12(火) 17:22:22
そこは問題ない HOOKは成功している
642 :
625 :2006/09/12(火) 17:22:56
643 :
567 :2006/09/12(火) 17:23:21
ソース頼むって アップしてくれない?
どんな宿題なのか気になる
645 :
567 :2006/09/12(火) 17:25:09
646 :
567 :2006/09/12(火) 17:25:49
宿題ではないよ マウスの位置によって動作するアプリよ
647 :
625 :2006/09/12(火) 17:27:22
あげた。 neko_162.zip DLキーは neko まぁがんがれw
648 :
567 :2006/09/12(火) 17:28:28
おとしてみる サンキュ
そしてアーカイブの中には 醤油.txt
650 :
567 :2006/09/12(火) 17:30:53
とりあえず今日一日考えてみるわ まじでありがとう
解決したら原因の報告よろ
652 :
567 :2006/09/12(火) 18:44:46
よかろう
スレの10分の1を私物化しておきながら「よかろう」って いったい何様のつもりだ。
↓ここで本物の567が現れる
655 :
567 :2006/09/12(火) 19:29:40
まだ答でてねーのかよ つかえないカスどもだなw
-- 誤 HINSTANCE hInst; HHOOK hHook; HWND hWnd; BOOL bHook; -- 正 #pragmadata_seg("__567__") HINSTANCE hInst; HHOOK hHook; HWND hWnd; BOOL bHook; #pragmadata_seg()
#pragmadata_seg("__567__") HINSTANCE hInst=0; HHOOK hHook=0; HWND hWnd=0; BOOL bHook=0; #pragmadata_seg()
658 :
567 :2006/09/12(火) 20:03:32 BE:318558645-2BP(0)
659 :
567 :2006/09/12(火) 20:05:43 BE:509693748-2BP(0)
passはsrcです。
660 :
567 :2006/09/12(火) 20:08:24 BE:780467677-2BP(0)
exeを実行するとタスクトレイに常駐するのでそこから終了してください。 マウスを右↓にもって逝くとアイコンが変わりスタンバイを抑止します
661 :
567 :2006/09/12(火) 20:10:30 BE:637116285-2BP(0)
main.cをコンパイルするとdebugウィンドウを表示するexe になります
>567 >656
663 :
567 :2006/09/12(火) 20:24:48 BE:382269683-2BP(0)
誰か
∩ 〈〈〈 ヽ 〈⊃ } ∩___∩ | | | ノ ヽ ! ! / ● ● | / | ( _●_) ミ/ <こいつ最高に馬鹿 彡、 |∪| / / __ ヽノ / (___) /
666 :
567 :2006/09/12(火) 20:31:14 BE:430053293-2BP(0)
BCC ではできませんよ
667 :
_ :2006/09/12(火) 20:32:00
>>567 ブラウザー上のイベントをトリガーするなら、
VBA上でMicorsoft Internet Controlsを参照設定して使ってイベントハンドラー作る例が
VBAマクロ本にあったけど、似たような(ActiveX)Controlあるんじゃないかな。
668 :
567 :2006/09/12(火) 20:32:59 BE:382269964-2BP(0)
>>647 のはそれが無くても動作しました。
共有変数は無関係では?
669 :
567 :2006/09/12(火) 20:34:12 BE:780467677-2BP(0)
670 :
デフォルトの名無しさん :2006/09/12(火) 20:34:18
BCCて共有変数作れないのかwww さすがDelphiの生みの親某ランドwww
671 :
567 :2006/09/12(火) 20:35:58 BE:318558645-2BP(0)
メモリマッ?? ファイルすれば可能 アセンブリで書けば可能
672 :
567 :2006/09/12(火) 20:39:11
早くおしえろカス
567うぜぇ
674 :
625 :2006/09/12(火) 20:41:58
>>669 俺のコードは共有変数とか使ってないからな。
WM_APP+nでFindWindowしたexe側にPostMessageして放り込んでる。
ある意味、手抜きしてるってわけだ。
675 :
567 :2006/09/12(火) 20:41:58 BE:557477257-2BP(0)
マジでわからんですわ
676 :
567 :2006/09/12(火) 20:43:15
だから、メモリマップドファイル作ってそこに共有が必要な変数を全部格納しろ
おまえ向いて無いからもう止めた方がいい
678 :
567 :2006/09/12(火) 20:45:53 BE:509692984-2BP(0)
共有変数は関係ないでしょ マジで nekoのは共有変数使ってないけど動作している。
メモリマップ *ト* ファイル
1を足すか引くかすれば直るよ。 バグなんてそんなもん。
682 :
567 :2006/09/12(火) 20:47:56
プロセス間通信でググれカス
683 :
567 :2006/09/12(火) 20:48:47 BE:159279825-2BP(0)
>>674 つまりウィンドウハンドルがアレって事か?
684 :
567 :2006/09/12(火) 20:49:33 BE:127423924-2BP(0)
まじごめん 共有変数関係ありかw
鳥ない奴は偽物でOK?
本物の鳥はどれですか?
おk
もしかして
>>567 の時点で既にニセモノだったんじゃね?
689 :
567 :2006/09/12(火) 20:57:30 BE:318558454-2BP(0)
ソースあげたbe月のオレが本物に決まってんだろ
>>689 本当の質問者がそこまで態度悪いはずが無い。
荒らしは消えてくれ。
691 :
567 :2006/09/12(火) 21:05:17 BE:445981474-2BP(0)
ちょwwwwおまwwwww
まぢレスすると… って何か荒れてるから様子見
694 :
567 :2006/09/12(火) 21:11:00 BE:159279252-2BP(0)
でつまり IEの上を通る時にDLLが別にロードされhwnd を見失ってるって事か 会ってる?
Yes stop_shutdown.exe の hwnd_msg と 他プロセスにロードされた hook.dll の hwnd_msg は別物
合ってる。
違うだろが
567は永久欠番ということでNGワード逝き
699 :
567 :2006/09/12(火) 21:15:47 BE:780467677-2BP(0)
まじセンキュ これからも567でこのスレの質問に答えるよ
700 :
デフォルトの名無しさん :2006/09/12(火) 21:18:58
>>697 違うのならば、何処がどう違うのかも説明しましょう。
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ ここまで自作自演
702 :
567 :2006/09/12(火) 21:22:57 BE:637116285-2BP(0)
>>700 ほっとけよかわいそうな奴なんだよ
>>701 beログインしたりするのは面倒なんだからそんなことはないぞ
>>694 他プロセスにdllがロードされるのは、
既に起動しているプロセスならフック登録時、
フック中に起動したプロセスならプロセス起動時
今回は関係無いけどね
あと、スレが荒れるから名無しに戻ってくれ
706 :
774 :2006/09/12(火) 22:08:28
707 :
576 :2006/09/12(火) 22:11:45
ばかちんが
>>705 いや、初めて知ったから感心してるんだけど。
^~ ←感心してる
711 :
576 :2006/09/13(水) 00:40:42
ほんとにどうしようもねえクズどもだな もう他で聞くわ^~
712 :
567 :2006/09/13(水) 01:29:20
他で聞いたらアホボケシネとか言われて追い出されて帰ってきますた><
参考までにどこで聞いたか教えて頂けませんか?
714 :
567 :2006/09/13(水) 04:57:36
715 :
デフォルトの名無しさん :2006/09/13(水) 05:12:43
| ∧ ∧ |/ ヽ ./ .∧ | `、 / ∧ |  ̄ ̄ ̄ ヽ | ̄ ̄ ̄ 567 ̄ ̄ ̄ ̄) | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\ |ヽ-=・=-′ ヽ-=・=- / |:: \___/ / |::::::: \/ /
わんわわわん わん! (ケンカは表でやってくれよ!)
717 :
567 :2006/09/13(水) 08:22:13
私のために争わないで!
718 :
567 :2006/09/13(水) 09:48:49 BE:382270346-2BP(0)
流れ変えたいから質問 オフィス系のファイルを開くダイアログって普通に提供されてたりする? それとも自作しないと使えない?
ヒント:NDA
721 :
567 :2006/09/13(水) 09:59:07 BE:557476875-2BP(0)
オーナードロー
>>720 Not Do Answer
DとN逆逆なら
Do Not Answer
答えられませんか。そうですか。
723 :
567 :2006/09/13(水) 10:15:23 BE:254847528-2BP(0)
724 :
567 :2006/09/13(水) 10:16:38 BE:430054439-2BP(0)
NDA 一般に公開されていない情報を入手する場合に、 その情報を外部に漏らさせないために交わす契約のこと。 新しいOS向けのアプリケーションソフトを開発してもらうために、 開発中のOSのコードをアプリケーションソフト開発会社に 引き渡すような場合に使われる。
725 :
デフォルトの名無しさん :2006/09/13(水) 12:18:33
567まだやってたのかwwwww
726 :
567 :2006/09/13(水) 12:25:13
あれ?いつのまに名無しが567になったの?
727 :
567 :2006/09/13(水) 12:27:38
BE使い分けて自作自演してました、ご清聴本当にありがとうございました。
レス番が飛びすぎだ('A`)
729 :
デフォルトの名無しさん :2006/09/13(水) 12:35:04
もう名無しは567でいいんじゃね?
730 :
567 :2006/09/13(水) 12:48:35 BE:222990672-2BP(0)
なぜマジレスしてくれないのか?
731 :
567 :2006/09/13(水) 13:02:00
人の名前を騙るな
732 :
567 :2006/09/13(水) 13:13:22 BE:334486073-2BP(0)
なまじ助ける香具師が一回現れたから 調子に乗っているんだろう
736 :
567 :2006/09/13(水) 14:23:56 BE:191134962-2BP(0)
HWND *hwnd_main; int WINAPI DllEntryPoint(HINSTANCE hInstance , DWORD fdwReason , PVOID pvReserved) { static HANDLE hMap; switch(fdwReason) { case DLL_PROCESS_ATTACH: hMap = CreateFileMapping((HANDLE)0xFFFFFFFF , NULL , PAGE_READWRITE , 0 , sizeof (HWND) , MAP); hwnd_main = (DWORD *)MapViewOfFile( hMap , FILE_MAP_WRITE , 0 , 0 , 0); break; case DLL_PROCESS_DETACH: UnmapViewOfFile(pdwUsers); CloseHandle(hMap); } return TRUE; } exeからSetMainHWND()を一回呼び出し *hwnd_main = hWnd といれているのですがうまくいきせん。(共有できてない?)
737 :
567 :2006/09/13(水) 14:30:47 BE:563493375-2BP(0)
やっぱいいや
APIというかマクロなんですが、 _WIN32_WINNT / _WIN32_WINDOWS / WINVER という定義、コレってたとえばWin95以上を指定したいとき _WIN32_WINDOWS / WINVER は別物で、両方に0x400以上として定義するんでしょうか それとも WINVER 0x400という定義だけで _WIN32_WINDOWS 0x400 _WIN32_WINNT 0x400 の両方の意味を持つようになるんでしょうか
739 :
567 :2006/09/13(水) 14:33:34 BE:477837465-2BP(0)
それはこちらから定義するものなのか?
740 :
567 :2006/09/13(水) 14:36:39 BE:563493757-2BP(0)
つーかどうでもいいからさっさと答えてくれ
>>739 あたりまえじゃねーか・・・
BCCだろうが何だろうがその辺は一緒だろ?
>>738 include ディレクトリを grep してみると、各マクロ値が、ばっらばらに使われているように見えた
743 :
567 :2006/09/13(水) 15:08:20 BE:254847528-2BP(0)
beまでつけて偽者乙
自分で努力した方がいいぞ
746 :
デフォルトの名無しさん :2006/09/13(水) 16:43:48
∧_∧ ●━● ( ゚д゚ )丿 フンッ! ●━●ノ/ / ノ ̄ゝ ( ゚д゚ ) Σn ⌒` γ´⌒`ヽ( E) ) . 人 .人 γ ノ ミ)こノこノ `ー´ )こノこ(
タスクバーにツールバーを追加・ドッキング(クイック起動とか言語バー)をすることが出来ますが、あれはどのようにやるのでしょうか? タスクバーにドッキングできるウィンドウが作成したいのです。 クイック起動をタスクバーから取り外すと単なるツールウィンドウなので、 ウィンドウのスタイル変えればできるとかそんなレベルなのでしょうか?
アレは独立したアプリケーションではなく、システム(エクスプローラかも)が作っている物だろうから 自分で作ったウィンドウを、ってのは無理じゃね?
752 :
747 :2006/09/13(水) 23:41:02
いいから早くやりかたおしえろや
最近どのスレでも、質問者の振りして煽りコメントする奴が増えたよなぁ。 同一人物?
BCCで作ったWinアプリを他の人にテストして欲しいのですが、 配布するのはReleaseフォルダの〜.exeだけでいいんでしょうか?
スレ違い
すいません。 BCC++スレかこっちかで迷ったもんで。
srcフォルダの*.c *.hだけでいいよ
どういう作り方をしたかによる。 スレ違いなのでBCC++スレの方がいい。
761 :
747 :2006/09/14(木) 03:47:15
自己解決しました
762 :
567 :2006/09/14(木) 05:29:35
事故解決しました
MFCにあってWin32APIにないものってありますか?
バグ
まじで?
>764 m9(^Д^)プギャー
767 :
デフォルトの名無しさん :2006/09/14(木) 10:26:47 BE:382269964-2BP(0)
質問の仕方が悪いと誰も答えない
769 :
デフォルトの名無しさん :2006/09/14(木) 10:53:57 BE:477837465-2BP(0)
え? 質問は普通でしょ?
スルーでよろしく
了解
772 :
デフォルトの名無しさん :2006/09/14(木) 12:13:21 BE:1019386188-2BP(0)
ごめんなさい 他の所で質問します。 ありがとうこざいました。m(__)m
773 :
567 :2006/09/14(木) 12:32:28
ごめんなさい あっちでもなかなか答えてくれないんです みんなけちくさいんですね やっぱおしえてくれませんかね?
775 :
デフォルトの名無しさん :2006/09/14(木) 12:59:24 BE:1146809489-2BP(0)
>>773 なんでこう邪魔するんですかね?
マルチになるのでこちらは断ったんですが
>>775 馬鹿はさっさとどっか逝け。帰ってこなくていいから
777 :
747 :2006/09/14(木) 13:15:09
>>749 うおー!感動。ありがとうございます!
>>748 レスサンクス!もれも最初そう思ったけど
Googleデスクトップというものが埋め込んでたんで出来るとおもたのですよ。
>>752 >>761 だれじゃモルァ
>>567 おまいさん、なんで自分が攻撃されてるか解ってないだろ。
・無闇にしつこくてウザイ
自分の質問が場を荒らしている事実に着目しない(≒空気読まない)
・自分の「解らない」という疑問点に固執し、柔軟性がない
・解らない解らないと連呼する割に、
自分で状況を打開しようとしている跡が見えない
・一つの方法で上手くいかなかったら、
他の方法を試してみる等の方法を取らない
・例えば、FileMappingに関しても、今のソースではなく、
それだけのテストソースでも書いて何がまずいのか調べる姿勢がない
・そもそも、あんたのやりたいことに関して、
本当にfileMappingが必要なのか?
779 :
587 :2006/09/14(木) 13:38:43
失敬、失敬
780 :
デフォルトの名無しさん :2006/09/14(木) 16:02:19
>>778 >・無闇にしつこくてウザイ
> 自分の質問が場を荒らしている事実に着目しない(≒空気読まない)
そんな事はありません。
>・自分の「解らない」という疑問点に固執し、柔軟性がない
解らないのだから仕方ないんです。
>・解らない解らないと連呼する割に、
> 自分で状況を打開しようとしている跡が見えない
打開しようとしてます。そのためにここに。います
>・一つの方法で上手くいかなかったら、
> 他の方法を試してみる等の方法を取らない
ではその方法を提示してください。
>・例えば、FileMappingに関しても、今のソースではなく、
> それだけのテストソースでも書いて何がまずいのか調べる姿勢がない
急いでいます。
>・そもそも、あんたのやりたいことに関して、
> 本当にfileMappingが必要なのか?
はい。
カエレ(・∀・)!!
釣ってる奴もそうだが釣られてる奴もいい加減ウザイ。 587で空気あぼーんしてる意味が無くなるんだが。 質問: 普通に起動した場合とファイルをドラッグで起動した場合で挙動が違うみたいなんですが、 内部で引数あるなしで分岐してたりしますか? 何故かテキストがファイルドラッグで起動した場合表示されないんですよね… ちなみに上記の問題の発生したプログラム、引数に関する処理は書いてないんですが、 今後引数を扱いたいプログラム書くときに困りそうなので…
カレントディレクトリ
784 :
567 :2006/09/14(木) 18:44:37
おいおい
>>782 さんよぉ
お前みたいにワザワザ反応してくれるからおれみたいな便乗荒らしでてくるんだぜ?
で、コピペだけで終わるような解答早く出してくれよw
自覚はあるんだ・・・
786 :
567 :2006/09/14(木) 21:24:16
えっ? (便乗)荒らしが喜ぶのは反応があるからだぜ? 自覚が無くて真性の天然だったらPC自作板の雑音みたいなねちねちした文章になるに決まってるがなw
787 :
デフォルトの名無しさん :2006/09/14(木) 21:25:44
日本語でおk
788 :
567 :2006/09/14(木) 21:25:47
おっと、567のフリをするのを忘れてたぜ 答えまだ?
789 :
567 :2006/09/14(木) 21:29:15
おっ
>>787 もワザワザおれに触ってくれるのか
答えまだ?
791 :
あさりちゃん :2006/09/14(木) 23:29:40
お邪魔します。質問です。 ごみ箱の中身を操作する方法ってありませんか? 同じ名前のファイルで、ごみ箱へ捨てた日付の古いものを 削除する処理を書きたいんですが・・・。
793 :
デフォルトの名無しさん :2006/09/15(金) 09:11:38
単純にゴミ箱を空にすることと、 ゴミ箱の中のファイル数を取ることなら、 比較的簡単に出来るが。 ゴミ箱内部のファイルを取るっつーと、どうすんだろうな? RECYCLERの中をFindFirstでつつき回すしかねーのかな?
>>794 SocialNetworkingService
>>794 SonnaKotoyoriChttoKiitekureyo1yo
>>794 ShokoShokoShokoshokoShoko
804 :
567 :2006/09/15(金) 22:31:52
806 :
567 :2006/09/15(金) 22:58:37
ゔ〲〰 乜勹〰スㄜㄝㄋ
Shine567
輝く567
まだいたのかww
よく見たら結構飛んでるし
>>794 ShellNameSpace
もうつまんねーよ
モニタの電源をOn/Offにするにはどうすればいいですか?
電源スイッチを押す
何も見えなくなった
糸冬 --------------- 制作・著作 NHK
GetKeyboardStateですべてのキーの情報を取ったときに、 押されていないのに最上位ビットが1になるキー(0xF0, 0xF3, 0xF6, 0xFB)があるのですが、 すべてのキーについて押されているかどうかを確かめるときはこれらのキーだけを特別に除いて処理してよいものなんでしょうか。 他の環境でもこうなるか分からないのです。
いいお^^
リソースの識別子に使われる数値ってのは上限いくつ? 65535?
ためしてみたら?
そう。符号無し16ビット値。
822 :
デフォルトの名無しさん :2006/09/17(日) 14:26:41
CreateProcessで xxx.exe を実行して、 WaitForSingleObjectで終了待ちした場合、 その xxx.exe の終了値は、どうやって取得できますか?
GetExitCodeProcess
ツールチップがクリックされたときに処理をしたい場合 サブクラス化するしか方法はないのでしょうか?
最近プログラムを書ける気に浸りたいアホがいるな 何一つ知らないボケはすっこんでろ
お前のこと?
知らないなら黙ってればいいのに かと言って面白いレスができるわけでもなく
830 :
macなんてクソじゃ〜〜 :2006/09/19(火) 00:26:04
はじめてきたがそして質問があるが不可能だと思うが・・・ 9x系のPCをどうにかしてMEか2000かXPにできんか?? もらいもんのPCをどうにかよみがえらしたい 出来れば金がかからん方法で
>>830 MEか2000かXPのCDを入れればアップグレード出来るんじゃないかな
つーか、9x系OSが死んでいるかのような、よみがえらせるという表現は如何な物か
9x系OSに謝れ!
あと、MEはやめとけ!
そんな素敵なAPI聞いたこともない
834 :
macなんてクソじゃ〜〜 :2006/09/19(火) 00:46:39
>>832 MEが悪いのは十分承知はっきり言って最悪一回買ったが重くて重くて ゲイツシンジマエヨとおもったな やはりROMが必要か・・・誰かからもらうかな
>>830 >>832 OSの必要スペック(CPU,メモリ)を満たしていないPCは、
インストールの時にメッセージか出て入れられなかった記憶があるよ。
2000の必要スペックは、Pentium133Mhz以上、メモリ32MB以上、HDD850MB以上の空き容量
だそうです。
MEのCDなら、友人などからタダで貰えるんじゃね? 今時MEなんて使わんだろうしw
ROMが必要、ってすげーな 普通CR-ROMをROMって訳すか? いやしくもプログラミングをしようとしている人間が、、、 と思ったが、どう見てもスレ違いじゃなくて板違い。 ただのPC初心者だろ。
837 :
macなんてクソじゃ〜〜 :2006/09/19(火) 01:13:22
>>885 マジでサンキュー たぶんXPのROMもらえるかも・・・ まぁ自分のPCのスペック見てみるわ
838 :
macなんてクソじゃ〜〜 :2006/09/19(火) 01:18:28
>>836 初心者じゃねえが厨房だぜ俺は
もうひとついうとプログラムは何個か作ったことがあるが・・・
簡単なのだがな一応プログラマ死亡だぞ
ただそんなことが出来ても知識がない俺だ・・・
スレタイを読むだけの日本語の知識もないんですね^^;
840 :
macなんてクソじゃ〜〜 :2006/09/19(火) 01:21:32
>>835 2000のスペックは十分足りるぞ新しいほうだからな
後はROMだけだな
841 :
macなんてクソじゃ〜〜 :2006/09/19(火) 01:22:53
>>839 国語3点の俺にいうなわかる分けなかろうが
…また前スレの荒れパターンか… 進歩がないというか…楽しい?
843 :
macなんてクソじゃ〜〜 :2006/09/19(火) 01:32:04
>>842 いや前スレには俺はおらんかったが・・
別人だろうそれに俺は荒らしにきたわけじゃないしの
>>835 XPの必要スペックはわらりませんかの??
お触り禁止><!!
つーか板違いだから
846 :
macなんてクソじゃ〜〜 :2006/09/19(火) 01:36:25
>>844 ・・・何が言いたい??
ようわからんぞ
847 :
macなんてクソじゃ〜〜 :2006/09/19(火) 01:37:39
848 :
835 :2006/09/19(火) 01:40:53
849 :
macなんてクソじゃ〜〜 :2006/09/19(火) 01:51:33
>>848 最後の最後まで迷惑かけたこれで俺は消えるぞ
釣られんなよバカども
851 :
567 :2006/09/19(火) 03:02:52
俺の仲間が来てたのか
他のアプリケーションによるウィンドウ生成を知る手段ってありますでしょうか 一定時間ごとにEnumWindowsなどで調べるくらいしか思いつかないです
WM_CREATEをグローバルフック
なるほど、サンクスです
C++のMFC無しで Font選択ダイアログと カラーダイアログ出すAPIって何ですか?
ChooseFont ChooseColor
857 :
ちん :2006/09/19(火) 20:52:02
■■■■■■■■■■■■■■■■ ■ ■ 違う板にコピペすると、四角の枠の中に ■ ■ メッセージとURLが現れる不思議な絵。 ■ ■ ■ ■ (その仕組みがリンク先に書いてある) ■ ■ ■ ■ この原理を応用すると、まったく新しい ■ ■ コピペが作れる予感。 ■■■■■■■■■■■■■■■■
Jane Styleのレスポップアップのウィンドウみたく 影付きでポップアップ表示してもアクティブにならない ウィンドウを作りたいんですが、どうすればよいでしょう?
影はOnPaintでやってるのはわかったが、 アクティブにならないウィンドウをどう作ればよいかわからない。 てか、デルファイよめねぇ・・・
WM_SETFOCUSが飛んできたら親に送り返してるだけじゃ?
//メインウィンドウからフォーカスを奪わないように設定 procedure TPopUpTextView.CreateWnd; begin inherited CreateWnd; Windows.SetParent(Handle, 0);/ /WinAPI CallWindowProc(DefWndProc, Handle, WM_SETFOCUS, 0, 0); //WinAPI end; XPで影を付けるのはCS_DROPSHADOWでググる
863 :
860 :2006/09/20(水) 00:31:36
どうもです!解決しました。
>>854 HCBT_CREATEをCBTフックのほうが効率いいと思われ
HCBT_CREATEWND
イベントオブジェクトがシグナル状態のときに待機し、非シグナル状態になったら制御を返す待機関数はありますか? あればその関数の名前を教えてほしいです
867 :
567 :2006/09/21(木) 09:50:22 BE:573405449-2BP(0)
Sleep(0) でどうだ
868 :
567 :2006/09/21(木) 10:00:42 BE:334486837-2BP(0)
それってシグナルになったら制御を返すんだから866の要求と逆だろ。
866のしたいこと分からんから正答ではないはずだが、素直に シグナル状態:待機、ノンシグナル状態:何もしない じゃ駄目なの?
c++でmfcなしwin32のみだとVS.NET2003-2005自身で使われているような新しい見た目のguiコントロールではなく、古臭いみためのコントロールしかつかえないのでしょうか?
このページのCreateFileの使用例について質問なんですが
http://www-higashi.ist.osaka-u.ac.jp/~k-maeda/vcpp/sec5-1file.html BCC だと winmainをmainに変えただけでビルド出来てテキストファイルもちゃんと出来たのですが
VCEEでビルドすると
c:\documents and settings\my documents\visual studio 2005\projects\ctet\test\drawpixel.cpp(14) : error C2664: 'CreateFileW' : 1 番目の引数を 'const char [9]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
というエラーになります
エラーメッセージが指している行はこれです
hFile = CreateFile( "hoge.txt", GENERIC_WRITE, 0, NULL,
どうしたらいいのか教えてください
とりあえず踊ってみるといいよ
c++でmfcなしwin32のみだとVS.NET2003-2005自身で使われているような新しい見た目のguiコントロールではなく、古臭いみためのコントロールしかつかえないのでしょうか?
>>873 プロジェクトの設定で、文字セットを変更する
>>876 文字セットの設定ををマルチバイトに変えたら出来ました
ありがとうございました
本当は TEXT("hoge.txt") か、
tchar.h をインクルードして _T("hoge.txt") と書くべきなんだが、
まあいいや。
>>875 MSDNで 'Visual Styles' を検索。
877は、何故それで問題が解決出来たのか分かっているのだろうか・・・
880 :
866 :2006/09/21(木) 14:25:25
>>867-871 ないんですねorz
素直にこんな感じにしておきます
while(WaitForSingleObject(event, 0) != WAIT_TIMEOUT)
Sleep(50);
>>880 何故シグナルで待機にするんだ?
排他制御なのか?
>>881 所有権を獲得しないわけだから、排他制御には使えないような気がする。
何かのフラグ的にシグナル状態を参照しつつ待ちたいだけと見た。
あるいは (誤って) Mutex の代わりに使おうとしているとか。
>>866 何をやりたいのか、もっと具体的に書けばアドバイスできるかもしれんが。
待機するイベントは何なのかとか。何の目的でそんなことしようとしているのかとか。
884 :
866 :2006/09/21(木) 16:53:45
もう解決したのでいいです。
885 :
866 :2006/09/21(木) 17:12:36
>>881-882 排他処理ではないです
>>883 866のような待機関数がないということは一般的には必要ではないってことだと思うので
違う方法を探しつつ自力もうちょっとがんばってみます
どうしてもダメそうだったらまた聞きにくるかもしれません
そのときはよろしくお願いします
886 :
デフォルトの名無しさん :2006/09/21(木) 21:15:49
さるさる日記 - きっこの日記
http://www3.diary.ne.jp/logdisp.cgi?user=338790&log=20060921 ■2006/09/21 (木) 安倍晋三が改憲を急ぐワケ 1
フリーライターの西山澄夫さんが発行しているML、「週刊オルタ」に、驚愕のニュース
が掲載されていたので、西山さんに転載の許可を得た上で、以下、掲載する。
「速報」
2005年10月25日、26日、ブッシュの支持基盤であるネオコン派の政治家、知識人が
集まるワシントンの政策研究所、AEI・アメリカン・エンタープライズ・インスティ
テュートが主催して、日本の国会議事堂裏のホテル、キャピトル東急で、
「政策研究集会」が開かれた。テーマは、「日本と中国を、どのようにして戦争に
突入させるか、そのプラン作り」である。
参加者はAEI所長クリストファー・デムス、次期総理・安倍晋三、鶴岡公ニ
(外務省、総合外交政策局審議官)、山口昇(防衛庁、防衛研究所副所長、陸将補)、
民主党・前党首・前原誠司、その他自民、民主の複数の議員。
テーマは「有事、戦争に、どう対処するか」では無く、
「中国と日本を、どのようにして戦争に持って行くか」である。
以上は裏付けが取れた正確な情報である。
以下は裏付けの取れていない未確認情報(裏付けの取りようがない)である。
今後2年前後に、日本海側の都市に、「米軍の」ミサイルを着弾させ死傷者を出さ
せ、それが北朝鮮からのものである、とマスコミ報道を行い、一気に日本国内の
世論を戦争賛成、治安維持体制に持って行く、また京都、大阪付近で新幹線の
爆破テロを起こし世論を戒厳令体制、戦争賛成方向に誘導する(テロは米軍と
自衛隊の共同作戦で実行し、イスラム原理主義または北朝鮮のテロと報道する)。
VC++で、NOTIFYICONDATA構造体を記述すると「定義されていないエラー」が突然出るようになりました。 shellapi.hをインクルードすればエラーの解決出来るのですが、原因が分かりません。 分かる方いらっしゃいましたら教えて下さい(T_T)
( ゚д゚)
>>887 それやばいよ!やばいよやばいよ!
shellapi.hをインクルードしなくちゃ駄目になった?!
あーあ……
最初は構造体を記述していてもエラーがでなかったが あるときを境に突然エラーが出るようになったってことかと思ったがよく読んだら違ったorz
891 :
887 :2006/09/21(木) 22:30:45
>>890 さん
その通りです(T_T) 突然エラーが出るようになってしまい、現在はshellapiヘッダをインクルード駄目になってしまいました。
>>891 確認
shellapi.hをインクルードして、コンパイルは通ったんですよね?
893 :
887 :2006/09/21(木) 22:44:38
はい shellapi.hをインクルードすればコンパイルは通ります(^^;
894 :
887 :2006/09/21(木) 22:48:13
>>891 の投稿の誤りを訂正します
(誤) 現在はshellapiヘッダをインクルード駄目になってしまいました。
(正) 現在はshellapiヘッダをインクルードしないと駄目になってしまいました。
すみません(^^;
まぁ修正前のどこかのヘッダが 間接的にshellapiをインクルードしてたってオチかと
以前は、何かのヘッダファイルから間接的にshellapi.hがインクルードされていたが、 現在はそのヘッダを使っていないから。 というオチじゃない?
897 :
887 :2006/09/21(木) 23:00:45
ありがとう御座いました。
>>895 さん
NOTIFYICONDATA構造体をshellapi.hのインクルード無しで
定義出来た同じプログラムを書いてみて様子を見てみます。m(_ _)m
どこかで#includeされたりされなかったりで悩むくらいなら 素直に#includeすればいいのに。
>>897 VC++なら/showIncludes
901 :
887 :2006/09/21(木) 23:17:05
「突然」の原因が気になったので質問させて頂きましたm(_ _)m
>>898 >>899 インクルードの記述に抵抗があったり、それをしたくないわけではありません。
>>900 さん サンクスです。
僕は変数宣言に抵抗があります><;
同じ名前の構造体やtypedefがあちこちにあるとイラつきます windowsのヘッダは本当にイヤです
おれおれヘッダ
僕はWIN32APIに抵抗がある
たまにLinuxやるとイライライライラしてWin32が恋しくなる。
Win32APIは引数がおおすぎんだよコンチクショー!
LPVOID pReserve ※常にNULLを指定してください
>>909 それ見るとほっとする。
ああNULLを渡しときゃいいんだって
>>908 C++なら再宣言して、その際にデフォルト引数を付けることができるよ。
本当に癇癪起こりますね
C++でMFCを使用しないでWin32のみでVS.NET2003とか2005自身が表示している GUIコントロールなどは利用できないのでしょうか? ※ツールバーとかメニューバーとか・・ Win32だけだと見た目が古くさいコントロールしかつかえないんですが・・
とりあえず踊るといいよ
917 :
567 :2006/09/22(金) 06:37:29
∧_∧ (´・ω・`) (( ( つ ヽ、 〉 とノ ) )) (__ノ^(_) ∧_∧ (ヽ´・ω・`) ヽ、 ヽ 〉 U (__)^ヽ__)
918 :
567 :2006/09/22(金) 06:38:27
∧_∧ (´・ω・`) ノ ⊂ ) )) (( ( ヽ'つ〈 (_)^ヽ__) ,.-─- 、 ∧_,,∧\●/ /\ (`・ω・´)∩‐ | ● ⊂ / ヽ/ r‐' / `""ヽ_ノ
919 :
デフォルトの名無しさん :2006/09/22(金) 06:51:14
|┃三 ガラッ |┃ ____ ____ ____ |┃/⌒915⌒\ / 866 \ /⌒567⌒\ |┃( >) (<)\/ \/( ●) (●) \ ――‐.|┃:⌒(__人__)⌒::::: \ ⌒ ⌒ \:⌒(__人__)⌒:::::\ えへへっ |┃ /| | | | | |⌒)(__人__) /// |⌒)|r┬-| |⌒) みんなで遊びに来たお! |┃ `ー―'´ // // `ー'ォ // (⌒ヽ  ̄ /  ̄ /  ̄ / |┃ノ / / / |┃ つ < つ < つ < |┃ (::)(::) ヽ (::)(::) ヽ (::)(::) ヽ |┃/ > ) / > ) / > ) |┃ (__) _) (__) _) (__)
まだいたのか567 ほんとム板マ板は地獄だぜ
エディットボックスコントロールについてです。 EM_GETFIRSTVISIBLELINEメッセージで現在の垂直方向のスクロール行位置を取得できますけど 水平方向のスクロール行位置を取得するにはどうすればいいですか? 何をしたいかと言うと、スクロール座標を保存しておいて後で EM_LINESCROLLメッセージを使ってその座標を再び表示したいのです。
GetScrollInfoでいいんじゃないんかな。知らんけど。
>>923 GetScrollInfo&SetScrollInfoでスクロールバーを直接操作してもエディットボックスは内部でスクロール座標を保存してるみたいで
更新したりすると元の位置に戻されるみたいです。
どうやらEM_LINESCROLLを使わないとダメっぽいのですが・・・
>>924 EDITコントロールの内部のスクロール処理はWM_VSCROLL,WM_HSCROLLを捕まえて
行われているので、SetScrollInfo()じゃダメ。
取得するときはGetScrollInfo()を使って
設定するときはWM_VSCROLL,WM_HSCROLLをSendMessage()してやればいい。
>>925 そうなのですか。やってみます。ありがとうございました。
927 :
デフォルトの名無しさん :2006/09/23(土) 15:31:10
WIN32APIが分かる書籍でお勧めのものは何がありますか?
猫でも行っとけ
929 :
927 :2006/09/23(土) 15:32:56
猫はもう読みました
930 :
567 :2006/09/23(土) 15:43:51 BE:286702463-2BP(0)
567が930get
>>927 MSDNは読んだ?
君が解らないWin32APIは、どんな分野なの?
個人的には、APIが「解る」「解らない」という分類自体が、
俺には解らないんだが。w
必要なら調べて、その通りに書けば、大体動くだろ?
932 :
927 :2006/09/23(土) 15:50:08
>>931 ありがとうございます
msdnというもので調べてみます
自分はどの分野が分からないというわけではなくもう少し詳しいことに関して読んで
みたいと思っただけです
MSDNは英語版読んだ方がいいよ。詳しく書いてある。
APIは基本的に時間を取って学ぶものではない。 数が多すぎて現実的ではない。 必要になったらそのたびに調べる。頻繁に使うようなら自然と覚えていく。
プログラム書くだけならアホでもできる。 使い物になるソフトを作るのはアホにはできない。
>>935 つまり使い物になるプログラムを書くやつはあほではないということか?
俺はアホではないので安心した
できればただ使い物になればよいというだけでなく、 なるべく読みやすいコードを書くように心がけてほしい。
俺読みやすいコード書けてないや
オレも…でも、オープンソースのコード見ても大して読みやすくないから いいと思うんだが…
潔癖性の人は部屋の片付けができないからね
激しく脱線してるなこのスレ
943 :
567 :2006/09/23(土) 20:43:58
(´∀`)呼んだ?
944 :
567 :2006/09/23(土) 22:55:24 BE:95567832-2BP(0)
↑呼んでないよ
945 :
デフォルトの名無しさん :2006/09/23(土) 22:57:00
ダメです。
WM_TIMERをクリティカルセクションで保護出来ないのですが何故ですか? case WM_TIMER: EnterCriticalSection(&hoge); MessageBox(...); LeaveCriticalSection(&hoge); break; メッセージボックスは一つずつ表示されると期待したのですが、次々と表示されてしまいます。 良い解決方法を教えてください
MessageBoxの中でメッセージループが回って、そこから同じスレッドでWM_TIMERに 再入するから。 クリティカルセクションは同一のスレッドなら何度でも獲得できる。 同じスレッドだから同期オブジェクトを使う意味はない。単純なフラグで 判定すれば十分
本当にMessageBoxの表示中もタイマを有効にしておく必要があるのでなければ KillTimer(...); MessageBox(...); SetTimer(...);
PostMessageで送信したメッセージが処理されるまで待機したいのですがどうすればいいですか? (SendMessageだとPostMessageとの挙動の違いからかメッセージがうまく送信できないんです)
>>950 メッセージはよそ様のウィンドウに送信しています。
CreateEventで作成したイベントでウェイトするということですか?
しかしどのように・・・?
イベントでも待てば。
Win32APIの関数どれだけあるんだよ!! 覚えるのマジでしんどい('A`)
全部覚えるつもりかw
Aから順に覚えていったら? Get〜やSet〜で死ぬと思うけどw
949はWM_KEYDOWNを他のアプリケーションに対して送ろうとしていると予想。
俺もメッセージが処理されるのを待つ方法があるなら知りたいな。
>>953 覚える必要は無い。使うときに調べながら使うもの。
でも、どんなAPIがあるのかは一通り全てに目を通しておくべき。
>よそ様のウィンドウ こんなんじゃ分からない。 状況によってCEvent, CSemaphore, CMutex, CCriticalSection のいずれかを選ぶ。 MSDN - マルチスレッド : 同期クラスの使い分け を参照
957はMFCだけどAPIにもだいたい同じようなのがある。
検索 win32api 一覧
PostMessageで送る先のウィンドウは自身で作ったプログラムではない (のでソースをいじれない)ということは考えられないだろうか?
よそ様のウィンドウ、って言ってるからそうなんだろう。
よそ様のプログラムのソースいじる必要なんてないだろ
963 :
デフォルトの名無しさん :2006/09/24(日) 15:08:18
現在のネットワーク使用率調べる方法ある? タスクマネージャみたいな。
パフォーマンスカウンタ
オレ、引数までちゃんと覚えてるの、 SendMessage/PostMessage MessageBox GetDlgItem SetWindowPos ShowWindow くらいしかないぞ。 あとは必要なときにMSDNで調べるか、VCがツールチップで出してくれるし。
966 :
567 :2006/09/24(日) 22:03:05 BE:191135726-2BP(0)
がんばれ
OutputDebugStringは余裕で覚えてるな
ExitProcess/Threadも単純でわかりやすい。 ただし滅多に使わないけどな。
えーとね、IsWindowは覚えてる
wsprintf,lstrlen,lstrcatくらいなら
GetWindowTextLength なら完璧に覚えてるぜ!
オレには……なにも、ない。
俺はGetTickCount、timeGetTimeの引数なら完璧に覚えてる。
ShowWindowは何とかなるかな。 誰かCreateFont完璧な奴いるか?w
CreateFontIndirectなら完璧w。 なお、LOGFONTの中身はさっぱり。 そういえばGetCommandLineもわかりやすい。
BitBltは完璧
DestroyWindowは完璧 で、何この流れ?
Co/OleInitialize/Uninitializeもいいぞ。 IUnknownのメソッドも完璧。 _com_ptr_tとかATL::CComQIPtrで出番ないけどな。
そうですか
WinMainなら・・・。だれでも最初に見るだろうし
むしろint main()で/SUBSYSTEM:WINDOWS。
次スレまだぁ?
983 :
(´・д・`)DOn'03 ◇JcpHA18Tqs :2006/09/25(月) 08:37:54
まだ
俺が立ててもいいが
無理でした
じゃあ俺立ててくる
お願い
988 :
986 :2006/09/25(月) 13:15:52
無理でした('A`)
989 :
567 :2006/09/25(月) 13:15:55
はやくしろ
991 :
デフォルトの名無しさん :2006/09/25(月) 13:49:55
梅
editのスタイルに関して質問です。 ES_NUMBERだと実数が扱えない(-とか.とか)んですが、 実数のみに制限できるスタイルってありますか?
ないあるよ
ってことは自分で入力制限しないとだめなのか…orz ありがとうございました
あるのかないのかはっきりしなさい
ないアルヨ!
北斗の拳かよ
SHLimitInputEdit スタイルじゃないし、使ったこと無いけど。
>>998 ぐぐったら2件しかないw
とりあえず調べてみます
999
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。