[ maxx @ 08.12.2001. 22:50 ] @
Treba da napravim .EXE fajl od funkcije koju sam nasao na NET-u.
Sajt je:
http://www.codeproject.com/win32/changerefresh.asp
Nemam blage veze sa programiranjem u Visual studiju, tako da bih vas zamolio, ko zna da mi objasni samo u kratkim crtama kako da to uradim (ili neka sam iskompajlira, pa mi posalje .EXE fajl).
Unapred zahvalan!
[ Vojislav Milunovic @ 09.12.2001. 13:15 ] @
Sta ti nije jasno sa ter strane? Imas kod pa ga izvoli ubaciti u neki C++ kompajler :) Mislim stvarno...
[ Ivan Tanasic @ 09.12.2001. 16:10 ] @
Sto mora da bude visual studio???

Kompajliraj to sa bilo kojim kompajlerom i miran si :)

recimo borland c++, borland turbo c++, cygwin, dev c++ etc.
[ Vojislav Milunovic @ 09.12.2001. 19:31 ] @
Na ti kod u MASM pa skini MASM32 i kompajliraj !!!

Code:

; Code to change DISPLAY_FREQUENCY from current to 70Hz
; coded by Vojislav Milunovic for www.elitesecurity.org example, 
; and for guy/girl who doesn't know how to use copy/past
; compiled with MASM 
; asm.bat script used to compile this program
;-----------------------------------------------------------------------
;C:\masm32\bin\ml.exe /c /coff /Cp %1.asm
;C:\masm32\bin\link.exe /SUBSYSTEM:WINDOWS /LIBPATH:C:\masm32\lib %1.obj
;-----------------------------------------------------------------------
; Save file as display.asm and run asm.bat display
; This will create display.exe file; which ,obviously, you can run

.386
.model flat,stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
DM_DISPLAYFREQUENCY equ 400000h
main PROTO

.DATA
box db "Yes No",0
suc db "Frequency of display has been change",0
error db "Failed to change frequency",0

.code
_start:
invoke main
invoke ExitProcess, NULL

main PROC
    LOCAL DevMode:DEVMODE
    ; same as ZeroMemory, I don't know why did they change it's name in MASM32 ?!
    invoke RtlZeroMemory, ADDR DevMode, sizeof(DEVMODE)

    mov DevMode.dmDisplayFrequency,70
    mov DevMode.dmFields, DM_DISPLAYFREQUENCY
    mov DevMode.dmSize, sizeof(DEVMODE)
    invoke ChangeDisplaySettings, ADDR DevMode, 0
    .IF eax == DISP_CHANGE_SUCCESSFUL
        invoke MessageBox, NULL, addr suc, addr box, MB_OK
    .ELSE
        invoke MessageBox, NULL, addr error, addr box, MB_OK
    .ENDIF
main ENDP
end _start


A u C bi ovo jos jednostavnije izgledalo ali kako nemam C kompajler ovo ce ti biti dosta.
[ leka @ 09.12.2001. 20:18 ] @
Momci, niste ni pogledali URL koji je momak dao a vec jebete ale...
Kod izgleda ovako:
Code:

DEVMODE devMode;
::ZeroMemory(&devMode, sizeof(devMode));
devMode.dmDisplayFrequency = 70;
devMode.dmFields = DM_DISPLAYFREQUENCY;
devMode.dmSize = sizeof(devMode);
ChangeDisplaySettings(&devMode, 0);

... NE moze da se tek tako "ubaci" u Visual Studio... (Ja inace nista ne ubacujem u Visual Studio)

Elem, u pitanju je samo Snippet (deo koda) koji objasnjava na primeru kako se menjaju parametri za neki uredjaj (spasi me boze Micro$oft-ovih izmisljotina)... Ovaj kod moze samo da se ubaci negde, pa tek onda se iskompajlira i da se iskoristi.

Predlazem da se pogleda uputstvo za tu famoznu ChangeDisplaySettings() funkciju i da se takodje pogleda eventualno uputstvo za (isto tako famoznu) strukturu DEVMODE, pa tek onda da se nesto konkretno napise.

Svima ovom prilikom predlazem da sebi instaliraju ova dva programa: Cygwin (www.cygwin.com) i DevC++ (www.sf.net, pa onda tamo nadjite)...

Pozdrav

[ Vojislav Milunovic @ 09.12.2001. 20:43 ] @
Kako mislis nismo ni pogledali a ja dao kompletan kod za to koji radi. Testirao sam kod na svojoj masini sa MASM 32 i radi e ti pogledaj sta sam ja sve uradio a da je razlicito od dela koda koji je on dao.

Znaci definises WinMain i ubacis to i to je sve, eto to sam i ja uradio samo u MASM.
[ Jovan Marjanovic @ 09.12.2001. 22:26 ] @
Kao sto rekoh i na ircu, ako ne znas C++, i ne znas da koristis Visual C++, ovakva pitanja su samo gubljenje vremena.

[ Vojislav Milunovic @ 09.12.2001. 22:43 ] @
Ajde to nego meni nije jasnoi sta ce nekome program za menjanje frkevencije!?!?! Imas Properties/Display pa namestis lepo ka covek :)
[ Gojko Vujovic @ 09.12.2001. 23:54 ] @
A da se dogovorimo da se ovakve teme ubuduće brišu?

Nekoliko moderatora se već složilo, mislim da je to pravi potez.
Evo neka neko od supermoderatora slobodno obriše ovo ako smatra temu za nepotrebnu..
[ Ivan Dimkovic @ 10.12.2001. 08:10 ] @
E, Maxx - kad vidis ovakav kod, znaj da je to samo fragment i treba ti "telo" programa:

TEST.C
Code:

#include <windows.h>
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hp, LPSTR cmdLine, int nCmdShow)
{
   DEVMODE devMode;
   ::ZeroMemory(&devMode, sizeof(devMode));
   devMode.dmDisplayFrequency = 70;
   devMode.dmFields = DM_DISPLAYFREQUENCY;
   devMode.dmSize = sizeof(devMode);
   ChangeDisplaySettings(&devMode, 0);
   return 0;
}


A onda (ako imas Visual C++)

cl test.c /link user32.lib

test.exe

I to je to...

I dosta sa ovim
[ Vojislav Milunovic @ 10.12.2001. 12:28 ] @
De da brise, pa ja muda otkino da nadjem de je definisano ovo DM_DISPLAYFREQUENCY ... glupi MSDN umesto da kaze koja je vrednost daje mi ime konstante

lepo da kaze DM_DISPLAFREQUENCY | 4000000| description|
[ Ivan Dimkovic @ 10.12.2001. 12:40 ] @
Jest - da MSDN daje vrednosti konstanti za svaku vrednost ne bi moglo da se cita to uopste, uostalom, konvertuj .h fajl u neki ASM .inc ili sta se vec koristi i to je to :)
[ Vojislav Milunovic @ 10.12.2001. 16:34 ] @
Fora je u tome sto ja nisam imao nikake *.h filove. Sad sam svuko Borlan 5.5 C++ kompajler pa sad imam inace u momentu pisanja tog programa nisam imao sanse da nadjem to.