diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e323f3e --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +bin +build +.gradle +.classpath +.project +.maven +.settings \ No newline at end of file diff --git a/JIntellitype.dll b/JIntellitype.dll deleted file mode 100644 index 839236b..0000000 Binary files a/JIntellitype.dll and /dev/null differ diff --git a/JIntellitype64.dll b/JIntellitype64.dll deleted file mode 100644 index 6dc2680..0000000 Binary files a/JIntellitype64.dll and /dev/null differ diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..273f94b --- /dev/null +++ b/build.gradle @@ -0,0 +1,160 @@ +apply plugin: 'java' +apply plugin: 'cpp' +apply plugin: 'maven' +apply plugin: 'eclipse' + +repositories { + maven { + url 'https://github.com/Boukefalos/jlibloader/raw/mvn-repo/' + } +} + +dependencies { + compile 'com.github.boukefalos:jlibloader:0.2' +} + +group = 'com.github.boukefalos' +project.archivesBaseName = 'jlibintellitype' +version = '1.3.9' + +task wrapper(type: Wrapper) { + gradleVersion = '1.12' +} + +model { + platforms { + windows_i386 { + architecture 'i386' + operatingSystem 'windows' + } + windows_amd64 { + architecture 'amd64' + operatingSystem 'windows' + } + } + toolChains { + gcc(Gcc) { + addPlatformConfiguration(new TargetPlatformConfiguration() { + boolean supportsPlatform(Platform platform) { + platform.operatingSystem.current && platform.operatingSystem.name == 'windows' && + platform.architecture.name == 'amd64' + } + List getCppCompilerArgs() { ['-m64', '-fpermissive'] } + List getCCompilerArgs() { ['-m64'] } + List getObjectiveCCompilerArgs() { ['-m64'] } + List getObjectiveCppCompilerArgs() { ['-m64'] } + List getAssemblerArgs() { ['--64'] } + List getLinkerArgs() { ['-m64'] } + List getStaticLibraryArchiverArgs() { [] } + }) + } + } + repositories { + libs(PrebuiltLibraries) { + Gdi32 { lib -> + binaries.withType(StaticLibraryBinary) { + staticLibraryFile = file("lib/${targetPlatform.name}/${lib.name}.lib") + } + } + } + } +} + +def jniHeadersDir = file("$buildDir/headers") + +task jniHeaders(dependsOn: compileJava) { + def outputFile = file("$jniHeadersDir/com_melloware_jintellitype_JIntellitype.h") + inputs.files sourceSets.main.output + outputs.file outputFile + exec { + executable org.gradle.internal.jvm.Jvm.current().getExecutable('javah') + args '-o', outputFile + args '-classpath', sourceSets.main.output.classesDir + args '-classpath', file("$buildDir/../bin") + args 'com.melloware.jintellitype.JIntellitype' + } +} + +libraries { + main { + baseName project.archivesBaseName + } + all { + binaries.all { + cppCompiler.args '-I' + jniHeadersDir + cppCompiler.args "-I${org.gradle.internal.jvm.Jvm.current().javaHome}/include" + cppCompiler.args "-I${org.gradle.internal.jvm.Jvm.current().javaHome}/include/win32" + linker.args '-Wl,--kill-at', '-static-libgcc', '-static-libstdc++' + tasks.withType(CppCompile) { task -> + task.dependsOn jniHeaders + } + lib library: 'Gdi32', linkage: 'static' + } + } +} + +tasks.withType(Upload) { + repositories { + mavenDeployer { + repository(url: uri('.maven')) + } + } +} + +configurations { + jni +} + +def deployer = uploadJni.repositories.mavenDeployer + +binaries.withType(SharedLibraryBinary) { binary -> + if (!buildable) { + return + } + def variantName = "${targetPlatform.operatingSystem.name}-${targetPlatform.architecture.name}" + def taskName = "jar-${variantName}" + def nativeJar = project.tasks.findByName(taskName) + if (nativeJar == null) { + nativeJar = project.task(taskName, type: Jar) { + baseName = "${project.archivesBaseName}-$variantName" + } + artifacts { + jni nativeJar + } + def jniPom = deployer.addFilter(variantName) { artifact, file -> + return file == nativeJar.archivePath + } + jniPom.groupId = project.group + jniPom.artifactId = nativeJar.baseName + jniPom.version = project.version + jniPom.scopeMappings.mappings.clear() + } + def builderTask = binary.tasks.builder + def libraryDirectory = project.group.replace('.', '/') + "/${project.archivesBaseName}/${variantName}" + nativeJar.into(libraryDirectory) { from builderTask.outputFile } + nativeJar.dependsOn builderTask +} + +def mainPom = uploadArchives.repositories.mavenDeployer.pom +mainPom.groupId = project.group +mainPom.artifactId = jar.baseName +mainPom.version = project.version +mainPom.scopeMappings.mappings.clear() +mainPom.withXml { provider -> + def node = provider.asNode() + def deps = node.appendNode('dependencies') + ['windows-amd64', 'windows-i386'].each { platform -> + def dep = deps.appendNode('dependency') + dep.appendNode('groupId', project.group) + dep.appendNode('artifactId', "${project.archivesBaseName}-${platform}") + dep.appendNode('version', project.version) + } + def dep = deps.appendNode('dependency') + dep.appendNode('groupId', 'com.github.boukefalos') + dep.appendNode('artifactId', 'jlibloader') + dep.appendNode('version', '0.2') +} + +jar { + from sourceSets.main.allSource +} \ No newline at end of file diff --git a/src/changes/changes.xml b/changes.xml similarity index 98% rename from src/changes/changes.xml rename to changes.xml index 0d4cd5d..60983d3 100644 --- a/src/changes/changes.xml +++ b/changes.xml @@ -1,38 +1,38 @@ - - - - - - Release Notes - Melloware - - - - - - Modified JIntellitype.java a bit so that it would a)copy .dll files from jar to a temp location and b)load 64bit .dll if 32bit fails. Tested on WinXP 32bit and Win7 64bit (with 64bit JVM). - - - - - Now enables the user to use all keys instead of just [A-Z],[0-9] as before - - - - - Added JIntellitype64.dll for 64 bit JRE's. Simply rename the DLL to - JIntellitype.dll or use the Jintellitype.setLibraryLocation(''); function - to set the path to JIntellitype64.dll. - - - - - Fixed "Jintellitype.setLibraryLocation('');" method to to allow developers - to set the path of the JIntellitype.DLL for use in executable jar's etc. - - - Removed Commons-Logging dependency - + + + + + + Release Notes + Melloware + + + + + + Modified JIntellitype.java a bit so that it would a)copy .dll files from jar to a temp location and b)load 64bit .dll if 32bit fails. Tested on WinXP 32bit and Win7 64bit (with 64bit JVM). + + + + + Now enables the user to use all keys instead of just [A-Z],[0-9] as before + + + + + Added JIntellitype64.dll for 64 bit JRE's. Simply rename the DLL to + JIntellitype.dll or use the Jintellitype.setLibraryLocation(''); function + to set the path to JIntellitype64.dll. + + + + + Fixed "Jintellitype.setLibraryLocation('');" method to to allow developers + to set the path of the JIntellitype.DLL for use in executable jar's etc. + + + Removed Commons-Logging dependency + @@ -55,48 +55,48 @@ and the operating System is Windows and its a 32 bit JDK since it will not run on 64 bit JVM. - - - - Added Javadoc that explains a modifier of 0 means that no modifier is required if you - want to have a single key be a hotkey. - - - Added example of just using the PRINT_SCREEN key with no modifiers as a hotkey. - - - Added more constants to JIntellitypeConstants.java based on MSDN documentation. + + + + Added Javadoc that explains a modifier of 0 means that no modifier is required if you + want to have a single key be a hotkey. + + + Added example of just using the PRINT_SCREEN key with no modifiers as a hotkey. + + + Added more constants to JIntellitypeConstants.java based on MSDN documentation. Made JIntellitype singleton thread safe by using double checked pattern. - - - - - Added registerHotKey(int identifier, String modifierAndKeyCode) to allow Strings like "CTRL+A" to be - used to register hotkeys for applications that want their users to be able to define hotkeys. - - - Added checkInstanceAlreadyRunning(String appTitle) to prevent multiple instances - of your application from being started if you don't want to. Returns true - if an instance with this application title is already running on the system. - Useful for developers who only want ONE instance of their app running. - - - - - Changed Jintellitype to a singleton class like JIntellitype.getInstance() - - - Added ability to use Swing constants for ALT, CTRL, SHIFT. - - - - - Initial release of the JIntellitype API. - - - - - + + + + + Added registerHotKey(int identifier, String modifierAndKeyCode) to allow Strings like "CTRL+A" to be + used to register hotkeys for applications that want their users to be able to define hotkeys. + + + Added checkInstanceAlreadyRunning(String appTitle) to prevent multiple instances + of your application from being started if you don't want to. Returns true + if an instance with this application title is already running on the system. + Useful for developers who only want ONE instance of their app running. + + + + + Changed Jintellitype to a singleton class like JIntellitype.getInstance() + + + Added ability to use Swing constants for ALT, CTRL, SHIFT. + + + + + Initial release of the JIntellitype API. + + + + + \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..3d0dee6 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..535c584 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Nov 26 21:42:48 GMT 2014 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-1.12-bin.zip diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..91a7e26 --- /dev/null +++ b/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..8a0b282 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/lib/windows_amd64/Gdi32.Lib b/lib/windows_amd64/Gdi32.Lib new file mode 100644 index 0000000..83fe462 Binary files /dev/null and b/lib/windows_amd64/Gdi32.Lib differ diff --git a/lib/windows_i386/Gdi32.Lib b/lib/windows_i386/Gdi32.Lib new file mode 100644 index 0000000..c5e38ee Binary files /dev/null and b/lib/windows_i386/Gdi32.Lib differ diff --git a/maven-gpg.txt b/maven-gpg.txt deleted file mode 100644 index 393b72a..0000000 --- a/maven-gpg.txt +++ /dev/null @@ -1 +0,0 @@ -mvn release:prepare -Dresume=false -Dusername=GOOGLECODEEMAIL -Dpassword=GOOGLECODEPASSWORD \ No newline at end of file diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 2db49b3..0000000 --- a/pom.xml +++ /dev/null @@ -1,340 +0,0 @@ - - - org.sonatype.oss - oss-parent - 7 - - - - 4.0.0 - com.melloware - jintellitype - jar - 1.3.10-SNAPSHOT - http://www.melloware.com - JIntellitype - JIntellitype - JNI Java bridge to Microsoft Intellitype commands. - - Melloware Inc - http://www.melloware.com - - - http://melloware.com/images/header.jpg - - 1999 - - scm:svn:https://jintellitype.googlecode.com/svn/trunk - scm:svn:https://jintellitype.googlecode.com/svn/trunk - scm:svn:https://jintellitype.googlecode.com/svn/trunk - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - - - 3.0.0 - - - - mellowaredev@gmail.com - Melloware - mellowaredev@gmail.com - http://www.melloware.com - Melloware Inc - http://www.melloware.com - - Architect - - - - - - Bertrand Florat - bflorat@users.sourceforge.net - http://jajuk.info - Jajuk Team - http://jajuk.info - - Code Contributor - - - - Peter Fichtner - fichtner@c2tn.de - http://www.c2tn.de - C2TN Team - http://www.c2tn.de - - Code Contributor - - - - Thomas Beckers - - http://www.atunes.org/ - aTunes Team - http://www.atunes.org/ - - Code Contributor - - - - Karl von Randow - - http://xk72.com/ - XK72 - http://xk72.com/ - - Code Contributor - - - - Johannes Frank - - http://radis.sf.net/ - RadiS - http://radis.sf.net/ - - Code Contributor - - - - Wordoholic - - http://wordoholic.com/ - Wordoholic - http://wordoholic.com/ - - Code Contributor - - - - Zeroflag - - - ZeroFlag - - - x64 DLL Contributor - - - - Lars - - - Hamburg - - - Strings for Register Hotkeys - - - - - - - org.apache.maven.plugins - maven-gpg-plugin - 1.4 - - - sign-artifacts - verify - - sign - - - - - - maven-release-plugin - 2.2.1 - - release-sign-artifacts - clean javadoc:jar source:jar deploy - - - - maven-assembly-plugin - 2.2.1 - - - - com.melloware.jintellitype.Main - - - - src/assembly/descriptor.xml - - target/assembly - target/assembly/work - - - - make-assembly - - package - - - assembly - - - - - - - maven-jar-plugin - 2.3.1 - - - - com.melloware.jintellitype.Main - - - ${project.url} - ${project.artifactId} - ${project.organization.name} - ${project.organization.name} - ${project.description} - ${project.version} - - - - - - org.apache.maven.plugins - maven-eclipse-plugin - 2.8 - - true - true - true - - - - maven-surefire-plugin - org.apache.maven.plugins - 2.9 - - true - - - - org.apache.maven.plugins - maven-changes-plugin - 2.6 - - - validate-changes - pre-site - - changes-validate - - - true - - - - - - - - - - org.apache.maven.plugins - maven-project-info-reports-plugin - 2.4 - - - - summary - dependencies - dependency-convergence - project-team - license - - - - - - org.apache.maven.plugins - maven-jxr-plugin - 2.2 - - - org.apache.maven.plugins - maven-javadoc-plugin - 2.8 - - UTF-8 - private - false - - - - org.apache.maven.plugins - maven-pmd-plugin - 2.5 - - - /rulesets/basic.xml - /rulesets/imports.xml - /rulesets/unusedcode.xml - /rulesets/finalizers.xml - /rulesets/logging-jakarta-commons.xml - /rulesets/logging-java.xml - /rulesets/migrating_to_15.xml - /rulesets/design.xml - /rulesets/strings.xml - - 150 - true - utf-8 - 1.6 - - - - org.apache.maven.plugins - maven-changes-plugin - 2.6s - - - - changes-report - - - - - - - - - release-sign-artifacts - - - performRelease - true - - - - - - org.apache.maven.plugins - maven-gpg-plugin - 1.4 - - - sign-artifacts - verify - - sign - - - - - - - - - \ No newline at end of file diff --git a/src/site/fml/faq.fml b/site/fml/faq.fml similarity index 97% rename from src/site/fml/faq.fml rename to site/fml/faq.fml index f141139..05f8877 100644 --- a/src/site/fml/faq.fml +++ b/site/fml/faq.fml @@ -1,131 +1,131 @@ - - - - - - General - - - - What is JIntellitype? - - - JIntellitype is a Java API for Windows that allows you to - register global hotkeys and listen for Microsft Intellitype commands. - - - - - - On which platform does it run? - - - Since JIntellitype uses Windows specific calls it will - only work on Windows. Windows 2000 or higher recommended. For a Linux - version see JxGrabKey project on Sourceforge. - - - - - - Does it run on x64 JDK or JRE's? - - - Starting with 1.3.3 JINtellitype comes with a 64 bit DLL. To use it Simply rename the DLL to - JIntellitype.dll or use the Jintellitype.setLibraryLocation(''); function to set the path to JIntellitype64.dll. - - - - - - Where do I get help on JIntellitype? - - - This FAQ answers some frequent questions already, please read the - it thoroughly. -

- If these resources don't help you with your problem, - or if you think that you found a bug that is not yet documented, - you should contact us. -
-
- - - - I have a question that is not addressed here. - Where can I ask? - - - See our Contacts page. - - - -
- - - Problems - - - - I am pressing my special Intellitype keys on my keyboard but nothing is happening? - - - First, make sure you have followed instructions for using JIntellitype properly. Next, - make sure you do not have Microsft Intellitype drivers installed. The Microsoft software - intercepts the messages before they get to JIntellitype and "eats" them. You can tell if - you are running Microsoft Keyboard software by opening Task Manager and looking for the - process name "itype.exe". - - - - - - I am using Jintellitype.checkInstanceAlreadyRunning("MyApp") but it is allowing me to open - my application more than once when I am expecting it not to? - - - Make sure that "MyApp" is the getTitle() of the main JFrame of your application. - JIntellitype checks by Window title name. - - - - - - - Development - - - - Can I contribute? - - - Yes, please! Check out the contact page and contact us! - - - - - - I think I found a bug in JIntellitype. - What should I do? - - - You should post it to the forums to - make sure it is documented. - - - - - - When will feature XYZ be implemented? - - - Depends. If it is something you really sorely need, you could (politely) - try to exert some pressure on us. You can also try to pay us. - Or try to implement your feature yourself and send us some patches. - In any case, you should contact us about your problem. - - - - - + + + + + + General + + + + What is JIntellitype? + + + JIntellitype is a Java API for Windows that allows you to + register global hotkeys and listen for Microsft Intellitype commands. + + + + + + On which platform does it run? + + + Since JIntellitype uses Windows specific calls it will + only work on Windows. Windows 2000 or higher recommended. For a Linux + version see JxGrabKey project on Sourceforge. + + + + + + Does it run on x64 JDK or JRE's? + + + Starting with 1.3.3 JINtellitype comes with a 64 bit DLL. To use it Simply rename the DLL to + JIntellitype.dll or use the Jintellitype.setLibraryLocation(''); function to set the path to JIntellitype64.dll. + + + + + + Where do I get help on JIntellitype? + + + This FAQ answers some frequent questions already, please read the + it thoroughly. +

+ If these resources don't help you with your problem, + or if you think that you found a bug that is not yet documented, + you should contact us. +
+
+ + + + I have a question that is not addressed here. + Where can I ask? + + + See our Contacts page. + + + +
+ + + Problems + + + + I am pressing my special Intellitype keys on my keyboard but nothing is happening? + + + First, make sure you have followed instructions for using JIntellitype properly. Next, + make sure you do not have Microsft Intellitype drivers installed. The Microsoft software + intercepts the messages before they get to JIntellitype and "eats" them. You can tell if + you are running Microsoft Keyboard software by opening Task Manager and looking for the + process name "itype.exe". + + + + + + I am using Jintellitype.checkInstanceAlreadyRunning("MyApp") but it is allowing me to open + my application more than once when I am expecting it not to? + + + Make sure that "MyApp" is the getTitle() of the main JFrame of your application. + JIntellitype checks by Window title name. + + + + + + + Development + + + + Can I contribute? + + + Yes, please! Check out the contact page and contact us! + + + + + + I think I found a bug in JIntellitype. + What should I do? + + + You should post it to the forums to + make sure it is documented. + + + + + + When will feature XYZ be implemented? + + + Depends. If it is something you really sorely need, you could (politely) + try to exert some pressure on us. You can also try to pay us. + Or try to implement your feature yourself and send us some patches. + In any case, you should contact us about your problem. + + + + +
\ No newline at end of file diff --git a/src/site/resources/default.aspx b/site/resources/default.aspx similarity index 100% rename from src/site/resources/default.aspx rename to site/resources/default.aspx diff --git a/src/site/resources/favicon.ico b/site/resources/favicon.ico similarity index 100% rename from src/site/resources/favicon.ico rename to site/resources/favicon.ico diff --git a/src/site/resources/images/devc-jni.jpg b/site/resources/images/devc-jni.jpg similarity index 100% rename from src/site/resources/images/devc-jni.jpg rename to site/resources/images/devc-jni.jpg diff --git a/src/site/resources/images/duke.gif b/site/resources/images/duke.gif similarity index 100% rename from src/site/resources/images/duke.gif rename to site/resources/images/duke.gif diff --git a/src/site/resources/images/duke.ico b/site/resources/images/duke.ico similarity index 100% rename from src/site/resources/images/duke.ico rename to site/resources/images/duke.ico diff --git a/src/site/resources/images/duke_up.ico b/site/resources/images/duke_up.ico similarity index 100% rename from src/site/resources/images/duke_up.ico rename to site/resources/images/duke_up.ico diff --git a/src/site/resources/images/jintellitype-banner.png b/site/resources/images/jintellitype-banner.png similarity index 100% rename from src/site/resources/images/jintellitype-banner.png rename to site/resources/images/jintellitype-banner.png diff --git a/src/site/resources/images/jintellitype-banner.pspimage b/site/resources/images/jintellitype-banner.pspimage similarity index 100% rename from src/site/resources/images/jintellitype-banner.pspimage rename to site/resources/images/jintellitype-banner.pspimage diff --git a/src/site/resources/images/jintellitype-logo.png b/site/resources/images/jintellitype-logo.png similarity index 100% rename from src/site/resources/images/jintellitype-logo.png rename to site/resources/images/jintellitype-logo.png diff --git a/src/site/resources/images/jintellitype-logo.pspimage b/site/resources/images/jintellitype-logo.pspimage similarity index 100% rename from src/site/resources/images/jintellitype-logo.pspimage rename to site/resources/images/jintellitype-logo.pspimage diff --git a/src/site/resources/images/windows.png b/site/resources/images/windows.png similarity index 100% rename from src/site/resources/images/windows.png rename to site/resources/images/windows.png diff --git a/src/site/site.xml b/site/site.xml similarity index 100% rename from src/site/site.xml rename to site/site.xml diff --git a/src/site/xdoc/contacts.xml b/site/xdoc/contacts.xml similarity index 96% rename from src/site/xdoc/contacts.xml rename to site/xdoc/contacts.xml index 5ee5ea7..ed92fa8 100644 --- a/src/site/xdoc/contacts.xml +++ b/site/xdoc/contacts.xml @@ -1,32 +1,32 @@ - - - - - - Contacts - Emil A Lefkof III - - - - -
-

- The preferred way of getting in touch with one of the developers of - JIntellitype is via the forums. - Please direct any matters of general user support, questions, suggestions, discussions, etc., - to the forums. -

- - -

- In special cases, you may try to contact directly one of the - developers or contributors. You - can always send request to info@melloware.com also. -

-
- -
- - - + + + + + + Contacts + Emil A Lefkof III + + + + +
+

+ The preferred way of getting in touch with one of the developers of + JIntellitype is via the forums. + Please direct any matters of general user support, questions, suggestions, discussions, etc., + to the forums. +

+ + +

+ In special cases, you may try to contact directly one of the + developers or contributors. You + can always send request to info@melloware.com also. +

+
+ +
+ + +
\ No newline at end of file diff --git a/src/site/xdoc/dev-cpp.xml b/site/xdoc/dev-cpp.xml similarity index 96% rename from src/site/xdoc/dev-cpp.xml rename to site/xdoc/dev-cpp.xml index 20ed4b7..7a2ee44 100644 --- a/src/site/xdoc/dev-cpp.xml +++ b/site/xdoc/dev-cpp.xml @@ -1,37 +1,37 @@ - - - - JIntellitype - Emil A Lefkof III - - - -
- -

- Jintellitype uses the Bloodshed Dev C++ IDE for compiling the JIntellitype.dll. -

- -

- 1. Once you have DevC++ installed, just open the JIntellitype.dev project file. -

-

- 2. Navigate to the menu option Project->Options. -

-

- 3. Make sure to set the entries in the screenshot below to your JDK location. -
- Project Options -

- -

- 4. Change your Project->Options Build Options to point to an output directory of your choosing. - -

- -

- 5. Use the menu or toolbar button to build the DLL! -

-
- + + + + JIntellitype + Emil A Lefkof III + + + +
+ +

+ Jintellitype uses the Bloodshed Dev C++ IDE for compiling the JIntellitype.dll. +

+ +

+ 1. Once you have DevC++ installed, just open the JIntellitype.dev project file. +

+

+ 2. Navigate to the menu option Project->Options. +

+

+ 3. Make sure to set the entries in the screenshot below to your JDK location. +
+ Project Options +

+ +

+ 4. Change your Project->Options Build Options to point to an output directory of your choosing. + +

+ +

+ 5. Use the menu or toolbar button to build the DLL! +

+
+
\ No newline at end of file diff --git a/src/site/xdoc/index.xml b/site/xdoc/index.xml similarity index 98% rename from src/site/xdoc/index.xml rename to site/xdoc/index.xml index b210f75..d6513c3 100644 --- a/src/site/xdoc/index.xml +++ b/site/xdoc/index.xml @@ -1,136 +1,136 @@ - - - - Java API for Microsoft Intellitype - Emil A Lefkof III - - - -
- - -

- JIntellitype is a Java API for interacting with Microsoft Intellitype - commands as well as registering for Global Hotkeys in your Java application. - The API is a Java JNI library that uses a C++ DLL to do all the communication - with Windows. NOTE: This library ONLY works on Windows. If - you are looking for a Linux version please see JxGrabKey project on Sourceforge. -

-
- - -

- Have you ever wanted to have CTRL+SHIFT+G maximize your Swing application - on the desktop? Even if that application did not have focus? Well, now you can! By - registering a Windows Hotkey combination, your application will be alerted - when the combination you select is pressed anywhere in Windows. Windows has the - API call RegisterHotKey - for registering a global hotkey combination so that your app receives that message - no matter what else you are doing or even if your application has focus. This is - a commonly requested feature in Java that has now been implemented by JIntellitype. - - Check out the Quick Start Guide for an example on how to use JIntellitype. -

- -
- - - -

- Have you ever wanted your Java application to react to those special Play, Pause, - Stop keys on some newer keyboards like Winamp and Windows Media Player do? Ever wonder how they do it? - If you want your application to "listen" for those special keys, now you can with JIntellitype! - Just register an IntellitypeListener and you will be notified when those messages are received. - To read more about these special commands see the MSDN Documentation - about the Intellitype commands. - - Check out the Quick Start Guide for an example on how to use JIntellitype. -

- -
- - -

- Although JIntellitype is open source, small financial donations are appreciated. By supporting Melloware, you help fund the development - (mainly development tools and internet access etc) of Melloware's Software. To send money, simply click on the PayPal icon to the left. -

-
- - -

- Jukes cross platform music player and organizer. -

-

- JaJuk cross platform swiss army knife music player including DJ mode and much more! -

-

- C2TN C2TN is the first RSS Reader which integrates completely into your desktop. -

-

- aTunes aTunes is a GPL audio player and manager. -

-

- Topkeys emulates the mouse using the keyboard. -

-

- Google Translate Desktop is a free unofficial Java desktop client based on Google Translate service. -

-

- MiniGen is a program that can generate text in any Windows-based (tested on XP/Vista) application based on the currently selected text in a non-invasive manner. -

-

- Xtreme Media Player is a free cross-platform media player. -

-

- MyTime is a simple time tracker, mostly controlled through the tray icon. -

-

- RadiS is a cool-looking mouse menu that opens upon a global hot-key. Allows sub-menus which will be displayed in an adjacent partly circle. -

-

- JShot is a free and multiplatform screen capture and uploader utility which allows you to capture a part of your screen and publish it in one step. -

-

- OpenSoundboard plays sound files (.wav, .mp3) when the user presses hotkeys. -

-

- Clipcomrade - simple and free open source windows clipboard manager tool -

-

- Wordoholic Learner - a cross-platform language learning tool -

-

- Hotshots - Easy to use screenshot utility for Windows and Linux -

-

- G15Lastfm - Last.fm player for G15 gaming keyboard -

-

- webapp-workplace - Web Workspace/Client to provide notifications for different web applications such as gmail, facebook, etc. -

-

- Hawkscope - is a productivity tool that allows you to access your hard drive contents quickly via system tray / menubar icon with dynamic pop-up menu. -

-
- - -
    -
  • Can register global hotkey combinations in Java applications in Windows
  • -
  • Application is notified even if it does not have focus.
  • -
  • Can react to those Play, Pause, Stop, Next, Forward Media keys like Winamp
  • -
  • Very little code, easy to use API
  • -
  • Examples included in JIntellitypeTester.java
  • -
-
- - - -
- - - + + + + Java API for Microsoft Intellitype + Emil A Lefkof III + + + +
+ + +

+ JIntellitype is a Java API for interacting with Microsoft Intellitype + commands as well as registering for Global Hotkeys in your Java application. + The API is a Java JNI library that uses a C++ DLL to do all the communication + with Windows. NOTE: This library ONLY works on Windows. If + you are looking for a Linux version please see JxGrabKey project on Sourceforge. +

+
+ + +

+ Have you ever wanted to have CTRL+SHIFT+G maximize your Swing application + on the desktop? Even if that application did not have focus? Well, now you can! By + registering a Windows Hotkey combination, your application will be alerted + when the combination you select is pressed anywhere in Windows. Windows has the + API call RegisterHotKey + for registering a global hotkey combination so that your app receives that message + no matter what else you are doing or even if your application has focus. This is + a commonly requested feature in Java that has now been implemented by JIntellitype. + + Check out the Quick Start Guide for an example on how to use JIntellitype. +

+ +
+ + + +

+ Have you ever wanted your Java application to react to those special Play, Pause, + Stop keys on some newer keyboards like Winamp and Windows Media Player do? Ever wonder how they do it? + If you want your application to "listen" for those special keys, now you can with JIntellitype! + Just register an IntellitypeListener and you will be notified when those messages are received. + To read more about these special commands see the MSDN Documentation + about the Intellitype commands. + + Check out the Quick Start Guide for an example on how to use JIntellitype. +

+ +
+ + +

+ Although JIntellitype is open source, small financial donations are appreciated. By supporting Melloware, you help fund the development + (mainly development tools and internet access etc) of Melloware's Software. To send money, simply click on the PayPal icon to the left. +

+
+ + +

+ Jukes cross platform music player and organizer. +

+

+ JaJuk cross platform swiss army knife music player including DJ mode and much more! +

+

+ C2TN C2TN is the first RSS Reader which integrates completely into your desktop. +

+

+ aTunes aTunes is a GPL audio player and manager. +

+

+ Topkeys emulates the mouse using the keyboard. +

+

+ Google Translate Desktop is a free unofficial Java desktop client based on Google Translate service. +

+

+ MiniGen is a program that can generate text in any Windows-based (tested on XP/Vista) application based on the currently selected text in a non-invasive manner. +

+

+ Xtreme Media Player is a free cross-platform media player. +

+

+ MyTime is a simple time tracker, mostly controlled through the tray icon. +

+

+ RadiS is a cool-looking mouse menu that opens upon a global hot-key. Allows sub-menus which will be displayed in an adjacent partly circle. +

+

+ JShot is a free and multiplatform screen capture and uploader utility which allows you to capture a part of your screen and publish it in one step. +

+

+ OpenSoundboard plays sound files (.wav, .mp3) when the user presses hotkeys. +

+

+ Clipcomrade - simple and free open source windows clipboard manager tool +

+

+ Wordoholic Learner - a cross-platform language learning tool +

+

+ Hotshots - Easy to use screenshot utility for Windows and Linux +

+

+ G15Lastfm - Last.fm player for G15 gaming keyboard +

+

+ webapp-workplace - Web Workspace/Client to provide notifications for different web applications such as gmail, facebook, etc. +

+

+ Hawkscope - is a productivity tool that allows you to access your hard drive contents quickly via system tray / menubar icon with dynamic pop-up menu. +

+
+ + +
    +
  • Can register global hotkey combinations in Java applications in Windows
  • +
  • Application is notified even if it does not have focus.
  • +
  • Can react to those Play, Pause, Stop, Next, Forward Media keys like Winamp
  • +
  • Very little code, easy to use API
  • +
  • Examples included in JIntellitypeTester.java
  • +
+
+ + + +
+ + +
\ No newline at end of file diff --git a/src/site/xdoc/quick-start.xml b/site/xdoc/quick-start.xml similarity index 97% rename from src/site/xdoc/quick-start.xml rename to site/xdoc/quick-start.xml index 4a626e5..d32eac7 100644 --- a/src/site/xdoc/quick-start.xml +++ b/site/xdoc/quick-start.xml @@ -1,110 +1,110 @@ - - - - JIntellitype - Emil A Lefkof III - - - -
- -

- Here is a simple quick start for getting up and running with JIntellitype quickly. - An Example is also included in the - distribution to show you how easy it is to use JIntellitype. -

- - -

- If you are familiar with Eclipse there is a full working example Eclipse project that can be - found here Eclipse Example. - In Eclipse just navigate to File->Import->Existing Project Into Workspace and you are ready to go. -

-
- - -

- 1. Make sure JIntellitype.dll is in your PATH or in \Windows\System32. -

-

- 2. Initialize a JIntellitype object. - + + + + JIntellitype + Emil A Lefkof III + + + +

+ +

+ Here is a simple quick start for getting up and running with JIntellitype quickly. + An Example is also included in the + distribution to show you how easy it is to use JIntellitype. +

+ + +

+ If you are familiar with Eclipse there is a full working example Eclipse project that can be + found here Eclipse Example. + In Eclipse just navigate to File->Import->Existing Project Into Workspace and you are ready to go. +

+
+ + +

+ 1. Make sure JIntellitype.dll is in your PATH or in \Windows\System32. +

+

+ 2. Initialize a JIntellitype object. + // Initialize JIntellitype ... JIntellitype.getInstance(); - ... - // OPTIONAL: check to see if an instance of this application is already - // running, use the name of the window title of this JFrame for checking - if (JIntellitype.checkInstanceAlreadyRunning("MyApp")) { - LOG.error("An instance of this application is already running"); - System.exit(1); - } - -

- -

- 3. To listen to hotkey's, you need to register the combinations to listen for. - - // Assign global hotkeys to Windows+A and ALT+SHIFT+B - JIntellitype.getInstance().registerHotKey(1, JIntellitype.MOD_WIN, (int)'A'); - JIntellitype.getInstance().registerHotKey(2, JIntellitype.MOD_ALT + JIntellitype.MOD_SHIFT, (int)'B'); - - //or you can use the Swing constants instead - JIntellitype.getInstance().registerSwingHotKey(3, Event.CTRL_MASK + Event.SHIFT_MASK, (int)'C'); - - // To unregister them just call unregisterHotKey with the unique identifier - JIntellitype.getInstance().unregisterHotKey(1); - JIntellitype.getInstance().unregisterHotKey(2); - JIntellitype.getInstance().unregisterHotKey(3); - -

- -

- 4. Make sure to add a HotKeyListener and implement the interface. - - //assign this class to be a HotKeyListener - JIntellitype.getInstance().addHotKeyListener(this); - + ... + // OPTIONAL: check to see if an instance of this application is already + // running, use the name of the window title of this JFrame for checking + if (JIntellitype.checkInstanceAlreadyRunning("MyApp")) { + LOG.error("An instance of this application is already running"); + System.exit(1); + } + +

+ +

+ 3. To listen to hotkey's, you need to register the combinations to listen for. + + // Assign global hotkeys to Windows+A and ALT+SHIFT+B + JIntellitype.getInstance().registerHotKey(1, JIntellitype.MOD_WIN, (int)'A'); + JIntellitype.getInstance().registerHotKey(2, JIntellitype.MOD_ALT + JIntellitype.MOD_SHIFT, (int)'B'); + + //or you can use the Swing constants instead + JIntellitype.getInstance().registerSwingHotKey(3, Event.CTRL_MASK + Event.SHIFT_MASK, (int)'C'); + + // To unregister them just call unregisterHotKey with the unique identifier + JIntellitype.getInstance().unregisterHotKey(1); + JIntellitype.getInstance().unregisterHotKey(2); + JIntellitype.getInstance().unregisterHotKey(3); + +

+ +

+ 4. Make sure to add a HotKeyListener and implement the interface. + + //assign this class to be a HotKeyListener + JIntellitype.getInstance().addHotKeyListener(this); + // listen for hotkey public void onHotKey(int aIdentifier) { - if (aIdentifier == 1) - System.out.println("WINDOWS+A hotkey pressed"); + if (aIdentifier == 1) + System.out.println("WINDOWS+A hotkey pressed"); } - } - -

- -

- 5. To use Intellitype commands implement the IntellitypeListener interface. - - //assign this class to be a IntellitypeListener - JIntellitype.getInstance().addIntellitypeListener(this); - + } + +

+ +

+ 5. To use Intellitype commands implement the IntellitypeListener interface. + + //assign this class to be a IntellitypeListener + JIntellitype.getInstance().addIntellitypeListener(this); + // listen for intellitype play/pause command public void onIntellitype(int aCommand) { - switch (aCommand) { - case JIntellitype.APPCOMMAND_MEDIA_PLAY_PAUSE: - System.out.println("Play/Pause message received " + Integer.toString(aCommand)); + switch (aCommand) { + case JIntellitype.APPCOMMAND_MEDIA_PLAY_PAUSE: + System.out.println("Play/Pause message received " + Integer.toString(aCommand)); + break; + default: + System.out.println("Undefined INTELLITYPE message caught " + Integer.toString(aCommand)); break; - default: - System.out.println("Undefined INTELLITYPE message caught " + Integer.toString(aCommand)); - break; } - } - -

- -

- 6. Don't forget to call the cleanup method to release the DLL resources. - + } + +

+ +

+ 6. Don't forget to call the cleanup method to release the DLL resources. + // Termination, make sure to call before exiting ... JIntellitype.getInstance().cleanUp(); - System.exit(0); - -

-
- -
- + System.exit(0); + +

+
+ +
+
\ No newline at end of file diff --git a/src/assembly/descriptor.xml b/src/assembly/descriptor.xml deleted file mode 100644 index 0f6f4a1..0000000 --- a/src/assembly/descriptor.xml +++ /dev/null @@ -1,35 +0,0 @@ - - dist - - zip - - - - target - - - *.jar - - - - src\main - - **/.svn/** - - - - src\test - - **/.svn/** - - - - - *.dll - pom.xml - readme.txt - license.txt - - - - \ No newline at end of file diff --git a/src/main/cpp/JIntellitype.cpp b/src/main/cpp/JIntellitype.cpp index 060b2d5..f24769c 100644 --- a/src/main/cpp/JIntellitype.cpp +++ b/src/main/cpp/JIntellitype.cpp @@ -143,7 +143,7 @@ extern "C" * Signature: (Ljava/lang/String;)Z */ JNIEXPORT jboolean JNICALL Java_com_melloware_jintellitype_JIntellitype_isRunning - (JNIEnv *env, jclass, jstring wndName) + (JNIEnv *env, jobject, jstring wndName) { // App name for the hidden window's registered class CHAR szAppName[] = "SunAwtFrame"; diff --git a/src/main/cpp/JIntellitype.dev b/src/main/cpp/JIntellitype.dev deleted file mode 100644 index 62fa7e1..0000000 --- a/src/main/cpp/JIntellitype.dev +++ /dev/null @@ -1,149 +0,0 @@ -[Project] -FileName=JIntellitype.dev -Name=JIntellitype -Ver=1 -IsCpp=1 -Type=3 -Compiler=-D__GNUWIN32__ -W -DWIN32 -DNDEBUG -D_WINDOWS -D_MBCS -D_USRDLL -DBUILDING_DLL=1_@@_ -CppCompiler=-D__GNUWIN32__ -W -DWIN32 -DNDEBUG -D_WINDOWS -D_MBCS -D_USRDLL_@@_ -Includes=c:\java\jdk1.2.2\include;c:\java\jdk1.2.2\include\win32 -Linker=-lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 --no-export-all-symbols --add-stdcall-alias_@@_ -Libs= -UnitCount=8 -Folders="Header Files","Resource Files","Source Files" -ObjFiles= -PrivateResource=JIntellitype_private.rc -ResourceIncludes= -MakeIncludes= -Icon= -ExeOutput=..\..\..\..\jintellitype -ObjectOutput=..\..\..\target -OverrideOutput=0 -OverrideOutputName=JIntellitype.dll -HostApplication= -CommandLine= -UseCustomMakefile=0 -CustomMakefile= -IncludeVersionInfo=1 -SupportXPThemes=0 -CompilerSet=0 -CompilerSettings=0000000001001000000100 - -[Unit1] -FileName=JIntellitypeThread.cpp -Folder="Source Files" -Compile=1 -CompileCpp=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit2] -FileName=JIntellitype.cpp -Folder="Source Files" -Compile=1 -CompileCpp=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit3] -FileName=JIntellitypeHandler.cpp -Folder="Source Files" -Compile=1 -CompileCpp=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit5] -FileName=JIntellitypeHandler.h -Folder="Header Files" -Compile=1 -CompileCpp=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit7] -FileName=StdAfx.h -Folder="Header Files" -Compile=1 -CompileCpp=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit8] -FileName=com_melloware_jintellitype_JIntellitype.h -Folder=Header Files -Compile=1 -CompileCpp=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[VersionInfo] -Major=1 -Minor=0 -Release=0 -Build=465 -LanguageID=1033 -CharsetID=1252 -CompanyName=Melloware Inc (www.melloware.com) -FileVersion=1.0 -FileDescription=Java JNI bridge to MS Intellitype commands -InternalName= -LegalCopyright=Copyright 2006 Melloware Inc -LegalTrademarks=Copyright 2006 Melloware Inc -OriginalFilename= -ProductName=JIntellitype -ProductVersion=1.0 -AutoIncBuildNr=1 - -[Unit11] -FileName=com_melloware_jintellitype_JIntellitype.h -CompileCpp=1 -Folder=Header Files -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit10] -FileName=com_melloware_jintellitype_JIntellitype.h -CompileCpp=1 -Folder=Header Files -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit4] -FileName=StdAfx.cpp -CompileCpp=1 -Folder="Source Files" -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit6] -FileName=JIntellitypeThread.h -CompileCpp=1 -Folder="Header Files" -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - diff --git a/src/main/cpp/JIntellitype.layout b/src/main/cpp/JIntellitype.layout deleted file mode 100644 index 6956056..0000000 --- a/src/main/cpp/JIntellitype.layout +++ /dev/null @@ -1,76 +0,0 @@ -[Editor_9] -CursorCol=1 -CursorRow=20 -TopLine=1 -LeftChar=1 -Open=0 -Top=0 -[Editors] -Focused=2 -Order=1,2,0,7,4 -[Editor_0] -Open=1 -Top=0 -CursorCol=5 -CursorRow=118 -TopLine=71 -LeftChar=1 -[Editor_1] -Open=1 -Top=0 -CursorCol=36 -CursorRow=149 -TopLine=75 -LeftChar=1 -[Editor_2] -Open=1 -Top=1 -CursorCol=14 -CursorRow=209 -TopLine=162 -LeftChar=1 -[Editor_3] -Open=0 -Top=0 -CursorCol=23 -CursorRow=3 -TopLine=1 -LeftChar=1 -[Editor_4] -Open=1 -Top=0 -CursorCol=1 -CursorRow=27 -TopLine=1 -LeftChar=1 -[Editor_5] -Open=0 -Top=0 -CursorCol=3 -CursorRow=24 -TopLine=11 -LeftChar=1 -[Editor_6] -Open=0 -Top=0 -CursorCol=1 -CursorRow=16 -TopLine=1 -LeftChar=1 -[Editor_7] -Open=1 -Top=0 -CursorCol=54 -CursorRow=35 -TopLine=3 -LeftChar=1 -[Editor_8] -Open=0 -Top=0 -CursorCol=1 -CursorRow=3 -TopLine=1 -LeftChar=1 -[Editor_10] -Open=0 -Top=0 diff --git a/src/main/cpp/JIntellitypeHandler.cpp b/src/main/cpp/JIntellitypeHandler.cpp index 666fc5d..01b8b61 100644 --- a/src/main/cpp/JIntellitypeHandler.cpp +++ b/src/main/cpp/JIntellitypeHandler.cpp @@ -137,7 +137,7 @@ void JIntellitypeHandler::doInitialize() return; //Set pointer to this object inside the Window's USERDATA section - SetWindowLong( m_window, GWL_USERDATA, (LONG) this ); + SetWindowLongPtr( m_window, GWLP_USERDATA, (LONG) this ); // hide the window ShowWindow(m_window, SW_HIDE); @@ -255,7 +255,7 @@ LRESULT CALLBACK JIntellitypeHandler::WndProc( HWND hWnd, UINT uMessage, WPARAM if (uMessage == WM_SHELLHOOK) { if (wParam == HSHELL_APPCOMMAND) { jint cmd = GET_APPCOMMAND_LPARAM(lParam); - JIntellitypeHandler *l_this = (JIntellitypeHandler *) GetWindowLong( hWnd, GWL_USERDATA ); + JIntellitypeHandler *l_this = (JIntellitypeHandler *) GetWindowLongPtr( hWnd, GWLP_USERDATA ); l_this->intellitype(cmd); } return TRUE; @@ -264,7 +264,7 @@ LRESULT CALLBACK JIntellitypeHandler::WndProc( HWND hWnd, UINT uMessage, WPARAM // check for registered hotkey messages and send them to HotKeyListeners switch( uMessage ) { case WM_HOTKEY: { - JIntellitypeHandler *l_this = (JIntellitypeHandler *) GetWindowLong( hWnd, GWL_USERDATA ); + JIntellitypeHandler *l_this = (JIntellitypeHandler *) GetWindowLongPtr( hWnd, GWLP_USERDATA ); l_this->fireHotKey(wParam); return TRUE; break; diff --git a/src/main/cpp/JIntellitype_private.rc b/src/main/cpp/JIntellitype_private.rc deleted file mode 100644 index 77374f8..0000000 --- a/src/main/cpp/JIntellitype_private.rc +++ /dev/null @@ -1,35 +0,0 @@ -/* THIS FILE WILL BE OVERWRITTEN BY DEV-C++ */ -/* DO NOT EDIT! */ - -#include // include for version info constants - - -// -// TO CHANGE VERSION INFORMATION, EDIT PROJECT OPTIONS... -// -1 VERSIONINFO -FILEVERSION 1,0,0,465 -PRODUCTVERSION 1,0,0,465 -FILETYPE VFT_DLL -{ - BLOCK "StringFileInfo" - { - BLOCK "040904E4" - { - VALUE "CompanyName", "Melloware Inc (www.melloware.com)" - VALUE "FileVersion", "1.0" - VALUE "FileDescription", "Java JNI bridge to MS Intellitype commands" - VALUE "InternalName", "" - VALUE "LegalCopyright", "Copyright 2006 Melloware Inc" - VALUE "LegalTrademarks", "Copyright 2006 Melloware Inc" - VALUE "OriginalFilename", "" - VALUE "ProductName", "JIntellitype" - VALUE "ProductVersion", "1.0" - } - } - BLOCK "VarFileInfo" - { - VALUE "Translation", 0x0409, 1252 - } -} - diff --git a/src/main/cpp/Makefile.win b/src/main/cpp/Makefile.win deleted file mode 100644 index 0ad1b2c..0000000 --- a/src/main/cpp/Makefile.win +++ /dev/null @@ -1,46 +0,0 @@ -# Project: JIntellitype -# Makefile created by Dev-C++ 4.9.9.2 - -CPP = g++.exe -CC = gcc.exe -WINDRES = windres.exe -RES = ../../../target/JIntellitype_private.res -OBJ = ../../../target/JIntellitypeThread.o ../../../target/JIntellitype.o ../../../target/JIntellitypeHandler.o ../../../target/StdAfx.o $(RES) -LINKOBJ = ../../../target/JIntellitypeThread.o ../../../target/JIntellitype.o ../../../target/JIntellitypeHandler.o ../../../target/StdAfx.o $(RES) -LIBS = -L"C:/Dev-Cpp/lib" -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 --no-export-all-symbols --add-stdcall-alias -s -INCS = -I"C:/Dev-Cpp/include" -CXXINCS = -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include" -BIN = ../../../../jintellitype/JIntellitype.dll -CXXFLAGS = $(CXXINCS) -D__GNUWIN32__ -W -DWIN32 -DNDEBUG -D_WINDOWS -D_MBCS -D_USRDLL -fexpensive-optimizations -O3 -CFLAGS = $(INCS) -D__GNUWIN32__ -W -DWIN32 -DNDEBUG -D_WINDOWS -D_MBCS -D_USRDLL -DBUILDING_DLL=1 -fexpensive-optimizations -O3 -RM = rm -f - -.PHONY: all all-before all-after clean clean-custom - -all: all-before ../../../../jintellitype/JIntellitype.dll all-after - - -clean: clean-custom - ${RM} $(OBJ) $(BIN) - -DLLWRAP=dllwrap.exe -DEFFILE=../../../../jintellitype/libJIntellitype.def -STATICLIB=../../../../jintellitype/libJIntellitype.a - -$(BIN): $(LINKOBJ) - $(DLLWRAP) --output-def $(DEFFILE) --driver-name c++ --implib $(STATICLIB) $(LINKOBJ) $(LIBS) -o $(BIN) - -../../../target/JIntellitypeThread.o: JIntellitypeThread.cpp - $(CPP) -c JIntellitypeThread.cpp -o ../../../target/JIntellitypeThread.o $(CXXFLAGS) - -../../../target/JIntellitype.o: JIntellitype.cpp - $(CPP) -c JIntellitype.cpp -o ../../../target/JIntellitype.o $(CXXFLAGS) - -../../../target/JIntellitypeHandler.o: JIntellitypeHandler.cpp - $(CPP) -c JIntellitypeHandler.cpp -o ../../../target/JIntellitypeHandler.o $(CXXFLAGS) - -../../../target/StdAfx.o: StdAfx.cpp - $(CPP) -c StdAfx.cpp -o ../../../target/StdAfx.o $(CXXFLAGS) - -../../../target/JIntellitype_private.res: JIntellitype_private.rc - $(WINDRES) -i JIntellitype_private.rc --input-format=rc -o ../../../target/JIntellitype_private.res -O coff diff --git a/src/main/cpp/com_melloware_jintellitype_JIntellitype.h b/src/main/cpp/com_melloware_jintellitype_JIntellitype.h deleted file mode 100644 index 2394ca6..0000000 --- a/src/main/cpp/com_melloware_jintellitype_JIntellitype.h +++ /dev/null @@ -1,53 +0,0 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include -/* Header for class com_melloware_jintellitype_JIntellitype */ - -#ifndef _Included_com_melloware_jintellitype_JIntellitype -#define _Included_com_melloware_jintellitype_JIntellitype -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: com_melloware_jintellitype_JIntellitype - * Method: initializeLibrary - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_com_melloware_jintellitype_JIntellitype_initializeLibrary - (JNIEnv *, jobject); - -/* - * Class: com_melloware_jintellitype_JIntellitype - * Method: regHotKey - * Signature: (III)V - */ -JNIEXPORT void JNICALL Java_com_melloware_jintellitype_JIntellitype_regHotKey - (JNIEnv *, jobject, jint, jint, jint); - -/* - * Class: com_melloware_jintellitype_JIntellitype - * Method: terminate - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_com_melloware_jintellitype_JIntellitype_terminate - (JNIEnv *, jobject); - -/* - * Class: com_melloware_jintellitype_JIntellitype - * Method: unregHotKey - * Signature: (I)V - */ -JNIEXPORT void JNICALL Java_com_melloware_jintellitype_JIntellitype_unregHotKey - (JNIEnv *, jobject, jint); - -/* - * Class: com_melloware_jintellitype_JIntellitype - * Method: isRunning - * Signature: (Ljava/lang/String;)Z - */ -JNIEXPORT jboolean JNICALL Java_com_melloware_jintellitype_JIntellitype_isRunning - (JNIEnv *, jclass, jstring); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/src/main/cpp/JIntellitypeHandler.h b/src/main/headers/JIntellitypeHandler.h similarity index 96% rename from src/main/cpp/JIntellitypeHandler.h rename to src/main/headers/JIntellitypeHandler.h index d003ff9..4806ef7 100644 --- a/src/main/cpp/JIntellitypeHandler.h +++ b/src/main/headers/JIntellitypeHandler.h @@ -1,93 +1,93 @@ -/* - JIntellitype (http://www.melloware.com/) - Java JNI API for Windows Intellitype commands and global keystrokes. - - Copyright (C) 1999, 2008 Emil A. Lefkof III, info@melloware.com - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - Compiled with Mingw port of GCC, - Bloodshed Dev-C++ IDE (http://www.bloodshed.net/devcpp.html) -*/ -#ifndef __JIntellitypeHandler_h__ -#define __JIntellitypeHandler_h__ - -#include "JIntellitypeThread.h" - -class JIntellitypeHandler -{ - friend DWORD WINAPI JIntellitypeThread::ThreadProc( LPVOID lpParameter ); - -public: - - static JIntellitypeHandler *extract( JNIEnv *env, jobject object ); - - JIntellitypeHandler( JNIEnv *env, jobject object ); - - void initialize( JNIEnv *env, HINSTANCE instance ); - void regHotKey( jint identifier, jint modifier, jint keycode ); - void unregHotKey( jint identifier ); - void intellitype( jint commandId ); - void terminate(); - -private: - - enum - { - INITIALIZE_CODE = 1, - REGISTER_HOTKEY_CODE = 2, - UNREGISTER_HOTKEY_CODE = 3, - TERMINATE_CODE = 4, - INTELLITYPE_CODE = 5 - }; - - ~JIntellitypeHandler(); - - void createHiddenWindow(); - void doInitialize(); - void doRegHotKey(LPARAM callback); - void doUnregisterHotKey(LPARAM callback); - void doIntellitype(LPARAM callback); - void fireHotKey(jint hotkeyId); - void fireIntellitype(jint commandId); - - HINSTANCE m_instance; - HWND m_window; - jobject m_object; - jmethodID m_fireHotKey; - jmethodID m_fireIntellitype; - - static LRESULT CALLBACK WndProc( HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam ); - static DWORD WINAPI ThreadProc( LPVOID lpParameter ); -}; - -typedef struct { - JIntellitypeHandler *handler; - jint identifier; - jint modifier; - jint keycode; - jint command; -} JIntellitypeHandlerCallback; - - -#ifndef WM_APPCOMMAND -#define WM_APPCOMMAND 0x319 -#define FAPPCOMMAND_MASK 0x8000 -#define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MASK)) -#define HSHELL_APPCOMMAND 12 - -#endif - - -#endif +/* + JIntellitype (http://www.melloware.com/) + Java JNI API for Windows Intellitype commands and global keystrokes. + + Copyright (C) 1999, 2008 Emil A. Lefkof III, info@melloware.com + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Compiled with Mingw port of GCC, + Bloodshed Dev-C++ IDE (http://www.bloodshed.net/devcpp.html) +*/ +#ifndef __JIntellitypeHandler_h__ +#define __JIntellitypeHandler_h__ + +#include "JIntellitypeThread.h" + +class JIntellitypeHandler +{ + friend DWORD WINAPI JIntellitypeThread::ThreadProc( LPVOID lpParameter ); + +public: + + static JIntellitypeHandler *extract( JNIEnv *env, jobject object ); + + JIntellitypeHandler( JNIEnv *env, jobject object ); + + void initialize( JNIEnv *env, HINSTANCE instance ); + void regHotKey( jint identifier, jint modifier, jint keycode ); + void unregHotKey( jint identifier ); + void intellitype( jint commandId ); + void terminate(); + +private: + + enum + { + INITIALIZE_CODE = 1, + REGISTER_HOTKEY_CODE = 2, + UNREGISTER_HOTKEY_CODE = 3, + TERMINATE_CODE = 4, + INTELLITYPE_CODE = 5 + }; + + ~JIntellitypeHandler(); + + void createHiddenWindow(); + void doInitialize(); + void doRegHotKey(LPARAM callback); + void doUnregisterHotKey(LPARAM callback); + void doIntellitype(LPARAM callback); + void fireHotKey(jint hotkeyId); + void fireIntellitype(jint commandId); + + HINSTANCE m_instance; + HWND m_window; + jobject m_object; + jmethodID m_fireHotKey; + jmethodID m_fireIntellitype; + + static LRESULT CALLBACK WndProc( HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam ); + static DWORD WINAPI ThreadProc( LPVOID lpParameter ); +}; + +typedef struct { + JIntellitypeHandler *handler; + jint identifier; + jint modifier; + jint keycode; + jint command; +} JIntellitypeHandlerCallback; + + +#ifndef WM_APPCOMMAND +#define WM_APPCOMMAND 0x319 +#define FAPPCOMMAND_MASK 0x8000 +#define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MASK)) +#define HSHELL_APPCOMMAND 12 + +#endif + + +#endif diff --git a/src/main/cpp/JIntellitypeThread.h b/src/main/headers/JIntellitypeThread.h similarity index 95% rename from src/main/cpp/JIntellitypeThread.h rename to src/main/headers/JIntellitypeThread.h index 10b09f9..e4a0048 100644 --- a/src/main/cpp/JIntellitypeThread.h +++ b/src/main/headers/JIntellitypeThread.h @@ -1,55 +1,55 @@ -/* - JIntellitype (http://www.melloware.com/) - Java JNI API for Windows Intellitype commands and global keystrokes. - - Copyright (C) 1999, 2008 Emil A. Lefkof III, info@melloware.com - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - Compiled with Mingw port of GCC, - Bloodshed Dev-C++ IDE (http://www.bloodshed.net/devcpp.html) -*/ -#ifndef __JIntellitypeThread_h__ -#define __JIntellitypeThread_h__ - - -class JIntellitypeThread -{ -public: - - JIntellitypeThread(); - - void MakeSureThreadIsUp( JNIEnv *env ); - - JNIEnv *m_env; - static DWORD WINAPI ThreadProc( LPVOID lpParameter ); - - operator DWORD (); - -private: - - DWORD m_thread; - JavaVM *m_vm; - int m_handlerCount; - - -}; - -extern JIntellitypeThread g_JIntellitypeThread; - - -#define WM_JINTELLITYPE (WM_USER+1) - - -#endif +/* + JIntellitype (http://www.melloware.com/) + Java JNI API for Windows Intellitype commands and global keystrokes. + + Copyright (C) 1999, 2008 Emil A. Lefkof III, info@melloware.com + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Compiled with Mingw port of GCC, + Bloodshed Dev-C++ IDE (http://www.bloodshed.net/devcpp.html) +*/ +#ifndef __JIntellitypeThread_h__ +#define __JIntellitypeThread_h__ + + +class JIntellitypeThread +{ +public: + + JIntellitypeThread(); + + void MakeSureThreadIsUp( JNIEnv *env ); + + JNIEnv *m_env; + static DWORD WINAPI ThreadProc( LPVOID lpParameter ); + + operator DWORD (); + +private: + + DWORD m_thread; + JavaVM *m_vm; + int m_handlerCount; + + +}; + +extern JIntellitypeThread g_JIntellitypeThread; + + +#define WM_JINTELLITYPE (WM_USER+1) + + +#endif diff --git a/src/main/cpp/JIntellitype_private.h b/src/main/headers/JIntellitype_private.h similarity index 96% rename from src/main/cpp/JIntellitype_private.h rename to src/main/headers/JIntellitype_private.h index 1c7f45e..688740c 100644 --- a/src/main/cpp/JIntellitype_private.h +++ b/src/main/headers/JIntellitype_private.h @@ -1,23 +1,23 @@ -/* THIS FILE WILL BE OVERWRITTEN BY DEV-C++ */ -/* DO NOT EDIT ! */ - -#ifndef JINTELLITYPE_PRIVATE_H -#define JINTELLITYPE_PRIVATE_H - -/* VERSION DEFINITIONS */ -#define VER_STRING "1.0.0.465" -#define VER_MAJOR 1 -#define VER_MINOR 0 -#define VER_RELEASE 0 -#define VER_BUILD 465 -#define COMPANY_NAME "Melloware Inc (www.melloware.com)" -#define FILE_VERSION "1.0" -#define FILE_DESCRIPTION "Java JNI bridge to MS Intellitype commands" -#define INTERNAL_NAME "" -#define LEGAL_COPYRIGHT "Copyright 2006 Melloware Inc" -#define LEGAL_TRADEMARKS "Copyright 2006 Melloware Inc" -#define ORIGINAL_FILENAME "" -#define PRODUCT_NAME "JIntellitype" -#define PRODUCT_VERSION "1.0" - -#endif /*JINTELLITYPE_PRIVATE_H*/ +/* THIS FILE WILL BE OVERWRITTEN BY DEV-C++ */ +/* DO NOT EDIT ! */ + +#ifndef JINTELLITYPE_PRIVATE_H +#define JINTELLITYPE_PRIVATE_H + +/* VERSION DEFINITIONS */ +#define VER_STRING "1.0.0.465" +#define VER_MAJOR 1 +#define VER_MINOR 0 +#define VER_RELEASE 0 +#define VER_BUILD 465 +#define COMPANY_NAME "Melloware Inc (www.melloware.com)" +#define FILE_VERSION "1.0" +#define FILE_DESCRIPTION "Java JNI bridge to MS Intellitype commands" +#define INTERNAL_NAME "" +#define LEGAL_COPYRIGHT "Copyright 2006 Melloware Inc" +#define LEGAL_TRADEMARKS "Copyright 2006 Melloware Inc" +#define ORIGINAL_FILENAME "" +#define PRODUCT_NAME "JIntellitype" +#define PRODUCT_VERSION "1.0" + +#endif /*JINTELLITYPE_PRIVATE_H*/ diff --git a/src/main/cpp/StdAfx.h b/src/main/headers/StdAfx.h similarity index 96% rename from src/main/cpp/StdAfx.h rename to src/main/headers/StdAfx.h index 7203ae8..5a1e4d6 100644 --- a/src/main/cpp/StdAfx.h +++ b/src/main/headers/StdAfx.h @@ -1,24 +1,24 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#if !defined(AFX_STDAFX_H__1F571525_24C2_11D3_B0CF_0000E85D9A83__INCLUDED_) -#define AFX_STDAFX_H__1F571525_24C2_11D3_B0CF_0000E85D9A83__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -// Insert your headers here -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers - -#include -#include - -#include - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_STDAFX_H__1F571525_24C2_11D3_B0CF_0000E85D9A83__INCLUDED_) +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#if !defined(AFX_STDAFX_H__1F571525_24C2_11D3_B0CF_0000E85D9A83__INCLUDED_) +#define AFX_STDAFX_H__1F571525_24C2_11D3_B0CF_0000E85D9A83__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +// Insert your headers here +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers + +#include +#include + +#include + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__1F571525_24C2_11D3_B0CF_0000E85D9A83__INCLUDED_) diff --git a/src/main/java/com/melloware/jintellitype/JIntellitype.java b/src/main/java/com/melloware/jintellitype/JIntellitype.java index b6f89f1..8fe7415 100644 --- a/src/main/java/com/melloware/jintellitype/JIntellitype.java +++ b/src/main/java/com/melloware/jintellitype/JIntellitype.java @@ -27,6 +27,8 @@ import java.util.concurrent.CopyOnWriteArrayList; import javax.swing.SwingUtilities; +import com.github.boukefalos.jlibloader.Native; + /** * JIntellitype A Java Implementation for using the Windows API Intellitype * commands and the RegisterHotKey and UnRegisterHotkey API calls for globally @@ -90,34 +92,9 @@ public final class JIntellitype implements JIntellitypeConstants { * calling. */ private JIntellitype() { - try { - // Load JNI library - System.loadLibrary("JIntellitype"); - } catch (Throwable exLoadLibrary) { - try { - if (getLibraryLocation() != null) { - System.load(getLibraryLocation()); - } else { - String jarPath = "com/melloware/jintellitype/"; - String tmpDir = System.getProperty("java.io.tmpdir"); - try { - String dll = "JIntellitype.dll"; - fromJarToFs(jarPath + dll, tmpDir + dll); - System.load(tmpDir + dll); - } catch (UnsatisfiedLinkError e) { - String dll = "JIntellitype64.dll"; - fromJarToFs(jarPath + dll, tmpDir + dll); - System.load(tmpDir + dll); - } - } - } catch (Throwable exAllFailed) { - throw new JIntellitypeException( - "Could not load JIntellitype.dll from local file system or from inside JAR", exAllFailed); - } - } - - initializeLibrary(); - this.keycodeMap = getKey2KeycodeMapping(); + Native.load("com.github.boukefalos", "jlibintellitype"); + initializeLibrary(); + this.keycodeMap = getKey2KeycodeMapping(); } /** diff --git a/src/test/resources/log4j.properties b/src/test/resources/log4j.properties deleted file mode 100644 index f1454f6..0000000 --- a/src/test/resources/log4j.properties +++ /dev/null @@ -1,29 +0,0 @@ -################################################################### -# # -# Copyright 2006 Melloware Inc # -# # -# http://www.melloware.com # -# # -################################################################### - -log4j.rootLogger=DEBUG,stdout - -######################################################################## -# -# Appenders -# -######################################################################## - - -#### Appender writes to console -log4j.appender.stdout = org.apache.log4j.ConsoleAppender -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%d{MM/dd/yyyy HH:mm:ss} %-5p - [%C{1}.%M:%L] %m %n - -#### jukes.log -log4j.appender.MELLOWARE = org.apache.log4j.FileAppender -log4j.appender.MELLOWARE.file = ${user.home}/.jintellitype/jintellitype.log -log4j.appender.MELLOWARE.layout = org.apache.log4j.PatternLayout -log4j.appender.MELLOWARE.layout.conversionPattern = %d{MM/dd/yyyy HH:mm:ss} %-5p - [%C{1}.%M:%L] %m %n -log4j.appender.MELLOWARE.append = false -