| |
|
|
- 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 |
|
|
| |
|
|
|
| |
|
- Seite 1 - |
|
| Sehr gut!
Das ist es schon fast... |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 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ß? |
|
|
| |
|
|
|
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: KompilierenMarkierenSeparierenDef @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 |
|
|
| |
|
|
|
| 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. |
|
|
| |
|
|
|
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... |
|
|
| |
|
|
|
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. |
|
|
| |
|
|