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


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

Win32API質問箱 Build41
251 名前:デフォルトの名無しさん :2006/03/12(日) 22:18:09
>>250
echo は内部コマンド

252 名前:デフォルトの名無しさん :2006/03/12(日) 22:29:10
出来るPCがあるほうが不思議なんだが
Cygwinのechoでも入ってるのか?

253 名前:デフォルトの名無しさん :2006/03/12(日) 22:53:58
プライマリスレッドのハンドルが

254 名前:デフォルトの名無しさん :2006/03/12(日) 23:11:04
飛んでいった。

255 名前:デフォルトの名無しさん :2006/03/13(月) 01:45:03
ぼくは小さく

256 名前:デフォルトの名無しさん :2006/03/13(月) 06:47:54
ダイアログのスタティック・テキスト欄にフォルダ名を表示しているんですが、
パスが長くなると見えなくなります。頭と尻を残して途中を省略するのって
自分で編集しないとだめですか。API 一発ってのはないのでしょうか。

257 名前:デフォルトの名無しさん :2006/03/13(月) 07:03:45
DT_MODIFYSTRINGとDT_PATH_ELLIPSISつけてDrawText()

…冗談だ。

258 名前:デフォルトの名無しさん :2006/03/13(月) 07:05:30
この辺かな?
GetShortPathName
PathSetDlgItemPath
PathCompactPath
PathCompactPathEx


259 名前:250 :2006/03/13(月) 13:20:31
>>251
内部コマンドはCreateProcess出来ないって事?
Cygwinとかないのに、なぜ出来るPCがあるのかな。

260 名前:デフォルトの名無しさん :2006/03/13(月) 13:25:58
「何の」内部コマンドかに思い当たれば解決できるぞ。

261 名前:256 :2006/03/13(月) 13:37:03
>>258
有難うございます。説明を読んで見ます。
聞いてみるものですね。縮めては入るか縮めては入るかってのを繰り返すのかと
数日コードを考えて滅入っていましたです。

262 名前:デフォルトの名無しさん :2006/03/13(月) 14:57:17
まぁ、パス名短縮くらい自前でも楽にできるがな

263 名前:デフォルトの名無しさん :2006/03/13(月) 18:31:24
Shell Lightweight Utility APIsのPath Functionsは、
MAX_PATHに制限されているのだけど、
似たようなことをする長さ制限のないもので、
Windows2000以降で追加DLL無しで使えるものは、
ありますか?

264 名前:デフォルトの名無しさん :2006/03/13(月) 18:42:57
>>260
答え書いちゃえよ

>>250
×ret = ::CreateProcess(NULL,"echo test ABC",NULL,NULL,TRUE,0,NULL,NULL,&StartupInfo,&ProcInfo);
○×ret = ::CreateProcess(NULL,"CMD /C echo test ABC",NULL,NULL,TRUE,0,NULL,NULL,&StartupInfo,&ProcInfo);

265 名前:デフォルトの名無しさん :2006/03/13(月) 18:43:59
マルなのかバツなのかハッキリしろ!

266 名前:デフォルトの名無しさん :2006/03/13(月) 19:43:26
コピペして消し忘れた。

○です。

267 名前:デフォルトの名無しさん :2006/03/13(月) 21:26:27
>>265-266
むしろ、○×で正しいと思われ。

# Me辺りだと、command.exeだったはず

268 名前:デフォルトの名無しさん :2006/03/13(月) 21:31:34
>>267
command.com

269 名前:デフォルトの名無しさん :2006/03/13(月) 21:45:18
よそのアプリ(他プロセス)のリストビューをダブルクリックするメッセージを送りたいんですが、
VirtualAllocEx()で確保したメモリにNMLISTVIEW構造体をセットして
WM_NOTIFYメッセージでNM_DBLCLKを送ってもアプリが反応してくれません。

同じ方法でリストビューの文字列は取ってこれてるので
メモリの確保には問題ないはずなのですが・・・

リストビューにNM_DBLCLKを使うには他に何か手続きがいるのでしょうか?
ちなみにメッセージ送信はPostMessageを使っています。
(SendMessageだとSpy++で見てるとメッセージがとんでこないようなので。)

270 名前:デフォルトの名無しさん :2006/03/13(月) 22:13:54
>>269
左ボタンのダウンとアップを交互に送ればいいんでない?

271 名前:デフォルトの名無しさん :2006/03/13(月) 22:44:16
>>269
回答ではなく、自分だったらこうやって調べるという話だけど・・・。

簡単なものでいいから、「よそのアプリ」を試しに自分でつくってみて、
メッセージを送っているほうのアプリから
どういうパラメータでNM_DBLCLKがやってくるかを調べる。
きっとパラメータに何か問題があるのが分かる。・・・と思う。

272 名前:デフォルトの名無しさん :2006/03/13(月) 23:17:52
>>270, 271
回答ありがとうございます。

>「よそのアプリ」を試しに自分でつくって
その方法を試していなかったのでやってみたところ
問題なくダブルクリックのメッセージが送れていました。

この結果から、最初に扱おうとしていた「よそのアプリ」は
ダブルクリックのメッセージで動作しているわけではない、という結論になってしまいました。

そのアプリはDelphi製らしいのでダブルクリックメッセージ以外の方法があるのかもしれません。

どうもお騒がせして申し訳ありませんでした。

273 名前:デフォルトの名無しさん :2006/03/13(月) 23:19:44
WM_LBUTTONDBLCLK?

274 名前:デフォルトの名無しさん :2006/03/14(火) 00:44:20
>>273
>>WM_LBUTTONDBLCLK?
まさにそれでした・・・

リストビューなんだからリストビューのメッセージで処理してるんだろうという
考え方にはまってしまっていました・・・orz

275 名前:デフォルトの名無しさん :2006/03/14(火) 07:32:13
リストビューをダブルクリック

  ↓

リストビューのプロシージャでWM_LBUTTONDBLCLK発生

  ↓

リストビューが親にWM_NOTIFY(NM_DBLCLK)送信


コントロールのイベントを発生させるのまで親が面倒見てるわけではないぞ

276 名前:デフォルトの名無しさん :2006/03/14(火) 09:05:10
>>275
> リストビューのプロシージャでWM_LBUTTONDBLCLK発生

この表現に違和感があるのは、漏れだけだろうか?

277 名前:デフォルトの名無しさん :2006/03/14(火) 10:28:21
ああ…もしかして>>269は親ではなくリストビュー本体の方にNM_DBLCKLを送っていたということなのか。

278 名前:デフォルトの名無しさん :2006/03/14(火) 12:06:35
リストビューの編集って一番左の列しかできないのですか?
他の列のアイテムを編集したかったら自前で書かなきゃだめですか?

279 名前:デフォルトの名無しさん :2006/03/14(火) 12:33:23
自分で書くとかocx使うとか。

280 名前:278 :2006/03/14(火) 13:55:01
>>279
分かりました。
ありがとうございます。

281 名前:デフォルトの名無しさん :2006/03/14(火) 17:21:02
COMポートに何が刺さってるか
調べるAPIありますか?

282 名前:デフォルトの名無しさん :2006/03/14(火) 17:25:32
>>281
ない

283 名前:デフォルトの名無しさん :2006/03/14(火) 17:35:10
>>282
じゃあ
デバイスマネージャで
列挙されるデバイス名を列挙するようなAPIありませんか

284 名前:デフォルトの名無しさん :2006/03/14(火) 17:39:22
WMIを使うと落

285 名前:デフォルトの名無しさん :2006/03/14(火) 18:16:38
>>283
http://support.microsoft.com/kb/259695/JA/

286 名前:デフォルトの名無しさん :2006/03/14(火) 19:33:33
IEに表示されているエディットボックスに文字列を入れる方法ってありますか?
普通のアプリケーション中のエディットボックスならFindWindowで
ウィンドウハンドルを取得してWM_SETTEXTを送れば出来るのですが・・・

287 名前:デフォルトの名無しさん :2006/03/14(火) 19:53:06
>>286

WM_KEYUP/KEYDOWN/CHAR を送ってみ?


288 名前:デフォルトの名無しさん :2006/03/14(火) 22:03:00
ウィンドウハンドルがとれないんではあるまいか

289 名前:デフォルトの名無しさん :2006/03/14(火) 23:33:20
IEのバージョンによっては取れる場合があるはずだけど。

そういう場合は、Windows Scriptのキー入力でやっつちゃうから API 使わんわ、俺。


290 名前:デフォルトの名無しさん :2006/03/15(水) 01:13:44
現在トラックバーのカスタムドローをしているのですが、
アクティブになった際に表示される「枠」を消す方法は無いでしょうか?
ボタンのようにTABSTOPでは変化しませんし、SPYで見てみたところ
WM_PAINTやWM_NCPAINTも関係なさそうです。
どこでどのような処理を行えば良いのでしょうか?

291 名前:デフォルトの名無しさん :2006/03/15(水) 01:29:35
>>281
そもそもcomポートにはUSBのように「何かが繋がっている」かどうか調べる機能さえないのだが。

292 名前:デフォルトの名無しさん :2006/03/15(水) 02:55:06
親のプロセスID得る方法って
tlhelp32.h しかなさげです?

なんかやりすぎな感じになるけどいいのかな?

293 名前:デフォルトの名無しさん :2006/03/15(水) 03:30:54
SAISONPASSとかはIEに入力できてるよね
どうしてるんだろ

294 名前:デフォルトの名無しさん :2006/03/15(水) 06:39:45
Add-inならCOM経由でいくらでも方法はある


295 名前:デフォルトの名無しさん :2006/03/15(水) 09:10:17
>>291
一応、つっこんどくと・・・・・

COMポート自身の仕様・機能ではないが、Windowsの実装として、シリアルマウス他いくつかの
デバイスはPlag&Playで自動認識する。
http://www.microsoft.com/whdc/system/cec/serddvr.mspx


296 名前:デフォルトの名無しさん :2006/03/15(水) 09:19:28
Plag&Play → Plug&Play


297 名前:デフォルトの名無しさん :2006/03/15(水) 12:45:02
>>290
トラックバーじゃなくてフレームウィンドウの見かけを変えるときの経験ですが、
アクティブになったとき、アクティブじゃなくなったときの再描画(の一部?)は
WM_NCACTIVATE とかのハンドラ内で行われてる模様です(行儀悪い・・・)。

そのときには
デフォルトのハンドラを実行した後に自前の描画で上書きしてごまかしました。

298 名前:デフォルトの名無しさん :2006/03/15(水) 15:10:40
Plug&Prayって言葉もあったな(´ω`)

299 名前:デフォルトの名無しさん :2006/03/16(木) 00:47:54
IEでウインドウのサイズを変更したときに、メニューバーがちらつかないのは
どういう処理をしてるんでしょうか?

300 名前:デフォルトの名無しさん :2006/03/16(木) 00:49:10
気合

301 名前:デフォルトの名無しさん :2006/03/16(木) 00:49:26
逆にちらつく方法を知りたいわ

302 名前:デフォルトの名無しさん :2006/03/16(木) 00:52:42
つダブルバッファリング

303 名前:デフォルトの名無しさん :2006/03/16(木) 01:07:52
IEのはメニューバーではなくてツールバー。

304 名前:デフォルトの名無しさん :2006/03/16(木) 01:59:08
>>297
ありがとうございます。
今日はもう時間がないので無理ですが、明日試してみます。

305 名前:デフォルトの名無しさん :2006/03/16(木) 02:01:12
エクスプローラのファイルの並び順を操作したいんですが
どうすればできますか?デスクトップとかQuickLaunchのアイコンの配置とかです

306 名前:デフォルトの名無しさん :2006/03/16(木) 10:08:00
サービスを開始したり停止したりするプログラムを作ってます
で、サービスの依存関係を取得する部分でつまずいています
EnumDependentServices()がGetLastError()で997(重複したI/O処理を実行しています)
を返して失敗(でもEnumDependentServices()はTRUEを返す)します
そのものズバリのサンプルがMSにあるのですが、
http://support.microsoft.com/default.aspx?scid=kb%3Bja%3B245230
まるまるコピーして実行しても同じエラーが出ます
アカウントはAdmin権限を持っているので、権限不足とかではないと思うのですが、
何が悪いんでしょうか・・・


#もしかして、WMIを使った方が早い?


307 名前:デフォルトの名無しさん :2006/03/16(木) 10:25:47
>>306
>EnumDependentServices()がGetLastError()で997
>を返して失敗(でもEnumDependentServices()はTRUEを返す)します
意味が分からん。TRUE返してるなら成功してるんじゃん?

308 名前:306 :2006/03/16(木) 10:38:58
>>307
関数の戻り値はTRUEを返して、成功しているように見えるけど、
結果を返す引数のポインタには0しか入っていない。
おかしいと思ってGetLastError()を見たらこんなエラーが入ってた。

ってことなんだけど・・・。

309 名前:デフォルトの名無しさん :2006/03/16(木) 10:42:25
>>308
その関数呼ぶ前に、SetLastError(0)とかしてみ?

310 名前:306 :2006/03/16(木) 11:00:47
>>309
結果は変わりませんでした。。

311 名前:デフォルトの名無しさん :2006/03/16(木) 11:24:14
>>308
結果を返す引数のポインタってどれだ?

312 名前:306 :2006/03/16(木) 11:49:09
解決しました。っていうか、勘違いしてましたorz
EnumDependentServices()での依存関係の列挙って
サービスのプロパティの「依存関係」タブで言うところの、
「このサービスに依存しているシステムコンポーネント」を列挙するところで、
自分は「このサービスが依存するシステムコンポーネント」を取ろうとしていた
ことが分かりました・・・。

試しに"Remote Procedure Call (RPC)"を指定して動かしたら問題なく動きました。
問題なく列挙できてもGetLastError()はやっぱり997を返すんだけど、おかしいよM$

ともあれ、回答していただいた方、ありがとうございました。

>>311
LPDWORD pcbBytesNeeded, // 必要なバッファサイズ
LPDWORD lpServicesReturned // 返されたエントリの数
5番目と6番目の引数です

313 名前:デフォルトの名無しさん :2006/03/16(木) 11:58:58
>>312
おかしいのはオマエだ

314 名前:306 :2006/03/16(木) 12:02:10
>>313
そりゃ勘違いしてた俺の頭は間違いなくおかしいが、
トンチンカンなエラーな値を返してくる関数もおかしくない?
関数は悪くないって言うなら説明プリーズ

315 名前:デフォルトの名無しさん :2006/03/16(木) 12:19:17
>>314
GetLastError は「API がエラーで終了したときに」エラーコードを取得するために使います。
詳細は Platform SDK の GetLastError の "Remarks" の項の第2、第3段落を参照。

316 名前:306 :2006/03/16(木) 12:21:44
>>315
んじゃなんでERROR_SUCCESSってのが定義されてんの?

317 名前:デフォルトの名無しさん :2006/03/16(木) 12:23:18
>>316
MSを信用するな。

318 名前:デフォルトの名無しさん :2006/03/16(木) 12:25:12
>>314
MSDNで、その関数の説明読めば分かるが、
GetLastErrorは関数が失敗した(0が返った)ときに呼ぶよう指示されてる

EnumDependentServices関数が成功しているわけだから、
GetLastErrorを呼んで、その戻り値を参考にすることが間違ってる

>>316
関数が成功したときに、呼ぶように指示されている関数もある
そのときに問題がなければ、ERROR_SUCCESSが返る

319 名前:デフォルトの名無しさん :2006/03/16(木) 12:31:09
>>316
ERROR_SUCCESS はレジストリ操作API やWinINet API で、
呼び出しが成功したことを表すための API の戻り値として用いられています。

逆に「API呼び出しが成功した場合に、GetLastError は ERROR_SUCCESS を返す」
なんて一体ドコで覚えたんですか?そんなこと書かれているドキュメントはないし、
実際の動作とも違うし。

320 名前:デフォルトの名無しさん :2006/03/16(木) 12:48:12
>>316
PC起動後 or ERROR_SUCCESSが設定されてから、
「一度もエラーが発生していない事」が判る様にだろ。

321 名前:306 :2006/03/16(木) 13:30:03
>>315-320
だいたい分かった。dクス。

322 名前:デフォルトの名無しさん :2006/03/16(木) 14:04:37
「ドコで覚えたんですか?」は言いすぎだった。今では反省しています。
>>321の大人の対応を見て恥ずかしくなったので謝罪する。

323 名前:デフォルトの名無しさん :2006/03/16(木) 14:31:46
>>312
> 問題なく列挙できてもGetLastError()はやっぱり997を返すんだけど、おかしいよM$
EnumDependentServicesの中で使われているAPIがエラーになってるんじゃない?
でもEnumDependentServicesとしては成功してると。


全然関係ないけど↓の機械翻訳、意味分かんね('A`)
ttp://support.microsoft.com/default.aspx?scid=kb%3Bja%3B231844

324 名前:デフォルトの名無しさん :2006/03/16(木) 15:58:01
>>305
エクスプローラはリストビュー
デスクトップはエクスプローラじゃない

325 名前:デフォルトの名無しさん :2006/03/16(木) 16:28:22
>>305
ここの応用でどう?
ttp://www.est.hi-ho.ne.jp/getchan/junks/junk01.html

326 名前:デフォルトの名無しさん :2006/03/16(木) 19:29:55
GDI関数って例えばなにに使うのさ。

327 名前:デフォルトの名無しさん :2006/03/16(木) 19:35:25
君には必要無い物のようだから、気にせんでいいよ。

328 名前:デフォルトの名無しさん :2006/03/16(木) 19:52:22
わっかりやした、親方。

329 名前:デフォルトの名無しさん :2006/03/16(木) 22:41:41
win32本当に使えねーな。
DirectXのほうが全然いいや

330 名前:デフォルトの名無しさん :2006/03/16(木) 22:47:24
>>329
使えない≠使わない

331 名前:デフォルトの名無しさん :2006/03/16(木) 23:10:57
使えない=使う能力が無い。

332 名前:デフォルトの名無しさん :2006/03/16(木) 23:16:57
エラー:代入式の左側には左辺値を指定しなければなりません。

333 名前:デフォルトの名無しさん :2006/03/16(木) 23:30:14
>>331
一生使ってろ屑wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

334 名前:API3日目 :2006/03/17(金) 01:01:52
お取り込み中失礼します。質問です。

(1)CreateWindowで作った子ウインドウの間で、
Tabキーによるフォーカス移動をさせたいのですが、
WS_TABSTOPを指定する以外に何が必要なんでしょうか?
(2)ファイルをごみ箱へ移動(?)させるAPIってありますか?

BCCを使っています。よろしくお願いします。


335 名前:デフォルトの名無しさん :2006/03/17(金) 01:32:01
>>334
(1)IsDialogMessage呼ぶとか?
(2)SHFileOperation

336 名前:デフォルトの名無しさん :2006/03/17(金) 05:37:30
>>334

えーとね、TABが有効かどうか Queryの役目をするメッセージがある。
それに対応させればよい。

対応の仕方はメッセージの復帰値で自動化するか、復帰値でシステム側の挙動をキャンセルして自分で TAB 移動させるか…だったはず。
メッセージは自分で調べて。

337 名前:デフォルトの名無しさん :2006/03/17(金) 06:56:46
まぁ待てよ
CreateWindowで作った子ウィンドウといっても色々あるだろう


338 名前:デフォルトの名無しさん :2006/03/17(金) 13:20:37
>>334
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdnaskdr/htm/gui46.asp
> コントロールがフォーカスを取得できない別の理由として
> 考えられるのは、動的に作成されたコントロールが、
> WS_EX_CONTROLPARENT スタイルが設定されていない
> ダイアログ ボックス内の親ウィンドウにある場合です。

339 名前:ガウショ :2006/03/17(金) 17:46:27
VC6ですが、WIN32APIでプロパティシートを使う事は出来ますでしょうか?
「プロジェクト」→「プロジェクトへ追加」→「コンポーネントおよびコントロール」で「プロパティシート」を選択すると、CCmdTagetクラスがないから無理だと言われます。
MFCじゃないと無理なのでしょうか…

340 名前:デフォルトの名無しさん :2006/03/17(金) 17:55:06
>>339
PropertySheet っていうそのものズバリの名前のAPIがあるよ。

341 名前:デフォルトの名無しさん :2006/03/17(金) 18:44:18
「URLDownloadToFile」でエラーを返さない時があるんですが、現象としては一度ファイルのダウンロードに成功すると、
その後実際にはサーバ上にファイルをが無くなっているにもかかわらず、成功しファイルが書き込まれてしまいます。
キャッシュと絡んでいるようなんですが、何方か情報ありませんでしょうか。


342 名前:デフォルトの名無しさん :2006/03/17(金) 18:52:08
キャッシュしてるんだろ。
検索すればすぐ出てくる。

343 名前:デフォルトの名無しさん :2006/03/17(金) 19:50:58
ttp://support.microsoft.com/kb/555563/ja

ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/disablethreadlibrarycalls.asp
> Do not call this function from a DLL that is linked to the static C run-time library (CRT). The static CRT requires DLL_THREAD_ATTACH and DLL_THREAD_DETATCH notifications to function properly.

何故重要なところを訳さないのだ…('A`)

344 名前:デフォルトの名無しさん :2006/03/17(金) 19:54:40
そりゃーおまいらが苦しむところをみたいからさ

345 名前:ガウショ :2006/03/17(金) 20:04:05
>>340
ありがとうございます。
PropertySheetがあることは知っていました。
が、サンプル(猫でも分かるプログラミング等にあるもの)どおり打ち込んでも表示されません。

と、思ったら表示されましたw
ご迷惑をおかけしました。

346 名前:デフォルトの名無しさん :2006/03/17(金) 20:28:20
>>343
ヒント: 日本語のドキュメントは古い

347 名前:デフォルトの名無しさん :2006/03/17(金) 20:50:08
ヒント: 日本語ドキュメントしか読まないやつはバカ

348 名前:デフォルトの名無しさん :2006/03/17(金) 22:29:13
普通は英語のドキュメント読むよな

349 名前:デフォルトの名無しさん :2006/03/17(金) 22:30:03
そもそも>>1のテンプレに書いてあるし

350 名前:デフォルトの名無しさん :2006/03/17(金) 23:11:04
質問です。

アクティブでないあるプロセスに対し、"A"というキーを押してから離した、というメッセージを送りたいのですが、
どうすれば良いのか分かりません。
具体的で簡潔なサンプルプログラムを交えながら教えて頂けないでしょうか?

351 名前:デフォルトの名無しさん :2006/03/17(金) 23:16:19
>>350
WM_CHAR じゃだめか?

352 名前:API4日目 :2006/03/17(金) 23:21:16
334です。

フォーカス移動の件。
今のところIsDialogMessageを呼べば足りているようです。
Queryその他については、これから勉強します。

ごみ箱へ移動の件。
SHFileOperationでググっていろいろ分かりました。

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


353 名前:デフォルトの名無しさん :2006/03/18(土) 00:22:58
>>343
マイクロソフトに不利なことは訳さない。これ、常識。



354 名前:デフォルトの名無しさん :2006/03/18(土) 03:24:17
Shell_NotifyIconでタスクバーに登録したアイコンが右クリック
されたとき、タスクバーのメニューも一緒に表示されてしまうのですが、
これを阻止する方法ってありますか?

355 名前:デフォルトの名無しさん :2006/03/18(土) 09:41:55
どうやったらそうなるのか知りたい。

356 名前:デフォルトの名無しさん :2006/03/18(土) 12:11:05
Shell_NotifyIconでタスクトレイ常駐のソフトを作っているのですが、
タスクトレイアイコンをクリックした時の処理が非常に遅い時があります。
恐らく、他のタスクトレイに入っているソフトウェアの処理が終わるまで
クリックが反映されないからだと思うのですが、解消方法はないでしょうか?
どうぞよろしくお願いします。

357 名前:デフォルトの名無しさん :2006/03/18(土) 12:12:33
>>354
ShowWindow(hWnd, SW_HIDE);
にするとかは?メインウィンドウも消えちゃうけど。

358 名前:デフォルトの名無しさん :2006/03/18(土) 17:20:51
>>354のような内容の質問を最近どこかのスレで見た気がする

359 名前:デフォルトの名無しさん :2006/03/18(土) 17:50:43
ttp://www.microsoft.com/japan/developer/winds/faq/faq.htm

360 名前:デフォルトの名無しさん :2006/03/18(土) 18:48:16
Win32APIと関係ないかもしれませんが質問。

ウインドウを前回と同じの位置やサイズで表示するのは、
各アプリケーションごとに保存して実現しているのでしょうか?
なにか自動でそうするAPIがあるのでしょうか?

361 名前:デフォルトの名無しさん :2006/03/18(土) 18:49:15
>>360
そんなAPIはない。

362 名前:デフォルトの名無しさん :2006/03/18(土) 18:50:09
>>360
自力でがんがってくださいね。

363 名前:デフォルトの名無しさん :2006/03/18(土) 18:51:52
.ini ファイルかレジストリに保存しておいて
自力でMoveWindow

364 名前:http://www.vector.co.jp/soft/win95/util/se072729.html :2006/03/18(土) 19:02:47
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

365 名前:デフォルトの名無しさん :2006/03/18(土) 19:03:51
アプリケーション(自分自身)を再起動する場合どうすればいいでしょうか?
多重起動を許している場合先に新たに起動して自分を終了させればいいと思うのだけれど、
多重起動が許されてない場合まず自分を終了してからじゃないと再起動出来ない・・・

366 名前:デフォルトの名無しさん :2006/03/18(土) 19:08:21
多重起動を一旦許可してやれば良いじゃん

367 名前:デフォルトの名無しさん :2006/03/18(土) 19:09:13
>>365
- スケジュールタスクに登録
- 自分自身でなく起動係を起動してから自殺する

368 名前:デフォルトの名無しさん :2006/03/18(土) 19:18:06
>>360
GetWindowPlacement&SetWindowPlacement

バグってるつーか、ややこしい仕様のAPIだが。

369 名前:デフォルトの名無しさん :2006/03/18(土) 19:27:08
>>366

そうすると、一部のコードセグメントは変わらないから、完全な再起動にならないぞ。
再起動の別プロセスつくって、それに任せるのがいいんじゃないかな。


370 名前:デフォルトの名無しさん :2006/03/18(土) 19:27:53
そんなもん使わんでもGetWindowRectでおk
作る時はCreateWindowで指定すればいいし、
作ってから整理するならMoveWindowで充分

371 名前:デフォルトの名無しさん :2006/03/18(土) 19:36:47
メモ帳のエディットコントロールは親ウィンドウのサイズ変更に同期してサイズが変更されると思うのですが、これはどうやって実現しているのでしょうか?

372 名前:デフォルトの名無しさん :2006/03/18(土) 19:48:29
>>370
最小化・最大化してるときには注意がいるよな。

373 名前:デフォルトの名無しさん :2006/03/18(土) 19:49:02
>>371
サイズが変更されるたびに親ウィンドウが全ての子ウィンドウの位置とサイズを調整してる。

374 名前:デフォルトの名無しさん :2006/03/18(土) 19:55:42
休止状態から復帰したときにある処理を行いたいのですが、
いつがその時なのか判定できないので困ってます。
復帰したときにメッセージかなにか飛んでくるのでしょうか?

375 名前:デフォルトの名無しさん :2006/03/18(土) 19:57:33
WM_POWERBROADCAST

376 名前:デフォルトの名無しさん :2006/03/18(土) 22:24:31
Windowsをアンインストールして代わりにLinuxをインストールしたいのですが、
どのAPIでできますか?

377 名前:デフォルトの名無しさん :2006/03/18(土) 22:40:06
クマー

378 名前:デフォルトの名無しさん :2006/03/18(土) 23:00:09
>>370

379 名前:デフォルトの名無しさん :2006/03/18(土) 23:01:17
>>370
そこまで手抜きすると最小化したり最大化したりしてるときに終了すると
次回メタメタじゃん。

380 名前:デフォルトの名無しさん :2006/03/18(土) 23:02:31
>>376
SHFormatDrive

381 名前:デフォルトの名無しさん :2006/03/18(土) 23:12:03
>>376

起動可能なCD-ROMドライブにLinuxインストールCDを入れろという、メッセージボックスをだすAPI。
WindowsをリスタートするAPI。

詳しくは自分で調べて。


382 名前:デフォルトの名無しさん :2006/03/19(日) 07:19:57
>>379
実際そういうメタメタなアプリあるよな。結構有名なものでも

383 名前:デフォルトの名無しさん :2006/03/19(日) 08:06:32
ウィンドウ位置を記憶する場合は、マルチモニタも考慮しないといかんね。
以前、復元するときに画面内かチェックを入れていたがマルチモニタを
考慮していなかったので、セカンダリモニタだと位置が記憶されないって
苦情が来た。

384 名前:デフォルトの名無しさん :2006/03/19(日) 11:11:40
>>383
MonitorFromRect, MonitorFromWindow, GetMonitorInfo辺りを使うことになるんかな。

385 名前:デフォルトの名無しさん :2006/03/19(日) 12:08:39
POP before SMTPでメール送信するAPIはどれですか?

386 名前:デフォルトの名無しさん :2006/03/19(日) 12:50:22
winsock

387 名前:デフォルトの名無しさん :2006/03/19(日) 13:37:56
>>385
どうもです、winsockってAPIではないですよね
winsockを実装しないと駄目って事デツカ
それと、Outlook Expressとかも、winsockを使って通信を送受信を
しているということでいいのでしょうか?


388 名前:デフォルトの名無しさん :2006/03/19(日) 14:12:12
  _、 _ ∩
 ( ∀`) 彡 確変だ!確変だ!確変の嵐だ!
((≡O  ⊃
  |   |   おまいら!左腕を上下 右腕を前後
  し⌒J   同時にやってみろ!話はそれからだ!


389 名前:デフォルトの名無しさん :2006/03/19(日) 14:18:04
>>387
CDO使えば?
pop before smtpがどうかは知らん。

390 名前:デフォルトの名無しさん :2006/03/19(日) 16:25:50
>>387
APIだよ。

391 名前:デフォルトの名無しさん :2006/03/19(日) 18:53:25
>>387
WinSockはWindowsで通信を行う上では基本じゃないかな
簡単なのならWinInetとかでもできるのかもしれないけど、いつもSockでやっちゃってるからよく知らない
っていうかそれくらいググればすぐ出ないか?

392 名前:デフォルトの名無しさん :2006/03/19(日) 21:35:29
>>387
WinAPIは様々な分野のAPIの集合体。
そして、その中でソケット関連の部分を担うのがWinSook。

393 名前:デフォルトの名無しさん :2006/03/19(日) 22:03:45
まあ、なんでWinSockとか呼ばれてるというと、当初のWin16APIには socketが無かったんだな。
で、後からWinSockってのをつけたわけだ。

そういうことだから、あまり気にするな。



394 名前:356 :2006/03/19(日) 22:48:19
どなたかいい方法知りませんか?
どうぞよろしくお願いします。

395 名前:デフォルトの名無しさん :2006/03/19(日) 23:47:10
さっぱりわかりません。
お手上げです。

396 名前:デフォルトの名無しさん :2006/03/20(月) 00:24:01
>>394
タスクトレイのアイコンがクリックされたときに、クリックされたアイコン以外は無関係。処理するものは何も無い。
また、メッセージはPOSTされるので他のソフトの処理を待つ事も無い。
よってその仮定は間違っている。
ソースも詳細も無いので良く判らんが、単にクリックされたときの処理がおかしいか、スワップされてるだけじゃね?

397 名前:デフォルトの名無しさん :2006/03/20(月) 01:12:07
VC++2005でWINAPIを使うには
何をインクルードすればいいですか?

398 名前:デフォルトの名無しさん :2006/03/20(月) 01:13:00
#include <windows.h>

399 名前:デフォルトの名無しさん :2006/03/20(月) 01:15:26
>>398
それがインクルードできないんですよ。
引っかかってエラー出てしまいます

400 名前:デフォルトの名無しさん :2006/03/20(月) 01:16:26
まさかExpressとか言わないよな?w

401 名前:デフォルトの名無しさん :2006/03/20(月) 01:17:26
Expressですけど
これではできないんですか?

402 名前:デフォルトの名無しさん :2006/03/20(月) 01:18:28
>>401
Win32 SDK(>>4のリンク参照)を別途入れよ。また、その他設定を要する。

403 名前:デフォルトの名無しさん :2006/03/20(月) 01:19:25
SDK入れなきゃいけないんですか。
ありがとうございました。

404 名前:400 :2006/03/20(月) 01:19:34
そんなこったろーと思った
ttp://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/

405 名前:デフォルトの名無しさん :2006/03/20(月) 04:44:58
ツールバーのビットマップにLR_LOADMAP3DCOLORSを指定した場合、
画面のプロパティからウィンドウの背景色を変えると、
黒だけしか使ってないボタンが見えなくなってしまう。

「黒以外の色も使うようにする」っての以外に、
なんかいい解決方法ないかな。

406 名前:デフォルトの名無しさん :2006/03/20(月) 04:48:49
エキスプレスって知らなかったけど無料なの?

407 名前:デフォルトの名無しさん :2006/03/20(月) 07:14:06
>>406
無料だよ。


408 名前:デフォルトの名無しさん :2006/03/20(月) 09:21:18
コンパイルエラーも出ず、プログラムの動作も期待通りなのですが
時々画面がブラックアウトして少しの間PCが固まることがあります。
一時的にディスプレイへの信号が切れてるっぽいのでVRAMが解放されてないとかその辺
なんじゃないかと思ってるのですが、なかなか原因が見つかりません。

そこで怪しいと思ってる点なのですが、プロシージャ関数内にswitch(msg){}を含む関数
(引数はhWnd,msg,wparam,lparam,戻り値はLRESULT型でそのままプロシージャの戻り値に)
を複数配置してif分岐でどのswitchを通るか選んでいます。
こういった記述は問題ないのでしょうか?

409 名前:デフォルトの名無しさん :2006/03/20(月) 09:41:08
>>408
GDIのみ使ってる限りVRAM解放とかは関係ない。
時間かかる処理してて、メッセージループ回ってないとかじゃね?

410 名前:デフォルトの名無しさん :2006/03/20(月) 10:56:07
リソース開放してないで使い切るとそうなる

411 名前:デフォルトの名無しさん :2006/03/20(月) 11:52:37
指定フォルダ内のファイルを全て削除する関数はありませんか?
証拠隠滅用に簡単なのを作ってて、最近使ったファイル削除、ゴミ箱を空にまではできたんだけど、
ブラウザの履歴消去が探しても見つからない

412 名前:デフォルトの名無しさん :2006/03/20(月) 11:58:59
ブラウザの履歴消去なら知ってるけど

413 名前:デフォルトの名無しさん :2006/03/20(月) 12:09:45
履歴消去が目的なのでお願いします

414 名前:デフォルトの名無しさん :2006/03/20(月) 13:04:44
それはFireFoxでも使えるのか?

415 名前:デフォルトの名無しさん :2006/03/20(月) 14:35:54
DirectXを使わずにフルスクリーン(クライアント領域以外の余計な物を表示しない)にする方法を教えてください。
後、その状態で、メニューだけ表示する方法も。

416 名前:デフォルトの名無しさん :2006/03/20(月) 14:54:31
最大化してウィンドウサイズの固定とか。

417 名前:デフォルトの名無しさん :2006/03/20(月) 14:56:28
サイズ分だけはみでたウィンドウを作ればいい

418 名前:デフォルトの名無しさん :2006/03/20(月) 15:00:23
・画面解像度を変更
・ウィンドウのサイズを画面解像度と同じに変更


419 名前:デフォルトの名無しさん :2006/03/20(月) 15:04:37
>>416-418
ありがとうございます。
試してみます。

420 名前:デフォルトの名無しさん :2006/03/20(月) 18:23:54
>>417
そんな面倒な事しなくても、
キャプションとボーダーを外して最大化すればいいんジャマイカ?

421 名前:デフォルトの名無しさん :2006/03/20(月) 20:50:32
>>409-410
ありがとうございます。
時間のかかる処理と言うのは、メッセージループ内(case MOUSEMOVE内など)
で時間がかかってもダメなんでしょうか?
もしそうなら、最大限高速化して対応する(後は諦める)として
しばらくはリソースが解放されてないって線で調べてみます。

422 名前:デフォルトの名無しさん :2006/03/20(月) 21:42:24
Spy++はどうやってメッセージを捕らえているのでしょうか?

423 名前:デフォルトの名無しさん :2006/03/20(月) 21:44:17
フック

424 名前:デフォルトの名無しさん :2006/03/20(月) 22:01:27
アパカー

425 名前:デフォルトの名無しさん :2006/03/20(月) 23:05:13
ノック

426 名前:デフォルトの名無しさん :2006/03/20(月) 23:07:50
横山

427 名前:デフォルトの名無しさん :2006/03/21(火) 00:14:33
DeleteMenu()した後には必ずDrawMenuBar()しなければならないらしいのだが、
任意のウインドウに表示可能なポップアップメニューの場合、
DrawMenuBar()の引数 HWND には何を指定すればよいのでしょうか?


428 名前:デフォルトの名無しさん :2006/03/21(火) 00:31:04
>>427
確かにあるね……。

何でDeleteMenu()のRemarkにもDrawMenuBar()があるんだろう。
メニューの変更をした場合は呼び出す必要があるだろうが、

DeleteMenu()を呼び出したということは、
すでに、メニューを破棄してしまったのだから、
もはや存在しないメニューに対して、DrawMenuBar()を呼び出せるわけもないと思うのだが……。

429 名前:デフォルトの名無しさん :2006/03/21(火) 00:34:01
>>428
> DeleteMenu()を呼び出したということは、
> すでに、メニューを破棄してしまったのだから、
いや、DestroyMenu()じゃなくて、DeleteMenu()です。
メニューアイテムを削除した後の話。

430 名前:デフォルトの名無しさん :2006/03/21(火) 01:31:13
あ、勘違いしてた。
それなら普通に、DeleteMenu()にも指定したメニューハンドルを指定すればいいでそ。


431 名前:デフォルトの名無しさん :2006/03/21(火) 02:31:29
・・・ HWND 型にメニューハンドルを渡すのか?

432 名前:デフォルトの名無しさん :2006/03/21(火) 03:21:34
Win32APIの初心者で、まだweb上の基本的な構文しか身につけてないのですが
Win32APIを学ぶのに、全ての文法を覚えるのは、とてもじゃないけど無理だと思ったのです
で、Win32.APIを学ぶ為の書籍等は、あるのでしょうか
Win32APIを熟知していくのにこの書籍はもっとくべきという本はあるんでしょうか
できれば、教えていただきたいです。

433 名前:デフォルトの名無しさん :2006/03/21(火) 03:22:54
(´-`)。oO(Win32APIの構文や文法・・・)

434 名前:432 :2006/03/21(火) 03:45:44
失礼しました
構文や文法は、記述方法としてはCの文法で、いける(いけないかもしれないですが)
要は、Win32APIを学ぶ為の図書があれば教えて頂きたいです

435 名前:デフォルトの名無しさん :2006/03/21(火) 03:48:38
すれ違い

436 名前:デフォルトの名無しさん :2006/03/21(火) 07:07:25
>>427
いくら任意のウィンドウに表示可能なメニューと言っても
Deleteやら操作するのはどこかのウィンドウのプロシージャだろ
その時の自分のハンドルを渡せばいい

437 名前:デフォルトの名無しさん :2006/03/21(火) 07:17:02
単にそれを適応するウィンドウのハンドルじゃないか?
プログラムにウィンドウがひとつとは限らないわけだし

438 名前:デフォルトの名無しさん :2006/03/21(火) 07:50:13
>>432
>>要は、Win32APIを学ぶ為の図書があれば教えて頂きたいです
ASCII出版 Cheales Petzold著 プログラミングWindows 第5版
なんといってもこれだろう、文章がしっかりしていて、翻訳もしっかりしている
序章のあたりは物語としても興味深く読めるしWinndowsに対する造詣も深まる
その導入部から徐々に
WIN32APIの本質に進んで分厚い本でも飽きさせない魅力があるYO!

439 名前:デフォルトの名無しさん :2006/03/21(火) 09:36:50
まあそんなもの読まずにやっている奴の方が多いけどな

440 名前:デフォルトの名無しさん :2006/03/21(火) 10:50:31
解らないことがあっても掲示板に書き込めば
優しいお兄さん達が答えてくれるからな!!!!

441 名前:デフォルトの名無しさん :2006/03/21(火) 10:57:48
>>438
よくnyとかの話題する?
別に深い意味はないけど。

442 名前:408 :2006/03/21(火) 11:18:19
たびたびすみません。
ブラックアウトの原因ですが、staticで宣言したクラスの関数に引数としてHDC(描画元、先ともに)を渡して
描画(TransparentBlt)させてるところっぽいです。
変更があるごとに50〜130回ほどTransparentBltしてるのですが
これってリソース使い尽くすくらい多いのでしょうか?
解決策はDirectDraw使うくらいですかね・・・?

443 名前:デフォルトの名無しさん :2006/03/21(火) 11:34:11
どーせSelectObjectの使い方が間違ってるとかそんなところじゃね?

444 名前:デフォルトの名無しさん :2006/03/21(火) 11:51:09
>>442
そうじゃなくて、GDIリソースを作るだけ作って解放してないって意味。

445 名前:デフォルトの名無しさん :2006/03/21(火) 11:54:20
リソースリークしていないか確認するならタスクマネージャ。
ハンドルの数、GDI オブジェクト、USER オブジェクト当たりはチェック付けとけ。

446 名前:デフォルトの名無しさん :2006/03/21(火) 13:37:01
>>437
その後いろいろ試してみたところ、特にDrawMenuBar()を呼び出さなくても
メニュー項目はちゃんと削除されることがわかった。
ただし、システムメニューの場合はDrawMenuBar()を呼び出さないとダメらしい。
・・・ドキュメントが間違っているのか?

447 名前:デフォルトの名無しさん :2006/03/21(火) 13:45:27
>>446
System menu の場合、ウィンドウサイズによっては2段になったりして ClieentRgn の更新をしないと
いけないから明示的に DrawMenuBar() 呼び出さないとマズイ と理解している

448 名前:408 :2006/03/21(火) 13:54:51
hdc_mem = CreateCompatibleDC(NULL);
hBmp = (HBITMAP)LoadImage(NULL,"back.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
GetObject(hBmp, (int)sizeof(bmp_info), &bmp_info);
bmpw = bmp_info.bmWidth;
bmph = bmp_info.bmHeight;
SelectObject(hdc_mem, hBmp);

back_hdc = CreateCompatibleDC(NULL);
hDummy = CreateCompatibleBitmap(hdc_mem,bmpw,bmph);
SelectObject(back_hdc,hDummy);
DeleteObject(hDummy);

こんな感じで作ってるのですが、おかしいでしょうか?
終了処理にDeleteObject⇒DeleteDCもやってるのですが・・・
>>444-445
オブジェクトのほうはタスクマネージャで見たところ、常に二桁程度で増えてる様子
もなかったです。(ためしにEndPaint消してみるといい具合に増えます)

449 名前:デフォルトの名無しさん :2006/03/21(火) 14:02:26
GDIについて勉強しなおしてきなさい。
サンプルソースコードは沢山ネットに転がってるから。

450 名前:デフォルトの名無しさん :2006/03/21(火) 14:06:52
>>448
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/devcons_1vsk.asp

target が SelectObject() されている間 DeleteObject(target) は削除されていない。
  | HDGIOBJ oObj = SelectObject(hDC, target);
  .....
  | SelectObject(hDC, oObj);
  | DeleteObject(target);
こうしないとマズイんじゃ?

451 名前:デフォルトの名無しさん :2006/03/21(火) 14:09:35
フォルダの所有権を変更するAPIってありませんか?

452 名前:408 :2006/03/21(火) 14:53:07
>>449-450
バグ取りに付き合ってもらってすみません。
終了時にSelectObjectで対象を元に戻してからDeleteしてみましたがやはりダメでした・・・

453 名前:デフォルトの名無しさん :2006/03/21(火) 14:53:51
特定の部分は透明で後ろのウィンドウが見えているが、
その部分をクリックしてもちゃんと反応するウィンドウを作るにはどうすればいいでしょうか?

454 名前:デフォルトの名無しさん :2006/03/21(火) 15:27:26
>>453
レイヤードウィンドウで限りなく透明な不透明領域を作るとか。

455 名前:デフォルトの名無しさん :2006/03/21(火) 15:48:35
>>441
>438だが
nyを話題に書き込んだ事は一度もありませんが
なにか?
nyはプログラミング的にはすごく関心はあるけどね


456 名前:デフォルトの名無しさん :2006/03/21(火) 17:41:01
>451
SetNamedSecurityInfoで
SE_FILE_OBJECT
OWNER_SECURITY_INFORMATION

457 名前:441 :2006/03/21(火) 20:33:31
>>455
Winndowsが気になっただけです。
すいません。

458 名前:デフォルトの名無しさん :2006/03/21(火) 21:42:54
>455
だけど、なんであやまるのかな?
おいらは最近Windowsの実装を仕方無しにやり始めたYO
マネージドだとかアンマネージドとかややこしいねwww
最近なんとなく、簡単なGUIの実装が組めるようになってきた
と少し嬉しかったので書いて見る
スレ汚しスマソ


459 名前:デフォルトの名無しさん :2006/03/22(水) 16:53:11
>>453
>>454の他にリージョンという手も

460 名前:デフォルトの名無しさん :2006/03/22(水) 16:56:04
つーか、>>453の「ちゃんと反応する」とは
どっちが反応することを期待してるんだ?

461 名前:デフォルトの名無しさん :2006/03/22(水) 16:56:51
>>459
リージョンだと抜けた部分の操作が下のウィンドウに行っちゃうよ?

462 名前:デフォルトの名無しさん :2006/03/22(水) 17:02:13
>>460
「後ろのウィンドウが見えている"が"」だから、透明な自ウィンドウだと思う。

463 名前:デフォルトの名無しさん :2006/03/22(水) 17:10:06
俺のアンテナもちゃんと反応する

464 名前:デフォルトの名無しさん :2006/03/22(水) 17:38:58
俺のアンテナも感度良好ですぎょん

465 名前:デフォルトの名無しさん :2006/03/22(水) 19:10:16
俺のちんこは早漏気味ですよん。


466 名前:デフォルトの名無しさん :2006/03/22(水) 23:46:21
金冷法を薦めるぞ、やってみちん。

467 名前:デフォルトの名無しさん :2006/03/23(木) 00:29:33
EXEの実行をフックして実行させないようにって
どうやるんでしょうか?
ウイルス対策ソフトとかはやってると思うんですが。

468 名前:デフォルトの名無しさん :2006/03/23(木) 02:26:07
ウイルス対策ソフトつかえばいいんじゃね?

469 名前:デフォルトの名無しさん :2006/03/23(木) 10:27:55
CreateProcess をすり替えてしまえ

470 名前:デフォルトの名無しさん :2006/03/23(木) 12:53:55
クリティカルセクションが使用するリソースは
CRITICAL_SECTIONが占めるメモリだけなんですか?

471 名前:デフォルトの名無しさん :2006/03/23(木) 12:58:02
いいえ

472 名前:デフォルトの名無しさん :2006/03/23(木) 13:24:15
ほう。ということは、いくらメモリ周りが潤沢でも
数万個確保するのはあまりよろしくないのですね?

473 名前:デフォルトの名無しさん :2006/03/23(木) 13:32:43
クリティカルセクション数万個確保って……

474 名前:デフォルトの名無しさん :2006/03/23(木) 13:38:02
マンコー

475 名前:デフォルトの名無しさん :2006/03/23(木) 13:48:12
>>472
例えば
struct { hoge bee; boke gaa; } nanika[10000];

なんてのがあって、個々の構造体へのアクセスをクリティカルセクション内で
行いたいなんて場合は、構造体の中に CRITICAL_SECTION を置くのではなく、
適当なハッシュで個数を減らすのが定石です。

例えば CRITICAL_SECTION cs[100]; なんてのを用いて、cs[index%100] で
クリティカルセクションに入る。1/100の確立で関係ない構造体へのアクセスと
衝突するけど、それによるパフォーマンスの低下は微々たるもの。

476 名前:デフォルトの名無しさん :2006/03/23(木) 13:55:13
万個万個ってあまえら、連発すんなぁ。
ぐへへへ。


477 名前:デフォルトの名無しさん :2006/03/23(木) 14:19:50
>>476

    [ ゚д゚]y-~~~ デフラグガカンリョウシマシタ
    /[へへ
、。。ぁあえぐすってなへへへまらん万万個個発連

478 名前:デフォルトの名無しさん :2006/03/23(木) 14:32:42 ?
春休みか。

479 名前:デフォルトの名無しさん :2006/03/23(木) 22:33:57
Win32APIの中で一番長い関数名ってなんだっけ?
前にこの板のどこかで見たんだけど忘れちゃった。

偶然見つけた52文字 in advapi32.dll
ConvertSecurityDescriptorToStringSecurityDescriptorA
ConvertSecurityDescriptorToStringSecurityDescriptorW
ConvertStringSecurityDescriptorToSecurityDescriptorA
ConvertStringSecurityDescriptorToSecurityDescriptorW

480 名前:453 :2006/03/24(金) 09:29:04
逆に短い関数名ならArc

481 名前:デフォルトの名無しさん :2006/03/24(金) 09:41:00
GDI+ Flat APIには結構長い名前の関数が多そうな気がする。

482 名前:デフォルトの名無しさん :2006/03/24(金) 11:29:36
そうでもないぞ。gdiplus.dllだと長いっても
GdipGetStringFormatMeasurableCharacterRangeCount (49)
GdipSetImageAttributesOutputChannelColorProfile (48)
ぐらい。まあ、短いのでも
GdipGetRegionData (18)
はあるが。

483 名前:デフォルトの名無しさん :2006/03/24(金) 12:49:32
すでに起動しているアプリケーションのウィンドウサイズを
自在に変形するにはどうすればよいでしょうか?
この場合の変形というのは
サイズをかえるという意味ではなくて、
リージョンなどを使って星型とかキャラクタの型だとかに
変形することはできるのでしょうか?

484 名前:デフォルトの名無しさん :2006/03/24(金) 12:51:46
できますよ

485 名前:ねこ :2006/03/24(金) 12:58:08
質問させてください。

現在、VB6.0からVB.NETへ移行中です。 iniファイルから文字列を取得するAPI GetPrivateProfileString
を使用する上でわからない所があります。

GetPrivateProfileString
<引数>
lpAppName:セクション名
lpKeyName:キー名
lpDefault:キーが見つからなかった場合のデフォルトの文字列
lpReturnedString:取得した文字列が入る
nSize:同、文字数
inifilename:INIファイル名
@戻り値@
取得した文字列
で、VB6.0では、lpReturnedStringにはnSizeで指定したバッファ分戻ってきた
のですが、(空文字列で埋めてそのバッファ分を返していた)
VB.NETでは、指定したバッファ分ではなく、文字数分のみかえってきてしまいます。
しかも、文字列AAAだとすると、"AAA だけで、後ろの " が抜けてしまう状態です。

どうすればいいかご存知の方、教えてください!

宜しくお願いします。


486 名前:デフォルトの名無しさん :2006/03/24(金) 13:04:20
意味分からん

487 名前:デフォルトの名無しさん :2006/03/24(金) 13:18:18
そういう現象なら
VB.NETの仕様でただしいような気がする。
たぶんいままでバグってた

488 名前:ねこ :2006/03/24(金) 13:26:13
えっ!?
ばぐ。。。

すみません!
VB6.0では
lpReturnedString(取得した文字列が入る変数) = Space(256)
llngRet = GetPrivateProfileString(・・・・lpReturnedString,256(バイト数)・・)

っといった具合に書くと、"文字列+空文字"(256バイト分)で返ってきてたんですが。。
こっちが間違ってる感じですか??

宜しくお願いします!



489 名前:デフォルトの名無しさん :2006/03/24(金) 13:31:29
感嘆符がうざ

490 名前:デフォルトの名無しさん :2006/03/24(金) 13:31:50
マーシャラがNULL文字で切ってんだろ
そもそもそれで何か不都合があるのか?

491 名前:ねこ :2006/03/24(金) 14:01:16
無事解決できました。
ありがとうございます。

492 名前:デフォルトの名無しさん :2006/03/24(金) 17:00:09
他のアプリでクリップボードからデータが読み出されたことって、
クリップボードビューアチェインのメッセージからは認識できないんでしょうか。
どうやって認識可能ですか?


493 名前:デフォルトの名無しさん :2006/03/24(金) 22:40:51
バイナリファイルの途中にデータを挿入したり、途中の指定バイトを削除するAPIってない?
CEでの開発を想定しているので、できればメモリに読み込ませたくないんです。


494 名前:デフォルトの名無しさん :2006/03/24(金) 22:43:46
メモリに読み込まなくても自前でできるでそ。

495 名前:デフォルトの名無しさん :2006/03/24(金) 22:49:05
ファイルの途中を抜いたり、途中を追加することはできない。
自前で、ずらすしかない。その際、一時データをメモリに
読み込ませるのは仕方がない。

496 名前:チラシの裏 :2006/03/24(金) 23:05:58
まとまったお金ができたから、
前々から欲しかった Advanced windows をついに購入するぞ!


…と思ったら、何処のオンライン書店でも
売り切れとか重版未定とかなってるじゃーか!
どういうことだ!!

た、楽しみにしてたのに……orz

497 名前:デフォルトの名無しさん :2006/03/24(金) 23:48:12
>>496
それ大分前に既出@推薦図書スレ
俺も買おうと思ったが無理だった

498 名前:デフォルトの名無しさん :2006/03/24(金) 23:54:52
俺の場合、学校の図書館にたまたまあったので助かっている。

499 名前:デフォルトの名無しさん :2006/03/25(土) 03:39:36
Advanced Windows、ちょっと立ち読みしてから買いたいんだけど、近所の本屋には置いてないな……。

大学の図書館にリクエストしてみようかね。

500 名前:デフォルトの名無しさん :2006/03/25(土) 12:04:10
ウィンドウプロシージャでのキーボードショートカット処理の質問なのですが

タスク切り替えのAlt + Tabを「押されたタイミングで」検出することって
出来ないんでしょうか?
Alt押しながらだとWM_KEYDOWNのVK_TABは発生しないようだし、
WM_SYSKEYDOWNではAltが押された情報のみしか送られてこず、
WM_SYSKEYUPでやっとTabが「離されたタイミング」を検出できたところです。
要はタスク切り替え用のメニューウィンドウが出る直前までに
処理したい事があるのですが、なんとかなりませんでしょうか。


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