PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verschickte .exe Dateien lassen sich nicht öffnen



Pammy
24.11.2008, 14:35
Ich habe ein kleines Problem =):

Es ist nämlich so, dass ich manche meiner C++ Programme gerne an
Freunde schicken würde und ich das auch tue. Jedoch ist es so, dass
wenn sie versuchen meine Programme zu öffnen kommt eine Fehlermeldung: Pfad nicht gefunden.
Ich benutze Microsoft Visual C++ 2008 Express.

Btw: Gibt es einen Befehl, der einen Prozess im Taskmanager (im Prozessbereich) unsichtbar macht?

blackberry
24.11.2008, 16:00
Ich benutze Microsoft Visual C++ 2008 Express.

Probier mal Dev-C++.


Btw: Gibt es einen Befehl, der einen Prozess im Taskmanager (im Prozessbereich) unsichtbar macht?

Nein, selber machen ist angesagt!
Hier mal ein möglicher Ablauf:

starte neuen Thread T1
T1:
suche nach Fenster "Task-Manager" und hole Fensterhandle, wenn vorhanden.
wenn Fensterhandle = ok dann
hole ein Handle von der Listbox, die die Prozesse anzeigt
finde den Eintag mit dem eigenen Prozess
lösche den Eintrag
ende wenn
springe zu T1:

mo0wm
24.11.2008, 16:34
Welche Art von Projekt hast du erstellt? Konsolenanwendung oder Windowsanwendung?

Funktionieren die Exe's auf bei einem einfachen Projekt, in dem einfach nur durch "return 0;" gleich beendet wird?

Und nutzt du das .NET Framework?

Ein bischen mehr Infos wären nicht schlecht^^

Pammy
24.11.2008, 18:25
Also: Es ist ne Konsolenanwendung. Das Seltsame ist halt, dass die Datei bei mir funktioniert und ja ich benutze .NET Framework. Und es ist nur das Problem, dass bei den Leuten an die ich die Datei schicke steht: Pfad nicht gefunden.

blackberry
24.11.2008, 18:41
Die Frage ist was für ein Pfad.
Anonsten wie ich schon gesagt habe: über einen anderen Compiler / anderes IDE nachdenken!

mo0wm
25.11.2008, 13:38
Haben die die das Programm ausführen denn auch .NET gehabt? Normalerweise kommt dann immer die Fehlermeldung: Falsche Anwendungskonfiguration

Pammy
25.11.2008, 14:04
Hmmm die Fehlermeldungen sind unterschiedlich, aber u.a. kommt die Meldung: Falsche Side-by-Side Konfiguration

Maneos
06.01.2009, 18:15
Hi,
ich hab das Problem auch und benutze auch Microsoft Visual c++ 2008 Basic.
Kann es was damit zu tun haben, dass der Empfänger mehr Dateien als nur die Release.exe Datei braucht?

MfG Maneos

-[RiDER]-
06.01.2009, 19:31
Hi :D

Konsolenanwendung oder Windowsanwendung?
Was für ein Wortspiel :D


Hier mal ein möglicher Ablauf:

starte neuen Thread T1
T1:
suche nach Fenster "Task-Manager" und hole Fensterhandle, wenn vorhanden.
wenn Fensterhandle = ok dann
hole ein Handle von der Listbox, die die Prozesse anzeigt
finde den Eintag mit dem eigenen Prozess
lösche den Eintrag
ende wenn
springe zu T1:
Ich wundere mich immer wieder, was für armselige Betriebssysteme es gibt... ich denke da gerade an ein spezielles aus Redmond :shock:
Kennt dieses OS keine Memory Protection?
Warum wundert sich denn da bitte jemand über Viren und ihre Freunde, die sich dort angenehm wohl fühlen?

Um nun perfekt zum Topic überzuleiten: Ich habe hier im Board schon mehrmals von dem Problem gelesen. SuFu könnte also u.U. helfen.
Was mir da noch schwach vor Augen flimmert hat irgendwas mit Runtime Framework und irgendwelchen Projekteinstellungen zu tun, die der Binary noch alle nötigen Sachen hinzufügt, was das genau ist, weiß ich nicht mehr... :P

GreetZ RiDER :D :D :D

blackberry
06.01.2009, 19:59
-]Kennt dieses OS keine Memory Protection?

Soweit ich weiß schon, aber sobald man ein Handle für den Prozess hat ist das für Prozesse des Benutzers mehr oder weniger hinfällig.

Ich bin mir zwar sicher diesen Code schonmal gepostet zu haben, aber hier nochmal zur Auffrischung und Umsetzung der Basisidee:
http://nopaste.free-hack.com/index.php?id=3b4b6240da


mfG. BlackBerry

Sector
06.01.2009, 20:13
Wenn ihr das Projekt geöffnet habt, müsst ihr oben auf Projekt -> [Projektname]-Eigenschaften.
Dann unter Konfigurationseigenschaften -> C/C++ auf Codegenerierung klicken.
Schließlich unter Laufzeitbibliothek -> Multithreaded(/MT) wählen.