Deutsch
Stammtisch & Café

Rätsel: Ein "Linkes" Programm

 
- Seite 1 -


Konnte es leider unter XP noch nicht testen. Hoffe aber, das es auch da klappt:
Für Windows2000 und XP nutzer => ein Linkes Programm.
Meine Rätselfrage: Wie geht das?

Viel Spaß

Andreas

606 kB
Kurzbeschreibung: Ein "Linkes" Programm
Hochgeladen:01.10.2006
Ladeanzahl100
Herunterladen
 
01.10.2006  
 



 
- Seite 1 -


Sehr gut!

Das ist es schon fast...
 
02.10.2006  
 



 
- Seite 2 -



Jörg
Sellmeyer
Hm, sieht interessant aus aber warum diese Konstruktion??
KompilierenMarkierenSeparieren
gfI_Erg& = Val(Int(Left$(Str$(Long(gfI_stInf#,44)),1)))

Wäre das nicht sinniger?
KompilierenMarkierenSeparieren
gfI_Erg& = byte(gfI_stInf#,44)
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
02.10.2006  
 




KompilierenMarkierenSeparieren
Gfi_erg& = Byte(Gfi_stinf#,44)

...so hab ichs auch gemacht.
Ich will noch den genauen Link wissen, aus dem gestartet wurde...
 
02.10.2006  
 




Jörg
Sellmeyer
Komisch, das habe ich jetzt gerade probiert. Dann kommt aber immer nur 1 als Ergebnis raus.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
02.10.2006  
 



Hubs hab mich versehen => Flagabfrage verwende, d.h. LONG und | .
Jetzt fragt sich noch: Wie lautet der Flag, der da abgefragt werden muß?
 
02.10.2006  
 




Michael
Dell
Ich handele heut scheinbar nach dem Motto warum einfach wenns auch kompliziert geht!

Kenne das Flag leider nicht, geht aber auch anders (Komplizierter!):
KompilierenMarkierenSeparieren
!Def GetStartupInfo(1) !"KERNEL32.DLL","GetStartupInfoA"   lpStartupInfo# als STARTUPINFO
Struct STARTUPINFO = cb&,lpReserved&,lpDesktop&,lpTitle&,dwX&,dwY&,dwXSize&,dwYSize&,dwXCountChars&,dwYCountChars&,dwFillAttribute&,dwFlags&,wShowWindow#(2),cbReserved2#(2),lpReserved2&,hStdInput&,hStdOutput&,hStdError&

Proc gfInfo

    Declare gfI_stInf#,gfI_Erg&,gfI_Erg$
    Dim gfI_stInf#,STARTUPINFO
    Clear gfI_stInf#,gfI_Erg&,gfI_Erg$
    GetStartupInfo(gfI_stInf#)
    Case (gfI_stInf#.lpTitle& > 0): gfI_Erg$ = String$(gfI_stInf#.lpTitle&,0)
    Case (InStr(".LNK",Upper$(gfI_Erg$)) = 0): gfI_Erg$ = Par$(0)
    Dispose gfI_stInf#
    Return gfI_Erg$

EndProc

cls
Print
Print gfInfo()
WaitInput
End

Leider geht das auf Win98.

Nachtrag: etwas vereinfacht!
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
03.10.2006  
 



Ha! Er hats! OK, das lasse ich gelten. Der Flag ließe sich nebenbeigesagt aus deinem ersten Code berechnen.

Hier mein Code dazu:
KompilierenMarkierenSeparieren
Def @GetStartupInfo(1) !"KERNEL32","GetStartupInfoA"
Def @lstrcpy(2) !"KERNEL32","lstrcpyA"
Declare Startup&,Fehler&,STARTUPINFO#,Link#,Antwort$[15],Antwort%

IF @VAL($WINVER)<5

    @Messagebox("Aua! Auf deinem System will ich nicht laufen!","Info",64)
    end

endif

Struct STARTUPINFO=cb&,lpReserved&,lpDesktop&,lpTitle&,dwX&,dwY&,dwXSize&,dwYSize&,dwXCountChars&,dwYCountChars&,dwFillAttribute&,dwFlags&,wShowWindow%,cbReserved2%,lpReserved2&,hStdInput&,hStdOutput&,hStdError&
DIM STARTUPINFO#,STARTUPINFO
Clear STARTUPINFO#
STARTUPINFO#.cb&=@SizeOf(STARTUPINFO#)
LET FEHLER&=@GetStartupInfo(STARTUPINFO#)

IF STARTUPINFO#.dwFlags& | $800 = STARTUPINFO#.dwFlags&

    Windowstyle 31
    Windowtitle "Über Link gestartet"
    Window 0,0-640,440
    DIM Link#,5000
    @lstrcpy(Link#,STARTUPINFO#.lpTitle&)
    Print "Gestartet über den Link:"
    Print @STRING$(LINK#,0)
    Dispose Link#
    color 12,15
    Print "Netter Link, darf ich den behalten?"

    WHile 0=0

        Waitinput

    wend

Else

    LET Antwort$[0]="Ohne einen Link starte ich nicht!"
    LET Antwort$[1]="ICH WILL VERLINKT WERDEN!"
    LET Antwort$[2]="Erstelle bitte einen Startmenüeintrag für mich!"
    LET Antwort$[3]="Ich will ein LNK!"
    LET Antwort$[4]="Verlink mich bitte."
    LET Antwort$[5]="So will ich nicht laufen! Bitte in einen Link!"
    LET Antwort$[6]="Ich will verlinkt werden!"
    LET Antwort$[7]="Einen Link auf dem Desktop bitte..."
    LET Antwort$[8]="Ich möchte ins Startmenü!"
    LET Antwort$[9]="Sei nicht so link und verlink mich endlich!"
    LET Antwort$[10]="Bau mir sofort einen Startmenüeintrag!"
    LET Antwort$[11]="Ich will nur aus einem Link gestartet werden!"
    Randomize
    LET Antwort%=@RND(12)
    @Messagebox(Antwort$[Antwort%],"Nöööö!",64)

endif

Dispose STARTUPINFO#

Gruß

Andreas
 
03.10.2006  
 



Hallo Michael...

Der Flag für das Starten aus der Schnellstartleiste heraus scheint $A00 zu sein. Leider gibt es diesen Flag unter Windows2000 noch nicht - kann das also nicht überprüfen. Der Flag für einen Start über Link ist $800. Diesen Flag gibt es nur unter NT-basierenden Systemen.
 
03.10.2006  
 




Michael
Dell
Klasse,

danke Andreas!

Werd mich noch ein bisschen umsehn da gibts sicher noch irgendwo was zu erfahren.
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
03.10.2006  
 



In StartupInfo gibt es weitere, sehr interessante und undokumentierte Sachen in Bezug auf CreateProcess...
 
03.10.2006  
 




Michael
Dell
Hallo Andreas,

mit CreateProcess muß ich mich mal ganauer befassen!

Habe mach langem suchen nach folgende Konstanten gefunden:
KompilierenMarkierenSeparieren$0A00 ist ne Kombination aus (&STARTF_TITLESHORTCUT | &STARTF_USEHOTKEY).

&STARTF_USEHOTKEY wird aber nicht gesetzt wenn (bei mir) aus dem zugeklappten Bereich der Schnellstartleiste oder beim Systemstart aus dem Autostart Ordner gestartet wird.

@iF: Wärs nicht gut wenn wir nen Thread hätten in dem alle Header- Dateien stecken und die dann regelmäßig Aktuallisiert werden. Dann könnten auch neu entdeckte Konstanten wie hier hinzugefügt werden.
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
04.10.2006  
 



[quote:606202988e=Michael Dell]@iF: Wärs nicht gut wenn wir nen Thread hätten in dem alle Header- Dateien stecken und die dann regelmäßig Aktuallisiert werden. Dann könnten auch neu entdeckte Konstanten wie hier hinzugefügt werden. [/quote:606202988e]
Klar - ein System hierzu existiert ja bereits - die ODoku.

Ich werds mal vormachen schon um zu schauen ob das System dafür geeignet ist.

So - habs getestet. Es geht noch nicht - da ich der ODoku erst beibringen muss mit derart vielen Daten umzugehen.

Wenn dies geschehen ist setze ich die Headerfiles einfach mal rein. Dort können die Files dann ja von jedem bearbeitet werden.
 
04.10.2006  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.245 Betrachtungen

Unbenanntvor 0 min.
Uwe Lang10.08.2013
Julian Schmidt25.07.2011

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