1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

Hỏi đáp [Solved] Script mở 1 ứng dụng và làm cho cửa sổ ứng dụng "always on top"

Thảo luận trong 'Thảo luận chung - Hỏi đáp' bắt đầu bởi autoitvn_tranvu2005, 11/2/16.

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. autoitvn_tranvu2005

    autoitvn_tranvu2005 Thành viên mới
    • 1/6

    Tham gia ngày:
    10/2/16
    Bài viết:
    2
    Đã được thích:
    3
    Như tiêu đề, mình viết đoạn code xong thì chỉ chạy được ứng dụng chứ không làm cho nó "always on top" được. Code của mình như sau:

    Mã (AutoIt):
    #include <GUIConstantsEx.au3>
    #include <StructureConstants.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #include <FileConstants.au3>
    #include <MsgBoxConstants.au3>

    AutoItSetOption ( "MustDeclareVars", 1)



    ;==========code here============
    _Run_file()

    Func _Run_file()
       
        ; Gán đường dẫn cho tập tin / ứng dụng
        Local $_duong_dan_file_name = FileOpenDialog("chọn tập tin của bạn",  @WindowsDir & "\", "All (*.*)", $FD_FILEMUSTEXIST)
       
        ; Thực thi ứng dụng
        local $_app_run = ShellExecute($_duong_dan_file_name,"","","",@SW_MAXIMIZE)
       
        ; Làm cho ứng dụng "always on top"
        WinSetOnTop($_app_run, "", $WINDOWS_ONTOP)



    EndFunc
    Có lỗi gì ở đây chăng?
     
    kamsamita1 and Phan Dong like this.
  2. H.T. Vinh (yeuautoit2001)

    H.T. Vinh (yeuautoit2001) Thành viên mới
    • 3/6

    Tham gia ngày:
    7/9/15
    Bài viết:
    5
    Đã được thích:
    9
    Không lỗi mà code không đúng
    ShellExecute sau khi dùng sẽ trả về PID của process bật bằng hàm đó
    Cách gọi hàm WinSetOnTop([handle win; tên cửa sổ đó; class cửa sổ đó], "", 1)
     
  3. autoitvn_tranvu2005

    autoitvn_tranvu2005 Thành viên mới
    • 1/6

    Tham gia ngày:
    10/2/16
    Bài viết:
    2
    Đã được thích:
    3
    Vậy là làm sao get được Tittle hay class của bất kỳ file nào mình chọn trong hộp thoại không bác , có cần viết thêm hàm để làm việc đó không?
     
    kamsamita1 thích bài này.
  4. Vinh Phạm

    Vinh Phạm Super Moderator Thành viên BQT Super Moderator
    • 33/34

    Tham gia ngày:
    13/12/15
    Bài viết:
    53
    Đã được thích:
    134
    Nơi ở:
    HCM
    Bạn dùng hàm này để lấy title windows

    Mã (AutoIt):
    Func _WinGetByPID($iPID, $iArray = 1) ; 0 Will Return 1 Base Array & 1 Will Return The First Window.
        Local $aError[1] = [0], $aWinList, $sReturn
        If IsString($iPID) Then
            $iPID = ProcessExists($iPID)
        EndIf
        $aWinList = WinList()
        For $A = 1 To $aWinList[0][0]
            If WinGetProcess($aWinList[$A][1]) = $iPID And BitAND(WinGetState($aWinList[$A][1]), 2) Then
                If $iArray Then
                    Return $aWinList[$A][1]
                EndIf
                $sReturn &= $aWinList[$A][1] & Chr(1)
            EndIf
        Next
        If $sReturn Then
            Return StringSplit(StringTrimRight($sReturn, 1), Chr(1))
        EndIf
        Return SetError(1, 0, $aError)
    EndFunc   ;==>_WinGetByPID
    Nguồn: https://www.autoitscript.com/forum/topic/136271-solved-wingethandle-from-wingetprocess/
     
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này

Đang tải...