JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=ca801a57ebb2446f2d5fef205cb091ffMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

EXE I/O
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
da-harry
Mini JLI'ler



Anmeldedatum: 22.11.2003
Beiträge: 30
Wohnort: München
Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 13:25    Titel: EXE I/O Antworten mit Zitat

Hi!
Ich wollte fragen, ob es irgendwelche Funktionen gibt um von meinem Programm aus zb. cmd.exe zu "öffnen", dann in cmd.exe was "reinzuschreiben" und den Output auch zu bekommen.

Beispiel (Namen für die funktionen erfunden):
Code:

ÖffneExeDatei("cmd.exe");
SchreibeInExe("dir");
SchreibeOutputvonExeInVariable(szBuffer);
SchreibeInExe("cd ..");
SchreibeInExe("dir");
SchreibeOutputvonExeInVariable(szBuffer);



Danke!
_________________
visit:

and da-harry.de Forum
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 13:40    Titel: Antworten mit Zitat

ShellExecute() Wink
In der MSDN sollten die Parameter stehen.

PS: Es gibt auch noch WinExec(). Ich weiß aber nicht mehr, welche der beiden Funktionen für *.exe's zuständig ist.

<edit>
Aber was willst du denn in die Exe reinschreiben? Shocked
</edit>
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 13:56    Titel: Antworten mit Zitat

Er will was in die Konsolle schreiben, nicht in die exe.
_________________
http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.

Never touch a running System - der Systemling
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Mazze
JLI'ler


Alter: 39
Anmeldedatum: 02.01.2004
Beiträge: 145

Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 14:18    Titel: Antworten mit Zitat

Das Stichwort an der stelle lautet: Pipes Wink

Gibts C Funktionen wie popen und pclose für. Die Funktionieren genau so wie die Funktionen fopen,fclose .. usw.
Die Funktionieren jedenfalls bei Konsolen Programmen. Bei "richtigen" Win32 Programmen funktioniert das ganze mit den Funktionen nicht IIRC....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
da-harry
Mini JLI'ler



Anmeldedatum: 22.11.2003
Beiträge: 30
Wohnort: München
Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 15:24    Titel: Antworten mit Zitat

Danke für die Antworten! Razz
Mal schaun ob ich damit zurecht komme...
_________________
visit:

and da-harry.de Forum
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 15:55    Titel: Antworten mit Zitat

Heißt das, das man damit zugriff auf die konsole bekommt?Kann man sie dann komplett auslesen und auch alles reinschreiben? Also kann man damit qusi cout und cin fernsteuern? Nur mal so aus Interesse, weil ich es seltsam finde das es so einfach ist.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mazze
JLI'ler


Alter: 39
Anmeldedatum: 02.01.2004
Beiträge: 145

Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 16:00    Titel: Antworten mit Zitat

Mit hilfe von diesen Funktionen kannst du ganz einfach die Standard Eingabe bzw. Ausgabe von Programmen lesen bzw. beschreiben.
Eigentlich ist es so einfach.
Aber unter winodws gibt es glaub ich Probleme, wenn man versucht von einem GUI Programm aus die Standard E/A eines anderen Programmes zu lesen.Dann wird das ganze etwas komplizierter....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
da-harry
Mini JLI'ler



Anmeldedatum: 22.11.2003
Beiträge: 30
Wohnort: München
Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 16:14    Titel: Antworten mit Zitat

Hallo!
Es funktioniert auch nicht mit meinem Programm!
Es gibt immer nur:

Microsoft Windows XP [Version X.X.XXXX]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Dokumente und Einstellungen\XXXXXXXXXXXXXXXXXXXXX>

aus, selbst wenn ich dann mit fwrite zb dir oder so schreibe, hier ein snippet aus meinem code:
Code:

char szTmpOutput[5024];
char szOutput[5024]; 
char szTmp[500];
BOOL bCMDLoop = TRUE;
      
FILE *hCmd = _popen( "cmd", "rw" );
      
fread(szTmpOutput,sizeof(char),5024,hCmd);
      
int cntBytes = sprintf(szOutput,"%s",szTmpOutput); 
send(*sckSocket,szOutput,cntBytes,0);
      
while(bCMDLoop)
{
   bCMDLoop = CutParams(*sckSocket, CmdStruct);
   if(strcoll( CmdStruct->szCommand, "kill") != 0)
   {
      sprintf(szTmp,"%s\n",CmdStruct->szCommand);
      fwrite(szTmp,sizeof(char),500,hCmd);
      fread(szTmpOutput,sizeof(char),5024,hCmd);
      int cntBytes = sprintf(szOutput,"%s",szTmpOutput); 
      send(*sckSocket,szOutput,cntBytes,0);
   }
   else
      bCMDLoop = FALSE;
}
      
      _pclose(hCmd);



findest du vieleicht einen Fehler oder hast du ein Tutorial über dieses Thema?
_________________
visit:

and da-harry.de Forum
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Nahar
Senior JLI'ler


Alter: 36
Anmeldedatum: 16.07.2003
Beiträge: 267

Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 17:05    Titel: Antworten mit Zitat

Wenn es dir nur um die Konsole geht, da geht es mit

Code:

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>

using namespace std;

int main(int argc, char* argv[])
{
   System("dir C:\");
}


Damit machst du das jeweilige was system übergeben wird.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
da-harry
Mini JLI'ler



Anmeldedatum: 22.11.2003
Beiträge: 30
Wohnort: München
Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 17:18    Titel: Antworten mit Zitat

deisen befehl kenne ich bereits, aber ich will mit cmd.exe argieren, ich versuch nämlich so eine art remote shell für windows zu programmieren.
_________________
visit:

and da-harry.de Forum
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 17:19    Titel: Antworten mit Zitat

Das gleiche würde aber auch ShellExecute() oder auf jeden Fall WinExec() bewirken, was "The Lord of Programming" vorgeschlagen hatte aber "BlackLordOfDragons" meinte dass da-harry das nicht so wollte. Confused
Wenn es ihm nur darum geht das auf dem Bildschirm anzuzeigen müsste es sogehen. Aber wir wissen ja nicht was er mit den ausgegeben Daten machen will. Ich würde ja eh so wenig wie möglich andere Programme mit meinem eigenen Programm "agieren" lassen. Für das meiste gibt es ja doch "einfache" C++ Funktionen. Und dann lernt man ja noch was dazu und muss sich nicht immer auf die manchmal eigenwilligen in diesem Falle "DOS Methoden" verlassen. Wink
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
da-harry
Mini JLI'ler



Anmeldedatum: 22.11.2003
Beiträge: 30
Wohnort: München
Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 17:35    Titel: Antworten mit Zitat

Ich will, dass ich mich von einem anderen rechner zu meinem computer übers internet connecten kann um dann cmd.exe zu steuern.
_________________
visit:

and da-harry.de Forum
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 17:48    Titel: Antworten mit Zitat

ah, eine netzwerkfernbedienung. Coole Idee!Aber kann man auch Prgramme so einfach über Netzwerk starten, oder muss es dafür schon laufen?
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 18:03    Titel: Antworten mit Zitat

Du könntest auch VNC benützen, aber wenn du es selber programmieren willst.

@Jonathan_Klein: Solche programme bestehen normalerweise aus Server/Client
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
da-harry
Mini JLI'ler



Anmeldedatum: 22.11.2003
Beiträge: 30
Wohnort: München
Medaillen: Keine

BeitragVerfasst am: 17.07.2004, 18:26    Titel: Antworten mit Zitat

@Jonathan_Klein: Da muss der Server auf dem zu fernbedienenden Rechner laufen, der würde dann (wenn ich wüsste wie) über cmd.exe andere programme starten oder befehle ausführen.
Fernbedienen kann man dann mit telnet.
_________________
visit:

and da-harry.de Forum
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    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
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.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum