Win32APIについての質問はこちらへどうぞ。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
Win32API質問箱 Build123
http://mevius.2ch.net/test/read.cgi/tech/1475897582/
Win32API質問箱 Build122
http://echo.2ch.net/test/read.cgi/tech/1451988219/
Win32API質問箱 Build121
http://echo.2ch.net/test/read.cgi/tech/1438695290/
Win32API質問箱 Build120
http://echo.2ch.net/test/read.cgi/tech/1428570962/
■関連スレ
Visual Studio 2017 Part4
http://mevius.2ch.net/test/read.cgi/tech/1509244956/
【C++】 DirectX初心者質問スレ Part40 【C】
http://mevius.2ch.net/test/read.cgi/tech/1474782237/
探検
Win32API質問箱 Build124
■ このスレッドは過去ログ倉庫に格納されています
2017/11/11(土) 19:23:00.69ID:TpLoCFAx
390デフォルトの名無しさん
2018/05/18(金) 12:21:16.66ID:JEElro2Y チュートリアルにサンプルコード載ってるじゃん
391デフォルトの名無しさん
2018/05/18(金) 12:23:26.03ID:aDkqve5K ごめんなさい
プログラムするんじゃなくて、インストールの仕方、使えるようにする方法がわからない
プログラムするんじゃなくて、インストールの仕方、使えるようにする方法がわからない
392デフォルトの名無しさん
2018/05/18(金) 12:40:49.02ID:JEElro2Y ducumentationにインストール方法書いてあるじゃん
393デフォルトの名無しさん
2018/05/18(金) 12:53:35.86ID:aDkqve5K どれ?。。
プロジェクトに追加されてたらOKなの?
EasyHookをつかってるプログラムが動かないんだけど
RemoteHooking.Injectがエラーになる
プロジェクトに追加されてたらOKなの?
EasyHookをつかってるプログラムが動かないんだけど
RemoteHooking.Injectがエラーになる
394デフォルトの名無しさん
2018/05/18(金) 12:55:27.82ID:JEElro2Y ducumentationからコピペ
Adding EasyHook to your project
1.Open your project in Visual Studio, or create a new one.
2.Right-click your project within the Solution Explorer and select “Manage NuGet Packages…”.
3.Search for “EasyHook”
4.Select the EasyHook package and click install.
After accepting the license agreement your project is ready to use EasyHook.
Adding EasyHook to your project
1.Open your project in Visual Studio, or create a new one.
2.Right-click your project within the Solution Explorer and select “Manage NuGet Packages…”.
3.Search for “EasyHook”
4.Select the EasyHook package and click install.
After accepting the license agreement your project is ready to use EasyHook.
395デフォルトの名無しさん
2018/05/18(金) 12:59:51.80ID:mWyCAt5N おまえこんなスレチなのをよく答える気になるなw
396デフォルトの名無しさん
2018/05/18(金) 13:06:44.09ID:aDkqve5K ごめんなさい
どこいけばいいの?
どこいけばいいの?
397デフォルトの名無しさん
2018/05/18(金) 13:26:58.25ID:mWyCAt5N あるならEasyHookをつかってるプログラムのスレ
無いなら入手元良く見る
無いなら入手元良く見る
398デフォルトの名無しさん
2018/05/21(月) 14:45:12.74ID:J624wk10 keymapでも壊してみたらいいんじゃね?
399デフォルトの名無しさん
2018/05/21(月) 15:51:07.84ID:pTo/71V7 壊すのも元に戻すのも再起動必要になるだろ
400デフォルトの名無しさん
2018/05/23(水) 19:14:45.20ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
IAVAJ
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
IAVAJ
401デフォルトの名無しさん
2018/05/24(木) 10:37:52.55ID:cPlRxlDn IAVAJ
402デフォルトの名無しさん
2018/05/29(火) 22:34:39.42ID:7/wI9AnP Windows10で仮想デスクトップを使った場合
そのどちらのデスクトップに自作アプリがあろうとも
GetDC(0)って現在表示しているデスクトップを取得するんだな
子ウィンドウだけを仮想デスクトップに移動しておいて
その子ウィンドウにスクリーン・ショットを取らせようと考えていたんだが
所詮、仮想なんだ?
もしかしてGetDC(1)で仮想の方を取得できないかもやったが真っ白だた
そのどちらのデスクトップに自作アプリがあろうとも
GetDC(0)って現在表示しているデスクトップを取得するんだな
子ウィンドウだけを仮想デスクトップに移動しておいて
その子ウィンドウにスクリーン・ショットを取らせようと考えていたんだが
所詮、仮想なんだ?
もしかしてGetDC(1)で仮想の方を取得できないかもやったが真っ白だた
403デフォルトの名無しさん
2018/05/30(水) 07:12:33.93ID:tkaPgK/f そらgetdcの引数は仮想デスクトップ番号じゃないかならなw
ivirtualdesktopmanagerじゃそういうのできないしどうしたらいんだろうな
ivirtualdesktopmanagerじゃそういうのできないしどうしたらいんだろうな
404デフォルトの名無しさん
2018/05/30(水) 07:34:07.95ID:VLAeNwdW アクティブじゃない仮想デスクトップにあるUWPアプリとか
サスペンドするようにもなってるしDWM的に無理じゃないかしら
サスペンドするようにもなってるしDWM的に無理じゃないかしら
405デフォルトの名無しさん
2018/06/01(金) 04:15:17.48ID:LQ78zvmu このスレがまだあってよかった。
いま時 Win32APIを使ってゴリゴリ書いてるんだけど、
RegisterClassEx 構造体の lpszClassName に指定する文字列って、
ローカルな変数で指定しても大丈夫? つまり、ウィンドウクラスの登録後に
文字列のメモリが解放されてしまうことになっても問題ない?
それとも文字列リテラル(静的文字列)じゃないとダメなの?
いま時 Win32APIを使ってゴリゴリ書いてるんだけど、
RegisterClassEx 構造体の lpszClassName に指定する文字列って、
ローカルな変数で指定しても大丈夫? つまり、ウィンドウクラスの登録後に
文字列のメモリが解放されてしまうことになっても問題ない?
それとも文字列リテラル(静的文字列)じゃないとダメなの?
406405
2018/06/01(金) 04:17:20.03ID:LQ78zvmu すまそ、変な書き方をした。
>RegisterClassEx 構造体の
WNDCLASSEX 構造体の、lpszClassNameフィールド。
>RegisterClassEx 構造体の
WNDCLASSEX 構造体の、lpszClassNameフィールド。
407放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/01(金) 04:33:40.82ID:p/Dhco7s 登録されたら、文字列の内容が記録されるから、ローカル変数で結構毛だらけ。
409デフォルトの名無しさん
2018/06/13(水) 19:44:17.74ID:lSIEjw1a declspec dllexport使ってなかったから気づかなかったけど
x64で仕様変わったんだな
x64で仕様変わったんだな
410デフォルトの名無しさん
2018/06/13(水) 19:53:03.95ID:08JTaAbh 呼び出し規約が?
411デフォルトの名無しさん
2018/06/13(水) 21:31:58.11ID:lSIEjw1a x86だと先頭にアンダーバーが 後ろに@引数バイト数がついてたけど
それが無くなって関数名だけを勝手にエクスポートしてくれるみたいだ
それが無くなって関数名だけを勝手にエクスポートしてくれるみたいだ
412デフォルトの名無しさん
2018/06/14(木) 00:37:48.44ID:CDT3Iung413デフォルトの名無しさん
2018/06/14(木) 02:49:39.56ID:zhf22BrY Cの話なのね
414デフォルトの名無しさん
2018/06/14(木) 09:33:49.07ID:0LV14Koi ++でも同じだよ。結局使うのはc形式なんだから
415デフォルトの名無しさん
2018/06/16(土) 12:34:33.29ID:eoVHJNOw Windows7でRemoveMenu関数を使ってコマンドプロンプトのクローズボックスを無効化したあと
タイトルバーからプロパティが開けなくなるようですが、コマンドプロンプトを再起動する以外で
回避する方法はありますか?
タイトルバーからプロパティが開けなくなるようですが、コマンドプロンプトを再起動する以外で
回避する方法はありますか?
416デフォルトの名無しさん
2018/06/16(土) 12:41:21.25ID:fQgtrTpq cmdが内部で特殊な処理してない限りそんなこと起きないと思うんだけど・・
単にプロパティの位置が一番下だから間違えて消してるんじゃない?
単にプロパティの位置が一番下だから間違えて消してるんじゃない?
417放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/16(土) 13:09:31.09ID:Iux2O+3t RemoveMenu呼び出しの周辺のコードさらせ。
418デフォルトの名無しさん
2018/06/16(土) 16:12:48.28ID:IDYLbmOn コマンドプロンプトやPSのコンソールの実装はかなり特殊だよ
1ウィンドウと同じに考えてはいけないと思ってる
1ウィンドウと同じに考えてはいけないと思ってる
419デフォルトの名無しさん
2018/06/16(土) 16:48:55.99ID:fQgtrTpq 本当かよっと思って試しにやってみたら何のトラブルもなく閉じるだけ消えてプロパティ開けるぞ
420デフォルトの名無しさん
2018/06/20(水) 14:47:03.73ID:XFilFgQX LOGFONTのlfUnderlineを設定したフォントで文字を描画した際、下線が引かれますが、
この下線の位置や太さを決定するルーチンはありませんか?
点線なども引けるようにするため、lfUnderlineを使わずに自分で描きたいのですが、
単純に下端に描くと、メイリオだと全然違う位置になってしまいます。
この下線の位置や太さを決定するルーチンはありませんか?
点線なども引けるようにするため、lfUnderlineを使わずに自分で描きたいのですが、
単純に下端に描くと、メイリオだと全然違う位置になってしまいます。
421デフォルトの名無しさん
2018/06/20(水) 14:57:53.57ID:OnxnZInx つまりアンダーラインが相対的にどこに来るかを指定してる属性を取りたいっていう質問でしょうか?
422デフォルトの名無しさん
2018/06/20(水) 15:05:42.83ID:XFilFgQX423デフォルトの名無しさん
2018/06/20(水) 15:06:59.64ID:XFilFgQX 追記ですが、理想としてはlfUnderlineのときと
全く同じ位置や太さで描きたいと思っています。
全く同じ位置や太さで描きたいと思っています。
424デフォルトの名無しさん
2018/06/20(水) 15:10:10.67ID:4KfCtndu baseline memo
http://d.hatena.ne.jp/satosystems/20140210/1392019342
http://marupeke296.com/DXG_No66_OutlineFont.html
http://d.hatena.ne.jp/It_lives_vainly/20100331/1270002338
http://k3tec.net/neko_wiki/index.php?%A3%D7%A3%E9%A3%EE%A3%B3%A3%B2%A3%C1%A3%D0%A3%C9%B9%D6%BA%C28%B2%F3
http://chokuto.ifdef.jp/urawaza/struct/LOGFONT.html 👀
Rock54: Caution(BBR-MD5:79b7e0206b0fd5ffcfddd514fa488d36)
http://d.hatena.ne.jp/satosystems/20140210/1392019342
http://marupeke296.com/DXG_No66_OutlineFont.html
http://d.hatena.ne.jp/It_lives_vainly/20100331/1270002338
http://k3tec.net/neko_wiki/index.php?%A3%D7%A3%E9%A3%EE%A3%B3%A3%B2%A3%C1%A3%D0%A3%C9%B9%D6%BA%C28%B2%F3
http://chokuto.ifdef.jp/urawaza/struct/LOGFONT.html 👀
Rock54: Caution(BBR-MD5:79b7e0206b0fd5ffcfddd514fa488d36)
425デフォルトの名無しさん
2018/06/20(水) 15:34:01.33ID:mFWpedZK 質問者じゃないけど、フォント周りのコードを弄ってるときに
ベースラインやレディングについて実際に値が欲しいときがちょくちょくあったなあ。
結局分からなかった思い出。
>>424
結局概念しか分からないw
win32apiじゃなくて、これしかないのかな?
https://msdn.microsoft.com/en-us/library/windows/desktop/ms533824(v=vs.85).aspx
ベースラインやレディングについて実際に値が欲しいときがちょくちょくあったなあ。
結局分からなかった思い出。
>>424
結局概念しか分からないw
win32apiじゃなくて、これしかないのかな?
https://msdn.microsoft.com/en-us/library/windows/desktop/ms533824(v=vs.85).aspx
426菩薩@太子
2018/06/21(木) 20:10:03.98ID:6ce+aANS 汝らよ、汝らはWin32APIに関してわからないことがあったら、このスレで質問しなさい。
そして我が見守るこのスレで、誉れと思って、おにーさんおねーさんたちから、適切なアドバイスを受けなさい。
そして我が見守るこのスレで、誉れと思って、おにーさんおねーさんたちから、適切なアドバイスを受けなさい。
427デフォルトの名無しさん
2018/06/21(木) 20:18:23.12ID:pkPeGiXN さすれば、弥勒菩薩が降臨するまでに回答が得られるであろう
428デフォルトの名無しさん
2018/06/22(金) 06:16:52.85ID:kyYAMp48 芽っていう意味だよ
429デフォルトの名無しさん
2018/06/22(金) 08:59:29.47ID:4s+1pzSQ >>423
アセント、ディセントの値を取ってベースラインを割り出すとか出来たような…
とにかく、アセント、ディセントをググってみるのがいいと思う
昔、似たようなことやって、えらい苦労した覚えがあるわ
詳しいことはもうほとんど忘れた
アセント、ディセントの値を取ってベースラインを割り出すとか出来たような…
とにかく、アセント、ディセントをググってみるのがいいと思う
昔、似たようなことやって、えらい苦労した覚えがあるわ
詳しいことはもうほとんど忘れた
430デフォルトの名無しさん
2018/06/22(金) 20:00:29.48ID:HpQmxb21 DirectWriteだとカスタム描画用にIDWriteTextRenderer::DrawUnderlineというコールバックがあるで
431デフォルトの名無しさん
2018/06/22(金) 20:21:26.56ID:vo7No3CM もしかして GetTextMetrics で取得した TEXTMETRIC の tmAscent, tmDescent
で分かるんじゃないの?
で分かるんじゃないの?
432415
2018/06/23(土) 09:44:08.76ID:UVw2sBCh >>416-419
原因が分かりました
↓のGetSystemMenuをTRUEで呼ぶ箇所をなくしたら、実行後でもプロパティが表示されました
MSDNに「TRUE を指定すると、この関数は、ウィンドウメニューをリセットして Windows の既定の状態へ戻します。」と
書いてあったので、cmdなら起動直後の状態に戻るものだとばかり・・・orz
HMENU hmenu;
/* ボタンの状態を変更する前に、コンソールのカスタマイズを取り消す */
GetSystemMenu(GetConsoleWindow(), TRUE);
/* コンソールメニューハンドルのコピーを取得する */
hmenu = GetSystemMenu(GetConsoleWindow(), FALSE);
/* 引数に応じて "閉じる"、"最小化"、"最大化" 各ボタンを無効化する */
if (!(button_stat & 0x01))
RemoveMenu(hwnd, SC_CLOSE, MF_BYCOMMAND);
/* 以下省略 */
原因が分かりました
↓のGetSystemMenuをTRUEで呼ぶ箇所をなくしたら、実行後でもプロパティが表示されました
MSDNに「TRUE を指定すると、この関数は、ウィンドウメニューをリセットして Windows の既定の状態へ戻します。」と
書いてあったので、cmdなら起動直後の状態に戻るものだとばかり・・・orz
HMENU hmenu;
/* ボタンの状態を変更する前に、コンソールのカスタマイズを取り消す */
GetSystemMenu(GetConsoleWindow(), TRUE);
/* コンソールメニューハンドルのコピーを取得する */
hmenu = GetSystemMenu(GetConsoleWindow(), FALSE);
/* 引数に応じて "閉じる"、"最小化"、"最大化" 各ボタンを無効化する */
if (!(button_stat & 0x01))
RemoveMenu(hwnd, SC_CLOSE, MF_BYCOMMAND);
/* 以下省略 */
433さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 08:52:07.32ID:jlx8CiNF434デフォルトの名無しさん
2018/06/24(日) 09:12:16.31ID:7l22t7T7 また片山の宣伝かよ
435放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 10:11:04.49ID:Ki1yi8uD 一応、Win32APIで書いたんですけど。
436デフォルトの名無しさん
2018/06/24(日) 10:53:22.32ID:7l22t7T7 そういう考えで今まで何度も宣伝してたのかw
ここはwin32api質問用のスレ。言い換えるとAPIの使い方に関するスレであって、
API使ってるアプリ紹介スレじゃないんだよ
ここはwin32api質問用のスレ。言い換えるとAPIの使い方に関するスレであって、
API使ってるアプリ紹介スレじゃないんだよ
437デフォルトの名無しさん
2018/06/24(日) 10:54:03.26ID:QdNeiEeM あ? なんだよ「C++11に準拠してarray::operator[]で範囲チェックしろ」とかラリってる糞コテは片山かよ
438放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 11:09:06.07ID:Ki1yi8uD439放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 11:19:47.20ID:Ki1yi8uD 5ちゃんねるは、広告料と浪人の収益によって成り立っています。
440デフォルトの名無しさん
2018/06/24(日) 11:21:10.11ID:7l22t7T7 関係ないよ
質問内容によってはリソース編集が関係してくることはあるが、そんなソフトが関係することはまずない
質問内容によってはリソース編集が関係してくることはあるが、そんなソフトが関係することはまずない
441放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 11:23:27.52ID:Ki1yi8uD コマーシャルの仕組みについて皆さまのご理解をお願い致します。
443放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 11:39:26.10ID:Ki1yi8uD お前ら、Win32を知り尽くしているんだろ?
だれかReactOSで日本語入力できるようにしてくれよ。
だれかReactOSで日本語入力できるようにしてくれよ。
44441
2018/06/24(日) 11:48:47.83ID:iIAhljkC Win32Apiで何ができるかをを知り尽くしているが
Win32Apiが何をしているのかは何も知らない
Win32Apiが何をしているのかは何も知らない
445デフォルトの名無しさん
2018/06/25(月) 01:12:02.96ID:R9m7k+sg if(sa::sendkey[cnt]!=NULL){
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_CONTROL, 0 );
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_MENU, 0 );
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_SHIFT, 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, sa::sendkey[cnt], 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYUP, sa::sendkey[cnt], 1);
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_SHIFT, 1);
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_MENU, 1);
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_CONTROL, 1);
}
sa::sendkeyにデータキーが有る時、sa::sendcontrol、sa::sendalt、sa::sendshiftがtrueならば、
「Ctrl+Alt+Shift+データキー」といったふうに送信したいのですが、
データキーしか送信されません。
何がいけないのでしょうか?
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_CONTROL, 0 );
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_MENU, 0 );
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_SHIFT, 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, sa::sendkey[cnt], 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYUP, sa::sendkey[cnt], 1);
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_SHIFT, 1);
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_MENU, 1);
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_CONTROL, 1);
}
sa::sendkeyにデータキーが有る時、sa::sendcontrol、sa::sendalt、sa::sendshiftがtrueならば、
「Ctrl+Alt+Shift+データキー」といったふうに送信したいのですが、
データキーしか送信されません。
何がいけないのでしょうか?
446デフォルトの名無しさん
2018/06/25(月) 07:03:38.33ID:euNVlzH4 keybd_eventもしくはsendinput使う
447デフォルトの名無しさん
2018/06/25(月) 18:46:39.01ID:oo6U7F08 ??非アクティブウィンドウのままがいいならこれでどうでしょう
ShiftとEndの同時押しが出来ることを確認しました
void send_shift_and_end()
{
HWND hWnd = FindWindow(L"Notepad", NULL);
if (hWnd == NULL) {
return;
}
HWND hEdit = FindWindowEx(hWnd, NULL, L"Edit", L"" );
if (hEdit == NULL) {
return;
}
BYTE kstats[256], shiftstat;
DWORD srctid, dsttid;
srctid = GetCurrentThreadId();
dsttid = GetWindowThreadProcessId(hEdit, NULL);
AttachThreadInput(srctid, dsttid, TRUE);
GetKeyboardState(kstats); // 実行前の状態を保存
shiftstat = kstats[VK_SHIFT];
kstats[VK_SHIFT] |= 0x80; // shift を押下状態に
SetKeyboardState(kstats); // 状態を更新
SendMessage(hEdit, WM_KEYDOWN, VK_END, 0); // SendMessage は OK, PostMessageは NG
kstats[VK_SHIFT] = shiftstat;
SetKeyboardState(kstats); // 実行前の状態に復帰
}
ShiftとEndの同時押しが出来ることを確認しました
void send_shift_and_end()
{
HWND hWnd = FindWindow(L"Notepad", NULL);
if (hWnd == NULL) {
return;
}
HWND hEdit = FindWindowEx(hWnd, NULL, L"Edit", L"" );
if (hEdit == NULL) {
return;
}
BYTE kstats[256], shiftstat;
DWORD srctid, dsttid;
srctid = GetCurrentThreadId();
dsttid = GetWindowThreadProcessId(hEdit, NULL);
AttachThreadInput(srctid, dsttid, TRUE);
GetKeyboardState(kstats); // 実行前の状態を保存
shiftstat = kstats[VK_SHIFT];
kstats[VK_SHIFT] |= 0x80; // shift を押下状態に
SetKeyboardState(kstats); // 状態を更新
SendMessage(hEdit, WM_KEYDOWN, VK_END, 0); // SendMessage は OK, PostMessageは NG
kstats[VK_SHIFT] = shiftstat;
SetKeyboardState(kstats); // 実行前の状態に復帰
}
448デフォルトの名無しさん
2018/06/25(月) 20:01:44.94ID:R9m7k+sg レスありがとうございます。
このようにしてみたのですが、送りたいウィンドウがもともとアクティブな時は送信されるのですが、
アクティブ出ない場合、アクティブに出来ずに居ます。
if(sa::sendkey[cnt]!=NULL){
//ターゲットををアクティブに
HWND hWndTemp = SetActiveWindow(sa::hWndSa);
char t0[256 + MAX_PATH];
sprintf(t0, "sa::hWndSa:%d(%x), hWndTemp:%d(%x)", sa::hWndSa, sa::hWndSa, hWndTemp, hWndTemp);
strscr_set(t0);
//Key Event送信
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
//元のウィンドウをアクティブに
SetActiveWindow(hWndTemp);
}
デバッグ情報を見る限り、ウィンドウハンドルは取得できてます。何がまずいのでしょうか?
このようにしてみたのですが、送りたいウィンドウがもともとアクティブな時は送信されるのですが、
アクティブ出ない場合、アクティブに出来ずに居ます。
if(sa::sendkey[cnt]!=NULL){
//ターゲットををアクティブに
HWND hWndTemp = SetActiveWindow(sa::hWndSa);
char t0[256 + MAX_PATH];
sprintf(t0, "sa::hWndSa:%d(%x), hWndTemp:%d(%x)", sa::hWndSa, sa::hWndSa, hWndTemp, hWndTemp);
strscr_set(t0);
//Key Event送信
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
//元のウィンドウをアクティブに
SetActiveWindow(hWndTemp);
}
デバッグ情報を見る限り、ウィンドウハンドルは取得できてます。何がまずいのでしょうか?
449デフォルトの名無しさん
2018/06/25(月) 20:03:32.63ID:R9m7k+sg ちょっと>>447さんの方法も試してみます。
有り難うございます。
有り難うございます。
450放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/25(月) 20:32:07.52ID:RnBLs+IR Ctrl+Alt+Delは、セキュリティで保護されているんじゃ中田家?
451デフォルトの名無しさん
2018/06/25(月) 21:13:56.50ID:R9m7k+sg >>447さんの方法で無事うごきました。
ありがとうございましたm(_ _)m
ありがとうございましたm(_ _)m
452デフォルトの名無しさん
2018/06/25(月) 21:31:41.84ID:f6L/NlJ0 SetActiveWindow の代わりに SetForegroundWindow を試してみたら?
453デフォルトの名無しさん
2018/06/25(月) 21:35:50.33ID:I2eYxQBJ blinkWindowtop
454デフォルトの名無しさん
2018/06/30(土) 18:06:34.48ID:RTJdtcUh 言いたかないがCOMでマジで糞だなと思うのは
アパートメントか何だか知らないが
勝手に内部でメッセージループ回すな!!!
たまにそうなって通常ではあり得ない順番で関数が呼ばれてデッドロックするんだよ糞野郎
そういう糞メソッド見つけるたびにメインスレッドとは別のスレッドで実行するように書き直すんだが
実に馬鹿らしい
どのオブジェクトのどのメソッドでそうなる可能性が有るかMSDNのどこにも書かれてないしな
どうしろと
アパートメントか何だか知らないが
勝手に内部でメッセージループ回すな!!!
たまにそうなって通常ではあり得ない順番で関数が呼ばれてデッドロックするんだよ糞野郎
そういう糞メソッド見つけるたびにメインスレッドとは別のスレッドで実行するように書き直すんだが
実に馬鹿らしい
どのオブジェクトのどのメソッドでそうなる可能性が有るかMSDNのどこにも書かれてないしな
どうしろと
455デフォルトの名無しさん
2018/06/30(土) 18:25:36.41ID:SPR6zsx0 別スレッドにしたら余計危ないだろw
456デフォルトの名無しさん
2018/06/30(土) 19:40:38.36ID:RTJdtcUh いやまじでさ
しかも今まで大丈夫だったのに最近のWindows10のアップデートを当てたら
なぜかメッセージループ回すようになったやつとかあるし
いつ何のタイミングでメッセージループが回るか分からねぇ
アパートメントモデルはマジで糞過ぎ
全部マルチスレッド対応でいいだろ意味不明
しかも今まで大丈夫だったのに最近のWindows10のアップデートを当てたら
なぜかメッセージループ回すようになったやつとかあるし
いつ何のタイミングでメッセージループが回るか分からねぇ
アパートメントモデルはマジで糞過ぎ
全部マルチスレッド対応でいいだろ意味不明
457デフォルトの名無しさん
2018/06/30(土) 19:45:02.11ID:RTJdtcUh ただスレッドモデルのせいでメッセージループが回ってるのかどうかは良くわからないんだがな
原因は分からんが勝手にメッセージループ回すのはマジで迷惑だからやめてほしい
何がどの順で実行されるか分からなくなるから
原因は分からんが勝手にメッセージループ回すのはマジで迷惑だからやめてほしい
何がどの順で実行されるか分からなくなるから
458デフォルトの名無しさん
2018/07/04(水) 22:09:52.47ID:gFgZc5FG 548
459デフォルトの名無しさん
2018/07/05(木) 06:45:33.22ID:uNMy++3S Direct2D いいね。
4K画像もヌルヌルに縮小拡大表示できる。回転や鏡像反転も大丈夫だった。
4K画像もヌルヌルに縮小拡大表示できる。回転や鏡像反転も大丈夫だった。
460デフォルトの名無しさん
2018/07/06(金) 20:02:27.82ID:xJt/yCDq 1台のPCにマウスAとBを接続し、
マウスAは普通のマウスとしてWindowsで、マウスBを特定のプログラムのみで使いたいのですが
どのようにすればよいでしょうか?
マウスAは普通のマウスとしてWindowsで、マウスBを特定のプログラムのみで使いたいのですが
どのようにすればよいでしょうか?
461デフォルトの名無しさん
2018/07/06(金) 20:26:18.50ID:uwYbJKCZ 特定のプログラムのみで使うってのをどういう意味にするかだな
フィルタードライバ作ってBを潰すと同時に操作をアプリに送って、アプリから特定のプログラムへマウスメッセージでも送るとか
フィルタードライバ作ってBを潰すと同時に操作をアプリに送って、アプリから特定のプログラムへマウスメッセージでも送るとか
462デフォルトの名無しさん
2018/07/08(日) 20:51:40.89ID:O/180cHX Low-Level Mouse HookでデバイスIDは取れなかったと思うし
ソフトでやる場合ドライバまで降りるしかないね
ソフトでやる場合ドライバまで降りるしかないね
463デフォルトの名無しさん
2018/07/08(日) 23:36:33.06ID:aNDdpi7h GetGlyphOutlineでサロゲートペアの文字のビットマップを取得するには
どうすればいいでしょうか
普通の2バイトの文字はできます
調べると、グリフインデックスを取得して〜みないな内容は
ぽつぽつ見つかったのですがよくわかりません
コピペして適当に真似てみたのですが、GGO_GLYPH_INDEXを指定すると
謎の小さいデータ(abc間隔とかいうやつでしょうか)が返ってくるだけです
これまた試しにGGO_GRAY8_BITMAP | GGO_GLYPH_INDEX とやってもサイズは0でした
どうすればいいでしょうか
普通の2バイトの文字はできます
調べると、グリフインデックスを取得して〜みないな内容は
ぽつぽつ見つかったのですがよくわかりません
コピペして適当に真似てみたのですが、GGO_GLYPH_INDEXを指定すると
謎の小さいデータ(abc間隔とかいうやつでしょうか)が返ってくるだけです
これまた試しにGGO_GRAY8_BITMAP | GGO_GLYPH_INDEX とやってもサイズは0でした
464デフォルトの名無しさん
2018/07/09(月) 17:38:45.00ID:1p1eFn95 INDEXをもらったら本体を取りに行く
465デフォルトの名無しさん
2018/07/09(月) 21:03:04.88ID:xF/N3z+3466デフォルトの名無しさん
2018/07/10(火) 19:32:28.56ID:Q7aC7GqH カーネルモードからユーザーモードアプリにデータを渡すいい方法ないかな?
イメージとしてはマウスのボタンを押したらその情報をアプリが受け取るとか、ネットワークメッセージを受信したらそれをアプリに渡すというもの
CreateEventの通知と共有メモリ使えばできるけど、もっといい方法ないかな
イメージとしてはマウスのボタンを押したらその情報をアプリが受け取るとか、ネットワークメッセージを受信したらそれをアプリに渡すというもの
CreateEventの通知と共有メモリ使えばできるけど、もっといい方法ないかな
467デフォルトの名無しさん
2018/07/15(日) 04:33:45.21ID:Fuh1W0mR >>463
これですがインデックス取得後、GGO_GRAY8_BITMAP | GGO_GLYPH_INDEXで
普通にサロゲートペアのビットマップを取得することが出来ました
原因は単にテストに使用していたフォントがサロゲートペアに対応してなかっただけでした…
もしそういうフォントの場合は
自分で取得前に代替フォントに切り替えるという認識であってますか
それともどこかで指定する方法はあるんでしょうか
これですがインデックス取得後、GGO_GRAY8_BITMAP | GGO_GLYPH_INDEXで
普通にサロゲートペアのビットマップを取得することが出来ました
原因は単にテストに使用していたフォントがサロゲートペアに対応してなかっただけでした…
もしそういうフォントの場合は
自分で取得前に代替フォントに切り替えるという認識であってますか
それともどこかで指定する方法はあるんでしょうか
468デフォルトの名無しさん
2018/07/15(日) 07:18:20.84ID:F1eG7opL469デフォルトの名無しさん
2018/07/15(日) 07:30:49.51ID:8618Mha6 >>468
あなたが考える「いい」方法を教えてって意味でしょwww
あなたが考える「いい」方法を教えてって意味でしょwww
470デフォルトの名無しさん
2018/07/15(日) 07:36:07.14ID:iXIp3nZ5 カーネルモードでFDDに保存
ユーザーモードはFDDの中身を定期的に読む
これで良い
ユーザーモードはFDDの中身を定期的に読む
これで良い
471デフォルトの名無しさん
2018/07/15(日) 08:27:47.61ID:GnA/ld69 >>469
答えたらそれは俺の「いい」と違うって言われるだけだろ
答えたらそれは俺の「いい」と違うって言われるだけだろ
472デフォルトの名無しさん
2018/07/15(日) 08:54:59.84ID:JD67P8Kl プログラマなんてアスペキチばっかだから質問を読み取ってくれないのはよくあることよ
それにDDKスレ見りゃ分かるが質問は海外ですべき。国内じゃ回答つかん
共有メモリだとデータ欠落がありえるから(受け渡し済みデータをメモリ内から消す仕組みを作るのが大変だから)
FIFOにためて通知後にdeviceiocontrolで読み出させる
それにDDKスレ見りゃ分かるが質問は海外ですべき。国内じゃ回答つかん
共有メモリだとデータ欠落がありえるから(受け渡し済みデータをメモリ内から消す仕組みを作るのが大変だから)
FIFOにためて通知後にdeviceiocontrolで読み出させる
473デフォルトの名無しさん
2018/07/15(日) 09:02:55.50ID:TNInTYOo いい方法はわからないが正しい方法はあるだろう
システムはある方法が正解になる前提で全体ができている
それに逆らうと別の局面で何か問題が発生する
システムはある方法が正解になる前提で全体ができている
それに逆らうと別の局面で何か問題が発生する
474デフォルトの名無しさん
2018/07/15(日) 14:57:39.97ID:F1eG7opL 煽りぬきで、まず「いい」の定義から。
信頼性を優先するのか、速度を優先するのか、ソースコードの使いやすさを優先するのか、メモリ消費を抑えることを優先するのか、等。
信頼性を優先するのか、速度を優先するのか、ソースコードの使いやすさを優先するのか、メモリ消費を抑えることを優先するのか、等。
475デフォルトの名無しさん
2018/07/15(日) 15:00:46.43ID:JD67P8Kl 用途が挙げられてるからそこから読み取れってことよ
その用途で実装するならこういう処理の方が「いい」となる
その用途で実装するならこういう処理の方が「いい」となる
476デフォルトの名無しさん
2018/07/15(日) 15:19:18.62ID:F1eG7opL 質問者や発注者は、何を優先し、何を犠牲にする覚悟があるかを明確にすることが必要。
それは金であったり時間であったりする。お前らの工数と人件費を犠牲にしたい場合が多い。
それは金であったり時間であったりする。お前らの工数と人件費を犠牲にしたい場合が多い。
477デフォルトの名無しさん
2018/07/15(日) 15:24:35.14ID:blM5pGUx まあ、「いい」は人それぞれな部分はあるかもしれないけど、そこやこだわりが書かれて無いならテキトーで良いんじゃね?
「お手軽な」という程度の解釈で。
「お手軽な」という程度の解釈で。
478デフォルトの名無しさん
2018/07/15(日) 15:38:50.77ID:F1eG7opL 発注側が受注側にわざと曖昧な要件を出して、受注側が提案したアイデアを無償で手に入れるのも重要な技術。
いかにしてコストを相手に押し付けるかが重要になる。
いかにしてコストを相手に押し付けるかが重要になる。
479デフォルトの名無しさん
2018/07/15(日) 16:39:00.88ID:F1eG7opL 相手の自尊心を刺激しつつ、情報をタダで引き出す技術は極めて重要。省資源の基本。
480デフォルトの名無しさん
2018/07/15(日) 18:54:11.43ID:z9dis41F >>471
だよな
だよな
481デフォルトの名無しさん
2018/07/15(日) 19:02:18.64ID:/PIdnGOp 逆に言えば「CreateEventの通知と共有メモリ」ではダメな理由は何なのか?
当人(>>466)が思うダメな理由が判れば、それを改善するものが「いい方法」なんじゃね?
当人(>>466)が思うダメな理由が判れば、それを改善するものが「いい方法」なんじゃね?
482デフォルトの名無しさん
2018/07/15(日) 19:29:32.13ID:JD67P8Kl ネットワークモニターを共有メモリで実装すること考えたらダメと感じる理由分かるだろうよ
483デフォルトの名無しさん
2018/07/15(日) 19:54:05.79ID:JjtknQT5 ・・・・・この感覚・・・・・・感じるぞ・・・・・・
484デフォルトの名無しさん
2018/07/16(月) 09:41:18.75ID:Tl1DHPio memory mapped file
485デフォルトの名無しさん
2018/07/16(月) 11:29:16.36ID:fjsGqhw7 共有メモリは誰が最後に開放するか問題があった気がする
代表プロセス(サービスとか)が全部やることにすればいいんだろうけど
代表プロセス(サービスとか)が全部やることにすればいいんだろうけど
486デフォルトの名無しさん
2018/07/17(火) 09:35:44.28ID:3FwnZhxD Win32APIでHDCに描画していくルーチンでPDFを作成できて、
プリンタドライバではなくDLLなどで提供されているものはありませんか?
ユーザーが印刷でAcrobatなどを選択するのではなく、専用のコマンドを用意して、
DLLのAPIからHDCを作成してそこに描画していく、という方法を探しています。
プリンタドライバではなくDLLなどで提供されているものはありませんか?
ユーザーが印刷でAcrobatなどを選択するのではなく、専用のコマンドを用意して、
DLLのAPIからHDCを作成してそこに描画していく、という方法を探しています。
487さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/07/17(火) 11:31:49.15ID:iiy4NiaP pdfium
488さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/07/17(火) 11:36:41.73ID:iiy4NiaP ごめん、pdfiumは表示ができるけどPDF作成はできないんだった。
489デフォルトの名無しさん
2018/07/17(火) 14:53:09.38ID:+kxKOOfA HDC って描いてるからダメなんだろうけど
win32api じゃなくて良ければ
matplotlib の dll
win32api じゃなくて良ければ
matplotlib の dll
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【実況】博衣こよりのえちえち歌枠🧪
- 高市「発言は撤回しない。謝罪もするな。外務省局長!任せたぞ。」👈なにをさせたかったの?😲 [826239858]
- 【速報】51歳まで自衛隊になれるように法改正ww [347751896]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 自分に自信がない女の子、陽キャ美容室で80cmのエクステを付けた結果wwwwwwwwwwwwwwwwwww [329329848]
