Français
Wünsche et Anregungen

Wunsch: Messagebox erweitern

 

E.T.
plan nécessaire:
Messagebox seulement avec dem "Abbrechen" - Button (so comme Art Hinweis-Box)
Bisher possible:


0 - OK (~MB_OK)
1 - OK démolir (~MB_OKCANCEL)
2 - démolir Wiederholen ignorer (~MB_ABORTRETRYIGNORE)
3 - oui non démolir (~MB_YESNOCANCEL)
4 - oui non (~MB_YESNO)
5 - Wiederholen démolir (~MB_RETRYCANCEL)


Hm, ~MB_CANCEL gibts oui wohl (lt. Konstantin Opel) pas, mais vlt. hat oui quelqu'un pour 'ne Solution ?? dans diesem zusammenhang pourrait nat. cela Prog pas sur qui M-Box attendre mais devrait plus courir. Pour cette devrait on ensuite mais wieder cela Handle qui M-Box savons, um cet abzufragen...

Hintergrund:
Programme liest données un, Hauptfenster wird "deaktiviert". oui c'est ca dans diesem le cas sollte une M-Box avec dem Hinweis "Programm liest données ein" (ou bien quelque chose comme) erscheinen, quelle dem Nutzer qui Possibilité gibt, cela ganze abzubrechen.

ou bien bleibt là seulement, cela Hinweis-la fenêtre komplett selbst trop erstellen ??
 
XProfan X2
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
29.06.2012  
 




RGH
quoi spricht dagegen, avec "Ok" trop bestätigen, den Hinweis gelesen trop avons?
ce sont zumindest qui de Windows bereitgestellten Messageboxtypen.

si cela Programme weiterlaufen soll, musst Du cela Hinwweisfenster eh' selbst erstellen (ou bien une eigenen Prozess verwenden).

Salut
Roland
 
XProfan X2
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
29.06.2012  
 



... ou bien une eigenen Fil verwenden ou bien _ohne eigenen Fil avec qui

SetTimer-API une APC dans den Hauptthread injecter.

Schaue Dir aussi fois le Include asyncMsgBox.inc à:  [...] 

Aus dem Okrea-Code habe je grad:
FindWindowExA(messagebox.hWnd&,0,"BUTTON","OK")
rausgefitzelt -

avec cela ermittelt on cela Handle des OK-Buttons si on cela MessageBox-Fensterhandle kennt.

si Du avec cela pas weiterkommst ensuite simple nochmal annoncer.
 
29.06.2012  
 



Hihi,

schauma: Herunterladen
externer Télécharger



 {$cleq}
const 	asyncMessageBox.Message=1025
declare	asyncMessageBox.C&
decimals 0

proc asyncMessageBox

    parameters wnd&,s$,tit$,mode&
    add asyncMessageBox.C&,1
    var h&=globalAlloc(gPTR,24)
    long h&,0=addr($ S),addr(tit$),mode&,wnd&,create("text",hWnd,»,0,0,0,0),asyncMessageBox.C&
    setWindowLong(long(h&,16),gwl_userdata,setWindowLong(long(h&,16),gwl_wndProc,procaddr(asyncMessageBox.wndProc,4)))
    asyncMessageBox.createThread(h&)

    tandis que long(h&,0)

        sleep 10

    Wend

    whileloop 100

    Wend

    var msg&=long(h&,16)
    messages de l'utilisateur asyncMessageBox.Message
    globalFree(h&)
    var msgboxWnd&=findWindow("."+str$(hWnd)+"."+str$(asyncMessageBox.C&))
    settext msgboxWnd&,tit$
    return msgboxWnd&

endproc

nProc asyncMessageBox.createThread

    parameters h&
    createThread(0,0,procAddr(asyncMessageBox.thread,1),h&,0,0)

endproc

nProc asyncMessageBox.wndProc

    Paramètres wnd&,msg&,wp&,lp&

    si msg&=asyncMessageBox.Message

        sendMessage(hWnd,asyncMessageBox.Message,wnd&,lp&)
        destroyWindow(wnd&)
        return 0

    endif

    return callWindowProc(getWindowLong(wnd&,gwl_userData),wnd&,msg&,wp&,lp&)

endproc

nproc asyncMessageBox.thread

    parameters h&
    var s$=string$(long(h&,0),0)
    var tit$=string$(long(h&,4),0)
    var mode&=long(h&,8)
    var wnd&=long(h&,12)
    var trd&=long(h&,16)
    long h&,0=0
    sendMessage(trd&,asyncMessageBox.Message,0,messageBox(wnd&,s$,"."+str$(hWnd)+"."+str$(long(h&,20)),mode&))
    return 0

endproc

cls
var myMsgBoxWnd&=asyncMessageBox(desktop,"Huhu","Titel",mb_ok)
settext findWindowEx(myMsgBoxWnd&,0,"BUTTON","OK"),"&Abbrechen"

tandis que 1

    waitinput

Wend

end

ou bien hiermit zählts joli runter et schließt sich selbständig:
cls
var myMsgBoxWnd&=asyncMessageBox(desktop,"Huhu","Titel",mb_ok)
var btn&=findWindowEx(myMsgBoxWnd&,0,"BUTTON","OK")
var c&=10

tandis que (c&+2) and isWindow(myMsgBoxWnd&)

    waitinput 1000
    settext btn&,"&Abbrechen ["+str$(c&)+"]"
    sub c&,1

Wend

cas isWindow(myMsgBoxWnd&) : sendMessage(myMsgBoxWnd&,wm_close,0,0)
imprimer "fertsch"

tandis que 1

    waitinput

Wend

end

1.168 kB
Hochgeladen:29.06.2012
Downloadcounter200
Herunterladen
38 kB
Hochgeladen:29.06.2012
Downloadcounter164
Herunterladen
 
29.06.2012  
 



et ici la fois rein per Externe:
'{$ Cleq}
decimals 0
cls
var myTimer&=external("user32","SetTimer",0,0,100,procAddr(myMessageBoxAPCProc,4))
imprimer messageBox("Text","."+str$(%hWnd)+".allô monde!",0)
waitinput
end

proc myMessageBoxAPCProc

    parameters wnd&,msg&,id&,tme&
    var s$="."+str$(%hWnd)+"."
    var msgboxWnd&=findWindow($ S)
    casenot msgboxWnd& : return
    external("user32","KillTimer",0,myTimer&)
    settext msgboxWnd&,del$(getText$(msgboxWnd&),1,len($ S))
    var btn&=external("user32","FindWindowExA",msgboxWnd&,0,"BUTTON","OK")
    casenot btn& : return
    setText btn&,"&Abbrechen"

endProc


avec cela cela so geschrieben mais wiederum 100%ig (statt 99%ig) "absturzsicher" ist,
devrait quelque chose comme Roland nativ einbauen car un APC sur une interpretierte XProfan-
Proc peux toujours abstürzen besonders desto komplexer et größer cela Programme ist.
 
29.06.2012  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

5.704 Views

Untitledvor 0 min.
AndreasS13.02.2019
Peter Max Müller14.10.2017
Tango14.07.2017
Ernst14.06.2016
plus...

Themeninformationen

cet Thema hat 3 participant:

iF (3x)
RGH (1x)
E.T. (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie