Approx
Level-1
- Beiträge
- 1.180
- Reaktionspunkte
- 427
-> Hier kostenlos registrieren
Hallo Leute,
ich bastel gerade an einem Script für SilentLogin herum. Da ich nicht so viel mit Hochsprachen zu tun habe, will ich einfach ein Script von einer bestehenden Anlage nutzen und umschreiben.
Folgender Code funktioniert
Code:
Die Rechnernamen und die User mit den zugeh. Passwörtern habe ich angepasst. Ich habe auch herausgefunden, dass er die Variable "pcnummer" nicht zuweist. Wenn beim Deklarieren nicht "pcnummer = 0" sondern "pcnummer = 1" zugewiesen wird, dann ist der User 1 angemeldet.
Meine Fragen lauten:
1. was bedeutet printf? Falls es um Meldungserzeugung geht - wo kann ich die betreffende Meldezeile lesen?
2. Die Rechnernamen der neuen Anlage sind etwas länger als bei der funktionierenden Anlage, ist die Variable "pcname" vom Typ char korrekt? Bei der S7 belegt ein char ja nur ein byte...
3. was bedeutet der Befehl "if (strcmp("? Stringvergleich?
4. Last but not least: Kann jemand mit dem Finger drauf zeigen, warum es nicht funzt??
vielen Dank und Greez
Approx
ich bastel gerade an einem Script für SilentLogin herum. Da ich nicht so viel mit Hochsprachen zu tun habe, will ich einfach ein Script von einer bestehenden Anlage nutzen und umschreiben.
Folgender Code funktioniert
Code:
PHP:
#pragma code ("UseAdmin.DLL") // Aufruf der benötigten DLL
#include "pwrt_api.h" // Aufruf der Header-Datei
#pragma code ()
void SetInitUser()
{
#define LOCALMASCHINE "@LocalMachineName"
char* pcname;
int pcnummer;
DWORD ebene;
struct // Aufbau der Struktur bestehend aus User und Passwort
{
char* user;
char* password;
}
LoginList[] = // Struktur-Liste
{
{"",""}, // Passwort für den Wert 0
{"User1","Passwort1"}, // Passwort für den Wert 1
{"User2","Passwort2"}, // Passwort für den Wert 2
{"User3","Passwort3"}, // Passwort für den Wert 3
{"User4","Passwort4"} // Passwort für den Wert 4
};
printf("Rechnernamenabhängiges EInloggen Start");
pcname = GetTagChar(LOCALMASCHINE);
pcnummer = 0;
if (strcmp(pcname,"CLIENT1")==0) pcnummer = 1;
if (strcmp(pcname,"CLIENT2")==0) pcnummer = 2;
if (strcmp(pcname,"CLIENT3")==0) pcnummer = 3;
if (strcmp(pcname,"CLIENT4")==0) pcnummer = 4;
if (strcmp(pcname,"CLIENT5")==0) pcnummer = 5;
if (strcmp(pcname,"CLIENT6")==0) pcnummer = 6;
if (strcmp(pcname,"CLIENT7")==0) pcnummer = 7;
if (strcmp(pcname,"CLIENT8")==0) pcnummer = 8;
if (strcmp(pcname,"CLIENT9")==0) pcnummer = 9;
if (strcmp(pcname,"SERVER1")==0) pcnummer = 10;
if (strcmp(pcname,"SERVER2")==0) pcnummer = 11;
printf("PC Nummer %d",pcnummer);
if (!(pcnummer==0))
{
switch( pcnummer ) {
case 1: ebene = 1; break;
case 2: ebene = 1; break;
case 3: ebene = 1; break;
case 4: ebene = 1; break;
case 5: ebene = 0; break;
case 6: ebene = 2; break;
case 7: ebene = 2; break;
case 8: ebene = 2; break;
case 9: ebene = 4; break;
case 10: ebene = 2; break;
case 11: ebene = 2; break;
default : ebene = 0;
}
printf("Ebene %d",ebene);
if ( ebene >= 1 && ebene <= 4 ) // if-Anweisung, bei Wert 1-4 wird das Passwort übergeben
{
printf("Automatische Anmeldung User%s",LoginList[ebene].user);
PWRTSilentLogin(
LoginList[ebene].user, // Je nach Wert wird aus LoginList User und Passwort übergeben
LoginList[ebene].password);}
else
{
PWRTLogout(); // Bei Wert 0 oder >=4 wird das letzte Passwort gesperrt
}
}
}
Meine Fragen lauten:
1. was bedeutet printf? Falls es um Meldungserzeugung geht - wo kann ich die betreffende Meldezeile lesen?
2. Die Rechnernamen der neuen Anlage sind etwas länger als bei der funktionierenden Anlage, ist die Variable "pcname" vom Typ char korrekt? Bei der S7 belegt ein char ja nur ein byte...
3. was bedeutet der Befehl "if (strcmp("? Stringvergleich?
4. Last but not least: Kann jemand mit dem Finger drauf zeigen, warum es nicht funzt??
vielen Dank und Greez
Approx