Einsteigerfragen zur PROFAN Programmierung

| Suchen
| Zurück zur Übersicht

Autor | Thema: Suchen und finden von .EXE Dateien
Torsten Klein
| Datum:20.08.02 06:34 (Toppixxxx@web.de) |
hab mal wieder eine frage mit: @WinExecWait("eine datei.EXE",1) öffne ich einige anwendungen aber andere werden nicht gefunden gebe ich den weg an @WinExecWait("C:\.....*exe",1) geht das!! aber da z.B. nicht in allen betriebssytemen der pfad gleich ist währe diese lösung nicht angebracht genauso ist das mit :LoadBmp "C:\Programme\Test\bild.BMP",0,0;0 wenn der benutzer das programm aber auf D:\....... ablegt stimmt der weg auch nicht mehr was müsste ich tun um trotzdem diese dateien auszuführen ?? oder wie sollte das script dazu aussehen?? mfg Toppi(version5.0)
Thorsten
| Datum:20.08.02 11:00 (galaxy@mrk-soft.de) |
Ich Persönlich arbeite NIE mit festen Pfaden, sondern immer variabel. ew. den Pfad am Anfang des Programms mit PAR$(0) hohlen, mit CHDIR diesen setzen und dann beziehen sich alle weiteren Zugriffe auf dieses Verz. LOADBMP "BILD.BMP" oder PLAYSOUND "musik.wav", bzw. WINEXEX("programm.exe",1), usw.
Torsten Klein
| Datum:20.08.02 13:06 (Toppixxxx@web.de) |
kannste mir mal ein beispiel script dazu posten (kenn mich noch nicht so gut aus,habe erst angefangen) mfg Toppi und DANKE
Jörg Sellmeyer
| Datum:20.08.02 15:57 (joerse@gmx.de) |
Hallo, Def VerzeichnisTiefe(1) int(Sub(Len(@$(1)),Len(Translate$(@$(1),"\\","")))) Def PfadTeil(2) SubStr$(@$(1),@%(2),"\\")'Vorher sollte man die Verzeichnistiefe ermitteln Def DateiName(1) SubStr$(@$(1),VerzeichnisTiefe(@$(1)) + 1,"\\") Def DateiPfad(1) Translate$(@$(1),"\\" + DateiName(@$(1)),"") 'Diese Funktionen helfen Pfade zu zerlegen Cls Declare homeDir$,MeinBild$,MeineDatei$,s$ homeDir$=DateiPfad(@par$(0)) print homeDir$ MeinBild$=homeDir$ + "\\Bitmaps\\MeinBild.bmp" 'oder: ChDir homeDir$ MeineDatei$="Texte\\MeineDatei.txt" Assign #1,MeineDatei$ Reset #1 input #1,s$ Close #1 print s$ WaitInput Das funktioniert bei Dateien, die Du selber mit Deinem Programm lieferst und Du die Verzeichnisstruktur kennst. Bei beliebigen Programmen kannst Du nur raten. Der Ordner für "Eigene Dateien" läßt sich aber auch aus der Registry auslesen: Def EigeneDateien(0) readini$("Hkey_1","Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","Personal") Gruß Jörg
Torsten Klein
| Datum:20.08.02 16:46 (Toppixxxx@web.de) |
mm sorry, aber leider kappiere ich das nicht ganz (stehe wohl auf der leitung)deshalb nerve ich mal weiter :o)mein script sieht so aus: Elseif @Menuitem (1) LoadBmp "C:\Programme\Bilder\blau.BMP",0,0;0 usefont "arial",20,7,0,0,0 textcolor @rgb(100,100,100),-1 drawtext 5,5,"text text text text" @WinExecWait("C:\Programme\Zubehör\WORDPAD.EXE",1) so aber wie muss ich das machen das er nun diese dateien findet? (ohne pfad)also : Elseif @Menuitem (1) LoadBmp "blau.BMP",0,0;0 usefont "arial",20,7,0,0,0 textcolor @rgb(100,100,100),-1 drawtext 5,5,"text text text text" @WinExecWait("WORDPAD.EXE",1) danke schonmal für die hilfe !! mfg Toppi (version 5.0)
Thorsten
| Datum:20.08.02 16:08 (galaxy@mrk-soft.de) |
    declare ram1#, ram2#
    DEF GetFileTitle(3) ! "COMDLG32.DLL","GetFileTitleA"

    proc GetPath
     declare ram$
     dim ram1#,255
     dim ram2#,255
     String ram1#,0=par$(0)
     GetFileTitle(ram1#,ram2#,255)
     If lower$(String$(ram2#,0)) = "profan"
      ram$ = lower$(GetDir$("@")) + "\"
     Else
      ram$ =  lower$(mid$(par$(0),1,len(par$(0))-(4+len(String$(ram2#,0)))))
     Endif
     Dispose ram1#
     Dispose ram2#
     Return ram$
    endproc

    '-----------------------------------------------------------------

    getPath
    chDir @$(0)

    'print @$(0)
die Procedure liefert IMMER, egal ob als Runtime (Quellcode) oder als EXE Programm den richtigen Pfad, wo das Programm selber zu finden ist.
Torsten Klein
| Datum:20.08.02 17:07 (Toppixxxx@web.de) |
der text ist oben schon einmal ist irgenwie noch oben gerutscht mm sorry, aber leider kappiere ich das nicht ganz (stehe wohl auf der leitung)deshalb nerve ich mal weiter :o)mein script sieht so aus: Elseif @Menuitem (1) LoadBmp "C:\Programme\Bilder\blau.BMP",0,0;0 usefont "arial",20,7,0,0,0 textcolor @rgb(100,100,100),-1 drawtext 5,5,"text text text text" @WinExecWait("C:\Programme\Zubehör\WORDPAD.EXE",1) so aber wie muss ich das machen das er nun diese dateien findet? (ohne pfad)also : Elseif @Menuitem (1) LoadBmp "blau.BMP",0,0;0 usefont "arial",20,7,0,0,0 textcolor @rgb(100,100,100),-1 drawtext 5,5,"text text text text" @WinExecWait("WORDPAD.EXE",1) danke schonmal für die hilfe !! mfg Toppi (version 5.0)
Jörg Sellmeyer
| Datum:21.08.02 01:01 (joerse@gmx.de) |
Hallo Torsten, Wie ich vorher schon geschrieben habe, kannst Du alle Datei die Du selber im Pfad oder im Verzeichnis Deines Programmes gespeichert hast, direkt ohne Pfad b. z. w. mit relativen Pfadangaben ansprechen. Probier einfach mal mit meinem oder Thorstens (mrk-soft) Code herum. Alle anderen Dateien müssen mit pfadangaben versehen sein. Das hat nix mit Profan zu tun sondern mit den Strukturen eines PCs. Ausnahme: Wenn etwas im PFAD deines Computers ist, findet das der Computer automatisch. In der Regel ist das das Windowsverzeichnis und Windows\System. Du kannst den PFAD Deines Computers ermitteln indem Du im Startmenü einfach mal die MS-Dos-Eingabeaufforderung startest und dort PATH eingibst. Du kannst mit Addfiles *"*.exe" aber eine Liste erzeugen, die alle Programme enthält und diese nach den gesuchten Programmen durchforsten: Cls Declare Liste& Liste&=CreateSortedListbox(%hwnd,"",10,10,200,400) ChDir "C:\\" Addfiles *"*.exe" MoveListToList(Liste&) Vielleicht hilft das Dir erst mal weiter. Gruß Jörg
Torsten Klein
| Datum: 21.08.02 02:17 (Toppixxxx@web.de) |
jo danke euch beiden klappt prima und ich finde es spitze das ihr auch "anfängern" alles so klasse erklärt !!! macht weiter so *dickes lob* mfg Toppi

| Zurück zur Übersicht

| Ein kostenloses WebMart Forum WebMart Homepage Tools kostenlos |