<?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[Pfad einer .exe ermitteln]]></title><description><![CDATA[<p>Hallo,<br />
wie kann mn in der Winapi den pfad einer exe ermitteln?<br />
z.b. ich gebe name.exe ein und das programm gibt mir den pfad aus<br />
wo sich diese exe (dll wäre auch gut) befindet<br />
danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197432/pfad-einer-exe-ermitteln</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 22:33:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197432.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 10 Nov 2007 14:09:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pfad einer .exe ermitteln on Sat, 10 Nov 2007 14:09:43 GMT]]></title><description><![CDATA[<p>Hallo,<br />
wie kann mn in der Winapi den pfad einer exe ermitteln?<br />
z.b. ich gebe name.exe ein und das programm gibt mir den pfad aus<br />
wo sich diese exe (dll wäre auch gut) befindet<br />
danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400903</guid><dc:creator><![CDATA[HeilerLaus]]></dc:creator><pubDate>Sat, 10 Nov 2007 14:09:43 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad einer .exe ermitteln on Sat, 10 Nov 2007 14:53:11 GMT]]></title><description><![CDATA[<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39396.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39396.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400939</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sat, 10 Nov 2007 14:53:11 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad einer .exe ermitteln on Sat, 10 Nov 2007 15:24:11 GMT]]></title><description><![CDATA[<p>hallo,<br />
vielen dank für deine Hilfe<br />
leider verstehe ich das noch nicht so ganz<br />
das programm soll nur anhand des dateinamens<br />
den pfad ausgeben können wo sich die datei befindet<br />
wäre auch gut wenn es ne möglichkeit gibt<br />
das es nicht unbedingt C:\ ist weil ich kenne viele<br />
die haben z.b. I:\<br />
also hauptverzeichnis aber ist nicht unbedingt notwendig<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/1400957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400957</guid><dc:creator><![CDATA[HeilerLaus]]></dc:creator><pubDate>Sat, 10 Nov 2007 15:24:11 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad einer .exe ermitteln on Sat, 10 Nov 2007 15:53:14 GMT]]></title><description><![CDATA[<p>FindFirstFile() / FindNextFile() macht nix anderes als einen bestimmten Pfad nach etwas zu durchsuchen. Allerdings wird nur im Verzeichnis selbst und nicht auch in den Unterverzeichnissen gesucht, dazu muss man dasselbe wieder auf die Unterverzeichnisse anwenden.</p>
<p>Welche Laufwerke es so alle gibt kann man via GetLogicalDrives() oder GetLogicalDriveStrings() rausfinden. Den Typ kann man über GetDriveType() rausfinden.</p>
<p>C#-Variante mit .NET-Framework:</p>
<pre><code class="language-csharp">DriveInfo[] myDrives = DriveInfo.GetDrives();
List&lt;string&gt; AlleErgebnisse=new List&lt;string&gt;();

for (int i=0; i&lt;myDrives.Length; i++)
{
   string[] Ergebnis=Directory.GetFiles(myDrives[i].RootDirectory,&quot;SucheDieseExe.exe&quot;,SearchOption.AllDirectories);
   AlleErgebnisse.AddRange(Ergebnis);
}

Debug.WriteLine(&quot;Die Ergebnisse:&quot;);
for (int i=0; i&lt;AlleErgebnisse.Count; i++)
{
  Debug.WriteLine(AlleErgebnisse[i]);
}
</code></pre>
<p>mit WinAPI ist das Vorgehen quasi identisch, bloss dass es kein fertiges Directory.GetFiles() gibt, und man sich sowas über FindFirstFile()/FindNextFile() selber bauen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400977</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sat, 10 Nov 2007 15:53:14 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad einer .exe ermitteln on Sat, 10 Nov 2007 15:55:25 GMT]]></title><description><![CDATA[<p>Vielleicht will er ja auch von einem laufenden Prozess den Pfad wissen? Wenn du allgemein eine *.exe Datei auf der Festplatte suchst dann kann diese ja mehrmals vorkommen?</p>
<p>schirrmie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1400981</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1400981</guid><dc:creator><![CDATA[schirrmie]]></dc:creator><pubDate>Sat, 10 Nov 2007 15:55:25 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad einer .exe ermitteln on Sat, 10 Nov 2007 16:32:48 GMT]]></title><description><![CDATA[<p>hi,<br />
ich wollte es jetzt so machen:<br />
das programm soll im I:\\ verzeichniss die datei libDLL.a finden und dann eine meldung ausgeben leider gibt das programm keine meldung aus und schließt<br />
sich sofort:(die datei ist vorhanden)</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;

int main(){
HANDLE fHandle; 
WIN32_FIND_DATA wfd; 

fHandle=FindFirstFile(&quot;I:\\*&quot;,&amp;wfd); 

do 
{
    if (!( (wfd.cFileName[0]=='.') &amp;&amp; ( (wfd.cFileName[1]=='.' &amp;&amp; wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) )) 
    { 
        if (wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) 
        { 
            //MessageBox(0,wfd.cFileName,&quot;Folgendes Verzeichnis wurde gefunden:&quot;,0); 
            // Datei ist keine, sondern ein Verzeichnis... 
            // Hier könnte man dasselbe nochmal machen, um auch die 
            // Unterverzeichnisse zu scannen ;-) 
        } 
        else if (wfd.cFileName==&quot;libDLL.a&quot;)
        { 
            MessageBox(0,wfd.cFileName,&quot;libDLL.a gefunden!&quot;,0); 
        } 
    } 
} 
while (FindNextFile(fHandle,&amp;wfd)); 
FindClose(fHandle);
}
</code></pre>
<p>und wie kann ich denn jetzt die anderen ordner auch noch alle durchsuchen<br />
einfach bei</p>
<pre><code class="language-cpp">if (wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) 
        {
</code></pre>
<p>das gesamte programm genauso nochmal reinkopieren?</p>
<p>sorry kenn mich da echt nicht so gut aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
vielen danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401011</guid><dc:creator><![CDATA[HeilerLaus]]></dc:creator><pubDate>Sat, 10 Nov 2007 16:32:48 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad einer .exe ermitteln on Sat, 10 Nov 2007 17:05:22 GMT]]></title><description><![CDATA[<p>Mache eine rekursive funktion, die als Parameter den Pfad erwartet, den sie durchsuchen soll. Findet die Funktion einen Ordner, ruft sie sich selbst mit diesem neuen Ordner auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401040</guid><dc:creator><![CDATA[Black Shadow]]></dc:creator><pubDate>Sat, 10 Nov 2007 17:05:22 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad einer .exe ermitteln on Sat, 10 Nov 2007 17:46:28 GMT]]></title><description><![CDATA[<p>warum gibt mein programm nicht die messagebox aus<br />
MessageBox(0,wfd.cFileName,&quot;libDLL.a gefunden!&quot;,0);<br />
die libdll is doch in dem verzeichnis</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401058</guid><dc:creator><![CDATA[HeilerLaus]]></dc:creator><pubDate>Sat, 10 Nov 2007 17:46:28 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad einer .exe ermitteln on Sat, 10 Nov 2007 18:07:08 GMT]]></title><description><![CDATA[<p>HeilerLaus schrieb:</p>
<blockquote>
<p>warum gibt mein programm nicht die messagebox aus<br />
MessageBox(0,wfd.cFileName,&quot;libDLL.a gefunden!&quot;,0);<br />
die libdll is doch in dem verzeichnis</p>
</blockquote>
<p>Du kannst mit == nicht 2 Strings vergleichen.<br />
Verwende Funktionen wie lstrcmp oder lstrcmpi (wenn du nicht zwischen groß und kleinschreibweise unterscheiden iwllst).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401071</guid><dc:creator><![CDATA[Black Shadow]]></dc:creator><pubDate>Sat, 10 Nov 2007 18:07:08 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad einer .exe ermitteln on Sat, 10 Nov 2007 18:45:12 GMT]]></title><description><![CDATA[<p>ok danke das funktioniert jetzt<br />
leider schaffe ich es immernoch nicht das das programm in untergeordneten ordner sucht <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>
<p>meinst du das könnte so in der art klappen?</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt; 
#include &lt;string&gt;
#include &lt;iostream&gt;

using namespace std;

int main(){ 
HANDLE fHandle; 
WIN32_FIND_DATA wfd; 

fHandle=FindFirstFile(&quot;I:\\*&quot;,&amp;wfd); 

int getfile();
do 
{ 
    if (!( (wfd.cFileName[0]=='.') &amp;&amp; ( (wfd.cFileName[1]=='.' &amp;&amp; wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) )) 
    { 
        if (wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY) 
        { 
            string pfad = &quot;I:\\&quot; + wfd.cFileName + &quot;\\&quot;;
            getfile(pfad);
            //MessageBox(0,wfd.cFileName,&quot;Folgendes Verzeichnis wurde gefunden:&quot;,0); 
            // Datei ist keine, sondern ein Verzeichnis... 
            // Hier könnte man dasselbe nochmal machen, um auch die 
            // Unterverzeichnisse zu scannen ;-) 
        } 
        else if ( lstrcmp(wfd.cFileName,&quot;Neuz.exe&quot;)==0) 
        { 
            MessageBox(0,wfd.cFileName,&quot;Neuz.exe gefunden!&quot;,0); 
        } 
    } 
} 
while (FindNextFile(fHandle,&amp;wfd)); 
FindClose(fHandle); 
} 

int getfile(string ordnerpfad){

    fHandle=FindFirstFile(pfad,&amp;wfd); 

}
</code></pre>
<p>hab versucht eine Funktion zu bauen die den pfad erhält von dem order und ihn dann durchsucht und dann den pfad der nächsten ordner wieder zurückgibt oder so<br />
aber das kann ich leider nicht kompilieren weil fhandle und so undecleared ist <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="😞"
    /><br />
vielen dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401086</guid><dc:creator><![CDATA[HeilerLaus]]></dc:creator><pubDate>Sat, 10 Nov 2007 18:45:12 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad einer .exe ermitteln on Mon, 12 Nov 2007 10:54:40 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe einen fehler gefunden...</p>
<p>string pfad = &quot;I:\&quot; + wfd.cFileName + &quot;\&quot;;</p>
<p>das funktioniert nicht,<br />
abhilfe:</p>
<p>stringstream sa;<br />
sa&lt;&lt;wfd.cFileName;<br />
string dat;<br />
sa&gt;&gt;dat;<br />
string pfad = &quot;I:\&quot; + dat + &quot;\&quot;;</p>
<p>funktioniert aber leider nur wenn deine Datei keine leerzeichen enthält....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401777</guid><dc:creator><![CDATA[Manu456545]]></dc:creator><pubDate>Mon, 12 Nov 2007 10:54:40 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad einer .exe ermitteln on Mon, 12 Nov 2007 11:29:05 GMT]]></title><description><![CDATA[<p>Manu456545 schrieb:</p>
<blockquote>
<p>string pfad = &quot;I:\&quot; + wfd.cFileName + &quot;\&quot;;</p>
<p>das funktioniert nicht,</p>
</blockquote>
<p>Ja, das hat ein Problem, weil dort nur char-Arrays/-Zeiger beteiligt sind und deshalb Zeigerarithmetik verwendet wird. Um eine &quot;ordentliche&quot; String-Verkettung reinzubekommen, mußt du einen std::string in die Rechnung einbauen:</p>
<pre><code class="language-cpp">string pfad = string(&quot;I:\\&quot;)+wfd.cFileName+&quot;\\&quot;;
</code></pre>
<blockquote>
<p>abhilfe:</p>
<p>stringstream sa;<br />
sa&lt;&lt;wfd.cFileName;<br />
string dat;<br />
sa&gt;&gt;dat;<br />
string pfad = &quot;I:\&quot; + dat + &quot;\&quot;;</p>
<p>funktioniert aber leider nur wenn deine Datei keine leerzeichen enthält....</p>
</blockquote>
<p>Warum einfach, wenn's auch kompliziert geht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1401790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401790</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 12 Nov 2007 11:29:05 GMT</pubDate></item><item><title><![CDATA[Reply to Pfad einer .exe ermitteln on Mon, 12 Nov 2007 13:41:51 GMT]]></title><description><![CDATA[<p>Falls es dich noch interessiert ich hab mir mal solch eine Funktion zum archivieren von musik datein geschrieben. Hier:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;
#include &lt;conio.h&gt;
#include &lt;sstream&gt;

using namespace std;

void Find(string pfad,string Endung,string Search,string Replace, bool Global)
{
    HANDLE fHandle;
    WIN32_FIND_DATA wfd;

    int L=(pfad+Endung).length();
    char sPfad[L];
    strcpy( sPfad, (pfad+Endung).c_str());
    char newname[100],alt[100],neu[100];

    fHandle=FindFirstFile( sPfad, &amp;wfd);

    do
    {
       if (!( (wfd.cFileName[0]=='.') &amp;&amp; ( (wfd.cFileName[1]=='.' &amp;&amp; wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) ))
       {
           if (wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY &amp;&amp; Global== true)
           {
               Find((pfad+wfd.cFileName+&quot;\\&quot;),Endung,Search,Replace,true);
           }
           string File=wfd.cFileName;
           if( File.find(&quot;.mp3&quot;)!=-1)
           {
                string StringNeu = wfd.cFileName;
                int wSrch = StringNeu.find(Search);
                int lSrch = Search.length();
                StringNeu.replace(wSrch,lSrch,Replace);
                MoveFile(strcpy( alt, (pfad+wfd.cFileName).c_str()),
                         strcpy( neu, (pfad+StringNeu).c_str()));
           }
        }
     }
     while (FindNextFile(fHandle,&amp;wfd));
     FindClose(fHandle);
}

int main()
{
  Find(&quot;J:\\Musik\\Rammstein&quot;,&quot;*.*&quot;,&quot;Rammstein - &quot;,&quot;&quot;,true);
  cout &lt;&lt; &quot;Fertig&quot;;
  getch();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1401853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1401853</guid><dc:creator><![CDATA[wert]]></dc:creator><pubDate>Mon, 12 Nov 2007 13:41:51 GMT</pubDate></item></channel></rss>