TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
【独学】一人で勉強する奴らのスレ【自習】
逆コンパイラCodeReverseを作る
Boost C++ Libraries Sandbox
クラスとかインスタンスってなんのためにあんの?
Android Studio Part3
■特許庁新システムを作る■
C言語なら俺に聞け 147
次世代言語21 Go Nim Rust Swift Kotlin TypeScript
Pythonのお勉強 Part63
疑似乱数2

Win32API質問箱 Build125


1 :2019/02/27 〜 最終レス :2020/04/07
Win32APIについての質問はこちらへどうぞ。

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

■過去スレ
Win32API質問箱 Build124
http://mevius.2ch.sc/test/read.cgi/tech/1510395780/
Win32API質問箱 Build123
http://mevius.2ch.sc/test/read.cgi/tech/1475897582/
Win32API質問箱 Build122
http://echo.2ch.sc/test/read.cgi/tech/1451988219/
Win32API質問箱 Build121
http://echo.2ch.sc/test/read.cgi/tech/1438695290/
Win32API質問箱 Build120
http://echo.2ch.sc/test/read.cgi/tech/1428570962/

■関連スレ
Visual Studio 2019
http://mevius.2ch.sc/test/read.cgi/tech/1548765663/
Visual Studio 2017 Part6
http://mevius.2ch.sc/test/read.cgi/tech/1528645068/
【C++】 DirectX初心者質問スレ Part41 【C】
http://mevius.2ch.sc/test/read.cgi/tech/1521786252/

2 :
■番外編
WindowsDDK各種についてのスレ
http://mevius.2ch.sc/test/read.cgi/tech/1049116134/
D言語 Part34
http://mevius.2ch.sc/test/read.cgi/tech/1422155249/
Cygwin + MinGW + GCC 相談室 Part 8
http://mevius.2ch.sc/test/read.cgi/tech/1411399211/
Borland Developer Studio 2006 No.13
http://mevius.2ch.sc/test/read.cgi/tech/1175861395/
Borland C++ Compiler オ ワ タ
http://mevius.2ch.sc/test/read.cgi/tech/1206951221/

3 :
■ネイティブなやつとか
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
http://mevius.2ch.sc/test/read.cgi/tech/1270793556/
【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 18
http://mevius.2ch.sc/test/read.cgi/tech/1488948543/
●●●●TCL/TKなら俺に聞け 4●●●●
http://mevius.2ch.sc/test/read.cgi/tech/1375678740/
Gtkプログラミング on Windows!!!
http://mevius.2ch.sc/test/read.cgi/tech/1147024203/

4 :
■需要あるかしらん
OpenGL 2.0 専用スレ
http://mevius.2ch.sc/test/read.cgi/tech/1126268759/
Google NaCl プログラミング 2mol
http://mevius.2ch.sc/test/read.cgi/tech/1298614677/
【boot】nasm【loader】
http://mevius.2ch.sc/test/read.cgi/tech/1377053129/

5 :
一応テンプレ更新できるものは更新と思ったけど、>>1以外変わってなかった。

>>4からは以下スレ消えてたので削除
OpenGL/Vulkanスレ Part22©2ch.sc
http://mevius.2ch.sc/test/read.cgi/tech/1440666771/
SDL=Simple DirectMedia Layerでゲームだ
http://mevius.2ch.sc/test/read.cgi/tech/1103655588/
MASM32 - 選ばれし本物のプログラマ
http://mevius.2ch.sc/test/read.cgi/tech/1348574727/

6 :
このテンプレって誰かが作ったのかスレでまとめられたのかどっちだろ。
>>2-4がスレ番変わってないくらい進行遅いか過疎ってるんで、要らない気もする。(更新チェック面倒)

7 :
生きてるのだけでいい

8 :
特に関連性ないスレばかりだな
これくらい興味もてよっていうチョイスなの?w

9 :
>1
いちもつ

10 :
ExitProcess(4, 0)

11 :
ねた
【セキュリティ】Intel製CPUに見つかった新たな脆弱性「SPOILER」はまたもシリコンレベルでの再設計による修正が必要
https://asahi.2ch.sc/test/read.cgi/newsplus/1551833609/

12 :
あまりにスレチでネタにならん

13 :
マウスエミュレートなどを使わずにドラッグ&ドロップを実現するにはどうしたらよいでしょうか。
具体的には、ユーザーはマウス操作を邪魔されることなく、バックグラウンド・アプリでドラッグ&ドロップしたいです。

14 :
>>13
DROPFILES構造体とHGLOBALとPostMessage(WM_DROPFILES)を使えばできるはず。

15 :
>>14
確かにその方法で、メモ帳やサクラエディタにはでドロップできるのですが、Visual Studio 2017やMozilla Firefoxにはドロップできないようです。
トップウィンドウのウィンドウハンドルを指定しているのですが、WM_DROPFILEを送るウィンドウハンドルの問題なのか、それとも違う要因なのか。

16 :
>>15
WS_EX_ACCEPTFILES拡張スタイルをチェックしながら、WindowFromPoint、GetParent、EnumChildWindowsなどでたどっていく。
ウィンドウの構造は、Spy++で分かるはず。

17 :
>>16
何をたどるのですか?

もう少し汎用的な例に変えます。
エクスプローラーで開かれたフォルダにファイルをドロップするにはどうすればいいでしょうか。
Windows10で試しているのですが、どなたかドロップ出来た方いらっしゃいますか?

18 :
たどるは、ウィンドウハンドル。ハンドルなくば話にならぬ。
FindWindow, FindWindowEx、EnumWindowsでまずはターゲットのウィンドウハンドルを取得する。

19 :
>>18
たびたび回答していただくのは有難いのですが、失礼ながら徒労に思えます。
フォルダへのファイルドロップの成功事例はご存知でしょうか?

20 :
エクスプローラがやってんだからできるだろw

21 :
ちなみに徒労について書いておくと、
Visual Studio 2017とexplorer.exe をSpy++で調べたところ、WS_EX_ACCEPTFILESを持つウィンドウはひとつもなし。

22 :
ならば、OLE D&Dしかない。

23 :
>>22
マウスエミュレートなしでどうかひとつ m(_ _)m

24 :
ヒント: https://github.com/reactos/reactos/blob/master/dll/win32/ole32/ole2.c

25 :
そういうのはソフトによってできるできないどうしてもあるよ
ひとことでD&Dいっても実装方法色々あるからね
汎用的なの考えずにターゲット絞れ

26 :
CreateProcessをUTF-8で実行したいんですが何か良い方法ありませんでしょうか

27 :
>>26
呼び出し側がコードページを変えるなどしようとも、実行される側のプログラムは引数を規定コードページで受け取るので無意味。

28 :
utf8ってかunicode使いたいってだけでしょ
CreateProcessWで

29 :
>>26
文字コード変換を挟んだラッパー関数を作るんではダメかな

30 :
>>28
あほやん

31 :
>>27
cp932が返ってきました

>>28
調べてみます(_ _)

>>29
パイプして出力を読んでそれをcp932からutf8に変換するということですよね

32 :
932から変換したらその分おちるから意味ないでしょ
SetConsoleOutputCPの話か?

33 :
>>26
何をUTF-8にしたいの?
CreateProcessに関連する文字列は
(1) 実行ファイルのPath
(2) コマンドラインパラメータ
(3) 環境変数
(4) カレントディレクトリ

(1)(3)(4)はCreateProcessA/CreatePeocessWでMBCSかUNICODEで渡す
必要があり、UTF-8では渡せない。(UTF8をUNICODEに変換して渡す)

(2)は受け取る側(実行されるアプリ側)しだいだねえ。

34 :
shell lightweight library, 略してshlwapiには便利な関数がたくさん詰まってるよ。のぞいてみてね。

35 :
utf-8はmbcsやろ

36 :
CP_UTF8とMultiByteToWideChar関数を使う。

37 :
>>33
CreateProcessにPythonとスクリプトを渡して実行、その出力をUTF-8で得たいんですが
例えば

python hoge.py

というコマンドラインを実行させるということなんですが
hoge.pyの出力はUTF-8になっているんですがCreateProcessを通すと出力がcp932になってしまうんです

38 :
setdefaultencoding
http://www.wakayama-u.ac.jp/~kazama/lab/python/i18n.html

39 :
つ ReadConsoleW()

40 :
すみません、Pythonのスクリプトに

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

を追加したら期待する出力を得られました
Win32API 関連の問題ではなかったみたいです
sys.stdout.encoding が cp932 になっていたのが原因だったみたいです
Windows環境のPythonだと標準で cp932 になるんですね

>>38-39
無事解決できました
ありがとうございました

41 :
漏れは、Ruby から、Powershell のGet-Clipboard, Set-Clipboard や、
clip コマンドを呼び出して、処理する

Ruby内では、UTF-8 で処理するから、
CP932から、UTF-8へ変換して処理して、
UTF-8から、CP932へ戻す

入力 : Windows(CP932) → 処理 : Ruby(UTF-8) → 出力 : Windows(CP932)

# クリップボード内の複数行文字列の、各行の先頭・末尾から、
# 連続する空白類を除去して、クリップボードに入れる

str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ary = str.each_line.map( &:strip ) # 連続する空白類を除去する

IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end

42 :
>>41
どこにでも沸いて出てくるんだな。
消えろ。

43 :
>>41
処理中にクリップボードが使われたらどうなるの

44 :
未だ、Win32apiって使われてるんだな。
自分はこの前古いwince向けソフトの機能追加のために
久しぶりに使った。
ce向けは仕様が若干簡素化されてたりしても少しはまった。後、開発環境(evc++)の軽さにも驚いた

45 :
未だいうて、APIそのものは必須やろ

46 :
表現が不適切だった。
現在のアプリ開発は.netが主体なので、c言語でwinアプリを書く機会って減ってるのかなと思って。
※.netだと便利なライブラリが準備されてるので、そもそも
win32api を使う機会も減るのかと

47 :
>>46
便利なのとなんでも出来るかって云うのはイコールではないからね
手段は多く持っていたほうが良い

48 :
.netの比率増えてきたけど、まだまだ.すくないなー

49 :
.NETは糞

50 :
.NET じたいがWin32APIなどライブラリのラッパーですよね?

51 :
Win32APIのラッパーはMFCと言うイメージ。
.netは.netと言うVMのAPIかな。
元がDelphiのVCLだからラッパーと言うのもおこがましい、高度に抽象化されたライブラリだし。

52 :
.NETは型システムを含めたランタイムそのものを内包しているので単なるライブラリではないだろ

53 :
極論かもしれないけど.netは単体のアプリケーションでMSの提供する
APIでWindowsの画面表示を書き換えるための環境なんだよね

なんでロジックと画面の書き換え以外の低レベルアクセスとかしようと
するとどうしてもWin32APIが必須になるのでいまだに「DllImport」みたいな
APIを残しておかないといかないわけで

低レベルはC++で書いてライブラリ化すればってのが本道なんだろうけど
結局「DllImport」するだけなんで、だったら直接Win32API呼んだほうが
早いし簡単だしってことでWin32APIから離れられないってことで

JavaもそうだけどマルチプラットフォームのためのVMで動作する言語は
低レベルアクセスを実装しちゃうとプラットフォームの違いを吸収できない
のでライブラリ参照みたいな仕組みで実装するしかないんだけどね

54 :
44だけど、.netやjavaのようなvmが昔から普及してたらと思うよ。昨年からwinceからlinuxへのアプリ移植行ったけど、できるだけ元コードに手をいれたくなかったので、win32apiやmfcと同じ動きをする関数を作って対応した。
今はlinuxで.netも動くようなので、c#で書いてたらこんな開発しなくても済んだのにと思ったりする。
当時のCPUではvmアプリはまともに動かなかったかもしれないけど。

55 :
今だって、例えばJavaならJNIゴリゴリだったりして
本気で使うアプリの移植性がいいとは思えないがなあ
安い値段で拾ってこれるプログラマが触る部分にはちょうど良いのだろうが

56 :
移植前のの開発者や仕様決める奴の能力次第だな
後々のこと考えてた奴のを移植するのは言語関係なく移植楽

57 :
>>56
その通りだと思う。
ただ、vm上で動くアプリはプラットフォーム依存部をvmが吸収してくれるので、そこの部分の移植は不要。

58 :
vine息してるの?

59 :
うっかりさんした
wineって息してるの?

60 :
vine (linux) よりは息してる

61 :
今回残念なのはシステム改修の需要は増えたけど
その場しのぎのパッチみたいな作業だけが増えたこと
どこも次の次の元号やその先の元号変更時に
「今回みたいに一ヶ月も期間置かなくても即日変更可能なシステムにしておこう」
って方向で改修する流れにならなかった
これはせっかくの天皇陛下の御英断と改元リハーサルにも関わらず
将来に禍根を遺す結果となってしまった

62 :
ウインドウを閉じさせるのは簡単だけど
例えばWin10の「YourPhone.exe」など、プロセスがキモいから終了させたいという場合
スナップショットでプロセスIDまでは掴んでいるのだけど
そこからプロセスを終了させるには、子プロセスを調べたりして面倒そうですか?

63 :
>天皇陛下の御英断
ちょーキモい野郎だ
あんな寄生虫は即刻処刑すべきだ
特別会計や本来不要な「国債」でどんだけ搾取されてると思ってるんだ

64 :
>>63
在日特権で寄生してるどっかの民族にそれ言えよ

65 :
>>62
使わないんだったら最初から起動しなければいい

66 :
>在日特権で寄生してるどっかの民族にそれ言えよ
天皇が同和朝鮮人に治外法権を与えるから
同和朝鮮人は女の子を強姦して臓器を抜き出して病院から2千万円ゲットだ
警察に捕まっても天皇同和だと言えば解放される
問題は朝鮮人天皇にあると思いませんか?

67 :
>>66
ほとんどの人はもう免疫が出来てるぜ。あきらめろ。

68 :
「IEコンポーネントでダウンロードマネージャを実装したい」 https://t.co/PW5Ew1rmEj #teratail 👀
Rock54: Caution(BBR-MD5:b73a9cd27f0065c395082e3925dacf01)


69 :
早く来い来い返事来い

70 :
OSの日付表示を元号表示にしてない非国民なんているの?

71 :
天皇制いらね。
即位したから10連休?恩赦?
バカじゃねーの
どこの後進国だよw

72 :
8964
上級国民の公務員様が休みたいだけ

73 :
ぼくも明日から5/6まで休みますが上級国民にカテゴライズして貰えるのですかね?(純真)

74 :
>>71
極東の後進国ですよ。文明の到着が一番遅れるんです。

75 :
業務でエクスプローラでファイルリストを見る時は、曜日も表示できるようにすると便利だということに最近になって気づいた。
頭を慣らすために西暦ではなく元号の年月日時表示形式にするのは、プロとしての心得でしょ。

76 :
頭を慣らすために曜日非表示は最低限だろ。日付非表示までいけよ。プロとしての心構えが足りないぞ

77 :
元号&曜日つきの日付設定の件は、ファイルブラウザ限定の話ではない。メールブラウザとかも。

78 :
スレ違いだから別スレかマ板でやれよ

79 :
>>67
>臓器を抜き出して
人体標本とかはありうるみたいですね…
閲覧注意 https://blog.goo.ne.jp/sakurasakuya7/e/0201d90efa00152c5b2ac054bda9ee32

80 :
曜日表示はWin32の守備範囲だぜ。スレ違いではない。

81 :
メーラーのThunderbirdだと、OSで元号表示にしたら「西暦2019年4月25日(木) 12:14」のように表示され、
元号表示ってそういう意味じゃないだろ、と静かなツッコミを楽しむことができるぞ。

82 :
>>81
日本では「AD」を「西暦」と呼んでいるから違和感があるだけ。「AD」は「アンノドミニ」という名の元号。

83 :
EnumDateFormatsExEx() で取得できる書式を使っても、GetDateFormatEx()では「西暦」を含む文字列は出力されない。
となるとMozilla Thunderbirdは書式に含まれるggを独自に「西暦」という文字列に置換していると予想できる。

84 :
>>83
紀元前を意識してるんだっけ?

Windowsがそんな昔を想定して作られているとは思えぬ。

85 :
キリスト再臨を意識してるんだろう

86 :
>>82
アホか、元号について調べてから出直してこいよ
ちなみに西暦は紀元な

87 :
>>84
さすがにグレゴリウス暦だろうなあ

88 :
SYSTEMTIME structure
https://docs.microsoft.com/en-us/windows/desktop/api/minwinbase/ns-minwinbase-systemtime
The year. The valid values for this member are 1601 through 30827.

89 :
>>86
西暦はそういう年号なんだよ。まともに調べてものを言えよ!

90 :
>>89
元号と年号の区別もつかないアホは黙っとけw

91 :
ほんとアホばっかw
西暦xxxx年って書き方は普通だよ

平成は元号であり年号でもある
西暦は年号だけど元号ではない
>>81は「年号表示」という訳にしとくのがいい

92 :
60 名前:名無しさん@1周年[sage] 投稿日:2019/04/26(金) 17:07:27.22 ID:ZP74hWkE0
access2016は対応済みだな、表示をgee/mm/ddにしてH31/05/01と入力するとR01/05/01と変換してくれる。
ちなみに2007だとR01/05/01と入力するとご丁寧にもH31/05/01と変換してくれるw
そこまでやるならきちんと対応しろと言いたい。

93 :
大規模開発の時に役立つ

・モジュール間の結合を下げて、作業分担・デバック・例外処理の範囲を明確化できる
・継承の型指定で、質がピンキリなプログラマーたちの実装を縛れる
・オブジェクト指向の思想は直感的でわかりやすいから、頭の弱いPGにも理解させやすい

特にプログラマーの質が低い時は、javaを使わないと大規模開発できない

94 :
>>92
まだ改元された訳じゃないからそれで正しい

5/1 以降は動作が変わるはず

95 :
>>92
運転免許の表記がH35だが、勝手にRに変えられても困る

96 :
S64年からH1年 と書くようになった時、たぶんあまり違和感を感じなかったと思うが
R1年ってなんか妙だな

R1とか書かれたら国一と勘違いしそう

97 :
令和18年にR18ネタが大量発生する予感

98 :
自作アプリで、他アプリがアクティブなときでもマウスイベントを監視するために、
SetWindowsHookEx(WH_MOUSE_LL, HookProc, hmod, 0);
とすると、確かにHookProcが呼ばれますが、
アクティブな他アプリが管理者特権あり(タスクマネージャとか)だと呼ばれません。

その場合でも、自作アプリが管理者特権ありで実行されていれば、
ちゃんとHookProcが呼ばれます。

自作アプリを管理者特権なしの通常の実行時でも、
タスクマネージャとかがアクティブなときのマウスイベントを監視するには
どうすればいいのでしょうか?

フリーソフトのX-Mouse Button Controlとか、StrokesPlusとか、
ではできているようなので、なにかしら方法はあると思うのですが。

(win10, 64bit)

99 :
自分より上位の権限で動作してるプログラムの動作を盗めちゃったら
特権の意味がないじゃん

100 :
そういう場合setupでSYSTEMで動くサービスをこっそり仕込んどくんだよ


100〜のスレッドの続きを読む
Pythonのお勉強 Part61
【C++】マイナーGUIツールキット
C++相談室 part150
オブジェクト指向の活用方法を教えて下さい
Rust Part5
インデントはタブかホワイトスペースか?
次世代が造った言語 blawn
Androidプログラミング質問スレ revision49
Kotlin 4
C言語なら俺に聞け 152
--------------------
なぜラグビーはハンドボールに抜かれたのか
【P5】新島真&信者アンチスレ16【ペルソナ5】
やりすぎ防パトは創価学会と警察署の仕業だった
【国際】韓国の兄弟国トルコのテレビ局が謝罪 クウェート人の殺人犯として文大統領の画像を使用
俺にアズレン進めた奴誰だよ
【銀歯】金属歯大好き!【差し歯】
ひらがな2期最終審査の賀喜遥香の映像が発掘されてしまうwwww
TOKYO2020チケット情報交換スレッド 22
チャンネル桜 151【大嘗宮の屋根】
あなたの誕生日は何の記念日ですか?
立花岳志やその取り巻きをヲチるスレ Part16
プリッシュ「ウルミアそろそろいいか?」
【速報】埼玉県蕨市で高校生を刃物で指した男が逃走中 [427379953]
【ECO】エミルクロニクル晒しスレ137
【Switch】Xenoblade2 ゼノブレイド2 part291【モノリス】
13日金曜日、人権死す!!
安倍首相、新型センチュリー納車
お前ら!POP-COMについて語ってくれませんか?
かまいたちの夜 第13章 笑顔が戻るその日まで・・・
オリンピック秋に延期が濃厚。4月中に開催判断せまられる
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼