Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 14:32

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Startparameter prüfen

Discussion on Startparameter prüfen within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,227
Startparameter prüfen

Huhu,
ich wolte mein programm überprüfen lassen ob er mit einem bestimmten parameter gestartet wurde. soweit so gut hab ich das halbwegs gemacht, nur funktioniert das nicht gescheit

hoffe um hilfe
Code:
for(int i = 1; i < argc; i++){
    if(argv[i] != "lampe"){
        MessageBoxA(0, "Execute the launcher", "Error", MB_ICONERROR);
        ExitProcess(1);
    }
}
XxharCs is offline  
Old 05/14/2012, 12:51   #2
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
Du kannst C-Strings nicht mit == oder != überprüfen. Dazu brauchst du strcmp oder stricmp, wenn Groß- und Kleinschreibung keine Rolle spielen.
Nightblizard is offline  
Old 05/14/2012, 13:25   #3
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,227
ich weiß das man strings nicht vergleichen kann
strcmp/stricmp hab ich probiert, hat aber nicht funktioniert.

ich kanns noch mit equals versuchen
XxharCs is offline  
Old 05/14/2012, 13:43   #4
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
zeig mal deinen strcmp code.
Dr. Coxxy is offline  
Old 05/14/2012, 14:53   #5
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,227
Quote:
Originally Posted by Dr. Coxxy View Post
zeig mal deinen strcmp code.
Code:
for(int i = 1; i < argc; i++){
    if(strcmp ("lampe", argv[i]) != 0){
        MessageBoxA(0, "Please execute 'XxharCs_Launcher'.", "Error", MB_ICONERROR);
	ExitProcess(1);
    }
}
XxharCs is offline  
Old 05/14/2012, 16:12   #6
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
und was ist das problem?
Dr. Coxxy is offline  
Old 05/14/2012, 16:22   #7
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,227
wenn ich das prog ohne parameter starte läuft es.
dabei muss das programm mit dem parameter "lampe" gestartet werden, aber durch andere parameter oder keine parameter* darf sich das prog nicht starten
XxharCs is offline  
Old 05/14/2012, 16:42   #8
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
kein wunder, du machst ja auch ne for schleife über argc, wenn man keine parameter angibt geht er nie in die for schleife rein.
Dr. Coxxy is offline  
Old 05/14/2012, 17:14   #9
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,227
hab die for-schleife ganz ausgelassen, jetzt funktioniert es wenn ich mit meinem externen programm mit dem parameter das prog starte.

wenn ich es ohne parameter oder falschen parameter starte bekomm ich den crash
"Unbehandelte Ausnahme bei 0x00971232 in XxharCs.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000000."

Code:
if(strcmp ("lampe", argv[1]) != 0){ // Hier taucht der Fehler auf
			
	MessageBoxA(0, "Please execute 'XxharCs_Launcher'.", "Error", MB_ICONERROR);
			
	ExitProcess(1);
			
}
XxharCs is offline  
Old 05/14/2012, 17:54   #10
 
elite*gold: 5
Join Date: Sep 2006
Posts: 385
Received Thanks: 218
Natürlich crasht das, wenn du es ohne Parameter startest. argv hat argc Einträge. Rufst du dein Programm nun ohne Parameter auf, dann ist argc 1 und argv beinhaltet nur einen Eintrag. Du greifst aber mit argv[1] auf den 2. Eintrag zu, wodurch du auf Speicher zugreifst, der alles mögliche beinhalten kann.

Prüfe einfach vorher, ob argc <= 1 und du solltest das gewünschte Ergebnis erhalten.
Nightblizard is offline  
Thanks
1 User
Old 05/14/2012, 17:59   #11
 
Tyrar's Avatar
 
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
ich würde ganz einfach
Code:
if(!strstr(GetCommandLineA(),"lampe") {
    MessageBoxA(0, "Please execute 'XxharCs_Launcher'.", "Error", MB_ICONERROR);
    ExitProcess(1);
}
verwenden..

strstr returned die position des 2. parameters in parameter 1

zur besseren sicherheit würde ich auch eher den parent process überprüfen, nicht sehr gut aber besser
Tyrar is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
PSN-Code prüfen
12/21/2011 - Off Topic - 2 Replies
Hallo, ich habe hier vor mir einen PSN-Code liegen aber weiß leider nicht, wofür er ist bzw. welchen Wert er hat. Weiß einer, wie ich das prüfen kann ohne eine Playstation zu haben? Thxxx
DLL auf inject prüfen
05/16/2011 - AutoIt - 10 Replies
Hi, ist es irgendwie möglich, ob eine spezielle DLL in einen spezifischen Prozess injected wurde? Speziell geht es mir um den Hack http://www.elitepvpers.com/forum/wow-exploits-hacks -tools-macros/1005654-wowext-xyz-hack-mit-teleport -features.html und die dazugehörige WExt.dll.
PromoCodes prüfen
06/09/2010 - WarRock - 5 Replies
Hallo, kann man irgendwie Promo Codes prüfen ob sie noch nicht eingelöst sind ohne sie dabei gleich zu benutzen ? Hoffe auf eine schnelle Antwort :D mfg Marvin
Prüfen Sie den Druckserver aus.
10/21/2009 - Metin2 Private Server - 13 Replies
Meine Spülmaschine ist ein Problem, so dass er die Quelle aller Raumfahrt mit der Reinigung schüttelte. Mein Tante wurde eine solche Verwirrung auf der Couch die ganze Zeit.
Sicherheit prüfen
06/08/2006 - Technical Support - 0 Replies
Hallo, ich habe auf meinem Webblog einen Passwortgeschützten Bereich installiert. Jetzt möchte ich die Sicherheit prüfen und benötige ein Programm, dass per Wordlist nur ein Passwort ausprobiert KEINEN username. Ich habe nämlich keinen Loginbereich mit username und pass sondern einfach nur ein Passwortfeld. Hier der Quelltext, hab mal geprüft und keine Passwortsource gefunden. Sicher? &#60;html> &#60;head> &#60;title>cursusnovus - Weblog @ myblog.de&#60;/title> &#60;meta http-equiv=&#34;Content-Type&#34;...



All times are GMT +2. The time now is 14:32.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.