Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Spezielles

Spezielles Für die Bereiche API, Subclassing, Inline-Assembler, Prozesse, ect.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26915, Antworten: 4218
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3326, Antworten: 122
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 312, Antworten: 19
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7643, Antworten: 185
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 20, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 23, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 58, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 146, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 71, Antworten: 4
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50944, Antworten: 1395
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26.12.2009, 20:05   #1 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard Messagebox mit Option

Eine kleine Spielerei mit einer Messagebox und einem Hook.
Vielleicht kann's ja jemand gebrauchen .



Code:
$H Windows.ph
$H Messages.ph

'#############################
'Messagebox-Konstanten
DEF &IDOK         1
DEF &IDCANCEL     2
DEF &IDABORT      3
DEF &IDRETRY      4
DEF &IDIGNORE     5
DEF &IDYES        6
DEF &IDNO         7
DEF &IDICON      20
DEF &IDPROMPT $FFFF
DEF &IDSTATIC $CAFE
'#############################

Struct CWPSTRUCT = lParam&,wParam&,message&,hwnd&
Struct Rect = left&,top&,right&,bottom&

Declare Hook&,OldProc&
Declare B&,B1&

Proc MB
  Parameters wnd&,msg&,wparam&,lparam&
  Declare Result&
  select msg&
    Caseof ~WM_INITDIALOG
    Var Rect# = New(Rect)
    ~GetWindowRect(wnd&,Rect#)
    ~Movewindow(wnd&,Rect#.left&,rect#.top&,width(wnd&)+12,Height(wnd&)+40,1)
    B& = Create("CheckBox",wnd&,"Diese Meldung nicht wieder anzeigen",0,height(wnd&)-18,width(wnd&),18)
    SendMessage(B&,~WM_SETFONT,~GetStockObject(~ANSI_VAR_FONT),1)
    SendMessage(~GetDlgItem(wnd&,&IDICON),~STM_SETIMAGE,~IMAGE_ICON,~LoadIcon(%hInstance,"EIMER"))
    Result& = 1
    Caseof ~WM_COMMAND
    If lparam& = b&
      If Getcheck(B&)
        B1& = 1
      Endif
    Endif
    Caseof ~WM_NCDESTROY
    ~UnhookWindowsHookEx(Hook&)
    Result& = 1
  Endselect
  Result& = ~CallWindowProc(OldProc&,wnd&,msg&,wparam&,lparam&)
  Return Result&
Endproc

Proc SetHook
  Parameters nCode&, wParam&, lParam&
  Select nCode&
    Caseof ~HC_ACTION
    Var pw# = New(CWPSTRUCT)
    pw# = lparam&
    If pw#.message& = ~WM_INITDIALOG
      OldProc& = ~SetWindowlong(pw#.hwnd&,~GWL_WNDPROC,ProcAddr("MB",4))
    Endif
  EndSelect
  Return ~CallNextHookEx(Hook&, nCode&, wParam&, lParam&)
  EndProc
  
Proc PRF_Messagebox
  Set("Fastmode",1)
  Parameters  body$, title$, flags&
  Declare Result&
  Flags& = Flags& | ~MB_ICONQUESTION
  Hook& = ~SetWindowsHookEx(~WH_CALLWNDPROC, ProcAddr("SetHook",3), 0,~GetCurrentThreadId())
  Result& = MessageBox(title$,body$, flags&)
  Set("Fastmode",0)
  Return Result&
EndProc

cls
Print PRF_Messagebox("Titel","Wirklich löschen ? ",~MB_YESNO)
Print IF(B1&=1,"Nicht wieder anzeigen","wieder anzeigen")
Waitinput
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher

Geändert von Andreas Miethe (27.12.2009 um 18:52 Uhr)
Andreas Miethe ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 26.12.2009, 21:06   #2 (Direktlink)
Super-Moderator
 
Benutzerbild von Jac de Lad
 
Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
Standard

Auch empfehlen kann ich dir XTaskDlg.dll. Die simuliert TaskDialoge schon ab Windows 98 und hat noch viel mehr Optionen. Ich hab dazu mal ne Inc geschrieben, ist auf meiner Webseite abrufbar.

Jac
__________________
XProfan-Profi (XProfan X2+XPIA)
http://jacdelad.bplaced.net
http://jacdelad.square7.ch
Jac de Lad ist offline   Mit Zitat antworten
Alt 26.12.2009, 21:25   #3 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Zitat:
Zitat von Jac de Lad Beitrag anzeigen
Auch empfehlen kann ich dir XTaskDlg.dll. Die simuliert TaskDialoge schon ab Windows 98 und hat noch viel mehr Optionen. Ich hab dazu mal ne Inc geschrieben, ist auf meiner Webseite abrufbar.

Jac
Hallo Jac,

danke für den Hinweis.

Um die Optionen ging es mir allerdings weniger, sondern mehr um die Technik, mit der man solche Dialoge manipulieren kann. Auf diese Art kann ich soviele Optionen reinbringen wie ich will, kann Bilder einfügen, den Hintergund ändern, die Schriftart und Schriftfarbe ändern, usw.usw.
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Alt 26.12.2009, 21:35   #4 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Daumen hoch

Schönes Demo, Andreas! Ich denke, damit inspirierst du sicher den Einen oder Anderen, der sich bisher nicht an Hooks und API gewagt hat.

In dem Zusammenhang möchte ich auf meine AControl.dll hinweisen, die auch einige Systemdialoge hookt. Ist allerdings in Assembler erstellt, weshalb ich da keinen XProfancode posten kann:

__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.

Geändert von Frabbing (26.12.2009 um 21:48 Uhr)
Frabbing ist offline   Mit Zitat antworten
Alt 26.12.2009, 22:02   #5 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.877
Lächeln

Habe mir mal vor 2 oder 3 Jahren eine automatisch schließende Messagebox "gebastelt" - Dietmar hat sie sogar in seine Sammlung übernommen - Jawoll
Zitat:
'Messagebox oder Fenster automatisch schließen

'Alle Message-Fenster in PROFAN² müssen immer über einen Button geschlossen werden.
'Es gibt aber auch Meldungen, die nach einer bestimmten Zeit von selbst schliessen.
'Hier ist eine Procedur, die das auch macht. Sollte in jeder Version funktionieren.
'Sogar mein Namensvetter Dietmar Horn hat es in seine Codetext-Sammlung übernommen !
'Horst Horn


PROC ZEIT_FENSTER
DECLARE text_lang%,m_X%,m_txt%,meldung&,m_font&
PARAMETERS m_titel$,icon$,text_B%,m_text$,m_text1$,m_text2$,zeit%,m_back%
'1. Titeltext| 2. Profan-Icon| 3. Fontbreite| 4. Textzeile 1| 5. Textzeile 2| 6. Textzeile 3| 7. Anzeigezeit| 8. Fensterhandle
m_font&=CREATE("FONT","ARIAL",(text_B%*2),text_B%,0,0,0)'Font wird über die Breite erstellt
text_lang%=LEN(m_text$)
m_X%=(text_lang%*text_B%/2+50)'die Breite des Fensters
WindowStyle 48'muss nicht sein...
meldung& = CREATE("WINDOW",%HWnd,m_titel$,(%MaxX/2-m_X%),(%MaxY/2-60),(m_X%*2),130)
CREATE("ICON",meldung&,icon$,10,15)'Alle PROFAN²-Icons sind möglich
m_txt%=CREATE("TEXT",meldung&,m_text$,65,20,(m_X%*2),20)
SetFont m_txt%,m_font&
m_txt%=CREATE("TEXT",meldung&,m_text1$,65,40,(m_X%*2),20)'die 2. und 3. Textzeile sollten
SetFont m_txt%,m_font&
m_txt%=CREATE("TEXT",meldung&,m_text2$,65,60,(m_X%*2),20)'nicht länger wie die 1. sein
SetFont m_txt%,m_font&
'-------------------------
SLEEP zeit%'Anzeigedauer
'-------------------------
DeleteObject m_font&
DesTroyWindow(meldung&)
SetFocus(m_back%)'Der Focus wird auf das Hauptfenster gesetzt
ENDPROC

'Beispiel
CLS
zeit_fenster "Fenster schliesst automatisch","DRUCKER",8,"Der 7. Parameter gibt die Anzeigedauer an",\
"Danach wird das Fenster gelöscht...","Probieren ist angesagt ;o)",2000,%HWnd
waitinput
end
__________________
Gruss, horst
Computer werden kleiner und kleiner, bald verschwinden sie völlig.
(Ephraim Kishon 1924-2005)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 26.12.2009, 22:27   #6 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Könntest du jetzt mit Andreas Code und einem Timer noch systemkonformer lösen.
Bastel doch mal ein bischen, Horst.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist offline   Mit Zitat antworten
Alt 27.12.2009, 09:25   #7 (Direktlink)
Super-Moderator
 
Benutzerbild von Jac de Lad
 
Registriert seit: 06.02.2009
Ort: Coswig
Alter: 27
Beiträge: 1.159
Standard

Ich wollt deine Messagebox ja auch nicht schlecht machen.
__________________
XProfan-Profi (XProfan X2+XPIA)
http://jacdelad.bplaced.net
http://jacdelad.square7.ch
Jac de Lad ist offline   Mit Zitat antworten
Alt 27.12.2009, 09:38   #8 (Direktlink)
Stammuser
 
Benutzerbild von Andreas Miethe
 
Registriert seit: 08.02.2009
Ort: Bielefeld
Alter: 53
Beiträge: 428
Standard

Zitat:
Zitat von Jac de Lad Beitrag anzeigen
Ich wollt deine Messagebox ja auch nicht schlecht machen.
Habe ich auch nicht vermutet
__________________
Gruss
Andreas

______________________
http://www.ampsoft.eu

Profan 3.3 - XProfanX2
Windows 95,98,ME,2000,XP
Vista - Windows 7 32 / 64 Bit

ASUS X93S - Intel Core I7 - NVIDIA GForce GT540M - 8GB Arbeitsspeicher
Andreas Miethe ist offline   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Spezielles

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MessageBox zur Begrüßung Linda Visual Basic, Visual Basic.NET 4 24.10.2009 11:00
AVM Fritz Box Option Katinka Netzwerke 1 22.03.2006 13:11
Bei Anruf MessageBox? danjal C/C++, Visual C++, Visual C++.NET 0 20.09.2005 13:56
Icon aus MessageBox als Bitmap? DerBeginner C/C++, Visual C++, Visual C++.NET 3 01.09.2005 12:00
Internet option Chrk Windows XP 1 18.11.2003 17:48



Alle Zeitangaben in WEZ +2. Es ist jetzt 06:07 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2