Deutsch
Forum

Meldung kommt zu früh..

 
Der untenstehende Code ist nur ein Beispiel. Zeigt aber mein Problem. Nach Aufruf und Beenden des Papierkorbes (oder einer anderen Windows-Funktion) soll eine Aktion stattfinden - hier die Messagebox. Leider wird die Box aber sofort gezeigt und dann erst wird der Papierkorb gestartet. Wie kann ich das ändern ?
KompilierenMarkierenSeparieren
DECLARE EE%,ende%,aufruf%
EE%=0
----------------------------------------------

PROC MELDUNG

    Messagebox("Es ist vollbracht !","Meldung",64)

ENDPROC

PROC STARTE_AUFRUF

    Papierkorb starten - Es kann auch eine andere Windows-Funktion sein - Das ist nur ein Beispiel
    WinExec("explorer /n,::{645FF040-5081-101B-9F08-00AA002F954E}",1)
    MELDUNG Der Aufruf soll erst nach dem Schliessen des Papierkorbes angezeigt werden

ENDPROC

----------------------------------------------
CLS
ende%=Create("Button",%hwnd,"Ende",10,10,100,25)
aufruf%=Create("Button",%hwnd,"Windows-Papierkorb",10,50,200,25)

WhileNot EE%

    WAITINPUT
    Case CLICKED(ende%):EE%=1
    Case CLICKED(aufruf%):STARTE_AUFRUF

EndWhile

end

Danke für Hilfe
 
22.10.2008  
 




RGH
Hallo Horst,

WinExex startet ein Programm und kehrt sofort zurück, ohne das Ende des Programmes abzuwarten. Willst Du warten, bis das aufgerufene Progamm beendet wurde, mußt Du WinExecWait verwenden.

Gruß
Roland
 
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
22.10.2008  
 



Man bin ich doof - steht groß und deutlich in der Hilfe - Danke Roland
(man wird eben alt !)
 
22.10.2008  
 




RGH
Hallo Horst,
für Dein spezielles Problem war meine Antwort etwas voreilig. Hier wartet WinExecwait nur unwesentlich länger, nämlich bis das Öffnen des Papierkorbes abgeschlossen ist. Wenn Du aber warten willst, bis das Explorerfenster des Papierkorbes geschlossen wird, müßtest Du warten, bis kein Fenster mit dessen Überschrift mehr existiert. So funktioniert es bei mir:
KompilierenMarkierenSeparieren
DECLARE EE%,ende%,aufruf%
EE%=0
----------------------------------------------

PROC MELDUNG

    Messagebox("Es ist vollbracht !","Meldung",64)

ENDPROC

PROC STARTE_AUFRUF

    Declare Papierkorb&
    Papierkorb starten - Es kann auch eine andere Windows-Funktion sein - Das ist nur ein Beispiel
    WinExec("explorer /n,::{645FF040-5081-101B-9F08-00AA002F954E}",1)
    warten, bis das Fenster tatsächlich existiert
    Repeat : Until FindWindow("Papierkorb") <> 0
    warten, bis es wieder weg ist
    Repeat : Until FindWindow("Papierkorb") = 0
    MELDUNGDer Aufruf soll erst nach dem Schliessen des Papierkorbes angezeigt werden

ENDPROC

----------------------------------------------
CLS
ende%=Create("Button",%hwnd,"Ende",10,10,100,25)
aufruf%=Create("Button",%hwnd,"Windows-Papierkorb",10,50,200,25)

WhileNot EE%

    WAITINPUT
    Case CLICKED(ende%):EE%=1
    Case CLICKED(aufruf%):STARTE_AUFRUF

EndWhile

end
 
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
22.10.2008  
 



Nach "Papierkorb" suchen?

In diesem Fall sollte man sich eher damit abfinden, dass die Operation nunmal asynchon abläuft. (wie es auch gedacht ist)

Wer so gezielt jedoch den Papierkorb "verwalten" möchte, der müsste halt die Papierkorb-APIs anwenden.
 
22.10.2008  
 



@iF
Das war nur ein Beispiel -
Es geht um 15 verschiedene Windows-Funktionen, die wahlweise gestartet werden können und hier soll
nach dem Schliessen der jeweiligen Funktion eine Aktion stattfinden ! - Compri ???
 
22.10.2008  
 



Ich nix Compri Problem. Compri doch mal auch gleich Herunterfahren. Ist ja auch eine "Windows-Funktion". Eine 16.! Nur ein <b>Beispiel</b>!
 
22.10.2008  
 



@Lieber iF
In einem kleinen Tool aus meiner Feder werden im Menu 15 Windows-Funktionen zur Verfügung gestellt. (der Code dafür schwirrte hier irgendwo rum) - Um aber bei diesem Programm Set("Autopaint",0) zu umgehen, muss ich aus einem bestimmten Grund NACH dem Schliessen der jeweiligen Windows-Funktion eine bestimmte Procedur aufrufen (ein Teil der Oberfläche (Icons) wird nämlich durch das neu geöffnete Fenster gelöscht) und mit dieser Procedur werden diese Icons wieder hergestellt. So, wie dankenswerterweise Roland mir geholfen hat, funktioniert die Sache jetzt. Compri ?
 
22.10.2008  
 




Jörg
Sellmeyer
und jetzt Alle:
"Ich soll in einem anspruchsvollen und vernünftig erscheinenden Programm kein "DrawIcon" verwenden, sondern mit Create() ein Handle erzeugen und das einem Static zuweisen!"
.
.
.
.
.
.
.
.
.
Amen!
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
22.10.2008  
 




E.T.

Jörg Sellmeyer: und jetzt Alle:
"Ich soll in einem anspruchsvollen und vernünftig erscheinenden Programm kein "DrawIcon" verwenden, sondern mit Create() ein Handle erzeugen und das einem Static zuweisen!"
.


In XP10 hab das Handle dann einem Control zugewiesen (zuweisen müssen, weils ein Button mit 2-zeiligem Text war), und hab das Dingens immer "refresht", wenn ich aus einer waitinput-Schleife zurück war.

Obs jetzt in XP11 einfacher geht, muß ich erst mal checken (habs erst seit ner Woche) 
 
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...
22.10.2008  
 



@Jörg - für Alle


CASE 1L$ > "":w32_DrawIcon(%hdc,340,265,ExtractAssociatedIcon(1L$+"\",1))


Dann mach mal ;)
 
23.10.2008  
 




Andreas
Miethe


Horst Horn
@Jörg - für Alle

Horst Horn
CASE 1L$ > "":w32_DrawIcon(%hdc,340,265,ExtractAssociatedIcon(1L$+"\",1))


Dann mach mal ;)


Verstehe zwar nicht wie der Code mit fehlenden Parametern funktionieren soll, aber so sollte es gehen.

Horst Horn
CASE 1L$ > "":w32_DrawIcon(%hdc2,340,265,ExtractAssociatedIcon(1L$+"\",1)):repaint
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
25.10.2008  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.524 Betrachtungen

Unbenanntvor 0 min.

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie