Français
Source/ Codesnippets

conservé Hwnd Programme Runex Starten Xprofan

 
pas plus erforderlich, siehe iFs Posting, là est sich qui Source dans XPSE kompatibler Version sans Auteurs-Hinweis ou bien ähnlichem. Weiterentwicklung eingestellt.

[hr:aa5e7cfcab]
Nachtrag de mir - iF. Thomas était so freundlich - pour court Aussprache entre mir et Ihm - seinen Code mir nochmals zur Disposition trop se mettre. et là qui Code ursprünglich ici stand mets je ihn aussi ici wieder hinein:
KompilierenMarqueSéparation
Ersatz für Run
Wird es als Funktion aufgerufen, erhält man das hWnd des Fensters zurück
Fehlerrückgaben:
-1 = Programm wurde nicht gefunden oder falsche Parameterzahl
0 = Timeout erreicht, das ermitteln des Fenster hat mehr als 5 Sek. gedauert
und wurde abgebrochen
Autor: Thomas Schulz aka ts-soft
erstellt: 23.10.2006
Version: 1.0 für XProfan 10
 $H windows.ph
 $H structs.ph

Proc ?_RunEx

    Case %PCount <> 1 : Return -1
    Parameters cmdline$
    Declare Ret&, SI#, PI#, WinHandle&, pid&, win&, timeout&
    Struct STARTUPINFO = ~STARTUPINFO
    Struct PROCESS_INFORMATION = ~PROCESS_INFORMATION
    Dim SI#, STARTUPINFO
    Dim PI#, PROCESS_INFORMATION
    timeout& = ~GetTickCount() + 5000
    WinHandle& = -1
    Ret& = ~CreateProcessA(0, Addr(cmdline$), 0, 0, 0, 0, 0, 0, SI#, PI#)

    If Ret&

        Repeat

            win& = FindWindow("")

            While win&

                ~GetWindowThreadProcessId(win&, Addr(pid&))

                If pid& = PI#.dwProcessId&

                    WinHandle& = win&
                    Break

                EndIf

                If  ~GetTickCount() > timeout&

                    WinHandle& = 0
                    Break

                EndIf

                win& = ~GetWindow(win&, ~GW_HWNDNEXT)

            EndWhile

        Until WinHandle& > -1

    EndIf

    Dispose SI#
    Dispose PI#
    Return WinHandle&

../../references-fonction/XProfan/endproc/'>ENDPROC

 
23.10.2006  
 




KompilierenMarqueSéparation
Proc RunEx(cmdline$)

    Declare SI#, PI#, pid&, win&
    Dim SI#, STARTUPINFO
    Dim PI#, PROCESS_INFORMATION
    var timeout&:=GetTickCount()+5000
    var WinHandle&:=-1

    If CreateProcessA(0,Addr(cmdline$),0,0,0,0,0,0,SI#,PI#)

        Repeat

            win&:=FindWindow("")

            While ((win&) and (winHandle&==-1))

                GetWindowThreadProcessId(win&,Addr(pid&))
                case pid& == PI#.dwProcessId& : WinHandle& = win&
                case GetTickCount() > timeout& : WinHandle& = 0
                win&:=GetWindow(win&, GW_HWNDNEXT)

            EndWhile

        Until WinHandle&>-1

    EndIf

    Dispose SI#
    Dispose PI#
    Return WinHandle&

EndProc

var notepad& = RunEx("c:\windows\notepad.exe")

If notepad&

    SendString(notepad&, "XProfan 10 ist einfach Spitze!")
    SendString(notepad&, "Aber das Wissen ja alle")
    SendString(notepad&, "Gruß, Thomas")

EndIf

 
23.10.2006  
 



@iF
qui Sinn, pourquoi Du den Source wiederholst, wobei ensuite encore quoi fehlt, entgeht mir ici. qui Code-Snippet sollte aussi sans XPSE courir
qui Changement im Beispiel sur Hardcoded Dateipfad mais est wohl pas Dein Ernst? Es sollte possible chez chaque courir, bzw. si, ensuite ermittelt on den Pfad!
 
23.10.2006  
 



quoi hat toi car gestochen?

quoi fehlt Dir car et pourquoi sollte un CodeSnippet quoi avec nécessaire XPSE bezeichnet ist aussi sans XPSE courir zumal Du oui bereits cela pas-XPSE Schnipsel posté la hâte?

qui Changement im Beispiel sur Hardcoded ist sehrwohl mon Ernst - mir ist unklar weshalb dans Beispielcodes rien hardcoded son darf! Ist cela une Unit? une DLL?

et cela Anrecht sur elle quelque chose - pourquoi De toute façon - trop wiederholen, habe je mir avec cela geschaffen cela ca ici mon Community ist - quoi naturellement pas heissen soll le moi pas wünsche mich puis aufmerksam trop faire si je quelque chose faux wiederhole.
 
23.10.2006  
 



[quote-part:8cef19ce1c=TS-Soft]pas plus erforderlich, siehe iFs Posting, là est sich qui Source dans XPSE kompatibler Version sans Auteurs-Hinweis ou bien ähnlichem. Weiterentwicklung eingestellt.[/quote-part:8cef19ce1c]
ah Gott là brennt qui Schuh! qui Autorenhinweis était doch bien sûr et deutlich dans DEINEM Posting trop lesen! seulement weil Du Dein Posting maintenant entfernt la hâte mais est alles pour qui Katz! mon Posting kahm pour Deinem Posting et était comme Ergänzung trop voyons - pas comme Ersatz!

je trouve tu as überreagiert Thomas.

[hr:8cef19ce1c]
malheureusement hat Thomas son Posting entfernt - avec dem Originalcode (im pas-Xpse-Format), alors ici nochmal une vom XPSE umgewandelte Version im pas-Xpse-Format qui naturellement niiiieeeemals so joli ist comment Thomas sa variante qui aussi une Vermerk sur den Author (Thomas Schulz) enthielt.
KompilierenMarqueSéparation
DECLARE __cf1&,__cf2&,__cf3&,__cf4&
STRUCT STARTUPINFO=CB&,LPRESERVED#(4),LPDESKTOP#(4),LPTITLE#(4),DWX&,DWY&,DWXSIZE&,DWYSIZE&,DWXCOUNTCHARS&,DWYCOUNTCHARS&,DWFILLATTRIBUTE&,DWFLAGS&,WSHOWWINDOW%,CBRESERVED2%,LPRESERVED2&,HSTDINPUT&,HSTDOUTPUT&,HSTDERROR&
STRUCT PROCESS_INFORMATION=HPROCESS&,HTHREAD&,DWPROCESSID&,DWTHREADID&
Def __cf1(2) !"KERNEL32","GetProcAddress"
Def __cf2(1) !"KERNEL32","GetModuleHandleA"
__cf1&=__cf1(__cf2("kernel32.dll"),"GetTickCount")
__cf2&=__cf1(__cf2("kernel32.dll"),"CreateProcessA")
__cf3&=__cf1(__cf2("user32.dll"),"GetWindowThreadProcessId")
__cf4&=__cf1(__cf2("user32.dll"),"GetWindow")
 $DEFINE XPSE

proc RUNEX

    PARAMETERS CMDLINE$
    DECLARE SI#, PI#, PID&, WIN&
    DIM SI#, STARTUPINFO
    DIM PI#, PROCESS_INFORMATION
    VAR TIMEOUT&=call(__cf1&)+5000
    VAR WINHANDLE&=-1

    IF call(__cf2&,0,ADDR(CMDLINE$),0,0,0,0,0,0,SI#,PI#)

        REPEAT

            WIN&=FINDWINDOW("")

            WHILE ((WIN&) AND (WINHANDLE&=-1))

                call(__cf3&,WIN&,ADDR(PID&))

                IF PID&=PI#.DWPROCESSID&

                    WINHANDLE&=WIN&

                ENDIF

                IF call(__cf1&) > TIMEOUT&

                    WINHANDLE&=0

                ENDIF

                WIN&=call(__cf4&,WIN&, 2)

            ENDWHILE

        UNTIL WINHANDLE&>-1

    ENDIF

    DISPOSE SI#
    DISPOSE PI#
    RETURN WINHANDLE&

endproc

VAR NOTEPAD&=RUNEX("c:\windows\notepad.exe")

IF NOTEPAD&

    SENDSTRING(NOTEPAD&, "XProfan 10 ist einfach Spitze!")
    SENDSTRING(NOTEPAD&, "Aber das Wissen ja alle")
    SENDSTRING(NOTEPAD&, "Gruß, Thomas")

ref='./../../references-fonction/XProfan/endif/'>ENDIF

 
23.10.2006  
 




GDL
s'il te plaît nich à meinem anniversaire streiten.

salut
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
23.10.2006  
 



[quote-part:f0cb3b491f=GDL]s'il te plaît nich à meinem anniversaire streiten.

salut
Georg[/quote-part:f0cb3b491f]
Du zauberst mir toujours wieder un Lächeln Georg.
 
23.10.2006  
 




GDL
suis aujourd'hui depuis langem la fois wieder bien sur elle et je wünsche mir, cela peut-être alle aujourd'hui la fois bien sur elle sommes.

salut
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
23.10.2006  
 



Hey cela bekommen wir sûrement hin - @alle: stiiiiimts????
 
23.10.2006  
 



je glaub wir (Thomas et je) konnten qui Indifferenz dans einem ausführlichen Skypegespräch beilegen. Drum siehe erstes Posting.
 
23.10.2006  
 




Torsten
Rümker
je suis maintenant am essayer et essayer, et zwar habe je versucht qui Procedure encore mitzugeben dans welchem Modus cela Programme starten soll. (alors minimiert ou bien maximiert ou bien quoi que + subj.)

Folgendes habe je alors eingefügt bzw modifié:
auparavant:
KompilierenMarqueSéparation
Case %PCount <> 1 : Return -1
Parameters cmdline$
Declare Ret&, SI#, PI#, WinHandle&, pid&, win&, timeout&
Struct STARTUPINFO = ~STARTUPINFO
Struct PROCESS_INFORMATION = ~PROCESS_INFORMATION
Dim SI#, STARTUPINFO
Dim PI#, PROCESS_INFORMATI

après:
KompilierenMarqueSéparation
Cas %PCount <> 2 : Retour -1
Paramètres cmdline$, modus%
Déclarer Ret&, SI#, PI#, WinHandle&, pid&, win&, timeout&
Struct STARTUPINFO = ~STARTUPINFO
Struct PROCESS_INFORMATION = ~PROCESS_INFORMATION
Faible SI#, STARTUPINFO
Faible PI#, PROCESS_INFORMATION
LET SI#.wShowWindow%=modus%

Habe versucht CreateProcessA  trop befolgen, mais irgendwie venez là chez mir nix chez raus, soll appeler cela Programme wird toujours im Normalmodus gestartet égal quoi je fais.

A

MfG
Torsten Rümker
 
Ich lerne, ob ich will oder nicht!
Betriebssystem:
- Ubuntu 15.x
- Windows (diverse)
XProfan Version: X2
02.11.2006  
 



si Du déjà cela handle la hâte, pourquoi benutzte pas simple ShowWindow(N1,N2) ?
 
02.11.2006  
 




Zum Quelltext


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

12.711 Views

Untitledvor 0 min.
Torben Nissen02.05.2020

Themeninformationen



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