⑴ python pywin32 裡面操作窗體,獲取窗體裡面的數據,在函數GetDlgItem函數中,怎麼獲取第二個參數的值
不知道你解決了沒,最近正好研究python。
hwnd=win32gui.FindWindow()這個獲取窗體句柄,大概都會用;
ctrl=win32gui.FindWindowEx(hwnd,None,'窗口類名',『標題文本』)已知控制項類名或控制項名時獲取控制項句柄,這個標題文本不一定存在,所以使用None默認值獲取的是該窗口類名中第一個順位的控制項句柄。
你使用b=win32gui.GetDlgItem(edit,資源ID)最終結果是獲取的是句柄,這里的資源ID其實是spy++中的窗口ID,句柄是可變的,窗口ID是不可變的。這里似乎錯了,你這樣子大概獲取的是控制項中的子項(控制項有子項的話,比如Combox中的edit框),我猜的,沒試過。b=win32gui.GetDlgItem(hwnd,窗口ID)是已知ID下獲取某控制項句柄
如果你想獲取某個控制項的ID則ctrlid=win32gui.GetDlgCtrlID(ctrl)這是一隻某控制項句柄的情況下獲取該控制項在應用程序中的窗口ID。
如果不知控制項句柄的情況下大概可以試試spy++獲取窗口ID,把窗口ID(這個是16進制的)轉化成10進制帶進b=win32gui.GetDlgItem(hwnd,窗口ID)大概也可以得到控制項句柄。
其實就是三個函數之間的轉化
ctrl=win32gui.FindWindowEx(hwnd,None,'edit',None)控制項句柄
ctrlid=win32gui.GetDlgCtrlID(ctrl)控制項的窗口id
ctrl2=win32gui.GetDlgItem(hwnd,ctrlid)控制項句柄
print "%x" %ctrllist
print "%x" %ctrlid
print "%x" %ctrl
輸出,看一下數據與spy++是否一致。然後ctrl=ctrl2
⑵ python 獲得編輯區句柄
你拿到的是主窗口句柄,還需要搜索遍歷,找到子窗口或控制項。有些是自定義,只能通過位置定義。
⑶ python中的handle是什麼方法
一般來說,handle就相當於C中的函數指針,你把哪個函數的句柄賦給handle,handle就代表哪個函數。當然,你也可以自己定義一個handle。
⑷ Python怎麼獲取不到子窗口的句柄呢,如圖,求指導,剛學習Python的小白吃,求指導
CSDN問答為您找到Python怎麼獲取不到子窗口的句柄呢,如圖,求指導相關問題答案,如果想了解更多關於Python怎麼獲取不到子窗口的句柄呢,如圖,求指導 python 技術問題等相關問答,請訪問CSDN問答。
⑸ python中使用selenium獲取窗口句柄時,window_handles取值出錯
Form formPreview = new Form();
public Leaf(string name) : base(name) { }
public override void Add(Component c)
{
Console.WriteLine("Cannot add to a leaf");
}
public override void Remove(Component c)
{
Console.WriteLine("Cannot remove to a leaf");
}
public override void Display(int depth)
{
Console.WriteLine(new string('-',depth)+name);
}
}
⑹ 怎麼用Python獲取Chrome的地址欄句柄
首先,假設通過Firefox()瀏覽器定向爬取CSDN首頁導航欄信息,審查元素代碼如下圖所示,在div class="menu"路徑的ul、li、a下,同時可以定位ul class="clearfix"。
代碼如下所示:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# coding=utf-8
import os
from selenium import webdriver
#PhantomJS無界面瀏覽器
##driver = webdriver.PhantomJS(executable_path="G:\phantomjs-1.9.1-windows\phantomjs.exe")
#打開火狐瀏覽器
driver = webdriver.Firefox()
url = "http://www.csdn.net/"
driver.get(url)
#xpath路徑定位導航欄
elem_dh = driver.find_elements_by_xpath("//div[@class='menu']/ul/li/a")
for elem in elem_dh:
print elem.text #獲取正文
print elem.get_attribute('href') #獲取屬性值
然後轉換成chrome瀏覽器,只需要在"C:\Program Files (x86)\Google\Chrome\Application\"路徑下放置個chromedriver.exe驅動,再進行調用即可,代碼如下所示:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# coding=utf-8
import os
from selenium import webdriver
#PhantomJS無界面瀏覽器
##driver = webdriver.PhantomJS(executable_path="G:\phantomjs-1.9.1-windows\phantomjs.exe")
#打開火狐瀏覽器
#driver = webdriver.Firefox()
#谷歌瀏覽器
chromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
#WebDriverException: Message: unknown error: session deleted because of page crash
url = "http://www.csdn.net/"
driver.get(url)
⑺ python根據句柄如何自動點擊按鈕
用python的sendkeys直接模擬鍵盤,用ctype擴展來點滑鼠。你需要做的就是用python打開瀏覽器,然後輸入網站,在找到按鈕的坐標(固定到程序里),然後點擊就行了。不過簡單的可以,復雜點的就要考慮很多問題了。
⑻ python win32GUI模塊中切換句柄的一個奇怪問題
每次執行的時候你把句柄列印出來,一目瞭然
⑼ python中獲取子窗口的句柄
可以使用win32gui 以及pyhook 庫來實現你的需求