Anfängerfrage zu shellexecute

stEEdZ

Mitglied
Hallo allerseits!
vorab, ich bin Informatikstudent im 2 Semester also noch gaaaaanz am Anfang.
Deswegen fehlt mir auch sicherlich in vielen Dingen NOCH das Verständnis und der Durchblick also seit bitte nicht zu grob zu mir :)

Ich habe für meinen Nebenjob eine kleine Datenbank programmiert in PhP/MySQl.
Um es meinen Mitarbeitern zu erleichtern auf diese zuzugreifen hab ich in C++ ein kleines
Programm geschrieben das einfach nur den onlinestehenden Pfad via ShellExecute aufruft.
PHP:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <shellapi.h>
using namespace std;
int main (void)
{
     
     ShellExecute(NULL, "open", "http://www.XXXX/aufruf.php",  NULL,  NULL,  SW_SHOWDEFAULT); 
     
}

Funktioniert auch alles wunderbar!

So nun hab ich ein Verständnisproblem:
Wenn ein Mitarbeiter die exe aufrufen will, braucht der dann nur die kompilierte Exe-Datei oder auch das Skript auf seinem PC?

Desweiteren würde mich interessieren wie ich der Exe-Datei ein anderes
Symbol zuweisen kann?
Jetzt hab ich hier im Forum natürlich schonmal rumgesucht und bemerkt, dass man sicherlich auf seinem eigenen PC die
Symbole verändern kann aber das dann natürlich individuel auf dem Computer ist (is ja klar)

Ich würde aber lieber selber ein Bild für die exe erstellen!

So also weitergesucht und herraus gefunden, dass das wohl nur mit VB geht?
Is das richtig?

Außerdem hab ich die Seite mit .htaccess gesichert.
Dazu hätte ich dann später auch noch ein paar Fragen in bezug auf die Exe aber das ist
wohl etwas komplexer.

vielen Dank für eure Hilfe im Vorraus
mfg
stEEdZ
 
Hi.
Ich habe für meinen Nebenjob eine kleine Datenbank programmiert in PhP/MySQl.
Um es meinen Mitarbeitern zu erleichtern auf diese zuzugreifen hab ich in C++ ein kleines
Programm geschrieben das einfach nur den onlinestehenden Pfad via ShellExecute aufruft.
Warum benutzt du dafür nicht einfach einen Bookmark? Du kannst aus der Adresszeile des Browsers per Drag'n'Drop einfach ein Symbol dafür auf den Desktop ziehen. Dadurch das es eine Verknüpfung ist, kannst du auch das Icon ändern.
So nun hab ich ein Verständnisproblem:
Wenn ein Mitarbeiter die exe aufrufen will, braucht der dann nur die kompilierte Exe-Datei oder auch das Skript auf seinem PC?
C/C++ ist keine Skriptsprache. Wenn der Quellcode einmal kompiliert ist, braucht man nur das fertige Programm.
Desweiteren würde mich interessieren wie ich der Exe-Datei ein anderes
Symbol zuweisen kann?
Jetzt hab ich hier im Forum natürlich schonmal rumgesucht und bemerkt, dass man sicherlich auf seinem eigenen PC die
Symbole verändern kann aber das dann natürlich individuel auf dem Computer ist (is ja klar)

Ich würde aber lieber selber ein Bild für die exe erstellen!

So also weitergesucht und herraus gefunden, dass das wohl nur mit VB geht?
Is das richtig?
Nein. Man kann auch ein Symbol als Resource in eine Exe einbetten. Das kommt darauf an, welchen Compiler / Umgebung du verwendest.

Gruß
 
Hallo,
erstma danke für die Antwort!

Warum benutzt du dafür nicht einfach einen Bookmark?

Stimmt das wäre der einfachste Weg gewesen... da bin ich nich draufgekommen :rolleyes:
Aber egal jetzt hab ich ja die exe und noch einen Lerneffekt!

Nein. Man kann auch ein Symbol als Resource in eine Exe einbetten. Das kommt darauf an, welchen Compiler / Umgebung du verwendest.

Wie is da normalerweise die Standartvorgehensweise? Also bei Spielen usw?

Ich benutze Dev-cpp als Compiler, hab aber ehrlich gesagt keine Ahnung ob das einbetten damit geht, bzw hab ich schonmal nachgesehen aber nichts gefunden!

danke für die Hilfe
mfg
stEEdZ
 
Wie is da normalerweise die Standartvorgehensweise? Also bei Spielen usw?

Ich benutze Dev-cpp als Compiler, hab aber ehrlich gesagt keine Ahnung ob das einbetten damit geht, bzw hab ich schonmal nachgesehen aber nichts gefunden!
Normalerweise benutzt man eine Resourcendatei, die man mit einem Resourceneditor erstellen kann.

Um nur ein Icon einzubetten reicht:
Code:
2 ICON "icons/prog.ico"
Diese Datei muss mit dem Resourcenkompiler kompiliert werden (das Programm ist bei Dev-Cpp dabei):
Code:
windres test.rc -O coff -o test.res
Dann kann man die Resourcendatei einfach mit zum Programm hinzubinden:
Code:
gcc -mwindows test.res -mno-cygwin -o xyz.exe xyz.c
Es gibt auch grafische Programme, z.B. Resourcehacker mit dem man das einfacher hinbekommt.

Gruß
 
Hallo,
sorry das geht mir jetzt etwas zu schnell :confused:

Also ich hab jetzt ein Projekt erstellt in Dev-C++ und dort sowohl das normale c++ skript
als auch ein resource-file eingefügt.
Außerdem hab ich noch eine Grafik mit .ico die ich gerne als Exe Grafik benutzen würde.

So, von der Syntax für resource Geschichten habe ich leider überhaupt keine Ahnung.

Brauch ich in RCs irgend ein Include?
Wie sieht da die Syntax aus? Gibts da keine Semikolon?
Muss ich da zuerst ne Funktion aufmachen? (int main () zb)

Also ihr seht schon ich hab da echt null Plan :rolleyes:

PHP:
ICON "icons/prog.ico"
Das bestimmt wahrscheinlich den Pfad der Ico-Datei oder?

PHP:
windres test.rc -O coff -o test.res
"windres reads resources from an input file and copies them into an output file"
in meinen Fall wohl in die test.res oder?

Das heißt der Befehl nimmt die resources (bei mir wohl ICON "Pfad..../xxx.ico" ?)
und kopiert diese in test.res?
Welchen Nutzen hat das und muss ich davor eine Datei test.res erstellt haben?

PHP:
gcc -mwindows test.res -mno-cygwin -o xyz.exe xyz.c
Spätestens hier dreht sich bei mir nur noch alles im Kopf :eek:
Unter gcc find ich nur die Gnu compiler collection.
Kommt dieser Befehl dann ins normale Skript oder auch in die rc?

Gibts irgendwo Tutorials für Anfänger für Resource-Files in C/C++?

Vielen Dank für die Hilfe
mfg
stEEdZ
 
Hallo,
sorry das geht mir jetzt etwas zu schnell :confused:

Also ich hab jetzt ein Projekt erstellt in Dev-C++ und dort sowohl das normale c++ skript
als auch ein resource-file eingefügt.
Außerdem hab ich noch eine Grafik mit .ico die ich gerne als Exe Grafik benutzen würde.

So, von der Syntax für resource Geschichten habe ich leider überhaupt keine Ahnung.

Brauch ich in RCs irgend ein Include?
Wie sieht da die Syntax aus? Gibts da keine Semikolon?
Muss ich da zuerst ne Funktion aufmachen? (int main () zb)
1. Nein.
2. So ähnlich wie C Präprozessor Code - siehe :google:
3. Nein
4. Nein

Also ihr seht schon ich hab da echt null Plan :rolleyes:

PHP:
ICON "icons/prog.ico"
Das bestimmt wahrscheinlich den Pfad der Ico-Datei oder?
Das ist erstmal nicht korrekt. Du mußt schon etwas genau hingucken. In dem Beispiel von mir oben wird eine ICON Resource definiert, die die ID 2 bekommt. Auf die ID kann man sich im Programm später beziehen (wenn man das will). Ist auch vollkommen egal welche ID man da angibt - es ist nur so, das das erste ICON in der .rc Datei später als Icon für das Programm genommen wird.

PHP:
windres test.rc -O coff -o test.res
"windres reads resources from an input file and copies them into an output file"
in meinen Fall wohl in die test.res oder?
In diesem Fall: ja.

Das heißt der Befehl nimmt die resources (bei mir wohl ICON "Pfad..../xxx.ico" ?)
und kopiert diese in test.res?
Welchen Nutzen hat das und muss ich davor eine Datei test.res erstellt haben?
Das hat den Vorteil, das alle Resourcen von dem Programm in einer Datei sind. Bei einer Resource macht das wenig Sinn - allerdings hat die .res Datei ein ganz anderes Format als die .rc Datei. Und nein, du mußt vorher keine .res Datei erstellen - genau das macht ja das Programm.

PHP:
gcc -mwindows test.res -mno-cygwin -o xyz.exe xyz.c
Spätestens hier dreht sich bei mir nur noch alles im Kopf :eek:
Unter gcc find ich nur die Gnu compiler collection.
Kommt dieser Befehl dann ins normale Skript oder auch in die rc?
Diesen Befehl müßte man aufrufen um ein Programm zusammen mit der Resource zu kompilieren und zu binden. Man kann im Dev-C++ Extra-Optionen für den Linker angeben. Da kann man dann einfach die test.res Datei mit aufführen.

Gibts irgendwo Tutorials für Anfänger für Resource-Files in C/C++?
Keine Ahnung, mußte mal Suchen.

Wenn dir das alles zu schwer ist, dann verwende doch einfach Programme wie den ResourceHacker.

Gruß
 
Ha! Ich habs!
Ok, da war ich ja mal ordentlich auf der Leitung gestanden!

Das sind ja Linux/Terminal aufrufe:
PHP:
windres test.rc -O coff -o test.res  
gcc -mwindows test.res -mno-cygwin -o xyz.exe xyz.c

Und ich versuch die hier die ganze Zeit in meinen Compiler zu hämmern :suspekt:

Also vielen Dank... schwere Geburt aber was gelernt dabei thx thx
mfg
stEEdZ
 
hi, ich habe ein arges problem mit diesem befehl *verzweifel*

ich include windows.h und er meckert rum das in der winnt.h irgendwelche semikolons un bindestriche un son krempel fehlen. hab mal spaseshalber die hier mit aufgeführte shellapi.h includet... oh mein gott. 153 fehler. woran liegt das?

ich verwende visual 2005 professional edition version 8.0 bla blubb haste nich gesehn. hab nen fensterchen programmiert mit 3 buttons drin un jeder button soll ne lustige exe ausführen. erstellt hab ichs über datei->neu->projekt visual c++ ausgewählt un da windows forms anwendung. da baut er mir ja das fensterchen un das drum herum alles zurecht.

aber wieso bringt er mir diese enormen fehler innerhalb seiner eignen header dateien? hoffe es kann mir wer helfen.

mfg, mo
 
Hallo,

bei Windows-Forms-Anwendungen (Managed C++) ist der direkte Aufruf von Windows-API-Funktionen mit etwas mehr Aufwand verbunden und funktioniert anders als bei normalen C++ - Projekten.
Du kannst aber stattdessen die Funktionen der .NET-Bibliothek verwenden. Schaue dir doch mal die Klasse System.Diagnostics.Process an, die das Gleiche wie ShellExecute leistet.

Gruß
MCoder
 
erstmal danke für die schnelle antwort. wie ich immer wieder feststellen muss bin ich noch recht unbedarft mit der ganzen materie :/ wie schaue ich mir das dingens denn an und wie baue ich es ein? is bestimmt ne sehr dämliche frage >< aber man muss ja mal klein anfangen *hust*
 
Zurück