Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Problem z _WinApi_SetParent()


Rekomendowane odpowiedzi

Opublikowano

Mam problem z kodem chcąc podpiąć 1 okno pod drugie.

 

 

Główny kod:

(...)
$hMainWin = GUICreate("Au3 Win Seven by MrKris7100",800,600,0,0)
GUISetState(@SW_SHOW)
(...)
$hCalcPID = Run("Windows\Apps\calc.exe",@ScriptDir,@SW_HIDE)
_WinAPI_SetParent( _Process_GetWin($hCalcPID),WinGetHandle($hMainWin))
WinSetState(_Process_GetWin($hCalcPID),"",@SW_SHOW)
(...)
$hLnkPID = Run("Windows\Apps\lnk.exe",@ScriptDir,@SW_HIDE)
_WinAPI_SetParent( _Process_GetWin($hLnkPID),WinGetHandle($hMainWin))
WinSetState(_Process_GetWin($hLnkPID),"",@SW_SHOW)
(...)
Func _Process_GetWin($iPID,$iMode = 0)
    Local $var = WinList()
    For $i = 1 To $var[0][0]
        If $var[$i][0] <> "" And WinGetProcess($var[$i][0]) = $iPID Then
            If $iMode = 0 Then Return $var[$i][0]
            If $iMode <> 0 Then Return $var[$i][1]
        EndIf
    Next
    Return 0
EndFunc

 

Prosiłbym o jak najszybszą pomoc ponieważ to mój projekt i potrzebne mi podpięcie tych 2 okienek pod główne gui a niestety to nie działa :(

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

Pierwszy parametr _WinAPI_SetParent to powinien być uchwyt do twojego GUI (GUICreate), a nie jakieś _Proces_GetWin nie wiadomo skąd.

 

#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

Local $hParent = WinGetHandle('[CLASS:Progman;TITLE:Program Manager]')

Local $hForm = GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 400, 400, 100, 100, -1, $WS_EX_TOOLWINDOW)

; Attach window to the desktop (always on bottom)
_WinAPI_SetParent($hForm, $hParent)

GUISetState(@SW_SHOWNOACTIVATE)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
846331404756772371599.jpeg
Opublikowano

_Proces_GetWin() a stąd bo jak innaczej mam pobrać uchwyt Childa?

$hMainWin = GUICreate("Au3 Win Seven by MrKris7100",800,600,0,0)
Run("Windows\Apps\calc.exe",@ScriptDir,@SW_HIDE)
_WinAPI_SetParent( {a tu jak???} ,$hMainWin)
GUISetState(@SW_SHOWNOACTIVATE)

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

(...)
$hMainWin = GUICreate("Au3 Win Seven by MrKris7100",800,600,0,0)
GUISetState(@SW_SHOW)
(...)
$hCalcPID = Run("Windows\Apps\calc.exe",@ScriptDir,@SW_HIDE)
_WinAPI_SetParent($hMainWin, _Process_GetWin($hCalcPID,1))
WinSetState(_Process_GetWin($hCalcPID),"",@SW_SHOW)
(...)
$hLnkPID = Run("Windows\Apps\lnk.exe",@ScriptDir,@SW_HIDE)
_WinAPI_SetParent($hMainWin, _Process_GetWin($hLnkPID,1))
WinSetState(_Process_GetWin($hLnkPID),"",@SW_SHOW)
(...)
Func _Process_GetWin($iPID,$iMode = 0)
    Local $var = WinList()
    For $i = 1 To $var[0][0]
        If $var[$i][0] <> "" And WinGetProcess($var[$i][0]) = $iPID Then
            If $iMode = 0 Then Return $var[$i][0]
            If $iMode <> 0 Then Return $var[$i][1]
        EndIf
    Next
    Return 0
EndFunc

@Edit:

To twoja funkcja? Bo z nieustawionym drugim parametrem zwraca title a nie handle.

Opublikowano
(...)
$hMainWin = GUICreate("Au3 Win Seven by MrKris7100",800,600,0,0)
GUISetState(@SW_SHOW)
(...)
$hCalcPID = Run("Windows\Apps\calc.exe",@ScriptDir,@SW_HIDE)
_WinAPI_SetParent($hMainWin, _Process_GetWin($hCalcPID))
WinSetState(_Process_GetWin($hCalcPID),"",@SW_SHOW)
(...)
$hLnkPID = Run("Windows\Apps\lnk.exe",@ScriptDir,@SW_HIDE)
_WinAPI_SetParent($hMainWin, _Process_GetWin($hLnkPID))
WinSetState(_Process_GetWin($hLnkPID),"",@SW_SHOW)
(...)
Func _Process_GetWin($iPID,$iMode = 0)
    Local $var = WinList()
    For $i = 1 To $var[0][0]
        If $var[$i][0] <> "" And WinGetProcess($var[$i][0]) = $iPID Then
            If $iMode = 0 Then Return $var[$i][0]
            If $iMode <> 0 Then Return $var[$i][1]
        EndIf
    Next
    Return 0
EndFunc

Nadal to samo nie działa...

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

Naaaaadal nie działa :(

 

 

@Edit

Dobra działa dałem Sleep'a ale jak kalkulator się podepnie pod gui to wyskakuje na pasku zadań "prostokąt do pokazania okna" i jest tam ikonka kalkulatora + napis "GDI_ Window"

2 problemem jest to że gdy przeciąne podpięte okno kalkulatora dalej niż rozmiary gui i wezme je spowrotem na środek to jego cześc która wyszła za gui znika robi się biała znika tło etc.

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

Ref

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

Refowy ref refowego refa :OOOO

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

ref

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

Ref :( pomoże ktoś

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

Ref ref ref ref re re rer re re ref

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

zrób pełny debug, sprawdź po kolei czy funkcje wykonują się poprawnie i nie zwracają błędów.

Funkcje dobrze wszystko zwracają ale efekt podpięcia kalkulatora pod GUI jest taki:

 

S7s2KRP.png

pegdPUY.png

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

yyy bo mam taką potrzebe w moim programie i chce podpinać różne okna do gui?

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

any help? :D

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

refowy ref refowego refa! :O

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

No chyba napisałem że działa ale że tło kalkulatora znika i dałem ssy jprdl

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

@1361622928-U485574.pngref

Widziałem gdzies kiedyś rozwiązanie podobnego problemu. Autoit rejestrował event że gdy porusze tym oknem to je odświerza chyba winapi_redrawwindow() a z tym GDI+ Window na pasku to nie wiem

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

@1361622928-U485574.pngref Pomoże ktoś?? :/

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

@1361622928-U485574.pngref LOL HELP MI PLIS

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Opublikowano

@1361622928-U485574.pngref ref ref ref ref ref... :(

Cipka - Najlepszy silnik na świecie. Działa z tłokiem każdej średnicy, wbudowana funkcja samosmarowania, odpalasz jednym palcem i co miesiąc sam się wymienia olej. Szkoda tylko że ma taki pojebany komputer pokładowy.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...