跑跑資訊站

[討論] 請問C++如何把input送進有管理者權限的窗口呢

[複製鏈接]
  • 瀏覽 4211
  • 回覆 1
  • 給心 0
跳轉到指定樓層
樓主
reii0612 手機綁定 | 2017-12-5 01:59:53 | 只看該作者
沒有輸入的自定義頭銜...

觀看更多訊息,立即加入跑跑資訊站,掌握跑跑卡丁車第一手資訊!

您需要 登入 才可以下載或查看,沒有帳號?立即加入

因為突然對腳本有興趣,結果跌入程式坑QQ
主旨:
Q1.我已經有HWND,但是對有管理權限的窗口送滑鼠和鍵盤事件似乎沒有效果
請問要如何發送進去呢?
Q2.我在CLR的UI裡,把sendInput指令放在button裡,希望藉由button觸發,
但是很奇怪的是,程式會卡在sendinput裡無限loop
舉例:
以下程式,在點了按鍵後原本預計它只會click一次,
但是卻會看到在consol裡看到無限的121212...一直跳
.h file
        private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                LeftClick();
                printf("2");
        }
.cpp
void LeftClick()
{
        INPUT    Input = { 0 };
        // left down
        Input.type = INPUT_MOUSE;
        Input.mi.dx = 31;
        Input.mi.dy = 718;
        Input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
        ::SendInput(1, &Input, sizeof(INPUT));

        // left up
        ::ZeroMemory(&Input, sizeof(INPUT));
        Input.type = INPUT_MOUSE;

        Input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
        ::SendInput(1, &Input, sizeof(INPUT));
        printf("1");
}

因為突然對腳本有興趣,結果先是碰JAVA,為了弄美美的UI還去研究沒看過的SWING
沒想到到了後面才感受到JAVA的速度的限制,然後又看了一點執行緒的東西,但是要控制輸出還要由C++掛DLL...
於是回頭碰C++,而C++跟java比起來有很多莫名其妙的坑,像是環境設置、編碼、型別轉換、編輯器對錯誤的解釋也不是很多,
總之弄到現在早已經脫離原先目的了,只想把C++弄好
請各位不吝指教QQ
跑跑資訊站 KartInfo - 台灣跑跑卡丁車資訊情報第一站!
沙發
初心的梦丶 手機綁定 | 2020-1-26 03:27:38 | 只看該作者
沒有輸入的自定義頭銜...
看不懂,很高级的样子
跑跑資訊站 KartInfo - 台灣跑跑卡丁車資訊情報第一站!
回覆

使用道具 舉報

您需要登入後才可以發帖 登入 | 立即加入

本版積分規則

快速回復 返回頂部 返回列表