Deutsch
Forum

Hauptfenster allways on top

 
- Seite 1 -



maxpayne2001
Hallo.

Ich habe eine Frage, wahrscheinlich lässt sich diese ganz leicht beantworten, aber ich komm nicht drauf.

Ich bin dabei ein Programm zu schreiben, welches ein zweites Login für Windows darstellen soll.

Nun würde ich gerne wissen, wie ich das Hauptfenster (%HWND) als Allways on Top erstellen kann.

Für euere Hilfe Danke ich euch jetzt schon.

LG

Hier gebe ich mal den Quellcode:
KompilierenMarkierenSeparieren
 $P+
SET("ERRORLEVEL",0)
SET("TRUECOLOR",0)
 $I C:\XPROFAN11\LIB\PROFALT.INC
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
DECLARE ENDE%,FirmenLogo&,Bild&,chbText%
DECLARE DLG&,edbUser&,edbPW&,chbUser&
DECLARE btnLogin&,btnLogout&

PROC Fenster

    WINDOWSTYLE 112
    WINDOWTITLE "Windows SecondLogin"
    WINDOW 0000,0000-%MaxX,%MaxY
    'CLS GETSYSCOLOR(15)
    CLS @RGB(0,0,21)
    USEFONT "MS Sans Serif",13,0,0,0,0
    SETDIALOGFONT 1
    DLG&=CREATE("DIALOG",%HWND,"Second Login",(%maxx/2 - 400/2),(%maxy/2 - 105/2),400,105)
    SETSTYLE DLG&,GETSTYLE(DLG&)- $80000
    SETFOCUS(%HWND)
    SETFOCUS(DLG&)
    @CREATE("TEXT",DLG&,"&Benutzername:",5,5,100,20)

    If chbText% = 0

        edbUser& = @CREATE("EDIT",DLG&,"",90,5,150,20)

    ElseIf chbText% = 1

        chbUser& = @CREATE("CHOICEBOX",DLG&,"",90,5,150,75)

    EndIf

    @CREATE("TEXT",DLG&,"&Passwort:",5,30,100,20)
    edbPW& = @CREATE("EDIT",DLG&,"",90,30,150,-20)
    btnLogin& = @CREATE("BUTTON",DLG&,"&Login",5,55,235,20)
    btnLogout& = @CREATE("BUTTON",DLG&,"L&ogout",245,5,145,20)
    'FirmenLogo& = @CREATE("HPic", -1, "FLogo.jpg")
    'DrawSizedPic FirmenLogo&, 0, 0 - %MaxX, %MaxY; 0
    'StartPaint DLG&
    'Bild& = @CREATE("HPic", -1, "FLogo2.jpg")
    'DrawSizedPic Bild&, 245,30 - 145, 45; 0
    'EndPaint

ENDPROC

PROC MainMenu

    EnableWindow %Hwnd,0

    WHILENOT ENDE%

        WAITINPUT

        If %KEY=2

            ENDE%= 1

        ELSEIF @CLICKED(btnLogin&)

        ELSEIF @CLICKED(btnLogout&)

            ENDE%=1

        ENDIF

    ENDWHILE

ENDPROC

chbText%=0
Fenster
MainMenu
 
24.10.2010  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »

- Seite 1 -


Einfach:
KompilierenMarkierenSeparieren
SetWindowPos %hWnd=x,y - xx,yy;-1'<-- letzter Parameter -1 !
 
24.10.2010  
 




E.T.
WindowStyle beachten !!
Dein Fenster kann mit Alt+Tab verlassen werden !!

(siehe Hilfe: WindowStyle:
...
128 - Das Programm kann weder mit <Strg-Esc>, <Alt-Tab> noch <Alt-F4> verlassen werden
...)
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
24.10.2010  
 




maxpayne2001
iF (24.10.10)
Einfach:
KompilierenMarkierenSeparieren
SetWindowPos %hWnd=x,y - xx,yy;-1'<-- letzter Parameter -1 !


Wenn ich den Befehl WindowStyle 128 verwende, wird die Titelleiste angezeigt. das Programm soll keine Titelleiste haben. Weiterhin taucht beim drücken von <ALT+TAB> die Taskleiste auf. Gibt es die Möglichkeit dies zu verhindern?
 
25.10.2010  
 



Unbenannt (25.10.10)

Wenn ich den Befehl WindowStyle 128 verwende, wird die Titelleiste angezeigt. das Programm soll keine Titelleiste haben.


Einfach gewünschte Stile (der Hilfedatei zu entnehmen) addieren.

Unbenannt (25.10.10)
Weiterhin taucht beim drücken von <ALT+TAB> die Taskleiste auf. Gibt es die Möglichkeit dies zu verhindern?


Grundsätzlich nein aber im Detail hängts von ab was das genau werden soll...
 
25.10.2010  
 




E.T.
Nur so nebenbei entstanden:
KompilierenMarkierenSeparieren
SET("ERRORLEVEL",0)
SET("TRUECOLOR",0)
 $I C:\XPROFAN11\LIB\PROFALT.INC
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
DECLARE ENDE%,FirmenLogo&,Bild&,chbText%
DECLARE DLG&,edbUser&,edbPW&,chbUser&
DECLARE btnLogin&,btnLogout&

PROC Fenster

    WINDOWSTYLE 16+64+128
    WINDOWTITLE "Windows SecondLogin"
    WINDOW %MaxX,%MaxY
    CLS @RGB(0,0,255)
    USEFONT "MS Sans Serif",13,0,0,0,0
    DLG& = @Control("Dialog","",$54000000,(%maxX/2 - 200),(%maxY/2 - 50),400,110,%HWnd,1,%HInstance)
    @CREATE("GroupBox",DLG&,"Second Login",5,5,390,100)
    SETDIALOGFONT 1
    @Create("Text",DLG&,"Benutzername :",10,30,80,15)
    @CREATE("TEXT",DLG&,"Passwort :",10,60,100,20)
    edbPW& = @CREATE("EDIT",DLG&,"",90,55,150,-20)
    btnLogin& = @CREATE("BUTTON",DLG&,"&Login",10,80,230,20)
    btnLogout& = @CREATE("BUTTON",DLG&,"L&ogout",245,25,145,20)

    If chbText% = 0

        edbUser& = @CREATE("EDIT",DLG&,"",90,25,150,20)

    ElseIf chbText% = 1

        chbUser& = @CREATE("CHOICEBOX",DLG&,"",90,25,150,75)

    EndIf

    'FirmenLogo& = @CREATE("HPic", -1, "FLogo.jpg")
    'DrawSizedPic FirmenLogo&, 0, 0 - %MaxX, %MaxY; 0
    'StartPaint DLG&
    'Bild& = @CREATE("HPic", -1, "FLogo2.jpg")
    'DrawSizedPic Bild&, 245,30 - 145, 45; 0
    'EndPaint

ENDPROC

PROC MainMenu

    'EnableWindow %Hwnd,0'???

    WHILENOT ENDE%

        WAITINPUT

        If %KEY=2

            ENDE%= 1

        ELSEIF @CLICKED(btnLogin&)

        ELSEIF @CLICKED(btnLogout&)

            ENDE%=1

        ENDIF

    ENDWHILE

ENDPROC

chbText%=0
Fenster
MainMenu
end

Nebenbei bemerkt: Irgendwie greift der WindowStyle 128 nicht. (XP 12ß-R1) Mal schauen, warum...
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
26.10.2010  
 




E.T.
Aahhh,
mit
KompilierenMarkierenSeparieren
...
WINDOW %MaxX,%MaxY
SetWindowPos %HWnd = 0,0 - %MaxX,%MaxY;-1
...

wirds TOP-MOST, reagiert aber immer noch auf Alt+Tab...

... aber ist schon erstmal wenigstens so penetrant, nicht wech zu gehen
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
26.10.2010  
 




maxpayne2001
Hallo.

Ihr habt mich gefragt, wofür dieses Programm gut sein sollte.

Ersteinmal Danke ich euch für euere Hilfe.

Problem wo durch dieses Programm entstehen muss:
Im Internet hat ein Freund von mir einen Root-Server, der von einem Provider gestellt wird. In den letzten zwei Monaten hatten wir auf den Server mehrere Eindringlinge gehabt. Der Root-Server steht mit dem BBS Microsoft Windows Server 2008 RC2 x64 zur Verfügung.

Wir haben den Server jetzt mittlerweile 5mal neu installieren müssen.
Irgendwie haben wir aber keine Lust mehr darauf immer jedes mal der Server neu zu installeren. Achja eine Firewall war auch installiert. Jedoch hat der Hacker die Remotkennwörter jedesmal überschrieben.

Wir loggen uns immer auf dem Server mit dem Remotedesktop von Microsoft Windows ein. Ich habe zwar schon etwas anderes vorgeschlagen, aber mein Freund meinte, dass er nur den Remotedesktop verwenden will, da die anderen Möglichkeiten nicht funktioniert haben.

Ich dachte mir dann, naja, Remotedesktop alles wunderbar, die Kennwörter können überschreiben werden, aber ich will das so einrichten, wenn sich jemand einloggt, dass automatisch dieses Programm gestartet wird und nach dem Benutzer und nach dem Kennwort fragt, dass nicht das gleiche sein wird, wie es der Benutzer bei der Remoteanmeldung ist.

Gibt der Nutzer das Passwort dreimal falsch ein oder die Zeit zum eingeben verstreicht, wird der Remotedesktop beendet, da der Nutzer sofort ausgeloggt wird.

So jetzt wisst dir, warum ich dieses Programm hier schreibe.

Hier noch ein paar Fragen:

1. Ist es möglich den aktuellen eingeloggten Benutzer ausfindig zu machen?
2. Kann ich die IP-Adresse des aktuellen eingeloggten Benutzers ermitteln?
3. Wäre es möglich, die Passwort-Dateien von Windows wieder zurück zu schreiben zu lassen, wenn der Nutzer das Passwort mehrmals falsch eingegeben hat und wenn ich vorher eine Kopie durch dieses Programm erstellt habe?

Ich bin schon sehr gespannt auf euere Antworten.

LG
 
27.10.2010  
 



Hi,

das klingt eher danach ein Atomkraftwerk mit einer Schnur reparieren zu wollen.

(nicht das das nicht möglich wäre, aber...)

Schau mal vlt.: [...] 
 
27.10.2010  
 




ByteAttack
iF (27.10.10)
Hi,

das klingt eher danach ein Atomkraftwerk mit einer Schnur reparieren zu wollen.

(nicht das das nicht möglich wäre, aber...)



Du hast wohl nie MacGyver gesehen? Der kann das !!!
 
Website:  [...] 
Facebook:  [...] 
27.10.2010  
 




E.T.


iF (27.10.10)
Hi,

das klingt eher danach ein Atomkraftwerk mit einer Schnur reparieren zu wollen.

(nicht das das nicht möglich wäre, aber...)

Du hast wohl nie MacGyver gesehen? Der kann das !!!


Aber nur mit 'ner Schnur auch nicht !!
Ein Kaugummi muss immer mit dabei sein...
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
27.10.2010  
 



Und eine zerbrochene Brille!
 
27.10.2010  
 



 
- Seite 2 -



maxpayne2001
Hallo!

Ich kann verstehen, dass es für euch merkwüdig klingen muss.

Ja, ich kenne McGyver und ich finde ihn total cool. Er ist sehr creativ dies habe ich mir soweit es geht zu eigen gemacht.

Ich erkläre euch das Prinzip

Also bei einem Normalen PC mit Windows 2000/XP/Vista/7, kann ein Anmeldescript hinzugefügt werden. Das heißt, dass nach der eigentlichen Anmeldung das Script ausgeführt wird.

So nun ist das Problem, dass mein Programm sehr leicht beendet werden kann. Aber hier für spielt die Zeit eine große Rolle.

Wenn das Programm beendet wird, wird der PC entweder sofort heruntergefahren oder der Nutzer ausgeloggt. Wird bei der Eingabe ebenfalls zu lange gewartet, passiert das gleiche.
Also, wird das Programm nur bei der richtigen Eingabe sich beenden und den angemeldeten Nutzer durchlassen.

Achja ich habe eine kleines Hilfsmittel geschrieben, wo der aktuelle angemeldete Nutzer ermittelt werden kann. Ich stelle hier mal den Quellcode rein:

$P+
$I C:\XPROFAN11\LIB\PROFALT.INC
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
'Ermittelt den aktuellen angemeldeten Benutzer
DECLARE ZeichenPosition%,ZeichenLaenge%,Benutzer$,BenutzerLangform$,BenutzerLaenge%,Ende%
WINDOWSTYLE 16
WINDOWTITLE "AKTUELLER BENUTZER ERMITTELN"
WINDOW (%maxx/2 - 900/2),(%maxy/2 - 200/2) - 900,200
CLS GETSYSCOLOR(15)

ZeichenPosition% = @InStr("\",$AppDataDir,4)
ZeichenPosition% = ZeichenPosition% + 1
ZeichenLaenge% = @LEN($AppDataDir)
ZeichenLaenge% = ZeichenLaenge% - ZeichenPosition%
BenutzerLangform$ = @Mid$($AppDataDir,ZeichenPosition%,ZeichenLaenge%)

PRINT "BENUTZERDATENVERZEICHNIS ZEICHENLÄNGE : "
PRINT "BENUTZERDATENVERZEICHNIS : "
PRINT "TRENNZEICHENPOSITION : "
PRINT "VERKÜRZTES BENUTZERDATENVERZEICHNIS : "

LOCATE 1,51
PRINT @STR$(@LEN($AppDataDir))
LOCATE 2,51
PRINT $AppDataDir
LOCATE 3,51
PRINT @STR$(ZeichenPosition%)
LOCATE 4,51
PRINT BenutzerLangform$
PRINT ""

ZeichenPosition% = @InStr("\",BenutzerLangform$)
ZeichenPosition% = ZeichenPosition% - 1
BenutzerLaenge% = @LEN(Benutzer$)
BenutzerLaenge% = BenutzerLaenge% - ZeichenPosition%
Benutzer$ = @Left$(BenutzerLangform$,ZeichenPosition%,BenutzerLaenge%)

PRINT ""
PRINT "VERKÜRZTES BENUTZERDATENVERZEICHNIS ZEICHENLÄNGE: "
PRINT "VERKÜRZTES BENUTZERDATENVERZEICHNIS : "
PRINT "TRENNZEICHENPOSITION : "
PRINT "DER ANGEMELDETE BENUTZER : "

LOCATE 7,51
PRINT @STR$(@LEN(BenutzerLangform$))
LOCATE 8,51
PRINT BenutzerLangform$
LOCATE 9,51
PRINT @STR$(ZeichenPosition%)
LOCATE 10,51
PRINT Benutzer$

WhileNot Ende%
WaitInput

If @IsKey(113)
Ende%=1
EndIf
EndWhile

Code ende:

Die hauptschwierigkeit liegt jetzt aber im dem Bereich der Remoteanmeldung, denn dort weiß ich nicht wie ich ein Anmeldescript nachträglich ausführen lassen kann seitens des Servers. Ich weiß aber dass es geht, aber nicht wie.
Es handelt sich um einen RootServer mit dem BBS: Microsoft Windows 2008 RC2 x64.

Vielleicht wisst ihr ja wie das funktionieren kann mit dem Anmeldtescript bei der Remotedesktopanmeldung.

Ich bin gespannt auf euere Antwort.

LG
 
29.10.2010  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

11.950 Betrachtungen

Unbenanntvor 0 min.
Paul Glatz11.01.2015
E.T.06.11.2014
trusel01.09.2013
GDL11.02.2011
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie