[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/06 20:25 / Filesize : 198 KB / Number-of Response : 948
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build74



1 名前:デフォルトの名無しさん mailto:sage [2008/12/14(日) 16:30:27 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

過去スレ、関連リンクは>>2-10くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

Win32API質問箱 Build73
pc11.2ch.net/test/read.cgi/tech/1227934931/

445 名前:436 mailto:sage [2008/12/30(火) 14:44:06 ]
>>438-439
回答ありがとうございます。


私が本当にやりたい事はファイルからデータを読み込んで
エディットボックスに反映(処理ログみたいな)させていくというものなのですが、
一度に最大1023byteしか読み込ませないように(wsprintfの関係)制御しています。
しかし、この場合バイナリでReadしている為、文字化けが発生する可能性があり
それを回避する為、最大(1023byte)で読み込んだ場合、末尾のデータが
全角文字(2byte)の先頭1byte目かを判定して真の場合、読み込みポインタを
-1byteずらしているというやり方で回避させていたつもりなのですが、
>>436の記載したAPIの使い方を私が勘違いしていた為うまくいきませんでした。

ベタ書きでの判定となると
if((チェック値 >= 0x81 && チェック値 <= 0x9F) || (チェック値 >= 0xE0 && チェック値 <= 0xEF))
という感じになると思うのですが、こういう判定をしてくれるAPIは
提供されていないのでしょうか?

446 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 14:47:37 ]
>>445
先頭から調べるか、調べたい場所から1バイトずつさかのぼって
1バイト目じゃない文字の部分から順に判定すればいい。

447 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 15:09:14 ]
あるウィンドウプロシージャでコントロールのメッセージはWM_COMMANDとして送られてきますが、
コントロール自身のウィンドウプロシージャではどういう形でメッセージが飛んでくるんでしょうか?
たとえばリストボックスからのLBN_SETFOCUSはMSG = WM_COMMAND,WPARAM = (4 << 16) | 100ですが、
コントロール自身ではどう受け取ればいいのかが分かりません。もしかして頓珍漢なこと言ってますか?

448 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 15:12:48 ]
コントロール自身がWM_SETFOCUSを受け取って、親に自分でLBN_SETFOCUSを投げてるんじゃないのか?

449 名前:437 mailto:sage [2008/12/30(火) 15:14:21 ]
>>440
>>441
回答ありがとうございます

case WM_GETDLGCODE:
return DLGC_WANTALLKEYS;
case WM_KEYDOWN:
if(wp == VK_ESCAPE) 終了処理;

このような感じにしたのですが終わってくれません
何か間違いがあれば、ご指摘お願いします

450 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 15:26:21 ]
>>448メルシー。じゃあ、LBN_SELCHANGEとかってのはコントロールの単純なサブクラス化じゃうまく捕らえられないのかな・・・

451 名前:436 mailto:sage [2008/12/30(火) 15:30:43 ]
>>446
やはりそれしかないですよね。
ありがとうございました。

452 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 15:32:02 ]
>>450
LBN_***はコントロールのプロシージャがユーザーの操作に応じて親ウィンドウに投げてる奴だから
サブクラス化しようが何しようが捕まえられんよ

そもそもそうしないためにWM_COMMANDがある

453 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 15:37:45 ]
MFCだとメッセージリフレクションで実装されている処理の話だな。
結局の所、親に投げられたメッセージを引っ張り出す必要があるので、
残念ながら、コントロール側だけで完結するようには書けないな。



454 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 15:44:27 ]
>>453
今ライブラリを作ってて、イベントハンドラ関連の整備してたんですが、そこで詰まりまして・・・
でも、WM_COMMANDのLPARAMってどうやら、コントロールのハンドルらしいですね。
ハンドルからクラスを引っ張ってくる仕組みは既にあるので、何とかなりそうです。
たしか、WM_COMMANDってアクセラレータとコントロールとメニューのメッセージが飛んでくるんですよね。
何とか頑張って実装してみます。ありがとうございました。

455 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 15:51:05 ]
>>449
case WM_COMMAND:
if ( LOWORD( wParam) == IDCANCEL) 終了処理;

456 名前:437 mailto:sage [2008/12/30(火) 16:23:19 ]
>>455
ありがとうございます
ですが、その通りにやっても動きませんでした
Escキーをおすとポーンと警告音みたいな音がするだけの状態です

457 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 16:27:06 ]
>>445
そういう風にべた書きしても、436のように使えば全く同じ問題が起こる。
CP932でのIsDBCSLeadByteExだって同じことをやっているよ。

458 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 16:44:09 ]
>>455
ダイアログリソースに ID = IDCANCEL のボタンを Visible = False で貼りつけてみ。

459 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 16:45:05 ]
あ、>>456 だ。


460 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 16:54:59 ]
>>458
ありがとうございます


case WM_CREATE:

CreateWindow(
TEXT("EDIT") , NULL ,
WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP | ES_LEFT | ES_AUTOHSCROLL ,
0 , 24 , 100 , 24 , hWnd , (HMENU)1000 ,
g_hInst , NULL );

このようにEDITを作っていました
Win32APIをはじめたばかりでよくわからないのですがダイアログボックス(?)の勉強をしないと
話についていけそうにないので出直してきます。ありがとうございました

461 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:03:16 ]
>>460
おやおや、ダイアログボックスじゃなくてウィンドウでの話だったのか?
だったら、メッセージループ while(GetMessage(&msg・・・){・・・} の中で WM_KEYDOWN を拾えばいいじゃん。
ここでメッセージを変換してウィンドウに送るコードを書いてるのは自分自身なんだぞ。

462 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:04:15 ]
>>460を見る限り、おそらくメインとなるウィンドウもCreateWindow(Ex)で作っているんだろう。
だったら、TranslateMessage/DispatchMessageのところをこうしろ。
if (!IsDialogMessage(メインウィンドウのハンドル, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
そうすれば、>>458をやらなくても、455の処理が可能になる。
これをやると、ダイアログの挙動を示すため、ほかにも副作用があるけど。

463 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 18:11:39 ]
>>461>>462
ありがとうございます
メッセージループ内でやったらうまくいきました

ところで、Win32APIを学ぶとき皆さんは何を参考にしましたか?
私はとりあえずテンプレートのサイトを見ているのですが、皆さんはやはり本などを1冊くらいはもっているのでしょうか?
先日まで、コンソールでプログラミングしていた私にとって、windosプログラミングはすごく難易度が上がって
戸惑っています

それから、見た目の部分(ウィンドウやリストボックス、メニューなど)はリソースエディターというもので
作るのが一般的なのでしょうか?参考程度に教えてください



464 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:43:27 ]
クロスプラットフォームで動くGUIを作るとしたら
やはりJavaですか?

465 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:44:00 ]
>>464
すみませんスレ間違えました

466 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:45:34 ]
>>464
スレ違い

467 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:47:50 ]
>>466
知らないならレスしないでください。ウザイだけです。

468 名前:デフォルトの名無しさん [2008/12/30(火) 23:53:27 ]
>>463
俺はとりあえず MSU へ行ってみた
今言わせればひでえ講義(特に OLE 関係)だったが
何を自習すべきかの参考にはなった

469 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 00:29:02 ]
>>464
このスレ的には、Wineを信じてWin32API使え。

470 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 00:30:29 ]
>>463
>本などを1冊くらいはもっているのでしょうか?
Win16の時代からやってるから、1冊どころではないな。情報源はそれしかなかったんだ。
手始めは「APIの散歩道」つう本だったと思う。今ならアマゾンで1円(古本)+送料で手に入るが。(笑)

それに比べると今はラクだぞ、インターネットで何でも調べられるし。
もっとも、転がってるのは玉石混在ではあるがな。

471 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 00:38:24 ]
自分は本を勧めたいが、自身が猫で覚えた身ゆえ、積極的に勧める気になれない。

472 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 00:43:38 ]
俺は現場のソースで覚えた

473 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 00:55:18 ]
>>472
それが一番ダメなパターン



474 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 01:23:09 ]
>>470
×玉石混在
○玉石混淆

475 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 01:27:26 ]
>>474
四字熟語としては間違ってるけど、別におかしくはない。

476 名前:デフォルトの名無しさん [2008/12/31(水) 01:34:31 ]
あえて黙ってたのに
指摘する阿呆に
言い訳する阿呆

阿波踊りは他でやれ

477 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 01:36:22 ]
あえて黙ってたのに
指摘する阿呆に
言い訳する阿呆

盆踊りは他でやれ

478 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 01:37:26 ]
ウィンドウメッセージで392というのが飛んで来てはCallWindowProcが-1を返すんだが、
10進で392ってなんていうメッセージ?

479 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 01:42:01 ]
392 == 0x188
winuser.hの中を調べる限りでは、LB_GETCURSELしか該当しなかった。

480 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 01:42:27 ]
>>478
        ,.-─ ─-、─-、
      , イ)ィ -─ ──- 、ミヽ
      ノ /,.-‐'"´ `ヾj ii /  Λ
    ,イ// ^ヽj(二フ'"´ ̄`ヾ、ノイ{
   ノ/,/ミ三ニヲ´        ゙、ノi!
  {V /ミ三二,イ , -─        Yソ
  レ'/三二彡イ  .:ィこラ   ;:こラ  j{
  V;;;::. ;ヲヾ!V    ー '′ i ー ' ソ
   Vニミ( 入 、      r  j  ,′
   ヾミ、`ゝ  ` ー--‐'ゞニ<‐-イ
     ヽ ヽ     -''ニニ‐  /
        |  `、     ⌒  ,/
       |    > ---- r‐'´
      ヽ_         |
         ヽ _ _ 」

     ググレカス [ gugurecus ]
   (西暦一世紀前半〜没年不明)


481 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 01:50:35 ]
>>473
何がダメなんだてめぇ
言ってみろクズ

482 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 01:53:13 ]
明日実家に帰省するぜ!
ところでおまいら一年間振り返ってみるとやっぱおまいらの
技術力が一番参考になるわ

質問すると罵倒されるがちゃんと返してくれるしな
会社の連中は無関心すぎて役に立たないし第一話が通じなくてな


だから来年も困ったときはお前らに怒られながら質問するわ!
その時は罵倒しながらちゃんと答えてくれな

じゃあまた来年。
良いお年を!!!

483 名前:482 mailto:プライドある屑共へ [2008/12/31(水) 01:55:02 ]
>>481
レスした瞬間ワロタ




484 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 01:59:25 ]
>>482
おう
良いお年を

485 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 03:34:29 ]
>>468>>470>>471>>472
回答ありがとうざいます
みなさん人それぞれですね

私も早く一人前になれるようがんばります

486 名前:デフォルトの名無しさん [2008/12/31(水) 05:58:40 ]
>>408
oshiete1.goo.ne.jp/qa4592292.html
の回答番号:No.8
>Win32 API を「Windows の API」だと発言した人をみんなで袋叩きにしている 2ch の書き込みを発見。
ってどこで行われたかわかりますか?
過去ログでもあればどのような状況のものだったか見てみたいので
pc11.2ch.net/test/read.cgi/tech/1226461162/l50
でも上記の内容を聞いたのですがAPIネタではなくてWin32APIネタならこちらの方が妥当だと思って質問紙をし直します。

487 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 07:12:34 ]
>>486
スレ違い
帰れクズ

488 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 10:55:30 ]
うるせーばかどっかいけ

489 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 12:48:21 ]
ほのぼのしてるなー
見てて和むわw

490 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 12:48:44 ]
質問です
以下のようにShellExecute で URL を print したときに独自のアプリケーションを関連付けしたいのですが、どのレジストリにキーを追加すればいいでしょうか?

HINSTANCE hInst = ShellExecute(NULL, L"print", L"www.google.co.jp/index.html", NULL, NULL, SW_SHOWNORMAL);
※ShellExecute の第2引数に print、第3引数にURLを指定します

Expolorerのフォルダオプションのファイルの種類で、httpにprintを追加しましたが、ShellExecute の結果が SE_ERR_ACCESSDENIED (5) でエラーになりダメでした
htmlにも追加してみましたが、同様のエラー(SE_ERR_ACCESSDENIED)になりました
以下のレジストリへの登録は試したのですが、同様のエラー(SE_ERR_ACCESSDENIED)になりました

HKEY_CLASSES_ROOT\http\shell\print\command
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\HTTP\shell\print\command

わかる方がいましたら教えてください

491 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 13:07:50 ]
SE_ERR_ACCESSDENIED?
それだけを実行するシンプルなやつで試してみた?

492 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 13:10:43 ]
TOPMOSTオプションをつけたウィンドウを作ったのですが
タスクバーより手前に表示できません(タスクバーをクリックするとウィンドウが隠れてしまう)

何か良い方法があれば教えてください

493 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 13:51:38 ]
>>491
ShellExecuteだけを実行するアプリを作成して試してみましたが、ShellExecute の結果が SE_ERR_ACCESSDENIED (5) でエラーになりました
第3引数をURLではなく、.htmlファイルにしすると print した場合は ShellExecute で.htmlに関連付けしたアプリ起動できました。第3引数をURLにするとやはりエラーになります。
ShellExecuteで URL の print は無理なんですかね



494 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 13:55:42 ]
>>490
HKEY_CLASSES_ROOT\htmlfile\shell\Print\command

495 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 15:51:58 ]
DDEを考慮してないからだろ

496 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 16:57:13 ]
URLの場合、
HKEY_CLASSES_ROOT\MIME\Database\Content Type
辺りから手繰っていかないと駄目な気がする。
Content Typeでの判断がメインで、拡張子はあくまで補助的なものだし。

497 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 17:58:08 ]
テンポラリフォルダを空にするプログラムなんだけど、
"GetTempPath"でテンポラリフォルダを取得してそのままファイルを削除すると危険っぽいんで助けてください ><;

498 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:01:34 ]
>>497
なぜ危険か承知しているなら、やめときなよ。
どのタイミングで削除するつもりだ?

499 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:01:38 ]
You! やっちゃいなよ!

500 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:02:30 ]
>>497
GetTempPathで取得したフォルダ以下を削除するプログラム作ったら
何故かD:\みたいなパスが返ってきていてDドライブ以下が全部消えた事ならある

501 名前:490 mailto:sage [2008/12/31(水) 18:03:10 ]
>>494
残念ながら、そのレジストリをいじっても同様のエラーになりますた

>>495,496
DDEやらContent Typeとキーワードが出来てましたが、正直よくわからないので、
勉強してから挑戦してみます。d

502 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:04:05 ]
環境変数見りゃわかんだろ

503 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:11:20 ]
こちらのTaskbar Container のようにタスクバーからアイコンを一時的に消すには
どうしたらよいでしょうか?

Factorial
ray200x.s148.xrea.com/software/

検索しているのですが、なかなか見つかりません orz



504 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:23:51 ]
>>498
任意でいつでも削除できるのを、止めといたほうがよさそうですね・・・
>>499
やっちゃってるお掃除ソフト見つけたけど、下手するとOS再インストールする羽目になりそうです ><;
>>500
TEMPフォルダが見つからないとそうなるっぽい、でもエラーは返さない (´・ω・`)

505 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:23:58 ]
WS_EX_TOOLWINDOWをもつウィンドウはタスクバーには入らない。

506 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:28:11 ]
>>504
ユーザーが任意で削除できるようなサポートツールならいいが、自動で全部消しちゃうよーなツールなら
怖くて使えない。他のソフトの一時的なバックアップファイルを勝手に削除して、そのソフトが動かなくなったらどーするよ?
一定時間ごとに自動バックアップするソフトは結構ある。それらのソフトが、自身で作ったテンポラリファイルすべてをロック
しているとも限らない。

507 名前:503 mailto:sage [2008/12/31(水) 18:34:59 ]
>>505
Live Messengerを試しにTaskbar Containerに入れて
前後をWinSpectorで検証してみたのですが、
特にStyleやEXStyleは変化なしでした・・・うむむ

508 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:36:06 ]
>>506
そうですよね、テンポラリフォルダはむやみに触ったらイケナイってことを理解しますた! (`・ω・´)

509 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:54:19 ]
>>506
それって削除されると動かなくなるソフトの方が悪いんじゃまいか?
勝手に削除されて困るならロックしとくかApplication DataやLocal Settingsに置くべきだろ

510 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:58:41 ]
>>509
ソフトが良くても悪くても動かなかったら困るだろ。

511 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:59:46 ]
それは理解できるが、だからと言ってTemp全削除を行っていいわけにはいかない現実orz

512 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 18:59:48 ]
昔、アンインストーラーがProgram Files以下を全消ししたエロゲを彷彿とさせられたw

513 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 19:01:02 ]
>>503
それがどうやってるのか知らんけど、ITaskbarList を使えばできる



514 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 19:01:19 ]
( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \

515 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 19:02:30 ]
>>509
その通りだよ。そのソフトが悪い。
でも、そういうところに手を抜いているソフトを、手を抜いていることを知らないで使っているユーザが
被害を被るよーなことは、避けたほうがいいと俺は思う。ニュアンス的には、未必の故意ってヤツだ。


516 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 19:55:43 ]
>>515
Windows付属のツールでもTEMPフォルダのファイルを削除できるのだから
その程度でバグるようなソフトを考慮する必要なんてあるか?

exeと同じフォルダにファイル置くソフトがVistaでバグってるような物だろ。

517 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 20:15:58 ]
>>516
>ユーザーが任意で削除できるようなサポートツールならいい
と最初に>>506最初に書いたんだがなあ・・・。

518 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 20:18:59 ]
WindowsUpdateで再起動が必要なファイル更新だと、
新しいファイルが一旦TEMPに置かれていた気がするのだが。

519 名前:デフォルトの名無しさん [2008/12/31(水) 20:26:18 ]
                              /⌒)
                              ム  j
           ∧                   f   ヽ. |
          / ヽ     |    「 ̄ヽ    /   i.ヘV|
          / -ニニ=-  |    L_ノ   _/    ヽ.U|
         /   ヽ、   |    |  \ へ     ゝ|
                ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ヽ/_/|_/^ ̄

The days which are wrapped in the scene of summer and to pass gently
        An encounter with the girls repeated in the sunlight
           Summer continues to where as well
                 She is waiting in the air

520 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 20:52:16 ]
>>516
Windows付属のツールは一週間以上使用されていない一時ファイルのみ削除じゃなかった?

521 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 21:00:36 ]
そりゃ一定期間経過後のファイル限定なのは常識だろw
数秒前に作成されたばかりのファイルを削除するなんてウィルスと変わらんからな

522 名前:デフォルトの名無しさん [2008/12/31(水) 22:37:47 ]
俺は全部削除するよ

523 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 23:01:28 ]
俺も自分の作業場所と併せてバッチで全部削除
それで困った事なんてない



524 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 23:03:19 ]
自己解凍型のインストーラ実行中だと困る

ていうかそれ以外で困るとしたらソフトが悪い

525 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 23:13:05 ]
自己責任で削除するなら、困ろうがどーしようが自分の勝手。困ったときはスキルのなさを呪えばいい。
自分の知らないうちに勝手に削除されるなら、そういう削除ツールは>>521の言う通りウィルスと変わらん。

526 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 23:30:26 ]
GetTempPathって、TMPもTEMPも定義されてなかったらUSERPROFILE
それもなかったらWindowsのディレクトリを返すんだな……ゴクリ

SHGetFolderPathなら少しは安全かと思ったらCSIDLが定義されてなかったぜ

527 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 23:42:43 ]
どこまでWin32APIに関連するかわからないのですが、お聞きします。
英語版のWindowsで ansi window(not UNICODE)に
キャプションにSJISの日本語タイトルを表示した場合、
FindWindowで引数のタイトルに日本語を指定して見つけられるものでしょうか?

もちろん日本語だとfindwindowで0以外が返ってきて見つけてくれるのですが、
外人さんが試した限りだと見つけられないようなのです(0が返ってくる)
これは何か対処法がありますでしょうか?

528 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 23:44:42 ]
>>527
クラス名で FindWindow() するとか。

529 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 23:50:05 ]
文字コード環境を調べてタイトルを変化させるとか。

530 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:04:11 ]
タイトルをBase64エンコードしとけばいいだろあけおめ

531 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:04:52 ]
もうだめだ
おしまいだ
しぬしかない

532 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:06:16 ]
>>528
対象ウインドウはJavaのフレームワークのようでかぶった時が怖いです(´・ω・`)
クラス名は "SunAwtFrame" でした。
タイトルが "ログイン" なんだけど、向こうさんの環境だと文字化けしているみたい

>>529
英語環境でCP932(SJIS)だとどうなるんだろ・・・


とりあえず、FindWindowW(FindWindowのUNICODE版)でも
日本語環境だとタイトルとクラス名でウインドウが発見できるようですので、
こちらの方法で試してもらうように先方に言ってみます。

FindWindowをUNICODE版にして換わる門だろうか?

533 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:06:31 ]
なんか知らんがWindowsの内部文字コードは全部Unicode



534 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:07:22 ]
>>530
ごめん、もう少しkwsk
見つけたいウインドウのタイトルを変えるのって、見つけてない状態で可能なんですかね?
外部のプログラムなんですが・・・

535 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:10:25 ]
FindWindow() 以外にもいろんな方法あるし。

ウィンドウ列挙して GetWindowModuleFileName() とか、ついでにプロセスも列挙して、
GetWindowThreadProcessId() とか。

536 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:12:28 ]
年越えで勉強とは真面目だな、おまいら
あけおめ

537 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:14:52 ]
このスレ見てると現実に引き戻されるから正月くらい閉じよう

538 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:15:54 ]
>>536
|・ω・)ノ

539 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:28:47 ]
>>535
GetWindowModuleFileNameは自分のプロセス以外は正常に機能しない

540 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:38:07 ]
>>539
へー。NT 系だとダメなのね。

support.microsoft.com/default.aspx/kb/228469/ja

541 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:50:54 ]
そんなの常識だろ
2009年になったのにまだ9x系しか使ってないのかよ

542 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 00:53:27 ]
>>540
10年前からタイムスリップしてきた人ですね、わかります

543 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 01:11:40 ]
HWNDを、API(Direct3D)に渡す為にクラスのメンバにして保持しようと思うんですが、
HWNDは単純にコピーしていいんですか?
それともDuplicateHandle()で複製して、CloseHandle()で閉じるものなんでしょうか?
ちなみに、やってみたら不明なエラーで失敗しました。
※プログラムは単一プロセスです。




544 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 01:14:08 ]
DuplicateHandleの説明読めよ・・・

545 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 01:21:45 ]
>>544
読みました、複製できるハンドルの一覧にHWNDはありませんでした。
これは、HWNDの複製は単純コピーでかまわないってことですかね?
プロセス間で持ちまわるものじゃないから?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<198KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef