Veröffentlicht 15. November 200618 j Hallo, ich möchte im Visual Studio 6 einen Systemdienst (WinVNC4) abfragen ob er gestartet ist oder nicht. Hat das jemand schon mal gemacht??? MFG -> Christian
15. November 200618 j Autor Danke aber ich hab es mit deinem Tipp nicht hinbekommen (bin der Programmierung nicht so mächtig). Hab es über Umwege aber trotzdem geschafft Hab mir erst über das Microsoft Tool "sclist" ne Datei schreiben lassen in der alle Dienste aufgeführt sind und dann die Datei auf den Dienst durchsucht. Ich weiß das ist bestimmt Programmiertechnisch unter aller Sau aber es geht und für mich reicht es. Äh mal noch ne Frage ist es schwer die IP Adresse auszulesen????
15. November 200618 j Mit dem Systemaufruf "ipconfig >c:\test.txt" und dann die Datei auslesen *SCNR*
15. November 200618 j Autor Die Idee hatte ich auch nur ich habs noch verfeinert ipconfig | find "IP-Adresse" > %temp%\\IP.log muss nur noch die Datei auslesen Warum muss Programmierung (für mich) immer so umständlich sein. Kann es nicht etwas geben was mir alle IP Adressen in eine Variable schreibt......
15. November 200618 j :eek Das mit dem Umweg über eine Datei ist nur ein Scherz, oder? Kann es nicht etwas geben was mir alle IP Adressen in eine Variable schreibt...... Eben ging es um Dienste, jetzt um IP-Adressen? Was möchtest Du genau? Die IP-Adressen eines Computers kann man natürlich auflisten.
15. November 200618 j Autor Also erstens steh ich mit der Programmierung auf Kriegsfuß (Bin ja nicht umsonst Systemintegrator geworden). Ich war dann auch mal 6 Wochen bei uns in der Programmierung um den Kriegsfuß loszuwerden nur ist das schon über ein halbes Jahr her. Nun zu meinem Vorhaben: Ab und zu muss ich meinen Eltern (nicht so fit am Rechner) über die Ferne am PC weiterhelfen. Nun ist das immer ein Krampf am Telefon die Schritte durchzugehen Klick da, gib das ein, mach das, lies das vor ... Und da dachte ich mir ein kleines Prog zu schreiben was alles nacheinander macht und ein bissel Text ausgibt was es gerade macht. Und am Ende fett gedruckt die IP Adresse. Naja hab mich dann heute dran gemacht und mich bei den Diensten und der IP Adresse kaputt gegoogelt. Mal abgesehen von Meter langem Quellcode der mir nix sagte. Am Ende war es mir dann egal wie es intern aussieht aber dafür geht es.
15. November 200618 j Fertige Tools zum Auflisten von IP-Adressen gibt es jede Menge. Wenn Du eine Empfehlung benötigst, bitte per PM. Die von Dir gesuchten Informationen werden auch via WMI bereitgestellt. Wenn Dir Programmieren aber gar nicht liegt, wird Dir dies aber auch nicht helfen.
22. November 200618 j Das ganz vieleicht doch einmal ohne den Umweg über die Dateien. Ist ja schließlich möglich und wir wollen ja nicht, dass das noch jemand so mach - oder? Also den Status deines Services bekommst du wie bereits angesprochen über QueryServiceStatus. // Manager öffnen SC_HANDLE mgr = OpenSCManager(NULL, NULL, GENERIC_READ); // Service öffnen // evtl. den Namen anpassen. Der Anzeigename unterscheidet sich in der // regel vom internen Namen. SC_HANDLE svc = OpenService(mgr, "WinVNC4", SERVICE_QUERY_STATUS); SERVICE_STATUS status; if (QueryServiceStatus(svc, &status)) { if (status.dwCurrentState == SERVICE_RUNNING) // Service läuft. } Ist nicht 100%ig getestet, sollte aber laufen. Die IP Adresse bekommst du z.B. über void get_host_name(char* name /*out*/) { #if defined(WIN32) // we need to initialize socket lib before gethostname() WORD wVersionRequested; WSADATA wsaData; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); #endif int error = gethostname(name, BUF_SIZE-1); if (error) { printf("error %d. Exiting\n", error); exit (1); } } void get_host_address(char* name /*in*/, char* addr /*out*/) { struct hostent *hinfo = gethostbyname( name ); if (hinfo != NULL) { unsigned char address[4]; address[0] = hinfo->h_addr_list[0][0]; address[1] = hinfo->h_addr_list[0][1]; address[2] = hinfo->h_addr_list[0][2]; address[3] = hinfo->h_addr_list[0][3]; sprintf( addr , "%u.%u.%u.%u" , address[0] , address[1] , address[2] , address[3] ); } } main() { char host_name[BUF_SIZE]; char dotted_host_address[16]; get_host_name(host_name); get_host_address(host_name, dotted_host_address); }
22. November 200618 j Autor Cool - erstmal danke, werd ich mal in ner ruhigen Minute versuchen. Melde mich.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.