teacup. [ 掲示板 ] [ 掲示板作成 ] [ 有料掲示板 ] [ ブログ ]


新着順:14/3228 記事一覧表示 | 《前のページ | 次のページ》

Re:西村さん、ありがとう

 投稿者:西村  投稿日:2019年12月24日(火)07時31分12秒
  通報 返信・引用
  問題の箇所はマイクロソフトに改造依頼をしてみてはいかがでしょうか。タスクバーまで隠しての全画面表示をする必要性がわかりませんし。

> マウス左クリックの問題というのはディスプレイの解像度の違いによるずれでしょうか。

そうです。SetCursorPos(X,Y)命令でポインターの位置づけができます。
SetCursorPos と mouse_event で簡単に作れそうだと思いました。

今回は下に実プログラムを書きましたが、最初はテキスト( .TXT)の削除をテストしたときうまくいきましたので完成と思ったのです。
でもユーザアカウント制御設定の変更をすると該当画面に似た全画面表示になったため、これでテストしましたら、ダメでした。バックグランドで動作しているのは結果的に Sleep のみでした。
調べましたがよくわからない、というのが結論ですが、実キー操作では入出力割込みが入るはずです。仮想キー操作ではそれはあり得ませんよね。
その違いと思い検索すると、入力キュー(待ち行列バッファ)にいったん入った後で振り分けされているようなことが書かれたページがありました。入出力割込みを要求しているのは全画面表示をしているシステムプログラムなのでそこにはキューされないのだろうと想像しています。

実マウス操作も入出力割込みを伴うはずなので仮想操作ではうまくいかないのではなかろうかと思っています。なのでその後はテストしていません。

(ユーザアカウント制御設定の変更にたどり着いたのは偶然ではありません。C 言語コンパイラーは Visual Studio 2019 を使いましたが、約 2GB も占めるため、不要なソフトの削除とレジストリーの消去をするため Win10 の再インストールをし、その後の設定変更で見つけたんです)

なお、実テストに使用した PG の主体は以下のとおりです。
    Sleep(300000);                   /* 5分 Wait  */
    keybd_event(VK_LEFT, 0, 0, 0);                  /* ←キー 押下  */
    keybd_event(VK_LEFT, 0, KEYEVENTF_KEYUP, 0);    /* ←キー up    */
    Sleep(80);                                      /* Wait         */
    keybd_event(VK_RETURN, 0, 0, 0);                /* ENTER 押下   */
    keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);  /* ENTER key up */
    Sleep(80);                                      /* Wait         */

> monitor(ID, MON_WIDTH)
これは C++ の命令ですか?詳しいのでしたら機能を教えてください。検索でもヒットしませんでした。


もとはといえば超新星捜索を自動化しようと約1年前に星図ソフト(=望遠鏡の移動)とCCD撮影および画像の保存を行うソフトを自作しました。その時に使用した命令が問題の箇所でも使えるだろうと思ったのです。
私は昔の人間なので 4-50年前の言語しか知らず、C 言語はそのときもあったようですが、全く知りませんでした。

この自動化ですが、PG 作成前に紹介を受けた詳しいよ言われたと地元の大学教授に相談すると「できない」と。
でも私なりに考えるとウィルスを作るのに難しい言語など使うはずがなく、せいぜい C++ だろうと思っていました。
高度なウィルスが作成できるのだから操作をシミュレーションするぐらいのソフトなら作れるはず、との思いから検索と図書館の本で調べながらです。正月期間のたった 1 週刊で作成できました。ドクター号を持っているかの大学教授に「ざまーみろ」の気分です。
実業務プログラムに携わったことがあるか、学生に教えるだけかの違いは大きいのです。アンプ製作ではまさしくそうでしたでしょ?データやシミュレーションに頼らず必ず実測定をしていましたよね。
 
 
》記事一覧表示

新着順:14/3228 《前のページ | 次のページ》
/3228