Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Parameter eines laufenden Programmes herausfinden

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 14.12.2005, 20:46    Titel: Parameter eines laufenden Programmes herausfinden Antworten mit Zitat

Gibt es dafür eine Funktion mittels API?
Ich habe zwar absolut keine Ahnung in diesem Bereich, werde mir aber Mühe geben, das zu verstehen. lächeln

Vielen Dank im Vorraus,

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 14.12.2005, 21:08    Titel: Antworten mit Zitat

Hi jb,
unter 'Parameter eines laufenden Programms' verstehe ich, was einem Programm beim Aufruf 'mitgegeben' wurde. Dafür ist Command$(..) da:
Command$(0) = Name des laufenden Programms(inkl. Pfad)
Commad$(1..) = übergebene Parameter
Oder was meinst du?
Grüße
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 14.12.2005, 21:14    Titel: Antworten mit Zitat

Das ist schon klar, ich meine halt, wie man z.B. den Parameter vom laufenden NOTEPAD.EXE
herausfinden kann, d.h. herausfinden kann, welche Textdatei im Moment geöffnet ist.

Ich hoffe, ich konnte mein Problem verständlich machen lächeln


jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 14.12.2005, 21:25    Titel: Antworten mit Zitat

Mal sehen, du willst also(z.B. über findWindow(..)) den Handle eines Programms ermitteln und suchst eine (API-)Funktion, die dir dann meldet, welche Parameter an dieses Programm übermittelt wurden? verwundert
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 14.12.2005, 21:59    Titel: Antworten mit Zitat

Ob das mit findWindow() gehtm, weiß ich nicht, denn ich habe da garkeine Ahnung von, aber im Prinzip hast du Recht.
Ich möchte also erst herausfinden (am besten in einer Schleife) ob das entsprechende Programm läuft (in diesem
Falle NOTEPAD.EXE). Wenn dem so ist, mit irgendeiner Funktion herausfinden, mit welchem Parameter
es augerufen wurde ( = welche Dateien mit dem Editor geöffnet wurden).

So soll es aussehen...
jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 14.12.2005, 22:22    Titel: Antworten mit Zitat

Das ist mein Versuch herauszufinden, ob die Befehlsreferenz schon geladen ist, vllt. hilft dir das ja erst mal weiter
Code:
'$include: "windows.bi"
'$include: "win\winuser.bi"
Option Escape
Option Explicit
Dim As Integer hwnd
Dim Cmd$
Cmd$=Environ$("windir") &"\\hh.exe"
Const Par$="D:\\Sprachen\\freeBASIC\\freeBASIC-Befehlsreferenz.chm" 'Das ist der ProgrammName
hwnd=Cast(Integer, FindWindow(null, "Hilfe")) 'Das ist der FensterName
If Not hwnd Then
  If Exec(Cmd$, Par$) Then
    MessageBox(null, Cmd$ &" oder\n" &Par$ &"\nnicht gefunden..", "Ooops, Fehler!", MB_OK)
  End If
End If
End 'always ultra..
Mußte mal kucken, ob es für dich von Nutzen ist zwinkern
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..

Zuletzt bearbeitet von ytwinky am 16.12.2005, 18:48, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 14.12.2005, 22:29    Titel: Antworten mit Zitat

Der findet erstmal die .BIs nicht... neutral
Hab das Programm Verzeichnis der FBIDE.EXE gespeichert.
Welche Dateien muss ich von wo dahinkopieren?

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 14.12.2005, 22:37    Titel: Antworten mit Zitat

Möglicherweise hast du eine ältere Version von freeBASIC; bis v0.14 hießen die Windows-API-BIs noch anders.
Lad dir mal die v0.15b runter, die, die's zurzeit gibt ist mehr oder weniger stable.
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 14.12.2005, 22:40    Titel: Antworten mit Zitat

Die .bi-Dateien befinden sich (normalerweise) in:
{fb-installationsverzeichnis}\inc
Das gilt auf alle Fälle für FB0.15b(v.01.12.2005)
Dabei spielt es keine Rolle, wo das {fb-installationsverzeichnis} ist..
..ich habe das nämlich wieder auf D:\Sprachen\freeBASIC installiert und es
läuft problemlos(naja, fpp spielt halt oft nicht mit, aber dann lasse ich ihn einfach bockig in der Ecke stehen..)
[Edit]
Ich habe das Programm gerade nochmal übersetzt, das geht wunderbar, also muß bei deiner Installation was nicht in Ordnung sein grinsen
Ich habe FB übrigens auch im %Path% stehen und auch FBCWin auf das Verzeichnis gesetzt(habe ich aber nur gemacht, weil ich dachte, daß fpp dann mit mir spielt, aber fpp.. s.o.)
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..

Zuletzt bearbeitet von ytwinky am 14.12.2005, 22:53, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 14.12.2005, 22:49    Titel: Antworten mit Zitat

Also mit der Version von www.freebasic.de unter Compiler klappt's auch nicht - die windws.bi existiert nicht, auch die winuser.bi, weder im Hauptverzeichnis, noch im Unterverzeichnis /inc/. Woran liegt's denn bloß?

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 14.12.2005, 22:56    Titel: Antworten mit Zitat

Habe das schonmal für nen anderen auf meinem Space hochgeladen. Bei mir war es übrigens dabei. Hier aber nochmal der komplette inc ordner.

Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 14.12.2005, 22:57    Titel: Antworten mit Zitat

Versuch mal diesen hier:
http://prdownloads.sourceforge.net/fbc/FreeBASIC-v0.15b-dos32.zip?download
[Edit]
Ooops, das war der für DOS, der hier ist für Windows:
http://prdownloads.sourceforge.net/fbc/FreeBASIC-v0.15b-win32.exe?download
denn dort habe ich auch meinen her(straight from the horse's mouth..)
ytwinky
PS:Misch' bloß nicht verschiedene FB-Versionen durcheinander, ich hab das nämlich schon hinter mir, keiner kann dir dann mehr helfen etc.
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 15.12.2005, 20:52    Titel: Antworten mit Zitat

Habe mir jetzt die neueste Version (Link oben) runtergeladen, und FB kompiliert ohne Fehlermeldung.
Aber jetzt spielt FPP nicht mit und stürzt ab. verwundert

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 15.12.2005, 21:11    Titel: Antworten mit Zitat

Hi jb,
..willkommen im Club lachen
Du kannst dir ja von VonGodric 'ne Debug-Version downloaden,
[Edit]
Ooops, Fpp ist nicht von VonGodric(sorry @VonGodric), sondern:
ReadMe auf http://ecowles.dyndns.org/fpp/ hat Folgendes geschrieben:
FPP - FreeBASIC Pre-Parser v1.11.0075
Eric Cowles <cowles1e@uregina.ca>
Copyleft Saturday, March 12th, 2005

aber der Link stimmt..
[Edit]
http://ecowles.dyndns.org/fpp/
aber die hat (jedenfalls bei mir) die gleiche Macke..
Ich bin auch wieder brav|reumütig zu fbc zurückgekehrt zwinkern
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 16.12.2005, 17:46    Titel: Antworten mit Zitat

Mit FBC klappt's auch so... peinlich

Das Programm funktioniert aber nicht so, wie ich will...
In deinem Programm dürfte ja
Code:

if exec(Cmd$, Par$) then

die entscheidende Zeile sein - sie startet das Programm ja mit dem entsprechenden
Kommandozeilenparameter. Meine Frage ist aber, ob ich herausfinden kann - und zwar nur durch
Angabe des Programmnamen - mit welchem Parameter es aufgerufen wurde...

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 16.12.2005, 19:02    Titel: Antworten mit Zitat

Ich habe das Beispiel(!!)-Programm lediglich gepostet, weil..
jb hat Folgendes geschrieben:
Ob das mit findWindow() gehtm, weiß ich nicht, denn ich habe da garkeine Ahnung von, aber im Prinzip hast du Recht.
..und mit dem Programm kannst du herausfinden, ob dieses|(Was auch immer) gerade läuft, richtig? Ohne Handle kannst du ja garnichts machen..
Jetzt geht es nur darum, herauszufinden, wo das Programm mit dem Handle yxzt seine Aufrufparameter versteckt hat UND ob diese zugänglich sind.
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 16.12.2005, 20:48    Titel: Antworten mit Zitat

Ich habe jetzt hier was gefunden: http://www.fbarchiv.de/index.php?page=showcode&id=11
Aber das Problem mit dem Herausfinden des Parameters bleibt...

/edit: Hab die Lösung gefunden, habe einfach nen VB-Code aus dem Netz genommen,
und den nach FB "portiert" - falls man es überhaupt so nennen kann zwinkern

/edit 2: Sollte natürlich FB heißen lachen zwinkern

jb


Zuletzt bearbeitet von jb am 17.12.2005, 00:18, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 17.12.2005, 00:10    Titel: Antworten mit Zitat

Hmmm, glaubst du wirklich, daß du über den Prozeß an die Aufrufparameter kommst verwundert
Der Aufruf ist doch längst Geschichte, wenn das Programm eine Prozess-ID hat, oder nicht?
Apropos Geschichte:Oder denkst du, daß es irgendwo eine 'History-Liste' mit getätigten Programmaufrufen(und deren Parametern) gibt???
ytwinky
[Edit]
Na gut, zu langsam, aaaber
jb hat Folgendes geschrieben:
und den nach FP "portiert" - falls man es überhaupt so nennen kann zwinkern

Den Code möchte ich sehen, den du von VB nach FREE-Pascal(FP) portiert hast lachen
[Edit2]
Ach soooo zwinkern
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..

Zuletzt bearbeitet von ytwinky am 17.12.2005, 00:22, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 17.12.2005, 00:14    Titel: Antworten mit Zitat

Ich gebe mich mittlerweile mit dem Windowsfensterstitel zufrieden...

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz