Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » wie kann ich schaun ob ein schluessel da ist

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.08.2005, 13:58 Uhr
Mr Evil



das hab ich bisher


C++:
#include <windows.h>

void main( void )
{
    LPDWORD lpcbData = 0;
    LPDWORD lpType = 0;
    LPBYTE Data = 0;

    HKEY hKey = HKEY_LOCAL_MACHINE;
    LPCTSTR subkey = "\\SOFTWARE\\.NETFramework";
    //LPCTSTR subkey = "SOFTWARE\\abba";
        
    int wert = 0;
    wert = RegQueryValueEx(hKey, subkey, NULL, lpType, Data, lpcbData );
    
    if( wert )
    {
        WinExec( "Files\\inst.exe", SW_SHOW );
    }
    else
    {
        WinExec( "C:\\WINDOWS\\NOTEPAD.EXE", SW_SHOW );
    }
}


wert ist immer 2 - ich hab auch google - msdn und alles moegliche durchgeschaut
ich will kein wert schreiben, keinen lesen, nur schauen ob er vorhanden ist /=
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
14.08.2005, 14:11 Uhr
Pablo
Supertux
(Operator)


was hat das mit ANSI C/C++ zu tun?

--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
14.08.2005, 19:17 Uhr
Skippy



erstmal ist wohl der pfad falsch den du angegeben hast

LPCTSTR subkey = "SOFTWARE\\Microsoft\\.NETFramework";



dazu einen passenden link

www.tutorials.de/tutorials190154.html
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.08.2005, 20:50 Uhr
Mr Evil




Zitat von Pablo:
was hat das mit ANSI C/C++ zu tun?


sorry - wusste nicht wos hin gehoert


Zitat von Skippy:
erstmal ist wohl der pfad falsch den du angegeben hast

LPCTSTR subkey = "SOFTWARE\\Microsoft\\.NETFramework";



dazu einen passenden link

[url]http://www.tutorials.de/tutorials190154.html
[/url]

das mit den link - stimmt - hab mich verguggt 'gggg'

und den link kenn ich schon - weiss das es darum ging - hab alles durchgefummelt bekomm das trotsdem nicht hin - habs schon so aufgebaut wie in den link beschrieben

dazuedit: habs hinbekommen - der fehler war das ich RegQueryValueEx genommen hatte anstatt RegOpenKeyEx
so laeufts


C++:
#include <windows.h>

void main( void )
{
    LPDWORD lpcbData = 0;
    LPDWORD lpType = 0;
    LPBYTE Data = 0;
    HKEY bufkey;
    int fehlercode = 0;

    HKEY hKey = HKEY_LOCAL_MACHINE;
    LPCTSTR subkey = "SOFTWARE\\Microsoft\\.NETFramework";
            
    
    fehlercode = RegOpenKeyEx(hKey, subkey, NULL, KEY_READ, &bufkey);
        
    if( fehlercode == 0 )    // wenn kein fehler beim oeffnen
    {
        WinExec( "Files\\inst.exe", SW_SHOW );
    }
    else
    {
        WinExec( "C:\\WINDOWS\\NOTEPAD.EXE", SW_SHOW );
    }
}

Dieser Post wurde am 14.08.2005 um 21:08 Uhr von Mr Evil editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.08.2005, 09:41 Uhr
Airdamn



benutze lieber ShellExecute oder CreateProcess
Dieser Post wurde am 15.08.2005 um 09:43 Uhr von Airdamn editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.08.2005, 15:27 Uhr
Mr Evil



warum ?

CreateProcess hatte ich schonmal probiert, aber bei den 10 werten die ich mit einstellen muss hab ich immer irgendwas falsch gehabt

und ShellExecute ist auch nicht viel besser, da sinds auch noch 5 parameter

warum sollte ich WinExec nicht verwenden ???

ob ich nu:
WinExec( "Files\\inst.exe", SW_SHOW );
mach, oder
ShellExecute( NULL, "open", "Files\\inst.exe", NULL, NULL, SW_SHOWNORMAL );
kommt doch am ende aufs selbe ?!?

Dieser Post wurde am 15.08.2005 um 15:32 Uhr von Mr Evil editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
15.08.2005, 15:29 Uhr
Airdamn



Weil die MSDN sagt, dass es für 16-Bit Programme gedacht ist:

Zitat von MSDN:

Note This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
15.08.2005, 15:33 Uhr
Mr Evil



also ich kann keine aenderung feststellen - das "inst.exe" ist ja schon fertig in .net mit cpp geschrieben !?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
15.08.2005, 15:42 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


natürlich intern sieht man keine änderung, nur wenn du pech hast gibts WinExec in nem jahr z.b nicht mehr -> dein programm läuft nicht mehr. Deshalb sollte man lieber ShellExecute bzw CreateProcess benutzen
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
15.08.2005, 15:55 Uhr
Mr Evil



das ist natuerlich ein argument - danke

ShellExecute hab ich allein hinbekommen -

CreateProcess hab ich dank dieses forums noch geschafft {suche}

mein problem waren immer die letzten beiden parameter
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: