<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Exe darf man nicht umbenennen]]></title><description><![CDATA[<p>Hallo!<br />
Wie kann man in C++ eine exe schreiben, die man nicht umbennen darf? Wenn man sie umbennent läuft sie halt nicht... So würde ich das gerne machen, aber wie?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/186968/exe-darf-man-nicht-umbenennen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 17:49:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186968.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 14 Jul 2007 09:10:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Exe darf man nicht umbenennen on Sat, 14 Jul 2007 09:10:05 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Wie kann man in C++ eine exe schreiben, die man nicht umbennen darf? Wenn man sie umbennent läuft sie halt nicht... So würde ich das gerne machen, aber wie?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325159</guid><dc:creator><![CDATA[OhneUmbenennen]]></dc:creator><pubDate>Sat, 14 Jul 2007 09:10:05 GMT</pubDate></item><item><title><![CDATA[Reply to Exe darf man nicht umbenennen on Sat, 14 Jul 2007 09:13:30 GMT]]></title><description><![CDATA[<p>Hallo,<br />
mit Standard-C++ geht das nicht. Unter Windows könntest du z.B. die API-Funktion<br />
GetModuleFileName verwenden und das Ergebnis mit dem gewünschten Namen vergleichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325161</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Sat, 14 Jul 2007 09:13:30 GMT</pubDate></item><item><title><![CDATA[Reply to Exe darf man nicht umbenennen on Sat, 14 Jul 2007 09:28:02 GMT]]></title><description><![CDATA[<p>Danke schön <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title="=)"
      alt="🙂"
    /><br />
Habe mir schon gedacht, weil ich davon in meinen knapp 1000 Seiten Buch nichts davon gelesen habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325169</guid><dc:creator><![CDATA[OhneUmbenennen]]></dc:creator><pubDate>Sat, 14 Jul 2007 09:28:02 GMT</pubDate></item><item><title><![CDATA[Reply to Exe darf man nicht umbenennen on Sat, 14 Jul 2007 09:33:11 GMT]]></title><description><![CDATA[<p>ist nicht immer der erste parameter von argc der dateinamen der exe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325172</guid><dc:creator><![CDATA[nachgefragt]]></dc:creator><pubDate>Sat, 14 Jul 2007 09:33:11 GMT</pubDate></item><item><title><![CDATA[Reply to Exe darf man nicht umbenennen on Sat, 14 Jul 2007 10:29:20 GMT]]></title><description><![CDATA[<p>Habe ich schon probiert aber das klappt nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title="=("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325212</guid><dc:creator><![CDATA[Leider nicht =(]]></dc:creator><pubDate>Sat, 14 Jul 2007 10:29:20 GMT</pubDate></item><item><title><![CDATA[Reply to Exe darf man nicht umbenennen on Sat, 14 Jul 2007 10:37:10 GMT]]></title><description><![CDATA[<p>in argv[0] steht der name der datei, die aufgerufen wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325216</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Sat, 14 Jul 2007 10:37:10 GMT</pubDate></item><item><title><![CDATA[Reply to Exe darf man nicht umbenennen on Sat, 14 Jul 2007 11:32:02 GMT]]></title><description><![CDATA[<p>ja, du koenntest z.B. sowas machen:</p>
<pre><code class="language-cpp">#include &lt;string&gt;

bool rightFileName( char *filePath );

int main( int argc, char **argv )
{
	if( !rightFileName( argv[ 0 ] ) )
		return 1;
	// weiterer programmablauf ...
}

bool rightFileName( char *filePath )
{
	std::string reversed;
	for( int i = strlen( filePath ) - 1; i &gt;= 0; i-- )
		if( filePath[ i ] == '\\' )
		{
			if( reversed != &quot;&quot; )
				break;
		}
		else
			reversed += filePath[ i ];
	std::string fileName;
	for( int i = reversed.length() - 1; i &gt;= 0; i-- )
		fileName += reversed.at ( i );
	if( fileName == &quot;erforderter_dateiname.exe&quot; )
		return true;
	else
		return false;
}
</code></pre>
<p>wahrscheinlich nicht besonders performant, auch nicht getestet aber ich glaube so sollte es funktionieren.</p>
<p>mfg,<br />
julian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325242</guid><dc:creator><![CDATA[Julian__]]></dc:creator><pubDate>Sat, 14 Jul 2007 11:32:02 GMT</pubDate></item><item><title><![CDATA[Reply to Exe darf man nicht umbenennen on Sat, 14 Jul 2007 11:43:32 GMT]]></title><description><![CDATA[<p>Funktioniert wunderbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title="=)"
      alt="🙂"
    /><br />
Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325255</guid><dc:creator><![CDATA[blubbbbi]]></dc:creator><pubDate>Sat, 14 Jul 2007 11:43:32 GMT</pubDate></item><item><title><![CDATA[Reply to Exe darf man nicht umbenennen on Sat, 14 Jul 2007 12:31:41 GMT]]></title><description><![CDATA[<p>Julian__ schrieb:</p>
<blockquote>
<p>ja, du koenntest z.B. sowas machen:</p>
<pre><code class="language-cpp">#include &lt;string&gt;

bool rightFileName( char *filePath );

int main( int argc, char **argv )
{
	if( !rightFileName( argv[ 0 ] ) )
		return 1;
	// weiterer programmablauf ...
}

bool rightFileName( char *filePath )
{
	std::string reversed;
	for( int i = strlen( filePath ) - 1; i &gt;= 0; i-- )
		if( filePath[ i ] == '\\' )
		{
			if( reversed != &quot;&quot; )
				break;
		}
		else
			reversed += filePath[ i ];
	std::string fileName;
	for( int i = reversed.length() - 1; i &gt;= 0; i-- )
		fileName += reversed.at ( i );
	if( fileName == &quot;erforderter_dateiname.exe&quot; )
		return true;
	else
		return false;
}
</code></pre>
<p>wahrscheinlich nicht besonders performant, auch nicht getestet aber ich glaube so sollte es funktionieren.</p>
<p>mfg,<br />
julian</p>
</blockquote>
<p>Mein Vorschlag:</p>
<pre><code class="language-cpp">//#include &lt;string&gt;
//#include &lt;algorithm&gt;

bool rightFileName( const std::string&amp; filePath, const std::string&amp; appName )
{
	std::string::size_type beg( filePath.find_last_of( &quot;\\/&quot; ) );

	//falls kein slash gefunden wurde, nehmen wir an, 
	//dass in filePath nur der Name steht
	if( beg == std::string::npos )
	{
		return filePath == appName;
	}
	else
	{
		//Die Länge wird von dem kürzeren String übernommen
		std::string::size_type len( std::min( appName.size(), 
									filePath.size() - beg - 2 ) );

		//Sieht wild aus, ruft aber nur die compare Funktion der char_traits von std::string auf
		return std::string::traits_type::compare( filePath.c_str() + beg + 1,
												appName.c_str(), len ) == 0;
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1325286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325286</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Sat, 14 Jul 2007 12:31:41 GMT</pubDate></item><item><title><![CDATA[Reply to Exe darf man nicht umbenennen on Sat, 14 Jul 2007 12:59:56 GMT]]></title><description><![CDATA[<p>ist doch gar nicht nötig, irgendwelche sonderzeichen im string zu suchen.</p>
<pre><code class="language-cpp">bool rightFileName( char *filePath ) {
    std::string rightName = &quot;sosollsieheissen.exe&quot;;
    int length = strlen(filePath);

    if(length &lt; rightName.length()) // theoretisch möglich
        return 0;

    return rightName.compare(length - rightName.length(), rightName.length(), filePath) == 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1325301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325301</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Sat, 14 Jul 2007 12:59:56 GMT</pubDate></item><item><title><![CDATA[Reply to Exe darf man nicht umbenennen on Sat, 14 Jul 2007 13:26:45 GMT]]></title><description><![CDATA[<p>stimmt ... so gehts auch wunderbar. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
warum bin ich da nicht drauf gekommen? ich sollte mehr schlafen ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>mfg,<br />
julian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325311</guid><dc:creator><![CDATA[Julian__]]></dc:creator><pubDate>Sat, 14 Jul 2007 13:26:45 GMT</pubDate></item><item><title><![CDATA[Reply to Exe darf man nicht umbenennen on Sat, 14 Jul 2007 14:12:34 GMT]]></title><description><![CDATA[<p>thordk schrieb:</p>
<blockquote>
<p>ist doch gar nicht nötig, irgendwelche sonderzeichen im string zu suchen.</p>
</blockquote>
<p>Ich hätt mir mal besser die Doku zu basic_string::compare angeschaut <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325339</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Sat, 14 Jul 2007 14:12:34 GMT</pubDate></item><item><title><![CDATA[Reply to Exe darf man nicht umbenennen on Sat, 14 Jul 2007 23:58:28 GMT]]></title><description><![CDATA[<p>da es hier ja noch nicht genugLösungen gibt, hier mal meine:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

int main(int argc, char** argv) {

    string s1 = &quot;name.exe&quot;;
    char *iter1,*iter2;

    iter1 = iter2 = argv[0];

    while(*iter1 != '\0')
        if (*iter1++ == '\\') // unter linux müsste hier '/' sein 
            iter2 = iter1;

    cout &lt;&lt; boolalpha &lt;&lt; (s1 == iter2) &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>ich find die lösung erwähnenswert, weil man so schön mit dem opterator == vergleichen kann, unabhängig davon, ob das eine nun ein char* ist oder nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325602</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sat, 14 Jul 2007 23:58:28 GMT</pubDate></item></channel></rss>