Win32API質問箱 Build ..
39:デフォルトの名無しさん
07/09/09 19:00:08
ネタなら埋まる前のスレ使ってくれ
ネタじゃないならπが識別子に使えることを教えてくれてありがとう
40:デフォルトの名無しさん
07/09/09 19:02:08
ついでに
BOOL CreateProcess(
LPCTSTR lpApplicationName, // 実行可能モジュールの名前
LPTSTR lpCommandLine, // コマンドラインの文字列
Windows NT/2000:このパラメータで const 文字列(リテラル;文字列定数)を指定すると、この関数の Unicode 版である CreateProcessW 関数は失敗します。
41:デフォルトの名無しさん
07/09/09 19:04:40
>>37
何だその本は言ってみろ嘘吐きが
42:デフォルトの名無しさん
07/09/09 19:27:40
>>39
&piが文字実体参照とみなされてπと表示されただけだろ。
本当は実体参照は、π というように最後にはセミコロンを付けないといけないのだが、
なくても勝手に実体参照として解釈してしまう糞ブラウザが広まったせいで…
43:デフォルトの名無しさん
07/09/09 19:41:52
>>42のおかげで>>38,39,41が怒ってる意味がやっとわかった。
>>40はAdvanced Windowsにも注意書きがあったね。
俺が読んだ版では、「将来のOSでLPCTSTRに変更されるだろう」と書いてあったけど
Vistaでは落ちるようになったのか…。
44:デフォルトの名無しさん
07/09/09 19:48:15
Vistaじゃなくても落ちるがな
45:デフォルトの名無しさん
07/09/09 19:48:57
>>43
Vistaでも落ちる
46:デフォルトの名無しさん
07/09/09 19:57:24
えすぱーだ>>42
47:デフォルトの名無しさん
07/09/09 20:44:27
よくわかったな>>42
専ブラだったからわからんかった
48:デフォルトの名無しさん
07/09/09 20:48:00
πなんて使えないんだから誰でも分かる
49:37
07/09/09 20:56:11
>>40
ありがとうございます。
文字列定数であたえるのを変更したら動きました。
昼間からずっと悩んでました。
感謝してます。
50:デフォルトの名無しさん
07/09/10 03:46:46
> 本に掲載されたまま一字一句同じように
どこの腐れ書籍かさらしageてよし
51:デフォルトの名無しさん
07/09/10 07:36:37
どうせ37が文字セットの初歩的説明を見逃してるだけ
52:デフォルトの名無しさん
07/09/10 09:21:45
エクスプローラと同じコンテキストメニューを開くにはどうすればいいのでしょうか?
53:デフォルトの名無しさん
07/09/10 09:48:25
shellapi
54:デフォルトの名無しさん
07/09/10 10:02:33
なんでここの人はMFC使わないの?馬鹿なの?
55:デフォルトの名無しさん
07/09/10 10:11:31
>>54
つ[mfcスレ]
56:デフォルトの名無しさん
07/09/10 10:11:33
まだMFCとか言ってんの?馬鹿なの?
57:デフォルトの名無しさん
07/09/10 10:28:07
覚え立てで嬉しくなってるか、MFCでしか作れないんだろ。
58:デフォルトの名無しさん
07/09/10 13:08:40
どうせならWTLで
59:52
07/09/10 13:19:32
>>53
FolderItem.InvokeVerbでコンテキストメニューの項目を実行できることなどは
わかったのですが、コンテキストメニュー全体を開く方法がわかりません。
もうちょっと情報をいただけないでしょうか?
60:デフォルトの名無しさん
07/09/10 13:32:09
MFCって「マクドナルドフライドチキン」の略だろ
61:デフォルトの名無しさん
07/09/10 13:36:03
>>59
IContextMenu
62:52
07/09/10 14:18:31
>>61
URLリンク(www.codeproject.com)
役に立たねえ野郎だ。
そんな能力で回答しようと思うんじゃねえ。カスが。
63:デフォルトの名無しさん
07/09/10 14:27:13
そんなに自分を卑下したらいけない
64:デフォルトの名無しさん
07/09/10 18:59:50
キーボードの入力判定について質問します。現在GetASyncKeyStateを用いて
キーボードの入力判定を行っているのですが、別ウインドウがアクティブの場合
でも、キー入力を拾ってしまいます。
例えば、自身のプログラムと同時にメモ帳を起動してあるとき、メモ帳への入力
を拾ってしまう。
自身のウインドウがアクティブの場合のみキー入力の判定をしたいのですが、
GetASyncKeyStateでは出来ないのでしょうか。マイクロソフトのサイトでは、
GetASyncKeyStateの説明に
「他のスレッド( またはプロセス)のウィンドウがキーボードフォーカスを
備えている場合は、0 が返ります」とあったので出来るとおもったのですが…。
WM_KEYDOWNなどのメッセージ処理やDirectInputであれば可能なことは解っているのですが、
できれば使用したくありません。
わがままですみませんが教えてください。
65:デフォルトの名無しさん
07/09/10 19:38:09
GetForegroundWindow で自分のウィンドウがアクティブかどうか調べれば済むのでは
66:デフォルトの名無しさん
07/09/10 20:23:37
65さん 上手くいきました。ありがとうございました。
67:デフォルトの名無しさん
07/09/10 20:50:33
VC5で使える最後のSDKってどこかで手に入ります?
68:デフォルトの名無しさん
07/09/10 22:56:40
EnumWindowで質問があります。ム板で追い出されてしまいました...
諸先輩方よろしくお願いします。
○やりたいこと
・PHP+Cで、PHPから外部exeを起動して任意のWindowのPrintScreen取得。
外部exeは常駐ではなく、PHPで指定されたときのみ実行。
○質問 :
@PHPからEnumWindowを使用した外部exeを起動すると、外部exe内のEnumWindowが期待通りに動かず、
意味のわからないハンドルを取得してしまいます。
ソースが学校のためうろ覚えですが、取得ハンドルのタイトルを見る限り、"Zend Timeout Window"とか"SENS"とか、
"○○WindowSocket?"のようなものが5つくらい取得されていて、Windowsアプリのハンドルは取れませんでした。
これは何でしょうか?回避方法を教えてください。
APHPで任意のWindow画面の画像キャプチャする方法があれば、ヒントを教えて下さい。
○プログラム内容 :
・Cプログラム
コンソールからWindow画像を取得するexeを作成しました。
起動時にWindowタイトルの一部を入力すると、その画像を取得します。不一致はデスクトップ画面を取得します。
EnumWindowでハンドル取得 -> Bmp作成 -> BitBlt -> ファイル保存の流れです。
コンソールからは正しく動作しています。
・PHPプログラム
簡単な入力Formのみ。ボタンを押すと上記exeをsystem命令で起動しています。
○環境
・Windows 2000, Pen4 2G, MEM 512M
・Apache2.2.4, PHP 5.2.4 + zend debugger, VC6, eclipse + PDT
69:68
07/09/10 22:58:59
>>68
ム板で追い出されたのではなくマ板でした。失礼しました。
Win32APIのスレッドですが、できればPHPの方もアドバイスお願いします。
70:デフォルトの名無しさん
07/09/10 23:00:06
宿題は宿題スレへ
71:デフォルトの名無しさん
07/09/10 23:00:26
PHP用のモジュールを作ればいいだけの話。
72:デフォルトの名無しさん
07/09/10 23:01:55
>>69
禿しくスレ違い。PHP板で聞いた方がいい。
73:デフォルトの名無しさん
07/09/10 23:09:02
全部一つのexeでやってしまえば解決
74:デフォルトの名無しさん
07/09/10 23:11:42
百個のexeでやってしまえば解決
75:デフォルトの名無しさん
07/09/10 23:16:57
>>68
Apacheがサービスとして動いているなら、
EnumWindowがうまく動いていないように見えるのは、
デスクトップが異なっているため。
ウィンドウステーションとかでググれば色々わかると思う。
サービスのプロパティで、
「デスクトップとの対話をサービスに許可」にチェックを入れれば、
そのプログラムはお前が思っていたとおりに動くようになるかもしれない。
ただし、セキュリティ上の問題があるかもしれないので、慎重にやれ。
76:デフォルトの名無しさん
07/09/10 23:20:03
一応API関係なんじゃないの
PHPがサービスとして起動していて目的の窓と別セッションになっているとか
77:68
07/09/10 23:27:30
>>75
どうもです。ウィンドウステーション知りませんでした。
プロセスが異なるぐらいは想像していたのですが、
検索キーワードがまったく思いつきませんでした。
ありがとうございます。セキュリティーは何とかなりそうです(多分)。
78:68
07/09/10 23:49:22
>>76
どうもです。仰るとおりサービスで起動しているため、ユーザーのデスクトップが取れていなかったみたいです。
ネット調べてたらGetProcessWindowStation命令で行けそうな感じです。
ありがとうございました。参考リンクはっときます。
URLリンク(forums.belution.com)
URLリンク(support.microsoft.com)
79:デフォルトの名無しさん
07/09/11 00:02:32
多少和んだ
80:デフォルトの名無しさん
07/09/11 00:05:21
>>78
殺す
81:デフォルトの名無しさん
07/09/11 00:27:49
>>80
なんで?
キンタマみたいなのができそうだから?
82:デフォルトの名無しさん
07/09/11 00:30:40
どして殺すの( ゚д゚)
83:デフォルトの名無しさん
07/09/11 00:32:27
( ゚д゚ )なぜ殺した
84:68
07/09/11 00:41:41
あはっwwwすでに殺されてるしwwwwwww
ウイルス作る技術も度胸もありません。へたれなんでwwwwwwwwww
セキュリティー絡みの監視ソフト作成してて、画面の定期的なスナップが必要だったのです。
皆様どうもです!
85:デフォルトの名無しさん
07/09/11 01:16:02
>>84よ、>>80は実は優しい子。
あとでザオリクをry
86:デフォルトの名無しさん
07/09/11 01:38:20
VC++6で生成したサンプルプログラムが
2005Expressでコンパイルできない(´・ω・`)
87:デフォルトの名無しさん
07/09/11 01:44:29
ありがち
88:デフォルトの名無しさん
07/09/11 01:44:45
>>86がバカだからVC++6で生成したサンプルプログラムが
2005Expressでコンパイルできない(´・ω・`)
89:デフォルトの名無しさん
07/09/11 04:59:18
フリーソフトのLinkOpenとかでやっている、
「エクスプローラ上のファイルのアイコンを選択状態(シングルクリックした状態)にする」
のってどうやるんでしょうか。いわゆるシェルAPIを使うだと思うのですが、
扱ったことがなく見当がつきません。よろしくお願いします。
90:デフォルトの名無しさん
07/09/11 05:10:42
explorer C:\Windows,/select
91:デフォルトの名無しさん
07/09/11 05:49:58
おお! 今はもう時間が無いのでとりあえずですが
「ファイル名を指定して実行」で期待した振る舞いになるのを確認しました
ありがとうございます
92:デフォルトの名無しさん
07/09/11 11:59:03
SJISベースのアプリ(のGUIなコントローラ)にUNICODEのファイル名を突っ込むと
当然変換時に欠落した文字がでてファイル操作等に失敗する可能性が出てきますが
そういうのをなるべく小手先で対処する方法はないですか?
1. Unicodeなテキストをメモリ上にロード
2. 1.のメモリデータをSJISなAPIやコントローラ(ListBox等)に突っ込む
3. 2.のデータを取り出してファイル操作 <- ここでエラー
例えば1.2.の間でファイル名がSJISに変換不可と判明したら8.3形式にするといったことをやれば出来るのかなと漠然と考えていますが・・・
93:デフォルトの名無しさん
07/09/11 12:22:44
それでいいんじゃね
94:デフォルトの名無しさん
07/09/11 12:45:12
ハードリンクを作るとか
95:デフォルトの名無しさん
07/09/11 18:57:12
>>92
ファイル名だけ対応しているソフトは結構あるが;
パス名に対応していないソフトが多いですね。
ぜひ、がんばって対応してください。
UTF-8 に対応したソフトも増えてきたので、内部で UTF-8 でやったどうですか?
96:デフォルトの名無しさん
07/09/11 19:00:24
やったどう
97:デフォルトの名無しさん
07/09/11 19:45:02
殺した後に姦淫してやる
98:デフォルトの名無しさん
07/09/11 21:26:37
( ゚д゚ )なぜ犯した
99:デフォルトの名無しさん
07/09/11 21:31:08
復活させるため
100:デフォルトの名無しさん
07/09/11 21:31:18
そこに穴があるからさ!
101:デフォルトの名無しさん
07/09/11 22:46:57
特定のコントロールに文字を送りたいんだけどどうしたらいい?
102:デフォルトの名無しさん
07/09/11 22:49:06
そんな簡単な事も分からんのか死ね
103:デフォルトの名無しさん
07/09/11 22:50:40
おまえにはふたつあるが
おれにはひとつしかないじゃないか
しかもぼうがひとつおおいし…
ありゃ2か…
ありゃりゃ3か…orz
104:デフォルトの名無しさん
07/09/11 22:50:51
どんな風に渡すかにもよる
単純にSetWindowTextで済むなら楽だが
105:デフォルトの名無しさん
07/09/11 23:02:27
ゴメ
特定のコントロールに対してVBAのSendkeysの様に文字を送りたかったんだ。
sendkeyじゃ誰かが触ってアクティブフォームが変わったら送り先が変わってしまうので、
送り先を指定してkeyを送りたい。
106:デフォルトの名無しさん
07/09/11 23:22:15
ウィンドウ指定してWM_KEYDOWNでいいんじゃねーの
107:デフォルトの名無しさん
07/09/12 00:51:33
初歩的な質問で申し訳ないのですが、タイトルバーの横にあるMINBUTTONやCLOSE BUTTONって、
どうやってメッセージを捕まえるのでしょうか?ご教授よろしくお願いします。
108:デフォルトの名無しさん
07/09/12 00:53:48
>>107
GetMessage
WM_SIZE
WM_CLOSE
109:デフォルトの名無しさん
07/09/12 00:59:38
WM_SYSCOMMAND
110:デフォルトの名無しさん
07/09/12 01:05:06
>>108 >>109
ご教授ありがとうございます。
WM_SYSCOMMANDで欲しいメッセージを捕まえることができそうです。
ありがとうございました。
111:デフォルトの名無しさん
07/09/12 01:53:49
作ってるアプリの機能がかなり増えてきて
コールバック関数がものすごく肥大化してきました。
これはやむを得ないことなんですかね?
112:デフォルトの名無しさん
07/09/12 01:56:04
いいえ
113:デフォルトの名無しさん
07/09/12 01:59:36
どうすりゃええのん
114:デフォルトの名無しさん
07/09/12 01:59:46
例えばウィンドウプロシージャなら、
メッセージクラッカみたいに―あるいはそれを使って―
メッセージ毎に関数を分割するという手がある。
115:デフォルトの名無しさん
07/09/12 02:01:50
茸っぽい
茸は文学ではない
116:デフォルトの名無しさん
07/09/12 02:07:32
メッセージクラッカですか
そういうのがあるんですね
ありがとうございました
117:デフォルトの名無しさん
07/09/12 05:37:40
デバイスコンテキストに対して、特定の座標の色の取得・設定はGetPixel, SetPixel(V)を使うしか方法はないですか?
速度が遅いので、他の方法を使いたいのですが。(TextOutとかはどうやって描いてるんだろう…
118:デフォルトの名無しさん
07/09/12 05:55:53
>>117
↓読むと幸せになれるかもしれない
URLリンク(wisdom.sakura.ne.jp)
ちょっとややこしいが
119:デフォルトの名無しさん
07/09/12 06:04:22
>>118
ありがとうございます。
一旦CreateDIBSectionで作ったビットマップにBitBltしてコピーし、
そこで直接データを読み書きして、その後、元のデバイスコンテキストへBitBltして戻す、という方法が思いつきました。
早速書いてみます。
120:デフォルトの名無しさん
07/09/12 10:23:20
現在、汎用的な関数として、
GetLastErrorからFormatMessage, MessageBoxへの連携処理を考えています。
ここのGetLastErrorで返されるエラー値なんですけど、
この値からメッセージの分類(クリティカル・警告・情報...etc)とか
判別できるものでしょうか?
できるのであれば、その手法を教えていただけませんか?
ちなみに、皆さんはどうしています?
121:デフォルトの名無しさん
07/09/12 14:14:48
思想を改める必要がある
GetLastErrorはあくまで補助的なものであって、本来やりたかった処理が失敗したことを通知することが最優先。
FormatMessageで得られるエラー原因は追加で表示してユーザーの参考にさせる程度が関の山。
122:デフォルトの名無しさん
07/09/12 14:34:55
HRESULTはビット毎に意味があるけど、GetLastErrorはビット29以外は
見た覚えがないな。
123:120
07/09/12 14:57:04
>>121
なるほど、割り切って内容だけを表示させることに勤めます。
>>122
HRESULTの資料を見て、>>120を考えてみたんですが、
ダメそうです。
お騒がせしました。
124:デフォルトの名無しさん
07/09/12 21:25:05
hMenu = LoadMenu(NULL, _T("IDR_MENU"));
SetMenu(hWnd, hMenu);
MENUITEMINFO menuItemInfo;
ZeroMemory(&menuItemInfo, sizeof(menuItemInfo));
menuItemInfo.cbSize = sizeof(menuItemInfo);
menuItemInfo.fMask = MIIM_TYPE;
menuItemInfo.fType = MFT_STRING;
menuItemInfo.dwItemData = TEXT("追加された");
//InsertMenu(hMenu, 15, MF_BYCOMMAND, 16, _T("追加された"));
InsertMenuItem(hMenu, 15, FALSE, &menuItemInfo);
DrawMenuBar(hWnd);
「追加された」が追加されず、セパレータになるんですが、どうしてですか?
InsertMenu の方だとちゃんと追加されます。
WinXP SP2
VC++2005
125:デフォルトの名無しさん
07/09/12 21:36:43
dwItemData = TEXT("追加された"); は
dwTypeData = TEXT("追加された");
じゃないかな ぱっとみだから間違ってたらすまんこ
126:124
07/09/12 21:41:50
>>125
ありがとうございました。
全然、気づかなかったです。名前が似てるから・・・
無事に、追加されました。
127:デフォルトの名無しさん
07/09/13 00:48:15
とある人力検索にて
Q:Web2.0が遺した物って何ですか?
A:DoCoMo2.0です
128:デフォルトの名無しさん
07/09/13 01:51:52
あるソフトのウィンドウ(syslistview32)にコンテキストメニュー
を表示しようと思い、
PostMessage(hWnd, OS.WM_KEYDOWN, VK_APP, 0);
PostMessage(hWnd, OS.WM_KEYUP, VK_APP, 0);
を実行しましたが何も反応がありませんでした。
別のソフトであればコンテキストメニューが表示されます。
やり方が間違っているのでしょうか?
ちなみに右クリックした瞬間(押し下げた瞬間)にメニューが
出るソフトと、クリックし終わった瞬間(押し上げた瞬間)に
出るソフトの両方があるんですね。
129:デフォルトの名無しさん
07/09/13 02:08:58
単純にそのソフトがそのキーを拾ってないだけじゃないの
130:デフォルトの名無しさん
07/09/13 02:10:40
WM_CONTEXTMENUを送ったらどうだろう?
131:デフォルトの名無しさん
07/09/13 09:49:52
spyを使おうぜ
132:デフォルトの名無しさん
07/09/13 11:47:02
>>130
できました!!
WM_CONTEXTMENUはコンテキストメニューが開くときに
自動的に送信されているんだと誤解してました
>>131
spyってwinspectorのことですか?
133:デフォルトの名無しさん
07/09/13 12:00:34
ウザイからどっか行って
134:デフォルトの名無しさん
07/09/13 16:43:29
どうしてもわからんので教えてください!
libpngとlibjpegを使っているのですが
片方ずつ使う分には問題ないのですが両方のlibを使おうとすると
LINK:2005エラーが出てしまいます。最初ランタイムが違うのかと
libの方を確認してビルドし直したりしたんですがどうやらそういう問題
ではなさそうです。何か解決法はあるのでしょか?
呼び出し方はこんな感じです。
#ifdef _DEBUG
#pragma comment(lib, "libjpegd.lib")
#pragma comment(lib, "libpngd.lib")
#else
#pragma comment(lib, "libjpeg.lib")
#pragma comment(lib, "libpng.lib")
#endif
135:134
07/09/13 17:03:16
Σ(・∀・ )勘違いでしたすみません解決しました><
136:デフォルトの名無しさん
07/09/13 22:17:50
プログラムを動かしてるOSにないAPIを使ったらどんなことが起こるのでしょうか。
例えばWin9xでW系APIや、Win2000でuxthemeのAPIなどです。
その関数が実行されないだけとか、何かエラーが発生する、そもそも起動できないとか。
試す環境がないので聞いてみました。
137:デフォルトの名無しさん
07/09/13 22:25:17
爆発する
138:デフォルトの名無しさん
07/09/13 22:38:32
>>136
スタティックリンクならエントリポイントが見つからないとかなる
動的リンクなら実行されないかエラーになる
139:デフォルトの名無しさん
07/09/13 22:40:13
URLリンク(www.uploda.org)
起動はする(CreateProcess == TRUE)けど、エントリーポイントに行く前にcsrss.exeが爆発させるので
ユーザー視点では起動しないのと同じ
140:デフォルトの名無しさん
07/09/13 22:55:22
9xのW版APIはエントリポイントだけあるはず。
そして稀にMessageBoxWやTextOutWなど機能するものがある。
141:デフォルトの名無しさん
07/09/13 22:55:24
dllからアタッチしたプロセスIDやウインドウハンドルとか取得するには何を使えばいいんですか。
ヒントください。
142:デフォルトの名無しさん
07/09/13 22:58:50
あたっちすれっどなんとかとか
143:デフォルトの名無しさん
07/09/13 23:08:56
>>140
忘れてけどそういえばそうだった 単純に失敗を返すだけの実装になってるんだった
で、たいていRegisterClassで失敗して無言でWinMainを終える、と
144:デフォルトの名無しさん
07/09/13 23:16:57
プログラミングWindowsで、RegisterCassExが失敗したら
MessageBoxで9x非対応というメッセージを表示して終了するコードを見て、
なるほどと思った。
145:141
07/09/13 23:19:59
>>142
ありがとん
DWORD GetCurrentThreadId(VOID);を見つけました。
146:デフォルトの名無しさん
07/09/14 00:03:42
>>140
MSLU使えば強制ANSI変換で一応動くはずだしな
147:デフォルトの名無しさん
07/09/14 00:07:00
>>146
つい先日、MSLUの浮動小数点のバグではまった。
148:デフォルトの名無しさん
07/09/14 00:08:35
だがすぐに抜け出した。
149:デフォルトの名無しさん
07/09/14 00:56:25
そしてまたはまった。
150:デフォルトの名無しさん
07/09/14 01:07:53
なんかエロい話だな
151:デフォルトの名無しさん
07/09/14 02:56:13
出して、入れて、出して、入れて、これがプログラムの基本です。
152:デフォルトの名無しさん
07/09/14 04:01:22
SNEG?
153:デフォルトの名無しさん
07/09/14 05:09:26
挿入が先だ。POPは後だ
154:デフォルトの名無しさん
07/09/14 05:14:05
朝からinserterだのpush_backだのと
155:デフォルトの名無しさん
07/09/14 05:18:01
Oh,Yes!Come on Fuck me!!
156:デフォルトの名無しさん
07/09/14 07:10:43
Yes,pussy
157:デフォルトの名無しさん
07/09/14 07:46:26
Shell_NotifyIcon の uTimeout が10秒より短くしても無視される件、
突破する方法しりませんか?
3秒がいいんだけど。
158:デフォルトの名無しさん
07/09/14 07:55:35
The system minimum and maximum timeout values are currently set at 10 seconds and 30 seconds, respectively.
159:デフォルトの名無しさん
07/09/14 08:21:35
通知アイコン専用スレッド作っちゃえ。
Shell_NotifyIconがタイムアウトするのは、
別の重い処理が走っているという事だから、
焦らず待ってもいい気はするけどね。
160:デフォルトの名無しさん
07/09/14 17:33:22
shit
161:157
07/09/14 18:13:00
>>158
それは読んだ。レジストリとかで変更できるのかな。
まさかシステムのDLLにハードコードされてるのか??
>>159
szInfoにNULLを渡すと消せるみたいなので、自分でタイマ制御するかな。。。
162:デフォルトの名無しさん
07/09/14 20:32:52
もしスレ違いだったらすみません。
ウィンドウを複数表示させて(子ウィンドウなど)、
ひとつのウィンドウをドラッグして移動させたら、
他のウィンドウも一緒に移動するようなことってできないんですかね?
グループ化のようなことです。
163:デフォルトの名無しさん
07/09/14 21:06:13
>>162
ハンドル保持してるんなら
WM_MOVEとかで設定したら?
164:デフォルトの名無しさん
07/09/14 21:25:23
>>162
>>163はなしで
WM_MOVEは移動後に送られるもんだった
165:デフォルトの名無しさん
07/09/14 21:43:40
WM_MOVING
166:デフォルトの名無しさん
07/09/14 23:39:20
素朴な疑問です。
皆さんにとってTCHAR型は現役ですか?
typedef std::basic_string<TCHAR> tstring;
とか
#ifdef UNICODE
とか、
もうそんな時代じゃないのでしょうか?
コード量を増やし、可読性を下げる、ゴミ虫のような存在でしかないのでしょうか?
167:デフォルトの名無しさん
07/09/14 23:50:03
TCHARで思い出したけど。
Win32APIのワイド文字はあくまでWCHARであり、wchar_tは違うよね。
168:デフォルトの名無しさん
07/09/14 23:59:01
俺はTCHARを現役にさせている。
使わないけど目の前にWindows 98マシンを置いている影響かも。
しかし、#ifdef UNICODEはメインのコード中には出現させない。
比較的ライブラリ的な部分で吸収するようにしている。
>>167
そうかもしれないけど、
でもきっとみんなごっちゃに扱っているよ。
少なくとも俺はそう。
169:デフォルトの名無しさん
07/09/15 00:02:43
俺も現役だな。
文字列は LPCTSTR とか _T() で囲ってたりする。
ただ tstring も使ってはいるんだけれど、
サロゲートペアの問題により
TCHAR* 変数を ++ した所で次の文字を指す保証は無いと知って、
CharNext() を利用する CString の方が安全という事を最近知った。
170:デフォルトの名無しさん
07/09/15 00:07:36
VC2005でプロジェクト作ってまずするのは、「マルチバイト文字セットを使用する」
171:デフォルトの名無しさん
07/09/15 00:20:17
はい、>>166はゴミ虫のような存在でしかありません。
172:デフォルトの名無しさん
07/09/15 01:32:40
> TCHAR* 変数を ++ した所で次の文字を指す保証は無いと知って、
どうして?
173:デフォルトの名無しさん
07/09/15 01:33:10
ごめんサロゲートペアって書いてあるな
174:デフォルトの名無しさん
07/09/15 01:33:17
>サロゲートペアの問題により
175:デフォルトの名無しさん
07/09/15 01:44:12
漏れはTCHAR撲滅
STLでstd::string使うようにした
コードはUTF-8
API呼ぶときだけWCHARにして渡してる
戻り値も変換してから使う
無駄なこと考えなくて済むようになったので
プログラミングに専念出来るようになった
176:デフォルトの名無しさん
07/09/15 01:49:24
std::stringにUTF-8を突っ込むとな?
177:デフォルトの名無しさん
07/09/15 01:56:34
>>169
CharNextはサロゲートペア非対応って書いてあるけど。
URLリンク(blogs.msdn.com)
でも結合文字列に対応しているのは立派。
あと、tstring/CStringで、インクリメントして次の文字にならないと言えば、
サロゲートペアや結合文字列の前に、ANSI時のマルチバイト文字があるだろうに。
178:デフォルトの名無しさん
07/09/15 02:05:26
>>169
サロゲートペアでなく、マルチバイトの問題のことを言っているのか?
現時点ではCharNextを使ってもサロゲートペアは扱えず、
IS_SURROGATE_PAIR
IS_HIGH_SURROGATE
IS_LOW_SURROGATE
というマクロを使って判定するしかないそうな
参考
URLリンク(slashdot.jp)
179:デフォルトの名無しさん
07/09/15 02:06:55
かぶった...orz
180:デフォルトの名無しさん
07/09/15 02:44:17
>>176
なんか問題あるの?
181:169
07/09/15 02:44:40
>>177-178
うそん orz
182:デフォルトの名無しさん
07/09/15 02:52:03
質問です。
VB6 でファイルのプロパティ(バージョンや製品名など)を取得するのに
GetFileVersionInfo等を使っています。
ロケールIDをVerQueryValueで取得できたので、言語名をGetLocaleInfo(ロケールID, LOCALE_SENGCOUNTRY)で
取得すると、"Japan"という英語の文字列が返ってきました。
しかしシェルの「ファイルのプロパティ」で表示されるのは「日本語」や
「英語(米国)」など日本語の文字列です。
これを取得するにはどうしたらいいんでしょうか?
183:デフォルトの名無しさん
07/09/15 02:55:14
ジャパーン♪
184:デフォルトの名無しさん
07/09/15 03:33:22
FAR PASCALとかNEARって書いてあるコードをたまに
見かけますが
どういう意味があるんですか?
185:デフォルトの名無しさん
07/09/15 03:41:58
16ビットの名残
186:デフォルトの名無しさん
07/09/15 10:31:59
_stdcallとか_cdeclって書いてあるコードをたまに
見かけますが
どういう意味があるんですか?
187:デフォルトの名無しさん
07/09/15 10:37:18
聞く前にドキュメント嫁
188:デフォルトの名無しさん
07/09/15 10:37:35
ググれ
189:デフォルトの名無しさん
07/09/15 10:40:16
ドキュメントなんてないし
ぐぐってもでないからきいてるんだよ
わかんないなら書き込むなよ
190:デフォルトの名無しさん
07/09/15 10:43:44
すいません 調べたらなんとなくわかりました
スレ汚しすまそ
191:デフォルトの名無しさん
07/09/15 10:49:28
>>189
死ね
192:デフォルトの名無しさん
07/09/15 11:00:09
>>182
MSDNよく読めや、ボケが。
と言いたいところだが、これに関してはwinnls.hを直接読んだ方が遥かに手っ取り早い。
たぶん、必要なフラグは LOCALE_SNATIVELANGNAME だと思う。
193:デフォルトの名無しさん
07/09/15 11:14:18
クイズの答えをEditコントロールに入力し、
その文字列を取得し、比較し正解か不正解か
というものを作りたいんですが、文字列を取得する方法を教えてください。
一応調べたら、GetWindowTextではできないってことはわかったんですが・・。
194:デフォルトの名無しさん
07/09/15 11:19:30
次の質問をどうぞ
195:193
07/09/15 11:37:50
すみません。自己解決しました☆GetWindowTextでできました。
196:デフォルトの名無しさん
07/09/15 13:35:36
おめでとう☆
197:デフォルトの名無しさん
07/09/15 15:42:58
以前、マウスカーソルの移動とキーの自動入力を行うプログラムを作る必要があり、
その時は、調べて解決したのですが、今調べるとどうしても見つかりません。
たしか、APIをコールした後、開放しないと入力を受付けなくなるタイプと、
入力を受付けるタイプ(たしか、こちらは非推奨だったような)の二つがあったと思います。
そのような、マウスカーソルの移動とキーの入力を行う
APIの名前をご存知のかたがいらっしゃったら教えてください。
198:デフォルトの名無しさん
07/09/15 15:50:48
チートしたいから教えて下さいってはっきり言えや
199:デフォルトの名無しさん
07/09/15 17:26:15
チートしたいから教えてください!
200:デフォルトの名無しさん
07/09/15 17:48:13
ISAPIでのメールスロットについて悩んでおります。
まず、メールスロットのサンプルプログラムを作りました。
HANDLE hSndSlot = CreateFile(SLOTNAME, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ) ;
この通りにCreateFileしますと問題なくハンドル作成できます。
次にISAPIのDLLの中で全く同じCreateFileの一文を書いたのですが、
ERROR_ACCESS_DENIEDのエラーになってしまいます。
(CreateMailSlot無しですと、ISAPI-DLLの中でもERROR_FILE_NOT_FOUNDが返ってきます)
ISAPI-DLL内でCreateFile()に失敗する原因としてどのようなものが挙げられるでしょうか。
二時間以上悩んでおりますが全く抜け出せません・・・
201:デフォルトの名無しさん
07/09/15 18:59:20
セキュリティー上危なくない?
202:デフォルトの名無しさん
07/09/15 23:06:26
すみません。
OleLoadPictureを使ってjpegを読み込みたいのですが、
読み込んだ直後にIPicture::get_Height、 get_Widthでサイズを取得すると、
実際の画像の大きさよりかなり大きな値になりました。
例えば113 は 2990に、640は16933になります。
OleLoadPictureの戻り値は正常です。
何か原因でしょうか?
203:デフォルトの名無しさん
07/09/15 23:11:32
>>202
それ単位がPixelじゃないんだ
HIMETRICなんだ
URLリンク(msdn2.microsoft.com)(VS.80).aspx
204:デフォルトの名無しさん
07/09/15 23:52:07
>>203
なるほど。おかげ様で正常にピクセル単位に変換できました。
ありがとうございました。
205:デフォルトの名無しさん
07/09/16 00:50:29
>>192
回線切ってwinnls.h を読んできました。なんとかなりそうです。
SENGCOUNTRY って、English Country のことですね。
そこら辺に落ちてたサンプルの作者が分かってなかったみたいです。
人のせいにします。
ありがとうございました。
206:デフォルトの名無しさん
07/09/16 00:53:00
このスレの人たちはMFC使ってない人が多いのかな?
個人的にはMFCきらいなんでWin32そのまま使ってます
207:デフォルトの名無しさん
07/09/16 00:56:36
MFCは別スレなんだから、ここは使ってない人が多いのは当たり前。
208:デフォルトの名無しさん
07/09/16 01:10:04
>>205
一応追伸
俺が求めていたのはLOCALE_SLANGUAGE(localized name of language)
だったようです。では。
209:200
07/09/16 08:46:51
もう5時間試行錯誤しているのに
さっぱり進めないッスorz
210:デフォルトの名無しさん
07/09/16 08:52:10
>>209
>>201
211:デフォルトの名無しさん
07/09/16 08:55:31
>>209
死ぬまで彷徨えばいいよ
212:デフォルトの名無しさん
07/09/16 09:25:48
>>209
ISAPI全然しらんけど
MSDNライブラリの「Reading from a Mailslot」っての読んだ?
213:デフォルトの名無しさん
07/09/16 09:27:23
SHFileOperation でフォルダ・ファイルのコピー等の操作をしています
Explorerでは、出てくるダイログが最前面表示でしっかり出てきますが、
Flagの設定等でそれと同じようにできるでしょうか、教えてください。
214:デフォルトの名無しさん
07/09/16 09:35:37
できます
215:デフォルトの名無しさん
07/09/16 09:38:50
>>209
正直IIS全然詳しくないけど、ISAPIってNetworkServiceで動作するんじゃないの?
メールスロットの作成元がよく判らないけど、
既定では作成ユーザかSystem位しかアクセスできないような気がする。
216:デフォルトの名無しさん
07/09/16 09:41:25
>>214
どうもありがとうございました!!
217:デフォルトの名無しさん
07/09/16 09:43:06
bool(BOOL)は扱いが楽だが、たまに情報量が少なくて戻り値型を変えてほしいと思うケースがある
218:デフォルトの名無しさん
07/09/16 09:52:10
HRESULTにしろってか
219:デフォルトの名無しさん
07/09/16 10:00:27
>>214
ところで、Flag引数のバリエーションにはヘルプによると
fFlags
FOF_ALLOWUNDO
FOF_CONFIRMMOUSE
FOF_FILESONLY
FOF_MULTIDESTFILES
FOF_NOCONFIRMATION
FOF_NOCONFIRMMKDIR
FOF_NO_CONNECTED_ELEMENTS
FOF_NOCOPYSECURITYATTRIBS
FOF_NOERRORUI
FOF_NORECURSION
FOF_NORECURSEREPARSE
FOF_RENAMEONCOLLISION
FOF_SILENT
FOF_SIMPLEPROGRESS
FOF_WANTMAPPINGHANDLE
FOF_WANTNUKEWARNING
とありましたが、これ以外にもありますでしょうか?該当の内容のFlagが
見つけられずにいます、よろしければご教示のほどよろしく!
220:デフォルトの名無しさん
07/09/16 10:34:25
ヘッダ眺めれ
221:デフォルトの名無しさん
07/09/16 10:45:58
hwnd
222:デフォルトの名無しさん
07/09/16 13:39:59
>>220-221
hwnd ではゼロポインタを指定しています。これを別のものに設定すると
可能になるでしょうか。
じつはWin32APIはほとんどこれしか使っていない.NETユーザーなもので
この辺のことがよくわかりません。すみませんが、よろしくお願いします。
223:デフォルトの名無しさん
07/09/16 15:19:06
>>222
C言語暦1ヶ月のわて思うに
hwndをゼロポインタにしてるから、SHFileOperationがいじけたんじゃね!
ゼロ以外のhwndにしなきゃ駄目なんじゃない。とにかくゼロ以外の、たとえば
1とか2とかに変更して試してみたらいいんじゃね。オーナーウインドウが何か知らないけど、
出来ればオーナーウインドウのHWNDが指定できると申し分ないと思うんだけど。
224:デフォルトの名無しさん
07/09/16 15:26:18
>>223
あなたのいるプロジェクトは危険だというのが
その文章からヒシヒシと伝わってくる
上達にするようにがんばれ。超がんばれ。
225:デフォルトの名無しさん
07/09/16 15:29:51
オーナーを指定すれば、必ずその上にウインドウが来ると言うだけの話。
226:デフォルトの名無しさん
07/09/16 15:48:49
>>224
わてはプロジェクトにいないづら。学校に居て教室で講義子守唄にzzzz
間違ってC言語の授業とってしまった,orz。
Cは一々型を指定しなきゃならないから鬱陶しいなり。
動的言語が主流の時代にC言語を教えてる学校だから、やっぱ危ないよなわての学校
227:デフォルトの名無しさん
07/09/16 16:00:35
何でここにおんねんw
228:デフォルトの名無しさん
07/09/16 16:04:21
>>226
Cはやっておかないとだめよ
229:デフォルトの名無しさん
07/09/16 16:10:29
その主張は重々わかるんだが、それでもソフトウェアする上で避けられないのがCなんだよなあ。
Java, C#マンセーな俺だがそれでもC使えないヤツはだめだと思う。
230:デフォルトの名無しさん
07/09/16 16:11:24
>>227
宿題スレ行くつもりが、スレタイよくを見ずにクリックしたらココが現れたなり
これ何かの縁づら。
231:デフォルトの名無しさん
07/09/16 16:29:05
はいw雑談スレになりましたw
232:デフォルトの名無しさん
07/09/16 16:50:42
>>226
学校の授業はそれくらい保守的なのが相場。
233:デフォルトの名無しさん
07/09/16 16:57:24
東大ってことしからpython教えてなかったか?
234:222
07/09/16 17:28:32
>>223
どうもです。確かな縁で教えていただくことができました。助かりました!!
>>225
あーそうだったんですか、、やっとわかりました。うまくできているのですね!!
みなさんどうもありがとうございました!!
235:デフォルトの名無しさん
07/09/16 18:26:42
Windows画像とFAXビューアの高速版を自分で作ろうとしていたら、
FindFirstFile、FindNextFileでは、エクスプローラで表示されている順番で
ファイル名を取得することができませんでした。
例えば、更新日時でソートしてあるフォルダでは更新日時順に画像を表示したいです。
適切なAPIがあれば教えて下さいませ。
236:デフォルトの名無しさん
07/09/16 18:38:23
RegQueryValueEx
237:デフォルトの名無しさん
07/09/16 19:15:08
IShellFolder, IShellFolder2
238:デフォルトの名無しさん
07/09/16 20:38:44
>>236>>237
そのキーワードで検索して色々と知ることができました。
後は自分で調べていきたいと思います。
どうもありがとうございました。
239:200
07/09/16 21:53:54
IISの権限の問題でした。
admin権限で動かしてみたところ成功いたしました。
レスくださったかたありがとうございました。
240:デフォルトの名無しさん
07/09/17 04:26:08
InsertMenuItemでMENUITEMINFOを指定しますが、メニューの
文字色を変えるにはどのようにしたらいいのでしょうか?
fTypeをMFT_STRINGにすると色を指定できないようですし
241:デフォルトの名無しさん
07/09/17 04:29:28
MFT_OWNERDRAW を指定して自分で描く
242:デフォルトの名無しさん
07/09/17 04:43:21
>>241
こんな時間に即レスthx
トライしてみます
243:デフォルトの名無しさん
07/09/17 10:15:08
VC についてるspy++なんですが、アプリ起動の際に、メッセージ横取りを禁止させる関数ってあるんすかね?
244:デフォルトの名無しさん
07/09/17 10:16:04
無い
245:243
07/09/17 10:20:28
関数といったのが、まずかったか・・・方法でもいいんですけど・・・
凄い人が集まってそうなので聞いてみたんですが、アプリ解析対策とかしないんですか?
246:デフォルトの名無しさん
07/09/17 10:22:06
逆に聞きたいのだが、>243からどうやったら>245の意味を読み取れると思うのだ?
247:デフォルトの名無しさん
07/09/17 10:23:04
フックを禁止する方法が無いんじゃね
kernel32に手出ししてみるとか?
248:244
07/09/17 10:24:19
メッセージ見られるとやばいようなら最初からCUIにするよ
249:デフォルトの名無しさん
07/09/17 10:24:37
故意か天然かしらんけど、煽り口調になってるぞ。
煽ってもなにも出ないばかりか、袋にされるだけさ。
250:デフォルトの名無しさん
07/09/17 10:29:10
rootkitみたいなものを作って叩かれたいマゾなんだね。
251:デフォルトの名無しさん
07/09/17 10:41:39
チートしたい人とチートされたくない人って似た質問するんだよね
252:デフォルトの名無しさん
07/09/17 10:44:21
敵を知り己を知ればなんとやら
253:デフォルトの名無しさん
07/09/17 10:45:26
>>251
チートておまえ・・・。
254:デフォルトの名無しさん
07/09/17 10:47:40
メッセージレベルでクラック対策しようってのがそもそも間違ってる
255:デフォルトの名無しさん
07/09/17 10:55:36
そういえばそんなフィルタドライバのソースがどっかに転がってたな
読もう読もうと思っててそのままURLもとろも失くしてしまったが
256:デフォルトの名無しさん
07/09/17 10:56:17
もとろも! orz
257:デフォルトの名無しさん
07/09/17 11:20:11
,-、 ,.-、
./:::::\ /::::::ヽ
/::::::::::::;ゝ--─-- 、._/::::::::::::::|
/,.-‐''"´ \:::::::::::|
/ ヽ、::::|
/ ヽ
l \ l
.| ● / |
l , , , ● l にゃんだばかやろー
` 、 (_人__丿 、、、 /
`ー 、__ /
/`'''ー‐‐─‐‐‐┬'''""´
./ ___ l __
l ./ / |/ |
`ー-< / ./ ./
`ー‐--{___/ゝ、,ノ
258:デフォルトの名無しさん
07/09/17 13:01:25
フックされても問題ないように
パラメータを暗号化すれば医院で内科医
259:デフォルトの名無しさん
07/09/17 13:53:37
文字列テーブルの文字を使うのに
文字配列用意してそこにコピーしないとだめっていうのは
面倒ですねぇ・・・。
文字配列の大きさの問題(文字列が入りきらない可能性)もあるし。
無駄に大きな配列用意するのもどうかなってかんじ。
260:デフォルトの名無しさん
07/09/17 14:42:50
よくわからんが、必要なサイズぴったしに malloc すればいいんでないの?
261:デフォルトの名無しさん
07/09/17 16:45:47
ListBoxとか使うときに
自分で持ってる構造体があるのに
API用にもうひとつ作ってコピーしないといけない理不尽
のことを言ってるのかな?
262:デフォルトの名無しさん
07/09/17 17:06:36
>>261
>API用にもうひとつ作ってコピーしないといけない理不尽
コピーした領域をOSに渡す形なら、OS側は任意の時点で領域解放できる。
・アプリが持っている領域を、直接OSに渡した場合、その領域を解放するタイミングを知るスマートな方法はあるか?
(OS側の処理が先に終わった場合、アプリに、その領域を解放してよいか問い合わせるのか?
それとも、解放要求をアプリに対して発行するのか?
どちらも本末転倒でしょ?)
263:262
07/09/17 17:08:04
261じゃなくて >>259 だった。すまん
264:デフォルトの名無しさん
07/09/17 17:23:44
ニワトリが先か、タマゴが先か論争に発展してきますた。
265:デフォルトの名無しさん
07/09/17 17:26:01
Javaや.NETはもう一度コピーしてるんだからまだマシ
266:デフォルトの名無しさん
07/09/17 18:18:56
>>265
kwsk
267:デフォルトの名無しさん
07/09/17 18:21:53
>>266
ahsg
268:デフォルトの名無しさん
07/09/17 19:01:46
そもそも>>259はLoadStringの話に見えるのは気のせいか?
269:デフォルトの名無しさん
07/09/17 21:25:47
そうなんです。
LoadString で文字列を取り出すとき
文字列の長さを気にせずに柔軟に取り出せる良い方法ないのかなぁと悩んでます。
いろいろ調べて MFC か ATL 使えばいけるのはわかったんですが
Windows プログラミングの勉強はじめたばかりで
両方ともよくわかってないんで
とりあえず MFC も ATL も使わないで出来る方法ないのかなぁと悩んでたんですけど
三日ぐらいあれこれ考えたんですけど
コレといったのが見つからないんでもう悩むのやめます。
270:デフォルトの名無しさん
07/09/17 21:38:28
それならLoadResourceとかを使えばいいんだよ。
俺もやった。リソース内ではUTF-16LEのくせに、
なぜか9xがLoadResourceWを実装していないというケチさのおかげで。
271:デフォルトの名無しさん
07/09/17 21:40:25
NULLを含まない格納した文字数が返るのだから nBufferMaxの値-1
が返ってきたときはたぶんバッファを増やさないといけないと判断できると思う
最初 260 とかでスタックにとって、それで足りなそうな場合だけ動的に 260*2 。
それでもだめなら 260*2 *2 。それでにだめなら 260*(ry
って感じか?
272:デフォルトの名無しさん
07/09/17 21:51:57
俺はめんどくさいからそんな仕様にしない
273:デフォルトの名無しさん
07/09/17 22:25:38
ネットで勉強してウィンドウとメニューバーまでは作れるようになったけどあと
がまったくわかりません(´・ω・`)
フリーソースのを見て勉強するのがいいってよくみるけど読んでみてもチンブンカンブン
需要はあるはずなのになんでWin32APIの書籍ってこんなに少ないんだろ…
どこかいいサイトか本ありませんか?
274:デフォルトの名無しさん
07/09/17 22:27:22
>>271
そーいやリソース文字列は、最大65536バイトまでだったけ?
275:デフォルトの名無しさん
07/09/17 22:32:51
>>273
猫でも読んでろ
276:デフォルトの名無しさん
07/09/17 22:34:23
>>273
知識つけたきゃテンプレの猫とかAPI入門嫁
アドバイスしとくと、どこまで覚えるかより何をしたいかが重要だったりする
それと人のソースはあくまで一例と捉える
277:デフォルトの名無しさん
07/09/17 22:34:28
>>274
URLリンク(msdn2.microsoft.com)
[quote]
For 16-bit string resources, 255 characters is the maximum length.
For 32-bit string resources, 65535 characters is the maximum length.
[/quote]
278:デフォルトの名無しさん
07/09/17 22:36:58
>>277
おーいえ
さんくす
279:デフォルトの名無しさん
07/09/17 23:59:48
>>275-276
d 猫ってAPIのもあったのね。HPは見づらいから今度探して買ってくる
280:デフォルトの名無しさん
07/09/18 00:13:28
>>279
あほは死ね
281:デフォルトの名無しさん
07/09/18 00:23:21
>>280
「あはは死ね」だと思った。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4249日前に更新/104 KB
担当:undef