Java 3D: making a sphere rotate like a planet.

Hey guys, could anyone possible show me to make a spher rotate on its axis, like a plant? I'm fairly new to java 3d.
     Sphere sp = new Sphere(.4f, Sphere.GENERATE_TEXTURE_COORDS, earthApp);
     t.set(1.0, new Vector3d(0f, 0f, 0f));
     TransformGroup tg1 = new TransformGroup(t);
     tg1.addChild(sp);
     mainTG.addChild(tg1);
That basically puts a sphere in the middle of the screen, earthApp references a file called earth.JPG which colours the sphere to make it look like the earth.
But i need help rotating it guys!

I'm pretty new to Java3D as well, but:
If you look under %JAVA_HOME%\demo\java3d\index.html there are several very clear examples (with source). The ConicWorld example looks similar to what you want to do. Check out the createObject method in %JAVA_HOME%\demo\java3d\ConicWorld\ConicWorld.java. It's slightly more complicated than it has to be because they're using arrays of objects, but the general spin idea is there.

Similar Messages

  • My mac pro keeps making a chirping cricket-like sound

    My Mac Pro keeps making a chirping cricket-like sound, more and more frequently. Has anyone else had this problem? Is this telling me one of my HD is going bad?

    K_Bar wrote:
    ...I had them so close together that it sounded like the MacPro. Once I pulled them apart however, it was clear where the sound was coming from. Thank you all for the help!
    Been there, done that. And the instructions, once I found them, seemed to list every possible communication except the chirps; I had to call tech support, which was actually a pleasant experience after dealing with Verizon.
    The frequency of chirping as well as how long each chirp sequence lasts seems to be related to the line voltage. It's as if the UPS begins to worry as the line voltage goes down that it might have to actually do something with its battery.

  • How to start a java application by double clicking just like windows gui?

    Hi,
    I want to open the user-defined file in my java application. The way is like the notepad in windows:1.double click the file name 2.the file is opened in the java application 3.if this file has opened at the same time ,then the last opened will be read-only.
    Could you tell me how to carry it out ? Thank you
    from Maria

    !!! Please give me a help! i am thirsty for itSo, to get this straight, you have a Java application in a jar. For some reason, you do not execute this directly. Are you aware that you can execute a jar directly without the need to write a C++ exe to do it?
    Anyway, for some reason, instead you have a C++ application which launches the JVM with your jar main class.
    Well, you want to do two things. First of all, on Windows level, you need to associate the file type of your user file with your application. Note that they have to have a specific file extension that you choose. To associate the file type with an executable, you open a windows explorer, go to View, Folder Options, File Types and add an entry for your file type and specify it to open with your application. If you do not know how to do this, google for "windows associate file type with program executable" or something alike.
    Now, if you double-click one of your user files, the associated exe will open, and it will receive the file name as a command line argument. In your C++ application, you will need to pass this argument, a file name, to the Java application where you launch it.

  • My 5 is making a feed back like noise when I make calls and the person I'm calling can hear the noise.

    My 5 is making a feed back like noise when I make calls and the person I'm calling can hear the noise.

    will someone from HP revert? need urgent solution please!!

  • How Would One Go About Making an Object Rotate to Face in Direction of Mouse?

    I'm just a teenager who happens to have Flash as part of CS4 Production Premium, which I got as a gift.  I don't have any training or previous experience in Flash, and have only just in the past few month been looking into what ActionScript is.  I've just been fiddling with Flash in my spare time, just as something to do, and am working on making very basic computer games.  Currently I am trying to make a very basic top-down shooter computer game.  I've gotten it to where I can move the player (a circle with an arrow on the edge) in eight directions using the standard FPS movement keys (W,A,S,D) and make it move faster for a limited time by holding down the SHIFT key. 
    But now I've come to a standstill.  I am trying to make the player rotate in the direction of the mouse cursor (made to look like crosshairs) so that the player can move in any of the eight directions and aim in any direction at the same time.  I've searched the Internet for hours on end, looking for anything that might help, but not a single Web page section relates to this kind of thing.  So now I'm giving up on searching for a help article, and am making one instead.  Is there anyone that's successfully done this kind of thing before?  Or at least someone who actually knows how to properly use ActionScript 3.0 and can figure it out themselves, then tell me what they did?   (In the meantime, I've made it so that the player rotates and faces in the direction he is traveling in.)
    I've attatched all the code that I've typed to make the game work, so that anyone can look at it and tell me if I'm doing something wrong already.  I've only been learning ActionScript by figuring it out on my own as I go (watched a few videos I have on a disc too), and in the case of this game, I've just been making is up as I go, so to all of you people who actually know this stuff pretty well, this code is probably going to look nasty.

    I pasted it to the bottom of my code on the main timeline (correcting it for my use), but I get this message in the Compiler Errors window:
    Warning: 1090: Migration issue: The onMouseMove event handler is not triggered automatically by Flash Player at run time in ActionScript 3.0.  You must first register this handler for the event using addEventListener ( 'mouseMove', callback_handler).
    So what do I do about that?  (again, I'm just a beginner, so I don't know what any of this means)
    (attached is a snapshot of the various objects refered to in the code.  also the original code is attached to the original post.  in case these help at all.)

  • Making ship character rotate slowly in circle

    I am creating a player of a ship image in a tiled map. I am able to rotate it around. But to make it look realistic, i want the ship to move around slowly in circle like a real ship. I do not want the ship to rotate so fast like from up to down immediately. Currently , I could get any codes as how to do it. Can anybody guide with me with some codes?

    http://www.google.com/search?q=java+image+rotate
    If the first few links don't provide you with a solution, post what you've done so far and more detail about why the information in the first few links doesn't work for you.
    ~

  • Making a JButton react like a JMenu

    Hi everybody,
    I'm really not sure if this is possible; if it isn't, feel free to tell me. Anyway, I have a JMenuBar with multiple JMenus, interspersed with JButtons. The JButtons replace JMenus with no JMenuItems, so you can just click on them and have something come up. I've figured out how to make a JButton look like a JMenu, but the problem is that when scrolling over the JButton, it doesn't get the selected look of a JMenu (with the highlighting). I know this would be done by using mouseEntered and mouseExited in a MouseListener, so I don't need help there, but I'm getting tripped up on how to change the look of the button properly. I'd like it to change to the default of whatever system it's running on (Windows, Mac, Linux), so I can't use UIManager, I don't think.
    I don't need help making a program work (because my buttons are already fine in the JMenuBar, even though they don't do what I want), just some advice, so if anyone would be willing, I'd appreciate it.
    Thanks,
    Jezzica85

    Here's my test code:
    import java.awt.BorderLayout;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    public class MenuTest {
         public MenuTest() {
              try {
                   JFrame frame = new JFrame();
                   frame.setSize( 200, 200 );
                   frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
                   JMenuBar bar = new JMenuBar();
                   JMenu menu1 = new JMenu( "one" );
                   JMenuItem item = new JMenuItem( "Blah" );
                   JMenuItem item2 = new JMenuItem( "Blah2" );
                   menu1.add( item );
                   menu1.add( item2 );
                   bar.add( menu1 );
                   JMenuItem button = new JMenuItem( "button" );
                   bar.add( button );
                   JMenu menu2 = new JMenu( "two" );
                   JMenuItem itemA = new JMenuItem( "Blah" );
                   JMenuItem item2A = new JMenuItem( "Blah2" );
                   menu2.add( itemA );
                   menu2.add( item2A );
                   bar.add( menu2 );
                   frame.add( bar, BorderLayout.NORTH );
                   frame.setVisible( true );
              } catch( Exception e ) {
                   e.printStackTrace();
                   System.exit( -1 );
         public static void main(String[] args) { new MenuTest(); }
    }What happens to me in this is that the two JMenus are sized fine, but the JMenuItem extends as far as it can, so the second JMenu is against the far side of the JMenuBar.
    Thanks,
    Jezzica85

  • How can I make a 2-D sphere rotate in Flash with 3D effect

    Hi I have an image of sphere that I need to make rotate as if it were a globe rotating on it's axis.  Can I do this without having to recreate the shpere as a 3D image?
    I have attached the file.

    flash can't make 3d objects.  cs5 can make 2d objects that move in apparent 3d space but that's the limit of flash'es capabilities.
    however, there are other programs that can be used to make 3d objects and then animate those objects in flash.

  • Making a picture look like a canvas print

    Hi
    I run an online canvas print company and sometimes for new images we have available I want to create a photoshopped example of how it would look as a canvas print, rather than getting it actually printed and photographing it. I can do this manually but it takes ages so I wondered if there is an easier way, perhaps an action or some kind of plugin that can do it a lot quicker?
    This page shows some examples of what I have done in photoshop http://www.fotoviva.co.uk/photos-on-canvas.asp
    The best one is the Gallery Wrapped Canvas at the bottom, which shows the image wrapping around the frame - it looks quite real. Ideally it would be useful to be able to create them with and without the wrap to show customers the options they can have.
    I tried to create a Photoshop action but the trouble is not all of the images we sell are the same size ratio ie. some are rectangular, some square and some panoramic in shape.
    So is there an easy way to create these in Photoshop? I guess it's like making a 2D image into a 3D box in effect.
    Thanks

    The major 3D packages are overkill for this (in expense, and time to setup/render).
    There is alot of software for this on the pc
    This one actually has a mac version
    http://www.boxshot3d.com/
    In your search I would look for one that lets you wrap 1 bitmap image against the front and 4 sides of an extruded rectangle, to save you the time of making separate images for side panels(and you likely  have slightly rounded edges on your canvas). I would try the boxshot3d as they appear to have a free trial.

  • Making an image look like its on a canvas?

    Hi guys,
    I am using Photoshop CS5, I generally find it very good and love the features it gives me, i however am having trouble trying to achieve something but i dont know if it can be done,
    I am going to be selling Canvas Prints and i dont know if theres anyway i can make a jpg image look like its on a canvas or even turn the image to a canvas design, this includes making it look 3d. The reason for doing this is it will save me having to manufacture every single image i have onto a canvas for a photo.
    I hope somebody can help me
    Regards
    Lee

    'Transform' can skew rectangular shapes to have perspective. Here's a loosely related tutorial or two...
    http://www.tutorial9.net/tutorials/photoshop-tutorials/designing-a-software-box/
    http://psd.tutsplus.com/tutorials/tools-tips/create-a-3d-software-box-in-photoshop-using-a ctions/

  • I want to put Newstand in my REFFERENCE folder!! WHY HAS APPLE STARTED making choices for me like Microsoft do??, I want to put Newstand in my REFFERENCE folder!! WHY HAS APPLE STARTED making choices for me like Microsoft do??

    I want to put Newsstand in my "Refference" folder!! Why has Apple started making decisions for me? Thats what Microsoft do!! Please dont start doing things like that - PLEASE HEAR MY CRY!!

    You cannot put folders inside folders. Newstand is technically a folder. Don't panic.

  • Calling Java Script to open a Map (Like Google Map) from Oracle Forms 10g

    Hello,
    We are on Oracle EBS rel 12, Forms 10g. We have a requirement of calling a Custom Map application (Like Google Maps) from Oracle Forms 10g.
    When the user enters the address like town, city, country etc and clicks on a button there should be a call to this Google Map like application which will pass the co-ordinates (Latittude, Longitude) to the map and shows the place on it. If the user selects a different location on this maps and closes the window the parameters co-ordinates (Latittude, Longitude) should be back in the calling form and this new location should replace the original location.
    I appreciate if I can get some help for the above requirements.
    Thank you.
    GM

    Thank you for your reply. I was reading on the metalink that we could use the to call the java script from oracle Forms 10g (Doc ID 265863.1)
    Example:
    WEB.SHOW_DOCUMENT ('javascript:void(window.open("http://www.oracle.com","","location=no,toolbar=no,menubar=no,status=no,"));self.close()','_blank');
    I tried it but it did not open the any window as it claims. Am I missing anything? Is there any IE related setting which I need to modify for the above to work?
    Regards
    GM

  • How can i run java application at system startup just liks as services

    How we can run java application at the time of system
    starts up just like as services.

    Hi,
    At first you have to create an exe of the class file.
    for that go to the site www.duckware.com/java2exe.html
    Click on the j2exe23c.exe(75k) download it and install in ur system. convert the class file to windows exe.
    The put the exe in the startup folder in windows.
    If ur not able to find that folder search for it and put that exe in that folder.

  • Java - Write And Read From memory Like CheatEngine ( Writing not working?)

    Hello Oracle Forum
    I came here some time ago to ask about javaFX , i solved all my issues and im right now waiting for javaFx tot ake over swing and hmm, im working on learning LIBGDX to create games in java.
    However, im in need to create an app to change values of memory to fix a bug in an old program that i have, and the only way until now is using cheatEngine, So i decided to take a tutorial and learn how to do that in java.
    Well, im able to read from the memory but the write isnt working somehow... Im posting the code here, if anyone can give me a hint, i would thank and a lot, because theres a community that really needs this app to automate the fix without using cheat engine.
    package MainStart;
    import com.br.HM.User32;
    import com.br.kernel.Kernel32;
    import com.sun.jna.Memory;
    import com.sun.jna.Native;
    import com.sun.jna.Pointer;
    import com.sun.jna.ptr.IntByReference;
    public class Cheater {
        static Kernel32 kernel32 = (Kernel32) Native.loadLibrary("kernel32", Kernel32.class);
        static User32 user32 = (User32) Native.loadLibrary("user32", User32.class);
        static int readRight = 0x0010;
        static int writeRight = 0x0020;
        //static int PROCESS_VM_OPERATION = 0x0008;
        public static void main(String[] args) {
            //Read Memory
            //MineSweeper = Campo Minado
            int pid = getProcessId("Campo Minado"); // get our process ID
            System.out.println("Pid = " + pid);
            Pointer readprocess = openProcess(readRight, pid); // open the process ID with read priviledges.
            Pointer writeprocess = openProcess(writeRight, pid);
            int size = 4; // we want to read 4 bytes
            int address = 0x004053C8;
            //Read Memory
            Memory read = readMemory(readprocess, address, size); // read 4 bytes of memory starting at the address 0x00AB0C62.
            System.out.println(read.getInt(0)); // print out the value!      
            //Write Memory
            int writeMemory = writeMemory(writeprocess, address, new short[0x22222222]);
            System.out.println("WriteMemory :" + writeMemory);
            Memory readM = readMemory(readprocess, address, size);
            System.out.println(readM.getInt(0));
        public static int writeMemory(Pointer process, int address, short[] data) {
            IntByReference written = new IntByReference(0);
            Memory toWrite = new Memory(data.length);
            for (long i = 0; i < data.length; i++) {
                toWrite.setShort(0, data[new Integer(Long.toString(i))]);
            boolean b = kernel32.WriteProcessMemory(process, address, toWrite, data.length, written);
            System.out.println("kernel32.WriteProcessMemory : " + b); // Retorna false
            return written.getValue();
        public static Pointer openProcess(int permissions, int pid) {
            Pointer process = kernel32.OpenProcess(permissions, true, pid);
            return process;
        public static int getProcessId(String window) {
            IntByReference pid = new IntByReference(0);
            user32.GetWindowThreadProcessId(user32.FindWindowA(null, window), pid);
            return pid.getValue();
        public static Memory readMemory(Pointer process, int address, int bytesToRead) {
            IntByReference read = new IntByReference(0);
            Memory output = new Memory(bytesToRead);
            kernel32.ReadProcessMemory(process, address, output, bytesToRead, read);
            return output;
    package com.br.HM;
    import com.sun.jna.Native;
    import com.sun.jna.Pointer;
    import com.sun.jna.Structure;
    import com.sun.jna.platform.win32.WinDef.RECT;
    import com.sun.jna.ptr.ByteByReference;
    import com.sun.jna.ptr.IntByReference;
    import com.sun.jna.win32.StdCallLibrary.StdCallCallback;
    import com.sun.jna.win32.W32APIOptions;
    * Provides access to the w32 user32 library. Incomplete implementation to
    * support demos.
    * @author Todd Fast, [email protected]
    * @author [email protected]
    public interface User32 extends W32APIOptions {
        User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class, DEFAULT_OPTIONS);
        Pointer GetDC(Pointer hWnd);
        int ReleaseDC(Pointer hWnd, Pointer hDC);
        int FLASHW_STOP = 0;
        int FLASHW_CAPTION = 1;
        int FLASHW_TRAY = 2;
        int FLASHW_ALL = (FLASHW_CAPTION | FLASHW_TRAY);
        int FLASHW_TIMER = 4;
        int FLASHW_TIMERNOFG = 12;
        public static class FLASHWINFO extends Structure {
            public int cbSize;
            public Pointer hWnd;
            public int dwFlags;
            public int uCount;
            public int dwTimeout;
        int IMAGE_BITMAP = 0;
        int IMAGE_ICON = 1;
        int IMAGE_CURSOR = 2;
        int IMAGE_ENHMETAFILE = 3;
        int LR_DEFAULTCOLOR = 0x0000;
        int LR_MONOCHROME = 0x0001;
        int LR_COLOR = 0x0002;
        int LR_COPYRETURNORG = 0x0004;
        int LR_COPYDELETEORG = 0x0008;
        int LR_LOADFROMFILE = 0x0010;
        int LR_LOADTRANSPARENT = 0x0020;
        int LR_DEFAULTSIZE = 0x0040;
        int LR_VGACOLOR = 0x0080;
        int LR_LOADMAP3DCOLORS = 0x1000;
        int LR_CREATEDIBSECTION = 0x2000;
        int LR_COPYFROMRESOURCE = 0x4000;
        int LR_SHARED = 0x8000;
        Pointer FindWindowA(String winClass, String title);
        int GetClassName(Pointer hWnd, byte[] lpClassName, int nMaxCount);
        public static class GUITHREADINFO extends Structure {
            public int cbSize = size();
            public int flags;
            Pointer hwndActive;
            Pointer hwndFocus;
            Pointer hwndCapture;
            Pointer hwndMenuOwner;
            Pointer hwndMoveSize;
            Pointer hwndCaret;
            RECT rcCaret;
        boolean GetGUIThreadInfo(int idThread, GUITHREADINFO lpgui);
        public static class WINDOWINFO extends Structure {
            public int cbSize = size();
            public RECT rcWindow;
            public RECT rcClient;
            public int dwStyle;
            public int dwExStyle;
            public int dwWindowStatus;
            public int cxWindowBorders;
            public int cyWindowBorders;
            public short atomWindowType;
            public short wCreatorVersion;
        boolean GetWindowInfo(Pointer hWnd, WINDOWINFO pwi);
        boolean GetWindowRect(Pointer hWnd, RECT rect);
        int GetWindowText(Pointer hWnd, byte[] lpString, int nMaxCount);
        int GetWindowTextLength(Pointer hWnd);
        int GetWindowModuleFileName(Pointer hWnd, byte[] lpszFileName, int cchFileNameMax);
        int GetWindowThreadProcessId(Pointer hWnd, IntByReference lpdwProcessId);
        interface WNDENUMPROC extends StdCallCallback {
             * Return whether to continue enumeration.
            boolean callback(Pointer hWnd, Pointer data);
        boolean EnumWindows(WNDENUMPROC lpEnumFunc, Pointer data);
        boolean EnumThreadWindows(int dwThreadId, WNDENUMPROC lpEnumFunc, Pointer data);
        boolean FlashWindowEx(FLASHWINFO info);
        Pointer LoadIcon(Pointer hInstance, String iconName);
        Pointer LoadImage(Pointer hinst, // handle to instance
                String name, // image to load
                int type, // image type
                int xDesired, // desired width
                int yDesired, // desired height
                int load // load options
        boolean DestroyIcon(Pointer hicon);
        int GWL_EXSTYLE = -20;
        int GWL_STYLE = -16;
        int GWL_WNDPROC = -4;
        int GWL_HINSTANCE = -6;
        int GWL_ID = -12;
        int GWL_USERDATA = -21;
        int DWL_DLGPROC = 4;
        int DWL_MSGRESULT = 0;
        int DWL_USER = 8;
        int WS_EX_COMPOSITED = 0x20000000;
        int WS_EX_LAYERED = 0x80000;
        int WS_EX_TRANSPARENT = 32;
        int GetWindowLong(Pointer hWnd, int nIndex);
        int SetWindowLong(Pointer hWnd, int nIndex, int dwNewLong);
        int LWA_COLORKEY = 1;
        int LWA_ALPHA = 2;
        int ULW_COLORKEY = 1;
        int ULW_ALPHA = 2;
        int ULW_OPAQUE = 4;
        boolean SetLayeredWindowAttributes(Pointer hwnd, int crKey,
                byte bAlpha, int dwFlags);
        boolean GetLayeredWindowAttributes(Pointer hwnd,
                IntByReference pcrKey,
                ByteByReference pbAlpha,
                IntByReference pdwFlags);
         * Defines the x- and y-coordinates of a point.
        public static class POINT extends Structure {
            public int x, y;
         * Specifies the width and height of a rectangle.
        public static class SIZE extends Structure {
            public int cx, cy;
        int AC_SRC_OVER = 0x00;
        int AC_SRC_ALPHA = 0x01;
        int AC_SRC_NO_PREMULT_ALPHA = 0x01;
        int AC_SRC_NO_ALPHA = 0x02;
        public static class BLENDFUNCTION extends Structure {
            public byte BlendOp = AC_SRC_OVER; // only valid value
            public byte BlendFlags = 0; // only valid value
            public byte SourceConstantAlpha;
            public byte AlphaFormat;
        boolean UpdateLayeredWindow(Pointer hwnd, Pointer hdcDst,
                POINT pptDst, SIZE psize,
                Pointer hdcSrc, POINT pptSrc, int crKey,
                BLENDFUNCTION pblend, int dwFlags);
        int SetWindowRgn(Pointer hWnd, Pointer hRgn, boolean bRedraw);
        int VK_SHIFT = 16;
        int VK_LSHIFT = 0xA0;
        int VK_RSHIFT = 0xA1;
        int VK_CONTROL = 17;
        int VK_LCONTROL = 0xA2;
        int VK_RCONTROL = 0xA3;
        int VK_MENU = 18;
        int VK_LMENU = 0xA4;
        int VK_RMENU = 0xA5;
        boolean GetKeyboardState(byte[] state);
        short GetAsyncKeyState(int vKey);
    package com.br.kernel;
    import com.sun.jna.*;
    import com.sun.jna.win32.StdCallLibrary;
    import com.sun.jna.ptr.IntByReference;
    // by deject3d
    public interface Kernel32 extends StdCallLibrary
        // description from msdn
        //BOOL WINAPI WriteProcessMemory(
        //__in   HANDLE hProcess,
        //__in   LPVOID lpBaseAddress,
        //__in   LPCVOID lpBuffer,
        //__in   SIZE_T nSize,
        //__out  SIZE_T *lpNumberOfBytesWritten
        boolean WriteProcessMemory(Pointer p, int address, Pointer buffer, int size, IntByReference written);
        //BOOL WINAPI ReadProcessMemory(
        //          __in   HANDLE hProcess,
        //          __in   LPCVOID lpBaseAddress,
        //          __out  LPVOID lpBuffer,
        //          __in   SIZE_T nSize,
        //          __out  SIZE_T *lpNumberOfBytesRead
        boolean ReadProcessMemory(Pointer hProcess, int inBaseAddress, Pointer outputBuffer, int nSize, IntByReference outNumberOfBytesRead);
        //HANDLE WINAPI OpenProcess(
        //  __in  DWORD dwDesiredAccess,
        //  __in  BOOL bInheritHandle,
        //  __in  DWORD dwProcessId
        Pointer OpenProcess(int desired, boolean inherit, int pid);
        /* derp */
        int GetLastError();
    http://pastebin.com/Vq8wfy39

    Hello there,
    this tutorial was exactly what I needed, so thank you.
    Your problem seems to be in this line:
    int writeMemory = writeMemory(writeprocess, address, new short[0x22222222]); 
    The problem is, you're creating a new short array with the length of 0x22222222. Which not only results in an java.lang.OutOfMemoryError: Java heap space
    but also, if it would work, would create an empty array with the length of 0x22222222.
    I think you want to write 0x22222222 as value in your address.
    Correctly stored the code you'd need to write would be:
    short[] sarray = new short[]{(short) 0x22222222};
    But because the value is too long for the short, the value stored in your array would be the number 8738.
    I think, what you want to do is to store the number 572662306, which would be the hex value, stored in an int variable.
    So first of all you need to strip down your hex-value to shorts:
    Short in Java uses 16 Bit = 2 Byte. 0x22222222 -> 0x2222 for your high byte and 0x2222 for your low byte
    So your array would be
    short[] sarray = new short[]{0x2222,0x2222};//notice, that sarray[0] is the lowbyte and sarray[1] the high byte, if you want to store 20 it would be new short[]{20,0} or if you use hex new short[]{0x14,0x00}
    The next part is your writeToMemory Method. If I'm right, the method in the tutorial is a little bit wrong. The right version should be this:
    public static int writeMemory(Pointer process, int address, short[] data) {
      IntByReference written = new IntByReference(0);
      int size = data.length*Short.SIZE/8;
      Memory toWrite = new Memory(size);
      for (int i = 0; i < data.length; i++) {
      toWrite.setShort(i*Short.SIZE/8,
      data[i]);
      boolean b = kernel32.WriteProcessMemory(process, address, toWrite,
      size, written);
      return written.getValue();
    You need to calculate your offset right. And the size of your memory. Maybe you could write this method not with shorts, but with integers. But this should work.
    If you pass your new array to this function, it should write 0x22222222 to your adress. If you read out your toWrite value with toWrite.getInt(0) you get the right value.
    And there is one more thing. In order to write data to a process, you need to grant two access rights:
    A handle to the process memory to be modified. The handle must have PROCESS_VM_WRITE and PROCESS_VM_OPERATION access to the process.
    You have to grant the right to write data: PROCESS_VM_WRITE: 0x0020 and PROCESS_VM_OPERATION: 0x0008
    So your writeProcess needs to get initialized this way:
    Pointer writeprocess = openProcess(0x0020|0x0008,pid);
    I hope this works for you. Let me know.
    Greetings
    Edit:
    Because every data you write will be 1 byte to whatever count of byte I think the best way is to use the following method to write data to the memory:
    public static void writeMemory(Pointer process, long address, byte[] data)
      int size = data.length;
      Memory toWrite = new Memory(size);
      for(int i = 0; i < size; i++)
      toWrite.setByte(i, data[i]);
      boolean b = kernel32.WriteProcessMemory(process, address, toWrite, size, null);
    You can see some changes. First I changed all address values from int to long, because some addresses are out of range. And with all, i mean all. Not only in writeMemory, but also in readMemory and in your kernel32 Class.
    Second I don't use the IntByReference anymore..
    To use this method you need to store your data the following way if you would write 4 Byte data:
    byte[] values = new byte[]{0x14,0x00,0x00,0x00};
    This value would be the number 20. Index 0 will be the lowest byte and index 3 will be the highest byte.
    And one more thing I wrote is an method which you can use to calculate your address if you have a baseAddress.
    If you restart your program/game your old addresses won't point at the same values of your game. With some research (I use CheatEngine) you can get the baseaddress. This one will alway be the same.
    To get from your baseaddress to the dynamic adress you use offsets.
    public static long findDynAddy(Pointer process, int[] offsets, long baseAddress)
      long pointer = baseAddress;
      int size = 4;
      Memory pTemp = new Memory(size);
      long pointerAddress = 0;
      for(int i = 0; i < offsets.length; i++)
      if(i == 0)
      kernel32.ReadProcessMemory(process, pointer, pTemp, size, null);
      pointerAddress = ((pTemp.getInt(0)+offsets[i]));
      if(i != offsets.length-1)
      kernel32.ReadProcessMemory(process, pointerAddress, pTemp, size, null);
      return pointerAddress;
    This methods gets a process, an array of offsets (hex-values) and your baseadress and returns the dynamic address.
    For Solitaire the following code would give you the address to the score:
    long baseAddr = 0x10002AFA8L;
      int[] offsets = new int[]{0x50,0x14};
      long addr = findDynAddy(process, offsets, baseAddr);
    If somebody wants to get the whole code (user32, kernel32 and the cheater) just pm me and I will give you a link.

  • Does Java allow you to execute code (Like Registry Modifications) directly

    My question is will Java allow me to execute scripts to modify the registry, run external commands, and work with text files directly from a webpage.
    My goal is for users to click on a link in a webpage that would do any of the above tasks.
    The users have administration rights to the PC

    Not per default. If you have an applet, and the user has essentially removed all security restrictions, then sure, in one way or another, it's possible. Is it likely that that will ever occur? No.
    Come on, if it did have this ability, don't you think there would be a proliferation of Java Viruses out there, and that then, it would not have that functionaility much longer?

Maybe you are looking for