pas de gwin.dll sur Vista donc il faut par le register.
La clé (à moifier ou créer est):
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
Repérer DisableTaskMgr dans le volet droit et changer sa valeur en 0 (enable) ou 1 (disable)
voici la commande la plus simple pour transfomer en fichier AVI en flv
ffmpeg -i movie1.avi -ar 22050 -ab 32 -f flv -s 320×240 movie1.flv
Question: comment faire une copie d’écran rapidement et l’envoyer par email ?
Réponse: Regardez la démo: elle vous explique comment faire rapidement une copie d’écran partielle et l’envoyer par email.
copie-ecran est un logiciel GRATUIT qui permet de faire rapidement une copie d’ écran de votre PC en sélectionnant la zone à copier. Il remplace la très fastidieuse touche PRINT- IMPR ECRAN de manière avantageuse et reste totalement invisible aux yeux de l’utilisteur. Idéal pour faire des captures d”écran comme pour ce blog.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
private
{ Private declarations }
id1, id2, id3, id4: Integer;
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
if Msg.HotKey = id4 then
ShowMessage(’Print Screen pressed !’);
end;
procedure TForm1.FormCreate(Sender: TObject);
// Different Constants from Windows.pas
const
MOD_ALT = 1;
MOD_CONTROL = 2;
MOD_SHIFT = 4;
MOD_WIN = 8;
VK_A = $41;
VK_R = $52;
VK_F4 = $73;
begin
// Globally trap the Windows system key “PrintScreen”
id4 := GlobalAddAtom(’Hotkey4′);
RegisterHotKey(Handle, id4, 0, VK_SNAPSHOT);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Handle, id4);
GlobalDeleteAtom(id4);
end;
end.
pour ceux qui s’arrachent les cheveux: solution simple: DESACTIVER UAC
Points concernés: Impossible d’ecrire dans les repertoires: win, sys, program files (!), c:\
impossible d’ecrire dans la base de regsitre en LOCAL MACHINE
XML:
-
<?xml version=“1.0″ encoding=“UTF-8″ standalone=“yes”?>
-
<assembly xmlns=“urn:schemas-microsoft-com:asm.v1″ manifestVersion=“1.0″>
-
<dependency>
-
<dependentAssembly>
-
<assemblyIdentity
-
type=“win32″
-
name=“Microsoft.Windows.Common-Controls”
-
version=“6.0.0.0″
-
processorArchitecture=“X86″
-
publicKeyToken=“6595b64144ccf1df”
-
language=“*”
-
/>
-
</dependentAssembly>
-
</dependency>
-
-
<trustInfo xmlns=“urn:schemas-microsoft-com:asm.v2″>
-
<security>
-
<requestedPrivileges>
-
<requestedExecutionLevel
-
level=“requireAdministrator”
-
uiAccess=“false”/>
-
</requestedPrivileges>
-
</security>
-
</trustInfo>
-
</assembly>
enregistrez sous administrator.manifest
Creér ”administrator.rc” qui contient
1 24 “administrator.manifest”
(1 = numero de resource, 24 = type MANIFEST)
3) COMPILER :brcc32 administrator.rc
4) Ajouter au projet:
{$R ‘administrator.res’ ‘administrator.rc’}
VOILA !
begin
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height,
SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
// Desktop
SetWindowLong(Handle, GWL_HWNDPARENT, 0);
// fenetre
SetWindowLong(Handle, GWL_EXSTYLE,
GetWindowLong(Handle, GWL_EXSTYLE) or
WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
end;
Voici la commande pour extraire le nom du fichier sans extension
filename := ChangeFileExt(ExtractFileName(’PathFileNameHere’),”);
ex: c:\windows\system.ini ->system
[Run]
Filename: “{win}\rundll.exe”;
Parameters: “setupx.dll,InstallHinfSection DefaultInstall 132
MYFILE.INF”
That won’t work on Windows NT/2000 (rundll.exe doesn’t exist). But this
should:
[Run]
Filename: “{win}\rundll.exe”; Parameters: “setupx.dll,InstallHinfSection
DefaultInstall 132 MYFILE.INF”; MinVersion: 1, 0
Filename: “{sys}\rundll32.exe”; Parameters: “setupapi,InstallHinfSection
DefaultInstall 132 MYFILE.INF”; MinVersion: 0, 1
commentaires récenets