■過去ログ置き場に戻る■
1-
前250
次250
最新50
[memo]
"9999999999_00.html#R20"
という感じで、URLの最後に "#R
レスNo
" を追加すると幸せになれます。
Win32API質問箱 Build16
751
名前:
デフォルトの名無しさん
:04/02/13 10:39
マルチのときとかな
752
名前:
高校生
:04/02/13 16:40
以前このスレで、
GetKeyState()が9x系で動かないと言いましたが、
また9x系でうまくいかない事がありました。
それは、Ellipse()です。
この関数を使って、ウインドウに楕円を描いています。
NT系でプログラムを実行すると、普通に楕円が描かれています。
ところが、9x系の場合、どうも描画が奇妙なのです。
どう奇妙かと言うと、
描画した円をまわりの部分が、
つまり円の左、右、上、下を囲む長方形部分が、
まるでファミコンがバグったように、砂嵐のように、塗りつぶされてしまうのです。
なにがいけないのでしょうか?
753
名前:
デフォルトの名無しさん
:04/02/13 16:56
プログラムが悪い
754
名前:
高校生
:04/02/13 17:13
NT系では普通に動くんですが……。
Win98の友達に指摘されたんです。MEでも同じ症状が出ました。
NT系では今のところ、どれでも普通に動いています。
で、不思議な事に、不具合がでるPCとそうでないPCがあるのです。
学校にもWin98とWin95があったので試してみたのですが、
まったく問題なく動きました。
XPしか持ってないから、問題を三軒できないんです
755
名前:
デフォルトの名無しさん
:04/02/13 17:28
>>752
ドライバ
756
名前:
デフォルトの名無しさん
:04/02/13 17:37
>>752
> で、不思議な事に、不具合がでるPCとそうでないPCがあるのです。
> 学校にもWin98とWin95があったので試してみたのですが、
> まったく問題なく動きました。
のに、たまたまNT系である自分の環境で動くと
> 9x系でうまくいかない
> 9x系の場合、
とか勝手に決め付ける頭の悪さ
757
名前:
デフォルトの名無しさん
:04/02/13 17:49
互換モードでデバッグしたか?
758
名前:
デフォルトの名無しさん
:04/02/13 21:32
Windows 2000/NT のソースコードがネット上に流出
http://www.faireal.net/
759
名前:
デフォルトの名無しさん
:04/02/13 21:35
API関連だと思うので質問させていただきます。
cgiにフォームに記入してボタンを押した時のように、データを渡したいんです。
GETのようにアドレス(/hoge.cgi?data=onigiri)でわたすのでなく、
POST形式でデータで渡したいのです。
MFCを使うと簡単らしいので使ってみました。
CInternetSession
CHttpConnection
CHttpFile
使うことがわかりました。
openRequest(CHttpConnection::HTTP_VERB_POST,
SendRequest or Ex
使うこともわかりました。
(HTTP_VERB_GET形式でファイル取得も成功しました。)
でも、POST時のその前後の
WriteString等で渡すデータの渡し方の形式がわかりません。
どのような形式で渡せばいいのでしょうか?
ご教授ください。
760
名前:
デフォルトの名無しさん
:04/02/13 21:39
>>758
ぅぁぁ
純粋Cだ
ソースほしい。
めっさほしい。
どこにありますか?
もうないですか?
§,; ________§; ,
|| §; / § ヽ ||
|~~~§~ §'~~~~~~~| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ____§/"""ヽ,§_____ | < Winnyで流してください。
|__|///(§ §)ノ////|__|///\________
⊆___)///ゝ___§ノ/////(____⊇////
///////////////ジュ〜////////////
/////////////////////////////
761
名前:
デフォルトの名無しさん
:04/02/13 21:44
>>759
ttp://www.assist.media.nagoya-u.ac.jp/ASDP/aswiki.cgi/HTTP/POST
762
名前:
デフォルトの名無しさん
:04/02/13 21:45
winsockのソースチェックしたいな。
763
名前:
デフォルトの名無しさん
:04/02/13 21:49
>>758
なんか、すごくまともなソースだな。
コーディング規約とかもきっちりしてそうだし。
764
名前:
デフォルトの名無しさん
:04/02/13 21:52
>>763
でも何故pureCなんだ?
普通C++だろうに。
流石M$だな。
765
名前:
デフォルトの名無しさん
:04/02/13 21:54
>pureC
違うだろ
766
名前:
デフォルトの名無しさん
:04/02/13 21:58
もともと一部の大学や政府機関には開示してたんでしょ?
そういうとこに所属してて、「見まくってますが何か?」って香具師はおらんの?
767
名前:
デフォルトの名無しさん
:04/02/13 21:59
おりますが何か?
768
名前:
デフォルトの名無しさん
:04/02/13 22:04
マイクロソフトのソースを見たけりゃ
MFCのソースを見るがいいさ
769
名前:
デフォルトの名無しさん
:04/02/13 22:06
cppも混ざってますね。
770
名前:
デフォルトの名無しさん
:04/02/13 22:06
>>768
いやレベルが全然違う
771
名前:
デフォルトの名無しさん
:04/02/13 22:06
>>758
ウィンドウの矩形が画面の外だったら、ってのを
MonitorFromRect(&m_rcWindow, MONITOR_DEFAULTTONULL) == NULL
とスマートに書いてるね。参考になる。
772
名前:
デフォルトの名無しさん
:04/02/13 22:16
いろいろ面倒なんでできるだけ流出コード貼らんでほしいんだが。
773
名前:
デフォルトの名無しさん
:04/02/13 22:20
>>772
ケチケチするなよMS
774
名前:
デフォルトの名無しさん
:04/02/13 22:22
専用スレ立てようぜ。
テンプレ↓
Windows 2000/NT のソースコードがネット上に流出
http://www.faireal.net/
Neowinがつかんだのはショッキングで、ことによると破滅的なニュースだ。
ネット上にWin2000とWinNTのコードが流通しているというのだ。
現時点ではコード全体がリークしたのかどうか不明だが、コンパイルしてみれば分かるというものだ。
Microsoft からのコメントはまだない。公式には未確認である。
ソースは200MB少々のアーカイブで解凍したら600MBくらい。
全体がリークしたのではない可能性が高い。
ソース全体は約40GBだろうとCNET。つまり本当だとしても、ごく断片がリークしただけらしい。
ただし1GBの書庫も出回っており、本当にどのくらいリークしたのかは未詳。
775
名前:
デフォルトの名無しさん
:04/02/13 22:23
これからどれくらい増えるか楽しみだな
全言語のページからWindows ソースコード 流出を検索しました。 約1,920件中1 - 100件目 ・検索にかかった時間0.33秒
776
名前:
デフォルトの名無しさん
:04/02/13 22:51
もうスレたってるよ
http://pc2.2ch.net/test/read.cgi/tech/1076661779/
777
名前:
デフォルトの名無しさん
:04/02/13 22:58
ソースって、M$社員になったらみんな見れるのかね。
778
名前:
デフォルトの名無しさん
:04/02/13 23:14
>>777
MSじゃなくても見れるよ。
779
名前:
デフォルトの名無しさん
:04/02/14 00:03
Win2000やXPでLANケーブルを外したり接続するとタスクトレイに
吹き出しが出るようになってるんだけど、その時のイベントって
何のイベントが発生してるか教えてくり。
780
名前:
デフォルトの名無しさん
:04/02/14 00:23
監視してるだけじゃないの?
781
名前:
デフォルトの名無しさん
:04/02/14 00:45
WM_USER+3147 ってのが通知メッセージかね?
Spy++でモサモサと飛んでるの見えるけど。
782
名前:
781
:04/02/14 00:46
ゴメン。勘違いだった。寝ようかな…。
783
名前:
デフォルトの名無しさん
:04/02/14 03:11
WM_DEVICECHANGEは使えんかな?
784
名前:
デフォルトの名無しさん
:04/02/14 03:29
LANケーブルはずすと、イベントビューワに表示されるから
その辺のAPIで何とかなるのでは?
785
名前:
デフォルトの名無しさん
:04/02/14 04:34
しょうもない質問かもしれませんが聞いてください。
ウィンドウプロシージャをクラスに内包しようとしてたとえば下記のようなものを作りました。
class Window {
Create();
static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK WindowProc(HWND, UINT, WPARAM, LPARAM);
}
CreateのときにWNDCLASSEX構造体のcbWndExtraにsizeof(Window*)、CreateWindow
の最終パラメータにthisを渡し、WndProc関数内で
Window* pWindow = (Window*)GetWindowLong(hWnd, 0);
if (pWindow == NULL) {
if (msg == WM_CREATE) {
pWindow = (Window*)((LPCREATESTRUCT)lParam->lpCreateParams);
SetWindowLong(hWnd, 0, (LONG)pWindow);
} else {
return DefWindowProc(省略);
}
pWindow->WindowProc(省略);
}
WM_CREATE直後にプログラムが応答しなくなります。
SetWindowLongの失敗を疑ってSetLastError(0)してからGetLastErrorでチェックしてみたの
ですが一応正常に処理できているようです。
どこか直すべき点がありますでしょうか?
786
名前:
デフォルトの名無しさん
:04/02/14 05:40
RegisterClassで拡張ウインドウメモリは確保してるのか?
これでもいけると思う。
Window* pWindow = (Window*)GetWindowLong(hWnd, GWL_USERDATA);
if( !pWindow ) {
pWindow = (Window*)lpcs->lpCreateParams;
::SetWindowLong( hWnd, GWL_USERDATA, (LONG)pWindow );
}
787
名前:
785
:04/02/14 06:03
>>786
WNDCLASSEX wcex;
wcex.cbWndExtra = sizeof(Window*);
の指定をしてRegisterClassEx(&wcex)してあります。
GWL_USERDATAを指定してみてもだめでした…。
if (msg == WM_CREATE) をはずすとAccessViolationが発生してしまいます。
(これは当然のような気がします)
うーん、クラス化はあきらめてゴリゴリ書くしかない…か。
788
名前:
デフォルトの名無しさん
:04/02/14 07:54
WndProc全体が書いてないからもう何とも言えん。
ブレークポイント仕掛けて追うのがいいと思うよ。
789
名前:
デフォルトの名無しさん
:04/02/14 07:55
>>787
なあ、デバッガー持ってないわけ?
790
名前:
デフォルトの名無しさん
:04/02/14 09:08
>>785
if文がどういう繋がりか見づらいね...
自分は下記のようにしているよ。
if (WM_NCCREATE==uMsg) {
LPCREATESTRUCT pcs = (LPCREATESTRUCT)lp;
CWnd* Wnd = (CWnd*)pcs->lpCreateParams;
::SetWindowLong(hWnd,GWL_USERDATA,(LONG)Wnd);
Wnd->hWnd = hWnd;
}
CWnd* Wnd = (CWnd*)::GetWindowLong(hWnd,GWL_USERDATA);
if (NULL==Wnd) {
return ::DefWindowProc(hWnd,uMsg,wp,lp);
} else {
return Wnd->DispatchEvent(hWnd,uMsg,wp,lp);//WindowProc(関数名が違うだけ)
}
791
名前:
790
:04/02/14 09:12
うわぁ。
半角スペースが意味ないようなので全角スペースで字下げ。
if (WM_NCCREATE==uMsg) {
LPCREATESTRUCT pcs = (LPCREATESTRUCT)lp;
CWnd* Wnd = (CWnd*)pcs->lpCreateParams;
::SetWindowLong(hWnd,GWL_USERDATA,(LONG)Wnd);
Wnd->hWnd = hWnd;
}
CWnd* Wnd = (CWnd*)::GetWindowLong(hWnd,GWL_USERDATA);
if (NULL==Wnd) {
return ::DefWindowProc(hWnd,uMsg,wp,lp);
} else {
return Wnd->DispatchEvent(hWnd,uMsg,wp,lp);//WindowProc(関数名が違うだけ)
}
792
名前:
デフォルトの名無しさん
:04/02/14 09:32
>>785
こらこら、気は確かか?(w
もまいはmsg==WM_CREATEのときにpWindow->WindowProc(省略)を実行しているわけだが
793
名前:
デフォルトの名無しさん
:04/02/14 10:17
俺はこんな感じにしてるけど、問題なくいけてる。
LRESULT CALLBACK base_Window::initWindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
if (uMsg == WM_CREATE)
{
base_Window *this_ = (base_Window *)((LPCREATESTRUCT)lParam)->lpCreateParams;
::SetWindowLong(hwnd,0,(long)this_);
::SetWindowLong(hwnd,GWL_WNDPROC,(long)staticWindowProc);
return this_->WindowProc(hwnd,uMsg,wParam,lParam);
}
return ::DefWindowProc(hwnd,uMsg,wParam,lParam);
}
ところで
>785
>WM_CREATE直後
って具体的にどこやねん。
そこを教えて貰わんと判らんのとちゃうんか?
794
名前:
デフォルトの名無しさん
:04/02/14 10:45
>>785
>>788
も言ってるけど、WndProc全体を書いたほうがいいと思うよ。
あれだけから判断すると、pWindow==NULLの時しか処理してない気がするんだけど。
795
名前:
785
:04/02/14 17:29
沢山のレスありがとうございます。
WndProc全体はこんな感じになります。
LRESULT CALLBACK Window::WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
Window *pWindow = (Window*)GetWindowLong(hWnd, GWL_USERDATA);
if (pWindow == NULL) {
if (uMsg == WM_CREATE) {
pWindow = (Window*)(((LPCREATESTRUCT)lParam)->lpCreateParams);
SetLastError(0);
if (SetWindowLong(hWnd, GWL_USERDATA, (LONG)pWindow) == 0) {
ReportError(hWnd, GetLastError());
}
} else {
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
}
return pWindow->WindowProc(hWnd, uMsg, wParam, lParam);
}
796
名前:
785
:04/02/14 17:32
WM_CREATE直後というのは、GetWindowLongの手前に簡単なメッセージボックス
を出させるようにしていたのですがpWindow->WindowProcでWM_CREATEを実行
した後応答なしになってしまいます。
うーん、デバッガいりますね…探してきます。
797
名前:
デフォルトの名無しさん
:04/02/14 20:31
>>796
VC++とか使ってないの?
798
名前:
785
:04/02/14 20:36
>>797
いや、使ってないんですよ。
Digital Mars C++にPlatformSDKつっこんで使ってるんで…。
799
名前:
デフォルトの名無しさん
:04/02/14 20:44
>796
だから
>pWindow->WindowProcでWM_CREATEを実行
の部分をを晒せと。
800
名前:
デフォルトの名無しさん
:04/02/14 21:10
【アップローダー==ラウンジ】
(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
801
名前:
デフォルトの名無しさん
:04/02/14 21:25
>>799
Window::WindowProc()側に問題があるのでは?ということですか。
たしかにuMsg==WM_CREATEが成立した場合、呼び出しますね。
802
名前:
785
:04/02/14 21:48
>>799
ごめんなさい、そっちを疑っていませんでした…。
WM_CREATEでTimerIDを作る部分で無限ループに陥っているんだと思います。
大変申し訳ありませんでした。
case WM_CREATE:
SetWindowRgn(hWnd, NULL, TRUE);
AnimateWindow(hWnd, 1000, AW_SLIDE | AW_VER_NEGATIVE);
while (SetTimer(hWnd, m_nTimerID, 15000, NULL)) { //ここから3行が問題
m_nTimerID++;
}
break;
ということでこの3行を削ることで解決しました。
問題が変わってしまいましたが、正しくはm_nTimerIDが初期化されているとして
while (!SetTimer(hWnd, m_nTimerID, 15000, NULL)) {
m_nTimerID++;
}
こうですよね?(SetTimerは失敗すると0を返す)
くだらない質問に長々とつきあって頂いてありがとうございました。
もっと精進してきます。
803
名前:
779
:04/02/15 01:07
>783
ん〜WM_DEVICECHANGEやったけど、呼んでくれんかった。。はふー。
804
名前:
779
:04/02/15 02:19
IP HELPER APIでLANが外されてるか接続されてるかは取得できる事は
わかったのだが、出来ればイベントで拾いたいな。
監視するのはアホらしいし。
805
名前:
デフォルトの名無しさん
:04/02/15 02:50
ファイルのハードリンクを作りたいんですけど、どうすればいいのですか?
806
名前:
デフォルトの名無しさん
:04/02/15 03:22
('A`)ノ 今日知った事〜
アップダウンコントロールに WS_CLIPSIBLINGS をつけて
任意のエディットコントロールを buddy としてセットすると
エディットコントロールの右辺のラインがうまく隠れなくて
ちょっと不恰好に表示される。
ワタスの貴重な2時間が消えて行った…… ('A`;)ノ
807
名前:
デフォルトの名無しさん
:04/02/15 10:39
>>805
NTFSならくりえーとはーどりんく
FATならセクタを直接書き換えてクロスリンクさせる → chkdskでギルティ
808
名前:
高校生
:04/02/15 12:34
>>752
NT系では普通に動く。
9x系だと動作が変。(周りが砂嵐)
互換モードで試したが、問題が再現しない。
809
名前:
デフォルトの名無しさん
:04/02/15 12:41
>>752
ビットマップは作成してから初期化するまで各ピクセルは不定値という仕様になっている。
9x系の挙動が典型的、NT系の挙動は不定値がある事情により0=黒なだけ。
810
名前:
デフォルトの名無しさん
:04/02/15 19:24
じゃあやっぱりなんでもかんでも9xのせいと決め付けるアホのせいで
>>753
が正しいということね
811
名前:
デフォルトの名無しさん
:04/02/16 01:27
>>809
「ある事情」ってのがすごく気になる。
セキュリティとか?(他プロセスが使ってたデータが残ってたりとか)
812
名前:
779
:04/02/16 03:39
あーーー駄目だ。マジでもうわかんねー。誰かおせーてくれや。
813
名前:
デフォルトの名無しさん
:04/02/16 06:18
監視すれ
CD-ROMドライブのトレイの開け閉めは、ドライブ側から通知してくれているものだと
思ったけど、調べたらOS側からSCSIコマンドを一定期間で送ってドライブの状態を
得ているだけだった。
814
名前:
デフォルトの名無しさん
:04/02/16 20:24
>>811
ぴんぽん
815
名前:
デフォルトの名無しさん
:04/02/17 11:32
IEに貼り付けるムービープレイヤのActiveX作ってるのですが、
IE側でスクロールするとちらついてしまうので
その間は描画を止めたいと思っています。
IEのスクロールを検知するにはどうしたらよいのでしょうか。
システムフックするしかないのでしょうか?
816
名前:
デフォルトの名無しさん
:04/02/17 11:40
>>575
817
名前:
デフォルトの名無しさん
:04/02/17 12:06
WinMainのlpCmdLineのコマンドライン引数をCommandLineToArgvWで
argv形式に変換した場合
lpCmdLine (NULL)c:\document and settings\(いろいろ...)
argv[0] c:\document(NULL)
argv[1] and(NULL)
argv[2] settings\(いろいろ...)
みたいな感じで分けられてしまいます
lpCmdLine++;
wcscpy(my_path,lpCmdLine);ってやると大体出せます
だけどなぜかコマンドプロンプトで引数付きで呼び出すと自分のパスが取り出せません
WinMainとは違ってなんかややこしいです
どうしたら正確な自分のパス名を引き出せますか?
818
名前:
デフォルトの名無しさん
:04/02/17 12:17
GetModuleFileNameは?
819
名前:
デフォルトの名無しさん
:04/02/17 13:35
>>817
マルチポストしたわけは?
820
名前:
デフォルトの名無しさん
:04/02/17 16:40
他のアプリケーションのボタンのキャプション変えたり、フォント変えたりするのは
SendMessageでいける?
821
名前:
デフォルトの名無しさん
:04/02/17 17:00
>>820
それぐらい自分で試せ
822
名前:
デフォルトの名無しさん
:04/02/17 17:06
ボタンのキャプションは変えられるが、フォントの変え方が分からん。
823
名前:
デフォルトの名無しさん
:04/02/17 17:33
俺様のアプリのフォントを勝手に変えるなヴォケ
824
名前:
デフォルトの名無しさん
:04/02/17 17:37
てめえの糞ソフトのフォントなんか変えるに値しないな
825
名前:
デフォルトの名無しさん
:04/02/17 17:40
テメェの糞キャプションを補正してやってんだ。有難いと思え
>823
826
名前:
デフォルトの名無しさん
:04/02/17 17:42
>>823
変更されないように細工しとけ。
827
名前:
デフォルトの名無しさん
:04/02/17 17:46
変更されないように細工?バカじゃねーか?
828
名前:
デフォルトの名無しさん
:04/02/17 18:01
まずは、外部からフォントを変更することにより発生する問題などを把握しような。
829
名前:
デフォルトの名無しさん
:04/02/17 18:14
MS Sans Serifきめうちな海外ソフトでバイナリhack無しに日本語を表示させる手段としては
外部からの書き換えもいいと思うよ
830
名前:
デフォルトの名無しさん
:04/02/17 18:19
で、どうすればいいのですか?
831
名前:
デフォルトの名無しさん
:04/02/17 18:29
メッセージでフォントを切り替えるプログラムもそうそう無いだろう
で、どんなメッセージ送ったんだ?
832
名前:
829
:04/02/17 18:32
実は
>>829
で書いたような小細工ツールが欲しいなと思っただけだったり
833
名前:
デフォルトの名無しさん
:04/02/17 18:36
一応WM_SETFONTを送ってみました
834
名前:
デフォルトの名無しさん
:04/02/17 18:36
SendFontでも使えよ。
835
名前:
デフォルトの名無しさん
:04/02/17 18:45
>>833
DialogでかつStockObjectならいけるかもな
836
名前:
デフォルトの名無しさん
:04/02/17 18:55
>>834
>>835
ありがとうございました。SendFontの作者の方にメールを送って
変え方を聞きました。
837
名前:
デフォルトの名無しさん
:04/02/17 19:32
作者タン、ご苦労様…
838
名前:
デフォルトの名無しさん
:04/02/17 19:34
教えてもらえたんだろうか・・・
詳細キボン
839
名前:
デフォルトの名無しさん
:04/02/17 19:42
>>816
いやレスポイントされても。
誰も答えないってことは
結局そんなことできねーっていうことですかね。
840
名前:
デフォルトの名無しさん
:04/02/17 20:31
日本語WIndowsには欧文フォントが指定されていても、
日本語を正しく表示する機能があるんだが、
あまり知られていないようだな。
841
名前:
デフォルトの名無しさん
:04/02/17 22:36
質問です。
AVISaveOptionsの圧縮ダイアログでコーデックをWMV9VCMにして、
色々圧縮設定いじったあとにAVISaveVで圧縮保存したとき、
全フレームがキーフレームになったファイルができてしまいます。
WMV9VCM以外のコーデックを選んだときはちゃんと設定した値で
圧縮してくれます。
WMV9VCMってAVISaveOptionsで設定できないのでしょうか?
どなたかご教授ください。
環境:Win2k Pro, VB6sp5
842
名前:
841
:04/02/17 22:44
あ、VBはこっちじゃ聞いちゃダメみたいですね。
板汚しすいませんでしたl。
843
名前:
デフォルトの名無しさん
:04/02/18 01:16
>>832
Emigrant32
>>839
いやコピペされても。
誰も答えないってことは
コピペに異議ありっていうことですかね。
844
名前:
デフォルトの名無しさん
:04/02/18 02:00
市松模様を表示するプログラムを教えてください。
8×8マスのものです。
845
名前:
デフォルトの名無しさん
:04/02/18 02:15
Win32APIで市松模様?
846
名前:
デフォルトの名無しさん
:04/02/18 02:33
#define CR _T("\r\n")
#define T _T("■□■□■□■□") CR _T("□■□■□■□■")
DrawText(dc, T CR T CR T CR T, -1, &rect, DT_LEFT);
847
名前:
デフォルトの名無しさん
:04/02/18 05:53
質問です。こういう方法じゃ無理なのでしょうか・・・
[目的]F1でヘルプが表示される動作を殺したい(他プロセスのウィンドウ)
[やったこと]SetWindowsHookExでWH_KEYBOARDのグローバルフックをかけ、
そのプロシージャでF1のキーコードのメッセージを破棄するDLLを作成した。
[結果]世界はなにもかわらなかった。
848
名前:
デフォルトの名無しさん
:04/02/18 06:14
>>847
F1キーのメッセージ自体は取れてるの?
849
名前:
デフォルトの名無しさん
:04/02/18 07:14
WM_HELPを破棄した方がいいんじゃない?
850
名前:
デフォルトの名無しさん
:04/02/18 10:23
>>847
もしかしたら、WH_KEYBOARD_LLの方じゃないとダメとか。
そうなると、Win9x系では使えませんが…。
851
名前:
デフォルトの名無しさん
:04/02/18 11:46
>>843
でも結局誰も答えられねーんでしょ
852
名前:
デフォルトの名無しさん
:04/02/18 12:11
答えられないと思ってるんならここで聞くなよw
853
名前:
デフォルトの名無しさん
:04/02/18 14:16
遅レスすみません
>>848-850
F1キーのメッセージ自体はとれてました。
WH_KWYBOARD_LLではできるようです。
ただ、できればWin9xでも動くようにしておきたいんですよね・・・
WM_HELPとは、ウィンドウに送られてくるメッセージでしょうか。
WH_CALLWNDPROCではメッセージの破棄ができないようなのですが、
もしかして私は馬鹿なこと言ってます?
854
名前:
デフォルトの名無しさん
:04/02/18 15:33
クラス化したダイアログボックス上のコンボボックスについての質問です(SDKのみ)。
ボタンおよびエディット部分をクリックしても、
コンボボックスのすぐ下に黒い横線が表示されるだけで、
リスト一覧が表示されずに悩んでいます。
(フォーカスがあたっている状態で、マウスホイールを上下に動かすと、
エディット部分の表示は設定してあるリスト通りに変わります)
こういう場合、各CBN_xxxxメッセージを拾って処理しないといけないのでしょうか?
(CBN_DROPDOWNを拾ってCB_SHOWDROPDOWNを送るとcpu100%になりましたが...)
855
名前:
デフォルトの名無しさん
:04/02/18 15:36
>>854
クラス化ってサブクラス化のことか?
だとすれば、いらんことをやっている可能性大。
856
名前:
デフォルトの名無しさん
:04/02/18 15:37
>>854
コンボボックスのサイズが小さすぎ。
ダイアログリソースでもっと高さを高くするか、
MoveWindow で高さを増やしてください。
・・・コンボボックスの場合 Window の高さで「ドロップダウンしたときの
リスト込みの大きさ」を指定するわけですが。
857
名前:
854
:04/02/18 15:46
>>856
ありがとうございます。
今まで「ダイアログボックス」の高さを変更していました(^^;
858
名前:
デフォルトの名無しさん
:04/02/18 18:03
>>847
ヘルプファイルをダミーに入れ替える、のはダメかな…
859
名前:
デフォルトの名無しさん
:04/02/18 18:25
>>853
WH_CALLWNDPROCじゃなくてWH_GETMESSAGEではダメですか?
たしか↑はメッセージの通知を受けるだけだったはず
860
名前:
デフォルトの名無しさん
:04/02/18 21:07
>>846
「: error C2065: 'rect' : 定義されていない識別子です。」ってなります。
rect はどのように定義すればいいのですか?
dc のところは hdc に直しました。
#define はどこで定義すればいいのですか?
あと黒いマスを緑色にしたいです。
これらは WM_PAINT の中に書けばいいんですよね?
861
名前:
デフォルトの名無しさん
:04/02/18 21:17
RECT rect;
862
名前:
デフォルトの名無しさん
:04/02/18 21:24
おっとあれが進行してるとは思わなかったぜ・・・
863
名前:
デフォルトの名無しさん
:04/02/19 01:44
プロセスが自動で仮想メモリを確保してるっぽいんですが、
これが未使用だったら解放するのを強制するAPIってありますか?
864
名前:
デフォルトの名無しさん
:04/02/19 01:47
>>863
自分のプログラムで確保したメモリを、外部から勝手に解放されたらどうなると思う?
865
名前:
863
:04/02/19 01:56
>864
具体的にはCView内である操作をすると勝手に仮想メモリを確保してしまい、
CViewが破棄されてもそれが解放されなくて困ってます
866
名前:
デフォルトの名無しさん
:04/02/19 03:31
>>863
兄が自分の夕食を作っていました。
そこへ、君がやってきて兄がちょっと目を離した隙に食べちゃいました。
どうなりますか?
867
名前:
デフォルトの名無しさん
:04/02/19 03:52
ていうか、ここW32APIスレだよな?
868
名前:
デフォルトの名無しさん
:04/02/19 04:35
>>866
お兄ちゃんは
「何で妹じゃないんだ…」
と、日々溜め込んできた辛い思いが一気に爆発し、うなだれる事でしょう。
869
名前:
デフォルトの名無しさん
:04/02/19 08:56
>>865
MFCスレ逝け
870
名前:
デフォルトの名無しさん
:04/02/19 10:14
Excel VBA で使います
Date and Time Picker Control でドロップダウンリストを自動で表示させたいんだけど
CB_SHOWDROPDOWN みたいな方法があれば教えてください
今は暫定策としてフォーカス移して Alt + ↓キーを送ってます
871
名前:
デフォルトの名無しさん
:04/02/19 13:33
最近APIと関係ない質問が多いな
872
名前:
デフォルトの名無しさん
:04/02/19 13:43
PSAPIってピサピーって呼びますか?
873
名前:
デフォルトの名無しさん
:04/02/19 13:54
ピーサピ
874
名前:
デフォルトの名無しさん
:04/02/19 14:25
複数のリソースファイル(*.rc)を使っているのですが
なんでもいいのでファイルを変更してビルドすると
obj : fatal error LNK1000: Internal error during Pass2
とかでてきます。
もう一度ビルドするとエラーがなくなります。
どっかバッティングしてるのでしょうか?
複数の*.rcファイルを使うときに注意することって何があるのでしょうか?
ちなみにrcファイルは一度作ったものをコピーしてテキストエディタで開いて
Resource.hのところを変更して使っています。(変更箇所はファイルごとに2箇所ぐらいです)
ちなみにResource.hも複数あります。
もちろんファイル名はResource0.h Resource1.h Resource2.hとかなっています。
リソースファイルを複数使ってる方おりましたらアドバイスよろしくおねがいします。
875
名前:
デフォルトの名無しさん
:04/02/19 14:34
APIのエロい人に質問です。
「英数」キーが離されたことを検出する方法があれば教えてください。
メッセージで検出しようとしても、WM_KEYDOWN なら送られてくるんですが、
「ひらがな」「カタカナ」キーを押さない限り、WM_KEYUP が送られてこないんですよ。
876
名前:
デフォルトの名無しさん
:04/02/19 14:52
DirectInputのサンプルで「英数」キーの動きを見れば、
まあ大概、無理だと判るだろう。特に日本語キーボードは、
Shift+英数がCapsLockなのでこのあたりの対処が惨い。
だからどうにかするなら、ドライバレベルまで降りてくるより他にない。
877
名前:
874
:04/02/19 15:35
すいません。
ありました。
http://www.microsoft.com/japan/developer/library/vcmfc/_mfcnotes_tn035.htm
878
名前:
875
:04/02/19 15:46
>>876
なるほど。やはりAPIレベルでは無理でしたか…。
丁寧な解説をどうもありがとうございました!
879
名前:
デフォルトの名無しさん
:04/02/19 16:26
なぜMSGをプロシジャーにおくることをdispatchというのですか?
880
名前:
デフォルトの名無しさん
:04/02/19 16:37
送るから
881
名前:
844
:04/02/19 18:34
市松模様のことですが、
int n=8,x=100,y=100,a=40; // nは8マス,xとyは座標,aは中に置くコマの大きさ
int xx=140; // xxは座標
int m=1; // mは1マスと言う意味
// 四角形1マスの色(白)
Hdr = CreateSolidBrush(RGB (255,255,225));
HdrOld = SelectObject(hdc,Hdr );
// 四角形1マスを描く1
Rectangle(hdc,x,y,x+a*m,y+a*m);
SelectObject(hdc,HdrOld);
DeleteObject(Hdr);
//四角形1マスの色(緑)
Hdr = CreateSolidBrush(RGB (0,155,0));
HdrOld = SelectObject(hdc,Hdr );
//四角形1ますを描く2
Rectangle(hdc,xx,y,xx+a*m,y+a*m);
SelectObject(hdc,HdrOld);
DeleteObject(Hdr);
これだとxが100yが100の所に白と、xが140yが140の所に緑が1つずつしか書けない
のですが、これに何か付け加えて8マス×8マスの市松模様を作れませんか?
これを繰り返せばいいのかと思っているのですが、どのようにすればいいのか
よく分かりません。お分かりになる方教えていただけないでしょうか?
(もちろんAPIです)
882
名前:
デフォルトの名無しさん
:04/02/19 18:50
>>881
Cの勉強をしましょう。APIとは特に関係のない部分ですね。
883
名前:
デフォルトの名無しさん
:04/02/19 19:49
API的にやるなら市松のビットマップつくって、それをブラシに設定。
一気に塗りつぶせばいいじゃない。
884
名前:
863
:04/02/19 20:10
FreeUserPhysicalPagesみたいなAPIをご存知の方がいれば、と思い
質問したのですが、どうもCViewを出してしまったせいで
MFCと勘違いされてしまった方がいるみたいですね(汗
885
名前:
デフォルトの名無しさん
:04/02/19 20:56
>>884
>CView内である操作をすると勝手に
ここが重要なんじゃねーかよ
886
名前:
デフォルトの名無しさん
:04/02/19 21:15
>>884
SetProcessWorkingSetSize( hProcess, -1, -1) で何かが起こるかも?
でも、仮想メモリの使用量は変わらないか。
887
名前:
デフォルトの名無しさん
:04/02/19 21:51
外部のプロセスのトップレベルウィンドウのハンドルを
取得している状態で、
なんらかのメッセージを送って、
モーダルダイアログがとじれられている状態にしたいのですが
(ESCを押したような)
どうしたらよいでしょうか?
888
名前:
デフォルトの名無しさん
:04/02/19 21:54
そこから目的のウィンドウハンドルを取得して、メッセージを送る。
889
名前:
デフォルトの名無しさん
:04/02/19 21:58
モーダルダイアログのハンドルを手に入れるにはどうしたらよいでしょうか?
890
名前:
デフォルトの名無しさん
:04/02/19 22:08
(´-`).。oO("登録しる!"Dialogをオートで閉じる奴でも作るのかな…)
891
名前:
デフォルトの名無しさん
:04/02/19 22:11
SetWindowsHookEx( WH_CBT )
892
名前:
887
:04/02/19 22:25
ある瞬間だけなので、フックを作るのは今回は適当でないかもしれません。
トップレベルウィンドウを列挙して、オーナーウィンドウを調べるのがよいかと思いました。
どうもありがとうございました。
893
名前:
デフォルトの名無しさん
:04/02/19 22:53
子ウィンドウならEnumChildWindowsとか
894
名前:
デフォルトの名無しさん
:04/02/20 01:08
WinNT系でAdministrator権限の必要な機能を一般ユーザー権限で使うには
サービスとして稼動させる以外の方法は無いのでしょうか?W32APIから多少
外れるようにも思いますが、よろしくお願いします。
895
名前:
デフォルトの名無しさん
:04/02/20 04:40
>>894
本当にどうしてもアプリケーションが必要とするなら
Administrator権限で起動しる! とReadMeに書く手もあるが。
896
名前:
デフォルトの名無しさん
:04/02/20 09:43
出来たらまずいだろう・・・
897
名前:
デフォルトの名無しさん
:04/02/20 10:40
今ならスイッチする方法なかったっけ
Administratorのパスワード要求されるけど
898
名前:
デフォルトの名無しさん
:04/02/20 11:12
「別のユーザーとして実行」できるな。
899
名前:
デフォルトの名無しさん
:04/02/20 12:51
それは結局Runasがサービスとして動いてるわけだが
900
名前:
デフォルトの名無しさん
:04/02/20 14:26
>>894
ユーザー名パスワードがわかればLogonUser,ImpersonateLoggedonUserあたり?
901
名前:
デフォルトの名無しさん
:04/02/20 18:45
プリンタのDPIを設定したディスプレイメモリDCを取得したいのですが、
メモリDCのDPIを変更するにはどうしたらいいんでしょうか?
mhdc = CreateCompatibleDC(printerhdc);
この普通にプリンタのDCから作る方法を使えないため、
dpi = GetDeviceCaps(printerhdc,LOGPIXELSX)
mhdc = CreateCompatibleDC(NULL);
としましたが、この後の設定に悩んでいます。
ご教授お願いいたします。
902
名前:
デフォルトの名無しさん
:04/02/20 19:08
用紙サイズでメモリDCを作ればいいだろう。
用紙サイズが分からずディスプレイと同じサイズにしたいのなら
ディスプレイ(96dpi)とプリンタのdpi比を掛ければいい
903
名前:
デフォルトの名無しさん
:04/02/20 19:17
一応ディスプレイの解像度(dpi)は変更可能だから決め打ちすんなよ。
……ってもあれ96dpi以外にするとそこらじゅうで描画破綻するけどな。
904
名前:
デフォルトの名無しさん
:04/02/20 23:31
質問させていただきます。
Windowのタイトルバーの文字列を指定してボタンを押すと、そのWindowをSW_HIDE状態に隠すツールを作っています。
SHOWボタンを押すとそのツールがHIDEさせたWindowが復帰します。
このツール、すでにSW_HIDEなWindowは除外したいのです。
HIDEさせたWindowのhWndをリストとしてもち、SHOWボタンを押したときそれらをSW_SHOWするので
別の理由でHIDEしていたWindowまでSHOWしてしまうからです。
GetWindowPlacementで
WINDOWPLACEMENTにWindow状態をとり、
lpwndpl.showCmdを調べてみたのですが、SW_HIDEしているWindowなのに
SW_HIDEではなく、
SW_SHOWMINIMIZED (最小化してからSW_HIDEされてる場合)や
SW_SHOWNORMAL (通常状態でSW_HIDEされてる場合)が格納されています。
何故SW_HIDEではなく、他のSW_が入っているのでしょう。
どうすればSW_HIDEしているかを取得できますでしょうか。
分かる方ご教授よろしくお願いいたします。
905
名前:
デフォルトの名無しさん
:04/02/20 23:47
>>904
>別の理由でHIDEしていたWindowまでSHOWしてしまうからです。
自分でHideさせたWindowHandleをリストとして保持してるのに、
なんで?
906
名前:
デフォルトの名無しさん
:04/02/20 23:54
Mutexオブジェクトの一覧を得る方法ってありますか?
907
名前:
デフォルトの名無しさん
:04/02/21 00:08
>>905
HIDEさせる時にリストとして保存し、SHOWするときはリストを参照してSHOWするのです。
ですが今のままだと、他のツール(自分のにしろ、他の隠す系のツールにしろ)
「これ」以外のツールによってHIDEされているWindowまでリストにいれてしまいます。
このツールの動作を
「タイトルが指定されているのに一致しており、現在HIDEでないWindowをHIDEさせ、
任意でそれらを再びSHOWできる」
にしたいのです。
今だと
「タイトルが指定されているのに一致しているWindowをHIDEさせ、任意に任意でそれらをSHOWできる」
となってしまい、最初からHIDEしていたWindowまで白日の下に晒してしまうのです。
分かりづらくて申し訳ないです。
908
名前:
デフォルトの名無しさん
:04/02/21 00:16
>>907
>「これ」以外のツールによってHIDEされているWindowまでリストにいれてしまいます。
原因わかってるじゃねーか。
じゃ、そこを直せばいい。
909
名前:
デフォルトの名無しさん
:04/02/21 00:18
ええ、なので対象のWindowがSW_HIDEしているか
GetWindowPlacementで調べようとしたのですが・・・
>>904
の7行目以降な感じになってしまうのです。
910
名前:
デフォルトの名無しさん
:04/02/21 00:18
>>907
IsWindowVisible
911
名前:
デフォルトの名無しさん
:04/02/21 01:57
>>910
あー、忘れてた!
ありがとうございました。
計画どおりの動作をするようになりましたヽ(*´ー`)ノ
912
名前:
デフォルトの名無しさん
:04/02/21 02:08
>>902
>用紙サイズでメモリDCを作ればいいだろう
ディスプレイDCでも用紙サイズ設定は出来るのですか?
ResetDCで試しましたがダメでした。
どのAPIで設定すれば良いのでしょうか?
913
名前:
デフォルトの名無しさん
:04/02/21 02:26
>>912
用紙サイズは縦横何インチ?
DPIは1インチ中に含まれるドット数なんだから、
用紙のサイズ*DPIでもとまるでしょ
914
名前:
デフォルトの名無しさん
:04/02/21 02:47
>>913
用紙はA4です。
プリンタDPIが600DPIで、5040,7128です。
これをどのようにしてディスプレイDCに設定するのかがわからないのです。
915
名前:
デフォルトの名無しさん
:04/02/21 03:13
ああ、ウインドウDCのスケールを調整したいという話か。
CreateCompatibleDCなんて持ち出すから、メモリDCの話かと思ったよ。
それならば求めるサイズのメモリDCに描画した後、
ウインドウDC(クライアントDC)にStretchBltをするか
SetMapModeのMM_ANISOTROPICを指定するか、
好きなほうを選んでくれ。
916
名前:
デフォルトの名無しさん
:04/02/21 04:14
>>915
ディスプレイメモリDCです。
プリンタのDPIを設定したディスプレイメモリDCが必要です。
つまり、96DPIのディスプレイメモリDCを600DPIにしたいのです。
>用紙サイズでメモリDCを作ればいいだろう。
ということでしたので、
ディスプレイDCにDPIを設定した後に、CreateCompatibleDCすると思ったのですが。
HDCに図形や文字を描画するActiveXエンジンがありまして、
ディスプレイメモリDCには正常に描画できるのですが、
プリンタメモリDCには正常に描画できないのです。
そのため印刷するには、一度ディスプレイメモリDCに描画した後に、
プリンタDCにStretchDIBitsしているのですが、
ディスプレイメモリDCから作成した互換BITMAPをプリンタのサイズにして描画すると、
図形は正常ですが、文字が非常に小さくなってしまうので、
描画前にDPIをプリンタと同じに出来ればと考えたのです。
非常に分かりにくくて申し訳ないです。
917
名前:
デフォルトの名無しさん
:04/02/21 04:28
もしかすると、、、
CreateCompatibleBitmapで該当サイズのビットマップを作って、
SelectObjectでメモリDCに設定する。
といったことが知りたかっただけ?
918
名前:
デフォルトの名無しさん
:04/02/21 04:45
>>900
そのAPI自体にAdminどころかLocalSystem権限が必要
CreateProcessWithLogonWはRunasサービスが必要だし
919
名前:
デフォルトの名無しさん
:04/02/21 04:53
>>917
>CreateCompatibleBitmapで該当サイズのビットマップを作って、
>SelectObjectでメモリDCに設定する。
916で書いてますように、描画は出来ています。
しかし、BITMAPのサイズを変更しても、
ディスプレイメモリDCのDPIは96のままで600にならず、
正常な文字の描画が出来ないため、
メモリDCのDPIのみを変更する方法が知りたいのです。
920
名前:
デフォルトの名無しさん
:04/02/21 05:12
SetMapMode で MM_TWIPS じゃ駄目すか?
921
名前:
デフォルトの名無しさん
:04/02/21 05:31
>>920
SetMapModeでもいろいろ試したんですが、
全体的に拡大縮小はできるのですが、DPIは変更できませんでした。
無理なんでしょうか。
描画前にFontのポイントサイズを変更するしかないのかな‥‥。
922
名前:
デフォルトの名無しさん
:04/02/21 06:51
>907
何か勝手に解決したみたいだが、何で
>「これ」以外のツールによってHIDEされているWindowまでリストにいれてしまいます。
こうなるのか俺にはさっぱり理解できない。
ShowWindow(HIDE)したHWNDを放り込むだけの処理に、
どうしたら他のHWNDを持ってこれるんだ?
923
名前:
デフォルトの名無しさん
:04/02/21 11:09
こんにちは。
あの、WIN32APIを用いて、
自作アプリケーションから、ある他のアプリケーションへ、メッセージ(Message)を送付する
プログラムを作りたいのですが、実現は可能でしょうか?
例えば、自作アプリケーション内に、あるボタン(Control)があるとして、
そのボタンを押すと、ある特定のメモ帳.exeにテキストが入力されるみたいな。
メモ帳は通常、キーボードからテキストが入力されますが、
そのテキスト入力を、自作アプリケーション側から、したいのです。
それを実現するには、WIN32APIだと、
どのような関数を使用するのでしょうか?
924
名前:
デフォルトの名無しさん
:04/02/21 12:24
FindWindow、SendMessage
925
名前:
デフォルトの名無しさん
:04/02/21 15:21
>921
fontで直接指定するのはpixelだった記憶があるが。
ちゃんとDPI指定して変換掛けてるか?
926
名前:
デフォルトの名無しさん
:04/02/21 17:01
>>920
それじゃ好みのdpiに設定できない
MM_ANISOTROPICを指定してSetWindowExtExとSetViewportExtEx で設定することになる
算数ができれば指定数値は割り出せるはずだから
927
名前:
デフォルトの名無しさん
:04/02/21 21:48
GETDCを使う意味がわかりません
928
名前:
デフォルトの名無しさん
:04/02/21 21:58
>>927
誰に聞いてるの?どのレスに対するレス?
929
名前:
デフォルトの名無しさん
:04/02/21 21:59
すいません、「教えてください」最後の文に書き加えるのを忘れました
」教えてくださいとい」うことでよろしくお願いします
930
名前:
デフォルトの名無しさん
:04/02/21 21:59
そういう場合は放置しとけ。
931
名前:
デフォルトの名無しさん
:04/02/21 22:02
アプリケーション実行中に Alt キーを押すと、OS が勝手に
プロセスの実行の権利を奪ってしまいますよね。
それを捕らえるためには WM_EXTERMENULOOP とかで良いと思うのですが、
他にも MessageBox とかを使用した場合も同じ事が起こります。
とりあえず、これらのように OS が実行権を奪う前にそれを知る
確実な手段は無いでしょうか?
もし無いのならば、上記2点だけに気を付けてコーディングすれば
良いのでしょうか?
932
名前:
デフォルトの名無しさん
:04/02/21 22:13
>>931
Altキーを押さなければいい
933
名前:
デフォルトの名無しさん
:04/02/21 22:26
起動中のアプリケーションのリストを作る場合ですが、
スナップショットAPIでは、実行ファイル名だけは取得できるのですが、
そのファイルのフルパスを取得する方法はないんですかねえ。
934
名前:
デフォルトの名無しさん
:04/02/21 22:42
>>933
http://nienie.com/~masapico/api_GetModuleFileNameEx.html
935
名前:
デフォルトの名無しさん
:04/02/21 22:42
>>933
EnumProcessで列挙してプロセスからフルパス取得
936
名前:
933
:04/02/21 23:04
>>934
,935
サンクス。スナップショットにIDがあるので、GetModuleFileNameEx()で行ってみます。
解決できそうです。ありがと。
937
名前:
デフォルトの名無しさん
:04/02/21 23:44
>>931
何をしようとしているのかによるが、一般論では思想的に間違っている。
PCの制御をハイジャックすることはユーザにとって脅威でしかない独善だ。
例えばマイクロ秒単位でタイミング保証の必要があるならアプリではなくハード+ドライバ。
938
名前:
デフォルトの名無しさん
:04/02/22 00:01
確認なんですが、CreateDIBSectionでnewしたメモリはdeleteしなくてもいいんですよね?
939
名前:
デフォルトの名無しさん
:04/02/22 00:03
>>937
いいえ。ハイジャックをするのでは無く、「知ること」ができればよいのです。
例として、Windows のアプリケーションで小さなロボットを動かすことを考えます。
アプリケーションがロボットに何も命令しなければ、ロボットは常に前進し続るように
設計されていますが、アプリケーションは3秒ごとにロボットに右へ曲がるように
命令することによって、ロボットは一定区域内で旋回し続けるようになっているとします。
しかし、Alt キーを押されると、3秒ごとの命令をアプリケーションは発生させることが
出来なくなってしまうので、そのままではロボットはいつまでも前進し続けることになって
しまいます。
OS が実行権を取得する事が事前に分かれば、ロボットに「止まれ」と命令をして、
実行権が戻ってきた時点で「進め」と命令すれば、何の問題もないのですが・・・
940
名前:
デフォルトの名無しさん
:04/02/22 00:04
それとALTキー検出に何の関連が・・・
941
名前:
デフォルトの名無しさん
:04/02/22 00:06
女性が「泥棒!」…無実?の68歳男性“ショック死”
三重県警四日市南署は、同県四日市市内のスーパーで、今月17日に「泥棒」と叫び声を挙げた、
子連れの女性を捜している。「泥棒」呼ばわりされた男性(68)は、買い物客に取り押さえられた後に
死亡したが、防犯ビデオの分析などから、何ら犯罪行為をしていない可能性が強いという。
詳しくは、
http://headlines.yahoo.co.jp/hl?a=20040221-00000303-yom-soci
(2004/2/21/11:17 読売新聞 )
■こういう糞女には、ちゃんと責任取らせないとだめです。
被害者の男性は、犯罪者の汚名を着せられたまま亡くなったのですよ。その無念を想像してください。
三重県警察本部059-222-0110 四日市南警察署0593-55-0110
https://www.police.pref.mie.jp/SITE1PUB/servlet/enquete.EnqueteForm/5
三重県警ご意見BOX
http://www.npa.go.jp/goiken/index.htm
警察庁ご意見箱
942
名前:
デフォルトの名無しさん
:04/02/22 00:08
>>941
車運転するときはじーさんばーさんにクラクション鳴らさないように気をつけてる。
勝手に死なれちゃかなわん。
943
名前:
デフォルトの名無しさん
:04/02/22 00:13
>>940
>それとALTキー検出に何の関連が・・・
別に ALT キーに拘っている訳ではなく、「モーダルな」動作に入ろうと
する時を確実に検出できればいいのですが。
944
名前:
デフォルトの名無しさん
:04/02/22 00:50
>>943
そもそも
> アプリケーション実行中に Alt キーを押すと、OS が勝手にプロセスの実行の権利を奪ってしまいますよね。
と言う認識が間違ってる。
945
名前:
デフォルトの名無しさん
:04/02/22 01:00
>943
スレッド使えよ
946
名前:
デフォルトの名無しさん
:04/02/22 01:02
>>944
>と言う認識が間違ってる。
言葉の定義や概念の話はどうでもいいのです。
先ほども書いたように、「モーダルな」動作に入ろうとする時を
確実に検出する方法が欲しいだけなのですが・・・
947
名前:
デフォルトの名無しさん
:04/02/22 01:03
フィルタドライバ作れば?
948
名前:
デフォルトの名無しさん
:04/02/22 01:06
>>945
こんな些細な問題でスレッドは使いたくないのですが・・・
949
名前:
デフォルトの名無しさん
:04/02/22 01:18
とかいいつつこのスレッドはもうすぐ終わりだよ
950
名前:
デフォルトの名無しさん
:04/02/22 01:23
>>948
些細な問題なら放置しとけば?
951
名前:
デフォルトの名無しさん
:04/02/22 01:30
>>946
> 先ほども書いたように、「モーダルな」動作に入ろうとする時を
> 確実に検出する方法が欲しいだけなのですが・・・
MFC スレならともかく、このスレ的には ALT キーで「モーダルな」動作に入るのは「あんたのプログラムの動作」だよ。
952
名前:
デフォルトの名無しさん
:04/02/22 01:51
やはりブロックしたくないならUIスレッドとロボット制御スレッドを分離した方が…
953
名前:
デフォルトの名無しさん
:04/02/22 01:51
>>926
そうか、SetMapModeを設定したものを出力した時に、
縮小しているように見えたのは、DPIの設定が出来ていたということでしたか。
GetDeviceCaps(memhdc,LOGPIXELSX)が96のままだったので見過ごしていました。
納得しました。ありがとうございます。
ちなみに、この返り値96を変更するAPIはあるんでしょうか?
954
名前:
デフォルトの名無しさん
:04/02/22 01:53
>>951
>「あんたのプログラムの動作」だよ。
それは要するに、メッセージや呼び出す API 一つ一つに常に注意して、
これ以降の処理はモーダルな動作に入るかどうかに気を配りながら
コーディングするしかない、という意味と解釈して良い訳ですか?
その点数が少ないのなら、そのような方針でも良いのですが、
もしそのような箇所が何十種類、何百種類も出てくると手に
負えなくなるのが目に見えるので。
本来、最初にスレッドを使うことを考えたんですが、それをやらずに
済むのならやりたくないので、もっと楽な方法がないか尋ねたんですが・・・
955
名前:
デフォルトの名無しさん
:04/02/22 01:59
スレッドを使うことに抵抗があること自体、あまりにもスキル不足。
それはポインタがわからなくて関数化することに抵抗があるのと同じくらいの論外だ。
956
名前:
デフォルトの名無しさん
:04/02/22 02:01
>>953
できない、システム依存。
画面の設定の詳細から変更した値が返る
957
名前:
デフォルトの名無しさん
:04/02/22 02:10
>>955
スキル云々より移植性の問題が大きいのですが。
(シングルタスクの実行環境も考慮して実装している為)
元々言語自体に組み込まれているのなら
私も使う事に何のためらいもないのですが。
958
名前:
デフォルトの名無しさん
:04/02/22 02:17
boostのthreads使えばいいじゃないか
959
名前:
デフォルトの名無しさん
:04/02/22 02:22
>>957
・シングルタスクの実行環境
・モーダルな処理がある
・定期的な処理をする必要がある
普通に考えたら、何かあきらめないと無理だと思う。
960
名前:
デフォルトの名無しさん
:04/02/22 02:23
>>957
ハァ? スレ違いか???????????????????????????????????
961
名前:
デフォルトの名無しさん
:04/02/22 02:24
>(シングルタスクの実行環境も考慮して実装している為)
意味不明。
962
名前:
デフォルトの名無しさん
:04/02/22 02:26
タイマーでも使えばいいんじゃねーの?
963
名前:
デフォルトの名無しさん
:04/02/22 02:46
>>961
DOS とかも視野に入れてるってことだろ。
964
名前:
デフォルトの名無しさん
:04/02/22 02:54
だったらなおさらスレッドにしたほうが良いだろ
イベント式じゃないOSだったらどうするんだよ
965
名前:
デフォルトの名無しさん
:04/02/22 02:54
>>956
そうでしたか。ありがとうございました。
966
名前:
デフォルトの名無しさん
:04/02/22 02:55
>>963
あぁ、明らかなスレ違いってことか。
967
名前:
デフォルトの名無しさん
:04/02/22 02:59
擬似スレッドを自分で実装して、使うしかないな。
がんばれ。
968
名前:
デフォルトの名無しさん
:04/02/22 08:21
>>963
Win32sとか
969
名前:
高校生
:04/02/22 10:31
SHBrowseForFolder()をつかってディレクトリを選択させようとしています。
この関数の結果を絶対パスにする方法はありませんか?
GetOpenFileName()なら、カレントディレクトリが変わっているので、
GetFullPathName()が使えたのですが、それもできません。
970
名前:
デフォルトの名無しさん
:04/02/22 11:35
スレッドもまともに扱えないような人が作ったものを、
様様なOSで提供したとしても誰も欲しがらない。
そもそもシングルタスクって、いったい何のOSをターゲットにしてるんだ。
どうしてもマルチプラットフォームにしたいなら、それぞれで組め。
とりあえずWindowsではスレッドだ。それ以外に無い。
971
名前:
デフォルトの名無しさん
:04/02/22 12:08
Buttonを押すメッセージを送りたいのですが、うまくいきません。
SendMessage(hwndBtn, WM_LBUTTONDOWN, 0, 0);
SendMessage(hwndBtn, WM_LBUTTONUP, 0, 0);
なにがいけないのでしょうか?
972
名前:
971
:04/02/22 12:16
hwndBtnはEnumChildWindowsを使って取得しました。
GetWindowTextを使ってキャプションを見る限りは正しく
取得できていると思います。
973
名前:
デフォルトの名無しさん
:04/02/22 12:28
>>969
SHBrowseForFolder()の返り血をSHGetPathFromIDList()で処理する。
974
名前:
高校生
:04/02/22 13:06
>>973
thanks you!
ところで、MSDNによると、
>The calling application is responsible for freeing the returned PIDL by using the Shell allocator's IMalloc::Free method.
これを呼び出したアプリケーションは、戻り値のPIDLを、シェルアロケーターのIMalloc::Freeメソッドを用いて解放する責任を負う。
とありますが、こんなかんじですか?
LPITEMIDLIST p;
p = SHBrowseForFolder(...)
//必要な処理
IMalloc::Free(p);
もし解放しない場合は、メモリリークしますか?
975
名前:
デフォルトの名無しさん
:04/02/22 13:32
>>974
::CoTaskMemFree()でどうぞ
976
名前:
デフォルトの名無しさん
:04/02/22 14:20
タスクトレイに常駐させる場合、
アイコンでなく文字列を表示させることはできますか?
ツールチップではなく、
「日付と時刻の調整」のように、
トレイに文字列を表示させたいのです。
977
名前:
デフォルトの名無しさん
:04/02/22 14:21
文字をビットマップ化してください
978
名前:
デフォルトの名無しさん
:04/02/22 15:13
SetMenuを実行するとRuntimeError216が発生して悩んでいます。
解決方法のご教授お願いします。
関連するソースは以下の通りです(Delphi 6 personal)。
hM := CreateMenu;
AppendMenu(hM,MF_STRING,IDM_FILE,'&File');
SetMenu(FHandle,hM);
※FHandleはクラスメンバでWndProcでウィンドウハンドルは代入済みです。
リソースで記述したメニューでも、
ウィンドウクラス登録時にwc.lpszMenuNameで設定した場合は、問題ないのですが、
WM_CREATEでLoadMenu、SetMenuで登録しようとするとやはりRuntimeError216が発生してしまいます。
979
名前:
976
:04/02/22 15:55
>>977
そうします
980
名前:
デフォルトの名無しさん
:04/02/22 16:04
>>978
delphi刷れ池
981
名前:
デフォルトの名無しさん
:04/02/22 16:10
>>978
CreateWindowで設定しないのはどうして?
982
名前:
デフォルトの名無しさん
:04/02/22 16:34
CreateProcessで外部のコンソールアプリを実行して、その標準出力の内容を
ログとして出力したいのですが、実現方法(標準出力の取り込み方法)をご教授
願えないでしょうか。
983
名前:
デフォルトの名無しさん
:04/02/22 16:56
パイプ
984
名前:
デフォルトの名無しさん
:04/02/22 17:10
>>976
TClockのソースでも参考にすれ。
985
名前:
978
:04/02/22 17:29
>>980
C++でも起こるんですけど(^^;
(この場合はcpu100%に...)
Borland製(DelphiとBCC5.5.1)だから?
>>981
ウィンドウクラスで設定しておけば、問題ないのですが、
RuntimeError216が出る理由が解かるのでは?と思って聞きました。
986
名前:
デフォルトの名無しさん
:04/02/22 21:41
>971
使ったこと無いけど"BM_CLICK"?
987
名前:
デフォルトの名無しさん
:04/02/22 22:52
やっとバグがとれたよ・・・。この喜びをみんなにも分かってほしい・・・。
988
名前:
デフォルトの名無しさん
:04/02/22 22:53
じゃ、コードどっかにうpして。
989
名前:
デフォルトの名無しさん
:04/02/22 23:15
>>982
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q190351
990
名前:
デフォルトの名無しさん
:04/02/23 00:04
>>989
ありがとうございます。
パイプを使うのですね。試してみます。
991
名前:
デフォルトの名無しさん
:04/02/23 00:12
>>990
前スレか、前前スレあたりでコンソールからのパイプについては
私が質問&研究しまくった。
ログあさってくれ。
結局他人のツールは、パイプされるのを意識して作られた(flushが所々で行われている)ツール以外は、
リアルタイム取得が無理であきらめた。
992
名前:
デフォルトの名無しさん
:04/02/23 00:35
>リアルタイム取得が無理であきらめた。
あきらめるもなにも受け取ったバッファをコールバックで
通知するようなインターフェースにしとけばいいだけの話では。
993
名前:
デフォルトの名無しさん
:04/02/23 01:11
いや、多分そういうことじゃなくてバッファリングの話じゃない?
>>991
は無効にできるのを知らなかったのだと思われ。
994
名前:
デフォルトの名無しさん
:04/02/23 01:16
ライブラリレベルでのバッファリングは親アプリから制御できないだろ
995
名前:
デフォルトの名無しさん
:04/02/23 01:24
新スレ立った?
996
名前:
デフォルトの名無しさん
:04/02/23 01:30
>>985
ウィンドウクラスで設定しなくても、CreateWindowでダミーのメニューを与えておき、
あとで置き換えれば上手く行きませんか?
CreateWindowで与えないと、ウィンドウクラスのメニューしか使えなくなる気がします。
997
名前:
デフォルトの名無しさん
:04/02/23 02:09
新スレ、誰か頼む。
998
名前:
デフォルトの名無しさん
:04/02/23 02:19
次スレ立てますた・・・。
http://pc.2ch.net/test/read.cgi/prog/1077470292/
999
名前:
デフォルトの名無しさん
:04/02/23 02:21
999
1000
名前:
たねむら
:04/02/23 02:21
1000とはぞっとしない由、本来なら担当者を怒鳴りつけるところだが、
もそもそと苦言を呈しておく。
新スレ
http://pc2.2ch.net/test/read.cgi/tech/1077470361/
■過去ログ置き場に戻る■
1-
前250
次250
最新50
DAT2HTML
0.33f Converted.